From 0afbf5fcd5ad9f872ff30de88351c485f118e09f Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 27 Aug 2021 20:41:26 +0100 Subject: [PATCH 001/722] add entanglement proof crud --- package-lock.json | 251 ++++++++++++++++---------- package.json | 2 +- src/core/agent/AgentService.ts | 36 +++- src/core/graphQL-interface/GraphQL.ts | 16 ++ 4 files changed, 204 insertions(+), 101 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8fec43839..ff77e1b4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.1.5", + "version": "0.1.7", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1738,7 +1738,7 @@ } }, "@perspect3vism/ad4m": { - "version": "0.1.7", + "version": "file:../ad4m", "requires": { "@apollo/client": "3.3.20", "@holochain/conductor-api": "0.0.4", @@ -7735,9 +7735,9 @@ "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==" }, "@types/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" }, "@types/cookies": { "version": "0.7.6", @@ -17348,11 +17348,6 @@ "streaming-iterables": "^5.0.3" }, "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -17361,45 +17356,6 @@ "ms": "2.1.2" } }, - "engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" - } - }, - "engine.io-client": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", - "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", - "requires": { - "base64-arraybuffer": "0.1.4", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.1", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", - "requires": { - "base64-arraybuffer": "0.1.4" - } - }, "err-code": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", @@ -17417,56 +17373,6 @@ "requires": { "tdigest": "^0.1.1" } - }, - "socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" - }, - "socket.io-client-next": { - "version": "npm:socket.io-client@3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", - "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", - "requires": { - "@types/component-emitter": "^1.2.10", - "backo2": "~1.0.2", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-client": "~4.1.0", - "parseuri": "0.0.6", - "socket.io-parser": "~4.0.4" - } - }, - "socket.io-next": { - "version": "npm:socket.io@3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", - "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - } - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" } } }, @@ -22658,6 +22564,153 @@ } } }, + "socket.io-client-next": { + "version": "npm:socket.io-client@3.1.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", + "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", + "requires": { + "@types/component-emitter": "^1.2.10", + "backo2": "~1.0.2", + "component-emitter": "~1.3.0", + "debug": "~4.3.1", + "engine.io-client": "~4.1.0", + "parseuri": "0.0.6", + "socket.io-parser": "~4.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "engine.io-client": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", + "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", + "requires": { + "base64-arraybuffer": "0.1.4", + "component-emitter": "~1.3.0", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.1", + "has-cors": "1.1.0", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.4.2", + "xmlhttprequest-ssl": "~1.6.2", + "yeast": "0.1.2" + } + }, + "engine.io-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, + "socket.io-next": { + "version": "npm:socket.io@3.1.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", + "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "requires": { + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.8", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~4.1.0", + "socket.io-adapter": "~2.1.0", + "socket.io-parser": "~4.0.3" + }, + "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "engine.io": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", + "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" + } + }, + "engine.io-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "socket.io-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", + "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, "socket.io-parser": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", diff --git a/package.json b/package.json index d8722f73c..b9f6597ec 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ }, "dependencies": { "@holochain/conductor-api": "0.2.0", - "@perspect3vism/ad4m": "0.1.7", + "@perspect3vism/ad4m": "file:../ad4m", "@rollup/plugin-commonjs": "^17.1.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^11.2.0", diff --git a/src/core/agent/AgentService.ts b/src/core/agent/AgentService.ts index 90f78958c..7be653b25 100644 --- a/src/core/agent/AgentService.ts +++ b/src/core/agent/AgentService.ts @@ -1,7 +1,7 @@ import * as path from 'path'; import * as fs from 'fs'; import didWallet from '@transmute/did-wallet' -import type { Language, Expression, PublicSharing, ReadOnlyLanguage } from '@perspect3vism/ad4m'; +import type { Language, Expression, PublicSharing, ReadOnlyLanguage, EntanglementProof } from '@perspect3vism/ad4m'; import { Agent, ExpressionProof } from '@perspect3vism/ad4m'; import secp256k1 from 'secp256k1' import * as secp256k1DIDKey from '@transmute/did-key-secp256k1'; @@ -18,6 +18,7 @@ export default class AgentService { #wallet?: object #file: string #fileProfile: string + #entanglementProofs: string #agent?: Agent #agentLanguage?: Language #pubsub: PubSub @@ -28,6 +29,7 @@ export default class AgentService { constructor(rootConfigPath: string) { this.#file = path.join(rootConfigPath, "agent.json") this.#fileProfile = path.join(rootConfigPath, "agentProfile.json") + this.#entanglementProofs = path.join(rootConfigPath, "entanglementProofs.json") this.#pubsub = PubSubInstance.get() this.#readyPromise = new Promise(resolve => { this.#readyPromiseResolve = resolve @@ -271,6 +273,38 @@ export default class AgentService { } return dump } + + addEntanglementProof(proofs: EntanglementProof[]): void { + let entanglementProofs: EntanglementProof[]; + if (fs.existsSync(this.#entanglementProofs)) { + entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); + entanglementProofs = entanglementProofs.concat(proofs); + entanglementProofs = Array.from(new Set(entanglementProofs)); + } else { + entanglementProofs = proofs + } + + fs.writeFileSync(this.#entanglementProofs, JSON.stringify(entanglementProofs)) + } + + deleteEntanglementProof(proofs: EntanglementProof[]): void { + if (fs.existsSync(this.#entanglementProofs)) { + let entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); + for (const agent of proofs) { + entanglementProofs.splice(entanglementProofs.findIndex((value) => value == agent), 1); + } + fs.writeFileSync(this.#entanglementProofs, JSON.stringify(entanglementProofs)) + } + } + + getEntanglementProofs(): EntanglementProof[] { + if (fs.existsSync(this.#entanglementProofs)) { + let entanglementProofs: EntanglementProof[] = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); + return entanglementProofs + } else { + return [] + } + } } export function init(rootConfigPath: string): AgentService { diff --git a/src/core/graphQL-interface/GraphQL.ts b/src/core/graphQL-interface/GraphQL.ts index 87407c1d5..08db53f89 100644 --- a/src/core/graphQL-interface/GraphQL.ts +++ b/src/core/graphQL-interface/GraphQL.ts @@ -79,8 +79,24 @@ function createResolvers(core: PerspectivismCore) { perspectives: (parent, args, context, info) => { return core.perspectivesController.allPerspectiveHandles() }, + //@ts-ignore + entanglementProofs: (parent, args, context, info) => { + return core.agentService.getEntanglementProofs(); + } }, Mutation: { + //@ts-ignore + addEntanglementProofs: (parent, args, context, info) => { + const { proofs } = args; + core.agentService.addEntanglementProof(proofs); + return core.agentService.getEntanglementProofs(); + }, + //@ts-ignore + deleteEntanglementProofs: (parent, args, context, info) => { + const { proofs } = args; + core.agentService.deleteEntanglementProof(proofs); + return core.agentService.getEntanglementProofs(); + }, //@ts-ignore agentGenerate: async (parent, args, context, info) => { await core.agentService.createNewKeys() From 6f89d66dcdb6657aa982470f525885fad43cbb68 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 27 Aug 2021 21:20:08 +0100 Subject: [PATCH 002/722] break out entanglement proof into its own class and add some methods we will likely need for further ep operations --- src/core/EntanglementProof.ts | 56 +++++++++++++++++++ src/core/PerspectivismCore.ts | 13 +++++ src/core/agent/AgentService.ts | 55 ++++++++---------- src/core/graphQL-interface/GraphQL.ts | 10 ++-- .../Holochain/HolochainService.ts | 10 +++- 5 files changed, 106 insertions(+), 38 deletions(-) create mode 100644 src/core/EntanglementProof.ts diff --git a/src/core/EntanglementProof.ts b/src/core/EntanglementProof.ts new file mode 100644 index 000000000..d2afe75d7 --- /dev/null +++ b/src/core/EntanglementProof.ts @@ -0,0 +1,56 @@ +import path from "path"; +import fs from "fs"; +import AgentService from "./agent/AgentService"; + +import { EntanglementProof } from '@perspect3vism/ad4m'; + +export default class EntanglementProofController { + #entanglementProofs: string + #agentService: AgentService + + constructor(rootConfigPath: string, agentService: AgentService) { + this.#entanglementProofs = path.join(rootConfigPath, "entanglementProofs.json") + this.#agentService = agentService + } + + signDeviceKey(deviceKey: string): EntanglementProof { + return new EntanglementProof(this.#agentService.did!, deviceKey, this.#agentService.signString(deviceKey)) + } + + generateHolochainProof(holochainPubKey: string): EntanglementProof { + const holochainDidSignature = "TODO - CALL LAIR?"; + return new EntanglementProof(this.#agentService.did!, holochainPubKey, this.#agentService.signString(holochainPubKey), holochainDidSignature) + } + + addEntanglementProofs(proofs: EntanglementProof[]): void { + let entanglementProofs: EntanglementProof[]; + if (fs.existsSync(this.#entanglementProofs)) { + entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); + entanglementProofs = entanglementProofs.concat(proofs); + entanglementProofs = Array.from(new Set(entanglementProofs)); + } else { + entanglementProofs = proofs + } + + fs.writeFileSync(this.#entanglementProofs, JSON.stringify(entanglementProofs)) + } + + deleteEntanglementProofs(proofs: EntanglementProof[]): void { + if (fs.existsSync(this.#entanglementProofs)) { + let entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); + for (const agent of proofs) { + entanglementProofs.splice(entanglementProofs.findIndex((value) => value == agent), 1); + } + fs.writeFileSync(this.#entanglementProofs, JSON.stringify(entanglementProofs)) + } + } + + getEntanglementProofs(): EntanglementProof[] { + if (fs.existsSync(this.#entanglementProofs)) { + let entanglementProofs: EntanglementProof[] = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); + return entanglementProofs + } else { + return [] + } + } +} \ No newline at end of file diff --git a/src/core/PerspectivismCore.ts b/src/core/PerspectivismCore.ts index db68c3036..a11035d94 100644 --- a/src/core/PerspectivismCore.ts +++ b/src/core/PerspectivismCore.ts @@ -16,6 +16,7 @@ import Signatures from './agent/Signatures' import LanguageFactory from './LanguageFactory' import * as PubSub from './graphQL-interface/PubSub' import { IPFS as IPFSType } from 'ipfs' +import EntanglementProofController from './EntanglementProof' export interface InitServicesParams { portHCAdmin?: number, @@ -38,6 +39,8 @@ export default class PerspectivismCore { #languageFactory?: LanguageFactory + #entanglementProofController?: EntanglementProofController + constructor(config: Config.CoreConfig) { Config.init(config) @@ -66,6 +69,13 @@ export default class PerspectivismCore { return this.#languageController! } + get entanglementProofController(): EntanglementProofController { + if (!this.#entanglementProofController) { + throw Error("No entanglementProofController") + } + return this.#entanglementProofController + } + async exit() { await this.#IPFS?.stop(); await this.#holochain?.stop(); @@ -88,6 +98,7 @@ export default class PerspectivismCore { Config.holochainConductorPath, Config.holochainDataPath, Config.resourcePath, + this.entanglementProofController, params.portHCAdmin, params.portHCApp, params.useLocalHolochainProxy @@ -124,6 +135,8 @@ export default class PerspectivismCore { agentService: this.agentService, languageController: this.#languageController }) + + this.#entanglementProofController = new EntanglementProofController(Config.rootConfigPath, this.#agentService); } async initLanguages(omitLanguageFactory: boolean|void) { diff --git a/src/core/agent/AgentService.ts b/src/core/agent/AgentService.ts index 7be653b25..7afeb53d7 100644 --- a/src/core/agent/AgentService.ts +++ b/src/core/agent/AgentService.ts @@ -82,6 +82,29 @@ export default class AgentService { return signedExpresssion } + signString(data: string): string { + if(!this.isInitialized){ + throw new Error("Can't sign without keystore") + } + if(!this.isUnlocked()) { + throw new Error("Can't sign with locked keystore") + } + if(!this.#signingKeyId) { + throw new Error("Can't sign without signingKeyId") + } + + const timestamp = new Date().toISOString() + const payloadBytes = Signatures.buildMessage(data, timestamp) + + const key = this.getSigningKey() + const privKey = Uint8Array.from(Buffer.from(key.privateKey, key.encoding)) + + const sigObj = secp256k1.ecdsaSign(payloadBytes, privKey) + const sigBuffer = Buffer.from(sigObj.signature) + const sigHex = sigBuffer.toString('hex') + return sigHex + } + async updateAgent(a: Agent) { this.#agent = a await this.storeAgentProfile() @@ -273,38 +296,6 @@ export default class AgentService { } return dump } - - addEntanglementProof(proofs: EntanglementProof[]): void { - let entanglementProofs: EntanglementProof[]; - if (fs.existsSync(this.#entanglementProofs)) { - entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); - entanglementProofs = entanglementProofs.concat(proofs); - entanglementProofs = Array.from(new Set(entanglementProofs)); - } else { - entanglementProofs = proofs - } - - fs.writeFileSync(this.#entanglementProofs, JSON.stringify(entanglementProofs)) - } - - deleteEntanglementProof(proofs: EntanglementProof[]): void { - if (fs.existsSync(this.#entanglementProofs)) { - let entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); - for (const agent of proofs) { - entanglementProofs.splice(entanglementProofs.findIndex((value) => value == agent), 1); - } - fs.writeFileSync(this.#entanglementProofs, JSON.stringify(entanglementProofs)) - } - } - - getEntanglementProofs(): EntanglementProof[] { - if (fs.existsSync(this.#entanglementProofs)) { - let entanglementProofs: EntanglementProof[] = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); - return entanglementProofs - } else { - return [] - } - } } export function init(rootConfigPath: string): AgentService { diff --git a/src/core/graphQL-interface/GraphQL.ts b/src/core/graphQL-interface/GraphQL.ts index 08db53f89..30c17e79d 100644 --- a/src/core/graphQL-interface/GraphQL.ts +++ b/src/core/graphQL-interface/GraphQL.ts @@ -81,21 +81,21 @@ function createResolvers(core: PerspectivismCore) { }, //@ts-ignore entanglementProofs: (parent, args, context, info) => { - return core.agentService.getEntanglementProofs(); + return core.entanglementProofController.getEntanglementProofs(); } }, Mutation: { //@ts-ignore addEntanglementProofs: (parent, args, context, info) => { const { proofs } = args; - core.agentService.addEntanglementProof(proofs); - return core.agentService.getEntanglementProofs(); + core.entanglementProofController.addEntanglementProofs(proofs); + return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore deleteEntanglementProofs: (parent, args, context, info) => { const { proofs } = args; - core.agentService.deleteEntanglementProof(proofs); - return core.agentService.getEntanglementProofs(); + core.entanglementProofController.addEntanglementProofs(proofs); + return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore agentGenerate: async (parent, args, context, info) => { diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index b41fb32e8..be469497c 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -7,6 +7,7 @@ import HolochainLanguageDelegate from "./HolochainLanguageDelegate" import {stopProcesses, unpackDna, packDna, writeDefaultConductor, runHolochain, ConductorConfiguration} from "./HcExecution" import type { Dna } from '@perspect3vism/ad4m' import type { ChildProcess } from 'child_process' +import EntanglementProofController from '../../EntanglementProof' export const fakeCapSecret = (): CapSecret => Buffer.from(Array(64).fill('aa').join(''), 'hex') @@ -17,6 +18,7 @@ export default class HolochainService { #db: any #adminPort: number #appPort: number + #entanglementProofController: EntanglementProofController #adminWebsocket?: AdminWebsocket #appWebsocket?: AppWebsocket #dataPath: string @@ -29,9 +31,10 @@ export default class HolochainService { #conductorConfigPath: string signalCallbacks: Map; - constructor(conductorPath: string, dataPath: string, resourcePath: string, adminPort?: number, appPort?: number, useLocalProxy?: boolean) { + constructor(conductorPath: string, dataPath: string, resourcePath: string, entanglementProofController: EntanglementProofController, adminPort?: number, appPort?: number, useLocalProxy?: boolean) { this.#didResolveError = false; + this.#entanglementProofController = entanglementProofController; console.log("HolochainService: Creating low-db instance for holochain-serivce"); this.#dataPath = dataPath this.#db = low(new FileSync(path.join(dataPath, 'holochain-service.json'))) @@ -170,6 +173,11 @@ export default class HolochainService { const hash = await this.#adminWebsocket!.registerDna({ path: p }) + const didHolochainEntanglement = await this.#entanglementProofController.generateHolochainProof(pubKey.toString()); + //The membrane proof passing here is untested and thus most likely broken + // await this.#adminWebsocket!.installApp({ + // installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick, membrane_proof: Buffer.from(JSON.stringify(didHolochainEntanglement))}] + // }) await this.#adminWebsocket!.installApp({ installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick}] }) From 7b6b96b0a9889ba2f6d7d2730e02512c0765fb09 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 27 Aug 2021 22:00:07 +0100 Subject: [PATCH 003/722] add entanglement proof pre-flight --- src/core/graphQL-interface/GraphQL.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/graphQL-interface/GraphQL.ts b/src/core/graphQL-interface/GraphQL.ts index 30c17e79d..812b0c23c 100644 --- a/src/core/graphQL-interface/GraphQL.ts +++ b/src/core/graphQL-interface/GraphQL.ts @@ -98,6 +98,11 @@ function createResolvers(core: PerspectivismCore) { return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore + entanglementProofPreflight: (parent, args, context, info) => { + const { devicekey } = args; + return core.entanglementProofController.signDeviceKey(devicekey); + }, + //@ts-ignore agentGenerate: async (parent, args, context, info) => { await core.agentService.createNewKeys() await core.agentService.save(args.passphrase) From f495b7fa4826f6af32383ff5c5829ebdaa16dfbc Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 27 Aug 2021 22:35:02 +0100 Subject: [PATCH 004/722] add test cases for entanglement proof crud and preflight --- src/core/PerspectivismCore.ts | 1 - src/core/graphQL-interface/GraphQL.ts | 10 +++---- .../Holochain/HolochainService.ts | 7 ++--- src/tests/agent.ts | 27 ++++++++++++++++++- 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/core/PerspectivismCore.ts b/src/core/PerspectivismCore.ts index a11035d94..e45a61621 100644 --- a/src/core/PerspectivismCore.ts +++ b/src/core/PerspectivismCore.ts @@ -98,7 +98,6 @@ export default class PerspectivismCore { Config.holochainConductorPath, Config.holochainDataPath, Config.resourcePath, - this.entanglementProofController, params.portHCAdmin, params.portHCApp, params.useLocalHolochainProxy diff --git a/src/core/graphQL-interface/GraphQL.ts b/src/core/graphQL-interface/GraphQL.ts index 812b0c23c..c1caef0be 100644 --- a/src/core/graphQL-interface/GraphQL.ts +++ b/src/core/graphQL-interface/GraphQL.ts @@ -80,7 +80,7 @@ function createResolvers(core: PerspectivismCore) { return core.perspectivesController.allPerspectiveHandles() }, //@ts-ignore - entanglementProofs: (parent, args, context, info) => { + getEntanglementProofs: (parent, args, context, info) => { return core.entanglementProofController.getEntanglementProofs(); } }, @@ -94,13 +94,13 @@ function createResolvers(core: PerspectivismCore) { //@ts-ignore deleteEntanglementProofs: (parent, args, context, info) => { const { proofs } = args; - core.entanglementProofController.addEntanglementProofs(proofs); + core.entanglementProofController.deleteEntanglementProofs(proofs); return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore - entanglementProofPreflight: (parent, args, context, info) => { - const { devicekey } = args; - return core.entanglementProofController.signDeviceKey(devicekey); + entanglementProofPreFlight: (parent, args, context, info) => { + const { deviceKey } = args; + return core.entanglementProofController.signDeviceKey(deviceKey); }, //@ts-ignore agentGenerate: async (parent, args, context, info) => { diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index be469497c..dcfdec3b2 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -7,7 +7,6 @@ import HolochainLanguageDelegate from "./HolochainLanguageDelegate" import {stopProcesses, unpackDna, packDna, writeDefaultConductor, runHolochain, ConductorConfiguration} from "./HcExecution" import type { Dna } from '@perspect3vism/ad4m' import type { ChildProcess } from 'child_process' -import EntanglementProofController from '../../EntanglementProof' export const fakeCapSecret = (): CapSecret => Buffer.from(Array(64).fill('aa').join(''), 'hex') @@ -18,7 +17,6 @@ export default class HolochainService { #db: any #adminPort: number #appPort: number - #entanglementProofController: EntanglementProofController #adminWebsocket?: AdminWebsocket #appWebsocket?: AppWebsocket #dataPath: string @@ -31,10 +29,9 @@ export default class HolochainService { #conductorConfigPath: string signalCallbacks: Map; - constructor(conductorPath: string, dataPath: string, resourcePath: string, entanglementProofController: EntanglementProofController, adminPort?: number, appPort?: number, useLocalProxy?: boolean) { + constructor(conductorPath: string, dataPath: string, resourcePath: string, adminPort?: number, appPort?: number, useLocalProxy?: boolean) { this.#didResolveError = false; - this.#entanglementProofController = entanglementProofController; console.log("HolochainService: Creating low-db instance for holochain-serivce"); this.#dataPath = dataPath this.#db = low(new FileSync(path.join(dataPath, 'holochain-service.json'))) @@ -173,7 +170,7 @@ export default class HolochainService { const hash = await this.#adminWebsocket!.registerDna({ path: p }) - const didHolochainEntanglement = await this.#entanglementProofController.generateHolochainProof(pubKey.toString()); + //const didHolochainEntanglement = await this.#entanglementProofController.generateHolochainProof(pubKey.toString()); //The membrane proof passing here is untested and thus most likely broken // await this.#adminWebsocket!.installApp({ // installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick, membrane_proof: Buffer.from(JSON.stringify(didHolochainEntanglement))}] diff --git a/src/tests/agent.ts b/src/tests/agent.ts index 439139fc9..2a8a85a82 100644 --- a/src/tests/agent.ts +++ b/src/tests/agent.ts @@ -1,4 +1,4 @@ -import { Perspective, LinkExpression, Link, ExpressionProof } from "@perspect3vism/ad4m"; +import { Perspective, LinkExpression, Link, ExpressionProof, EntanglementProofInput } from "@perspect3vism/ad4m"; import { TestContext } from './integration.test' import sleep from './sleep' @@ -81,6 +81,31 @@ export default function agentTests(testContext: TestContext) { const getInvalidDid = await ad4mClient.agent.byDID("na"); expect(getInvalidDid).toBe(null); }) + it('can create entanglementProofPreFlight', async () => { + const ad4mClient = testContext.ad4mClient!; + + //Check can generate a preflight key + const preFlight = await ad4mClient.agent.entanglementProofPreFlight("ethAddr"); + expect(preFlight.deviceKey).toBe("ethAddr"); + expect(preFlight.didSignedByDeviceKey).toBeNull(); + + //Check can save a entanglement proof + preFlight.didSignedByDeviceKey = "ethSignedDID"; + const addProof = await ad4mClient.agent.addEntanglementProofs([preFlight as EntanglementProofInput]); + expect(addProof[0]).toStrictEqual(preFlight); + + //Check can get entanglment proofs + const getProofs = await ad4mClient.agent.getEntanglementProofs(); + expect(getProofs[0]).toStrictEqual(preFlight); + + //Check can delete entanglement proofs + const deleteProofs = await ad4mClient.agent.deleteEntanglementProofs([preFlight as EntanglementProofInput]); + expect(deleteProofs.length).toBe(0); + + //Check entanglement proof is deleted on get + const getProofsPostDelete = await ad4mClient.agent.getEntanglementProofs(); + expect(getProofsPostDelete.length).toBe(0); + }) }) } } \ No newline at end of file From 9600193f13a9e826bc1f80bfc5c4c5ab72533f5e Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 27 Aug 2021 23:50:46 +0100 Subject: [PATCH 005/722] add dapp server and basic svelte code --- .gitignore | 2 + dapp/App.svelte | 46 ++++ package-lock.json | 407 ++++++++++++++++++++++++++++------ package.json | 15 +- public/404.html | 1 + public/favicon.png | Bin 0 -> 3127 bytes public/global.css | 0 public/index.html | 18 ++ rollup.config.js | 75 +++++++ src/core/DAppServer.ts | 59 +++++ src/core/PerspectivismCore.ts | 5 + src/main.ts | 5 +- src/tests/integration.test.ts | 102 ++++----- 13 files changed, 607 insertions(+), 128 deletions(-) create mode 100644 dapp/App.svelte create mode 100644 public/404.html create mode 100644 public/favicon.png create mode 100644 public/global.css create mode 100644 public/index.html create mode 100644 rollup.config.js create mode 100644 src/core/DAppServer.ts diff --git a/.gitignore b/.gitignore index e107980f6..52b3396a1 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ /node_modules !/src/rollup-plugin-hc-dna.js test-temp +!rollup.config.js +public/build \ No newline at end of file diff --git a/dapp/App.svelte b/dapp/App.svelte new file mode 100644 index 000000000..1f1badad2 --- /dev/null +++ b/dapp/App.svelte @@ -0,0 +1,46 @@ + + +
+
+

Hello World!

+
+
+ + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ff77e1b4f..8e7c8e842 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7170,6 +7170,11 @@ } } }, + "@polka/url": { + "version": "1.0.0-next.20", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.20.tgz", + "integrity": "sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q==" + }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -7708,9 +7713,9 @@ } }, "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", "requires": { "@types/connect": "*", "@types/node": "*" @@ -7722,17 +7727,17 @@ "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==" }, "@types/connect": { - "version": "3.4.34", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", - "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "requires": { "@types/node": "*" } }, "@types/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==" + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" }, "@types/cookie": { "version": "0.4.1", @@ -7740,9 +7745,9 @@ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" }, "@types/cookies": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.6.tgz", - "integrity": "sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==", + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", + "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", "requires": { "@types/connect": "*", "@types/express": "*", @@ -7766,9 +7771,9 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, "@types/express": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz", - "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==", + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -7777,9 +7782,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.22", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.22.tgz", - "integrity": "sha512-WdqmrUsRS4ootGha6tVwk/IVHM1iorU8tGehftQD2NWiPniw/sm7xdJOIlXLwqdInL9wBw/p7oO8vaYEF3NDmA==", + "version": "4.17.24", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", + "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", "requires": { "@types/node": "*", "@types/qs": "*", @@ -7819,14 +7824,14 @@ } }, "@types/http-assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz", - "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", + "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" }, "@types/http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==" + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==" }, "@types/istanbul-lib-coverage": { "version": "2.0.3", @@ -7877,9 +7882,9 @@ "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" }, "@types/koa": { - "version": "2.13.3", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.3.tgz", - "integrity": "sha512-TaujBV+Dhe/FvmSMZJtCFBms+bqQacgUebk/M2C2tq8iGmHE/DDf4DcW2Hc7NqusVZmy5xzrWOjtdPKNP+fTfw==", + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", + "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", "requires": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -7946,14 +7951,14 @@ "dev": true }, "@types/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==" + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/readable-stream": { "version": "2.3.10", @@ -7987,9 +7992,9 @@ } }, "@types/serve-static": { - "version": "1.13.9", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", - "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "requires": { "@types/mime": "^1", "@types/node": "*" @@ -8326,7 +8331,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -8449,13 +8453,6 @@ "requires": { "node-fetch": "^2.6.1", "util.promisify": "^1.0.0" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - } } }, "apollo-server-errors": { @@ -8485,6 +8482,17 @@ "parseurl": "^1.3.2", "subscriptions-transport-ws": "^0.9.19", "type-is": "^1.6.16" + }, + "dependencies": { + "@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + } } }, "apollo-server-plugin-base": { @@ -8774,11 +8782,18 @@ "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" }, "async-retry": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz", - "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", "requires": { - "retry": "0.12.0" + "retry": "0.13.1" + }, + "dependencies": { + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + } } }, "asynckit": { @@ -9072,6 +9087,11 @@ "chainsaw": "~0.1.0" } }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -9157,6 +9177,11 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, @@ -9234,7 +9259,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -9671,6 +9695,21 @@ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -10193,6 +10232,11 @@ "utils-merge": "1.0.1" } }, + "console-clear": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", + "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==" + }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -10298,9 +10342,9 @@ } }, "core-js-pure": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.15.2.tgz", - "integrity": "sha512-D42L7RYh1J2grW8ttxoY1+17Y4wXZeKe7uyplAI3FkNQyI5OgBIAjUfFiTPfL1rs0qLpxaabITNbjKl1Sp82tA==" + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.3.tgz", + "integrity": "sha512-6In+2RwN0FT5yK0ZnhDP5rco/NnuuFZhHauQizZiHo5lDnqAvq8Phxcpy3f+prJOqtKodt/cftBl/GTOW0kiqQ==" }, "core-util-is": { "version": "1.0.2", @@ -11586,6 +11630,11 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, @@ -11779,7 +11828,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -12632,6 +12680,11 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -12672,6 +12725,14 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, "global-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", @@ -13039,13 +13100,6 @@ "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" - }, - "dependencies": { - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } } }, "http-proxy-agent": { @@ -14615,6 +14669,14 @@ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-boolean-object": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", @@ -14701,6 +14763,11 @@ "is-plain-object": "^2.0.4" } }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, "is-fn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", @@ -14722,6 +14789,14 @@ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==" }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, "is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -14796,8 +14871,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { "version": "1.0.5", @@ -16444,8 +16518,7 @@ "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" }, "latest-version": { "version": "5.1.0", @@ -17547,6 +17620,22 @@ "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", "dev": true }, + "livereload": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", + "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "requires": { + "chokidar": "^3.5.0", + "livereload-js": "^3.3.1", + "opts": ">= 1.2.0", + "ws": "^7.4.3" + } + }, + "livereload-js": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz", + "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==" + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -17583,6 +17672,11 @@ "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz", "integrity": "sha512-uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==" }, + "local-access": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", + "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==" + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -20040,8 +20134,7 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-url": { "version": "4.5.1", @@ -20202,9 +20295,9 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object-path": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz", - "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==" + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.7.tgz", + "integrity": "sha512-T4evaK9VfGGQskXBDILcn6F90ZD+WO3OwRFFQ2rmZdUH4vQeDBpiolTpVlPY2yj5xSepyILTjDyM6UvbbdHMZw==" }, "object-visit": { "version": "1.0.1", @@ -20307,6 +20400,11 @@ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" }, + "opts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==" + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -21267,6 +21365,11 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, @@ -21399,6 +21502,14 @@ "readable-stream": "^3.6.0" } }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "receptacle": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", @@ -21587,6 +21698,11 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, + "require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=" + }, "reset": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/reset/-/reset-0.1.0.tgz", @@ -21707,6 +21823,47 @@ "fsevents": "~2.3.2" } }, + "rollup-plugin-livereload": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", + "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", + "requires": { + "livereload": "^0.9.1" + } + }, + "rollup-plugin-svelte": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz", + "integrity": "sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow==", + "requires": { + "require-relative": "^0.8.7", + "rollup-pluginutils": "^2.8.2", + "sourcemap-codec": "^1.4.8" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "dependencies": { + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + } + } + }, "rollup-plugin-typescript2": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz", @@ -21768,6 +21925,21 @@ } } }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" + } + } + }, "rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", @@ -21817,6 +21989,14 @@ } } }, + "sade": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", + "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", + "requires": { + "mri": "^1.1.0" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -22071,6 +22251,11 @@ } } }, + "semiver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==" + }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -22130,6 +22315,11 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, @@ -22155,6 +22345,14 @@ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=" }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -22213,9 +22411,9 @@ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "sha.js": { "version": "2.4.11", @@ -22318,6 +22516,38 @@ } } }, + "sirv": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.17.tgz", + "integrity": "sha512-qx9go5yraB7ekT7bCMqUHJ5jEaOC/GXBxUWv+jeWnb7WzHUFdcQPGWk7YmAwFBaQBrogpuSqd/azbC2lZRqqmw==", + "requires": { + "@polka/url": "^1.0.0-next.20", + "mime": "^2.3.1", + "totalist": "^1.0.0" + }, + "dependencies": { + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + } + } + }, + "sirv-cli": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-1.0.14.tgz", + "integrity": "sha512-yyUTNr984ANKDloqepkYbBSqvx3buwYg2sQKPWjSU+IBia5loaoka2If8N9CMwt8AfP179cdEl7kYJ//iWJHjQ==", + "requires": { + "console-clear": "^1.1.0", + "get-port": "^3.2.0", + "kleur": "^3.0.0", + "local-access": "^1.0.1", + "sade": "^1.6.0", + "semiver": "^1.0.0", + "sirv": "^1.0.13", + "tinydate": "^1.0.0" + } + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -23140,6 +23370,11 @@ "supports-color": "^7.0.0" } }, + "svelte": { + "version": "3.42.4", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.42.4.tgz", + "integrity": "sha512-DqC0AmDdBrrbIA+Kzl3yhBb6qCn4vZOAfxye2pTnIpinLegyagC5sLI8Pe9GPlXu9VpHBXIwpDDedpMfu++epA==" + }, "symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", @@ -23230,6 +23465,23 @@ "supports-hyperlinks": "^2.0.0" } }, + "terser": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", + "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -23355,6 +23607,11 @@ "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", "integrity": "sha1-jru/1tYpXxNwAD+7NxYq/loKUdE=" }, + "tinydate": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", + "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==" + }, "tmp": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", @@ -23431,7 +23688,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -23456,6 +23712,11 @@ "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", "optional": true }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" + }, "tough-cookie": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", diff --git a/package.json b/package.json index b9f6597ec..8ad6d82af 100644 --- a/package.json +++ b/package.json @@ -11,13 +11,17 @@ ], "types": "src/types.d.ts", "scripts": { - "build": "tsc", + "build": "tsc && npm run build-dapp", + "build-dapp": "rollup -c", + "dapp-dev": "rollup -c -w", + "dapp-start": "sirv public", "run": "node lib/main.js", "prepare-test": "rm -rf src/test-temp && nix-shell --run ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js", "test-links-lang": "jest --forceExit src/tests/linkLanguage.test.ts", "test-perspective": "jest --forceExit src/tests/perspective.test.ts", "test-agent": "jest --forceExit src/tests/agent.test.ts", - "test": "npm run prepare-test && jest --forceExit" + "test": "npm run prepare-test && jest --forceExit", + "test-integration": "jest --forceExit src/tests/integration.test.ts" }, "repository": { "type": "git", @@ -82,6 +86,11 @@ "rollup-plugin-typescript2": "^0.30.0", "sha256": "^0.2.0", "sha3": "^2.1.3", - "node-fetch": "^2.6.1" + "node-fetch": "^2.6.1", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-svelte": "^6.0.0", + "rollup-plugin-terser": "^7.0.0", + "svelte": "^3.0.0", + "sirv-cli": "^1.0.0" } } diff --git a/public/404.html b/public/404.html new file mode 100644 index 000000000..197050d6a --- /dev/null +++ b/public/404.html @@ -0,0 +1 @@ +

Not Found, sorry

\ No newline at end of file diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7e6f5eb5a2f1f1c882d265cf479de25caa925645 GIT binary patch literal 3127 zcmV-749N3|P)i z7)}s4L53SJCkR}iVi00SFk;`MXX*#X*kkwKs@nFGS}c;=?XFjU|G$3t^5sjIVS2G+ zw)WGF83CpoGXhLGW(1gW%uV|X7>1P6VhCX=Ux)Lb!*DZ%@I3!{Gsf7d?gtIQ%nQiK z3%(LUSkBji;C5Rfgd6$VsF@H`Pk@xtY6t<>FNR-pD}=C~$?)9pdm3XZ36N5PNWYjb z$xd$yNQR9N!dfj-Vd@BwQo^FIIWPPmT&sZyQ$v81(sCBV=PGy{0wltEjB%~h157*t zvbe_!{=I_783x!0t1-r#-d{Y?ae$Q4N_Nd^Ui^@y(%)Gjou6y<3^XJdu{rmUf-Me?)zZ>9OR&6U5H*cK; z$gUlB{g0O4gN0sLSO|Of?hU(l?;h(jA3uH!Z{EBKuV23ouU@^Y6#%v+QG;>e*E}%?wlu-NT4DG zs)z)7WbLr)vGAu(ohrKc^em@OpO&f~6_>E61n_e0_V3@{U3^O;j{`^mNCJUj_>;7v zsMs6Hu3g7+@v+lSo;=yTYFqq}jZmQ-BK8K{C4kqi_i*jBaQE(Au0607V-zKeT;EPg zX(`vrn=L+e74+-Tqeok@_`tDa$G9I|$nTU5H*2V8@y()n*zqM?J1G!-1aX;CfDC9B zTnJ#j_%*n8Qb1)re*Bno7g0RG{Eb;IK14irJYJp$5Z6ac9~b_P?+5t~95~SRG$g?1 znFJ7p$xV&GZ18m~79TGRdfsc-BcX$9yXTR*n)mPD@1~O(_?cT$ZvFPucRmGlq&se0 zKrcUf^k}4hM*biEJOWKzz!qQe;CB_ZtSOO9Owg#lZAc=s65^rb{fZe(TYu_rk!wKkEf}RIt=#Om( zR8mN`DM<^xj~59euMMspBolVN zAPTr8sSDI104orIAdmL$uOXn*6hga1G+0WD0E?UtabxC#VC~vf3|10|phW;yQ3CY8 z2CM=)ErF;xq-YJ5G|um}>*1#E+O_Mu|Nr#qQ&G1P-NMq@f?@*XUcSbV?tX=)ilM-Q zBZP|!Bpv0V;#ojKcpc7$=eqO;#Uy~#?^kNI{vSZfLx&DEt~LTmaKWXcx=joubklI<*Aw z>LtMaQ7DR<1I2LkWvwyu#Rwn~;ezT}_g(@5l3h?W%-a86Y-t#O1PubP+z<%?V5D(U zy57A6{h+{?kOZp7&WKZR+=sznMJ}+Dnpo=C_0%R_x_t~J5T?E_{+))l5v1%52>)d-`iiZyx|5!%M2Fb2dU zW3~MwwpEH9Rhue+k$UIOoo($Ds!NbOyMR36fRHu;*15(YcA7siIZk#%JWz>P!qX1?IUojG&nKR>^gArBt2 zit(ETyZ=@V&7mv_Fi4bABcnwP+jzQuHcfU&BrAV91u-rFvEi7y-KnWsvHH=d2 zgAk(GKm_S8RcTJ>2N3~&Hbwp{Z3NF_Xeh}g4Eke)V&dY{W(3&b1j9t4yK_aYJisZZ{1rcU5- z;eD>K;ndPq&B-8yA_S0F!4ThA&{1{x)H<#?k9a#6Pc6L?V^s0``ynL&D;p(!Nmx`Y zFkHex{4p!Ggm^@DlehW}iHHVi}~u=$&N? z(NEBLQ#UxxAkdW>X9LnqUr#t4Lu0=9L8&o>JsqTtT5|%gb3QA~hr0pED71+iFFr)dZ=Q=E6ng{NE{Z~0)C?deO#?Aj zSDQ$z#TeC2T^|=}6GBo-&$;E{HL3!q3Z-szuf)O=G#zDjin4SSP%o%6+2IT#sLjQa ziyxFFz~LMjWY+_a5H!U6%a<=b7QVP^ z*90a62;bVq{?@)P6^DWd^Yilq4|YTV2Nw!Yu;a1lPI-sxR)rf@Fe5DhDP7FH zZZ%4S*1C30P;|O+jB!1;m|rXT90Sm5*RBbQN`PKu+hDD*S^yE(CdtSfg=z>u$cIj> z + + + + + + Svelte app + + + + + + + + + + + diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 000000000..9994f0e37 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,75 @@ +import svelte from 'rollup-plugin-svelte'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +import livereload from 'rollup-plugin-livereload'; +import { terser } from 'rollup-plugin-terser'; + +const production = !process.env.ROLLUP_WATCH; + +function serve() { + let server; + + function toExit() { + if (server) server.kill(0); + } + + return { + writeBundle() { + if (server) return; + server = require('child_process').spawn('npm', ['run', 'dapp-start', '--', '--dev'], { + stdio: ['ignore', 'inherit', 'inherit'], + shell: true + }); + + process.on('SIGTERM', toExit); + process.on('exit', toExit); + } + }; +} + +export default { + input: 'dapp/main.js', + output: { + sourcemap: true, + format: 'iife', + name: 'app', + file: 'public/build/bundle.js' + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + css: css => { + css.write('bundle.css'); + } + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + + // In dev mode, call `npm run start` once + // the bundle has been generated + !production && serve(), + + // Watch the `public` directory and refresh the + // browser on changes when not in production + !production && livereload('public'), + + // If we're building for production (npm run build + // instead of npm run dev), minify + production && terser() + ], + watch: { + clearScreen: false + } +}; diff --git a/src/core/DAppServer.ts b/src/core/DAppServer.ts new file mode 100644 index 000000000..47b52609d --- /dev/null +++ b/src/core/DAppServer.ts @@ -0,0 +1,59 @@ +import http from "http"; +import path from "path"; +import fs from "fs"; + +export default function runDAppServer(port: number) { + http.createServer(function (request, response) { + + let filePath = request.url; + if (filePath == '/') { + filePath = path.join(__dirname, "../../public", "index.html"); + } else { + filePath = path.join(__dirname, "../../public", filePath || "") + } + + var extname = path.extname(filePath); + var contentType = 'text/html'; + switch (extname) { + case '.js': + contentType = 'text/javascript'; + break; + case '.css': + contentType = 'text/css'; + break; + case '.json': + contentType = 'application/json'; + break; + case '.png': + contentType = 'image/png'; + break; + case '.jpg': + contentType = 'image/jpg'; + break; + case '.wav': + contentType = 'audio/wav'; + break; + } + fs.readFile(filePath, function(error, content) { + if (error) { + if(error.code == 'ENOENT'){ + fs.readFile(path.join(__dirname, "../../public", "404.html"), function(error, content) { + response.writeHead(200, { 'Content-Type': contentType }); + response.end(content, 'utf-8'); + }); + } + else { + response.writeHead(500); + response.end('Sorry, check with the site admin for error: '+error.code+' ..\n'); + response.end(); + } + } + else { + response.writeHead(200, { 'Content-Type': contentType }); + response.end(content, 'utf-8'); + } + }); + + }).listen(port); + console.log("\x1b[32m", `Ξ 🦄 DApp integration server running at: http://127.0.0.1:${port}/`, "\x1b[0m"); +} \ No newline at end of file diff --git a/src/core/PerspectivismCore.ts b/src/core/PerspectivismCore.ts index e45a61621..a73fa05fe 100644 --- a/src/core/PerspectivismCore.ts +++ b/src/core/PerspectivismCore.ts @@ -17,6 +17,7 @@ import LanguageFactory from './LanguageFactory' import * as PubSub from './graphQL-interface/PubSub' import { IPFS as IPFSType } from 'ipfs' import EntanglementProofController from './EntanglementProof' +import runDAppServer from "./DAppServer" export interface InitServicesParams { portHCAdmin?: number, @@ -91,6 +92,10 @@ export default class PerspectivismCore { console.log(`🚀 GraphQL subscriptions ready at ${subscriptionsUrl}`) } + startDAppServer(port: number) { + runDAppServer(port) + } + async initServices(params: InitServicesParams) { console.log("Init HolochainService with data path: ", Config.holochainDataPath, ". Conductor path: ", Config.holochainConductorPath, ". Resource path: ", Config.resourcePath) console.log(`Holochain ports: admin=${params.portHCAdmin} app=${params.portHCApp}`) diff --git a/src/main.ts b/src/main.ts index a71fda125..553b85b16 100644 --- a/src/main.ts +++ b/src/main.ts @@ -16,6 +16,7 @@ interface OuterConfig { appLangAliases: object | null, mocks: boolean, portGraphQL?: number, + portDAppServer?: number, portHCAdmin?: number, portHCApp?: number, ipfsSwarmPort?: number, @@ -29,12 +30,13 @@ export async function init(config: OuterConfig): Promise { resourcePath, appDataPath, appDefaultLangPath, ad4mBootstrapLanguages, ad4mBootstrapFixtures, appBuiltInLangs, appLangAliases, mocks, - portGraphQL, portHCAdmin, portHCApp, + portGraphQL, portHCAdmin, portHCApp, portDAppServer, ipfsSwarmPort, ipfsRepoPath, useLocalHolochainProxy } = config if(!portGraphQL) portGraphQL = 4000 + if(!portDAppServer) portDAppServer = 3675 if(!portHCAdmin) portHCAdmin = 2000 if(!portHCApp) portHCApp = 1337 let builtInLangPath = appDefaultLangPath; @@ -88,6 +90,7 @@ export async function init(config: OuterConfig): Promise { await core.initServices({ portHCAdmin, portHCApp, ipfsSwarmPort, ipfsRepoPath, useLocalHolochainProxy }); console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); await core.startGraphQLServer(portGraphQL, mocks) + await core.startDAppServer(portDAppServer) console.log("\x1b[32m", "AD4M init complete", "\x1b[0m"); return core diff --git a/src/tests/integration.test.ts b/src/tests/integration.test.ts index 94b60dc72..835b57060 100644 --- a/src/tests/integration.test.ts +++ b/src/tests/integration.test.ts @@ -126,55 +126,55 @@ describe("Integration tests", () => { }) describe('Agent / Agent-Setup', agentTests(testContext)) - describe('Expression', expressionTests(testContext)) - describe('Language', languageTests(testContext)) - describe('Perspective', perspectiveTests(testContext)) - - describe('with Alice and Bob', () => { - let bob: PerspectivismCore | null = null - beforeAll(async () => { - const appDataPath = path.join(TEST_DIR, 'agents', 'bob') - const ipfsRepoPath = path.join(appDataPath, '.jsipfs') - if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - fs.mkdirSync(path.join(TEST_DIR, 'agents')) - if(!fs.existsSync(appDataPath)) - fs.mkdirSync(appDataPath) - - bob = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - appDefaultLangPath: path.join(TEST_DIR, 'languages'), - ad4mBootstrapLanguages: { - agents: "agent-expression-store", - languages: "languages", - neighbourhoods: "neighbourhood-store", - }, - ad4mBootstrapFixtures: { - languages: [], - perspectives: [], - }, - appBuiltInLangs: ['note-ipfs'], - appLangAliases: null, - mocks: false, - portGraphQL: 14000, - portHCAdmin: 12000, - portHCApp: 11337, - ipfsSwarmPort: 14002, - ipfsRepoPath, - useLocalHolochainProxy: true - }) - - bob.initControllers() - await bob.initLanguages(false) - - testContext.bob = new Ad4mClient(apolloClient(14000)) - }) - - afterAll(async () => { - await bob!.exit(); - await new Promise((resolve)=>setTimeout(resolve, 1000)) - }) - - describe('Neighbourhood', neighbourhoodTests(testContext)) - }) + // describe('Expression', expressionTests(testContext)) + // describe('Language', languageTests(testContext)) + // describe('Perspective', perspectiveTests(testContext)) + + // describe('with Alice and Bob', () => { + // let bob: PerspectivismCore | null = null + // beforeAll(async () => { + // const appDataPath = path.join(TEST_DIR, 'agents', 'bob') + // const ipfsRepoPath = path.join(appDataPath, '.jsipfs') + // if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + // fs.mkdirSync(path.join(TEST_DIR, 'agents')) + // if(!fs.existsSync(appDataPath)) + // fs.mkdirSync(appDataPath) + + // bob = await main.init({ + // appDataPath, + // resourcePath: TEST_DIR, + // appDefaultLangPath: path.join(TEST_DIR, 'languages'), + // ad4mBootstrapLanguages: { + // agents: "agent-expression-store", + // languages: "languages", + // neighbourhoods: "neighbourhood-store", + // }, + // ad4mBootstrapFixtures: { + // languages: [], + // perspectives: [], + // }, + // appBuiltInLangs: ['note-ipfs'], + // appLangAliases: null, + // mocks: false, + // portGraphQL: 14000, + // portHCAdmin: 12000, + // portHCApp: 11337, + // ipfsSwarmPort: 14002, + // ipfsRepoPath, + // useLocalHolochainProxy: true + // }) + + // bob.initControllers() + // await bob.initLanguages(false) + + // testContext.bob = new Ad4mClient(apolloClient(14000)) + // }) + + // afterAll(async () => { + // await bob!.exit(); + // await new Promise((resolve)=>setTimeout(resolve, 1000)) + // }) + + // describe('Neighbourhood', neighbourhoodTests(testContext)) + // }) }) \ No newline at end of file From 5ac5baabcf28d0b9af1f78667c04ef56e5964257 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 27 Aug 2021 23:53:48 +0100 Subject: [PATCH 006/722] add missing main.js for dapp --- .gitignore | 3 ++- dapp/main.js | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 dapp/main.js diff --git a/.gitignore b/.gitignore index 52b3396a1..571ad0fca 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ !/src/rollup-plugin-hc-dna.js test-temp !rollup.config.js -public/build \ No newline at end of file +public/build +!dapp/*.js \ No newline at end of file diff --git a/dapp/main.js b/dapp/main.js new file mode 100644 index 000000000..2c27a2579 --- /dev/null +++ b/dapp/main.js @@ -0,0 +1,7 @@ +import App from './App.svelte'; + +const app = new App({ + target: document.body +}); + +export default app; From 121e48adaa3d6b90a2360cbb701db73764812a49 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Sat, 28 Aug 2021 00:42:40 +0100 Subject: [PATCH 007/722] add function dapp signature app --- dapp/App.svelte | 118 +- dapp/ethereum.js | 97 + dapp/main.js | 4 +- package-lock.json | 4803 ++++++++++++++++++++++++++++++++++++++++++--- package.json | 29 +- public/index.html | 2 +- rollup.config.js | 22 +- 7 files changed, 4761 insertions(+), 314 deletions(-) create mode 100644 dapp/ethereum.js diff --git a/dapp/App.svelte b/dapp/App.svelte index 1f1badad2..c6ce77a50 100644 --- a/dapp/App.svelte +++ b/dapp/App.svelte @@ -1,46 +1,98 @@
-
-

Hello World!

-
+ {#if currentAccount==undefined} +

Get Started

+

+ Welcome to AD4M, thanks for being here. Lets connect all the dapps :) +

Sign into MetaMask 

+ +
+

Sign into WalletConnect

+ + {:else} +

Sign Some Shit

+ + {/if}
\ No newline at end of file diff --git a/dapp/ethereum.js b/dapp/ethereum.js new file mode 100644 index 000000000..fcd34325d --- /dev/null +++ b/dapp/ethereum.js @@ -0,0 +1,97 @@ +import detectEthereumProvider from '@metamask/detect-provider'; + +export async function startEthereum(handleAccountsChanged) { + const provider = await detectEthereumProvider(); + if(!provider) { + console.log('Please install MetaMask!') + setTimeout(startEthereum, 1000) + } else { + // If the provider returned by detectEthereumProvider is not the same as + // window.ethereum, something is overwriting it, perhaps another wallet. + if (provider !== window.ethereum) { + console.error('Do you have multiple wallets installed?'); + } + // Access the decentralized web! + + window.ethereum.on('chainChanged', window.location.reload) + + ethereum + .request({ method: 'eth_accounts' }) + .then(handleAccountsChanged) + .catch((err) => { + // Some unexpected error. + // For backwards compatibility reasons, if no accounts are available, + // eth_accounts will return an empty array. + console.error(err); + }); + + // Note that this event is emitted on page load. + // If the array of accounts is non-empty, you're already + // connected. + ethereum.on('accountsChanged', handleAccountsChanged); + } +} + +const domain = [ + { name: "name", type: "string" }, + { name: "version", type: "string" }, + { name: "chainId", type: "uint256" }, +]; + +const didEntangle = [ + { name: "did", type: "string" }, +]; + +export async function sign(signer, did) { + const domainData = { + name: "Ad4m DID Authentification", + version: "2", + chainId: 3, + }; + + var message = { + did: did, + }; + + const data = { + types: { + EIP712Domain: domain, + DIDEntangle: didEntangle, + }, + domain: domainData, + primaryType: "DIDEntangle", + message: message + }; + + let req = { + method: "eth_signTypedData_v3", + params: [signer, JSON.stringify(data)], + from: signer + } + console.log('sign: sending request ' + JSON.stringify(req)) + const result = await ethereum.request(req) + + console.log('sign: response received ' + result) + + const signature = result.substring(2); + const r = "0x" + signature.substring(0, 64); + const s = "0x" + signature.substring(64, 128); + const v = parseInt(signature.substring(128, 130), 16); + + return { data, signature, r, s, v } +} + +export function connectWallet(handleAccountsChanged) { + ethereum + .request({ method: 'eth_requestAccounts' }) + .then(handleAccountsChanged) + .catch((err) => { + if (err.code === 4001) { + // EIP-1193 userRejectedRequest error + // If this happens, the user rejected the connection request. + console.log('Please connect to MetaMask.'); + } else { + console.error(err); + } + }); +} \ No newline at end of file diff --git a/dapp/main.js b/dapp/main.js index 2c27a2579..d80e9a350 100644 --- a/dapp/main.js +++ b/dapp/main.js @@ -1,7 +1,7 @@ import App from './App.svelte'; const app = new App({ - target: document.body + target: document.body, }); -export default app; +export default app; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 8e7c8e842..659c97fc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1058,6 +1058,224 @@ "minimist": "^1.2.0" } }, + "@ethereumjs/common": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.4.0.tgz", + "integrity": "sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.0" + } + }, + "@ethereumjs/tx": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.0.tgz", + "integrity": "sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA==", + "requires": { + "@ethereumjs/common": "^2.4.0", + "ethereumjs-util": "^7.1.0" + } + }, + "@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "requires": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz", + "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz", + "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==", + "requires": { + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0" + } + }, + "@ethersproject/address": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", + "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/rlp": "^5.4.0" + } + }, + "@ethersproject/base64": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", + "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", + "requires": { + "@ethersproject/bytes": "^5.4.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.1.tgz", + "integrity": "sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", + "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/constants": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", + "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", + "requires": { + "@ethersproject/bignumber": "^5.4.0" + } + }, + "@ethersproject/hash": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", + "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", + "requires": { + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, + "@ethersproject/keccak256": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", + "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "js-sha3": "0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } + } + }, + "@ethersproject/logger": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.1.tgz", + "integrity": "sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A==" + }, + "@ethersproject/networks": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz", + "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/properties": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.1.tgz", + "integrity": "sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/rlp": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", + "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", + "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/strings": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", + "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/transactions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", + "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", + "requires": { + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/signing-key": "^5.4.0" + } + }, + "@ethersproject/web": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", + "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", + "requires": { + "@ethersproject/base64": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, "@graphql-typed-document-node/core": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz", @@ -1619,159 +1837,512 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.2.tgz", "integrity": "sha512-PjsLKLzJ0jWM1iM4xdYkrMyonAHP4kHGiXm81FRNfcnjToQA9UOknwZE28bxq0AGmEAMVBPSuuHurzla2wyYyA==" }, - "@mattrglobal/bbs-signatures": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", - "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", + "@material/animation": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-11.0.0.tgz", + "integrity": "sha512-pAJRl0ySvfOzqyGUme27tPf1LbqrjSTK4g5kngpXOPAIQdYYx89QLAfcqHONSpvXO7/WP+Kc9zJ3WWxbUaG8Wg==", + "dev": true, "requires": { - "@mattrglobal/node-bbs-signatures": "0.11.0" + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@mattrglobal/bls12381-key-pair": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", - "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", + "@material/base": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-11.0.0.tgz", + "integrity": "sha512-GTybYdiWBoEyYQ3he8cEeuXe5mPq2peFX41rBsMrs516TGDxrVJrEAKNedydhtpfRBsZRreTXMLZtbGrZzfIFQ==", + "dev": true, "requires": { - "@mattrglobal/bbs-signatures": "0.5.0", - "bs58": "4.0.1", - "rfc4648": "1.4.0" + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@mattrglobal/node-bbs-signatures": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", - "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", - "optional": true, + "@material/button": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-11.0.0.tgz", + "integrity": "sha512-KqqxEcsj8jBkV1yNEiPoHiB1AJBa/1OGm7H+hF+C3RUTIrRLew8IuRL1ZY38ukdHvhno1/qmVMKOs6ui0mxjlg==", + "dev": true, "requires": { - "neon-cli": "0.4.0", - "node-pre-gyp": "0.14.0" + "@material/density": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/elevation": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/touch-target": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@motrix/nat-api": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", - "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", + "@material/density": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-11.0.0.tgz", + "integrity": "sha512-FuSx0UukH7p9cIAxEg78zwL5iYuoa/YovyHuuEEudyhWsRH+u0KBSQlYWr+ykg//qZF6urlDrVmu7WAKi1SiCw==", + "dev": true, "requires": { - "async": "^3.2.0", - "debug": "^4.3.1", - "default-gateway": "^6.0.3", - "request": "^2.88.2", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.4.23" + "tslib": "^2.1.0" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true } } }, - "@msgpack/msgpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", - "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==" + "@material/dom": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-11.0.0.tgz", + "integrity": "sha512-LZdg6VmYnMXc/Ct/GdQ22o4m3UgjhZYQIrwu9Iebqchx0Vd2OTmcFN5nArHSCSgUEhpjpPlkbZmjOpeOAwiKZg==", + "dev": true, + "requires": { + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } }, - "@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + "@material/elevation": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-11.0.0.tgz", + "integrity": "sha512-mgrUSBAdXJ1+VS/SWnu/gr9/nq7P1q5X3aDmoom2EPKauEeKhuAHjABI5duxHOrliZM3mK9VLO56D/tszb7spw==", + "dev": true, + "requires": { + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } }, - "@peculiar/asn1-schema": { - "version": "2.0.36", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.36.tgz", - "integrity": "sha512-x7fdMR6bzOBct2a0PLukrmVrrehHX5uisKRDWN2Bs1HojXd5nCi7MAQeV+umRxPK1oSJDstTBhGq3sLzDbL8Vw==", + "@material/feature-targeting": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-11.0.0.tgz", + "integrity": "sha512-7/jdaHm7C16Eq02tDQ1iI+giWKgk+QRNWFrmGKzHfXbU604XwY/eSLSiVS8QI01vx9QZ0aO9K84m0yhQQNQQtg==", + "dev": true, "requires": { - "@types/asn1js": "^2.0.0", - "asn1js": "^2.1.1", - "pvtsutils": "^1.1.7", - "tslib": "^2.2.0" + "tslib": "^2.1.0" }, "dependencies": { "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true } } }, - "@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "@material/floating-label": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-11.0.0.tgz", + "integrity": "sha512-sY/ijV06cU0y9+1OB122d6z2AuxLzjQgQGVq9dFLoVRL6jhV2HgOxGF/3cvZsgGGsv2liXagkmQ02jBV1ypvgA==", + "dev": true, "requires": { - "tslib": "^2.0.0" + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" }, "dependencies": { "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true } } }, - "@peculiar/webcrypto": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz", - "integrity": "sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ==", + "@material/line-ripple": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-11.0.0.tgz", + "integrity": "sha512-ws0p28hfG5P7RuCJZhHBDhPd/pYusszwRWMa1xkATxCjdCDc9hC9RIsUb6eIG9/iwpYnLNRvIoR5iF+01rVhow==", + "dev": true, "requires": { - "@peculiar/asn1-schema": "^2.0.32", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.1.6", - "tslib": "^2.2.0", - "webcrypto-core": "^1.2.0" + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" }, "dependencies": { "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true } } }, - "@perspect3vism/ad4m": { - "version": "file:../ad4m", + "@material/notched-outline": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-11.0.0.tgz", + "integrity": "sha512-GwYFIRA6raFljNARmEpIcIjHztjKD8wcDf+6xl1WezsprGd/Qdzq59/VX76y1et8ZkkL0+fE+4dEaVpCHq/e8A==", + "dev": true, "requires": { - "@apollo/client": "3.3.20", - "@holochain/conductor-api": "0.0.4", - "@types/jest": "^26.0.15", - "@types/mocha": "^8.0.3", - "class-validator": "^0.13.1", - "graphql": "^15.5.0", - "react": "^17.0.2", - "reflect-metadata": "^0.1.13", - "type-graphql": "^1.1.1" + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/floating-label": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" }, "dependencies": { - "@apollo/client": { - "version": "3.3.20", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", - "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", - "requires": { - "@graphql-typed-document-node/core": "^3.0.0", - "@types/zen-observable": "^0.8.0", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "fast-json-stable-stringify": "^2.0.0", - "graphql-tag": "^2.12.0", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.0", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.7.0", - "tslib": "^1.10.0", - "zen-observable": "^0.8.14" - } - }, - "@apollo/link-error": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@material/ripple": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-11.0.0.tgz", + "integrity": "sha512-672zAsYaL8aS861VgfEPL4sFMkFe0psiSc+4DfUTq7Nanl4e1gcarzzHZAn5IExUNk3/5QybDiXV+dbaL/0NjQ==", + "dev": true, + "requires": { + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@material/rtl": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-11.0.0.tgz", + "integrity": "sha512-FcS8+N9MhnC0Wdd34O2yCC/5ylIwkfHjV5pbmHyEtb4YXoWngnPIxgpOr5PsUv95WSQBmeqWCRJDwS+sGZHoKQ==", + "dev": true, + "requires": { + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@material/shape": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-11.0.0.tgz", + "integrity": "sha512-O9/Dt/9Nbum1IvxRd4u8gCF4ghk9E55UNp2TGe+RN43zpTUbChh2raOFr3sQeRwLIzlb4wstUG9AxmdktrkDUQ==", + "dev": true, + "requires": { + "@material/feature-targeting": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@material/textfield": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-11.0.0.tgz", + "integrity": "sha512-7GwZCJplxQpdExNO8K3IOPH/SniCd4bcvOuKGYWjW1irOLYVX2Om0e7X2q70XWvD/B85Rb8ZaPXqx3EJiwNrvQ==", + "dev": true, + "requires": { + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/density": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/floating-label": "^11.0.0", + "@material/line-ripple": "^11.0.0", + "@material/notched-outline": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@material/theme": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-11.0.0.tgz", + "integrity": "sha512-GnQI8sd2wHFD3AvmhpyRaH5o9D5Shobs1xDH4FdRU9+c+FNNqouZMDzyM6UpCX4700DzqvE7l0/1LjzB7ve7Lg==", + "dev": true, + "requires": { + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@material/touch-target": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-11.0.0.tgz", + "integrity": "sha512-S1XPYj3Bnkw26nFdYRZ0BHcNLfizF8HBeX9+OR7KuJUKaFB6CN01CtyEmDU3XNI0n140KjMtJnsZykWZommolQ==", + "dev": true, + "requires": { + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@material/typography": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-11.0.0.tgz", + "integrity": "sha512-i9IGO/ZsF+YnqC2+PpJapt/8hSXOKFXaqv6B9uUr+iQ8GD4bEFpxm5kChzH918wJpCHvxbTYbnR6buaF9nkjCQ==", + "dev": true, + "requires": { + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@mattrglobal/bbs-signatures": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", + "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", + "requires": { + "@mattrglobal/node-bbs-signatures": "0.11.0" + } + }, + "@mattrglobal/bls12381-key-pair": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", + "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", + "requires": { + "@mattrglobal/bbs-signatures": "0.5.0", + "bs58": "4.0.1", + "rfc4648": "1.4.0" + } + }, + "@mattrglobal/node-bbs-signatures": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", + "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", + "optional": true, + "requires": { + "neon-cli": "0.4.0", + "node-pre-gyp": "0.14.0" + } + }, + "@metamask/detect-provider": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz", + "integrity": "sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ==" + }, + "@motrix/nat-api": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", + "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", + "requires": { + "async": "^3.2.0", + "debug": "^4.3.1", + "default-gateway": "^6.0.3", + "request": "^2.88.2", + "unordered-array-remove": "^1.0.2", + "xml2js": "^0.4.23" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@msgpack/msgpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", + "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==" + }, + "@multiformats/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, + "@peculiar/asn1-schema": { + "version": "2.0.36", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.36.tgz", + "integrity": "sha512-x7fdMR6bzOBct2a0PLukrmVrrehHX5uisKRDWN2Bs1HojXd5nCi7MAQeV+umRxPK1oSJDstTBhGq3sLzDbL8Vw==", + "requires": { + "@types/asn1js": "^2.0.0", + "asn1js": "^2.1.1", + "pvtsutils": "^1.1.7", + "tslib": "^2.2.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "requires": { + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, + "@peculiar/webcrypto": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz", + "integrity": "sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ==", + "requires": { + "@peculiar/asn1-schema": "^2.0.32", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.1.6", + "tslib": "^2.2.0", + "webcrypto-core": "^1.2.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, + "@perspect3vism/ad4m": { + "version": "file:../ad4m", + "requires": { + "@apollo/client": "3.3.20", + "@holochain/conductor-api": "0.0.4", + "@types/jest": "^26.0.15", + "@types/mocha": "^8.0.3", + "class-validator": "^0.13.1", + "graphql": "^15.5.0", + "react": "^17.0.2", + "reflect-metadata": "^0.1.13", + "type-graphql": "^1.1.1" + }, + "dependencies": { + "@apollo/client": { + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", + "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", + "requires": { + "@graphql-typed-document-node/core": "^3.0.0", + "@types/zen-observable": "^0.8.0", + "@wry/context": "^0.6.0", + "@wry/equality": "^0.5.0", + "fast-json-stable-stringify": "^2.0.0", + "graphql-tag": "^2.12.0", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.0", + "prop-types": "^15.7.2", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.7.0", + "tslib": "^1.10.0", + "zen-observable": "^0.8.14" + } + }, + "@apollo/link-error": { "version": "2.0.0-beta.3", "resolved": "https://registry.npmjs.org/@apollo/link-error/-/link-error-2.0.0-beta.3.tgz", "integrity": "sha512-blNBBi9+4SEfb4Bhn8cYqGFhb0C7MjqLiRwNdUqwGefl1w+G8Ze8pCLHAyPxXLcslirtht9LY0i6ZOpCzSXHCg==", @@ -7233,6 +7804,7 @@ "version": "17.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", + "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", "commondir": "^1.0.1", @@ -7247,6 +7819,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "dev": true, "requires": { "@rollup/pluginutils": "^3.0.8" } @@ -7255,6 +7828,7 @@ "version": "11.2.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", @@ -7268,6 +7842,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, "requires": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", @@ -7277,7 +7852,8 @@ "estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true } } }, @@ -7336,18 +7912,115 @@ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" }, - "@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "@stablelib/aes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", - "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", + "@smui/button": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/button/-/button-4.2.0.tgz", + "integrity": "sha512-impnVMXWHLqBXUyjo+GKRuLOgICv2bX//JVKKV3oba8msIimdOi0BR1Ds7ecti6248eXuFlwrE4GM/oc/57G1A==", + "dev": true, "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", + "@material/button": "^11.0.0", + "@material/elevation": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/theme": "^11.0.0", + "@smui/common": "^4.2.0", + "@smui/ripple": "^4.2.0" + } + }, + "@smui/common": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/common/-/common-4.2.0.tgz", + "integrity": "sha512-ersYpoqvb0hGP2lFdOtNlue5m74H/eOEtpbb5r4Sk8lmwaDh+Gj8xbX93AAE2Jfq/p6XcEmHB6CsGoATi5JHOQ==", + "dev": true, + "requires": { + "@material/dom": "^11.0.0", + "svelte": "^3.35.0" + } + }, + "@smui/floating-label": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/floating-label/-/floating-label-4.2.0.tgz", + "integrity": "sha512-EQhJkzt0AMqbBj/bxY9TmovsPVPxVcfQCZZrpfbJ0V2PqyZGOVXEjggGpa638PcRHPX44NjSSCnJNiKa6SCGEQ==", + "dev": true, + "requires": { + "@material/floating-label": "^11.0.0", + "@smui/common": "^4.2.0" + } + }, + "@smui/line-ripple": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/line-ripple/-/line-ripple-4.2.0.tgz", + "integrity": "sha512-FA/btw+A97pUGYejkdZmSSQ2V6pnAVcgY4W7qNagRlfuyxfHf7a+rFQjgj8eN4hRBSihh8hcV+Tyfo+2oCOYog==", + "dev": true, + "requires": { + "@material/line-ripple": "^11.0.0", + "@smui/common": "^4.2.0" + } + }, + "@smui/notched-outline": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/notched-outline/-/notched-outline-4.2.0.tgz", + "integrity": "sha512-6HY/N2e8jFZgtrM1xBpniYrZGhBRuM26PpFAHce6BjHB2IUDd+hdQbGmsiQnoQ6CsXhTuDyHL8c2RMfuSRbAJg==", + "dev": true, + "requires": { + "@material/notched-outline": "^11.0.0", + "@smui/common": "^4.2.0" + } + }, + "@smui/paper": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/paper/-/paper-4.2.0.tgz", + "integrity": "sha512-szeOAYwB6pyppGy5md3CdNZW59IDnwD/mw+H6vJdHuxEEe6OXvQ2rPi9ojOrHEiBz8dN8ryTKQxTrXDbrJWeNA==", + "dev": true, + "requires": { + "@material/elevation": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/typography": "^11.0.0", + "@smui/common": "^4.2.0" + } + }, + "@smui/ripple": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/ripple/-/ripple-4.2.0.tgz", + "integrity": "sha512-oTaPC/6FAYwifth9AvkUuIC5SenMPITg1yZSdD9B1Wcgi2NRAWuMDV2j6Kc+yYgv6iUCKlQ26fCxK2xmYwqhug==", + "dev": true, + "requires": { + "@material/dom": "^11.0.0", + "@material/ripple": "^11.0.0" + } + }, + "@smui/textfield": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/textfield/-/textfield-4.2.0.tgz", + "integrity": "sha512-4RxvxcabtPrlYiHddsF/uFjOZhA3qA/W17HyiccTKxfHpZWOxxnZvCE4CDs8LyckEvz73fSUTQOb4pqd2Of02g==", + "dev": true, + "requires": { + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/textfield": "^11.0.0", + "@smui/common": "^4.2.0", + "@smui/floating-label": "^4.2.0", + "@smui/line-ripple": "^4.2.0", + "@smui/notched-outline": "^4.2.0", + "@smui/ripple": "^4.2.0" + } + }, + "@stablelib/aead": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", + "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" + }, + "@stablelib/aes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", + "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/blockcipher": "^1.0.1", "@stablelib/wipe": "^1.0.1" } }, @@ -7712,6 +8385,14 @@ "@types/node": "*" } }, + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, "@types/body-parser": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", @@ -7768,7 +8449,8 @@ "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true }, "@types/express": { "version": "4.17.13", @@ -7944,12 +8626,26 @@ "form-data": "^3.0.0" } }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, "@types/prettier": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.1.tgz", "integrity": "sha512-NVkb4p4YjI8E3O6+1m8I+8JlMpFZwfSbPGdaw0wXuyPRTEz0SLKwBUWNSO7Maoi8tQMPC8JLZNWkrcKPI7/sLA==", "dev": true }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", + "dev": true + }, "@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", @@ -7973,6 +8669,7 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, "requires": { "@types/node": "*" } @@ -7986,7 +8683,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, "requires": { "@types/node": "*" } @@ -8115,8 +8811,7 @@ "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "abort-controller": { "version": "3.0.0", @@ -8246,6 +8941,18 @@ "uri-js": "^4.2.2" } }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, "ansi-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", @@ -8331,6 +9038,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -8554,14 +9262,12 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -8570,14 +9276,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8591,14 +9295,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, "requires": { "safe-buffer": "~5.1.0" } @@ -8709,6 +9411,12 @@ } } }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -8781,6 +9489,17 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, "async-retry": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", @@ -9072,6 +9791,12 @@ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "bignumber.js": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", @@ -9090,7 +9815,8 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, "bindings": { "version": "1.5.0", @@ -9133,6 +9859,15 @@ "browser-readablestream-to-it": "^1.0.2" } }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, "bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", @@ -9185,6 +9920,12 @@ } } }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, "borc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", @@ -9259,6 +10000,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -9381,6 +10123,16 @@ "base-x": "^3.0.2" } }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, "bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -9419,6 +10171,11 @@ "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", "dev": true }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -9430,6 +10187,21 @@ "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", "dev": true }, + "bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "requires": { + "node-gyp-build": "^4.2.0" + }, + "dependencies": { + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" + } + } + }, "bufio": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.0.7.tgz", @@ -9438,7 +10210,8 @@ "builtin-modules": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true }, "builtins": { "version": "1.0.3", @@ -9567,6 +10340,36 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, "caniuse-lite": { "version": "1.0.30001242", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001242.tgz", @@ -9699,6 +10502,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -9713,8 +10517,7 @@ "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "ci-info": { "version": "3.2.0", @@ -10034,6 +10837,69 @@ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -10059,6 +10925,33 @@ "object-visit": "^1.0.0" } }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + }, + "dependencies": { + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -10072,6 +10965,16 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "color-string": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", + "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "colorette": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", @@ -10208,6 +11111,15 @@ } } }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -10240,8 +11152,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "constant-case": { "version": "3.0.4", @@ -10275,34 +11186,112 @@ } } }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-hex": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", - "integrity": "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", "requires": { - "safe-buffer": "~5.1.1" + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" }, "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "convert-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", + "cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "requires": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "dependencies": { + "multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "requires": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + } + } + }, + "multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "requires": { + "varint": "^5.0.0" + } + }, + "multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + }, + "dependencies": { + "multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + } + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-hex": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", + "integrity": "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "convert-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", "integrity": "sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo=" }, "cookie": { @@ -10315,6 +11304,11 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -10395,6 +11389,15 @@ } } }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, "create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -10478,11 +11481,271 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-modules-loader-core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", + "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=", + "dev": true, + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.1", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, "cssfilter": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" }, + "cssnano": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + } + } + }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -10506,6 +11769,24 @@ } } }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "dag-cbor-links": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/dag-cbor-links/-/dag-cbor-links-2.0.2.tgz", @@ -10794,7 +12075,8 @@ "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true }, "default-gateway": { "version": "6.0.3", @@ -10848,8 +12130,7 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "delimit-stream": { "version": "0.1.0", @@ -10984,6 +12265,35 @@ "@leichtgewicht/ip-codec": "^2.0.1" } }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + } + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, "domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -11001,6 +12311,16 @@ } } }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, "dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -11136,6 +12456,12 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -11261,6 +12587,12 @@ "has-binary2": "~1.0.2" } }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, "err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", @@ -11315,11 +12647,40 @@ "is-symbol": "^1.0.2" } }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "es6-promisify": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==" }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -11367,7 +12728,8 @@ "estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true }, "esutils": { "version": "2.0.3", @@ -11380,14 +12742,148 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", + "requires": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } + } + }, + "eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "requires": { + "js-sha3": "^0.8.0" + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-util": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz", + "integrity": "sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "event-iterator": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", + "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { @@ -11469,6 +12965,11 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -11638,6 +13139,21 @@ } } }, + "ext": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", + "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "requires": { + "type": "^2.5.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -11759,6 +13275,12 @@ "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, "fb-watchman": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", @@ -11828,6 +13350,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -12047,7 +13570,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, "requires": { "minipass": "^2.6.0" } @@ -12061,6 +13583,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true }, "fstream": { @@ -12100,7 +13623,6 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -12115,14 +13637,12 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -12131,7 +13651,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -12142,13 +13661,21 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, "requires": { "ansi-regex": "^2.0.0" } } } }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, "gc-stats": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/gc-stats/-/gc-stats-1.4.0.tgz", @@ -12630,6 +14157,15 @@ } } }, + "generic-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", + "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -12685,6 +14221,12 @@ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -12729,10 +14271,20 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, "global-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", @@ -12761,6 +14313,17 @@ "define-properties": "^1.1.3" } }, + "globule": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", + "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -12910,6 +14473,23 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", @@ -12933,16 +14513,28 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "has-value": { "version": "1.0.0", @@ -13046,6 +14638,12 @@ "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=" }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -13070,6 +14668,18 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, "html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -13102,6 +14712,11 @@ "toidentifier": "1.0.0" } }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" + }, "http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", @@ -13180,6 +14795,27 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } + } + }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -13204,6 +14840,15 @@ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" }, + "import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "requires": { + "import-from": "^3.0.0" + } + }, "import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", @@ -13220,6 +14865,15 @@ } } }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -13240,11 +14894,23 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -14643,6 +16309,12 @@ } } }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -14673,6 +16345,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -14709,6 +16382,20 @@ "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==" }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, "is-core-module": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", @@ -14766,7 +16453,14 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true }, "is-fn": { "version": "1.0.0", @@ -14778,6 +16472,11 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, "is-generator-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", @@ -14793,10 +16492,16 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, "is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -14856,7 +16561,8 @@ "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true }, "is-negative-zero": { "version": "2.0.1", @@ -14871,7 +16577,8 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-number-object": { "version": "1.0.5", @@ -14883,6 +16590,11 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -14916,6 +16628,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, "requires": { "@types/estree": "*" } @@ -14929,6 +16642,17 @@ "has-symbols": "^1.0.2" } }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", @@ -14964,6 +16688,12 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -15118,6 +16848,15 @@ "istanbul-lib-report": "^3.0.0" } }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, "it-all": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", @@ -16264,6 +18003,12 @@ "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==" }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, "js-sha3": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", @@ -16489,6 +18234,23 @@ "randombytes": "^2.1.0" } }, + "keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" + } + } + }, "keypair": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz", @@ -17624,6 +19386,7 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "dev": true, "requires": { "chokidar": "^3.5.0", "livereload-js": "^3.3.1", @@ -17634,7 +19397,8 @@ "livereload-js": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz", - "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==" + "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==", + "dev": true }, "load-json-file": { "version": "2.0.0", @@ -17667,6 +19431,28 @@ } } }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, "loady": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz", @@ -17690,6 +19476,12 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -17710,6 +19502,12 @@ "resolved": "https://registry.npmjs.org/lodash.max/-/lodash.max-4.0.1.tgz", "integrity": "sha1-hzVWbGGLNan3YFILSHrnllivE2o=" }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -17741,6 +19539,12 @@ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, "loglevel": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", @@ -17759,6 +19563,16 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, "lowdb": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", @@ -17816,6 +19630,7 @@ "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, "requires": { "sourcemap-codec": "^1.4.4" } @@ -17854,7 +19669,13 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, - "map-visit": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", @@ -17872,6 +19693,12 @@ "safe-buffer": "^5.1.2" } }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -17910,6 +19737,105 @@ } } }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -19446,6 +21372,14 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -19473,7 +21407,6 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -19482,8 +21415,7 @@ "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" } } }, @@ -19491,7 +21423,6 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, "requires": { "minipass": "^2.9.0" } @@ -19513,6 +21444,19 @@ "minimist": "^1.2.5" } }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "requires": { + "mkdirp": "*" + } + }, + "mock-fs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", + "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" + }, "mortice": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mortice/-/mortice-2.0.1.tgz", @@ -19784,6 +21728,11 @@ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" + }, "nanoid": { "version": "3.1.23", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", @@ -19963,6 +21912,11 @@ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -20034,6 +21988,63 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + } + } + }, "node-gyp-build": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", @@ -20089,6 +22100,99 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, "node-wget-js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/node-wget-js/-/node-wget-js-1.0.1.tgz", @@ -20134,7 +22238,8 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "normalize-url": { "version": "4.5.1", @@ -20179,7 +22284,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -20187,6 +22291,15 @@ "set-blocking": "~2.0.0" } }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, "nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", @@ -20197,6 +22310,22 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -20336,6 +22465,25 @@ "isobject": "^3.0.1" } }, + "object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + } + }, + "oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", + "requires": { + "http-https": "^1.0.0" + } + }, "observable-webworkers": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-1.0.0.tgz", @@ -20403,13 +22551,13 @@ "opts": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", - "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==" + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", + "dev": true }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "2.1.0", @@ -20469,7 +22617,6 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -20800,6 +22947,15 @@ } } }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -20904,13 +23060,29 @@ "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, "pino": { "version": "6.11.3", "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", @@ -20948,26 +23120,925 @@ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "dependencies": { + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-2.0.0.tgz", + "integrity": "sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw==", + "dev": true, + "requires": { + "css-modules-loader-core": "^1.1.0", + "generic-names": "^2.0.1", + "lodash.camelcase": "^4.3.0", + "postcss": "^7.0.1", + "string-hash": "^1.1.1" + } + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, "requires": { - "node-modules-regexp": "^1.0.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" } }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "dev": true, "requires": { - "find-up": "^4.0.0" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true }, "prelude-ls": { "version": "1.1.2", @@ -21027,6 +24098,11 @@ } } }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + }, "private-ip": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.2.1.tgz", @@ -21036,6 +24112,11 @@ "netmask": "^2.0.2" } }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -21087,6 +24168,12 @@ "set-immediate-shim": "^1.0.1" } }, + "promise.series": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", + "integrity": "sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=", + "dev": true + }, "prompts": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", @@ -21240,6 +24327,12 @@ "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -21506,6 +24599,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -21525,6 +24619,27 @@ } } }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + } + } + }, "reduce-flatten": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", @@ -21630,6 +24745,15 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -21701,7 +24825,8 @@ "require-relative": { "version": "0.8.7", "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", - "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=" + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", + "dev": true }, "reset": { "version": "0.1.0", @@ -21797,6 +24922,18 @@ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -21815,26 +24952,95 @@ "inherits": "^2.0.1" } }, + "rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "requires": { + "bn.js": "^4.11.1" + } + }, "rollup": { "version": "2.52.7", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.7.tgz", "integrity": "sha512-55cSH4CCU6MaPr9TAOyrIC+7qFCHscL7tkNsm1MBfIJRRqRbCEY0mmeFn4Wg8FKsHtEH8r389Fz38r/o+kgXLg==", + "dev": true, "requires": { "fsevents": "~2.3.2" } }, + "rollup-plugin-inject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", + "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1", + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, "rollup-plugin-livereload": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", + "dev": true, "requires": { "livereload": "^0.9.1" } }, + "rollup-plugin-node-polyfills": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", + "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", + "dev": true, + "requires": { + "rollup-plugin-inject": "^3.0.0" + } + }, + "rollup-plugin-postcss": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz", + "integrity": "sha512-JHnGfW8quNc6ePxEkZ05HEZ1YiRxDgY9RKEetMfsrwxR2kh/d90OVScTc6b1c2Q17Cs/5TRYL+1uddG21lQe3w==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "concat-with-sourcemaps": "^1.1.0", + "cssnano": "^4.1.10", + "import-cwd": "^3.0.0", + "p-queue": "^6.3.0", + "pify": "^5.0.0", + "postcss": "^7.0.27", + "postcss-load-config": "^2.1.0", + "postcss-modules": "^2.0.0", + "promise.series": "^0.2.0", + "resolve": "^1.16.1", + "rollup-pluginutils": "^2.8.2", + "safe-identifier": "^0.4.1", + "style-inject": "^0.3.0" + }, + "dependencies": { + "pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true + } + } + }, "rollup-plugin-svelte": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz", "integrity": "sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow==", + "dev": true, "requires": { "require-relative": "^0.8.7", "rollup-pluginutils": "^2.8.2", @@ -21845,6 +25051,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", @@ -21856,6 +25063,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -21868,6 +25076,7 @@ "version": "0.30.0", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz", "integrity": "sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==", + "dev": true, "requires": { "@rollup/pluginutils": "^4.1.0", "find-cache-dir": "^3.3.1", @@ -21880,6 +25089,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", + "dev": true, "requires": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" @@ -21889,6 +25099,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -21899,6 +25110,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -21909,6 +25121,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -21916,12 +25129,14 @@ "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "dev": true }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true } } }, @@ -21929,6 +25144,7 @@ "version": "2.8.2", "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, "requires": { "estree-walker": "^0.6.1" }, @@ -21936,7 +25152,8 @@ "estree-walker": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true } } }, @@ -22002,6 +25219,12 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "safe-identifier": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", + "dev": true + }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", @@ -22196,30 +25419,202 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "sass": { + "version": "1.38.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.38.1.tgz", + "integrity": "sha512-Lj8nPaSYOuRhgqdyShV50fY5jKnvaRmikUNalMPmbH+tKMGgEKVkltI/lP30PEfO2T1t6R9yc2QIBLgOc3uaFw==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0" + } + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, - "sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "requires": { - "truncate-utf8-bytes": "^1.0.0" - } - }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -22234,6 +25629,32 @@ "xmlchars": "^2.2.0" } }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, "secp256k1": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", @@ -22349,6 +25770,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, "requires": { "randombytes": "^2.1.0" } @@ -22364,6 +25786,18 @@ "send": "0.17.1" } }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -22493,6 +25927,38 @@ } } }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, "sinon": { "version": "9.2.4", "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", @@ -23022,7 +26488,8 @@ "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true }, "sparse-array": { "version": "1.3.2", @@ -23203,6 +26670,53 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "steno": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", @@ -23234,6 +26748,17 @@ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true + }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -23318,6 +26843,23 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -23333,6 +26875,36 @@ "peek-readable": "^3.1.3" } }, + "style-inject": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", + "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", + "dev": true + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, "subscriptions-transport-ws": { "version": "0.9.19", "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", @@ -23352,29 +26924,249 @@ } } }, - "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" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, + "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" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "svelte": { + "version": "3.42.4", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.42.4.tgz", + "integrity": "sha512-DqC0AmDdBrrbIA+Kzl3yhBb6qCn4vZOAfxye2pTnIpinLegyagC5sLI8Pe9GPlXu9VpHBXIwpDDedpMfu++epA==" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + } + } + }, + "swarm-js": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", + "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + } } }, - "svelte": { - "version": "3.42.4", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.42.4.tgz", - "integrity": "sha512-DqC0AmDdBrrbIA+Kzl3yhBb6qCn4vZOAfxye2pTnIpinLegyagC5sLI8Pe9GPlXu9VpHBXIwpDDedpMfu++epA==" - }, "symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", @@ -23412,7 +27204,6 @@ "version": "4.4.13", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -23426,8 +27217,7 @@ "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" } } }, @@ -23469,6 +27259,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", + "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -23478,7 +27269,8 @@ "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true } } }, @@ -23588,6 +27380,11 @@ "lodash.throttle": "^4.1.1" } }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, "timeout-abort-controller": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", @@ -23602,6 +27399,12 @@ "resolved": "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.0.tgz", "integrity": "sha512-NO/1CZigzlCWQiWdIGv8ebXt6Uk77zdLz2NE7KcZRU5Egj2+947lzUpk30xQUQlq5dRY25j7ZulG4RfA2DHYfA==" }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, "tiny-each-async": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", @@ -23688,6 +27491,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -23751,6 +27555,21 @@ "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", "dev": true }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, "truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -23837,6 +27656,11 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -23983,6 +27807,18 @@ } } }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -24006,6 +27842,12 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -24199,6 +28041,16 @@ "prepend-http": "^2.0.0" } }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, "ursa-optional": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", @@ -24213,6 +28065,26 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, + "utf-8-validate": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", + "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", + "requires": { + "node-gyp-build": "^4.2.0" + }, + "dependencies": { + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" + } + } + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", @@ -24320,6 +28192,12 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -24375,6 +28253,327 @@ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.0.3.tgz", "integrity": "sha512-d2H/t0eqRNM4w2WvmTdoeIvzAUSpK7JmATB8Nr2lb7nQ9BTIJVjbQ/TRFVEh2gUH1HwclPdoPtfMoFfetXaZnA==" }, + "web3": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.2.tgz", + "integrity": "sha512-aapKLdO8t7Cos6tZLeeQUtCJvTiPMlLcHsHHDLSBZ/VaJEucSTxzun32M8sp3BmF4waDEmhY+iyUM1BKvtAcVQ==", + "requires": { + "web3-bzz": "1.5.2", + "web3-core": "1.5.2", + "web3-eth": "1.5.2", + "web3-eth-personal": "1.5.2", + "web3-net": "1.5.2", + "web3-shh": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-bzz": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.2.tgz", + "integrity": "sha512-W/sPCdA+XQ9duUYKHAwf/g69cbbV8gTCRsa1MpZwU7spXECiyJ2EvD/QzAZ+UpJk3GELXFF/fUByeZ3VRQKF2g==", + "requires": { + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40" + }, + "dependencies": { + "@types/node": { + "version": "12.20.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.21.tgz", + "integrity": "sha512-Qk7rOvV2A4vNgXNS88vEvbJE1NDFPCQ8AU+pNElrU2bA4yrRDef3fg3SUe+xkwyin3Bpg/Xh5JkNWTlsOcS2tA==" + } + } + }, + "web3-core": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.2.tgz", + "integrity": "sha512-sebMpQbg3kbh3vHUbHrlKGKOxDWqjgt8KatmTBsTAWj/HwWYVDzeX+2Q84+swNYsm2DrTBVFlqTErFUwPBvyaA==", + "requires": { + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-core-requestmanager": "1.5.2", + "web3-utils": "1.5.2" + }, + "dependencies": { + "@types/node": { + "version": "12.20.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.21.tgz", + "integrity": "sha512-Qk7rOvV2A4vNgXNS88vEvbJE1NDFPCQ8AU+pNElrU2bA4yrRDef3fg3SUe+xkwyin3Bpg/Xh5JkNWTlsOcS2tA==" + } + } + }, + "web3-core-helpers": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.2.tgz", + "integrity": "sha512-U7LJoeUdQ3aY9t5gU7t/1XpcApsWm+4AcW5qKl/44ZxD44w0Dmsq1c5zJm3GuLr/a9MwQfXK4lpmvxVQWHHQRg==", + "requires": { + "web3-eth-iban": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-core-method": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.2.tgz", + "integrity": "sha512-/mC5t9UjjJoQmJJqO5nWK41YHo+tMzFaT7Tp7jDCQsBkinE68KsUJkt0jzygpheW84Zra0DVp6q19gf96+cugg==", + "requires": { + "@ethereumjs/common": "^2.4.0", + "@ethersproject/transactions": "^5.0.0-beta.135", + "web3-core-helpers": "1.5.2", + "web3-core-promievent": "1.5.2", + "web3-core-subscriptions": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-core-promievent": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.2.tgz", + "integrity": "sha512-5DacbJXe98ozSor7JlkTNCy6G8945VunRRkPxMk98rUrg60ECVEM/vuefk1atACzjQsKx6tmLZuHxbJQ64TQeQ==", + "requires": { + "eventemitter3": "4.0.4" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "web3-core-requestmanager": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.2.tgz", + "integrity": "sha512-oRVW9OrAsXN2JIZt68OEg1Mb1A9a/L3JAGMv15zLEFEnJEGw0KQsGK1ET2kvZBzvpFd5G0EVkYCnx7WDe4HSNw==", + "requires": { + "util": "^0.12.0", + "web3-core-helpers": "1.5.2", + "web3-providers-http": "1.5.2", + "web3-providers-ipc": "1.5.2", + "web3-providers-ws": "1.5.2" + } + }, + "web3-core-subscriptions": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.2.tgz", + "integrity": "sha512-hapI4rKFk22yurtIv0BYvkraHsM7epA4iI8Np+HuH6P9DD0zj/llaps6TXLM9HyacLBRwmOLZmr+pHBsPopUnQ==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.2" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "web3-eth": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.2.tgz", + "integrity": "sha512-DwWQ6TCOUqvYyo7T20S7HpQDPveNHNqOn2Q2F3E8ZFyEjmqT4XsGiwvm08kB/VgQ4e/ANyq/i8PPFSYMT8JKHg==", + "requires": { + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-core-subscriptions": "1.5.2", + "web3-eth-abi": "1.5.2", + "web3-eth-accounts": "1.5.2", + "web3-eth-contract": "1.5.2", + "web3-eth-ens": "1.5.2", + "web3-eth-iban": "1.5.2", + "web3-eth-personal": "1.5.2", + "web3-net": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-eth-abi": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.2.tgz", + "integrity": "sha512-P3bJbDR5wib4kWGfVeBKBVi27T+AiHy4EJxYM6SMNbpm3DboLDdisu9YBd6INMs8rzxgnprBbGmmyn4jKIDKAA==", + "requires": { + "@ethersproject/abi": "5.0.7", + "web3-utils": "1.5.2" + } + }, + "web3-eth-accounts": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.2.tgz", + "integrity": "sha512-F8mtzxgEhxfLc66vPi0Gqd6mpscvvk7Ua575bsJ1p9J2X/VtuKgDgpWcU4e4LKeROQ+ouCpAG9//0j9jQuij3A==", + "requires": { + "@ethereumjs/common": "^2.3.0", + "@ethereumjs/tx": "^3.2.1", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.0.10", + "scrypt-js": "^3.0.1", + "uuid": "3.3.2", + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-utils": "1.5.2" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } + } + }, + "web3-eth-contract": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.2.tgz", + "integrity": "sha512-4B8X/IPFxZCTmtENpdWXtyw5fskf2muyc3Jm5brBQRb4H3lVh1/ZyQy7vOIkdphyaXu4m8hBLHzeyKkd37mOUg==", + "requires": { + "@types/bn.js": "^4.11.5", + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-core-promievent": "1.5.2", + "web3-core-subscriptions": "1.5.2", + "web3-eth-abi": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-eth-ens": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.2.tgz", + "integrity": "sha512-/UrLL42ZOCYge+BpFBdzG8ICugaRS4f6X7PxJKO+zAt+TwNgBpjuWfW/ZYNcuqJun/ZyfcTuj03TXqA1RlNhZQ==", + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-promievent": "1.5.2", + "web3-eth-abi": "1.5.2", + "web3-eth-contract": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-eth-iban": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.2.tgz", + "integrity": "sha512-C04YDXuSG/aDwOHSX+HySBGb0KraiAVt+/l1Mw7y/fCUrKC/K0yYzMYqY/uYOcvLtepBPsC4ZfUYWUBZ2PO8Vg==", + "requires": { + "bn.js": "^4.11.9", + "web3-utils": "1.5.2" + } + }, + "web3-eth-personal": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.2.tgz", + "integrity": "sha512-nH5N2GiVC0C5XeMEKU16PeFP3Hb3hkPvlR6Tf9WQ+pE+jw1c8eaXBO1CJQLr15ikhUF3s94ICyHcfjzkDsmRbA==", + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-net": "1.5.2", + "web3-utils": "1.5.2" + }, + "dependencies": { + "@types/node": { + "version": "12.20.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.21.tgz", + "integrity": "sha512-Qk7rOvV2A4vNgXNS88vEvbJE1NDFPCQ8AU+pNElrU2bA4yrRDef3fg3SUe+xkwyin3Bpg/Xh5JkNWTlsOcS2tA==" + } + } + }, + "web3-net": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.5.2.tgz", + "integrity": "sha512-VEc9c+jfoERhbJIxnx0VPlQDot8Lm4JW/tOWFU+ekHgIiu2zFKj5YxhURIth7RAbsaRsqCb79aE+M0eI8maxVQ==", + "requires": { + "web3-core": "1.5.2", + "web3-core-method": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-providers-http": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.2.tgz", + "integrity": "sha512-dUNFJc9IMYDLZnkoQX3H4ZjvHjGO6VRVCqrBrdh84wPX/0da9dOA7DwIWnG0Gv3n9ybWwu5JHQxK4MNQ444lyA==", + "requires": { + "web3-core-helpers": "1.5.2", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.2.tgz", + "integrity": "sha512-SJC4Sivt4g9LHKlRy7cs1jkJgp7bjrQeUndE6BKs0zNALKguxu6QYnzbmuHCTFW85GfMDjhvi24jyyZHMnBNXQ==", + "requires": { + "oboe": "2.1.5", + "web3-core-helpers": "1.5.2" + } + }, + "web3-providers-ws": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.2.tgz", + "integrity": "sha512-xy9RGlyO8MbJDuKv2vAMDkg+en+OvXG0CGTCM2BTl6l1vIdHpCa+6A/9KV2rK8aU9OBZ7/Pf+Y19517kHVl9RA==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.2", + "websocket": "^1.0.32" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "web3-shh": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.2.tgz", + "integrity": "sha512-wOxOcYt4Sa0AHAI8gG7RulCwVuVjSRS/M/AbFsea3XfJdN6sU13/syY7OdZNjNYuKjYTzxKYrd3dU/K2iqffVw==", + "requires": { + "web3-core": "1.5.2", + "web3-core-method": "1.5.2", + "web3-core-subscriptions": "1.5.2", + "web3-net": "1.5.2" + } + }, + "web3-utils": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.2.tgz", + "integrity": "sha512-quTtTeQJHYSxAwIBOCGEcQtqdVcFWX6mCFNoqnp+mRbq+Hxbs8CGgO/6oqfBx4OvxIOfCpgJWYVHswRXnbEu9Q==", + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, "webcrypto": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/webcrypto/-/webcrypto-0.1.1.tgz", @@ -24409,6 +28608,19 @@ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true }, + "websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "requires": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + } + }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", @@ -24483,7 +28695,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -24605,6 +28816,59 @@ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + }, + "dependencies": { + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + } + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "requires": { + "cookiejar": "^2.1.1" + } + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -24670,6 +28934,11 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", diff --git a/package.json b/package.json index 8ad6d82af..81fd35326 100644 --- a/package.json +++ b/package.json @@ -58,16 +58,28 @@ "jest": "^27.0.4", "node-wget-js": "^1.0.1", "react": "^17.0.1", + "@smui/button": "^4.2.0", + "@smui/paper": "^4.2.0", + "@smui/textfield": "^4.2.0", "ts-jest": "^27.0.3", "typescript": "^4.2.4", - "unzipper": "^0.10.11" + "unzipper": "^0.10.11", + "node-sass": "^4.14.1", + "sass": "^1.26.11", + "rollup-plugin-postcss": "^3.1.8", + "@rollup/plugin-commonjs": "^17.1.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^11.2.0", + "rollup-plugin-node-polyfills": "^0.2.1", + "rollup": "^2.41.3", + "rollup-plugin-typescript2": "^0.30.0", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-svelte": "^6.0.0", + "rollup-plugin-terser": "^7.0.0" }, "dependencies": { "@holochain/conductor-api": "0.2.0", "@perspect3vism/ad4m": "file:../ad4m", - "@rollup/plugin-commonjs": "^17.1.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.2.0", "@transmute/did-key-ed25519": "^0.2.1-unstable.29", "@transmute/did-key-secp256k1": "^0.2.1-unstable.29", "@transmute/did-key.js": "^0.2.1-unstable.29", @@ -82,15 +94,12 @@ "liquidcore": "^0.7.10", "lowdb": "^1.0.0", "multihashing": "^0.3.3", - "rollup": "^2.41.3", - "rollup-plugin-typescript2": "^0.30.0", "sha256": "^0.2.0", "sha3": "^2.1.3", "node-fetch": "^2.6.1", - "rollup-plugin-livereload": "^2.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", "svelte": "^3.0.0", - "sirv-cli": "^1.0.0" + "sirv-cli": "^1.0.0", + "@metamask/detect-provider": "^1.1.0", + "web3": "^1.3.0" } } diff --git a/public/index.html b/public/index.html index 5da7ed3e4..c2bd4611b 100644 --- a/public/index.html +++ b/public/index.html @@ -4,7 +4,7 @@ - Svelte app + Ad4m DAPP Integration diff --git a/rollup.config.js b/rollup.config.js index 9994f0e37..763d98212 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -3,6 +3,9 @@ import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import livereload from 'rollup-plugin-livereload'; import { terser } from 'rollup-plugin-terser'; +import postcss from "rollup-plugin-postcss"; +import json from "@rollup/plugin-json"; +import nodePolyfills from 'rollup-plugin-node-polyfills'; const production = !process.env.ROLLUP_WATCH; @@ -53,10 +56,27 @@ export default { // https://github.com/rollup/plugins/tree/master/packages/commonjs resolve({ browser: true, - dedupe: ['svelte'] + dedupe: ['svelte'], + preferBuiltins: false, }), commonjs(), + postcss({ + extract: false, + minimize: true, + use: [ + ['sass', { + includePaths: [ + './src/theme', + './node_modules' + ] + }] + ] + }), + + json(), + nodePolyfills(), + // In dev mode, call `npm run start` once // the bundle has been generated !production && serve(), From 35ff9e190c86455264e9a1475d19aba0fc4d2168 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Sat, 28 Aug 2021 01:15:02 +0100 Subject: [PATCH 008/722] sign actual did that comes from ad4m --- dapp/App.svelte | 52 +++++++++++++++++++++++++++++++++++++++++------ dapp/ethereum.js | 1 + package-lock.json | 9 ++++++++ package.json | 31 ++++++++++++++-------------- rollup.config.js | 4 ++++ 5 files changed, 76 insertions(+), 21 deletions(-) diff --git a/dapp/App.svelte b/dapp/App.svelte index c6ce77a50..b48fe571a 100644 --- a/dapp/App.svelte +++ b/dapp/App.svelte @@ -4,13 +4,48 @@ import Textfield from '@smui/textfield' import Icon from '@smui/textfield/icon/index'; import { startEthereum, connectWallet, sign } from './ethereum' - import Web3 from 'web3' + import Web3 from 'web3' + import { + ApolloClient, + InMemoryCache + } from "@apollo/client/core"; + import { gql } from "@apollo/client"; + import { WebSocketLink } from '@apollo/client/link/ws'; + + const AGENT_SUBITEMS = ` + did + directMessageLanguage + perspective { + links { + author, timestamp, + proof { + signature, key, valid, invalid + } + data { + source, predicate, target + } + } + } + `; + const gqlMe = gql`query agent { agent { ${AGENT_SUBITEMS} } }`; let currentAccount = undefined; let spinner = false; - let showSigning = false; + let showSigning = false; + + function constructApolloClient(port) { + return new ApolloClient({ + link: new WebSocketLink({ + uri: `ws://localhost:${port}/graphql`, + options: { reconnect: true }, + }), + cache: new InMemoryCache(), + }); + } + //TODO: we should use ad4m client here but I get compilation errors so for now I use standard apollo client + const apolloClient = constructApolloClient(4000) - function handleAccountsChanged(accounts) { + function handleAccountsChanged(accounts) { console.log('Accounts changed: ' + accounts) if (accounts.length === 0) { // MetaMask is locked or the user has not connected any accounts @@ -28,10 +63,15 @@ console.log("Wanting to connect to wallet connect"); } - //TODO: get from ad4m - const staticDid = "did:key:hash"; function signDid() { - const { data, signature, r, s, v } = sign(currentAccount, staticDid); + apolloClient.query({query: gqlMe}).then(result => { + const { agent } = result.data; + const did = agent.did; + sign(currentAccount, did).then(result => { + const { data, signature, r, s, v } = result; + console.log("got signature back", signature); + }); + }); } startEthereum(handleAccountsChanged) diff --git a/dapp/ethereum.js b/dapp/ethereum.js index fcd34325d..1c4e1598d 100644 --- a/dapp/ethereum.js +++ b/dapp/ethereum.js @@ -46,6 +46,7 @@ export async function sign(signer, did) { const domainData = { name: "Ad4m DID Authentification", version: "2", + //TODO: infer env from process.env and then use correct chainId; ropstein or eth chainId: 3, }; diff --git a/package-lock.json b/package-lock.json index 659c97fc8..9180dabef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24988,6 +24988,15 @@ } } }, + "rollup-plugin-inject-process-env": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-inject-process-env/-/rollup-plugin-inject-process-env-1.3.1.tgz", + "integrity": "sha512-kKDoL30IZr0wxbNVJjq+OS92RJSKRbKV6B5eNW4q3mZTFqoWDh6lHy+mPDYuuGuERFNKXkG+AKxvYqC9+DRpKQ==", + "dev": true, + "requires": { + "magic-string": "^0.25.7" + } + }, "rollup-plugin-livereload": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", diff --git a/package.json b/package.json index 81fd35326..e4bbe0527 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,12 @@ }, "devDependencies": { "@apollo/client": "^3.3.20", + "@rollup/plugin-commonjs": "^17.1.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^11.2.0", + "@smui/button": "^4.2.0", + "@smui/paper": "^4.2.0", + "@smui/textfield": "^4.2.0", "@types/faker": "^5.5.7", "@types/fs-extra": "^9.0.12", "@types/jest": "^26.0.20", @@ -56,26 +62,21 @@ "faker": "^5.1.0", "fs-extra": "^9.1.0", "jest": "^27.0.4", + "node-sass": "^4.14.1", "node-wget-js": "^1.0.1", "react": "^17.0.1", - "@smui/button": "^4.2.0", - "@smui/paper": "^4.2.0", - "@smui/textfield": "^4.2.0", - "ts-jest": "^27.0.3", - "typescript": "^4.2.4", - "unzipper": "^0.10.11", - "node-sass": "^4.14.1", - "sass": "^1.26.11", - "rollup-plugin-postcss": "^3.1.8", - "@rollup/plugin-commonjs": "^17.1.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.2.0", - "rollup-plugin-node-polyfills": "^0.2.1", "rollup": "^2.41.3", - "rollup-plugin-typescript2": "^0.30.0", + "rollup-plugin-inject-process-env": "^1.3.1", "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-node-polyfills": "^0.2.1", + "rollup-plugin-postcss": "^3.1.8", "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0" + "rollup-plugin-terser": "^7.0.0", + "rollup-plugin-typescript2": "^0.30.0", + "sass": "^1.26.11", + "ts-jest": "^27.0.3", + "typescript": "^4.2.4", + "unzipper": "^0.10.11" }, "dependencies": { "@holochain/conductor-api": "0.2.0", diff --git a/rollup.config.js b/rollup.config.js index 763d98212..4d89cdac7 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -6,6 +6,7 @@ import { terser } from 'rollup-plugin-terser'; import postcss from "rollup-plugin-postcss"; import json from "@rollup/plugin-json"; import nodePolyfills from 'rollup-plugin-node-polyfills'; +import injectProcessEnv from 'rollup-plugin-inject-process-env'; const production = !process.env.ROLLUP_WATCH; @@ -76,6 +77,9 @@ export default { json(), nodePolyfills(), + injectProcessEnv({ + NODE_ENV: process.env.NODE_ENV + }), // In dev mode, call `npm run start` once // the bundle has been generated From c7b8210f42d02aafd0886661abf20582e7185230 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Sat, 28 Aug 2021 01:16:48 +0100 Subject: [PATCH 009/722] add integration tests back --- src/tests/integration.test.ts | 102 +++++++++++++++++----------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/src/tests/integration.test.ts b/src/tests/integration.test.ts index 835b57060..94b60dc72 100644 --- a/src/tests/integration.test.ts +++ b/src/tests/integration.test.ts @@ -126,55 +126,55 @@ describe("Integration tests", () => { }) describe('Agent / Agent-Setup', agentTests(testContext)) - // describe('Expression', expressionTests(testContext)) - // describe('Language', languageTests(testContext)) - // describe('Perspective', perspectiveTests(testContext)) - - // describe('with Alice and Bob', () => { - // let bob: PerspectivismCore | null = null - // beforeAll(async () => { - // const appDataPath = path.join(TEST_DIR, 'agents', 'bob') - // const ipfsRepoPath = path.join(appDataPath, '.jsipfs') - // if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - // fs.mkdirSync(path.join(TEST_DIR, 'agents')) - // if(!fs.existsSync(appDataPath)) - // fs.mkdirSync(appDataPath) - - // bob = await main.init({ - // appDataPath, - // resourcePath: TEST_DIR, - // appDefaultLangPath: path.join(TEST_DIR, 'languages'), - // ad4mBootstrapLanguages: { - // agents: "agent-expression-store", - // languages: "languages", - // neighbourhoods: "neighbourhood-store", - // }, - // ad4mBootstrapFixtures: { - // languages: [], - // perspectives: [], - // }, - // appBuiltInLangs: ['note-ipfs'], - // appLangAliases: null, - // mocks: false, - // portGraphQL: 14000, - // portHCAdmin: 12000, - // portHCApp: 11337, - // ipfsSwarmPort: 14002, - // ipfsRepoPath, - // useLocalHolochainProxy: true - // }) - - // bob.initControllers() - // await bob.initLanguages(false) - - // testContext.bob = new Ad4mClient(apolloClient(14000)) - // }) - - // afterAll(async () => { - // await bob!.exit(); - // await new Promise((resolve)=>setTimeout(resolve, 1000)) - // }) - - // describe('Neighbourhood', neighbourhoodTests(testContext)) - // }) + describe('Expression', expressionTests(testContext)) + describe('Language', languageTests(testContext)) + describe('Perspective', perspectiveTests(testContext)) + + describe('with Alice and Bob', () => { + let bob: PerspectivismCore | null = null + beforeAll(async () => { + const appDataPath = path.join(TEST_DIR, 'agents', 'bob') + const ipfsRepoPath = path.join(appDataPath, '.jsipfs') + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(appDataPath)) + fs.mkdirSync(appDataPath) + + bob = await main.init({ + appDataPath, + resourcePath: TEST_DIR, + appDefaultLangPath: path.join(TEST_DIR, 'languages'), + ad4mBootstrapLanguages: { + agents: "agent-expression-store", + languages: "languages", + neighbourhoods: "neighbourhood-store", + }, + ad4mBootstrapFixtures: { + languages: [], + perspectives: [], + }, + appBuiltInLangs: ['note-ipfs'], + appLangAliases: null, + mocks: false, + portGraphQL: 14000, + portHCAdmin: 12000, + portHCApp: 11337, + ipfsSwarmPort: 14002, + ipfsRepoPath, + useLocalHolochainProxy: true + }) + + bob.initControllers() + await bob.initLanguages(false) + + testContext.bob = new Ad4mClient(apolloClient(14000)) + }) + + afterAll(async () => { + await bob!.exit(); + await new Promise((resolve)=>setTimeout(resolve, 1000)) + }) + + describe('Neighbourhood', neighbourhoodTests(testContext)) + }) }) \ No newline at end of file From 6ed8db73ea3984657bfb926a4a2a168308cb9767 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 17 Sep 2021 17:30:17 +0100 Subject: [PATCH 010/722] fix build errors --- package-lock.json | 27478 ++---------------------- src/core/PerspectivismCore.ts | 2 - src/core/graphQL-interface/GraphQL.ts | 8 +- 3 files changed, 2353 insertions(+), 25135 deletions(-) diff --git a/package-lock.json b/package-lock.json index 035aaf45c..1418d692f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,107 +1,23 @@ { "name": "@perspect3vism/ad4m-executor", "version": "0.1.17", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "@perspect3vism/ad4m-executor", - "version": "0.1.17", - "license": "CAL-1.0", - "dependencies": { - "@holochain/conductor-api": "0.2.0", - "@peculiar/webcrypto": "^1.1.7", - "@perspect3vism/ad4m": "0.1.17", - "@rollup/plugin-commonjs": "^17.1.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.2.0", - "@transmute/did-key-ed25519": "^0.2.1-unstable.29", - "@transmute/did-key-secp256k1": "^0.2.1-unstable.29", - "@transmute/did-key.js": "^0.2.1-unstable.29", - "@transmute/did-wallet": "lucksus/did-wallet", - "@types/json-stable-stringify": "^1.0.33", - "apollo-server": "^2.18.2", - "graphql": "^15.3.0", - "ipfs": "^0.54.4", - "js-yaml": "^4.0.0", - "json-stable-stringify": "^1.0.1", - "liquidcore": "^0.7.10", - "lowdb": "^1.0.0", - "node-fetch": "^2.6.1", - "rollup": "^2.41.3", - "rollup-plugin-typescript2": "^0.30.0", - "sha256": "^0.2.0", - "sha3": "^2.1.3" - }, - "devDependencies": { - "@apollo/client": "3.3.20", - "@types/faker": "^5.5.7", - "@types/fs-extra": "^9.0.12", - "@types/jest": "^27.0.0", - "@types/js-yaml": "^4.0.2", - "@types/lowdb": "^1.0.11", - "@types/node": "^14.14.22", - "@types/node-fetch": "^2.5.11", - "@types/secp256k1": "^4.0.3", - "@types/sha256": "^0.2.0", - "@types/uuid": "^8.3.1", - "faker": "^5.1.0", - "fs-extra": "^9.1.0", - "jest": "^27.0.4", - "node-wget-js": "^1.0.1", - "react": "^17.0.1", - "ts-jest": "^27.0.3", - "typescript": "^4.2.4", - "unzipper": "^0.10.11" - } - }, - "..": {}, - "../ad4m": { - "name": "@perspect3vism/ad4m", - "version": "0.1.17", - "license": "CAL-1.0", - "dependencies": { - "@apollo/client": "3.3.20", - "@holochain/conductor-api": "0.0.4", - "@types/jest": "^27.0.1", - "@types/mocha": "^8.0.3", - "class-validator": "^0.13.1", - "graphql": "^15.5.0", - "react": "^17.0.2", - "reflect-metadata": "^0.1.13", - "type-graphql": "^1.1.1" - }, - "devDependencies": { - "@apollo/link-error": "^2.0.0-beta.3", - "@rollup/plugin-alias": "^3.1.5", - "@rollup/plugin-commonjs": "^20.0.0", - "@rollup/plugin-node-resolve": "^13.0.4", - "@types/reflect-metadata": "^0.1.0", - "apollo-server": "^2.25.2", - "cross-fetch": "^3.1.4", - "jest": "^27.0.4", - "rollup": "^2.56.3", - "ts-jest": "^27.0.3", - "typescript": "^4.2.4" - } - }, - "node_modules/@achingbrain/electron-fetch": { + "dependencies": { + "@achingbrain/electron-fetch": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/@achingbrain/electron-fetch/-/electron-fetch-1.7.2.tgz", "integrity": "sha512-ShX5frO+2OddzRIlUb8D0Ao2eC3uZl910CYnRIPGLLM360vQceeOqpivwNdbry41Ph3MMtLR4RpzGdaADGG8Gg==", - "dependencies": { + "requires": { "encoding": "^0.1.13" - }, - "engines": { - "node": ">=6" } }, - "node_modules/@apollo/client": { + "@apollo/client": { "version": "3.3.20", "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", "dev": true, - "dependencies": { + "requires": { "@graphql-typed-document-node/core": "^3.0.0", "@types/zen-observable": "^0.8.0", "@wry/context": "^0.6.0", @@ -115,27 +31,13 @@ "ts-invariant": "^0.7.0", "tslib": "^1.10.0", "zen-observable": "^0.8.14" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0", - "react": "^16.8.0 || ^17.0.0", - "subscriptions-transport-ws": "^0.9.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "subscriptions-transport-ws": { - "optional": true - } } }, - "node_modules/@apollo/protobufjs": { + "@apollo/protobufjs": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz", "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==", - "hasInstallScript": true, - "dependencies": { + "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", "@protobufjs/codegen": "^2.0.4", @@ -150,38 +52,32 @@ "@types/node": "^10.1.0", "long": "^4.0.0" }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } } }, - "node_modules/@apollo/protobufjs/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, - "node_modules/@apollographql/apollo-tools": { + "@apollographql/apollo-tools": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz", - "integrity": "sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==", - "engines": { - "node": ">=8", - "npm": ">=6" - } + "integrity": "sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==" }, - "node_modules/@apollographql/graphql-playground-html": { + "@apollographql/graphql-playground-html": { "version": "1.6.27", "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz", "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==", - "dependencies": { + "requires": { "xss": "^1.0.8" } }, - "node_modules/@apollographql/graphql-upload-8-fork": { + "@apollographql/graphql-upload-8-fork": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", - "dependencies": { + "requires": { "@types/express": "*", "@types/fs-capacitor": "*", "@types/koa": "*", @@ -189,43 +85,31 @@ "fs-capacitor": "^2.0.4", "http-errors": "^1.7.3", "object-path": "^0.11.4" - }, - "engines": { - "node": ">=8.5" - }, - "peerDependencies": { - "graphql": "0.13.1 - 15" } }, - "node_modules/@assemblyscript/loader": { + "@assemblyscript/loader": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" }, - "node_modules/@babel/code-frame": { + "@babel/code-frame": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dependencies": { + "requires": { "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/compat-data": { + "@babel/compat-data": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "engines": { - "node": ">=6.9.0" - } + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, - "node_modules/@babel/core": { + "@babel/core": { "version": "7.15.5", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dependencies": { + "requires": { "@babel/code-frame": "^7.14.5", "@babel/generator": "^7.15.4", "@babel/helper-compilation-targets": "^7.15.4", @@ -242,159 +126,111 @@ "semver": "^6.3.0", "source-map": "^0.5.0" }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { + "@babel/generator": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, - "node_modules/@babel/helper-annotate-as-pure": { + "@babel/helper-annotate-as-pure": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz", "integrity": "sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==", - "dependencies": { + "requires": { "@babel/helper-explode-assignable-expression": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets": { + "@babel/helper-compilation-targets": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", - "dependencies": { + "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, - "node_modules/@babel/helper-create-class-features-plugin": { + "@babel/helper-create-class-features-plugin": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.15.4", "@babel/helper-function-name": "^7.15.4", "@babel/helper-member-expression-to-functions": "^7.15.4", "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { + "@babel/helper-create-regexp-features-plugin": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.14.5", "regexpu-core": "^4.7.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { + "@babel/helper-define-polyfill-provider": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", - "dependencies": { + "requires": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.13.0", @@ -404,112 +240,82 @@ "resolve": "^1.14.2", "semver": "^6.1.2" }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { + "@babel/helper-explode-assignable-expression": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz", "integrity": "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-function-name": { + "@babel/helper-function-name": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "dependencies": { + "requires": { "@babel/helper-get-function-arity": "^7.15.4", "@babel/template": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-get-function-arity": { + "@babel/helper-get-function-arity": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { + "@babel/helper-hoist-variables": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { + "@babel/helper-member-expression-to-functions": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports": { + "@babel/helper-module-imports": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-transforms": { + "@babel/helper-module-transforms": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", - "dependencies": { + "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", @@ -518,593 +324,406 @@ "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { + "@babel/helper-optimise-call-expression": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-plugin-utils": { + "@babel/helper-plugin-utils": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "engines": { - "node": ">=6.9.0" - } + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" }, - "node_modules/@babel/helper-remap-async-to-generator": { + "@babel/helper-remap-async-to-generator": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz", "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.15.4", "@babel/helper-wrap-function": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-replace-supers": { + "@babel/helper-replace-supers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "dependencies": { + "requires": { "@babel/helper-member-expression-to-functions": "^7.15.4", "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-simple-access": { + "@babel/helper-simple-access": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "@babel/helper-skip-transparent-expression-wrappers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { + "@babel/helper-split-export-declaration": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-identifier": { + "@babel/helper-validator-identifier": { "version": "7.14.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "engines": { - "node": ">=6.9.0" - } + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" }, - "node_modules/@babel/helper-validator-option": { + "@babel/helper-validator-option": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "engines": { - "node": ">=6.9.0" - } + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" }, - "node_modules/@babel/helper-wrap-function": { + "@babel/helper-wrap-function": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz", "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==", - "dependencies": { + "requires": { "@babel/helper-function-name": "^7.15.4", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helpers": { + "@babel/helpers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", - "dependencies": { + "requires": { "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { + "@babel/highlight": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dependencies": { + "requires": { "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "node_modules/@babel/plugin-external-helpers": { + "@babel/parser": { + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", + "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + }, + "@babel/plugin-external-helpers": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.14.5.tgz", "integrity": "sha512-q/B/hLX+nDGk73Xn529d7Ar4ih17J8pNBbsXafq8oXij0XfFEA/bks+u+6q5q04zO5o/qivjzui6BqzPfYShEg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { + "@babel/plugin-proposal-class-properties": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", - "dependencies": { + "requires": { "@babel/helper-create-class-features-plugin": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-default-from": { + "@babel/plugin-proposal-export-default-from": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz", "integrity": "sha512-T8KZ5abXvKMjF6JcoXjgac3ElmXf0AWzJwi2O/42Jk+HmCky3D9+i1B7NPP1FblyceqTevKeV/9szeikFoaMDg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-export-default-from": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { + "@babel/plugin-proposal-object-rest-spread": { "version": "7.15.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", - "dependencies": { + "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "@babel/plugin-proposal-optional-catch-binding": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { + "@babel/plugin-proposal-optional-chaining": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { + "@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-bigint": { + "@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { + "@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { + "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-default-from": { + "@babel/plugin-syntax-export-default-from": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.14.5.tgz", "integrity": "sha512-snWDxjuaPEobRBnhpqEfZ8RMxDbHt8+87fiEioGuE+Uc0xAKgSD8QiuL3lF93hPVQfZFAcYwrrf+H5qUhike3Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-flow": { + "@babel/plugin-syntax-flow": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz", "integrity": "sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { + "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { + "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { + "@babel/plugin-syntax-jsx": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { + "@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { + "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { + "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { + "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { + "@babel/plugin-syntax-typescript": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { + "@babel/plugin-transform-arrow-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { + "@babel/plugin-transform-async-to-generator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", - "dependencies": { + "requires": { "@babel/helper-module-imports": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { + "@babel/plugin-transform-block-scoped-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { + "@babel/plugin-transform-block-scoping": { "version": "7.15.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { + "@babel/plugin-transform-classes": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.15.4", "@babel/helper-function-name": "^7.15.4", "@babel/helper-optimise-call-expression": "^7.15.4", @@ -1112,268 +731,160 @@ "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { + "@babel/plugin-transform-computed-properties": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { + "@babel/plugin-transform-destructuring": { "version": "7.14.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { + "@babel/plugin-transform-exponentiation-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", - "dependencies": { + "requires": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-flow-strip-types": { + "@babel/plugin-transform-flow-strip-types": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz", "integrity": "sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-flow": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { + "@babel/plugin-transform-for-of": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { + "@babel/plugin-transform-function-name": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", - "dependencies": { + "requires": { "@babel/helper-function-name": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { + "@babel/plugin-transform-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { + "@babel/plugin-transform-member-expression-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { + "@babel/plugin-transform-modules-commonjs": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", - "dependencies": { + "requires": { "@babel/helper-module-transforms": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-simple-access": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-assign": { + "@babel/plugin-transform-object-assign": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz", "integrity": "sha512-lvhjk4UN9xJJYB1mI5KC0/o1D5EcJXdbhVe+4fSk08D6ZN+iuAIs7LJC+71h8av9Ew4+uRq9452v9R93SFmQlQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { + "@babel/plugin-transform-object-super": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-replace-supers": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { + "@babel/plugin-transform-parameters": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-property-literals": { + "@babel/plugin-transform-property-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-display-name": { + "@babel/plugin-transform-react-display-name": { "version": "7.15.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz", "integrity": "sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx": { + "@babel/plugin-transform-react-jsx": { "version": "7.14.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.14.5", "@babel/helper-module-imports": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-jsx": "^7.14.5", "@babel/types": "^7.14.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx-source": { + "@babel/plugin-transform-react-jsx-source": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz", "integrity": "sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-regenerator": { + "@babel/plugin-transform-regenerator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", - "dependencies": { + "requires": { "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime": { + "@babel/plugin-transform-runtime": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", - "dependencies": { + "requires": { "@babel/helper-module-imports": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.2.2", @@ -1381,184 +892,122 @@ "babel-plugin-polyfill-regenerator": "^0.2.2", "semver": "^6.3.0" }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { + "@babel/plugin-transform-shorthand-properties": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-spread": { + "@babel/plugin-transform-spread": { "version": "7.14.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { + "@babel/plugin-transform-sticky-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-template-literals": { + "@babel/plugin-transform-template-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typescript": { + "@babel/plugin-transform-typescript": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", - "dependencies": { + "requires": { "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-typescript": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { + "@babel/plugin-transform-unicode-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", - "dependencies": { + "requires": { "@babel/helper-create-regexp-features-plugin": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register": { + "@babel/register": { "version": "7.15.3", "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz", "integrity": "sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw==", - "dependencies": { + "requires": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", "make-dir": "^2.1.0", "pirates": "^4.0.0", "source-map-support": "^0.5.16" }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/register/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, - "node_modules/@babel/runtime": { + "@babel/runtime": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "dependencies": { + "requires": { "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/template": { + "@babel/template": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "dependencies": { + "requires": { "@babel/code-frame": "^7.14.5", "@babel/parser": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/traverse": { + "@babel/traverse": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dependencies": { + "requires": { "@babel/code-frame": "^7.14.5", "@babel/generator": "^7.15.4", "@babel/helper-function-name": "^7.15.4", @@ -1569,189 +1018,380 @@ "debug": "^4.1.0", "globals": "^11.1.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/types": { + "@babel/types": { "version": "7.15.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "dependencies": { + "requires": { "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@bcoe/v8-coverage": { + "@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "node_modules/@cnakazawa/watch": { + "@cnakazawa/watch": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dependencies": { + "requires": { "exec-sh": "^0.3.2", "minimist": "^1.2.0" + } + }, + "@ethereumjs/common": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.4.0.tgz", + "integrity": "sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.0" + } + }, + "@ethereumjs/tx": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.0.tgz", + "integrity": "sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA==", + "requires": { + "@ethereumjs/common": "^2.4.0", + "ethereumjs-util": "^7.1.0" + } + }, + "@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "requires": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz", + "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz", + "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==", + "requires": { + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0" + } + }, + "@ethersproject/address": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", + "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/rlp": "^5.4.0" + } + }, + "@ethersproject/base64": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", + "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", + "requires": { + "@ethersproject/bytes": "^5.4.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.2.tgz", + "integrity": "sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", + "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/constants": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", + "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", + "requires": { + "@ethersproject/bignumber": "^5.4.0" + } + }, + "@ethersproject/hash": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", + "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", + "requires": { + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, + "@ethersproject/keccak256": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", + "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "js-sha3": "0.5.7" }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } + } + }, + "@ethersproject/logger": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.1.tgz", + "integrity": "sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A==" + }, + "@ethersproject/networks": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz", + "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/properties": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.1.tgz", + "integrity": "sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/rlp": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", + "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", + "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/strings": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", + "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/transactions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", + "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", + "requires": { + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/signing-key": "^5.4.0" + } + }, + "@ethersproject/web": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", + "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", + "requires": { + "@ethersproject/base64": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" } }, - "node_modules/@graphql-typed-document-node/core": { + "@graphql-typed-document-node/core": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz", "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==", - "dev": true, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } + "dev": true }, - "node_modules/@grpc/grpc-js": { + "@grpc/grpc-js": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.7.tgz", "integrity": "sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA==", - "dependencies": { + "requires": { "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" } }, - "node_modules/@hapi/accept": { + "@hapi/accept": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/ammo": { + "@hapi/ammo": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/b64": { + "@hapi/b64": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/boom": { + "@hapi/boom": { "version": "9.1.4", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/bounce": { + "@hapi/bounce": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/bourne": { + "@hapi/bourne": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" }, - "node_modules/@hapi/call": { + "@hapi/call": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/catbox": { + "@hapi/catbox": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", "@hapi/podium": "4.x.x", "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/catbox-memory": { + "@hapi/catbox-memory": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/content": { + "@hapi/content": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x" } }, - "node_modules/@hapi/cryptiles": { + "@hapi/cryptiles": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x" - }, - "engines": { - "node": ">=12.0.0" } }, - "node_modules/@hapi/file": { + "@hapi/file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" }, - "node_modules/@hapi/hapi": { + "@hapi/hapi": { "version": "20.1.5", "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.1.5.tgz", "integrity": "sha512-BhJ5XFR9uWPUBj/z5pPqXSk8OnvQQU/EbQjwpmjZy0ymNEiq7kIhXkAmzXcntbBHta9o7zpW8XMeXnfV4wudXw==", - "dependencies": { + "requires": { "@hapi/accept": "^5.0.1", "@hapi/ammo": "^5.0.1", "@hapi/boom": "^9.1.0", @@ -1770,31 +1410,28 @@ "@hapi/teamwork": "^5.1.0", "@hapi/topo": "^5.0.0", "@hapi/validate": "^1.1.1" - }, - "engines": { - "node": ">=12.0.0" } }, - "node_modules/@hapi/heavy": { + "@hapi/heavy": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/hoek": { + "@hapi/hoek": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" }, - "node_modules/@hapi/inert": { + "@hapi/inert": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/@hapi/inert/-/inert-6.0.4.tgz", "integrity": "sha512-tpmNqtCCAd+5Ts07bJmMaA79+ZUIf0zSWnQMaWtbcO4nGrO/yXB2AzoslfzFX2JEV9vGeF3FfL8mYw0pHl8VGg==", - "dependencies": { + "requires": { "@hapi/ammo": "5.x.x", "@hapi/boom": "9.x.x", "@hapi/bounce": "2.x.x", @@ -1803,11 +1440,11 @@ "lru-cache": "^6.0.0" } }, - "node_modules/@hapi/iron": { + "@hapi/iron": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", - "dependencies": { + "requires": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", @@ -1815,32 +1452,29 @@ "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/mimos": { + "@hapi/mimos": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz", "integrity": "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x", "mime-db": "1.x.x" } }, - "node_modules/@hapi/nigel": { + "@hapi/nigel": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", - "dependencies": { + "requires": { "@hapi/hoek": "^9.0.4", "@hapi/vise": "^4.0.0" - }, - "engines": { - "node": ">=12.0.0" } }, - "node_modules/@hapi/pez": { + "@hapi/pez": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", - "dependencies": { + "requires": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", "@hapi/content": "^5.0.2", @@ -1848,39 +1482,39 @@ "@hapi/nigel": "4.x.x" } }, - "node_modules/@hapi/podium": { + "@hapi/podium": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x", "@hapi/teamwork": "5.x.x", "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/shot": { + "@hapi/shot": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/somever": { + "@hapi/somever": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz", "integrity": "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==", - "dependencies": { + "requires": { "@hapi/bounce": "2.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/statehood": { + "@hapi/statehood": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/bounce": "2.x.x", "@hapi/bourne": "2.x.x", @@ -1890,11 +1524,11 @@ "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/subtext": { + "@hapi/subtext": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", "@hapi/content": "^5.0.2", @@ -1904,54 +1538,51 @@ "@hapi/wreck": "17.x.x" } }, - "node_modules/@hapi/teamwork": { + "@hapi/teamwork": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", - "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==", - "engines": { - "node": ">=12.0.0" - } + "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==" }, - "node_modules/@hapi/topo": { + "@hapi/topo": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { + "requires": { "@hapi/hoek": "^9.0.0" } }, - "node_modules/@hapi/validate": { + "@hapi/validate": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", - "dependencies": { + "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0" } }, - "node_modules/@hapi/vise": { + "@hapi/vise": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/wreck": { + "@hapi/wreck": { "version": "17.1.0", "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz", "integrity": "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@holochain/conductor-api": { + "@holochain/conductor-api": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@holochain/conductor-api/-/conductor-api-0.2.0.tgz", "integrity": "sha512-GUjItNXRAxrae9hwf3brVVAB55bkG+Z3u6tEkmazrMs2tk+egIOjN9Oin1GsORjQoNw+7xj7mwZ1+TLY2F8hiQ==", - "dependencies": { + "requires": { "@msgpack/msgpack": "2.4.0", "@types/ws": "^7.2.4", "isomorphic-ws": "^4.0.1", @@ -1959,82 +1590,72 @@ "ws": "^7.3.0" } }, - "node_modules/@istanbuljs/load-nyc-config": { + "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "dependencies": { + "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/@istanbuljs/schema": { + "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/@jest/console": { + "@jest/console": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.1.1.tgz", "integrity": "sha512-VpQJRsWSeAem0zpBjeRtDbcD6DlbNoK11dNYt+PSQ+DDORh9q2/xyEpErfwgnLjWX0EKkSZmTGx/iH9Inzs6vQ==", "dev": true, - "dependencies": { + "requires": { "@jest/types": "^27.1.1", "@types/node": "*", "chalk": "^4.0.0", "jest-message-util": "^27.1.1", "jest-util": "^27.1.1", "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/core": { + "@jest/core": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.1.1.tgz", "integrity": "sha512-oCkKeTgI0emznKcLoq5OCD0PhxCijA4l7ejDnWW3d5bgSi+zfVaLybVqa+EQOxpNejQWtTna7tmsAXjMN9N43Q==", "dev": true, - "dependencies": { + "requires": { "@jest/console": "^27.1.1", "@jest/reporters": "^27.1.1", "@jest/test-result": "^27.1.1", @@ -2065,110 +1686,105 @@ "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/jest-config": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.1.tgz", - "integrity": "sha512-2iSd5zoJV4MsWPcLCGwUVUY/j6pZXm4Qd3rnbCtrd9EHNTg458iHw8PZztPQXfxKBKJxLfBk7tbZqYF8MGtxJA==", - "dev": true, "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.1.1", - "@jest/types": "^27.1.1", - "babel-jest": "^27.1.1", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.1.1", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "jest-config": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.1.tgz", + "integrity": "sha512-2iSd5zoJV4MsWPcLCGwUVUY/j6pZXm4Qd3rnbCtrd9EHNTg458iHw8PZztPQXfxKBKJxLfBk7tbZqYF8MGtxJA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^27.1.1", + "@jest/types": "^27.1.1", + "babel-jest": "^27.1.1", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "jest-circus": "^27.1.1", + "jest-environment-jsdom": "^27.1.1", + "jest-environment-node": "^27.1.1", + "jest-get-type": "^27.0.6", + "jest-jasmine2": "^27.1.1", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.1.1", + "jest-runner": "^27.1.1", + "jest-util": "^27.1.1", + "jest-validate": "^27.1.1", + "micromatch": "^4.0.4", + "pretty-format": "^27.1.1" + } + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true } } }, - "node_modules/@jest/environment": { + "@jest/environment": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.1.1.tgz", "integrity": "sha512-+y882/ZdxhyqF5RzxIrNIANjHj991WH7jifdcplzMDosDUOyCACFYUyVTBGbSTocbU+s1cesroRzkwi8hZ9SHg==", "dev": true, - "dependencies": { + "requires": { "@jest/fake-timers": "^27.1.1", "@jest/types": "^27.1.1", "@types/node": "*", "jest-mock": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/fake-timers": { + "@jest/fake-timers": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.1.1.tgz", "integrity": "sha512-u8TJ5VlsVYTsGFatoyIae2l25pku4Bu15QCPTx2Gs5z+R//Ee3tHN85462Vc9yGVcdDvgADbqNkhOLxbEwPjMQ==", "dev": true, - "dependencies": { + "requires": { "@jest/types": "^27.1.1", "@sinonjs/fake-timers": "^7.0.2", "@types/node": "*", "jest-message-util": "^27.1.1", "jest-mock": "^27.1.1", "jest-util": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/globals": { + "@jest/globals": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.1.1.tgz", "integrity": "sha512-Q3JcTPmY+DAEHnr4MpnBV3mwy50EGrTC6oSDTNnW7FNGGacTJAfpWNk02D7xv422T1OzK2A2BKx+26xJOvHkyw==", "dev": true, - "dependencies": { + "requires": { "@jest/environment": "^27.1.1", "@jest/types": "^27.1.1", "expect": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/reporters": { + "@jest/reporters": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.1.1.tgz", "integrity": "sha512-cEERs62n1P4Pqox9HWyNOEkP57G95aK2mBjB6D8Ruz1Yc98fKH53b58rlVEnsY5nLmkLNZk65fxNi9C0Yds/8w==", "dev": true, - "dependencies": { + "requires": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^27.1.1", "@jest/test-result": "^27.1.1", @@ -2193,69 +1809,49 @@ "string-length": "^4.0.1", "terminal-link": "^2.0.0", "v8-to-istanbul": "^8.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } } }, - "node_modules/@jest/source-map": { + "@jest/source-map": { "version": "27.0.6", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", "dev": true, - "dependencies": { + "requires": { "callsites": "^3.0.0", "graceful-fs": "^4.2.4", "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/test-result": { + "@jest/test-result": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.1.1.tgz", "integrity": "sha512-8vy75A0Jtfz9DqXFUkjC5Co/wRla+D7qRFdShUY8SbPqBS3GBx3tpba7sGKFos8mQrdbe39n+c1zgVKtarfy6A==", "dev": true, - "dependencies": { + "requires": { "@jest/console": "^27.1.1", "@jest/types": "^27.1.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/test-sequencer": { + "@jest/test-sequencer": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.1.1.tgz", "integrity": "sha512-l8zD3EdeixvwmLNlJoMX3hhj8iIze95okj4sqmBzOq/zW8gZLElUveH4bpKEMuR+Nweazjlwc7L6g4C26M/y6Q==", "dev": true, - "dependencies": { + "requires": { "@jest/test-result": "^27.1.1", "graceful-fs": "^4.2.4", "jest-haste-map": "^27.1.1", "jest-runtime": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/transform": { + "@jest/transform": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.1.1.tgz", "integrity": "sha512-qM19Eu75U6Jc5zosXXVnq900Nl9JDpoGaZ4Mg6wZs7oqbu3heYSMOZS19DlwjlhWdfNRjF4UeAgkrCJCK3fEXg==", "dev": true, - "dependencies": { + "requires": { "@babel/core": "^7.1.0", "@jest/types": "^27.1.1", "babel-plugin-istanbul": "^6.0.0", @@ -2271,23334 +1867,379 @@ "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/types": { + "@jest/types": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", "dev": true, - "dependencies": { + "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^16.0.0", "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@josephg/resolvable": { + "@josephg/resolvable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" }, - "node_modules/@leichtgewicht/ip-codec": { + "@leichtgewicht/ip-codec": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, - "node_modules/@mattrglobal/bbs-signatures": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", - "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", - "optionalDependencies": { - "@mattrglobal/node-bbs-signatures": "0.11.0" - } - }, - "node_modules/@mattrglobal/bls12381-key-pair": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", - "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", + "@material/animation": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-11.0.0.tgz", + "integrity": "sha512-pAJRl0ySvfOzqyGUme27tPf1LbqrjSTK4g5kngpXOPAIQdYYx89QLAfcqHONSpvXO7/WP+Kc9zJ3WWxbUaG8Wg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + }, "dependencies": { - "@mattrglobal/bbs-signatures": "0.5.0", - "bs58": "4.0.1", - "rfc4648": "1.4.0" + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "node_modules/@mattrglobal/node-bbs-signatures": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", - "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "neon-cli": "0.4.0", - "node-pre-gyp": "0.14.0" + "@material/base": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-11.0.0.tgz", + "integrity": "sha512-GTybYdiWBoEyYQ3he8cEeuXe5mPq2peFX41rBsMrs516TGDxrVJrEAKNedydhtpfRBsZRreTXMLZtbGrZzfIFQ==", + "dev": true, + "requires": { + "tslib": "^2.1.0" }, - "engines": { - "node": ">=10", - "yarn": "1.x" - } - }, - "node_modules/@motrix/nat-api": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", - "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", "dependencies": { - "async": "^3.2.0", - "debug": "^4.3.1", - "default-gateway": "^6.0.3", - "request": "^2.88.2", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.4.23" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@motrix/nat-api/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@motrix/nat-api/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@msgpack/msgpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", - "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.0.38", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.38.tgz", - "integrity": "sha512-zZ64UpCTm9me15nuCpPgJghSdbEm8atcDQPCyK+bKXjZAQ1735NCZXCSCfbckbQ4MH36Rm9403n/qMq77LFDzQ==", - "dependencies": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@peculiar/asn1-schema/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@peculiar/json-schema/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@peculiar/webcrypto": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz", - "integrity": "sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ==", - "dependencies": { - "@peculiar/asn1-schema": "^2.0.32", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.1.6", - "tslib": "^2.2.0", - "webcrypto-core": "^1.2.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@peculiar/webcrypto/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@perspect3vism/ad4m": { - "resolved": "../ad4m", - "link": true - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", - "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^2.30.0" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", - "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", - "dependencies": { - "@rollup/pluginutils": "^3.0.8" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "node_modules/@sideway/address": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", - "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", - "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", - "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" - }, - "node_modules/@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "node_modules/@stablelib/aes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", - "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/aes-kw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", - "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", - "dependencies": { - "@stablelib/aes": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "dependencies": { - "@stablelib/int": "^1.0.1" - } - }, - "node_modules/@stablelib/blockcipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", - "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" - }, - "node_modules/@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "node_modules/@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "node_modules/@stablelib/ed25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", - "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", - "dependencies": { - "@stablelib/random": "^1.0.1", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "node_modules/@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "node_modules/@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "dependencies": { - "@stablelib/bytes": "^1.0.1" - } - }, - "node_modules/@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/sha512": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", - "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "node_modules/@stablelib/x25519": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz", - "integrity": "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==", - "dependencies": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/xchacha20": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", - "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/xchacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", - "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1", - "@stablelib/xchacha20": "^1.0.1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@transmute/did-key-bls12381": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz", - "integrity": "sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ==", - "dependencies": { - "@mattrglobal/bbs-signatures": "^0.5.0", - "@mattrglobal/bls12381-key-pair": "^0.5.0", - "base64url": "^3.0.1", - "bs58": "^4.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-cipher": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz", - "integrity": "sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw==", - "dependencies": { - "@peculiar/webcrypto": "^1.1.3", - "@stablelib/aes-kw": "^1.0.0", - "@stablelib/xchacha20poly1305": "^1.0.0", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "web-streams-polyfill": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-common": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz", - "integrity": "sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A==", - "dependencies": { - "base64url": "^3.0.1", - "borc": "^2.1.2", - "canonicalize": "^1.0.3", - "cbor": "^5.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-ed25519": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz", - "integrity": "sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw==", - "dependencies": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@transmute/did-key-x25519": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-secp256k1": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz", - "integrity": "sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ==", - "dependencies": { - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1", - "secp256k1": "^4.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-web-crypto": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-web-crypto/-/did-key-web-crypto-0.2.1-unstable.42.tgz", - "integrity": "sha512-GaD320cZxPJAVdQtSrxgTn91T1M/2qwSMQgowVdnY5HKEik2BS3o1kU7DYAJpUPdU2WNKg9W3Rr+C/dRY0Q0rQ==", - "dependencies": { - "@transmute/web-crypto-key-pair": "^0.6.1-unstable.18" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-x25519": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-x25519/-/did-key-x25519-0.2.1-unstable.42.tgz", - "integrity": "sha512-pInHZaepvjmfym1fBDrdbL5isUVbYHR1nYBsH3uD9EPn7SwZfEBe0Vg9hUop81b4x/6+VVWuGm2dIhpVBxsRPQ==", - "dependencies": { - "@stablelib/ed25519": "^1.0.1", - "@stablelib/x25519": "^1.0.0", - "@transmute/did-key-cipher": "^0.2.1-unstable.42", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key.js": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key.js/-/did-key.js-0.2.1-unstable.42.tgz", - "integrity": "sha512-vqwkJeAIkpekSCszKztIOVGFuWZMF8GJfiSHMv+vsS0cgLqzHer8WCUCudWt76rc2s90uK7FdlkvdwoZgGRl6g==", - "dependencies": { - "@transmute/did-key-bls12381": "^0.2.1-unstable.42", - "@transmute/did-key-ed25519": "^0.2.1-unstable.42", - "@transmute/did-key-secp256k1": "^0.2.1-unstable.42", - "@transmute/did-key-web-crypto": "^0.2.1-unstable.42", - "@transmute/did-key-x25519": "^0.2.1-unstable.42" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-wallet": { - "version": "0.0.0-6", - "resolved": "git+ssh://git@github.com/lucksus/did-wallet.git#cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2", - "license": "Apache-2", - "dependencies": { - "base64url": "^3.0.1", - "jsonschema": "^1.2.4", - "lodash": "^4.17.11" - } - }, - "node_modules/@transmute/ld-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" - }, - "node_modules/@transmute/web-crypto-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-BVN5ECm3t5ldJiyixsdoXaptr14p2PxOOGWvyBm5eqWlVy/kiWQiVh43wZgEbHtjOkacTfw+BaVAtYkyGn2tpw==", - "dependencies": { - "@peculiar/webcrypto": "^1.1.6", - "@transmute/ld-key-pair": "^0.6.1-unstable.37", - "big-integer": "^1.6.48" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@trust/keyto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@trust/keyto/-/keyto-1.0.1.tgz", - "integrity": "sha512-OXTmKkrnkwktCX86XA7eWs1TQ6u64enm0syzAfNhjigbuGLy5aLhbhRYWtjt4zzdG/irWudluheRZ9Ic9pCwsA==", - "dependencies": { - "asn1.js": "^5.2.0", - "base64url": "^3.0.1", - "elliptic": "^6.5.2" - } - }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/asn1js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", - "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" - }, - "node_modules/@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/bl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/bl/-/bl-2.1.0.tgz", - "integrity": "sha512-1TdA9IXOy4sdqn8vgieQ6GZAiHiPNrOiO1s2GJjuYPw4QVY7gYoVjkW049avj33Ez7IcIvu43hQsMsoUFbCn2g==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/component-emitter": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", - "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==" - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" - }, - "node_modules/@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", - "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==" - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/faker": { - "version": "5.5.8", - "resolved": "https://registry.npmjs.org/@types/faker/-/faker-5.5.8.tgz", - "integrity": "sha512-bsl0rYsaZVHlZkynL5O04q6YXDmVjcid6MbOHWqvtE2WWs/EKhp0qchDDhVWlWyQXUffX1G83X9LnMxRl8S/Mw==", - "dev": true - }, - "node_modules/@types/fs-capacitor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", - "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.12.tgz", - "integrity": "sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" - }, - "node_modules/@types/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.1.tgz", - "integrity": "sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw==", - "dev": true, - "dependencies": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/js-yaml": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.3.tgz", - "integrity": "sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==", - "dev": true - }, - "node_modules/@types/json-stable-stringify": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz", - "integrity": "sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw==" - }, - "node_modules/@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" - }, - "node_modules/@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", - "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "node_modules/@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "dependencies": { - "@types/koa": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.172", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.172.tgz", - "integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==", - "dev": true - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/lowdb": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@types/lowdb/-/lowdb-1.0.11.tgz", - "integrity": "sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg==", - "dev": true, - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/node": { - "version": "14.17.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.15.tgz", - "integrity": "sha512-D1sdW0EcSCmNdLKBGMYb38YsHUS6JcM7yQ6sLQ9KuZ35ck7LYCKE7kYFHOO59ayFOY3zobWVZxf4KXhYHcHYFA==" - }, - "node_modules/@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sha256": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@types/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha512-QYMr6HuxTQunFWRLZpGopbkgQFoFWOmKTBGgNSYiWMqU/CWnQSTo3edyHvgsRXsOWtOSOG/cmDptPzgCeOsQGw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - }, - "node_modules/@types/zen-observable": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", - "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==", - "dev": true - }, - "node_modules/@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/context/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "node_modules/@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/equality/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "node_modules/@wry/trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", - "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/trie/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abortable-iterator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.0.tgz", - "integrity": "sha512-7KqcPPnMhfot4GrEjK51zesS4Ye/lUCHBgYt3oRxIlU24HO3mVxBwEo9niNyfHqoWKqWLuZTc3zErNomdHA+ag==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/absolute-path": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", - "integrity": "sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=" - }, - "node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/abstract-logging": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dependencies": { - "string-width": "^3.0.0" - } - }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "optional": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ansi-escape-sequences/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-signal": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", - "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.3" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/apollo-cache-control": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz", - "integrity": "sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==", - "deprecated": "The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details.", - "dependencies": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-datasource": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz", - "integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==", - "dependencies": { - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/apollo-graphql": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.3.tgz", - "integrity": "sha512-rcAl2E841Iko4kSzj4Pt3PRBitmyq1MvoEmpl04TQSpGnoVgl1E/ZXuLBYxMTSnEAm7umn2IsoY+c6Ll9U/10A==", - "dependencies": { - "core-js-pure": "^3.10.2", - "lodash.sortby": "^4.7.0", - "sha.js": "^2.4.11" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0" - } - }, - "node_modules/apollo-link": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz", - "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==", - "dependencies": { - "apollo-utilities": "^1.3.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3", - "zen-observable-ts": "^0.8.21" - }, - "peerDependencies": { - "graphql": "^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-link/node_modules/ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "dependencies": { - "tslib": "^1.9.3" - } - }, - "node_modules/apollo-reporting-protobuf": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz", - "integrity": "sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==", - "dependencies": { - "@apollo/protobufjs": "1.2.2" - } - }, - "node_modules/apollo-server": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.2.tgz", - "integrity": "sha512-2Ekx9puU5DqviZk6Kw1hbqTun3lwOWUjhiBJf+UfifYmnqq0s9vAv6Ditw+DEXwphJQ4vGKVVgVIEw6f/9YfhQ==", - "dependencies": { - "apollo-server-core": "^2.25.2", - "apollo-server-express": "^2.25.2", - "express": "^4.0.0", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "stoppable": "^1.1.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-caching": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz", - "integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/apollo-server-core": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.2.tgz", - "integrity": "sha512-lrohEjde2TmmDTO7FlOs8x5QQbAS0Sd3/t0TaK2TWaodfzi92QAvIsq321Mol6p6oEqmjm8POIDHW1EuJd7XMA==", - "dependencies": { - "@apollographql/apollo-tools": "^0.5.0", - "@apollographql/graphql-playground-html": "1.6.27", - "@apollographql/graphql-upload-8-fork": "^8.1.3", - "@josephg/resolvable": "^1.0.0", - "@types/ws": "^7.0.0", - "apollo-cache-control": "^0.14.0", - "apollo-datasource": "^0.9.0", - "apollo-graphql": "^0.9.0", - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0", - "apollo-server-errors": "^2.5.0", - "apollo-server-plugin-base": "^0.13.0", - "apollo-server-types": "^0.9.0", - "apollo-tracing": "^0.15.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "^0.15.0", - "graphql-tag": "^2.11.0", - "graphql-tools": "^4.0.8", - "loglevel": "^1.6.7", - "lru-cache": "^6.0.0", - "sha.js": "^2.4.11", - "subscriptions-transport-ws": "^0.9.19", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-env": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz", - "integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==", - "dependencies": { - "node-fetch": "^2.6.1", - "util.promisify": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/apollo-server-errors": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz", - "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.2.tgz", - "integrity": "sha512-A2gF2e85vvDugPlajbhr0A14cDFDIGX0mteNOJ8P3Z3cIM0D4hwrWxJidI+SzobefDIyIHu1dynFedJVhV0euQ==", - "dependencies": { - "@apollographql/graphql-playground-html": "1.6.27", - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.0", - "@types/cors": "2.8.10", - "@types/express": "^4.17.12", - "@types/express-serve-static-core": "^4.17.21", - "accepts": "^1.3.5", - "apollo-server-core": "^2.25.2", - "apollo-server-types": "^0.9.0", - "body-parser": "^1.18.3", - "cors": "^2.8.5", - "express": "^4.17.1", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "parseurl": "^1.3.2", - "subscriptions-transport-ws": "^0.9.19", - "type-is": "^1.6.16" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-express/node_modules/@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/apollo-server-plugin-base": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz", - "integrity": "sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==", - "dependencies": { - "apollo-server-types": "^0.9.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz", - "integrity": "sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==", - "dependencies": { - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-tracing": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz", - "integrity": "sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==", - "deprecated": "The `apollo-tracing` package is no longer part of Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#tracing for details", - "dependencies": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-utilities": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz", - "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==", - "dependencies": { - "@wry/equality": "^0.1.2", - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.10.0" - }, - "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-utilities/node_modules/@wry/equality": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", - "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", - "dependencies": { - "tslib": "^1.9.3" - } - }, - "node_modules/apollo-utilities/node_modules/ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "dependencies": { - "tslib": "^1.9.3" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", - "dependencies": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/args/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/args/node_modules/camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/args/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/args/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/args/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/args/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/args/node_modules/leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/args/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "optional": true, - "dependencies": { - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/array-back/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/array-shuffle": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-2.0.0.tgz", - "integrity": "sha512-rJTchCppiO6QsQnN51KDH1cgMYm13B+ybxFS5GgdBdTTHpZcrq3M7SOBgzp+L9fqqnjkFDiwdEVcX1wINgl9DQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1js": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.1.1.tgz", - "integrity": "sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g==", - "dependencies": { - "pvutils": "latest" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/babel-jest": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.1.1.tgz", - "integrity": "sha512-JA+dzJl4n2RBvWQEnph6HJaTHrsIPiXGQYatt/D8nR4UpX9UG4GaDzykVVPQBbrdTebZREkRb6SOxyIXJRab6Q==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.0.6", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz", - "integrity": "sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", - "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-fbjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", - "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", - "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-syntax-class-properties": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-block-scoped-functions": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-member-expression-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-property-literals": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz", - "integrity": "sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.0.6", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base32.js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz", - "integrity": "sha1-tYLexpPC8R6JPPBk7mrFthMaIgI=", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/base64url": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", - "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bcrypto": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/bcrypto/-/bcrypto-5.4.0.tgz", - "integrity": "sha512-KDX2CR29o6ZoqpQndcCxFZAtYA1jDMnXU3jmCfzP44g++Cu7AHHtZN/JbrN/MXAg9SLvtQ8XISG+eVD9zH1+Jg==", - "hasInstallScript": true, - "dependencies": { - "bufio": "~1.0.7", - "loady": "~0.0.5" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "engines": { - "node": "*" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" - }, - "node_modules/blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "node_modules/blob-to-it": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.3.tgz", - "integrity": "sha512-3bCrqSWG2qWwoIeF6DUJeuW/1isjx7DUhqZn9GpWlK8SVeqcjP+zw4yujdV0bVaqtggk6CUgtu87jfwHi5g7Zg==", - "dependencies": { - "browser-readablestream-to-it": "^1.0.2" - } - }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/body-parser/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/borc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", - "dependencies": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/boxen": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.0", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/boxen/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "node_modules/browser-readablestream-to-it": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz", - "integrity": "sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg==" - }, - "node_modules/browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", - "dependencies": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true, - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/bufio": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.0.7.tgz", - "integrity": "sha512-bd1dDQhiC+bEbEfg56IdBv7faWa6OipMs/AFFFvtFnB3wAYjlwQpQRZ0pm6ZkgtfL0pILRXhKxOiQj6UzoMR7A==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "optional": true - }, - "node_modules/busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", - "dependencies": { - "dicer": "0.3.0" - }, - "engines": { - "node": ">=4.5.0" - } - }, - "node_modules/byteman": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/byteman/-/byteman-1.3.5.tgz", - "integrity": "sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA==" - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-callsite/node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camel-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "peer": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001255", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz", - "integrity": "sha512-F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/canonicalize": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.5.tgz", - "integrity": "sha512-mAjKJPIyP0xqqv6IAkvso07StOmz6cmGtNDg3pXCSzXVZOqka7StIkAhJl/zHOi4M2CgpYfD6aeRWbnrmtvBEA==" - }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/capital-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-checkmark": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chai-checkmark/-/chai-checkmark-1.0.1.tgz", - "integrity": "sha1-n7s8mtkQHwl+8ogyjTD0In10//s=" - }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/change-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "optional": true - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "engines": { - "node": "*" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "node_modules/cid-tool": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cid-tool/-/cid-tool-1.0.0.tgz", - "integrity": "sha512-K7NGZBo1P6N2ogUmBtJWwMNfqXxU3ROiCHs+YKDDwBecsZ46J+9vJ6pOEJzds1JzqRnYRxxZBPfgBEYQebMXJg==", - "dependencies": { - "cids": "^1.0.0", - "explain-error": "^1.0.4", - "multibase": "^3.0.0", - "multihashes": "^3.0.1", - "split2": "^3.1.1", - "uint8arrays": "^1.1.0", - "yargs": "^15.0.2" - }, - "bin": { - "cid": "src/cli/bin.js" - } - }, - "node_modules/cid-tool/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/cid-tool/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cid-tool/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cid-tool/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/cid-tool/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cid-tool/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/cid-tool/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cid-tool/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/cid-tool/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cid-tool/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cids": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", - "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "multibase": "^4.0.1", - "multicodec": "^3.0.1", - "multihashes": "^4.0.1", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/cids/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/cids/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "optional": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "optional": true - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/coercer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/coercer/-/coercer-1.1.2.tgz", - "integrity": "sha1-6upEWVEfc/nzat4EqYEHznWCS3A=" - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/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==" - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - }, - "bin": { - "command-line-args": "bin/cli.js" - } - }, - "node_modules/command-line-args/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/command-line-commands": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz", - "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "optional": true, - "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "node_modules/constant-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-hex": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", - "integrity": "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/convert-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", - "integrity": "sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo=" - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", - "dependencies": { - "browserslist": "^4.17.0", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/cosmiconfig/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/cross-spawn/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/cross-spawn/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "peer": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dag-cbor-links": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dag-cbor-links/-/dag-cbor-links-2.0.2.tgz", - "integrity": "sha512-PS5skw2eGKVZ1VVu9wquoIoefgMvKhl9/OItzf+7UMot0Nnd3oe/Ai5AP48GvEkAi6GkmglhWwuoKF23hTHJqQ==", - "dependencies": { - "cids": "^1.0.0", - "ipld-dag-cbor": "^0.17.0" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/datastore-core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-3.0.0.tgz", - "integrity": "sha512-3jEv4DCPcDUYqZ5bc5TKwWhF8Rc4pykNxMoCKx5SxOWyTKqE1EX31JmC6eNGRKiAI1rLF3+i4AyW0UvY2LROGg==", - "dependencies": { - "debug": "^4.1.1", - "interface-datastore": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/datastore-core/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/datastore-core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/datastore-fs": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-3.0.2.tgz", - "integrity": "sha512-U9cmNMwopBzxSPnkwVC53OxPXbF9GNWpqAhdI/nxj2Xu1pShmCm/pwyZjd+HthHSwAbOdmEhQK/MLLaKWNylYQ==", - "dependencies": { - "datastore-core": "^3.0.0", - "fast-write-atomic": "^0.2.0", - "interface-datastore": "^3.0.3", - "it-glob": "^0.0.11", - "mkdirp": "^1.0.4" - } - }, - "node_modules/datastore-fs/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/datastore-level": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-4.0.0.tgz", - "integrity": "sha512-tesQaHDCHsZCTSI64ld9GJJnghcU3iZMVdXkQtr4LO88B5A5VAQPuRD0ZJAgcnqvMVM9QRm8CH1UEQgxpWvwaA==", - "dependencies": { - "datastore-core": "^3.0.0", - "interface-datastore": "^3.0.3", - "level": "^6.0.1" - } - }, - "node_modules/datastore-pubsub": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/datastore-pubsub/-/datastore-pubsub-0.4.3.tgz", - "integrity": "sha512-ObozduDPBdXN45k6AvX8apHiLjkORbRNrj5BHRt2SQhBAflU3uj+HQsyXZbnazUCiGIOjWAbr3fMZQVnef1Vtw==", - "dependencies": { - "debug": "^4.2.0", - "err-code": "^3.0.1", - "interface-datastore": "^2.0.0", - "uint8arrays": "^2.0.5" - } - }, - "node_modules/datastore-pubsub/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/datastore-pubsub/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/datastore-pubsub/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/datastore-pubsub/node_modules/interface-datastore": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-2.0.1.tgz", - "integrity": "sha512-a4xHvVE8JCG8UItP0CCq+UJyBHZxhMp3esuFNjb3U9rP+tzKiG0HZXz8gIIwic6VbuE0Gui2whbJyJOFpMxhLg==", - "dependencies": { - "class-is": "^1.1.0", - "err-code": "^2.0.1", - "ipfs-utils": "^4.0.1", - "iso-random-stream": "^1.1.1", - "it-all": "^1.0.2", - "it-drain": "^1.0.1", - "nanoid": "^3.0.2" - } - }, - "node_modules/datastore-pubsub/node_modules/interface-datastore/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/datastore-pubsub/node_modules/ipfs-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-4.0.1.tgz", - "integrity": "sha512-6mg+S1sbjj+Ff+uoHOhVeC4myfV2tb2sHcdYwfpJ4ZcBo9WfdxSMnWFLiC5bIqByyJuN/g5aWgz3ozjKDzND1Q==", - "dependencies": { - "@achingbrain/electron-fetch": "^1.7.2", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "err-code": "^2.0.0", - "fs-extra": "^9.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "0.0.10", - "merge-options": "^2.0.0", - "nanoid": "^3.1.3", - "native-abort-controller": "0.0.3", - "native-fetch": "^2.0.0", - "node-fetch": "^2.6.0", - "stream-to-it": "^0.2.0" - } - }, - "node_modules/datastore-pubsub/node_modules/ipfs-utils/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/datastore-pubsub/node_modules/iso-random-stream": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-1.1.2.tgz", - "integrity": "sha512-7y0tsBBgQs544iTYjyrMp5xvgrbYR8b+plQq1Bryp+03p0LssrxC9C1M0oHv4QESDt7d95c74XvMk/yawKqX+A==", - "dependencies": { - "buffer": "^6.0.3", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/datastore-pubsub/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/datastore-pubsub/node_modules/it-glob": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", - "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", - "dependencies": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "node_modules/datastore-pubsub/node_modules/merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/datastore-pubsub/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/datastore-pubsub/node_modules/native-abort-controller": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", - "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/datastore-pubsub/node_modules/native-fetch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", - "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/dateformat": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz", - "integrity": "sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==", - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delay": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/delay/-/delay-4.4.1.tgz", - "integrity": "sha512-aL3AhqtfhOlT/3ai6sWXeqwnw63ATNpnUiN4HL7x9q+My5QtHlO3OIkasmug9LKzpheLdmUKGRKnYXYAS7FQkQ==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "node_modules/delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" - }, - "node_modules/denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=" - }, - "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/deprecated-decorator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", - "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", - "dependencies": { - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=4.5.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" - }, - "node_modules/diff-sequences": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dirty-chai": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz", - "integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==", - "peerDependencies": { - "chai": ">=2.2.1 <5" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, - "node_modules/dns-over-http-resolver/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dns-over-http-resolver/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/dns-packet": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.0.tgz", - "integrity": "sha512-Nce7YLu6YCgWRvOmDBsJMo9M5/jV3lEZ5vUWnWXYmwURvPylHvq7nkDWhNmk1ZQoZZOP7oQh/S0lSxbisKOfHg==", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ecc-jsbn/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/electron": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-1.8.8.tgz", - "integrity": "sha512-1f9zJehcTTGjrkb06o6ds+gsRq6SYhZJyxOk6zIWjRH8hVy03y/RzUDELzNas71f5vcvXmfGVvyjeEsadDI8tg==", - "hasInstallScript": true, - "peer": true, - "dependencies": { - "@types/node": "^8.0.24", - "electron-download": "^3.0.1", - "extract-zip": "^1.0.3" - }, - "bin": { - "electron": "cli.js" - } - }, - "node_modules/electron-download": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", - "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", - "peer": true, - "dependencies": { - "debug": "^2.2.0", - "fs-extra": "^0.30.0", - "home-path": "^1.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.0", - "path-exists": "^2.1.0", - "rc": "^1.1.2", - "semver": "^5.3.0", - "sumchecker": "^1.2.0" - }, - "bin": { - "electron-download": "build/cli.js" - } - }, - "node_modules/electron-download/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/electron-download/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "peer": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-download/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/electron-download/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/electron-eval": { - "version": "0.9.10", - "resolved": "https://registry.npmjs.org/electron-eval/-/electron-eval-0.9.10.tgz", - "integrity": "sha512-VrAw2MrAjCwM8EGQsY+n48/f9P4W+AH56adERtDEb9bl5Hw9aN+ectmuK9QIi2XA11g+owQlyj2N4AzvdT363A==", - "peer": true, - "dependencies": { - "cross-spawn": "^5.1.0", - "electron": "^1.6.11", - "ndjson": "^1.5.0" - }, - "optionalDependencies": { - "headless": "https://github.com/paulkernfeld/node-headless/tarball/master" - } - }, - "node_modules/electron-fetch": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz", - "integrity": "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==", - "dependencies": { - "encoding": "^0.1.13" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.3.834", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.834.tgz", - "integrity": "sha512-9hnYJOlj2zbVn59Oy1R2mW/jntsRG7Gy56/aAOq8s29DzDYW/kOrq/ryJXGAQRRMg4MreHjI63XavGZTsnPubg==" - }, - "node_modules/electron-webrtc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/electron-webrtc/-/electron-webrtc-0.3.0.tgz", - "integrity": "sha1-VG0cqBpEU0jDIGLLnaXnpKasrc8=", - "peer": true, - "dependencies": { - "debug": "^2.2.0", - "electron-eval": "^0.9.0", - "get-browser-rtc": "^1.0.2", - "hat": "^0.0.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/electron/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "peer": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dependencies": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", - "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/engine.io-client": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz", - "integrity": "sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==", - "dependencies": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/engine.io/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/engine.io/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-string": "^1.0.7", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "peer": true - }, - "node_modules/es6-promisify": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", - "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==" - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.1.1.tgz", - "integrity": "sha512-JQAzp0CJoFFHF1RnOtrMUNMdsfx/Tl0+FhRzVl8q0fa23N+JyWdPXwb3T5rkHCvyo9uttnK7lVdKCBl1b/9EDw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-regex-util": "^27.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/explain-error": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz", - "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk=" - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "optional": true, - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "optional": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "peer": true, - "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/faker": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz", - "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-redact": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.2.tgz", - "integrity": "sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fast-write-atomic": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", - "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" - }, - "node_modules/fastify-warning": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", - "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fbjs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", - "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==", - "dependencies": { - "core-js": "^2.4.1", - "fbjs-css-vars": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "peer": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-type": { - "version": "16.5.3", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", - "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/filecompare": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filecompare/-/filecompare-1.0.4.tgz", - "integrity": "sha512-Kfqx1EcX+zuixN8jEs52y50mz6XmfZG3msRJx7rFXj4T3oY7SBBHMYimrg8DZJdP2ab1asOMp0mqZlxezbor3w==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "filecompare": "bin/filecompare" - } - }, - "node_modules/filesize": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz", - "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", - "optional": true, - "dependencies": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-replace/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/find-replace/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up/node_modules/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "node_modules/fnv1a": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.0.1.tgz", - "integrity": "sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU=" - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-capacitor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", - "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==", - "engines": { - "node": ">=8.5" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/gar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz", - "integrity": "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==" - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gc-stats/-/gc-stats-1.4.0.tgz", - "integrity": "sha512-4FcCj9e8j8rCjvLkqRpGZBLgTC/xr9XEf5By3x77cDucWWB3pJK6FEwXZCTCbb4z8xdaOoi4owBNrvn3ciDdxA==", - "bundleDependencies": [ - "node-pre-gyp" - ], - "hasInstallScript": true, - "optional": true, - "dependencies": { - "nan": "^2.13.2", - "node-pre-gyp": "^0.13.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/gc-stats/node_modules/abbrev": { - "version": "1.1.1", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/ansi-regex": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/aproba": { - "version": "1.2.0", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/are-we-there-yet": { - "version": "1.1.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/gc-stats/node_modules/balanced-match": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/brace-expansion": { - "version": "1.1.11", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/gc-stats/node_modules/chownr": { - "version": "1.1.1", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/code-point-at": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/concat-map": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/console-control-strings": { - "version": "1.1.0", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/core-util-is": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/debug": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/gc-stats/node_modules/deep-extend": { - "version": "0.6.0", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/gc-stats/node_modules/delegates": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/detect-libc": { - "version": "1.0.3", - "inBundle": true, - "license": "Apache-2.0", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/gc-stats/node_modules/fs-minipass": { - "version": "1.2.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "minipass": "^2.2.1" - } - }, - "node_modules/gc-stats/node_modules/fs.realpath": { - "version": "1.0.0", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/gauge": { - "version": "2.7.4", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gc-stats/node_modules/glob": { - "version": "7.1.3", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/gc-stats/node_modules/has-unicode": { - "version": "2.0.1", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/iconv-lite": { - "version": "0.4.24", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/ignore-walk": { - "version": "3.0.1", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/gc-stats/node_modules/inflight": { - "version": "1.0.6", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/gc-stats/node_modules/inherits": { - "version": "2.0.3", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/ini": { - "version": "1.3.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/gc-stats/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/isarray": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/minimatch": { - "version": "3.0.4", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/gc-stats/node_modules/minimist": { - "version": "0.0.8", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/minipass": { - "version": "2.3.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/gc-stats/node_modules/minizlib": { - "version": "1.2.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "minipass": "^2.2.1" - } - }, - "node_modules/gc-stats/node_modules/mkdirp": { - "version": "0.5.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/gc-stats/node_modules/ms": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/needle": { - "version": "2.3.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/gc-stats/node_modules/node-pre-gyp": { - "version": "0.13.0", - "inBundle": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/gc-stats/node_modules/nopt": { - "version": "4.0.1", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/gc-stats/node_modules/npm-bundled": { - "version": "1.0.6", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/npm-packlist": { - "version": "1.4.1", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "node_modules/gc-stats/node_modules/npmlog": { - "version": "4.1.2", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/gc-stats/node_modules/number-is-nan": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/object-assign": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/once": { - "version": "1.4.0", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/gc-stats/node_modules/os-homedir": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/os-tmpdir": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/osenv": { - "version": "0.1.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/gc-stats/node_modules/path-is-absolute": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/process-nextick-args": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/rc": { - "version": "1.2.8", - "inBundle": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/gc-stats/node_modules/rc/node_modules/minimist": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/readable-stream": { - "version": "2.3.6", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/gc-stats/node_modules/rimraf": { - "version": "2.6.3", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/gc-stats/node_modules/safe-buffer": { - "version": "5.1.2", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/safer-buffer": { - "version": "2.1.2", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/sax": { - "version": "1.2.4", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/semver": { - "version": "5.7.0", - "inBundle": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/gc-stats/node_modules/set-blocking": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/signal-exit": { - "version": "3.0.2", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/string_decoder": { - "version": "1.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/gc-stats/node_modules/string-width": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/strip-ansi": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/strip-json-comments": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/tar": { - "version": "4.4.8", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/gc-stats/node_modules/util-deprecate": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/wide-align": { - "version": "1.1.3", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/gc-stats/node_modules/wrappy": { - "version": "1.0.2", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/yallist": { - "version": "3.0.3", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-browser-rtc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz", - "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-folder-size": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz", - "integrity": "sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==", - "dependencies": { - "gar": "^1.0.4", - "tiny-each-async": "2.0.3" - }, - "bin": { - "get-folder-size": "bin/get-folder-size" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/git-config": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", - "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", - "optional": true, - "dependencies": { - "iniparser": "~1.0.5" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/got/node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "node_modules/graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-extensions": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz", - "integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==", - "deprecated": "The `graphql-extensions` API has been removed from Apollo Server 3. Use the plugin API instead: https://www.apollographql.com/docs/apollo-server/integrations/plugins/", - "dependencies": { - "@apollographql/apollo-tools": "^0.5.0", - "apollo-server-env": "^3.1.0", - "apollo-server-types": "^0.9.0" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", - "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", - "dependencies": { - "iterall": "^1.3.0" - }, - "peerDependencies": { - "graphql": "^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.5", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz", - "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-tag/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/graphql-tools": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", - "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", - "deprecated": "This package has been deprecated and now it only exports makeExecutableSchema.\\nAnd it will no longer receive updates.\\nWe recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.\\nCheck out https://www.graphql-tools.com to learn what package you should use instead", - "dependencies": { - "apollo-link": "^1.2.14", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" - }, - "peerDependencies": { - "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-tools/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/hamt-sharding": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-1.0.0.tgz", - "integrity": "sha512-jDk8N1U8qprvSt3KopOrrP46zUogxeZY+znDHP196MLBQKldld0TQFTneT1bxOFDw8vttbAQy1bG7L3/pzYorg==", - "dependencies": { - "sparse-array": "^1.3.1" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "optional": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hapi-pino": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.3.0.tgz", - "integrity": "sha512-8Cm1WIs6jp8B9ZzYqPFbCWNKt6F6jNCfLmCIHmPsm35sTOvT/r5+d9KpYR2vigWQRLS23VBXzOqUVESpP7r+jA==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "abstract-logging": "^2.0.0", - "pino": "^6.0.0", - "pino-pretty": "^4.0.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hashlru": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" - }, - "node_modules/hat": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", - "integrity": "sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=", - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/header-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/headless": { - "version": "1.1.0", - "resolved": "https://github.com/paulkernfeld/node-headless/tarball/master", - "integrity": "sha512-Y+OAUntNS8dvU9cX0NHuTegMu7sDbd9KbPHF/pe9YO64UvuSE14AEKmMqzRqywQx83a3Y23inqC6iDvAd6PIYA==", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/heap": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", - "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/home-path": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.7.tgz", - "integrity": "sha512-tM1pVa+u3ZqQwIkXcWfhUlY3HWS3TsnKsfi2OHHvnhkX52s9etyktPyy1rQotkr0euWimChDq+QkQuDe8ngUlQ==", - "peer": true - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/image-size": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", - "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==", - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/iniparser": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", - "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "optional": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "node_modules/inquirer/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "optional": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "optional": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "optional": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "optional": true - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "optional": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "optional": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/interface-datastore": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-3.0.6.tgz", - "integrity": "sha512-ruF9CVmtKCNfzCZYW6YeEKDRDbgFaiKGrSWof19BVCv6Qx/WrL1jRV4sCQUHCaXwJI7FCFknhw++PGafWCXvfw==", - "dependencies": { - "err-code": "^3.0.1", - "ipfs-utils": "^6.0.0", - "iso-random-stream": "^2.0.0", - "it-all": "^1.0.2", - "it-drain": "^1.0.1", - "nanoid": "^3.0.2" - } - }, - "node_modules/interface-datastore/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ip-address": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-6.4.0.tgz", - "integrity": "sha512-c5uxc2WUTuRBVHT/6r4m7HIr/DfV0bF6DvLH3iZGSK8wp8iMwwZSgIq2do0asFf8q9ECug0SE+6+1ACMe4sorA==", - "dependencies": { - "jsbn": "1.1.0", - "lodash.find": "4.6.0", - "lodash.max": "4.0.1", - "lodash.merge": "4.6.2", - "lodash.padstart": "4.6.1", - "lodash.repeat": "4.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipfs": { - "version": "0.54.5", - "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.54.5.tgz", - "integrity": "sha512-vmp/wK9gchCFH/n2W/r863TvQczHNKS2+OsCaGKhAJNJ08dgHuzffmcfW+pdg/WDTmgFGF+1+ZF555EuL/Uh7A==", - "dependencies": { - "debug": "^4.1.1", - "ipfs-cli": "^0.4.5", - "ipfs-core": "^0.5.4", - "ipfs-repo": "^8.0.0", - "semver": "^7.3.2", - "update-notifier": "^5.0.0" - }, - "bin": { - "jsipfs": "src/cli.js" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-bitswap": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-4.0.2.tgz", - "integrity": "sha512-9fYoCL7G0Qu3z4r99j2xVWLbYnB9kK+JdTSEt1XNquPW8tA89U44ZfLxaq2C/LuxbQLkV0/C26WZtrCd1QYllQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.0", - "cids": "^1.0.0", - "debug": "^4.1.0", - "ipld-block": "^0.11.0", - "it-length-prefixed": "^3.0.0", - "it-pipe": "^1.1.0", - "just-debounce-it": "^1.1.0", - "libp2p-interfaces": "^0.8.3", - "moving-average": "^1.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.1", - "protons": "^2.0.0", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.0.5", - "varint-decoder": "^1.0.0" - } - }, - "node_modules/ipfs-bitswap/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-bitswap/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-bitswap/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-bitswap/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipfs-bitswap/node_modules/multicodec/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipfs-block-service": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/ipfs-block-service/-/ipfs-block-service-0.18.0.tgz", - "integrity": "sha512-tye5Uxbf3bYlfcGkV3CspP2JNcM2Ggm/5Kxph0jGKtAZtgfFxUq3NeSmvS6nGtZZBaFP4nwRF2yq7dQMALWzVg==", - "deprecated": "This module has been merged into ipfs", - "dependencies": { - "err-code": "^2.0.0", - "streaming-iterables": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-cli": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.4.5.tgz", - "integrity": "sha512-CrRACkyk6WysKs+AHuPk5TyOqDXkYOiti4qzxSeNg7tqiKb2MOJ8XjhCib15ojiUE2RPhjA3DTRS3tsc4tMitw==", - "dependencies": { - "bignumber.js": "^9.0.1", - "byteman": "^1.3.5", - "cid-tool": "^1.0.0", - "cids": "^1.1.5", - "debug": "^4.1.1", - "err-code": "^2.0.3", - "execa": "^5.0.0", - "get-folder-size": "^2.0.1", - "ipfs-core": "^0.5.4", - "ipfs-core-utils": "^0.7.2", - "ipfs-daemon": "^0.5.5", - "ipfs-http-client": "^49.0.4", - "ipfs-repo": "^8.0.0", - "ipfs-utils": "^6.0.1", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "it-all": "^1.0.4", - "it-concat": "^1.0.1", - "it-first": "^1.0.4", - "it-glob": "0.0.11", - "it-pipe": "^1.1.0", - "jsondiffpatch": "^0.4.1", - "libp2p-crypto": "^0.19.0", - "mafmt": "^8.0.0", - "multiaddr": "^8.0.0", - "multiaddr-to-uri": "^6.0.0", - "multibase": "^4.0.2", - "multihashing-async": "^2.1.2", - "parse-duration": "^0.4.4", - "peer-id": "^0.14.1", - "pretty-bytes": "^5.4.1", - "progress": "^2.0.3", - "stream-to-it": "^0.2.2", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.1.3", - "yargs": "^16.0.3" - } - }, - "node_modules/ipfs-cli/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-cli/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-core": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.5.4.tgz", - "integrity": "sha512-gyv3slu7FuaN1wxfDPhNoWiTSvUJ1pq0Nx2NsU3WWzOvKCaacHtE8HXO51AAuQUMUEN0thYGzVHziHGLI9udNQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "array-shuffle": "^2.0.0", - "bignumber.js": "^9.0.1", - "cbor": "^6.0.1", - "cids": "^1.1.5", - "class-is": "^1.1.0", - "dag-cbor-links": "^2.0.0", - "datastore-core": "^3.0.0", - "datastore-pubsub": "^0.4.1", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^2.0.3", - "hamt-sharding": "^1.0.0", - "hashlru": "^2.3.0", - "interface-datastore": "^3.0.3", - "ipfs-bitswap": "^4.0.2", - "ipfs-block-service": "^0.18.0", - "ipfs-core-types": "^0.3.1", - "ipfs-core-utils": "^0.7.2", - "ipfs-repo": "^8.0.0", - "ipfs-unixfs": "^2.0.3", - "ipfs-unixfs-exporter": "^3.0.4", - "ipfs-unixfs-importer": "^5.0.0", - "ipfs-utils": "^6.0.1", - "ipld": "^0.28.0", - "ipld-block": "^0.11.0", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "ipld-raw": "^6.0.0", - "ipns": "^0.8.0", - "is-domain-name": "^1.0.1", - "is-ipfs": "^2.0.0", - "it-all": "^1.0.4", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-pipe": "^1.1.0", - "libp2p": "^0.30.7", - "libp2p-bootstrap": "^0.12.1", - "libp2p-crypto": "^0.19.0", - "libp2p-floodsub": "^0.24.1", - "libp2p-gossipsub": "^0.8.0", - "libp2p-kad-dht": "^0.20.1", - "libp2p-mdns": "^0.15.0", - "libp2p-mplex": "^0.10.0", - "libp2p-noise": "^2.0.1", - "libp2p-record": "^0.9.0", - "libp2p-tcp": "^0.15.1", - "libp2p-webrtc-star": "^0.21.0", - "libp2p-websockets": "^0.15.1", - "mafmt": "^8.0.0", - "merge-options": "^3.0.4", - "mortice": "^2.0.0", - "multiaddr": "^8.0.0", - "multiaddr-to-uri": "^6.0.0", - "multibase": "^4.0.2", - "multicodec": "^3.0.1", - "multihashing-async": "^2.1.2", - "native-abort-controller": "^1.0.3", - "p-queue": "^6.6.1", - "parse-duration": "^0.4.4", - "peer-id": "^0.14.1", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.1.3" - } - }, - "node_modules/ipfs-core-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.3.1.tgz", - "integrity": "sha512-xPBsowS951RsuskMo86AWz9y4ReaBot1YsjOhZvKl8ORd8taxIBTT72LnEPwIZ2G24U854Zjxvd/qUMqO14ivg==", - "dependencies": { - "cids": "^1.1.5", - "multiaddr": "^8.0.0", - "peer-id": "^0.14.1" - } - }, - "node_modules/ipfs-core-utils": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.7.2.tgz", - "integrity": "sha512-d7T72GxvhNN+tEHsJjxI5Y4LQVdMMbSwNbWB6nVsIHUEdwm3w85L2u1E/ctNd9aaNGvoBwEcnIZhSmqhMf7stw==", - "dependencies": { - "any-signal": "^2.1.2", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "cids": "^1.1.5", - "err-code": "^2.0.3", - "ipfs-core-types": "^0.3.1", - "ipfs-utils": "^6.0.1", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.1", - "multiaddr": "^8.0.0", - "multiaddr-to-uri": "^6.0.0", - "parse-duration": "^0.4.4", - "timeout-abort-controller": "^1.1.1", - "uint8arrays": "^2.1.3" - } - }, - "node_modules/ipfs-core/node_modules/cbor": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-6.0.1.tgz", - "integrity": "sha512-gVJ2e/DFInWOriOUqNyrZe5xN8RSK49X7G+pLalz32GwKs1xHNXtrkcbV5K4+Z2X7qJiv6f700PnUEaJoIEPGQ==", - "hasInstallScript": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=10.18.0" - } - }, - "node_modules/ipfs-core/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-daemon": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.5.5.tgz", - "integrity": "sha512-GZnWy3MqJ/zgJxMByEuK6d0tphRV24H+y83ej4+ORjcjgwB/qBrJlYC3qtwPQAZJcLg+jMxGU+UK1xU91paPXA==", - "dependencies": { - "debug": "^4.1.1", - "dlv": "^1.1.3", - "ipfs-core": "^0.5.4", - "ipfs-grpc-server": "^0.2.5", - "ipfs-http-client": "^49.0.4", - "ipfs-http-gateway": "^0.3.2", - "ipfs-http-server": "^0.3.5", - "ipfs-utils": "^6.0.1", - "just-safe-set": "^2.1.0", - "libp2p": "^0.30.7", - "libp2p-delegated-content-routing": "^0.9.0", - "libp2p-delegated-peer-routing": "^0.8.0", - "libp2p-webrtc-star": "^0.21.0", - "multiaddr": "^8.0.0" - }, - "optionalDependencies": { - "prom-client": "^12.0.0", - "prometheus-gc-stats": "^0.6.0" - }, - "peerDependencies": { - "electron-webrtc": "^0.3.0", - "wrtc": "^0.4.6" - } - }, - "node_modules/ipfs-daemon/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-daemon/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-grpc-protocol": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.2.0.tgz", - "integrity": "sha512-XQB67HO8ti36HhGxompsoZxKfareIE6jetOAWVrfbKyPVi75JtUjQ7euhNxbxw2xS3/H8Jd8bsIU/qwKe1tVig==" - }, - "node_modules/ipfs-grpc-server": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.2.5.tgz", - "integrity": "sha512-mAGRI4n7hKpBb3kwFpi9Bn2elLJFA2vzNuAlKCn9o4JTlhiCIa1ocCqNvTaN7nGcEvDeFmA1YgPVVUA0Ot17Lw==", - "dependencies": { - "@grpc/grpc-js": "^1.1.8", - "change-case": "^4.1.1", - "coercer": "^1.1.2", - "debug": "^4.1.1", - "ipfs-grpc-protocol": "^0.2.0", - "it-first": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.0", - "protobufjs": "^6.10.2", - "ws": "^7.3.1" - } - }, - "node_modules/ipfs-grpc-server/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-grpc-server/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-client": { - "version": "49.0.4", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-49.0.4.tgz", - "integrity": "sha512-qgWbkcB4glQrUkE2tZR+GVXyrO6aJyspWBjyct/6TzrhCHx7evjz+kUTK+wNm4S9zccUePEml5VNZUmUhoQtbA==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "bignumber.js": "^9.0.1", - "cids": "^1.1.5", - "debug": "^4.1.1", - "form-data": "^3.0.0", - "ipfs-core-types": "^0.3.1", - "ipfs-core-utils": "^0.7.2", - "ipfs-utils": "^6.0.1", - "ipld-block": "^0.11.0", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "ipld-raw": "^6.0.0", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-tar": "^1.2.2", - "it-to-stream": "^0.1.2", - "merge-options": "^3.0.4", - "multiaddr": "^8.0.0", - "multibase": "^4.0.2", - "multicodec": "^3.0.1", - "multihashes": "^4.0.2", - "nanoid": "^3.1.12", - "native-abort-controller": "^1.0.3", - "parse-duration": "^0.4.4", - "stream-to-it": "^0.2.2", - "uint8arrays": "^2.1.3" - }, - "engines": { - "node": ">=10.3.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-http-client/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-client/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-http-client/node_modules/multihashes/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/ipfs-http-client/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/ipfs-http-gateway": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.3.2.tgz", - "integrity": "sha512-yb+dbv7ZF5or6rsGm0FF2PSGE4OvJSnEqdOf5JjEokf43gRHBVe4QpiMBWZahRET3bZZ3IfjLOPWkCptE/eNVA==", - "dependencies": { - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/hapi": "^20.0.0", - "cids": "^1.1.5", - "debug": "^4.1.1", - "hapi-pino": "^8.3.0", - "ipfs-core-utils": "^0.7.2", - "ipfs-http-response": "^0.6.0", - "is-ipfs": "^2.0.0", - "it-last": "^1.0.4", - "it-to-stream": "^0.1.2", - "joi": "^17.2.1", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "uri-to-multiaddr": "^4.0.0" - } - }, - "node_modules/ipfs-http-gateway/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-gateway/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-response": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-0.6.4.tgz", - "integrity": "sha512-ltQgWaK72IJC7wmwrCZdhewA5Rq2G666y9R4CXkU1rgcqvXDyC0izEDJZN9xNXg17ib9ieS3Dcqc4k+A1te8xw==", - "dependencies": { - "debug": "^4.1.1", - "file-type": "^16.0.0", - "filesize": "^6.1.0", - "it-buffer": "^0.1.1", - "it-concat": "^2.0.0", - "it-reader": "^3.0.0", - "it-to-stream": "^1.0.0", - "mime-types": "^2.1.27", - "multihashes": "^4.0.2", - "p-try-each": "^1.0.1" - } - }, - "node_modules/ipfs-http-response/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/ipfs-http-response/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ipfs-http-response/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-response/node_modules/it-concat": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", - "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", - "dependencies": { - "bl": "^5.0.0" - } - }, - "node_modules/ipfs-http-response/node_modules/it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/ipfs-http-response/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-response/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-http-response/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/ipfs-http-response/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/ipfs-http-server": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.3.5.tgz", - "integrity": "sha512-mGMO2iPEINVpKCxndRfkVQXCzdG47x4Fa8GnvhFPFXBfbJDGqBQGXVYiR6gjyC6DjmRVNE2vipany2qx3fekDg==", - "dependencies": { - "@hapi/boom": "^9.1.0", - "@hapi/content": "^5.0.2", - "@hapi/hapi": "^20.0.0", - "abort-controller": "^3.0.0", - "cids": "^1.1.5", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^2.0.3", - "hapi-pino": "^8.3.0", - "ipfs-core-utils": "^0.7.2", - "ipfs-http-gateway": "^0.3.2", - "ipfs-unixfs": "^2.0.3", - "ipld-dag-pb": "^0.20.0", - "it-all": "^1.0.4", - "it-drain": "^1.0.3", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-multipart": "^1.0.5", - "it-pipe": "^1.1.0", - "it-tar": "^1.2.2", - "it-to-stream": "^0.1.2", - "iterable-ndjson": "^1.1.0", - "joi": "^17.2.1", - "just-safe-set": "^2.1.0", - "multiaddr": "^8.0.0", - "multibase": "^4.0.2", - "multicodec": "^3.0.1", - "multihashing-async": "^2.1.2", - "native-abort-controller": "^1.0.3", - "parse-duration": "^0.4.4", - "stream-to-it": "^0.2.2", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.1.3", - "uri-to-multiaddr": "^4.0.0" - }, - "optionalDependencies": { - "prom-client": "^12.0.0" - } - }, - "node_modules/ipfs-http-server/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-server/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-repo": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-8.0.0.tgz", - "integrity": "sha512-NFdoVFYbhIn48JGJEbMq6890RTbdgXnfKKnBTO5sE1Dk0ByR3ncGDKmUtiTsfbZbBbpmmeKmfdLNTBzUYFXIfg==", - "dependencies": { - "bignumber.js": "^9.0.0", - "bytes": "^3.1.0", - "cids": "^1.0.0", - "datastore-core": "^3.0.0", - "datastore-fs": "^3.0.0", - "datastore-level": "^4.0.0", - "debug": "^4.1.0", - "err-code": "^2.0.0", - "interface-datastore": "^3.0.3", - "ipfs-repo-migrations": "^6.0.0", - "ipfs-utils": "^6.0.0", - "ipld-block": "^0.11.0", - "it-map": "^1.0.2", - "it-pushable": "^1.4.0", - "just-safe-get": "^2.0.0", - "just-safe-set": "^2.1.0", - "multibase": "^3.0.0", - "p-queue": "^6.0.0", - "proper-lockfile": "^4.0.0", - "sort-keys": "^4.0.0", - "uint8arrays": "^2.0.5" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-repo-migrations": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-6.0.0.tgz", - "integrity": "sha512-kX+ddMtN4aCxZNfMbxlt48Go+9eu4Mkbsv/feLI3XwL/yjlfkqU2lSG7DiqBLCZ0rSrpOTRXhxg/zUYXzLC7cA==", - "dependencies": { - "cbor": "^6.0.1", - "cids": "^1.0.0", - "datastore-core": "^3.0.0", - "debug": "^4.1.0", - "fnv1a": "^1.0.1", - "interface-datastore": "^3.0.3", - "ipld-dag-pb": "^0.20.0", - "it-length": "^1.0.1", - "multibase": "^3.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.0", - "proper-lockfile": "^4.1.1", - "protons": "^2.0.0", - "uint8arrays": "^2.0.5", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/cbor": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-6.0.1.tgz", - "integrity": "sha512-gVJ2e/DFInWOriOUqNyrZe5xN8RSK49X7G+pLalz32GwKs1xHNXtrkcbV5K4+Z2X7qJiv6f700PnUEaJoIEPGQ==", - "hasInstallScript": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=10.18.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-repo-migrations/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-repo-migrations/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/multicodec/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipfs-repo/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-repo/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-repo/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-unixfs": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-2.0.4.tgz", - "integrity": "sha512-b8dL8DZSwv0G3WTy8XnH1+Vzj/UydNI4yK/7/j3Ywyx+3yAQW566bdgaW1zvEFWTT3tBK1h3iJrRNHRs3CnBJA==", - "dependencies": { - "err-code": "^2.0.0", - "protons": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=4.0.0" - } - }, - "node_modules/ipfs-unixfs-exporter": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-3.0.7.tgz", - "integrity": "sha512-ZYpE8SVLcvxDVb9+aKwthf7a4gRFSHqbEJaVrvVOpeXKSG66WTrI0KQR14sIk0v4SYOaUSWrWVXsSjUbONrVHg==", - "dependencies": { - "cids": "^1.0.0", - "err-code": "^2.0.0", - "hamt-sharding": "^1.0.0", - "ipfs-unixfs": "^2.0.4", - "ipfs-utils": "^5.0.0", - "it-last": "^1.0.1", - "multihashing-async": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=4.0.0" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/ipfs-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz", - "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^2.0.0", - "fs-extra": "^9.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "0.0.10", - "it-to-stream": "^0.1.2", - "merge-options": "^2.0.0", - "nanoid": "^3.1.3", - "native-abort-controller": "0.0.3", - "native-fetch": "^2.0.0", - "node-fetch": "^2.6.0", - "stream-to-it": "^0.2.0" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/it-glob": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", - "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", - "dependencies": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/native-abort-controller": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", - "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/native-fetch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", - "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/ipfs-unixfs-importer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-5.0.0.tgz", - "integrity": "sha512-bvdnCXwwCj72w/FQ7o6XcvrcbCUgXrruK0UZOfhl/mf44Nv0DWyn1Y4hQF/u63rJvYLQdAMlqniAAtFQpHQhcg==", - "dependencies": { - "bl": "^4.0.0", - "err-code": "^2.0.0", - "hamt-sharding": "^1.0.0", - "ipfs-unixfs": "^2.0.4", - "ipfs-utils": "^5.0.0", - "ipld-dag-pb": "^0.20.0", - "it-all": "^1.0.1", - "it-batch": "^1.0.3", - "it-first": "^1.0.1", - "it-parallel-batch": "^1.0.3", - "merge-options": "^3.0.3", - "multihashing-async": "^2.0.0", - "rabin-wasm": "^0.1.1", - "uint8arrays": "^1.1.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=4.0.0" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/ipfs-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz", - "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^2.0.0", - "fs-extra": "^9.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "0.0.10", - "it-to-stream": "^0.1.2", - "merge-options": "^2.0.0", - "nanoid": "^3.1.3", - "native-abort-controller": "0.0.3", - "native-fetch": "^2.0.0", - "node-fetch": "^2.6.0", - "stream-to-it": "^0.2.0" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/ipfs-utils/node_modules/merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/it-glob": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", - "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", - "dependencies": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/native-abort-controller": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", - "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/native-fetch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", - "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipfs-utils": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-6.0.8.tgz", - "integrity": "sha512-mDDQaDisI/uWk+X08wyw+jBcq76IXwMjgyaoyEgJDb/Izb+QbBCSJjo9q+EvbMxh6/l6q0NiAfbbsxEyQYPW9w==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "~0.0.11", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-abort-controller": "^1.0.3", - "native-fetch": "^3.0.0", - "node-fetch": "^2.6.1", - "stream-to-it": "^0.2.2" - } - }, - "node_modules/ipfs-utils/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ipfs-utils/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/ipfs-utils/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/ipfs-utils/node_modules/it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/ipfs/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipld": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ipld/-/ipld-0.28.0.tgz", - "integrity": "sha512-lERRFJb17Phi3x06sSirFgCkmSw8lNqOwn2CiBexu0Amo6ICTXULuSZcDeM1AN4+fSzebQgEc8bBIV4zW7dv0A==", - "deprecated": "Please use the multiformats module instead", - "dependencies": { - "cids": "^1.0.0", - "ipld-block": "^0.11.0", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "ipld-raw": "^6.0.0", - "merge-options": "^2.0.0", - "multicodec": "^2.0.0", - "typical": "^6.0.0" - } - }, - "node_modules/ipld-block": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.11.1.tgz", - "integrity": "sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw==", - "dependencies": { - "cids": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipld-dag-cbor": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz", - "integrity": "sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw==", - "deprecated": "This module has been superseded by @ipld/dag-cbor and multiformats", - "dependencies": { - "borc": "^2.1.2", - "cids": "^1.0.0", - "is-circular": "^1.0.2", - "multicodec": "^3.0.1", - "multihashing-async": "^2.0.0", - "uint8arrays": "^2.1.3" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipld-dag-pb": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz", - "integrity": "sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg==", - "deprecated": "This module has been superseded by @ipld/dag-pb and multiformats", - "dependencies": { - "cids": "^1.0.0", - "class-is": "^1.1.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.0", - "protons": "^2.0.0", - "reset": "^0.1.0", - "run": "^1.4.0", - "stable": "^0.1.8", - "uint8arrays": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipld-dag-pb/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipld-dag-pb/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipld-dag-pb/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipld-raw": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-6.0.0.tgz", - "integrity": "sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "cids": "^1.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.0" - } - }, - "node_modules/ipld-raw/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipld-raw/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipld-raw/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipld/node_modules/merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ipld/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipld/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipld/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipns": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/ipns/-/ipns-0.8.2.tgz", - "integrity": "sha512-TzWz5tUhMT/XJT/FnvU/TzVTqZln5aF9uBKP63ymdPY1tXU/ToF40SP7nr42VEfnf236gOEE8aR6CHOf4TG95g==", - "dependencies": { - "debug": "^4.2.0", - "err-code": "^2.0.3", - "interface-datastore": "^3.0.1", - "libp2p-crypto": "^0.19.0", - "multibase": "^3.0.1", - "multihashes": "^3.0.1", - "peer-id": "^0.14.2", - "protons": "^2.0.0", - "timestamp-nano": "^1.0.0", - "uint8arrays": "^2.0.5" - } - }, - "node_modules/ipns/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipns/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipns/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "dependencies": { - "ci-info": "^3.1.1" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-circular": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", - "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==" - }, - "node_modules/is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-domain-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz", - "integrity": "sha1-9uszsUpJdUHcpYM1E31EZuDCDaE=" - }, - "node_modules/is-electron": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", - "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "peer": true, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dependencies": { - "ip-regex": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ipfs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-2.0.0.tgz", - "integrity": "sha512-X4Cg/JO+h/ygBCrIQSMgicHRLo5QpB+i5tHLhFgGBksKi3zvX6ByFCshDxNBvcq4NFxF3coI2AaLqwzugNzKcw==", - "dependencies": { - "cids": "^1.0.0", - "iso-url": "~0.4.7", - "mafmt": "^8.0.0", - "multiaddr": "^8.0.0", - "multibase": "^3.0.0", - "multihashes": "^3.0.1", - "uint8arrays": "^1.1.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/is-ipfs/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/is-ipfs/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/is-loopback-addr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", - "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "peer": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/iso-constants": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", - "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==", - "hasInstallScript": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/iso-random-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz", - "integrity": "sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg==", - "dependencies": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", - "engines": { - "node": ">=10" - } - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/it-all": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", - "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==" - }, - "node_modules/it-batch": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.8.tgz", - "integrity": "sha512-RfEa1rxOPnicXvaXJ1qNThxPrq8/Lc+KwSVWHFEEOp2CrjpjhR5WfmBJozhkbzZ/r/Gl0HjzVVrt0NpG8qczDQ==" - }, - "node_modules/it-buffer": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", - "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3" - } - }, - "node_modules/it-buffer/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/it-buffer/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-concat": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-1.0.3.tgz", - "integrity": "sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA==", - "dependencies": { - "bl": "^4.0.0" - } - }, - "node_modules/it-drain": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.4.tgz", - "integrity": "sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==" - }, - "node_modules/it-filter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.2.tgz", - "integrity": "sha512-rxFUyPCrhk7WrNxD8msU10iEPhQmROoqwuyWmQUYY1PtopwUGBYyra9EYG2nRZADYeuT83cohKWmKCWPzpeyiw==" - }, - "node_modules/it-first": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.6.tgz", - "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" - }, - "node_modules/it-glob": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.11.tgz", - "integrity": "sha512-p02iVYsvOPU7cW4sV9BC62Kz6Mz2aUTJz/cKWDeFqc05kzB3WgSq8OobZabVA/K4boSm6q+s0xOZ8xiArLSoXQ==", - "dependencies": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "node_modules/it-goodbye": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-goodbye/-/it-goodbye-2.0.2.tgz", - "integrity": "sha512-k56lqArpxkIU0yyhnPhvnyOBpzRQn+4VEyd+dUBWhN5kvCgPBeC0XMuHiA71iU98sDpCrJrT/X+81ajT0AOQtQ==", - "dependencies": { - "buffer": "^5.6.0" - } - }, - "node_modules/it-handshake": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-1.0.2.tgz", - "integrity": "sha512-uutOim5xF1eyDQD3u8qd3TxbWKwxqGMlbvacZsRsPdjO1BD9lnPTVci0jSMGsvMOu+5Y3W/QQ4hPQb87qPmPVQ==", - "dependencies": { - "it-pushable": "^1.4.0", - "it-reader": "^2.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/it-handshake/node_modules/it-reader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", - "dependencies": { - "bl": "^4.0.0" - } - }, - "node_modules/it-last": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.5.tgz", - "integrity": "sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q==" - }, - "node_modules/it-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.3.tgz", - "integrity": "sha512-iZduLNprLW2OJCa1LtFvogh4DVhInt2jbqgvCgWQIX6v1z3IJpKvfkDutslKIgztEuhqm3QRLn16dhspVsaayw==" - }, - "node_modules/it-length-prefixed": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.1.0.tgz", - "integrity": "sha512-E5GwT6qfZEwh3/XThyYwgjKJ4/hxvTC9kdbj3gxXDeUDKtC7+K2T647sPeX7xDEWqunsnoQyvOrjoHPegaT3uw==", - "dependencies": { - "@types/bl": "^2.1.0", - "bl": "^4.0.2", - "buffer": "^5.5.0", - "varint": "^5.0.0" - } - }, - "node_modules/it-length-prefixed/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/it-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", - "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" - }, - "node_modules/it-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.0.tgz", - "integrity": "sha512-bs40LMjG/9JMOcJ7pgyGLoOeWBpw28ZoMmZIk/1NCa5SUxd4elXCuadAr2qSjPiHz2GxrqoWGFAP7SePGddatw==", - "dependencies": { - "it-pushable": "^1.4.0" - } - }, - "node_modules/it-multipart": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-multipart/-/it-multipart-1.0.9.tgz", - "integrity": "sha512-EGavbE/ohpP3DESwmjRSz6U3iBtgj2yVgCvqF3EkFO93WxndDg0vDnA2zeSbgyglIINXE93Kvk5Vl8ub6es5Jw==", - "dependencies": { - "buffer": "^6.0.3", - "buffer-indexof": "^1.1.1", - "parse-headers": "^2.0.2" - } - }, - "node_modules/it-multipart/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-pair": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", - "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/it-parallel-batch": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.9.tgz", - "integrity": "sha512-lfCxXsHoEtgyWj5HLrEQXlZF0p3c0hfYeVJAbxQIHIzHLq4lkYplUIe3UGxYl4n1Sjpcs6YL/87352399aVeIA==", - "dependencies": { - "it-batch": "^1.0.8" - } - }, - "node_modules/it-pb-rpc": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.11.tgz", - "integrity": "sha512-1Yvae7LNHNM/WzxWT7OyHqwpA7DZoGos22JioMZ5H6i9iExQf71NHE0phHKEfkJdWLo7SRqPLLbqs2zaeKCwPA==", - "dependencies": { - "is-buffer": "^2.0.5", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2" - } - }, - "node_modules/it-pb-rpc/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/it-pb-rpc/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-pb-rpc/node_modules/it-handshake": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", - "dependencies": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/it-pb-rpc/node_modules/it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/it-peekable": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.2.tgz", - "integrity": "sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg==" - }, - "node_modules/it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "node_modules/it-protocol-buffers": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/it-protocol-buffers/-/it-protocol-buffers-0.2.1.tgz", - "integrity": "sha512-UbezSc9BZTw0DU7mFS6iG9PXeycJfTDJlFAlniI3x1CRrKeDP+IW6ERPAFskHI3O+wij18Mk7eHgDtFz4Zk65A==", - "dependencies": { - "it-buffer": "^0.1.1", - "it-length-prefixed": "^3.0.0" - } - }, - "node_modules/it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "dependencies": { - "fast-fifo": "^1.0.0" - } - }, - "node_modules/it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "dependencies": { - "bl": "^5.0.0" - } - }, - "node_modules/it-reader/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/it-reader/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-take": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.0.tgz", - "integrity": "sha512-zfr2iAtekTGhHVWzCqqqgDnHhmzdzfCW92L0GvbaSFlvc3n2Ep/sponzmlNl2Kg39N5Py+02v+Aypc+i2c+9og==" - }, - "node_modules/it-tar": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-1.2.2.tgz", - "integrity": "sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA==", - "dependencies": { - "bl": "^4.0.0", - "buffer": "^5.4.3", - "iso-constants": "^0.1.2", - "it-concat": "^1.0.0", - "it-reader": "^2.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/it-tar/node_modules/it-reader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", - "dependencies": { - "bl": "^4.0.0" - } - }, - "node_modules/it-to-stream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", - "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", - "dependencies": { - "buffer": "^5.6.0", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/it-ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz", - "integrity": "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==", - "dependencies": { - "buffer": "^6.0.3", - "event-iterator": "^2.0.0", - "iso-url": "^1.1.2", - "ws": "^7.3.1" - } - }, - "node_modules/it-ws/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-ws/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/iterable-ndjson": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", - "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", - "dependencies": { - "string_decoder": "^1.2.0" - } - }, - "node_modules/iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "node_modules/jest": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.1.1.tgz", - "integrity": "sha512-LFTEZOhoZNR/2DQM3OCaK5xC6c55c1OWhYh0njRsoHX0qd6x4nkcgenkSH0JKjsAGMTmmJAoL7/oqYHMfwhruA==", - "dev": true, - "dependencies": { - "@jest/core": "^27.1.1", - "import-local": "^3.0.2", - "jest-cli": "^27.1.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.1.1.tgz", - "integrity": "sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.1.1.tgz", - "integrity": "sha512-Xed1ApiMFu/yzqGMBToHr8sp2gkX/ARZf4nXoGrHJrXrTUdVIWiVYheayfcOaPdQvQEE/uyBLgW7I7YBLIrAXQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.1.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.1.1.tgz", - "integrity": "sha512-LCjfEYp9D3bcOeVUUpEol9Y1ijZYMWVqflSmtw/wX+6Fb7zP4IlO14/6s9v1pxsoM4Pn46+M2zABgKuQjyDpTw==", - "dev": true, - "dependencies": { - "@jest/core": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "prompts": "^2.0.1", - "yargs": "^16.0.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/jest-config": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.1.tgz", - "integrity": "sha512-2iSd5zoJV4MsWPcLCGwUVUY/j6pZXm4Qd3rnbCtrd9EHNTg458iHw8PZztPQXfxKBKJxLfBk7tbZqYF8MGtxJA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.1.1", - "@jest/types": "^27.1.1", - "babel-jest": "^27.1.1", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.1.1", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.1.1.tgz", - "integrity": "sha512-m/6n5158rqEriTazqHtBpOa2B/gGgXJijX6nsEgZfbJ/3pxQcdpVXBe+FP39b1dxWHyLVVmuVXddmAwtqFO4Lg==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.1.1.tgz", - "integrity": "sha512-r6hOsTLavUBb1xN0uDa89jdDeBmJ+K49fWpbyxeGRA2pLY46PlC4z551/cWNQzrj+IUa5/gSRsCIV/01HdNPug==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.1.1.tgz", - "integrity": "sha512-6vOnoZ6IaExuw7FvnuJhA1qFYv1DDSnN0sQowzolNwxQp7bG1YhLxj2YU1sVXAYA3IR3MbH2mbnJUsLUWfyfzw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.1.1.tgz", - "integrity": "sha512-OEGeZh0PwzngNIYWYgWrvTcLygopV8OJbC9HNb0j70VBKgEIsdZkYhwcFnaURX83OHACMqf1pa9Tv5Pw5jemrg==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.1.1.tgz", - "integrity": "sha512-NGLYVAdh5C8Ezg5QBFzrNeYsfxptDBPlhvZNaicLiZX77F/rS27a9M6u9ripWAaaD54xnWdZNZpEkdjD5Eo5aQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.1.1.tgz", - "integrity": "sha512-0LAzUmcmvQwjIdJt0cXUVX4G5qjVXE8ELt6nbMNDzv2yAs2hYCCUtQq+Eje70GwAysWCGcS64QeYj5VPHYVxPg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.1.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.1.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.1.1.tgz", - "integrity": "sha512-gwSgzmqShoeEsEVpgObymQPrM9P6557jt1EsFW5aCeJ46Cme0EdjYU7xr6llQZ5GpWDl56eOstUaPXiZOfiTKw==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.1.1.tgz", - "integrity": "sha512-Q1a10w9Y4sh0wegkdP6reQOa/Dtz7nAvDqBgrat1ItZAUvk4jzXAqyhXPu/ZuEtDaXaNKpdRPRQA8bvkOh2Eaw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.1.1", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.1.1.tgz", - "integrity": "sha512-b697BOJV93+AVGvzLRtVZ0cTVRbd59OaWnbB2D75GRaIMc4I+Z9W0wHxbfjW01JWO+TqqW4yevT0aN7Fd0XWng==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.1.1.tgz", - "integrity": "sha512-M41YFmWhvDVstwe7XuV21zynOiBLJB5Sk0GrIsYYgTkjfEWNLVXDjAyq1W7PHseaYNOxIc0nOGq/r5iwcZNC1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "resolve": "^1.20.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.1.1.tgz", - "integrity": "sha512-sYZR+uBjFDCo4VhYeazZf/T+ryYItvdLKu9vHatqkUqHGjDMrdEPOykiqC2iEpaCFTS+3iL/21CYiJuKdRbniw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.1.1.tgz", - "integrity": "sha512-lP3MBNQhg75/sQtVkC8dsAQZumvy3lHK/YIwYPfEyqGIX1qEcnYIRxP89q0ZgC5ngvi1vN2P5UFHszQxguWdng==", - "dev": true, - "dependencies": { - "@jest/console": "^27.1.1", - "@jest/environment": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-haste-map": "^27.1.1", - "jest-leak-detector": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.1.1.tgz", - "integrity": "sha512-FEwy+tSzmsvuKaQpyYsUyk31KG5vMmA2r2BSTHgv0yNfcooQdm2Ke91LM9Ud8D3xz8CLDHJWAI24haMFTwrsPg==", - "dev": true, - "dependencies": { - "@jest/console": "^27.1.1", - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/globals": "^27.1.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-mock": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.1.1.tgz", - "integrity": "sha512-Wi3QGiuRFo3lU+EbQmZnBOks0CJyAMPHvYoG7iJk00Do10jeOyuOEO0Jfoaoun8+8TDv+Nzl7Aswir/IK9+1jg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.1.1", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.1.1", - "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-util": "^27.1.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.1.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.1.1.tgz", - "integrity": "sha512-zf9nEbrASWn2mC/L91nNb0K+GkhFvi4MP6XJG2HqnHzHvLYcs7ou/In68xYU1i1dSkJlrWcYfWXQE8nVR+nbOA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.1.1.tgz", - "integrity": "sha512-N5Er5FKav/8m2dJwn7BGnZwnoD1BSc8jx5T+diG2OvyeugvZDhPeAt5DrNaGkkaKCrSUvuE7A5E4uHyT7Vj0Mw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.1.1.tgz", - "integrity": "sha512-XQzyHbxziDe+lZM6Dzs40fEt4q9akOGwitJnxQasJ9WG0bv3JGiRlsBgjw13znGapeMtFaEsyhL0Cl04IbaoWQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.1.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.1.tgz", - "integrity": "sha512-XJKCL7tu+362IUYTWvw8+3S75U7qMiYiRU6u5yqscB48bTvzwN6i8L/7wVTXiFLwkRsxARNM7TISnTvcgv9hxA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/joi": { - "version": "17.4.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", - "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.0", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/joycon": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", - "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dependencies": { - "delimit-stream": "0.1.0" - } - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsondiffpatch": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", - "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", - "dependencies": { - "chalk": "^2.3.0", - "diff-match-patch": "^1.0.0" - }, - "bin": { - "jsondiffpatch": "bin/jsondiffpatch" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/jsondiffpatch/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsondiffpatch/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsondiffpatch/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/jsondiffpatch/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/jsondiffpatch/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/jsondiffpatch/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "engines": { - "node": "*" - } - }, - "node_modules/jsonschema": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", - "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/just-debounce-it": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.5.0.tgz", - "integrity": "sha512-itSWJS5d2DTSCizVJ2Z0Djx/dGmUGfZe7WNfUfVP23+htGcIcPHbEjL4eB8ljojTs/+oYwLexImRRCP0A2WXjA==" - }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==" - }, - "node_modules/just-safe-get": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-2.1.2.tgz", - "integrity": "sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ==" - }, - "node_modules/just-safe-set": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz", - "integrity": "sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w==" - }, - "node_modules/k-bucket": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/keypair": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz", - "integrity": "sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ==" - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/level": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", - "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", - "dependencies": { - "level-js": "^5.0.0", - "level-packager": "^5.1.0", - "leveldown": "^5.4.0" - }, - "engines": { - "node": ">=8.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" - } - }, - "node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-js": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", - "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", - "dependencies": { - "abstract-leveldown": "~6.2.3", - "buffer": "^5.5.0", - "inherits": "^2.0.3", - "ltgt": "^2.1.2" - } - }, - "node_modules/level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dependencies": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/leveldown": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", - "hasInstallScript": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "~4.1.0" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/libp2p": { - "version": "0.30.13", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.30.13.tgz", - "integrity": "sha512-iR5nZBZ+AtClzviNIzTsz58v4CdDEM+vzOiILcVm0d++NtkFt/DP0wcnia0qXLXUT98R01pkEnfdNyoBojPPPQ==", - "dependencies": { - "@motrix/nat-api": "^0.3.1", - "abort-controller": "^3.0.0", - "aggregate-error": "^3.1.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.1", - "cids": "^1.1.5", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^2.0.0", - "es6-promisify": "^6.1.1", - "events": "^3.2.0", - "hashlru": "^2.3.0", - "interface-datastore": "^3.0.3", - "ipfs-utils": "^6.0.0", - "it-all": "^1.0.4", - "it-buffer": "^0.1.2", - "it-drain": "^1.0.3", - "it-filter": "^1.0.1", - "it-first": "^1.0.4", - "it-handshake": "^1.0.2", - "it-length-prefixed": "^3.1.0", - "it-map": "^1.0.4", - "it-merge": "1.0.0", - "it-pipe": "^1.1.0", - "it-protocol-buffers": "^0.2.0", - "it-take": "1.0.0", - "libp2p-crypto": "^0.19.0", - "libp2p-interfaces": "^0.8.1", - "libp2p-utils": "^0.2.2", - "mafmt": "^8.0.0", - "merge-options": "^3.0.4", - "moving-average": "^1.0.0", - "multiaddr": "^8.1.0", - "multicodec": "^2.1.0", - "multihashing-async": "^2.0.1", - "multistream-select": "^1.0.0", - "mutable-proxy": "^1.0.0", - "node-forge": "^0.10.0", - "p-any": "^3.0.0", - "p-fifo": "^1.0.0", - "p-retry": "^4.2.0", - "p-settle": "^4.0.1", - "peer-id": "^0.14.2", - "private-ip": "^2.0.0", - "protons": "^2.0.0", - "retimer": "^2.0.0", - "sanitize-filename": "^1.6.3", - "set-delayed-interval": "^1.0.0", - "streaming-iterables": "^5.0.2", - "timeout-abort-controller": "^1.1.1", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0", - "xsalsa20": "^1.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-bootstrap": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.12.3.tgz", - "integrity": "sha512-4S7+YyZYy8wRmNxXGwsBsKrxGMk59nTqwDdBeEf9m3aVWZ0zdz5uu3WXq7sl8ULb703Zx5IdjGDrdbxhYtdqlA==", - "dependencies": { - "debug": "^4.3.1", - "mafmt": "^9.0.0", - "multiaddr": "^9.0.1", - "peer-id": "^0.14.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/libp2p-bootstrap/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-bootstrap/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-bootstrap/node_modules/mafmt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", - "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", - "dependencies": { - "multiaddr": "^9.0.1" - } - }, - "node_modules/libp2p-bootstrap/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-bootstrap/node_modules/multiaddr": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", - "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", - "dependencies": { - "cids": "^1.0.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-crypto": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz", - "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==", - "dependencies": { - "err-code": "^3.0.1", - "is-typedarray": "^1.0.0", - "iso-random-stream": "^2.0.0", - "keypair": "^1.0.1", - "multiformats": "^9.4.5", - "node-forge": "^0.10.0", - "pem-jwk": "^2.0.0", - "protobufjs": "^6.11.2", - "secp256k1": "^4.0.0", - "uint8arrays": "^3.0.0", - "ursa-optional": "^0.10.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/libp2p-crypto/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-crypto/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/libp2p-delegated-content-routing": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.9.0.tgz", - "integrity": "sha512-7elrRRg+eLKCGvztCMj3+jhfg6nkH0qdNSM07jQYDnTcT2OtixOA9pdaFhGqxCag3pLSVW96S5inYzJj/Di6dQ==", - "dependencies": { - "debug": "^4.1.1", - "it-drain": "^1.0.3", - "multiaddr": "^8.0.0", - "p-defer": "^3.0.0", - "p-queue": "^6.2.1" - }, - "peerDependencies": { - "ipfs-http-client": "*" - } - }, - "node_modules/libp2p-delegated-content-routing/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-delegated-content-routing/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-delegated-peer-routing": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.8.2.tgz", - "integrity": "sha512-q49zSTE7wpagt3FDY6S2e2Rr59kPoTMJAwlPeenZ1ajJLbKXRP26RfraK8RaUUw7mHw0BPo47VQcH7ieDkSO+A==", - "dependencies": { - "cids": "^1.0.0", - "debug": "^4.1.1", - "p-defer": "^3.0.0", - "p-queue": "^6.3.0", - "peer-id": "^0.14.0" - }, - "peerDependencies": { - "ipfs-http-client": "*" - } - }, - "node_modules/libp2p-delegated-peer-routing/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-delegated-peer-routing/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-floodsub": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.24.1.tgz", - "integrity": "sha512-szI/5GtuiwIAWyBxAfobLw5Qe3EBkxWH6snExG3bXz98cLmW25q8WdTWHHJ0oqzzDZ3YOMsTlRrGpRE4AzR26w==", - "dependencies": { - "debug": "^4.2.0", - "libp2p-interfaces": "^0.8.1", - "time-cache": "^0.3.0", - "uint8arrays": "^1.1.0" - }, - "peerDependencies": { - "libp2p": "^0.30.0" - } - }, - "node_modules/libp2p-floodsub/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-floodsub/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-floodsub/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-floodsub/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/libp2p-gossipsub": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.8.0.tgz", - "integrity": "sha512-nR5XGN6E5n2ukPR9aa/rtegwluxiK+vT9j5Oulp+P1h6T9vEqDvFAEe9cqA3FiT7apI5gk44SE0aZFTMpxz6EA==", - "dependencies": { - "@types/debug": "^4.1.5", - "debug": "^4.1.1", - "denque": "^1.4.1", - "err-code": "^2.0.0", - "it-pipe": "^1.0.1", - "libp2p-interfaces": "^0.8.0", - "peer-id": "^0.14.0", - "protons": "^2.0.0", - "time-cache": "^0.3.0", - "uint8arrays": "^1.1.0" - }, - "peerDependencies": { - "libp2p": "^0.30.0" - } - }, - "node_modules/libp2p-gossipsub/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-gossipsub/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-gossipsub/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-gossipsub/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/libp2p-interfaces": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-0.8.4.tgz", - "integrity": "sha512-LaPkXVhqgAcFwqsyqGSZNAjgXSa2V+skOfIKE2UtQHaduwLct2KpFDOmvhRHTWHfRHwI9bSCskDB7xWGNTwZsQ==", - "dependencies": { - "@types/bl": "^2.1.0", - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "chai": "^4.2.0", - "chai-checkmark": "^1.0.1", - "debug": "^4.3.1", - "delay": "^4.4.0", - "detect-node": "^2.0.4", - "dirty-chai": "^2.0.1", - "err-code": "^2.0.3", - "it-goodbye": "^2.0.2", - "it-length-prefixed": "^3.1.0", - "it-pair": "^1.0.0", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.0", - "libp2p-crypto": "^0.19.0", - "libp2p-tcp": "^0.15.0", - "multiaddr": "^8.1.2", - "multibase": "^3.1.1", - "multihashes": "^3.1.1", - "p-defer": "^3.0.0", - "p-limit": "^3.1.0", - "p-wait-for": "^3.2.0", - "peer-id": "^0.14.2", - "protons": "^2.0.0", - "sinon": "^9.2.4", - "streaming-iterables": "^5.0.4", - "uint8arrays": "^2.0.5" - } - }, - "node_modules/libp2p-interfaces/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-interfaces/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-interfaces/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-kad-dht": { - "version": "0.20.6", - "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.20.6.tgz", - "integrity": "sha512-hRClzJP+NK3zBU0/pYkoDUhZcviqmPu4czFaftcl3cCGasjxSaWNEZNKsf65QwoINZD9jFrYkQuXW9/gWQwuOA==", - "dependencies": { - "abort-controller": "^3.0.0", - "async": "^2.6.2", - "base32.js": "~0.1.0", - "cids": "^1.1.5", - "debug": "^4.3.1", - "err-code": "^2.0.3", - "hashlru": "^2.3.0", - "heap": "~0.2.6", - "interface-datastore": "^3.0.3", - "it-length-prefixed": "^3.1.0", - "it-pipe": "^1.1.0", - "k-bucket": "^5.0.0", - "libp2p-crypto": "^0.19.0", - "libp2p-interfaces": "^0.8.2", - "libp2p-record": "^0.9.0", - "multiaddr": "^8.1.2", - "multihashing-async": "^2.0.1", - "p-filter": "^2.1.0", - "p-map": "^4.0.0", - "p-queue": "^6.6.2", - "p-timeout": "^4.1.0", - "p-times": "^3.0.0", - "peer-id": "^0.14.2", - "promise-to-callback": "^1.0.0", - "protons": "^2.0.0", - "streaming-iterables": "^5.0.4", - "uint8arrays": "^2.0.5", - "varint": "^5.0.0", - "xor-distance": "^2.0.0" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-kad-dht/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/libp2p-kad-dht/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-kad-dht/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-kad-dht/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/libp2p-mdns": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.15.0.tgz", - "integrity": "sha512-wuILE+mwC6ww/0TMkR3k2h53D5Ma9TXpz0siacbsACcGukkS+mIpsvruaf9U1Uxe0F1aC8+Y+Vi5lP8C3YR9Lg==", - "dependencies": { - "debug": "^4.1.1", - "multiaddr": "^8.0.0", - "multicast-dns": "^7.2.0", - "peer-id": "^0.14.0" - } - }, - "node_modules/libp2p-mdns/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-mdns/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-mplex": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.4.tgz", - "integrity": "sha512-a8Oy68EXaSBBXGOGYMuwBcpnynkhqAFJ3LiyV24u9fE4wTxvuWTr0prSyKc+KC8QsLuX3A+CAdSgxqm09NbumQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "bl": "^5.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.1", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-mplex/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/libp2p-mplex/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/libp2p-mplex/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-mplex/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-mplex/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-noise": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/libp2p-noise/-/libp2p-noise-2.0.5.tgz", - "integrity": "sha512-hmR1Y4bJ6hxEO+1aIF1HeJrUNh9NHUbH8gUTtMqpIe7zfdggGau9XKMY0InbafBPFF/WxeIOJDKZiQV4qy2fFg==", - "deprecated": "This repository is now being maintained by ChainSafe, and can be found at https://github.com/ChainSafe/js-libp2p-noise under @chainsafe/libp2p-noise", - "dependencies": { - "bcrypto": "^5.4.0", - "debug": "^4.3.1", - "it-buffer": "^0.1.1", - "it-length-prefixed": "^3.0.0", - "it-pair": "^1.0.0", - "it-pb-rpc": "^0.1.9", - "it-pipe": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "peer-id": "^0.14.3", - "protobufjs": "^6.10.1", - "uint8arrays": "^2.0.5" - } - }, - "node_modules/libp2p-noise/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-noise/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-record": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.9.0.tgz", - "integrity": "sha512-8FlhzP+UlXTYOR+9D8nYoGOIJ6S8XogKD625bqzHJbXJQyJNCNaW3tZPHqrQrvUW7o6GsAeyQAfCp5WLEH0FZg==", - "dependencies": { - "err-code": "^2.0.0", - "multihashes": "^3.0.1", - "multihashing-async": "^2.0.1", - "protons": "^2.0.0", - "uint8arrays": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/libp2p-record/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-record/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/libp2p-tcp": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.15.4.tgz", - "integrity": "sha512-MqXIlqV7t9z0A1Ww9Omd2XIlndcYOAh5R6kWRZ8Vo/CITazKUC5ZGNoj23hq/aEPaX8p5XmJs2BKESg/OuhGhQ==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "libp2p-utils": "^0.3.0", - "mafmt": "^9.0.0", - "multiaddr": "^9.0.1", - "stream-to-it": "^0.2.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/libp2p-tcp/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-tcp/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-tcp/node_modules/ip-address": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-7.1.0.tgz", - "integrity": "sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/libp2p-tcp/node_modules/libp2p-utils": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.3.1.tgz", - "integrity": "sha512-LOVfww7a6Rhtoupl3z1ABuTEli5whY3VLTB9QntsOIwbOcX9GfmjuhqYbEDht9lVPAQl+rCUWbfDMvK121ryUg==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^7.1.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^9.0.1", - "private-ip": "^2.1.1" - } - }, - "node_modules/libp2p-tcp/node_modules/mafmt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", - "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", - "dependencies": { - "multiaddr": "^9.0.1" - } - }, - "node_modules/libp2p-tcp/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-tcp/node_modules/multiaddr": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", - "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", - "dependencies": { - "cids": "^1.0.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-utils": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.2.3.tgz", - "integrity": "sha512-9BoMCgvJF7LJ+JVMaHtqfCqhZN4i/sx0DrY6lf9U0Rq9uUgQ9qTai2O9LXcfr1LOS3OMMeRLsKk25MMgsf7W3w==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.2.0", - "err-code": "^2.0.3", - "ip-address": "^6.1.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^8.0.0", - "private-ip": "^2.1.1" - } - }, - "node_modules/libp2p-utils/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-utils/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-webrtc-peer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-peer/-/libp2p-webrtc-peer-10.0.1.tgz", - "integrity": "sha512-Qi/YVrSI5sjU+iBvr1iAjGrakIEvzCS8S76v4q43jjlDb6Wj+S4OnFLH/uRlt7eLXcx4vlaI6huMzYrUAoopMg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "debug": "^4.0.1", - "err-code": "^2.0.3", - "get-browser-rtc": "^1.0.0", - "queue-microtask": "^1.1.0", - "randombytes": "^2.0.3", - "readable-stream": "^3.4.0" - } - }, - "node_modules/libp2p-webrtc-peer/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-webrtc-peer/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-webrtc-star": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-star/-/libp2p-webrtc-star-0.21.2.tgz", - "integrity": "sha512-Ax5s/Ih8f5cVAt1RQacokjbzSnvz5+SmW+1bPs22myZ48WcTt8CydHOKBGKpflFZBMHNttPoOY4xgLp95xxuIg==", - "dependencies": { - "@hapi/hapi": "^20.0.0", - "@hapi/inert": "^6.0.3", - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "ipfs-utils": "^6.0.0", - "it-pipe": "^1.1.0", - "libp2p-utils": "^0.2.1", - "libp2p-webrtc-peer": "^10.0.1", - "mafmt": "^8.0.0", - "menoetius": "0.0.2", - "minimist": "^1.2.5", - "multiaddr": "^8.0.0", - "p-defer": "^3.0.0", - "peer-id": "^0.14.2", - "prom-client": "^13.0.0", - "socket.io": "^2.3.0", - "socket.io-client-next": "npm:socket.io-client@^3.0.4", - "socket.io-next": "npm:socket.io@^3.0.4", - "stream-to-it": "^0.2.2", - "streaming-iterables": "^5.0.3" - }, - "bin": { - "star-sig": "src/sig-server/bin.js", - "star-signal": "src/sig-server/bin.js", - "webrtc-star": "src/sig-server/bin.js" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-webrtc-star/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-webrtc-star/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-webrtc-star/node_modules/prom-client": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-13.2.0.tgz", - "integrity": "sha512-wGr5mlNNdRNzEhRYXgboUU2LxHWIojxscJKmtG3R8f4/KiWqyYgXTLHs0+Ted7tG3zFT7pgHJbtomzZ1L0ARaQ==", - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/libp2p-websockets": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.15.9.tgz", - "integrity": "sha512-tuQ4KezPEiJ/JXGKJUttPgBWTv36NnaqY05lWja8wQwQU3R1NgpH4GRJnTBshGXoBFdvGGJbTxvsJlh15NzMkg==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "ipfs-utils": "^8.1.2", - "it-ws": "^4.0.0", - "libp2p-utils": "^0.3.0", - "mafmt": "^9.0.0", - "multiaddr": "^9.0.1", - "multiaddr-to-uri": "^7.0.0", - "p-defer": "^3.0.0", - "p-timeout": "^4.1.0" - } - }, - "node_modules/libp2p-websockets/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/libp2p-websockets/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-websockets/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-websockets/node_modules/ip-address": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-7.1.0.tgz", - "integrity": "sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/libp2p-websockets/node_modules/ipfs-utils": { - "version": "8.1.6", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz", - "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "~0.0.11", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-abort-controller": "^1.0.3", - "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - } - }, - "node_modules/libp2p-websockets/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/libp2p-websockets/node_modules/it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/libp2p-websockets/node_modules/libp2p-utils": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.3.1.tgz", - "integrity": "sha512-LOVfww7a6Rhtoupl3z1ABuTEli5whY3VLTB9QntsOIwbOcX9GfmjuhqYbEDht9lVPAQl+rCUWbfDMvK121ryUg==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^7.1.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^9.0.1", - "private-ip": "^2.1.1" - } - }, - "node_modules/libp2p-websockets/node_modules/mafmt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", - "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", - "dependencies": { - "multiaddr": "^9.0.1" - } - }, - "node_modules/libp2p-websockets/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-websockets/node_modules/multiaddr": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", - "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", - "dependencies": { - "cids": "^1.0.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-websockets/node_modules/multiaddr-to-uri": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-7.0.0.tgz", - "integrity": "sha512-VbscDpLcbV0m25tJqfnZSfbjVUuNlPa4BbD5l/7me1t0lc3SWI0XAoO5E/PNJF0e1qUlbdq7yjVFEQjUT+9r0g==", - "dependencies": { - "multiaddr": "^9.0.1" - } - }, - "node_modules/libp2p-websockets/node_modules/node-fetch": { - "name": "@achingbrain/node-fetch", - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==", - "license": "MIT", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/libp2p/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p/node_modules/multicodec/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/liquidcore": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/liquidcore/-/liquidcore-0.7.10.tgz", - "integrity": "sha512-8Ks5reBkEzUPCX4QwNKunRFMXFGtMT8N0vlcCZOhFOcDahxlyieg0ZOpbHUPSviCSvaBByAEvj1xb6R9dNbQkA==", - "dependencies": { - "filecompare": "^1.0.4", - "metro": "0.57.0", - "metro-core": "0.57.0", - "tmp": "^0.1.0" - }, - "bin": { - "liquidcore": "lib/cli.js" - } - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, - "node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/loady": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz", - "integrity": "sha512-uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "node_modules/lodash.find": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", - "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "node_modules/lodash.max": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.max/-/lodash.max-4.0.1.tgz", - "integrity": "sha1-hzVWbGGLNan3YFILSHrnllivE2o=" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "optional": true - }, - "node_modules/lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" - }, - "node_modules/lodash.repeat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", - "integrity": "sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ=" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "peer": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lowdb": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", - "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", - "dependencies": { - "graceful-fs": "^4.1.3", - "is-promise": "^2.1.0", - "lodash": "4", - "pify": "^3.0.0", - "steno": "^0.4.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lower-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" - }, - "node_modules/mafmt": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-8.0.4.tgz", - "integrity": "sha512-wwZ5+PU0vQw10kwQRyZin1Z0dqVOp0BnYlX1xvXHS2fmLwrrQCfU1+3tlW5MRcihUwGz1virnVhbRAU1biKfiw==", - "dependencies": { - "multiaddr": "^8.0.0" - } - }, - "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dependencies": { - "tmpl": "1.0.x" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mem/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/menoetius": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/menoetius/-/menoetius-0.0.2.tgz", - "integrity": "sha512-7W0ayHMNgvEdFh+m3m29KA87nvT0JIGCXeSZa26fiSof+bwpg+olEjD8AAvtxZ3uhTcp2d+5r1dcV/KhR8PBVQ==", - "dependencies": { - "prom-client": "^11.5.3" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/menoetius/node_modules/prom-client": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz", - "integrity": "sha512-iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==", - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=6.1" - } - }, - "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "peer": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "peer": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "peer": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "peer": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "peer": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "peer": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "dependencies": { - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/metro": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.57.0.tgz", - "integrity": "sha512-En3phXm60rij0QxNM9+MHQZwJA48QQfNQdT4A0tt5XGZ3MJd8cYlO5LCpRLhFm+15aCblMWGKX58Sm8evtsAag==", - "dependencies": { - "@babel/core": "^7.0.0", - "@babel/generator": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/plugin-external-helpers": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "absolute-path": "^0.0.0", - "async": "^2.4.0", - "babel-preset-fbjs": "^3.3.0", - "buffer-crc32": "^0.2.13", - "chalk": "^2.4.1", - "concat-stream": "^1.6.0", - "connect": "^3.6.5", - "debug": "^2.2.0", - "denodeify": "^1.2.1", - "eventemitter3": "^3.0.0", - "fbjs": "^1.0.0", - "fs-extra": "^1.0.0", - "graceful-fs": "^4.1.3", - "image-size": "^0.6.0", - "invariant": "^2.2.4", - "jest-haste-map": "^24.7.1", - "jest-worker": "^24.6.0", - "json-stable-stringify": "^1.0.1", - "lodash.throttle": "^4.1.1", - "merge-stream": "^1.0.1", - "metro-babel-register": "0.57.0", - "metro-babel-transformer": "0.57.0", - "metro-cache": "0.57.0", - "metro-config": "0.57.0", - "metro-core": "0.57.0", - "metro-inspector-proxy": "0.57.0", - "metro-minify-uglify": "0.57.0", - "metro-react-native-babel-preset": "0.57.0", - "metro-resolver": "0.57.0", - "metro-source-map": "0.57.0", - "metro-symbolicate": "0.57.0", - "mime-types": "2.1.11", - "mkdirp": "^0.5.1", - "node-fetch": "^2.2.0", - "nullthrows": "^1.1.1", - "resolve": "^1.5.0", - "rimraf": "^2.5.4", - "serialize-error": "^2.1.0", - "source-map": "^0.5.6", - "temp": "0.8.3", - "throat": "^4.1.0", - "wordwrap": "^1.0.0", - "write-file-atomic": "^1.2.0", - "ws": "^1.1.5", - "xpipe": "^1.0.5", - "yargs": "^9.0.0" - }, - "bin": { - "metro": "src/cli.js" - } - }, - "node_modules/metro-babel-register": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.57.0.tgz", - "integrity": "sha512-toZwgFY/y/+8GxSLT6kDRI5/hcnm7VtVglMo8WN9p9LEeGjKgWeJrf6YrrqQ8L+Ycy771w00jHZVw2QwlvCQUQ==", - "dependencies": { - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/register": "^7.0.0", - "core-js": "^2.2.2", - "escape-string-regexp": "^1.0.5" - } - }, - "node_modules/metro-babel-transformer": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.57.0.tgz", - "integrity": "sha512-679BstNiPUUt5a4f86iJTa7q8jFntgd9SQBVWN+CLI5L9T7iTxi7JDbR+oHIOi3OT/dBlY9s2dWZCVAuNW9DHA==", - "dependencies": { - "@babel/core": "^7.0.0", - "metro-source-map": "0.57.0" - } - }, - "node_modules/metro-cache": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.57.0.tgz", - "integrity": "sha512-vdZaLyVhY7edArO069Jfg3RvYiratNsPtWh/oV5CtRXh5QYNyqWAEQ2riy0tZnC6ECwt6jAygQB8o3DNx5CI+w==", - "dependencies": { - "jest-serializer": "^24.4.0", - "metro-core": "0.57.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4" - } - }, - "node_modules/metro-cache/node_modules/jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-cache/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/metro-config": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.57.0.tgz", - "integrity": "sha512-QEz4Uu2fJoCguOuol72t4alG/vzHNaKOyYpd/evXokBFq2FsFw6dN5WYRL0mr6QlWPjh1efoeDD9s/DB2xG7nQ==", - "dependencies": { - "cosmiconfig": "^5.0.5", - "jest-validate": "^24.7.0", - "metro": "0.57.0", - "metro-cache": "0.57.0", - "metro-core": "0.57.0", - "pretty-format": "^24.7.0" - } - }, - "node_modules/metro-config/node_modules/@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-config/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/metro-config/node_modules/@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/metro-config/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/metro-config/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/metro-config/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/metro-config/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-config/node_modules/jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "dependencies": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-config/node_modules/pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "dependencies": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-config/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.57.0.tgz", - "integrity": "sha512-PSiCqis2tjlnafA3iVN2eDt2a7MgxgDpR7XfThqkgEhoQ9VL2Ko1n4btEGPT9O8YwjjpkVIG4hYc11mfpdCc/w==", - "dependencies": { - "jest-haste-map": "^24.7.1", - "lodash.throttle": "^4.1.1", - "metro-resolver": "0.57.0", - "wordwrap": "^1.0.0" - } - }, - "node_modules/metro-core/node_modules/@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "dependencies": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "dependencies": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "dependencies": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/metro-core/node_modules/@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "node_modules/metro-core/node_modules/@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/metro-core/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/metro-core/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/metro-core/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/metro-core/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/metro-core/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/metro-core/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/metro-core/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/metro-core/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "dependencies": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 6" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/metro-core/node_modules/jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "dependencies": { - "@jest/types": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "dependencies": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-worker/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/metro-core/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/metro-core/node_modules/stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/metro-core/node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/metro-core/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.57.0.tgz", - "integrity": "sha512-F75MkDAl5eeFBchJacutMEKwx83RSKrteO3YrbBzpKapZcS6FspTYiXobyGUkaamoTWUVN6Eg1WOMacMPqH58A==", - "dependencies": { - "connect": "^3.6.5", - "debug": "^2.2.0", - "rxjs": "^5.4.3", - "ws": "^1.1.5", - "yargs": "^9.0.0" - }, - "bin": { - "metro-inspector-proxy": "src/cli.js" - } - }, - "node_modules/metro-inspector-proxy/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-inspector-proxy/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/cliui/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "node_modules/metro-inspector-proxy/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "node_modules/metro-inspector-proxy/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", - "dependencies": { - "options": ">=0.0.5", - "ultron": "1.0.x" - } - }, - "node_modules/metro-inspector-proxy/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "node_modules/metro-inspector-proxy/node_modules/yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dependencies": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dependencies": { - "camelcase": "^4.1.0" - } - }, - "node_modules/metro-minify-uglify": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.57.0.tgz", - "integrity": "sha512-hDTuYfpY+07b1x3i2c71CilH+9+vx4I5Lk57Q4T94tojzNGnsndQxq/AcRIbpbdiRlcw4r1+Fm4BLCR8J9JjTw==", - "dependencies": { - "uglify-es": "^3.1.9" - } - }, - "node_modules/metro-react-native-babel-preset": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.57.0.tgz", - "integrity": "sha512-pvLh1QOwdxsjgYE2a+4aTKs3LSF3+t4jscxHtkND6wsJnKVVspLt8FkDaORa6zr3Fq12tVpEt5NJMdgtWqBpaA==", - "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-exponentiation-operator": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-assign": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-regenerator": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.0.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "react-refresh": "^0.4.0" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/metro-resolver": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.57.0.tgz", - "integrity": "sha512-/MxN1s1y/5+dvAMoFOGGdXz4ps4b3NlYajpqJtivc21OFcmrHH3HD48P4zM+/pJmzLVYBYDSYIeUuhw1YpIVIA==", - "dependencies": { - "absolute-path": "^0.0.0" - } - }, - "node_modules/metro-source-map": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.57.0.tgz", - "integrity": "sha512-hYd2MmLUOmOJkQCzABLV3mYW7JwzkfvL9SUAHhRDzUS4Z69k+Yh2805HpH8/gN6SGvfw0PuPXXEixtvW66b6yQ==", - "dependencies": { - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.57.0", - "ob1": "0.57.0", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/metro-source-map/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-symbolicate": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.57.0.tgz", - "integrity": "sha512-Gq30gqGAGYIpO7FdeUboQXaMUeiQqq2VNiPaLJg67zCz9FKLuS3Laf4i/mpUCzHv9+lqcEKIOEYP7SQaluUIPQ==", - "dependencies": { - "invariant": "^2.2.4", - "metro-source-map": "0.57.0", - "source-map": "^0.5.6", - "through2": "^2.0.1", - "vlq": "^1.0.0" - }, - "bin": { - "metro-symbolicate": "src/symbolicate.js" - }, - "engines": { - "node": ">=8.3" - } - }, - "node_modules/metro-symbolicate/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "dependencies": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "dependencies": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "dependencies": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/metro/node_modules/@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "node_modules/metro/node_modules/@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/metro/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/metro/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/metro/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/metro/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/metro/node_modules/cliui/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/metro/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/metro/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } - }, - "node_modules/metro/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/metro/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "node_modules/metro/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/metro/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/metro/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/metro/node_modules/jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "dependencies": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 6" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/metro/node_modules/jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "dependencies": { - "@jest/types": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "dependencies": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-util/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-worker/node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/metro/node_modules/jest-worker/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/metro/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/metro/node_modules/merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/metro/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/mime-db": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", - "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/metro/node_modules/mime-types": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", - "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", - "dependencies": { - "mime-db": "~1.23.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/metro/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/metro/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "node_modules/metro/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/metro/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/metro/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/metro/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/metro/node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/metro/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/metro/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" - }, - "node_modules/metro/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "node_modules/metro/node_modules/ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", - "dependencies": { - "options": ">=0.0.5", - "ultron": "1.0.x" - } - }, - "node_modules/metro/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "node_modules/metro/node_modules/yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dependencies": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - } - }, - "node_modules/metro/node_modules/yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dependencies": { - "camelcase": "^4.1.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mortice": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-2.0.1.tgz", - "integrity": "sha512-9gsXmjq+5LZmXDIoyC/crf2i/7CUwDGSBEwSEsr1i/WfKmJ6DVt38B5kg6BE/WF/1/yfGJYiB1Wyiu423iI3nQ==", - "dependencies": { - "nanoid": "^3.1.20", - "observable-webworkers": "^1.0.0", - "p-queue": "^6.0.0", - "promise-timeout": "^1.3.0" - } - }, - "node_modules/moving-average": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/moving-average/-/moving-average-1.0.1.tgz", - "integrity": "sha512-Hl3aUJqu/7LMslHM6mz9Sk1mpFwe4jW5QcmJgukcUGFILBcQW5L9ot8BUVRSuUaW3o/1Twrwmu7w2NTGvw76cA==" - }, - "node_modules/mri": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", - "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multiaddr": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz", - "integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==", - "dependencies": { - "cids": "^1.0.0", - "class-is": "^1.1.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^2.0.3", - "is-ip": "^3.1.0", - "multibase": "^3.0.0", - "uint8arrays": "^1.1.0", - "varint": "^5.0.0" - } - }, - "node_modules/multiaddr-to-uri": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz", - "integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==", - "dependencies": { - "multiaddr": "^8.0.0" - } - }, - "node_modules/multiaddr/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multiaddr/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/multiaddr/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/multibase": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multicast-dns": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.3.tgz", - "integrity": "sha512-TzxgGSLRLB7tqAlzjgd2x2ZE0cDsGFq4rs9W4yE5xp+7hlRXeUQGtXZsTGfGw2FwWB45rfe8DtXMYBpZGMLUng==", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicodec": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", - "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "node_modules/multicodec/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/multiformats": { - "version": "9.4.7", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.7.tgz", - "integrity": "sha512-fZbcdf7LnvokPAZYkv4TLXe7PAg9sQ5qLXcwrAmZOloEb2+5FtFiAY+l3/9wsu4oTJXTV3JSggFQQ2dJLS01vA==" - }, - "node_modules/multihashes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz", - "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==", - "dependencies": { - "multibase": "^3.1.0", - "uint8arrays": "^2.0.5", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashes/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashing-async": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", - "integrity": "sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==", - "dependencies": { - "blakejs": "^1.1.0", - "err-code": "^3.0.0", - "js-sha3": "^0.8.0", - "multihashes": "^4.0.1", - "murmurhash3js-revisited": "^3.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashing-async/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/multihashing-async/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashing-async/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/multihashing-async/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/multistream-select": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-1.0.0.tgz", - "integrity": "sha512-82riQ+qZ0RPY+KbRdeeKKQnFSBCVpUbZ15EniGU2nfwM8NdrpPIeUYXFw4a/pyprcNeRfMgLlG9aCh874p8nJg==", - "dependencies": { - "bl": "^4.0.0", - "debug": "^4.1.1", - "err-code": "^2.0.0", - "it-handshake": "^1.0.2", - "it-length-prefixed": "^3.0.0", - "it-pipe": "^1.0.1", - "it-reader": "^2.0.0", - "p-defer": "^3.0.0", - "uint8arrays": "^1.1.0" - } - }, - "node_modules/multistream-select/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/multistream-select/node_modules/it-reader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", - "dependencies": { - "bl": "^4.0.0" - } - }, - "node_modules/multistream-select/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multistream-select/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multistream-select/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/murmurhash3js-revisited": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", - "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/mutable-proxy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", - "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==", - "engines": { - "node": ">=6.X.X", - "npm": ">=3.X.X" - } - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "optional": true - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" - }, - "node_modules/nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" - }, - "node_modules/native-abort-controller": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", - "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==", - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/ndjson": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz", - "integrity": "sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg=", - "peer": true, - "dependencies": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.0", - "split2": "^2.1.0", - "through2": "^2.0.3" - }, - "bin": { - "ndjson": "cli.js" - } - }, - "node_modules/ndjson/node_modules/split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "peer": true, - "dependencies": { - "through2": "^2.0.2" - } - }, - "node_modules/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/needle/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "optional": true - }, - "node_modules/neon-cli": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.4.0.tgz", - "integrity": "sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w==", - "optional": true, - "dependencies": { - "chalk": "~2.1.0", - "command-line-args": "^4.0.2", - "command-line-commands": "^2.0.0", - "command-line-usage": "^4.0.0", - "git-config": "0.0.7", - "handlebars": "^4.1.0", - "inquirer": "^3.0.6", - "mkdirp": "^0.5.1", - "quickly-copy-file": "^1.0.0", - "rimraf": "^2.6.1", - "rsvp": "^4.6.1", - "semver": "^5.1.0", - "toml": "^2.3.0", - "ts-typed-json": "^0.2.2", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - }, - "bin": { - "neon": "bin/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/neon-cli/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "optional": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", - "optional": true, - "dependencies": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "optional": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/neon-cli/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "optional": true - }, - "node_modules/neon-cli/node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/neon-cli/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/neon-cli/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/neon-cli/node_modules/supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "optional": true, - "dependencies": { - "has-flag": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/nise": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", - "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", - "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/nise/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/nise/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/no-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-pre-gyp": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/node-pre-gyp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/node-pre-gyp/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" - }, - "node_modules/node-wget-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-wget-js/-/node-wget-js-1.0.1.tgz", - "integrity": "sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw==", - "dev": true, - "dependencies": { - "request": "^2.88.0" - }, - "bin": { - "wget": "cli.js" - } - }, - "node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nugget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", - "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", - "peer": true, - "dependencies": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "bin": { - "nugget": "bin.js" - } - }, - "node_modules/nugget/node_modules/pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "peer": true, - "dependencies": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - }, - "bin": { - "pretty-bytes": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nullthrows": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/ob1": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.57.0.tgz", - "integrity": "sha512-BRAyYcG7NeA8vZFQ/oMqw1fiRLdFcxi/x9DJ3KWeaSI7+tiO3MZwMjnkL9sdsZMEL4OtpggbeAK2dL3zYNiI1A==" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-path": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.7.tgz", - "integrity": "sha512-T4evaK9VfGGQskXBDILcn6F90ZD+WO3OwRFFQ2rmZdUH4vQeDBpiolTpVlPY2yj5xSepyILTjDyM6UvbbdHMZw==", - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/observable-webworkers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-1.0.0.tgz", - "integrity": "sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ==" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "dev": true, - "dependencies": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" - } - }, - "node_modules/optional": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz", - "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==", - "optional": true - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dependencies": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-locale/node_modules/execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-locale/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "engines": { - "node": ">=4" - } - }, - "node_modules/os-locale/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-locale/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-locale/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-any": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", - "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", - "dependencies": { - "p-cancelable": "^2.0.0", - "p-some": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", - "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", - "dependencies": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-filter/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue/node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/p-queue/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-reflect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", - "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "dependencies": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-settle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", - "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", - "dependencies": { - "p-limit": "^2.2.2", - "p-reflect": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-settle/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-some": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", - "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", - "dependencies": { - "aggregate-error": "^3.0.0", - "p-cancelable": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/p-times": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-times/-/p-times-3.0.0.tgz", - "integrity": "sha512-/Z7mcs8Liie8E7IHI9SBtmkHVW/GjLroQ94ALoAMIG20mqFMuh56/3WYhtOTqX9ccRSOxgaCkFC94Bat1Ofskg==", - "dependencies": { - "p-map": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/p-try-each/-/p-try-each-1.0.1.tgz", - "integrity": "sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A==" - }, - "node_modules/p-wait-for": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz", - "integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==", - "dependencies": { - "p-timeout": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-wait-for/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/param-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/parse-duration": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-0.4.4.tgz", - "integrity": "sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg==" - }, - "node_modules/parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==" - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" - }, - "node_modules/parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/pascal-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "peer": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, - "node_modules/peek-readable": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", - "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/peer-id": { - "version": "0.14.8", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.14.8.tgz", - "integrity": "sha512-GpuLpob/9FrEFvyZrKKsISEkaBYsON2u0WtiawLHj1ii6ewkoeRiSDFLyIefYhw0jGvQoeoZS05jaT52X7Bvig==", - "dependencies": { - "cids": "^1.1.5", - "class-is": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "minimist": "^1.2.5", - "multihashes": "^4.0.2", - "protobufjs": "^6.10.2", - "uint8arrays": "^2.0.5" - }, - "bin": { - "peer-id": "src/bin.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/peer-id/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/peer-id/node_modules/multihashes/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/peer-id/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/pem-jwk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", - "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", - "dependencies": { - "asn1.js": "^5.0.1" - }, - "bin": { - "pem-jwk": "bin/pem-jwk.js" - }, - "engines": { - "node": ">=5.10.0" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "peer": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "peer": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pino": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.13.2.tgz", - "integrity": "sha512-vmD/cabJ4xKqo9GVuAoAEeQhra8XJ7YydPV/JyIP+0zDtFTu5JSKdtt8eksGVWKtTSrNGcRrzJ4/IzvUWep3FA==", - "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "fastify-warning": "^0.2.0", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-pretty": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-4.8.0.tgz", - "integrity": "sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw==", - "dependencies": { - "@hapi/bourne": "^2.0.0", - "args": "^5.0.1", - "chalk": "^4.0.0", - "dateformat": "^4.5.1", - "fast-safe-stringify": "^2.0.7", - "jmespath": "^0.15.0", - "joycon": "^2.2.5", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "rfdc": "^1.3.0", - "split2": "^3.1.1", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, - "node_modules/pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, - "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-format": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.1.1.tgz", - "integrity": "sha512-zdBi/xlstKJL42UH7goQti5Hip/B415w1Mfj+WWWYMBylAYtKESnXGUtVVcMVid9ReVjypCotUV6CEevYPHv2g==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/private-ip": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.2.1.tgz", - "integrity": "sha512-jN1WT/br/VNW9xEcwHr6DjtOKxQ5qOIqmh7o+co2TWgq56pZJw99iO3UT1tWdfgsQiyK9FqG4ji3ykwpjFqITA==", - "dependencies": { - "ip-regex": "^4.3.0", - "netmask": "^2.0.2" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", - "peer": true, - "dependencies": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - } - }, - "node_modules/progress-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "peer": true - }, - "node_modules/progress-stream/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "peer": true - }, - "node_modules/progress-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/progress-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "peer": true - }, - "node_modules/progress-stream/node_modules/through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", - "peer": true, - "dependencies": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - } - }, - "node_modules/progress-stream/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "peer": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/prom-client": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz", - "integrity": "sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ==", - "optional": true, - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prometheus-gc-stats": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/prometheus-gc-stats/-/prometheus-gc-stats-0.6.3.tgz", - "integrity": "sha512-vCX+HZ1jZHkha25r5dAcRSNjue+K3Hn0B33EcZl7y3hgp3o1YsQ4Y3x7oJWKvDdbelFIL0McsXGmRg3zBrmq+g==", - "optional": true, - "dependencies": { - "optional": "^0.1.3" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "gc-stats": "^1.4.0" - }, - "peerDependencies": { - "prom-client": ">= 10 <= 12" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/promise-timeout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/promise-timeout/-/promise-timeout-1.3.0.tgz", - "integrity": "sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg==" - }, - "node_modules/promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", - "dependencies": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, - "node_modules/proper-lockfile/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" - }, - "node_modules/protons": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/protons/-/protons-2.0.3.tgz", - "integrity": "sha512-j6JikP/H7gNybNinZhAHMN07Vjr1i4lVupg598l4I9gSTjJqOvKnwjzYX2PzvBTSVf2eZ2nWv4vG+mtW8L6tpA==", - "dependencies": { - "protocol-buffers-schema": "^3.3.1", - "signed-varint": "^2.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.0" - } - }, - "node_modules/protons/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/protons/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pvtsutils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.0.tgz", - "integrity": "sha512-IDefMJEQl7HX0FP2hIKJFnAR11klP1js2ixCrOaMhe3kXFK6RQ2ABUCuwWaaD4ib0hSbh2fGTICvWJJhDfNecA==", - "dependencies": { - "tslib": "^2.2.0" - } - }, - "node_modules/pvtsutils/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/pvutils": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", - "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" - }, - "node_modules/quickly-copy-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", - "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.0" - } - }, - "node_modules/rabin-wasm": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz", - "integrity": "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==", - "dependencies": { - "@assemblyscript/loader": "^0.9.4", - "bl": "^5.0.0", - "debug": "^4.3.1", - "minimist": "^1.2.5", - "node-fetch": "^2.6.1", - "readable-stream": "^3.6.0" - }, - "bin": { - "rabin-wasm": "cli/bin.js" - } - }, - "node_modules/rabin-wasm/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/rabin-wasm/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/rabin-wasm/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/rabin-wasm/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-native-fetch-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", - "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", - "dependencies": { - "p-defer": "^3.0.0" - } - }, - "node_modules/react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/receptacle/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "peer": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "peer": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dependencies": { - "regenerate": "^1.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" - }, - "node_modules/regjsparser": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", - "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "peer": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "node_modules/reset": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/reset/-/reset-0.1.0.tgz", - "integrity": "sha1-n8cxQXGZWubLC35YsGznUir0uvs=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "optional": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "optional": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retimer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", - "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/rfc4648": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz", - "integrity": "sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg==" - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-typescript2": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz", - "integrity": "sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==", - "dependencies": { - "@rollup/pluginutils": "^4.1.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.20.0", - "tslib": "2.1.0" - }, - "peerDependencies": { - "rollup": ">=1.26.3", - "typescript": ">=2.4.0" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", - "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "node_modules/rollup-plugin-typescript2/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/run": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/run/-/run-1.4.0.tgz", - "integrity": "sha1-4X2ekEOrL+F3dsspnhI3848LT/o=", - "dependencies": { - "minimatch": "*" - }, - "bin": { - "runjs": "cli.js" - }, - "engines": { - "node": ">=v0.9.0" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "optional": true - }, - "node_modules/rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "optional": true, - "dependencies": { - "rx-lite": "*" - } - }, - "node_modules/rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", - "dependencies": { - "symbol-observable": "1.0.1" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs/node_modules/symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/sane/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/sane/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/sane/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/secp256k1/node_modules/node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/sentence-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/serialize-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-delayed-interval": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", - "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/sha256": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU=", - "dependencies": { - "convert-hex": "~0.1.0", - "convert-string": "~0.1.0" - } - }, - "node_modules/sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "dependencies": { - "buffer": "6.0.3" - } - }, - "node_modules/sha3/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/signed-varint": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", - "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", - "dependencies": { - "varint": "~5.0.0" - } - }, - "node_modules/signed-varint/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", - "peer": true, - "dependencies": { - "string-width": "^1.0.1" - } - }, - "node_modules/single-line-log/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/single-line-log/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "peer": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/single-line-log/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "peer": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/single-line-log/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sinon": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", - "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", - "dependencies": { - "@sinonjs/commons": "^1.8.1", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/samsam": "^5.3.1", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/sinon/node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "engines": { - "node": "*" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/snake-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/socket.io": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz", - "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", - "dependencies": { - "debug": "~4.1.0", - "engine.io": "~3.5.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.4.0", - "socket.io-parser": "~3.4.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - }, - "node_modules/socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", - "dependencies": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - } - }, - "node_modules/socket.io-client-next": { - "name": "socket.io-client", - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", - "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", - "dependencies": { - "@types/component-emitter": "^1.2.10", - "backo2": "~1.0.2", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-client": "~4.1.0", - "parseuri": "0.0.6", - "socket.io-parser": "~4.0.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-client-next/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io-client-next/node_modules/engine.io-client": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", - "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", - "dependencies": { - "base64-arraybuffer": "0.1.4", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.1", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "node_modules/socket.io-client-next/node_modules/engine.io-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", - "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", - "dependencies": { - "base64-arraybuffer": "0.1.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/socket.io-client-next/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/socket.io-client-next/node_modules/socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-client-next/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", - "dependencies": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-next": { - "name": "socket.io", - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", - "dependencies": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-next/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/socket.io-next/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io-next/node_modules/engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-next/node_modules/engine.io-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", - "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", - "dependencies": { - "base64-arraybuffer": "0.1.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/socket.io-next/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/socket.io-next/node_modules/socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" - }, - "node_modules/socket.io-next/node_modules/socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-next/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io-parser/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "node_modules/sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "node_modules/sparse-array": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", - "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" - }, - "node_modules/speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "peer": true - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "node_modules/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/steno": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", - "integrity": "sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs=", - "dependencies": { - "graceful-fs": "^4.1.3" - } - }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "engines": { - "node": ">=4", - "npm": ">=6" - } - }, - "node_modules/stream-to-it": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", - "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/streaming-iterables": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-5.0.4.tgz", - "integrity": "sha512-nEs6hBGIPsVz6uq6pscGGKfoPDQWrDQW0b0UHurtSDysekfKLmkPg7FQVRE2sj3Rad6yUo9E1sGTxOWyYsHQ/g==", - "engines": { - "node": ">=10" - } - }, - "node_modules/streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "peer": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strtok3": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", - "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/subscriptions-transport-ws": { - "version": "0.9.19", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", - "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", - "dependencies": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependencies": { - "graphql": ">=0.10.0" - } - }, - "node_modules/subscriptions-transport-ws/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sumchecker": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", - "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", - "peer": true, - "dependencies": { - "debug": "^2.2.0", - "es6-promise": "^4.0.5" - } - }, - "node_modules/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/tdigest": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", - "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", - "dependencies": { - "bintrees": "1.0.1" - } - }, - "node_modules/temp": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", - "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", - "engines": [ - "node >=0.8.0" - ], - "dependencies": { - "os-tmpdir": "^1.0.0", - "rimraf": "~2.2.6" - } - }, - "node_modules/temp/node_modules/rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "optional": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-value/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/test-value/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "peer": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "optional": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/time-cache": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/time-cache/-/time-cache-0.3.0.tgz", - "integrity": "sha1-7Q388P2kXNyV+9YB/agw6/G9XYs=", - "dependencies": { - "lodash.throttle": "^4.1.1" - } - }, - "node_modules/timeout-abort-controller": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", - "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "retimer": "^2.0.0" - } - }, - "node_modules/timestamp-nano": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.0.tgz", - "integrity": "sha512-NO/1CZigzlCWQiWdIGv8ebXt6Uk77zdLz2NE7KcZRU5Egj2+947lzUpk30xQUQlq5dRY25j7ZulG4RfA2DHYfA==", - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/tiny-each-async": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", - "integrity": "sha1-jru/1tYpXxNwAD+7NxYq/loKUdE=" - }, - "node_modules/tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dependencies": { - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tmp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", - "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/toml": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", - "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", - "optional": true - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, - "node_modules/ts-invariant": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", - "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-invariant/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "node_modules/ts-jest": { - "version": "27.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.5.tgz", - "integrity": "sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "babel-jest": { - "optional": true - } - } - }, - "node_modules/ts-typed-json": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", - "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", - "optional": true, - "dependencies": { - "rsvp": "^3.5.0" - } - }, - "node_modules/ts-typed-json/node_modules/rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "optional": true, - "engines": { - "node": "0.12.* || 4.* || 6.* || >= 7.*" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", - "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typical": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", - "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" - } - }, - "node_modules/uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", - "dependencies": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uglify-es/node_modules/commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" - }, - "node_modules/uglify-js": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unordered-array-remove": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", - "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/update-notifier/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/upper-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-to-multiaddr": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/uri-to-multiaddr/-/uri-to-multiaddr-4.0.0.tgz", - "integrity": "sha512-6zQ1uBlE+F//46CBA3lx3vBMhybSvdGJqgNyQPobSDsWGrDDdmJM/f95GPaswXAGFlRHPqOjrGKT11IcKmIfaA==", - "dependencies": { - "is-ip": "^3.1.0", - "multiaddr": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ursa-optional": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", - "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.14.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" - }, - "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util.promisify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", - "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", - "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "optional": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/varint-decoder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz", - "integrity": "sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ==", - "dependencies": { - "varint": "^5.0.0" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/varint-decoder/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vlq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", - "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dependencies": { - "makeerror": "1.0.x" - } - }, - "node_modules/web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dependencies": { - "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.1.1.tgz", - "integrity": "sha512-Czi3fG883e96T4DLEPRvufrF2ydhOOW1+1a6c3gNjH2aIh50DNFBdfwh2AKoOf1rXvpvavAoA11Qdq9+BKjE0Q==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webcrypto-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.2.1.tgz", - "integrity": "sha512-5+h1/e/A4eegCRTg+oQ9ehTJRTMwFhZazJ2RH1FP0VC3q1/0xl7x6SzzTwPxd/VTGc7kjuSEJGnfNgoLe5jNRQ==", - "dependencies": { - "@peculiar/asn1-schema": "^2.0.38", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.0", - "tslib": "^2.3.1" - } - }, - "node_modules/webcrypto-core/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "node_modules/which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/widest-line/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "node_modules/wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", - "optional": true, - "dependencies": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/wrtc": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/wrtc/-/wrtc-0.4.7.tgz", - "integrity": "sha512-P6Hn7VT4lfSH49HxLHcHhDq+aFf/jd9dPY7lDHeFhZ22N3858EKuwm2jmnlPzpsRGEPaoF6XwkcxY5SYnt4f/g==", - "bundleDependencies": [ - "node-pre-gyp" - ], - "hasInstallScript": true, - "peer": true, - "dependencies": { - "node-pre-gyp": "^0.13.0" - }, - "engines": { - "node": "^8.11.2 || >=10.0.0" - }, - "optionalDependencies": { - "domexception": "^1.0.1" - } - }, - "node_modules/wrtc/node_modules/domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "optional": true, - "peer": true, - "dependencies": { - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/wrtc/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "optional": true, - "peer": true - }, - "node_modules/ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/xmlhttprequest-ssl": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", - "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xor-distance": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xor-distance/-/xor-distance-2.0.0.tgz", - "integrity": "sha512-AsAqZfPAuWx7qB/0kyRDUEvoU3QKsHWzHU9smFlkaiprEpGfJ/NBbLze2Uq0rdkxCxkNM9uOLvz/KoNBCbZiLQ==" - }, - "node_modules/xpipe": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz", - "integrity": "sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=" - }, - "node_modules/xsalsa20": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.1.0.tgz", - "integrity": "sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw==" - }, - "node_modules/xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "peer": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - }, - "node_modules/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "node_modules/zen-observable-ts": { - "version": "0.8.21", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", - "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", - "dependencies": { - "tslib": "^1.9.3", - "zen-observable": "^0.8.0" - } - } - }, - "dependencies": { - "@achingbrain/electron-fetch": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@achingbrain/electron-fetch/-/electron-fetch-1.7.2.tgz", - "integrity": "sha512-ShX5frO+2OddzRIlUb8D0Ao2eC3uZl910CYnRIPGLLM360vQceeOqpivwNdbry41Ph3MMtLR4RpzGdaADGG8Gg==", - "requires": { - "encoding": "^0.1.13" - } - }, - "@apollo/client": { - "version": "3.3.20", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", - "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", - "dev": true, - "requires": { - "@graphql-typed-document-node/core": "^3.0.0", - "@types/zen-observable": "^0.8.0", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "fast-json-stable-stringify": "^2.0.0", - "graphql-tag": "^2.12.0", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.0", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.7.0", - "tslib": "^1.10.0", - "zen-observable": "^0.8.14" - } - }, - "@apollo/protobufjs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz", - "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - } - } - }, - "@apollographql/apollo-tools": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz", - "integrity": "sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==" - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.27", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz", - "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==", - "requires": { - "xss": "^1.0.8" - } - }, - "@apollographql/graphql-upload-8-fork": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", - "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", - "requires": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "busboy": "^0.3.1", - "fs-capacitor": "^2.0.4", - "http-errors": "^1.7.3", - "object-path": "^0.11.4" - } - }, - "@assemblyscript/loader": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", - "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" - }, - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" - }, - "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz", - "integrity": "sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", - "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", - "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz", - "integrity": "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", - "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz", - "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-wrap-function": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", - "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" - }, - "@babel/helper-wrap-function": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz", - "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==", - "requires": { - "@babel/helper-function-name": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", - "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/plugin-external-helpers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.14.5.tgz", - "integrity": "sha512-q/B/hLX+nDGk73Xn529d7Ar4ih17J8pNBbsXafq8oXij0XfFEA/bks+u+6q5q04zO5o/qivjzui6BqzPfYShEg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-export-default-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz", - "integrity": "sha512-T8KZ5abXvKMjF6JcoXjgac3ElmXf0AWzJwi2O/42Jk+HmCky3D9+i1B7NPP1FblyceqTevKeV/9szeikFoaMDg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-default-from": "^7.14.5" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", - "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.15.4" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", - "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-default-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.14.5.tgz", - "integrity": "sha512-snWDxjuaPEobRBnhpqEfZ8RMxDbHt8+87fiEioGuE+Uc0xAKgSD8QiuL3lF93hPVQfZFAcYwrrf+H5qUhike3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz", - "integrity": "sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", - "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", - "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", - "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", - "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", - "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz", - "integrity": "sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-flow": "^7.14.5" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", - "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", - "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", - "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", - "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", - "requires": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-object-assign": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz", - "integrity": "sha512-lvhjk4UN9xJJYB1mI5KC0/o1D5EcJXdbhVe+4fSk08D6ZN+iuAIs7LJC+71h8av9Ew4+uRq9452v9R93SFmQlQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", - "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", - "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.15.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz", - "integrity": "sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", - "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.9" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz", - "integrity": "sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", - "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", - "babel-plugin-polyfill-regenerator": "^0.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", - "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", - "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/register": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz", - "integrity": "sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw==", - "requires": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@graphql-typed-document-node/core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz", - "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==", - "dev": true, - "requires": {} - }, - "@grpc/grpc-js": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.7.tgz", - "integrity": "sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA==", - "requires": { - "@types/node": ">=12.12.47" - } - }, - "@hapi/accept": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", - "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/ammo": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", - "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/b64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", - "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/boom": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", - "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/bounce": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", - "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/call": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", - "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/catbox": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", - "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/podium": "4.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/catbox-memory": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", - "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/content": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", - "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", - "requires": { - "@hapi/boom": "9.x.x" - } - }, - "@hapi/cryptiles": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", - "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", - "requires": { - "@hapi/boom": "9.x.x" - } - }, - "@hapi/file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", - "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" - }, - "@hapi/hapi": { - "version": "20.1.5", - "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.1.5.tgz", - "integrity": "sha512-BhJ5XFR9uWPUBj/z5pPqXSk8OnvQQU/EbQjwpmjZy0ymNEiq7kIhXkAmzXcntbBHta9o7zpW8XMeXnfV4wudXw==", - "requires": { - "@hapi/accept": "^5.0.1", - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/bounce": "^2.0.0", - "@hapi/call": "^8.0.0", - "@hapi/catbox": "^11.1.1", - "@hapi/catbox-memory": "^5.0.0", - "@hapi/heavy": "^7.0.1", - "@hapi/hoek": "^9.0.4", - "@hapi/mimos": "^6.0.0", - "@hapi/podium": "^4.1.1", - "@hapi/shot": "^5.0.5", - "@hapi/somever": "^3.0.0", - "@hapi/statehood": "^7.0.3", - "@hapi/subtext": "^7.0.3", - "@hapi/teamwork": "^5.1.0", - "@hapi/topo": "^5.0.0", - "@hapi/validate": "^1.1.1" - } - }, - "@hapi/heavy": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", - "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" - }, - "@hapi/inert": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@hapi/inert/-/inert-6.0.4.tgz", - "integrity": "sha512-tpmNqtCCAd+5Ts07bJmMaA79+ZUIf0zSWnQMaWtbcO4nGrO/yXB2AzoslfzFX2JEV9vGeF3FfL8mYw0pHl8VGg==", - "requires": { - "@hapi/ammo": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x", - "lru-cache": "^6.0.0" - } - }, - "@hapi/iron": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", - "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", - "requires": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/mimos": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz", - "integrity": "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==", - "requires": { - "@hapi/hoek": "9.x.x", - "mime-db": "1.x.x" - } - }, - "@hapi/nigel": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", - "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", - "requires": { - "@hapi/hoek": "^9.0.4", - "@hapi/vise": "^4.0.0" - } - }, - "@hapi/pez": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", - "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", - "requires": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/content": "^5.0.2", - "@hapi/hoek": "9.x.x", - "@hapi/nigel": "4.x.x" - } - }, - "@hapi/podium": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", - "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", - "requires": { - "@hapi/hoek": "9.x.x", - "@hapi/teamwork": "5.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/shot": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", - "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", - "requires": { - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/somever": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz", - "integrity": "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==", - "requires": { - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/statehood": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", - "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/iron": "6.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/subtext": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", - "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/content": "^5.0.2", - "@hapi/file": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/pez": "^5.0.1", - "@hapi/wreck": "17.x.x" - } - }, - "@hapi/teamwork": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", - "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==" - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@hapi/validate": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", - "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0" - } - }, - "@hapi/vise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", - "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", - "requires": { - "@hapi/hoek": "9.x.x" + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@hapi/wreck": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz", - "integrity": "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==", + "@material/button": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-11.0.0.tgz", + "integrity": "sha512-KqqxEcsj8jBkV1yNEiPoHiB1AJBa/1OGm7H+hF+C3RUTIrRLew8IuRL1ZY38ukdHvhno1/qmVMKOs6ui0mxjlg==", + "dev": true, "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/hoek": "9.x.x" + "@material/density": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/elevation": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/touch-target": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@holochain/conductor-api": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@holochain/conductor-api/-/conductor-api-0.2.0.tgz", - "integrity": "sha512-GUjItNXRAxrae9hwf3brVVAB55bkG+Z3u6tEkmazrMs2tk+egIOjN9Oin1GsORjQoNw+7xj7mwZ1+TLY2F8hiQ==", + "@material/density": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-11.0.0.tgz", + "integrity": "sha512-FuSx0UukH7p9cIAxEg78zwL5iYuoa/YovyHuuEEudyhWsRH+u0KBSQlYWr+ykg//qZF6urlDrVmu7WAKi1SiCw==", + "dev": true, "requires": { - "@msgpack/msgpack": "2.4.0", - "@types/ws": "^7.2.4", - "isomorphic-ws": "^4.0.1", - "nanoid": "^3.1.9", - "ws": "^7.3.0" + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "@material/dom": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-11.0.0.tgz", + "integrity": "sha512-LZdg6VmYnMXc/Ct/GdQ22o4m3UgjhZYQIrwu9Iebqchx0Vd2OTmcFN5nArHSCSgUEhpjpPlkbZmjOpeOAwiKZg==", "dev": true, "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" }, "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", "dev": true } } }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.1.1.tgz", - "integrity": "sha512-VpQJRsWSeAem0zpBjeRtDbcD6DlbNoK11dNYt+PSQ+DDORh9q2/xyEpErfwgnLjWX0EKkSZmTGx/iH9Inzs6vQ==", + "@material/elevation": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-11.0.0.tgz", + "integrity": "sha512-mgrUSBAdXJ1+VS/SWnu/gr9/nq7P1q5X3aDmoom2EPKauEeKhuAHjABI5duxHOrliZM3mK9VLO56D/tszb7spw==", "dev": true, "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.1.1", - "jest-util": "^27.1.1", - "slash": "^3.0.0" + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@jest/core": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.1.1.tgz", - "integrity": "sha512-oCkKeTgI0emznKcLoq5OCD0PhxCijA4l7ejDnWW3d5bgSi+zfVaLybVqa+EQOxpNejQWtTna7tmsAXjMN9N43Q==", + "@material/feature-targeting": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-11.0.0.tgz", + "integrity": "sha512-7/jdaHm7C16Eq02tDQ1iI+giWKgk+QRNWFrmGKzHfXbU604XwY/eSLSiVS8QI01vx9QZ0aO9K84m0yhQQNQQtg==", "dev": true, "requires": { - "@jest/console": "^27.1.1", - "@jest/reporters": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.1.1", - "jest-config": "^27.1.1", - "jest-haste-map": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-resolve-dependencies": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "jest-watcher": "^27.1.1", - "micromatch": "^4.0.4", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@material/floating-label": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-11.0.0.tgz", + "integrity": "sha512-sY/ijV06cU0y9+1OB122d6z2AuxLzjQgQGVq9dFLoVRL6jhV2HgOxGF/3cvZsgGGsv2liXagkmQ02jBV1ypvgA==", + "dev": true, + "requires": { + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" }, "dependencies": { - "jest-config": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.1.tgz", - "integrity": "sha512-2iSd5zoJV4MsWPcLCGwUVUY/j6pZXm4Qd3rnbCtrd9EHNTg458iHw8PZztPQXfxKBKJxLfBk7tbZqYF8MGtxJA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.1.1", - "@jest/types": "^27.1.1", - "babel-jest": "^27.1.1", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.1.1", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.1" - } + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true } } }, - "@jest/environment": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.1.1.tgz", - "integrity": "sha512-+y882/ZdxhyqF5RzxIrNIANjHj991WH7jifdcplzMDosDUOyCACFYUyVTBGbSTocbU+s1cesroRzkwi8hZ9SHg==", + "@material/line-ripple": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-11.0.0.tgz", + "integrity": "sha512-ws0p28hfG5P7RuCJZhHBDhPd/pYusszwRWMa1xkATxCjdCDc9hC9RIsUb6eIG9/iwpYnLNRvIoR5iF+01rVhow==", "dev": true, "requires": { - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1" + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@jest/fake-timers": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.1.1.tgz", - "integrity": "sha512-u8TJ5VlsVYTsGFatoyIae2l25pku4Bu15QCPTx2Gs5z+R//Ee3tHN85462Vc9yGVcdDvgADbqNkhOLxbEwPjMQ==", + "@material/notched-outline": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-11.0.0.tgz", + "integrity": "sha512-GwYFIRA6raFljNARmEpIcIjHztjKD8wcDf+6xl1WezsprGd/Qdzq59/VX76y1et8ZkkL0+fE+4dEaVpCHq/e8A==", "dev": true, "requires": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.1.1", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1" + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/floating-label": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@jest/globals": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.1.1.tgz", - "integrity": "sha512-Q3JcTPmY+DAEHnr4MpnBV3mwy50EGrTC6oSDTNnW7FNGGacTJAfpWNk02D7xv422T1OzK2A2BKx+26xJOvHkyw==", + "@material/ripple": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-11.0.0.tgz", + "integrity": "sha512-672zAsYaL8aS861VgfEPL4sFMkFe0psiSc+4DfUTq7Nanl4e1gcarzzHZAn5IExUNk3/5QybDiXV+dbaL/0NjQ==", "dev": true, "requires": { - "@jest/environment": "^27.1.1", - "@jest/types": "^27.1.1", - "expect": "^27.1.1" + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@jest/reporters": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.1.1.tgz", - "integrity": "sha512-cEERs62n1P4Pqox9HWyNOEkP57G95aK2mBjB6D8Ruz1Yc98fKH53b58rlVEnsY5nLmkLNZk65fxNi9C0Yds/8w==", + "@material/rtl": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-11.0.0.tgz", + "integrity": "sha512-FcS8+N9MhnC0Wdd34O2yCC/5ylIwkfHjV5pbmHyEtb4YXoWngnPIxgpOr5PsUv95WSQBmeqWCRJDwS+sGZHoKQ==", "dev": true, "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.0.0" + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@jest/source-map": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "@material/shape": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-11.0.0.tgz", + "integrity": "sha512-O9/Dt/9Nbum1IvxRd4u8gCF4ghk9E55UNp2TGe+RN43zpTUbChh2raOFr3sQeRwLIzlb4wstUG9AxmdktrkDUQ==", "dev": true, "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" + "@material/feature-targeting": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@jest/test-result": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.1.1.tgz", - "integrity": "sha512-8vy75A0Jtfz9DqXFUkjC5Co/wRla+D7qRFdShUY8SbPqBS3GBx3tpba7sGKFos8mQrdbe39n+c1zgVKtarfy6A==", + "@material/textfield": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-11.0.0.tgz", + "integrity": "sha512-7GwZCJplxQpdExNO8K3IOPH/SniCd4bcvOuKGYWjW1irOLYVX2Om0e7X2q70XWvD/B85Rb8ZaPXqx3EJiwNrvQ==", "dev": true, "requires": { - "@jest/console": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/density": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/floating-label": "^11.0.0", + "@material/line-ripple": "^11.0.0", + "@material/notched-outline": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@jest/test-sequencer": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.1.1.tgz", - "integrity": "sha512-l8zD3EdeixvwmLNlJoMX3hhj8iIze95okj4sqmBzOq/zW8gZLElUveH4bpKEMuR+Nweazjlwc7L6g4C26M/y6Q==", + "@material/theme": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-11.0.0.tgz", + "integrity": "sha512-GnQI8sd2wHFD3AvmhpyRaH5o9D5Shobs1xDH4FdRU9+c+FNNqouZMDzyM6UpCX4700DzqvE7l0/1LjzB7ve7Lg==", "dev": true, "requires": { - "@jest/test-result": "^27.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-runtime": "^27.1.1" + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@jest/transform": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.1.1.tgz", - "integrity": "sha512-qM19Eu75U6Jc5zosXXVnq900Nl9JDpoGaZ4Mg6wZs7oqbu3heYSMOZS19DlwjlhWdfNRjF4UeAgkrCJCK3fEXg==", + "@material/touch-target": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-11.0.0.tgz", + "integrity": "sha512-S1XPYj3Bnkw26nFdYRZ0BHcNLfizF8HBeX9+OR7KuJUKaFB6CN01CtyEmDU3XNI0n140KjMtJnsZykWZommolQ==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.1.1", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.1.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "@material/typography": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-11.0.0.tgz", + "integrity": "sha512-i9IGO/ZsF+YnqC2+PpJapt/8hSXOKFXaqv6B9uUr+iQ8GD4bEFpxm5kChzH918wJpCHvxbTYbnR6buaF9nkjCQ==", "dev": true, "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, - "@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" - }, "@mattrglobal/bbs-signatures": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", @@ -25627,6 +2268,11 @@ "node-pre-gyp": "0.14.0" } }, + "@metamask/detect-provider": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz", + "integrity": "sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ==" + }, "@motrix/nat-api": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", @@ -25718,29 +2364,12 @@ } }, "@perspect3vism/ad4m": { - "version": "file:../ad4m", - "requires": { - "@apollo/client": "3.3.20", - "@apollo/link-error": "^2.0.0-beta.3", - "@holochain/conductor-api": "0.0.4", - "@rollup/plugin-alias": "^3.1.5", - "@rollup/plugin-commonjs": "^20.0.0", - "@rollup/plugin-node-resolve": "^13.0.4", - "@types/jest": "^27.0.1", - "@types/mocha": "^8.0.3", - "@types/reflect-metadata": "^0.1.0", - "apollo-server": "^2.25.2", - "class-validator": "^0.13.1", - "cross-fetch": "^3.1.4", - "graphql": "^15.5.0", - "jest": "^27.0.4", - "react": "^17.0.2", - "reflect-metadata": "^0.1.13", - "rollup": "^2.56.3", - "ts-jest": "^27.0.3", - "type-graphql": "^1.1.1", - "typescript": "^4.2.4" - } + "version": "file:../ad4m" + }, + "@polka/url": { + "version": "1.0.0-next.20", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.20.tgz", + "integrity": "sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q==" }, "@protobufjs/aspromise": { "version": "1.1.2", @@ -25800,7 +2429,6 @@ "version": "17.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", - "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", "commondir": "^1.0.1", @@ -25815,7 +2443,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", - "dev": true, "requires": { "@rollup/pluginutils": "^3.0.8" } @@ -25824,7 +2451,6 @@ "version": "11.2.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", @@ -25838,7 +2464,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, "requires": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", @@ -25848,8 +2473,7 @@ "estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" } } }, @@ -26448,8 +3072,7 @@ "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, "@types/express": { "version": "4.17.13", @@ -26544,6 +3167,32 @@ "requires": { "jest-diff": "^27.0.0", "pretty-format": "^27.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } } }, "@types/js-yaml": { @@ -26664,7 +3313,6 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, "requires": { "@types/node": "*" } @@ -27161,8 +3809,7 @@ "apollo-server-errors": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz", - "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==", - "requires": {} + "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==" }, "apollo-server-express": { "version": "2.25.2", @@ -27411,7 +4058,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "peer": true + "dev": true }, "array-flatten": { "version": "1.1.1", @@ -27462,7 +4109,14 @@ "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.1.1.tgz", "integrity": "sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g==", "requires": { - "pvutils": "latest" + "pvutils": "^1.0.17" + }, + "dependencies": { + "pvutils": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", + "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" + } } }, "assert-plus": { @@ -28010,6 +4664,79 @@ "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz", "integrity": "sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg==" }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + }, "browserslist": { "version": "4.17.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", @@ -28087,6 +4814,16 @@ "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", "dev": true }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, "buffers": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", @@ -28116,8 +4853,7 @@ "builtin-modules": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" }, "builtins": { "version": "1.0.3", @@ -28250,7 +4986,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "peer": true, + "dev": true, "requires": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" @@ -28260,10 +4996,22 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "peer": true + "dev": true } } }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, "caniuse-lite": { "version": "1.0.30001255", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz", @@ -28561,6 +5309,15 @@ } } }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "cjs-module-lexer": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", @@ -28823,6 +5580,32 @@ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dev": true, + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + }, + "dependencies": { + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "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" } @@ -28832,6 +5615,16 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "color-string": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", + "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", @@ -29246,6 +6039,49 @@ } } }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", @@ -29272,6 +6108,24 @@ } } }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -29569,11 +6423,20 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "peer": true, + "dev": true, "requires": { "array-find-index": "^1.0.1" } }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "dag-cbor-links": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/dag-cbor-links/-/dag-cbor-links-2.0.2.tgz", @@ -29857,8 +6720,7 @@ "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" }, "default-gateway": { "version": "6.0.3", @@ -29939,6 +6801,15 @@ "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", @@ -29947,7 +6818,8 @@ "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "optional": true }, "detect-newline": { "version": "3.1.0", @@ -29984,11 +6856,20 @@ "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", "dev": true }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, "dirty-chai": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz", - "integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==", - "requires": {} + "integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==" }, "dlv": { "version": "1.1.3", @@ -30181,93 +7062,6 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, - "electron": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-1.8.8.tgz", - "integrity": "sha512-1f9zJehcTTGjrkb06o6ds+gsRq6SYhZJyxOk6zIWjRH8hVy03y/RzUDELzNas71f5vcvXmfGVvyjeEsadDI8tg==", - "peer": true, - "requires": { - "@types/node": "^8.0.24", - "electron-download": "^3.0.1", - "extract-zip": "^1.0.3" - }, - "dependencies": { - "@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "peer": true - } - } - }, - "electron-download": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", - "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", - "peer": true, - "requires": { - "debug": "^2.2.0", - "fs-extra": "^0.30.0", - "home-path": "^1.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.0", - "path-exists": "^2.1.0", - "rc": "^1.1.2", - "semver": "^5.3.0", - "sumchecker": "^1.2.0" - }, - "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "peer": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "peer": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "peer": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "peer": true - } - } - }, - "electron-eval": { - "version": "0.9.10", - "resolved": "https://registry.npmjs.org/electron-eval/-/electron-eval-0.9.10.tgz", - "integrity": "sha512-VrAw2MrAjCwM8EGQsY+n48/f9P4W+AH56adERtDEb9bl5Hw9aN+ectmuK9QIi2XA11g+owQlyj2N4AzvdT363A==", - "peer": true, - "requires": { - "cross-spawn": "^5.1.0", - "electron": "^1.6.11", - "headless": "https://github.com/paulkernfeld/node-headless/tarball/master", - "ndjson": "^1.5.0" - } - }, "electron-fetch": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz", @@ -30281,18 +7075,6 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.834.tgz", "integrity": "sha512-9hnYJOlj2zbVn59Oy1R2mW/jntsRG7Gy56/aAOq8s29DzDYW/kOrq/ryJXGAQRRMg4MreHjI63XavGZTsnPubg==" }, - "electron-webrtc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/electron-webrtc/-/electron-webrtc-0.3.0.tgz", - "integrity": "sha1-VG0cqBpEU0jDIGLLnaXnpKasrc8=", - "peer": true, - "requires": { - "debug": "^2.2.0", - "electron-eval": "^0.9.0", - "get-browser-rtc": "^1.0.2", - "hat": "^0.0.3" - } - }, "elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", @@ -30400,8 +7182,7 @@ "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" } } }, @@ -30434,8 +7215,7 @@ "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" } } }, @@ -30513,11 +7293,25 @@ "is-symbol": "^1.0.2" } }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "peer": true + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } }, "es6-promisify": { "version": "6.1.1", @@ -30580,8 +7374,7 @@ "estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "esutils": { "version": "2.0.3", @@ -30748,6 +7541,15 @@ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "exec-sh": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", @@ -31071,18 +7873,6 @@ } } }, - "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "peer": true, - "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - } - }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -31135,6 +7925,12 @@ "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, "fb-watchman": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", @@ -31163,15 +7959,6 @@ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "peer": true, - "requires": { - "pend": "~1.2.0" - } - }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -31446,7 +8233,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, "fstream": { @@ -31950,14 +8736,6 @@ "bundled": true, "optional": true }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "string-width": { "version": "1.0.2", "bundled": true, @@ -31968,6 +8746,14 @@ "strip-ansi": "^3.0.0" } }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { "version": "3.0.1", "bundled": true, @@ -32079,11 +8865,16 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "peer": true + "dev": true }, "get-stream": { "version": "6.0.1", @@ -32390,6 +9181,14 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", @@ -32460,6 +9259,16 @@ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, "hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -32474,12 +9283,6 @@ "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" }, - "hat": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", - "integrity": "sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=", - "peer": true - }, "header-case": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", @@ -32496,12 +9299,6 @@ } } }, - "headless": { - "version": "https://github.com/paulkernfeld/node-headless/tarball/master", - "integrity": "sha512-Y+OAUntNS8dvU9cX0NHuTegMu7sDbd9KbPHF/pe9YO64UvuSE14AEKmMqzRqywQx83a3Y23inqC6iDvAd6PIYA==", - "optional": true, - "peer": true - }, "heap": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", @@ -32532,12 +9329,6 @@ "react-is": "^16.7.0" } }, - "home-path": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.7.tgz", - "integrity": "sha512-tM1pVa+u3ZqQwIkXcWfhUlY3HWS3TsnKsfi2OHHvnhkX52s9etyktPyy1rQotkr0euWimChDq+QkQuDe8ngUlQ==", - "peer": true - }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -32700,6 +9491,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "optional": true, "requires": { "minimatch": "^3.0.4" } @@ -34345,11 +11137,17 @@ "is-plain-object": "^2.0.4" } }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, "is-finite": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "peer": true + "dev": true }, "is-fn": { "version": "1.0.0", @@ -34453,8 +11251,7 @@ "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" }, "is-negative-zero": { "version": "2.0.1", @@ -34523,7 +11320,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, "requires": { "@types/estree": "*" } @@ -34590,7 +11386,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "peer": true + "dev": true }, "is-windows": { "version": "1.0.2", @@ -34664,8 +11460,7 @@ "isomorphic-ws": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "requires": {} + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" }, "isstream": { "version": "0.1.2", @@ -35169,6 +11964,32 @@ "slash": "^3.0.0", "stack-utils": "^2.0.3", "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } } }, "jest-cli": { @@ -35191,6 +12012,12 @@ "yargs": "^16.0.3" }, "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, "jest-config": { "version": "27.1.1", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.1.tgz", @@ -35219,6 +12046,24 @@ "micromatch": "^4.0.4", "pretty-format": "^27.1.1" } + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true } } }, @@ -35232,6 +12077,32 @@ "diff-sequences": "^27.0.6", "jest-get-type": "^27.0.6", "pretty-format": "^27.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } } }, "jest-docblock": { @@ -35254,6 +12125,32 @@ "jest-get-type": "^27.0.6", "jest-util": "^27.1.1", "pretty-format": "^27.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } } }, "jest-environment-jsdom": { @@ -35336,6 +12233,32 @@ "jest-util": "^27.1.1", "pretty-format": "^27.1.1", "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } } }, "jest-leak-detector": { @@ -35346,6 +12269,32 @@ "requires": { "jest-get-type": "^27.0.6", "pretty-format": "^27.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } } }, "jest-matcher-utils": { @@ -35358,6 +12307,32 @@ "jest-diff": "^27.1.1", "jest-get-type": "^27.0.6", "pretty-format": "^27.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } } }, "jest-message-util": { @@ -35375,6 +12350,32 @@ "pretty-format": "^27.1.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } } }, "jest-mock": { @@ -35391,8 +12392,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "27.0.6", @@ -35534,6 +12534,32 @@ "natural-compare": "^1.4.0", "pretty-format": "^27.1.1", "semver": "^7.3.2" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } } }, "jest-util": { @@ -35564,11 +12590,35 @@ "pretty-format": "^27.1.1" }, "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, "camelcase": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true } } }, @@ -37180,7 +14230,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "peer": true, + "dev": true, "requires": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" @@ -37243,7 +14293,6 @@ "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, "requires": { "sourcemap-codec": "^1.4.4" } @@ -37286,16 +14335,32 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "peer": true + "dev": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "^1.0.0" + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -37338,7 +14403,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "peer": true, + "dev": true, "requires": { "camelcase-keys": "^2.0.0", "decamelize": "^1.1.2", @@ -37356,7 +14421,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "peer": true, + "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -37366,7 +14431,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "peer": true, + "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -37379,7 +14444,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "peer": true, + "dev": true, "requires": { "error-ex": "^1.2.0" } @@ -37388,7 +14453,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "peer": true, + "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -37399,13 +14464,13 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "peer": true + "dev": true }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "peer": true, + "dev": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -37416,7 +14481,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "peer": true, + "dev": true, "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -37426,7 +14491,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "peer": true, + "dev": true, "requires": { "is-utf8": "^0.2.0" } @@ -38927,6 +15992,15 @@ "picomatch": "^2.2.3" } }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -39176,6 +16250,43 @@ } } }, + "multihashing": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/multihashing/-/multihashing-0.3.4.tgz", + "integrity": "sha512-Wi2snofXszTV5jPvkuDPvk7J2VxzIlp8G89n/EplU60BC3cNCT+vO2IcIs5AIzBHE0GP9ezZGTFVuJuvde7BWw==", + "requires": { + "blakejs": "^1.1.0", + "js-sha3": "~0.8.0", + "multihashes": "~0.4.14", + "webcrypto": "~0.1.1" + }, + "dependencies": { + "multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, "multihashing-async": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", @@ -39333,14 +16444,12 @@ "native-abort-controller": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", - "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==", - "requires": {} + "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==" }, "native-fetch": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "requires": {} + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==" }, "natural-compare": { "version": "1.4.0", @@ -39348,33 +16457,11 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "ndjson": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz", - "integrity": "sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg=", - "peer": true, - "requires": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.0", - "split2": "^2.1.0", - "through2": "^2.0.3" - }, - "dependencies": { - "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "peer": true, - "requires": { - "through2": "^2.0.2" - } - } - } - }, "needle": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "optional": true, "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -39385,6 +16472,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "optional": true, "requires": { "ms": "^2.1.1" } @@ -39392,7 +16480,8 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "optional": true } } }, @@ -39655,6 +16744,7 @@ "version": "0.14.0", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", + "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -39672,6 +16762,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "optional": true, "requires": { "glob": "^7.1.3" } @@ -39679,7 +16770,8 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "optional": true } } }, @@ -39693,6 +16785,99 @@ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "node-wget-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/node-wget-js/-/node-wget-js-1.0.1.tgz", + "integrity": "sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw==", + "dev": true, "requires": { "request": "^2.88.0" } @@ -39706,6 +16891,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -39744,6 +16930,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "optional": true, "requires": { "npm-normalize-package-bin": "^1.0.1" } @@ -39751,12 +16938,14 @@ "npm-normalize-package-bin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "optional": true }, "npm-packlist": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "optional": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1", @@ -39782,31 +16971,13 @@ "set-blocking": "~2.0.0" } }, - "nugget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", - "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", - "peer": true, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, "requires": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "dependencies": { - "pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "peer": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - } - } + "boolbase": "~1.0.0" } }, "nullthrows": { @@ -40360,6 +17531,18 @@ } } }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, "parse-duration": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-0.4.4.tgz", @@ -40441,7 +17624,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "peer": true, + "dev": true, "requires": { "pinkie-promise": "^2.0.0" } @@ -40486,6 +17669,18 @@ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "peek-readable": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", @@ -40540,12 +17735,6 @@ "asn1.js": "^5.0.1" } }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "peer": true - }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -40554,8 +17743,7 @@ "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pify": { "version": "3.0.0", @@ -40566,13 +17754,13 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "peer": true + "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "peer": true, + "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -40627,7 +17815,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, "requires": { "find-up": "^4.0.0" } @@ -40637,39 +17824,47 @@ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" - }, - "pretty-format": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.1.1.tgz", - "integrity": "sha512-zdBi/xlstKJL42UH7goQti5Hip/B415w1Mfj+WWWYMBylAYtKESnXGUtVVcMVid9ReVjypCotUV6CEevYPHv2g==", + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" }, "dependencies": { "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } }, "color-convert": { "version": "1.9.3", @@ -40740,85 +17935,24 @@ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", - "peer": true, - "requires": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "peer": true - }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "peer": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "peer": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "peer": true - }, - "through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", - "peer": true, - "requires": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - } - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "peer": true, - "requires": { - "object-keys": "~0.4.0" - } + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true } } }, - "prom-client": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz", - "integrity": "sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ==", - "optional": true, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, "requires": { "postcss": "^7.0.0" } @@ -41604,48 +18738,6 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, "printj": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", @@ -41835,6 +18927,19 @@ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -41872,11 +18977,6 @@ } } }, - "pvutils": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", - "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" - }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -41962,6 +19062,15 @@ "safe-buffer": "^5.1.0" } }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -42158,7 +19267,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "peer": true, + "dev": true, "requires": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" @@ -42168,7 +19277,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "peer": true, + "dev": true, "requires": { "repeating": "^2.0.0" } @@ -42284,7 +19393,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "peer": true, + "dev": true, "requires": { "is-finite": "^1.0.0" } @@ -42478,6 +19587,23 @@ "glob": "^7.1.3" } }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "requires": { + "bn.js": "^4.11.1" + } + }, "rollup": { "version": "2.56.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", @@ -42602,7 +19728,6 @@ "version": "0.30.0", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz", "integrity": "sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==", - "dev": true, "requires": { "@rollup/pluginutils": "^4.1.0", "find-cache-dir": "^3.3.1", @@ -42634,7 +19759,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -42645,7 +19769,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -42653,14 +19776,12 @@ "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" } } }, @@ -43461,52 +20582,6 @@ } } }, - "single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", - "peer": true, - "requires": { - "string-width": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "peer": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "peer": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "peer": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, "simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -43784,206 +20859,59 @@ "dependencies": { "debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - }, - "socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", - "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", - "requires": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - } - } - }, - "socket.io-client-next": { - "version": "npm:socket.io-client@3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", - "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", - "requires": { - "@types/component-emitter": "^1.2.10", - "backo2": "~1.0.2", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-client": "~4.1.0", - "parseuri": "0.0.6", - "socket.io-parser": "~4.0.4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "engine.io-client": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", - "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", - "requires": { - "base64-arraybuffer": "0.1.4", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.1", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", - "requires": { - "base64-arraybuffer": "0.1.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" - } - } - }, - "socket.io-next": { - "version": "npm:socket.io@3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", - "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - }, - "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" + "ms": "^2.1.1" } }, - "engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" + }, + "socket.io-client": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", + "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "engine.io-client": "~3.5.0", + "has-binary2": "~1.0.2", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "base64-arraybuffer": "0.1.4" + "ms": "2.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" - }, "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", + "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", "requires": { - "@types/component-emitter": "^1.2.10", "component-emitter": "~1.3.0", - "debug": "~4.3.1" + "debug": "~3.1.0", + "isarray": "2.0.1" } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" } } }, @@ -44052,8 +20980,7 @@ "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" } } }, @@ -44131,8 +21058,7 @@ "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" } } }, @@ -44217,8 +21143,7 @@ "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "sparse-array": { "version": "1.3.2", @@ -44253,12 +21178,6 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "peer": true - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -44483,13 +21402,16 @@ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true }, "string-length": { "version": "4.0.2", @@ -44543,6 +21465,14 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -44567,11 +21497,19 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "peer": true, + "dev": true, "requires": { "get-stdin": "^4.0.1" } @@ -44639,16 +21577,6 @@ } } }, - "sumchecker": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", - "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", - "peer": true, - "requires": { - "debug": "^2.2.0", - "es6-promise": "^4.0.5" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -45043,12 +21971,6 @@ "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", "dev": true }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "peer": true - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -45290,7 +22212,16 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "peer": true + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } }, "truncate-utf8-bytes": { "version": "1.0.2", @@ -45418,7 +22349,8 @@ "typescript": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", - "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==" + "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", + "dev": true }, "typical": { "version": "6.0.1", @@ -45964,6 +22896,336 @@ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.1.1.tgz", "integrity": "sha512-Czi3fG883e96T4DLEPRvufrF2ydhOOW1+1a6c3gNjH2aIh50DNFBdfwh2AKoOf1rXvpvavAoA11Qdq9+BKjE0Q==" }, + "web3": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.2.tgz", + "integrity": "sha512-aapKLdO8t7Cos6tZLeeQUtCJvTiPMlLcHsHHDLSBZ/VaJEucSTxzun32M8sp3BmF4waDEmhY+iyUM1BKvtAcVQ==", + "requires": { + "web3-bzz": "1.5.2", + "web3-core": "1.5.2", + "web3-eth": "1.5.2", + "web3-eth-personal": "1.5.2", + "web3-net": "1.5.2", + "web3-shh": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-bzz": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.2.tgz", + "integrity": "sha512-W/sPCdA+XQ9duUYKHAwf/g69cbbV8gTCRsa1MpZwU7spXECiyJ2EvD/QzAZ+UpJk3GELXFF/fUByeZ3VRQKF2g==", + "requires": { + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40" + }, + "dependencies": { + "@types/node": { + "version": "12.20.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.25.tgz", + "integrity": "sha512-hcTWqk7DR/HrN9Xe7AlJwuCaL13Vcd9/g/T54YrJz4Q3ESM5mr33YCzW2bOfzSIc3aZMeGBvbLGvgN6mIJ0I5Q==" + } + } + }, + "web3-core": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.2.tgz", + "integrity": "sha512-sebMpQbg3kbh3vHUbHrlKGKOxDWqjgt8KatmTBsTAWj/HwWYVDzeX+2Q84+swNYsm2DrTBVFlqTErFUwPBvyaA==", + "requires": { + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-core-requestmanager": "1.5.2", + "web3-utils": "1.5.2" + }, + "dependencies": { + "@types/node": { + "version": "12.20.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.25.tgz", + "integrity": "sha512-hcTWqk7DR/HrN9Xe7AlJwuCaL13Vcd9/g/T54YrJz4Q3ESM5mr33YCzW2bOfzSIc3aZMeGBvbLGvgN6mIJ0I5Q==" + } + } + }, + "web3-core-helpers": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.2.tgz", + "integrity": "sha512-U7LJoeUdQ3aY9t5gU7t/1XpcApsWm+4AcW5qKl/44ZxD44w0Dmsq1c5zJm3GuLr/a9MwQfXK4lpmvxVQWHHQRg==", + "requires": { + "web3-eth-iban": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-core-method": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.2.tgz", + "integrity": "sha512-/mC5t9UjjJoQmJJqO5nWK41YHo+tMzFaT7Tp7jDCQsBkinE68KsUJkt0jzygpheW84Zra0DVp6q19gf96+cugg==", + "requires": { + "@ethereumjs/common": "^2.4.0", + "@ethersproject/transactions": "^5.0.0-beta.135", + "web3-core-helpers": "1.5.2", + "web3-core-promievent": "1.5.2", + "web3-core-subscriptions": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-core-promievent": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.2.tgz", + "integrity": "sha512-5DacbJXe98ozSor7JlkTNCy6G8945VunRRkPxMk98rUrg60ECVEM/vuefk1atACzjQsKx6tmLZuHxbJQ64TQeQ==", + "requires": { + "eventemitter3": "4.0.4" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "web3-core-requestmanager": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.2.tgz", + "integrity": "sha512-oRVW9OrAsXN2JIZt68OEg1Mb1A9a/L3JAGMv15zLEFEnJEGw0KQsGK1ET2kvZBzvpFd5G0EVkYCnx7WDe4HSNw==", + "requires": { + "util": "^0.12.0", + "web3-core-helpers": "1.5.2", + "web3-providers-http": "1.5.2", + "web3-providers-ipc": "1.5.2", + "web3-providers-ws": "1.5.2" + } + }, + "web3-core-subscriptions": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.2.tgz", + "integrity": "sha512-hapI4rKFk22yurtIv0BYvkraHsM7epA4iI8Np+HuH6P9DD0zj/llaps6TXLM9HyacLBRwmOLZmr+pHBsPopUnQ==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.2" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "web3-eth": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.2.tgz", + "integrity": "sha512-DwWQ6TCOUqvYyo7T20S7HpQDPveNHNqOn2Q2F3E8ZFyEjmqT4XsGiwvm08kB/VgQ4e/ANyq/i8PPFSYMT8JKHg==", + "requires": { + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-core-subscriptions": "1.5.2", + "web3-eth-abi": "1.5.2", + "web3-eth-accounts": "1.5.2", + "web3-eth-contract": "1.5.2", + "web3-eth-ens": "1.5.2", + "web3-eth-iban": "1.5.2", + "web3-eth-personal": "1.5.2", + "web3-net": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-eth-abi": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.2.tgz", + "integrity": "sha512-P3bJbDR5wib4kWGfVeBKBVi27T+AiHy4EJxYM6SMNbpm3DboLDdisu9YBd6INMs8rzxgnprBbGmmyn4jKIDKAA==", + "requires": { + "@ethersproject/abi": "5.0.7", + "web3-utils": "1.5.2" + } + }, + "web3-eth-accounts": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.2.tgz", + "integrity": "sha512-F8mtzxgEhxfLc66vPi0Gqd6mpscvvk7Ua575bsJ1p9J2X/VtuKgDgpWcU4e4LKeROQ+ouCpAG9//0j9jQuij3A==", + "requires": { + "@ethereumjs/common": "^2.3.0", + "@ethereumjs/tx": "^3.2.1", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.0.10", + "scrypt-js": "^3.0.1", + "uuid": "3.3.2", + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-utils": "1.5.2" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } + } + }, + "web3-eth-contract": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.2.tgz", + "integrity": "sha512-4B8X/IPFxZCTmtENpdWXtyw5fskf2muyc3Jm5brBQRb4H3lVh1/ZyQy7vOIkdphyaXu4m8hBLHzeyKkd37mOUg==", + "requires": { + "@types/bn.js": "^4.11.5", + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-core-promievent": "1.5.2", + "web3-core-subscriptions": "1.5.2", + "web3-eth-abi": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-eth-ens": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.2.tgz", + "integrity": "sha512-/UrLL42ZOCYge+BpFBdzG8ICugaRS4f6X7PxJKO+zAt+TwNgBpjuWfW/ZYNcuqJun/ZyfcTuj03TXqA1RlNhZQ==", + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-promievent": "1.5.2", + "web3-eth-abi": "1.5.2", + "web3-eth-contract": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-eth-iban": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.2.tgz", + "integrity": "sha512-C04YDXuSG/aDwOHSX+HySBGb0KraiAVt+/l1Mw7y/fCUrKC/K0yYzMYqY/uYOcvLtepBPsC4ZfUYWUBZ2PO8Vg==", + "requires": { + "bn.js": "^4.11.9", + "web3-utils": "1.5.2" + } + }, + "web3-eth-personal": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.2.tgz", + "integrity": "sha512-nH5N2GiVC0C5XeMEKU16PeFP3Hb3hkPvlR6Tf9WQ+pE+jw1c8eaXBO1CJQLr15ikhUF3s94ICyHcfjzkDsmRbA==", + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.5.2", + "web3-core-helpers": "1.5.2", + "web3-core-method": "1.5.2", + "web3-net": "1.5.2", + "web3-utils": "1.5.2" + }, + "dependencies": { + "@types/node": { + "version": "12.20.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.25.tgz", + "integrity": "sha512-hcTWqk7DR/HrN9Xe7AlJwuCaL13Vcd9/g/T54YrJz4Q3ESM5mr33YCzW2bOfzSIc3aZMeGBvbLGvgN6mIJ0I5Q==" + } + } + }, + "web3-net": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.5.2.tgz", + "integrity": "sha512-VEc9c+jfoERhbJIxnx0VPlQDot8Lm4JW/tOWFU+ekHgIiu2zFKj5YxhURIth7RAbsaRsqCb79aE+M0eI8maxVQ==", + "requires": { + "web3-core": "1.5.2", + "web3-core-method": "1.5.2", + "web3-utils": "1.5.2" + } + }, + "web3-providers-http": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.2.tgz", + "integrity": "sha512-dUNFJc9IMYDLZnkoQX3H4ZjvHjGO6VRVCqrBrdh84wPX/0da9dOA7DwIWnG0Gv3n9ybWwu5JHQxK4MNQ444lyA==", + "requires": { + "web3-core-helpers": "1.5.2", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.2.tgz", + "integrity": "sha512-SJC4Sivt4g9LHKlRy7cs1jkJgp7bjrQeUndE6BKs0zNALKguxu6QYnzbmuHCTFW85GfMDjhvi24jyyZHMnBNXQ==", + "requires": { + "oboe": "2.1.5", + "web3-core-helpers": "1.5.2" + } + }, + "web3-providers-ws": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.2.tgz", + "integrity": "sha512-xy9RGlyO8MbJDuKv2vAMDkg+en+OvXG0CGTCM2BTl6l1vIdHpCa+6A/9KV2rK8aU9OBZ7/Pf+Y19517kHVl9RA==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.5.2", + "websocket": "^1.0.32" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "web3-shh": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.2.tgz", + "integrity": "sha512-wOxOcYt4Sa0AHAI8gG7RulCwVuVjSRS/M/AbFsea3XfJdN6sU13/syY7OdZNjNYuKjYTzxKYrd3dU/K2iqffVw==", + "requires": { + "web3-core": "1.5.2", + "web3-core-method": "1.5.2", + "web3-core-subscriptions": "1.5.2", + "web3-net": "1.5.2" + } + }, + "web3-utils": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.2.tgz", + "integrity": "sha512-quTtTeQJHYSxAwIBOCGEcQtqdVcFWX6mCFNoqnp+mRbq+Hxbs8CGgO/6oqfBx4OvxIOfCpgJWYVHswRXnbEu9Q==", + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "webcrypto": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/webcrypto/-/webcrypto-0.1.1.tgz", + "integrity": "sha512-BAvoatS38TbHdyt42ECLroi27NmDh5iea5l5rHC6nZTZjlbJlndrT0FoIiEq7fmPHpmNtP0lMFKVMEKZQFIrGA==", + "requires": { + "crypto-browserify": "^3.10.0", + "detect-node": "^2.0.3" + } + }, "webcrypto-core": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.2.1.tgz", @@ -46186,40 +23448,10 @@ "typedarray-to-buffer": "^3.1.5" } }, - "wrtc": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/wrtc/-/wrtc-0.4.7.tgz", - "integrity": "sha512-P6Hn7VT4lfSH49HxLHcHhDq+aFf/jd9dPY7lDHeFhZ22N3858EKuwm2jmnlPzpsRGEPaoF6XwkcxY5SYnt4f/g==", - "peer": true, - "requires": { - "domexception": "^1.0.1", - "node-pre-gyp": "^0.13.0" - }, - "dependencies": { - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "optional": true, - "peer": true, - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "optional": true, - "peer": true - } - } - }, "ws": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "requires": {} + "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==" }, "xdg-basedir": { "version": "4.0.0", @@ -46395,16 +23627,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "peer": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "yeast": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", diff --git a/src/core/PerspectivismCore.ts b/src/core/PerspectivismCore.ts index 57caffd4f..87f3f0de2 100644 --- a/src/core/PerspectivismCore.ts +++ b/src/core/PerspectivismCore.ts @@ -46,8 +46,6 @@ export default class PerspectivismCore { #perspectivesController?: PerspectivesController #languageController?: LanguageController - #languageFactory?: LanguageFactory - #entanglementProofController?: EntanglementProofController constructor(config: Config.CoreConfig) { diff --git a/src/core/graphQL-interface/GraphQL.ts b/src/core/graphQL-interface/GraphQL.ts index 3ca888fde..6ef027d2a 100644 --- a/src/core/graphQL-interface/GraphQL.ts +++ b/src/core/graphQL-interface/GraphQL.ts @@ -133,21 +133,18 @@ function createResolvers(core: PerspectivismCore) { getEntanglementProofs: (parent, args, context, info) => { return core.entanglementProofController.getEntanglementProofs(); }, - + //@ts-ignore getTrustedAgents: (parent, args, context, info) => { return core.runtimeService.getTrustedAgents(); }, - //@ts-ignore runtimeKnownLinkLanguageTemplates: () => { return core.runtimeService.knowLinkLanguageTemplates(); }, - //@ts-ignore runtimeFriends: () => { return core.runtimeService.friends(); }, - runtimeHcAgentInfos: async () => { return JSON.stringify(await core.holochainRequestAgentInfos()) } @@ -170,6 +167,7 @@ function createResolvers(core: PerspectivismCore) { const { deviceKey } = args; return core.entanglementProofController.signDeviceKey(deviceKey); }, + //@ts-ignore addTrustedAgents: (parent, args, context, info) => { const { agents } = args; core.runtimeService.addTrustedAgents(agents); @@ -193,7 +191,7 @@ function createResolvers(core: PerspectivismCore) { core.runtimeService.removeKnownLinkLanguageTemplates(addresses); return core.runtimeService.knowLinkLanguageTemplates(); }, - //@ts-ignore + //@ts-ignore runtimeAddFriends: (parent, args, context, info) => { const { dids } = args; core.runtimeService.addFriends(dids); From bf90cbbeb14b690df4ade3266b0a58607416079e Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 17 Sep 2021 17:35:47 +0100 Subject: [PATCH 011/722] use new centralized language language --- scripts/get-builtin-test-langs.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/get-builtin-test-langs.js b/scripts/get-builtin-test-langs.js index 7ba1fbc5c..71930b2a0 100644 --- a/scripts/get-builtin-test-langs.js +++ b/scripts/get-builtin-test-langs.js @@ -12,8 +12,7 @@ const languages = { }, languages: { targetDnaName: "languages", - dna: "https://github.com/perspect3vism/language-persistence/releases/download/0.0.6/languages.dna", - bundle: "https://github.com/perspect3vism/language-persistence/releases/download/0.0.6/bundle.js", + bundle: "https://github.com/perspect3vism/language-persistence/releases/download/0.0.7/bundle.js", }, "neighbourhood-store": { targetDnaName: "neighbourhood-store", From ee88f3ceb58632a74cbd40ac0475d1e05d89e3e5 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 17 Sep 2021 18:26:03 +0100 Subject: [PATCH 012/722] start dapp server with executor start --- src/core/DAppServer.ts | 2 +- src/main.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/DAppServer.ts b/src/core/DAppServer.ts index 47b52609d..c7edadd2c 100644 --- a/src/core/DAppServer.ts +++ b/src/core/DAppServer.ts @@ -4,7 +4,7 @@ import fs from "fs"; export default function runDAppServer(port: number) { http.createServer(function (request, response) { - + console.log("DAppServer request: ", request.url); let filePath = request.url; if (filePath == '/') { filePath = path.join(__dirname, "../../public", "index.html"); diff --git a/src/main.ts b/src/main.ts index 91d7801ee..7bd19c435 100644 --- a/src/main.ts +++ b/src/main.ts @@ -15,6 +15,7 @@ interface OuterConfig { appBuiltInLangs: string[] | null, appLangAliases: object | null, mocks: boolean, + dAppPort?: number, gqlPort?: number, hcPortAdmin?: number, hcPortApp?: number, @@ -32,7 +33,7 @@ export async function init(config: OuterConfig): Promise { resourcePath, appDataPath, appDefaultLangPath, ad4mBootstrapLanguages, ad4mBootstrapFixtures, appBuiltInLangs, appLangAliases, mocks, - gqlPort, hcPortAdmin, hcPortApp, + dAppPort, gqlPort, hcPortAdmin, hcPortApp, ipfsSwarmPort, ipfsRepoPath, hcUseLocalProxy, @@ -43,6 +44,7 @@ export async function init(config: OuterConfig): Promise { if(!gqlPort) gqlPort = 4000 if(!hcPortAdmin) hcPortAdmin = 2000 if(!hcPortApp) hcPortApp = 1337 + if(!dAppPort) dAppPort = 3333 if(hcUseMdns === undefined) hcUseMdns = false if(hcUseProxy === undefined) hcUseProxy = true if(hcUseBootstrap === undefined) hcUseBootstrap = true @@ -97,6 +99,7 @@ export async function init(config: OuterConfig): Promise { await core.initServices({ hcPortAdmin, hcPortApp, ipfsSwarmPort, ipfsRepoPath, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap }); console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); await core.startGraphQLServer(gqlPort, mocks) + core.startDAppServer(dAppPort); console.log("\x1b[32m", "AD4M init complete", "\x1b[0m"); return core From 10adf30661b69d0e132296ddf3d13c13b93699ba Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 17 Sep 2021 18:49:40 +0100 Subject: [PATCH 013/722] use ad4mClient on dapp and provide mechanism for logging-in if user is not already --- dapp/App.svelte | 93 +- dapp/ethereum.js | 2 +- package-lock.json | 26672 +++++++++++++++++++++----------- package.json | 12 +- src/tests/integration.test.ts | 120 +- 5 files changed, 18030 insertions(+), 8869 deletions(-) diff --git a/dapp/App.svelte b/dapp/App.svelte index b48fe571a..5e70a0b20 100644 --- a/dapp/App.svelte +++ b/dapp/App.svelte @@ -11,27 +11,12 @@ } from "@apollo/client/core"; import { gql } from "@apollo/client"; import { WebSocketLink } from '@apollo/client/link/ws'; - - const AGENT_SUBITEMS = ` - did - directMessageLanguage - perspective { - links { - author, timestamp, - proof { - signature, key, valid, invalid - } - data { - source, predicate, target - } - } - } - `; - const gqlMe = gql`query agent { agent { ${AGENT_SUBITEMS} } }`; + import { Ad4mClient } from "@perspect3vism/ad4m"; let currentAccount = undefined; let spinner = false; let showSigning = false; + let password = undefined; function constructApolloClient(port) { return new ApolloClient({ @@ -42,8 +27,16 @@ cache: new InMemoryCache(), }); } - //TODO: we should use ad4m client here but I get compilation errors so for now I use standard apollo client const apolloClient = constructApolloClient(4000) + const ad4mClient = new Ad4mClient(apolloClient) + + let signedIn = false; + let did = null; + + ad4mClient.agent.status().then(result => { + signedIn = result.isUnlocked; + did = result.did; + }) function handleAccountsChanged(accounts) { console.log('Accounts changed: ' + accounts) @@ -64,37 +57,55 @@ } function signDid() { - apolloClient.query({query: gqlMe}).then(result => { - const { agent } = result.data; - const did = agent.did; - sign(currentAccount, did).then(result => { - const { data, signature, r, s, v } = result; - console.log("got signature back", signature); - }); + sign(currentAccount, did).then(result => { + const { data, signature, r, s, v } = result; + console.log("got signature back", signature); }); } + function unlock() { + ad4mClient.agent.unlock(password).then(result => { + console.log("Got unlock result", result); + if (result.isUnlocked == true) { + signedIn = true; + } else { + signedIn = false; + console.error("Incorrect password!"); + } + }) + } + startEthereum(handleAccountsChanged)
- {#if currentAccount==undefined} -

Get Started

-

- Welcome to AD4M, thanks for being here. Lets connect all the dapps :) -

Sign into MetaMask 

- -
-

Sign into WalletConnect

- + {#if signedIn==true} + {#if currentAccount==undefined} +

Get Started

+

+ Welcome to AD4M, thanks for being here. Lets connect all the dapps :) +

Sign into MetaMask 

+ +
+

Sign into WalletConnect

+ + {:else} +

Sign Some Shit

+ + {/if} {:else} -

Sign Some Shit

- {/if}
diff --git a/dapp/ethereum.js b/dapp/ethereum.js index 1c4e1598d..9db7b9dab 100644 --- a/dapp/ethereum.js +++ b/dapp/ethereum.js @@ -39,7 +39,7 @@ const domain = [ ]; const didEntangle = [ - { name: "did", type: "string" }, + { name: "did", type: "string" } ]; export async function sign(signer, did) { diff --git a/package-lock.json b/package-lock.json index 1418d692f..38ea6f114 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,54 @@ "ts-invariant": "^0.7.0", "tslib": "^1.10.0", "zen-observable": "^0.8.14" + }, + "dependencies": { + "@wry/equality": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", + "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", + "dev": true, + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true + }, + "ts-invariant": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", + "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "@apollo/protobufjs": { @@ -423,52 +471,6 @@ "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@babel/parser": { @@ -972,16 +974,6 @@ "pify": "^4.0.1", "semver": "^5.6.0" } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, @@ -1288,6 +1280,13 @@ "integrity": "sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA==", "requires": { "@types/node": ">=12.12.47" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@hapi/accept": { @@ -1622,6 +1621,12 @@ "esprima": "^4.0.0" } }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -1637,29 +1642,25 @@ "dev": true }, "@jest/console": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.1.1.tgz", - "integrity": "sha512-VpQJRsWSeAem0zpBjeRtDbcD6DlbNoK11dNYt+PSQ+DDORh9q2/xyEpErfwgnLjWX0EKkSZmTGx/iH9Inzs6vQ==", - "dev": true, + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", + "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.1.1", - "jest-util": "^27.1.1", - "slash": "^3.0.0" + "@jest/source-map": "^24.9.0", + "chalk": "^2.0.1", + "slash": "^2.0.0" } }, "@jest/core": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.1.1.tgz", - "integrity": "sha512-oCkKeTgI0emznKcLoq5OCD0PhxCijA4l7ejDnWW3d5bgSi+zfVaLybVqa+EQOxpNejQWtTna7tmsAXjMN9N43Q==", + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.2.0.tgz", + "integrity": "sha512-E/2NHhq+VMo18DpKkoty8Sjey8Kps5Cqa88A8NP757s6JjYqPdioMuyUBhDiIOGCdQByEp0ou3jskkTszMS0nw==", "dev": true, "requires": { - "@jest/console": "^27.1.1", - "@jest/reporters": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", + "@jest/console": "^27.2.0", + "@jest/reporters": "^27.2.0", + "@jest/test-result": "^27.2.0", + "@jest/transform": "^27.2.0", "@jest/types": "^27.1.1", "@types/node": "*", "ansi-escapes": "^4.2.1", @@ -1668,18 +1669,18 @@ "exit": "^0.1.2", "graceful-fs": "^4.2.4", "jest-changed-files": "^27.1.1", - "jest-config": "^27.1.1", - "jest-haste-map": "^27.1.1", - "jest-message-util": "^27.1.1", + "jest-config": "^27.2.0", + "jest-haste-map": "^27.2.0", + "jest-message-util": "^27.2.0", "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-resolve-dependencies": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "jest-watcher": "^27.1.1", + "jest-resolve": "^27.2.0", + "jest-resolve-dependencies": "^27.2.0", + "jest-runner": "^27.2.0", + "jest-runtime": "^27.2.0", + "jest-snapshot": "^27.2.0", + "jest-util": "^27.2.0", + "jest-validate": "^27.2.0", + "jest-watcher": "^27.2.0", "micromatch": "^4.0.4", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", @@ -1687,1168 +1688,7250 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "@jest/console": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", + "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.0", + "jest-util": "^27.2.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", + "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "dev": true, + "requires": { + "@jest/console": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, - "jest-config": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.1.tgz", - "integrity": "sha512-2iSd5zoJV4MsWPcLCGwUVUY/j6pZXm4Qd3rnbCtrd9EHNTg458iHw8PZztPQXfxKBKJxLfBk7tbZqYF8MGtxJA==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "jest-haste-map": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", + "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.1.1", "@jest/types": "^27.1.1", - "babel-jest": "^27.1.1", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.1.1", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.1.1", "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", "micromatch": "^4.0.4", - "pretty-format": "^27.1.1" + "walker": "^1.0.7" } }, - "pretty-format": { + "jest-message-util": { "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", "dev": true, "requires": { + "@babel/code-frame": "^7.12.13", "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "@jest/environment": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.1.1.tgz", - "integrity": "sha512-+y882/ZdxhyqF5RzxIrNIANjHj991WH7jifdcplzMDosDUOyCACFYUyVTBGbSTocbU+s1cesroRzkwi8hZ9SHg==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1" - } - }, - "@jest/fake-timers": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.1.1.tgz", - "integrity": "sha512-u8TJ5VlsVYTsGFatoyIae2l25pku4Bu15QCPTx2Gs5z+R//Ee3tHN85462Vc9yGVcdDvgADbqNkhOLxbEwPjMQ==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.1.1", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1" - } - }, - "@jest/globals": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.1.1.tgz", - "integrity": "sha512-Q3JcTPmY+DAEHnr4MpnBV3mwy50EGrTC6oSDTNnW7FNGGacTJAfpWNk02D7xv422T1OzK2A2BKx+26xJOvHkyw==", - "dev": true, - "requires": { - "@jest/environment": "^27.1.1", - "@jest/types": "^27.1.1", - "expect": "^27.1.1" - } - }, - "@jest/reporters": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.1.1.tgz", - "integrity": "sha512-cEERs62n1P4Pqox9HWyNOEkP57G95aK2mBjB6D8Ruz1Yc98fKH53b58rlVEnsY5nLmkLNZk65fxNi9C0Yds/8w==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.0.0" - } - }, - "@jest/source-map": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.1.1.tgz", - "integrity": "sha512-8vy75A0Jtfz9DqXFUkjC5Co/wRla+D7qRFdShUY8SbPqBS3GBx3tpba7sGKFos8mQrdbe39n+c1zgVKtarfy6A==", - "dev": true, - "requires": { - "@jest/console": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.1.1.tgz", - "integrity": "sha512-l8zD3EdeixvwmLNlJoMX3hhj8iIze95okj4sqmBzOq/zW8gZLElUveH4bpKEMuR+Nweazjlwc7L6g4C26M/y6Q==", - "dev": true, - "requires": { - "@jest/test-result": "^27.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-runtime": "^27.1.1" - } - }, - "@jest/transform": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.1.1.tgz", - "integrity": "sha512-qM19Eu75U6Jc5zosXXVnq900Nl9JDpoGaZ4Mg6wZs7oqbu3heYSMOZS19DlwjlhWdfNRjF4UeAgkrCJCK3fEXg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.1.1", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.1.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" - }, - "@material/animation": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-11.0.0.tgz", - "integrity": "sha512-pAJRl0ySvfOzqyGUme27tPf1LbqrjSTK4g5kngpXOPAIQdYYx89QLAfcqHONSpvXO7/WP+Kc9zJ3WWxbUaG8Wg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", + "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "leven": "^3.1.0", + "pretty-format": "^27.2.0" + } + }, + "jest-worker": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", + "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true - } - } - }, - "@material/base": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-11.0.0.tgz", - "integrity": "sha512-GTybYdiWBoEyYQ3he8cEeuXe5mPq2peFX41rBsMrs516TGDxrVJrEAKNedydhtpfRBsZRreTXMLZtbGrZzfIFQ==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true } } }, - "@material/button": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/button/-/button-11.0.0.tgz", - "integrity": "sha512-KqqxEcsj8jBkV1yNEiPoHiB1AJBa/1OGm7H+hF+C3RUTIrRLew8IuRL1ZY38ukdHvhno1/qmVMKOs6ui0mxjlg==", + "@jest/environment": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.2.0.tgz", + "integrity": "sha512-iPWmQI0wRIYSZX3wKu4FXHK4eIqkfq6n1DCDJS+v3uby7SOXrHvX4eiTBuEdSvtDRMTIH2kjrSkjHf/F9JIYyQ==", "dev": true, "requires": { - "@material/density": "^11.0.0", - "@material/dom": "^11.0.0", - "@material/elevation": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/ripple": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/shape": "^11.0.0", - "@material/theme": "^11.0.0", - "@material/touch-target": "^11.0.0", - "@material/typography": "^11.0.0", - "tslib": "^2.1.0" + "@jest/fake-timers": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/node": "*", + "jest-mock": "^27.1.1" }, "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "@jest/fake-timers": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.0.tgz", + "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@sinonjs/fake-timers": "^7.0.2", + "@types/node": "*", + "jest-message-util": "^27.2.0", + "jest-mock": "^27.1.1", + "jest-util": "^27.2.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", + "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*" + } + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "@material/density": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/density/-/density-11.0.0.tgz", - "integrity": "sha512-FuSx0UukH7p9cIAxEg78zwL5iYuoa/YovyHuuEEudyhWsRH+u0KBSQlYWr+ykg//qZF6urlDrVmu7WAKi1SiCw==", - "dev": true, + "@jest/fake-timers": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", + "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } + "@jest/types": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0" } }, - "@material/dom": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-11.0.0.tgz", - "integrity": "sha512-LZdg6VmYnMXc/Ct/GdQ22o4m3UgjhZYQIrwu9Iebqchx0Vd2OTmcFN5nArHSCSgUEhpjpPlkbZmjOpeOAwiKZg==", + "@jest/globals": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.2.0.tgz", + "integrity": "sha512-raqk9Gf9WC3hlBa57rmRmJfRl9hom2b+qEE/ifheMtwn5USH5VZxzrHHOZg0Zsd/qC2WJ8UtyTwHKQAnNlDMdg==", "dev": true, "requires": { - "@material/feature-targeting": "^11.0.0", - "tslib": "^2.1.0" + "@jest/environment": "^27.2.0", + "@jest/types": "^27.1.1", + "expect": "^27.2.0" }, "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "dev": true, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "@material/elevation": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-11.0.0.tgz", - "integrity": "sha512-mgrUSBAdXJ1+VS/SWnu/gr9/nq7P1q5X3aDmoom2EPKauEeKhuAHjABI5duxHOrliZM3mK9VLO56D/tszb7spw==", + "@jest/reporters": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.2.0.tgz", + "integrity": "sha512-7wfkE3iRTLaT0F51h1mnxH3nQVwDCdbfgXiLuCcNkF1FnxXLH9utHqkSLIiwOTV1AtmiE0YagHbOvx4rnMP/GA==", "dev": true, "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "@material/feature-targeting": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-11.0.0.tgz", - "integrity": "sha512-7/jdaHm7C16Eq02tDQ1iI+giWKgk+QRNWFrmGKzHfXbU604XwY/eSLSiVS8QI01vx9QZ0aO9K84m0yhQQNQQtg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.2.0", + "@jest/test-result": "^27.2.0", + "@jest/transform": "^27.2.0", + "@jest/types": "^27.1.1", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^27.2.0", + "jest-resolve": "^27.2.0", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.0.0" }, "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "@jest/console": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", + "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.0", + "jest-util": "^27.2.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", + "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "dev": true, + "requires": { + "@jest/console": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true - } - } - }, - "@material/floating-label": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-11.0.0.tgz", - "integrity": "sha512-sY/ijV06cU0y9+1OB122d6z2AuxLzjQgQGVq9dFLoVRL6jhV2HgOxGF/3cvZsgGGsv2liXagkmQ02jBV1ypvgA==", - "dev": true, - "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/dom": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/theme": "^11.0.0", - "@material/typography": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true - } - } - }, - "@material/line-ripple": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-11.0.0.tgz", - "integrity": "sha512-ws0p28hfG5P7RuCJZhHBDhPd/pYusszwRWMa1xkATxCjdCDc9hC9RIsUb6eIG9/iwpYnLNRvIoR5iF+01rVhow==", - "dev": true, - "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true - } - } - }, - "@material/notched-outline": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-11.0.0.tgz", - "integrity": "sha512-GwYFIRA6raFljNARmEpIcIjHztjKD8wcDf+6xl1WezsprGd/Qdzq59/VX76y1et8ZkkL0+fE+4dEaVpCHq/e8A==", - "dev": true, - "requires": { - "@material/base": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/floating-label": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/shape": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "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==", + "dev": true, + "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==", "dev": true - } - } - }, - "@material/ripple": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-11.0.0.tgz", - "integrity": "sha512-672zAsYaL8aS861VgfEPL4sFMkFe0psiSc+4DfUTq7Nanl4e1gcarzzHZAn5IExUNk3/5QybDiXV+dbaL/0NjQ==", - "dev": true, - "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/dom": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true - } - } - }, - "@material/rtl": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-11.0.0.tgz", - "integrity": "sha512-FcS8+N9MhnC0Wdd34O2yCC/5ylIwkfHjV5pbmHyEtb4YXoWngnPIxgpOr5PsUv95WSQBmeqWCRJDwS+sGZHoKQ==", - "dev": true, - "requires": { - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true - } - } - }, - "@material/shape": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-11.0.0.tgz", - "integrity": "sha512-O9/Dt/9Nbum1IvxRd4u8gCF4ghk9E55UNp2TGe+RN43zpTUbChh2raOFr3sQeRwLIzlb4wstUG9AxmdktrkDUQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true - } - } - }, - "@material/textfield": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-11.0.0.tgz", - "integrity": "sha512-7GwZCJplxQpdExNO8K3IOPH/SniCd4bcvOuKGYWjW1irOLYVX2Om0e7X2q70XWvD/B85Rb8ZaPXqx3EJiwNrvQ==", - "dev": true, - "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/density": "^11.0.0", - "@material/dom": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/floating-label": "^11.0.0", - "@material/line-ripple": "^11.0.0", - "@material/notched-outline": "^11.0.0", - "@material/ripple": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/shape": "^11.0.0", - "@material/theme": "^11.0.0", - "@material/typography": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "@material/theme": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-11.0.0.tgz", - "integrity": "sha512-GnQI8sd2wHFD3AvmhpyRaH5o9D5Shobs1xDH4FdRU9+c+FNNqouZMDzyM6UpCX4700DzqvE7l0/1LjzB7ve7Lg==", - "dev": true, - "requires": { - "@material/feature-targeting": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "jest-haste-map": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", + "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", + "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true - } - } - }, - "@material/touch-target": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-11.0.0.tgz", - "integrity": "sha512-S1XPYj3Bnkw26nFdYRZ0BHcNLfizF8HBeX9+OR7KuJUKaFB6CN01CtyEmDU3XNI0n140KjMtJnsZykWZommolQ==", - "dev": true, - "requires": { - "@material/base": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true - } - } - }, - "@material/typography": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-11.0.0.tgz", - "integrity": "sha512-i9IGO/ZsF+YnqC2+PpJapt/8hSXOKFXaqv6B9uUr+iQ8GD4bEFpxm5kChzH918wJpCHvxbTYbnR6buaF9nkjCQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "@mattrglobal/bbs-signatures": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", - "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", - "requires": { - "@mattrglobal/node-bbs-signatures": "0.11.0" - } - }, - "@mattrglobal/bls12381-key-pair": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", - "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", + "@jest/source-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", + "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", "requires": { - "@mattrglobal/bbs-signatures": "0.5.0", - "bs58": "4.0.1", - "rfc4648": "1.4.0" + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" } }, - "@mattrglobal/node-bbs-signatures": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", - "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", - "optional": true, + "@jest/test-result": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", + "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", "requires": { - "neon-cli": "0.4.0", - "node-pre-gyp": "0.14.0" + "@jest/console": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/istanbul-lib-coverage": "^2.0.0" } }, - "@metamask/detect-provider": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz", - "integrity": "sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ==" - }, - "@motrix/nat-api": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", - "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", + "@jest/test-sequencer": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.2.0.tgz", + "integrity": "sha512-PrqarcpzOU1KSAK7aPwfL8nnpaqTMwPe7JBPnaOYRDSe/C6AoJiL5Kbnonqf1+DregxZIRAoDg69R9/DXMGqXA==", + "dev": true, "requires": { - "async": "^3.2.0", - "debug": "^4.3.1", - "default-gateway": "^6.0.3", - "request": "^2.88.2", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.4.23" + "@jest/test-result": "^27.2.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.2.0", + "jest-runtime": "^27.2.0" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "@jest/console": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", + "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "dev": true, "requires": { - "ms": "2.1.2" + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.0", + "jest-util": "^27.2.0", + "slash": "^3.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@msgpack/msgpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", - "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==" - }, - "@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "@peculiar/asn1-schema": { - "version": "2.0.38", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.38.tgz", - "integrity": "sha512-zZ64UpCTm9me15nuCpPgJghSdbEm8atcDQPCyK+bKXjZAQ1735NCZXCSCfbckbQ4MH36Rm9403n/qMq77LFDzQ==", - "requires": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.0", - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "requires": { - "tslib": "^2.0.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "@jest/test-result": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", + "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "dev": true, + "requires": { + "@jest/console": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-haste-map": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", + "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", + "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "@peculiar/webcrypto": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz", - "integrity": "sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ==", + "@jest/transform": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.2.0.tgz", + "integrity": "sha512-Q8Q/8xXIZYllk1AF7Ou5sV3egOZsdY/Wlv09CSbcexBRcC1Qt6lVZ7jRFAZtbHsEEzvOCyFEC4PcrwKwyjXtCg==", + "dev": true, "requires": { - "@peculiar/asn1-schema": "^2.0.32", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.1.6", - "tslib": "^2.2.0", - "webcrypto-core": "^1.2.0" + "@babel/core": "^7.1.0", + "@jest/types": "^27.1.1", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.2.0", + "jest-regex-util": "^27.0.6", + "jest-util": "^27.2.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" }, "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "@perspect3vism/ad4m": { - "version": "file:../ad4m" - }, - "@polka/url": { - "version": "1.0.0-next.20", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.20.tgz", - "integrity": "sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-haste-map": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", + "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", + "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" } }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + "@josephg/resolvable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", + "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + "@leichtgewicht/ip-codec": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", + "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, - "@rollup/plugin-commonjs": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", - "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", + "@material/animation": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-11.0.0.tgz", + "integrity": "sha512-pAJRl0ySvfOzqyGUme27tPf1LbqrjSTK4g5kngpXOPAIQdYYx89QLAfcqHONSpvXO7/WP+Kc9zJ3WWxbUaG8Wg==", + "dev": true, "requires": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" + "tslib": "^2.1.0" } }, - "@rollup/plugin-json": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", - "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "@material/base": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-11.0.0.tgz", + "integrity": "sha512-GTybYdiWBoEyYQ3he8cEeuXe5mPq2peFX41rBsMrs516TGDxrVJrEAKNedydhtpfRBsZRreTXMLZtbGrZzfIFQ==", + "dev": true, "requires": { - "@rollup/pluginutils": "^3.0.8" + "tslib": "^2.1.0" } }, - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "@material/button": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-11.0.0.tgz", + "integrity": "sha512-KqqxEcsj8jBkV1yNEiPoHiB1AJBa/1OGm7H+hF+C3RUTIrRLew8IuRL1ZY38ukdHvhno1/qmVMKOs6ui0mxjlg==", + "dev": true, "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" + "@material/density": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/elevation": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/touch-target": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" } }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "@material/density": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-11.0.0.tgz", + "integrity": "sha512-FuSx0UukH7p9cIAxEg78zwL5iYuoa/YovyHuuEEudyhWsRH+u0KBSQlYWr+ykg//qZF6urlDrVmu7WAKi1SiCw==", + "dev": true, "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - } + "tslib": "^2.1.0" } }, - "@sideway/address": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", - "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", + "@material/dom": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-11.0.0.tgz", + "integrity": "sha512-LZdg6VmYnMXc/Ct/GdQ22o4m3UgjhZYQIrwu9Iebqchx0Vd2OTmcFN5nArHSCSgUEhpjpPlkbZmjOpeOAwiKZg==", + "dev": true, "requires": { - "@hapi/hoek": "^9.0.0" + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" } }, - "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "@material/elevation": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-11.0.0.tgz", + "integrity": "sha512-mgrUSBAdXJ1+VS/SWnu/gr9/nq7P1q5X3aDmoom2EPKauEeKhuAHjABI5duxHOrliZM3mK9VLO56D/tszb7spw==", + "dev": true, "requires": { - "type-detect": "4.0.8" + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" } }, - "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "@material/feature-targeting": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-11.0.0.tgz", + "integrity": "sha512-7/jdaHm7C16Eq02tDQ1iI+giWKgk+QRNWFrmGKzHfXbU604XwY/eSLSiVS8QI01vx9QZ0aO9K84m0yhQQNQQtg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" + "tslib": "^2.1.0" } }, - "@sinonjs/samsam": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", - "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", + "@material/floating-label": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-11.0.0.tgz", + "integrity": "sha512-sY/ijV06cU0y9+1OB122d6z2AuxLzjQgQGVq9dFLoVRL6jhV2HgOxGF/3cvZsgGGsv2liXagkmQ02jBV1ypvgA==", + "dev": true, "requires": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" } }, - "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" - }, - "@smui/button": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smui/button/-/button-4.2.0.tgz", - "integrity": "sha512-impnVMXWHLqBXUyjo+GKRuLOgICv2bX//JVKKV3oba8msIimdOi0BR1Ds7ecti6248eXuFlwrE4GM/oc/57G1A==", + "@material/line-ripple": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-11.0.0.tgz", + "integrity": "sha512-ws0p28hfG5P7RuCJZhHBDhPd/pYusszwRWMa1xkATxCjdCDc9hC9RIsUb6eIG9/iwpYnLNRvIoR5iF+01rVhow==", "dev": true, "requires": { - "@material/button": "^11.0.0", - "@material/elevation": "^11.0.0", + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", "@material/feature-targeting": "^11.0.0", - "@material/ripple": "^11.0.0", "@material/theme": "^11.0.0", - "@smui/common": "^4.2.0", - "@smui/ripple": "^4.2.0" + "tslib": "^2.1.0" } }, - "@smui/common": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smui/common/-/common-4.2.0.tgz", - "integrity": "sha512-ersYpoqvb0hGP2lFdOtNlue5m74H/eOEtpbb5r4Sk8lmwaDh+Gj8xbX93AAE2Jfq/p6XcEmHB6CsGoATi5JHOQ==", + "@material/notched-outline": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-11.0.0.tgz", + "integrity": "sha512-GwYFIRA6raFljNARmEpIcIjHztjKD8wcDf+6xl1WezsprGd/Qdzq59/VX76y1et8ZkkL0+fE+4dEaVpCHq/e8A==", "dev": true, "requires": { - "@material/dom": "^11.0.0", - "svelte": "^3.35.0" + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/floating-label": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" } }, - "@smui/floating-label": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smui/floating-label/-/floating-label-4.2.0.tgz", - "integrity": "sha512-EQhJkzt0AMqbBj/bxY9TmovsPVPxVcfQCZZrpfbJ0V2PqyZGOVXEjggGpa638PcRHPX44NjSSCnJNiKa6SCGEQ==", + "@material/ripple": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-11.0.0.tgz", + "integrity": "sha512-672zAsYaL8aS861VgfEPL4sFMkFe0psiSc+4DfUTq7Nanl4e1gcarzzHZAn5IExUNk3/5QybDiXV+dbaL/0NjQ==", "dev": true, "requires": { - "@material/floating-label": "^11.0.0", - "@smui/common": "^4.2.0" + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" } }, - "@smui/line-ripple": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smui/line-ripple/-/line-ripple-4.2.0.tgz", - "integrity": "sha512-FA/btw+A97pUGYejkdZmSSQ2V6pnAVcgY4W7qNagRlfuyxfHf7a+rFQjgj8eN4hRBSihh8hcV+Tyfo+2oCOYog==", + "@material/rtl": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-11.0.0.tgz", + "integrity": "sha512-FcS8+N9MhnC0Wdd34O2yCC/5ylIwkfHjV5pbmHyEtb4YXoWngnPIxgpOr5PsUv95WSQBmeqWCRJDwS+sGZHoKQ==", "dev": true, "requires": { - "@material/line-ripple": "^11.0.0", - "@smui/common": "^4.2.0" + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" } }, - "@smui/notched-outline": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smui/notched-outline/-/notched-outline-4.2.0.tgz", - "integrity": "sha512-6HY/N2e8jFZgtrM1xBpniYrZGhBRuM26PpFAHce6BjHB2IUDd+hdQbGmsiQnoQ6CsXhTuDyHL8c2RMfuSRbAJg==", + "@material/shape": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-11.0.0.tgz", + "integrity": "sha512-O9/Dt/9Nbum1IvxRd4u8gCF4ghk9E55UNp2TGe+RN43zpTUbChh2raOFr3sQeRwLIzlb4wstUG9AxmdktrkDUQ==", "dev": true, "requires": { - "@material/notched-outline": "^11.0.0", - "@smui/common": "^4.2.0" + "@material/feature-targeting": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" } }, - "@smui/paper": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smui/paper/-/paper-4.2.0.tgz", - "integrity": "sha512-szeOAYwB6pyppGy5md3CdNZW59IDnwD/mw+H6vJdHuxEEe6OXvQ2rPi9ojOrHEiBz8dN8ryTKQxTrXDbrJWeNA==", + "@material/textfield": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-11.0.0.tgz", + "integrity": "sha512-7GwZCJplxQpdExNO8K3IOPH/SniCd4bcvOuKGYWjW1irOLYVX2Om0e7X2q70XWvD/B85Rb8ZaPXqx3EJiwNrvQ==", "dev": true, "requires": { - "@material/elevation": "^11.0.0", + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/density": "^11.0.0", + "@material/dom": "^11.0.0", "@material/feature-targeting": "^11.0.0", + "@material/floating-label": "^11.0.0", + "@material/line-ripple": "^11.0.0", + "@material/notched-outline": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", "@material/shape": "^11.0.0", "@material/theme": "^11.0.0", "@material/typography": "^11.0.0", - "@smui/common": "^4.2.0" + "tslib": "^2.1.0" } }, - "@smui/ripple": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smui/ripple/-/ripple-4.2.0.tgz", - "integrity": "sha512-oTaPC/6FAYwifth9AvkUuIC5SenMPITg1yZSdD9B1Wcgi2NRAWuMDV2j6Kc+yYgv6iUCKlQ26fCxK2xmYwqhug==", + "@material/theme": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-11.0.0.tgz", + "integrity": "sha512-GnQI8sd2wHFD3AvmhpyRaH5o9D5Shobs1xDH4FdRU9+c+FNNqouZMDzyM6UpCX4700DzqvE7l0/1LjzB7ve7Lg==", "dev": true, "requires": { - "@material/dom": "^11.0.0", - "@material/ripple": "^11.0.0" + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" } }, - "@smui/textfield": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smui/textfield/-/textfield-4.2.0.tgz", - "integrity": "sha512-4RxvxcabtPrlYiHddsF/uFjOZhA3qA/W17HyiccTKxfHpZWOxxnZvCE4CDs8LyckEvz73fSUTQOb4pqd2Of02g==", + "@material/touch-target": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-11.0.0.tgz", + "integrity": "sha512-S1XPYj3Bnkw26nFdYRZ0BHcNLfizF8HBeX9+OR7KuJUKaFB6CN01CtyEmDU3XNI0n140KjMtJnsZykWZommolQ==", "dev": true, "requires": { - "@material/dom": "^11.0.0", + "@material/base": "^11.0.0", "@material/feature-targeting": "^11.0.0", - "@material/ripple": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/textfield": "^11.0.0", - "@smui/common": "^4.2.0", - "@smui/floating-label": "^4.2.0", - "@smui/line-ripple": "^4.2.0", - "@smui/notched-outline": "^4.2.0", - "@smui/ripple": "^4.2.0" + "tslib": "^2.1.0" } }, - "@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "@stablelib/aes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", - "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", + "@material/typography": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-11.0.0.tgz", + "integrity": "sha512-i9IGO/ZsF+YnqC2+PpJapt/8hSXOKFXaqv6B9uUr+iQ8GD4bEFpxm5kChzH918wJpCHvxbTYbnR6buaF9nkjCQ==", + "dev": true, "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" } }, - "@stablelib/aes-kw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", - "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", - "requires": { - "@stablelib/aes": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "requires": { - "@stablelib/int": "^1.0.1" - } - }, - "@stablelib/blockcipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", - "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" - }, - "@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "requires": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "@stablelib/ed25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", - "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", - "requires": { - "@stablelib/random": "^1.0.1", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "requires": { - "@stablelib/bytes": "^1.0.1" - } - }, - "@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "requires": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/sha512": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", - "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", + "@mattrglobal/bbs-signatures": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", + "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "@mattrglobal/node-bbs-signatures": "0.11.0" } }, - "@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "@stablelib/x25519": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz", - "integrity": "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==", + "@mattrglobal/bls12381-key-pair": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", + "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", "requires": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "@mattrglobal/bbs-signatures": "0.5.0", + "bs58": "4.0.1", + "rfc4648": "1.4.0" } }, - "@stablelib/xchacha20": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", - "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", + "@mattrglobal/node-bbs-signatures": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", + "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", + "optional": true, "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "neon-cli": "0.4.0", + "node-pre-gyp": "0.14.0" } }, - "@stablelib/xchacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", - "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", - "requires": { - "@stablelib/aead": "^1.0.1", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1", - "@stablelib/xchacha20": "^1.0.1" - } + "@metamask/detect-provider": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz", + "integrity": "sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ==" }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "@motrix/nat-api": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", + "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", "requires": { - "defer-to-connect": "^1.0.1" + "async": "^3.2.0", + "debug": "^4.3.1", + "default-gateway": "^6.0.3", + "request": "^2.88.2", + "unordered-array-remove": "^1.0.2", + "xml2js": "^0.4.23" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, - "@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + "@msgpack/msgpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", + "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==" }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true + "@multiformats/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" }, - "@transmute/did-key-bls12381": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz", - "integrity": "sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ==", + "@peculiar/asn1-schema": { + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.38.tgz", + "integrity": "sha512-zZ64UpCTm9me15nuCpPgJghSdbEm8atcDQPCyK+bKXjZAQ1735NCZXCSCfbckbQ4MH36Rm9403n/qMq77LFDzQ==", "requires": { - "@mattrglobal/bbs-signatures": "^0.5.0", - "@mattrglobal/bls12381-key-pair": "^0.5.0", - "base64url": "^3.0.1", - "bs58": "^4.0.1" + "@types/asn1js": "^2.0.2", + "asn1js": "^2.1.1", + "pvtsutils": "^1.2.0", + "tslib": "^2.3.0" } }, - "@transmute/did-key-cipher": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz", - "integrity": "sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw==", + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", "requires": { - "@peculiar/webcrypto": "^1.1.3", - "@stablelib/aes-kw": "^1.0.0", - "@stablelib/xchacha20poly1305": "^1.0.0", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "web-streams-polyfill": "^3.0.0" + "tslib": "^2.0.0" } }, - "@transmute/did-key-common": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz", - "integrity": "sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A==", + "@peculiar/webcrypto": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz", + "integrity": "sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ==", "requires": { - "base64url": "^3.0.1", - "borc": "^2.1.2", - "canonicalize": "^1.0.3", - "cbor": "^5.1.0" + "@peculiar/asn1-schema": "^2.0.32", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.1.6", + "tslib": "^2.2.0", + "webcrypto-core": "^1.2.0" } }, - "@transmute/did-key-ed25519": { - "version": "0.2.1-unstable.42", + "@perspect3vism/ad4m": { + "version": "file:../ad4m", + "requires": { + "@apollo/client": "3.3.20", + "@holochain/conductor-api": "0.0.4", + "@types/jest": "^27.0.1", + "@types/mocha": "^8.0.3", + "class-validator": "^0.13.1", + "graphql": "^15.5.0", + "react": "^17.0.2", + "reflect-metadata": "^0.1.13", + "type-graphql": "^1.1.1" + }, + "dependencies": { + "@apollo/client": { + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", + "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", + "requires": { + "@graphql-typed-document-node/core": "^3.0.0", + "@types/zen-observable": "^0.8.0", + "@wry/context": "^0.6.0", + "@wry/equality": "^0.5.0", + "fast-json-stable-stringify": "^2.0.0", + "graphql-tag": "^2.12.0", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.0", + "prop-types": "^15.7.2", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.7.0", + "tslib": "^1.10.0", + "zen-observable": "^0.8.14" + } + }, + "@apollo/link-error": { + "version": "2.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@apollo/link-error/-/link-error-2.0.0-beta.3.tgz", + "integrity": "sha512-blNBBi9+4SEfb4Bhn8cYqGFhb0C7MjqLiRwNdUqwGefl1w+G8Ze8pCLHAyPxXLcslirtht9LY0i6ZOpCzSXHCg==", + "requires": { + "@apollo/client": "^3.0.0-beta.23", + "tslib": "^1.9.3" + } + }, + "@apollo/protobufjs": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz", + "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "@apollographql/apollo-tools": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz", + "integrity": "sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==" + }, + "@apollographql/graphql-playground-html": { + "version": "1.6.27", + "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz", + "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==", + "requires": { + "xss": "^1.0.8" + } + }, + "@apollographql/graphql-upload-8-fork": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", + "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", + "requires": { + "@types/express": "*", + "@types/fs-capacitor": "*", + "@types/koa": "*", + "busboy": "^0.3.1", + "fs-capacitor": "^2.0.4", + "http-errors": "^1.7.3", + "object-path": "^0.11.4" + } + }, + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/compat-data": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" + }, + "@babel/core": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz", + "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-compilation-targets": "^7.15.0", + "@babel/helper-module-transforms": "^7.15.0", + "@babel/helpers": "^7.14.8", + "@babel/parser": "^7.15.0", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", + "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", + "requires": { + "@babel/compat-data": "^7.15.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", + "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "requires": { + "@babel/types": "^7.14.8" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" + }, + "@babel/helpers": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz", + "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==", + "requires": { + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", + "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==" + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", + "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "@graphql-typed-document-node/core": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz", + "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==" + }, + "@holochain/conductor-api": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@holochain/conductor-api/-/conductor-api-0.0.4.tgz", + "integrity": "sha512-s52H+JMtiWID8wsqkKVkbjNDrHeVD88X+XWEllIi9INc7md2nBkMKBVChc/qgpRFqrpj2X8j/Es9MtvIJYnQqg==", + "requires": { + "@msgpack/msgpack": "2.4.0", + "@types/ws": "^7.2.4", + "isomorphic-ws": "^4.0.1", + "nanoid": "^3.1.9", + "ws": "^7.3.0" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + }, + "@jest/console": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.1.0.tgz", + "integrity": "sha512-+Vl+xmLwAXLNlqT61gmHEixeRbS4L8MUzAjtpBCOPWH+izNI/dR16IeXjkXJdRtIVWVSf9DO1gdp67B1XorZhQ==", + "requires": { + "@jest/types": "^27.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.1.0", + "jest-util": "^27.1.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.1.0.tgz", + "integrity": "sha512-3l9qmoknrlCFKfGdrmiQiPne+pUR4ALhKwFTYyOeKw6egfDwJkO21RJ1xf41rN8ZNFLg5W+w6+P4fUqq4EMRWA==", + "requires": { + "@jest/console": "^27.1.0", + "@jest/reporters": "^27.1.0", + "@jest/test-result": "^27.1.0", + "@jest/transform": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^27.1.0", + "jest-config": "^27.1.0", + "jest-haste-map": "^27.1.0", + "jest-message-util": "^27.1.0", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.1.0", + "jest-resolve-dependencies": "^27.1.0", + "jest-runner": "^27.1.0", + "jest-runtime": "^27.1.0", + "jest-snapshot": "^27.1.0", + "jest-util": "^27.1.0", + "jest-validate": "^27.1.0", + "jest-watcher": "^27.1.0", + "micromatch": "^4.0.4", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.1.0.tgz", + "integrity": "sha512-wRp50aAMY2w1U2jP1G32d6FUVBNYqmk8WaGkiIEisU48qyDV0WPtw3IBLnl7orBeggveommAkuijY+RzVnNDOQ==", + "requires": { + "@jest/fake-timers": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/node": "*", + "jest-mock": "^27.1.0" + } + }, + "@jest/fake-timers": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.1.0.tgz", + "integrity": "sha512-22Zyn8il8DzpS+30jJNVbTlm7vAtnfy1aYvNeOEHloMlGy1PCYLHa4PWlSws0hvNsMM5bON6GISjkLoQUV3oMA==", + "requires": { + "@jest/types": "^27.1.0", + "@sinonjs/fake-timers": "^7.0.2", + "@types/node": "*", + "jest-message-util": "^27.1.0", + "jest-mock": "^27.1.0", + "jest-util": "^27.1.0" + } + }, + "@jest/globals": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.1.0.tgz", + "integrity": "sha512-73vLV4aNHAlAgjk0/QcSIzzCZSqVIPbmFROJJv9D3QUR7BI4f517gVdJpSrCHxuRH3VZFhe0yGG/tmttlMll9g==", + "requires": { + "@jest/environment": "^27.1.0", + "@jest/types": "^27.1.0", + "expect": "^27.1.0" + } + }, + "@jest/reporters": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.1.0.tgz", + "integrity": "sha512-5T/zlPkN2HnK3Sboeg64L5eC8iiaZueLpttdktWTJsvALEtP2YMkC5BQxwjRWQACG9SwDmz+XjjkoxXUDMDgdw==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.1.0", + "@jest/test-result": "^27.1.0", + "@jest/transform": "^27.1.0", + "@jest/types": "^27.1.0", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^27.1.0", + "jest-resolve": "^27.1.0", + "jest-util": "^27.1.0", + "jest-worker": "^27.1.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.0.0" + } + }, + "@jest/source-map": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", + "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.1.0.tgz", + "integrity": "sha512-Aoz00gpDL528ODLghat3QSy6UBTD5EmmpjrhZZMK/v1Q2/rRRqTGnFxHuEkrD4z/Py96ZdOHxIWkkCKRpmnE1A==", + "requires": { + "@jest/console": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.1.0.tgz", + "integrity": "sha512-lnCWawDr6Z1DAAK9l25o3AjmKGgcutq1iIbp+hC10s/HxnB8ZkUsYq1FzjOoxxZ5hW+1+AthBtvS4x9yno3V1A==", + "requires": { + "@jest/test-result": "^27.1.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.1.0", + "jest-runtime": "^27.1.0" + } + }, + "@jest/transform": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.1.0.tgz", + "integrity": "sha512-ZRGCA2ZEVJ00ubrhkTG87kyLbN6n55g1Ilq0X9nJb5bX3MhMp3O6M7KG+LvYu+nZRqG5cXsQnJEdZbdpTAV8pQ==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.1.0", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.1.0", + "jest-regex-util": "^27.0.6", + "jest-util": "^27.1.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@josephg/resolvable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", + "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" + }, + "@msgpack/msgpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", + "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==" + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "@rollup/plugin-alias": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.5.tgz", + "integrity": "sha512-yzUaSvCC/LJPbl9rnzX3HN7vy0tq7EzHoEiQl1ofh4n5r2Rd5bj/+zcJgaGA76xbw95/JjWQyvHg9rOJp2y0oQ==", + "requires": { + "slash": "^3.0.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz", + "integrity": "sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "dependencies": { + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + } + } + }, + "@rollup/plugin-node-resolve": { + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz", + "integrity": "sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "@types/accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/babel__core": { + "version": "7.1.15", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.15.tgz", + "integrity": "sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", + "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" + }, + "@types/cookies": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", + "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", + "requires": { + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "@types/cors": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", + "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==" + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.24", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", + "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/fs-capacitor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", + "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "requires": { + "@types/node": "*" + } + }, + "@types/http-assert": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", + "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" + }, + "@types/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==" + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.1.tgz", + "integrity": "sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw==", + "requires": { + "jest-diff": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "@types/keygrip": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" + }, + "@types/koa": { + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", + "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", + "requires": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" + } + }, + "@types/koa-compose": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", + "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", + "requires": { + "@types/koa": "*" + } + }, + "@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "@types/mocha": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", + "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==" + }, + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + }, + "@types/prettier": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/reflect-metadata": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@types/reflect-metadata/-/reflect-metadata-0.1.0.tgz", + "integrity": "sha512-bXltFLY3qhzCnVYP5iUpeSICagQ8rc9K2liS+8M0lBcz54BHs3O6W5UvqespVSuebo1BXLi+/y9ioELAW9SC2A==", + "requires": { + "reflect-metadata": "*" + } + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "requires": { + "@types/node": "*" + } + }, + "@types/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now==" + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + }, + "@types/validator": { + "version": "13.6.3", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.6.3.tgz", + "integrity": "sha512-fWG42pMJOL4jKsDDZZREnXLjc3UE0R8LOJfARWYg6U966rxDT7TYejYzLnUF5cvSObGg34nd0+H2wHHU5Omdfw==" + }, + "@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + }, + "@types/zen-observable": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", + "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" + }, + "@wry/context": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", + "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@wry/equality": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", + "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@wry/trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", + "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "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" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "apollo-cache-control": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz", + "integrity": "sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==", + "requires": { + "apollo-server-env": "^3.1.0", + "apollo-server-plugin-base": "^0.13.0" + } + }, + "apollo-datasource": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz", + "integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==", + "requires": { + "apollo-server-caching": "^0.7.0", + "apollo-server-env": "^3.1.0" + } + }, + "apollo-graphql": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.3.tgz", + "integrity": "sha512-rcAl2E841Iko4kSzj4Pt3PRBitmyq1MvoEmpl04TQSpGnoVgl1E/ZXuLBYxMTSnEAm7umn2IsoY+c6Ll9U/10A==", + "requires": { + "core-js-pure": "^3.10.2", + "lodash.sortby": "^4.7.0", + "sha.js": "^2.4.11" + } + }, + "apollo-link": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz", + "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==", + "requires": { + "apollo-utilities": "^1.3.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.9.3", + "zen-observable-ts": "^0.8.21" + }, + "dependencies": { + "ts-invariant": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "requires": { + "tslib": "^1.9.3" + } + } + } + }, + "apollo-reporting-protobuf": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz", + "integrity": "sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==", + "requires": { + "@apollo/protobufjs": "1.2.2" + } + }, + "apollo-server": { + "version": "2.25.2", + "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.2.tgz", + "integrity": "sha512-2Ekx9puU5DqviZk6Kw1hbqTun3lwOWUjhiBJf+UfifYmnqq0s9vAv6Ditw+DEXwphJQ4vGKVVgVIEw6f/9YfhQ==", + "requires": { + "apollo-server-core": "^2.25.2", + "apollo-server-express": "^2.25.2", + "express": "^4.0.0", + "graphql-subscriptions": "^1.0.0", + "graphql-tools": "^4.0.8", + "stoppable": "^1.1.0" + } + }, + "apollo-server-caching": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz", + "integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "apollo-server-core": { + "version": "2.25.2", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.2.tgz", + "integrity": "sha512-lrohEjde2TmmDTO7FlOs8x5QQbAS0Sd3/t0TaK2TWaodfzi92QAvIsq321Mol6p6oEqmjm8POIDHW1EuJd7XMA==", + "requires": { + "@apollographql/apollo-tools": "^0.5.0", + "@apollographql/graphql-playground-html": "1.6.27", + "@apollographql/graphql-upload-8-fork": "^8.1.3", + "@josephg/resolvable": "^1.0.0", + "@types/ws": "^7.0.0", + "apollo-cache-control": "^0.14.0", + "apollo-datasource": "^0.9.0", + "apollo-graphql": "^0.9.0", + "apollo-reporting-protobuf": "^0.8.0", + "apollo-server-caching": "^0.7.0", + "apollo-server-env": "^3.1.0", + "apollo-server-errors": "^2.5.0", + "apollo-server-plugin-base": "^0.13.0", + "apollo-server-types": "^0.9.0", + "apollo-tracing": "^0.15.0", + "async-retry": "^1.2.1", + "fast-json-stable-stringify": "^2.0.0", + "graphql-extensions": "^0.15.0", + "graphql-tag": "^2.11.0", + "graphql-tools": "^4.0.8", + "loglevel": "^1.6.7", + "lru-cache": "^6.0.0", + "sha.js": "^2.4.11", + "subscriptions-transport-ws": "^0.9.19", + "uuid": "^8.0.0" + } + }, + "apollo-server-env": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz", + "integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==", + "requires": { + "node-fetch": "^2.6.1", + "util.promisify": "^1.0.0" + } + }, + "apollo-server-errors": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz", + "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==" + }, + "apollo-server-express": { + "version": "2.25.2", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.2.tgz", + "integrity": "sha512-A2gF2e85vvDugPlajbhr0A14cDFDIGX0mteNOJ8P3Z3cIM0D4hwrWxJidI+SzobefDIyIHu1dynFedJVhV0euQ==", + "requires": { + "@apollographql/graphql-playground-html": "1.6.27", + "@types/accepts": "^1.3.5", + "@types/body-parser": "1.19.0", + "@types/cors": "2.8.10", + "@types/express": "^4.17.12", + "@types/express-serve-static-core": "^4.17.21", + "accepts": "^1.3.5", + "apollo-server-core": "^2.25.2", + "apollo-server-types": "^0.9.0", + "body-parser": "^1.18.3", + "cors": "^2.8.5", + "express": "^4.17.1", + "graphql-subscriptions": "^1.0.0", + "graphql-tools": "^4.0.8", + "parseurl": "^1.3.2", + "subscriptions-transport-ws": "^0.9.19", + "type-is": "^1.6.16" + }, + "dependencies": { + "@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + } + } + }, + "apollo-server-plugin-base": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz", + "integrity": "sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==", + "requires": { + "apollo-server-types": "^0.9.0" + } + }, + "apollo-server-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz", + "integrity": "sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==", + "requires": { + "apollo-reporting-protobuf": "^0.8.0", + "apollo-server-caching": "^0.7.0", + "apollo-server-env": "^3.1.0" + } + }, + "apollo-tracing": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz", + "integrity": "sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==", + "requires": { + "apollo-server-env": "^3.1.0", + "apollo-server-plugin-base": "^0.13.0" + } + }, + "apollo-utilities": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz", + "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==", + "requires": { + "@wry/equality": "^0.1.2", + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "@wry/equality": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", + "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", + "requires": { + "tslib": "^1.9.3" + } + }, + "ts-invariant": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "requires": { + "tslib": "^1.9.3" + } + } + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "requires": { + "retry": "0.13.1" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "babel-jest": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.1.0.tgz", + "integrity": "sha512-6NrdqzaYemALGCuR97QkC/FkFIEBWP5pw5TMJoUHZTVXyOgocujp6A0JE2V6gE0HtqAAv6VKU/nI+OCR1Z4gHA==", + "requires": { + "@jest/transform": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^27.0.6", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz", + "integrity": "sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz", + "integrity": "sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==", + "requires": { + "babel-plugin-jest-hoist": "^27.0.6", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browserslist": { + "version": "4.16.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", + "integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", + "requires": { + "caniuse-lite": "^1.0.30001251", + "colorette": "^1.3.0", + "electron-to-chromium": "^1.3.811", + "escalade": "^3.1.1", + "node-releases": "^1.1.75" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" + }, + "busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "requires": { + "dicer": "0.3.0" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "caniuse-lite": { + "version": "1.0.30001252", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz", + "integrity": "sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==" + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + }, + "class-validator": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.1.tgz", + "integrity": "sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg==", + "requires": { + "@types/validator": "^13.1.3", + "libphonenumber-js": "^1.9.7", + "validator": "^13.5.2" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "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==" + }, + "colorette": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", + "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-js-pure": { + "version": "3.16.4", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.4.tgz", + "integrity": "sha512-bY1K3/1Jy9D8Jd12eoeVahNXHLfHFb4TXWI8SQ4y8bImR9qDPmGITBAfmcffTkgUvbJn87r8dILOTWW5kZzkgA==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "requires": { + "node-fetch": "2.6.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "deprecated-decorator": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", + "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + }, + "dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "requires": { + "streamsearch": "0.1.2" + } + }, + "diff-sequences": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", + "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.824", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.824.tgz", + "integrity": "sha512-Fk+5aD0HDi9i9ZKt9n2VPOZO1dQy7PV++hz2wJ/KIn+CvVfu4fny39squHtyVDPuHNuoJGAZIbuReEklqYIqfA==" + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "es-abstract": { + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expect": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.1.0.tgz", + "integrity": "sha512-9kJngV5hOJgkFil4F/uXm3hVBubUK2nERVfvqNNwxxuW8ZOUwSTTSysgfzckYtv/LBzj/LJXbiAF7okHCXgdug==", + "requires": { + "@jest/types": "^27.1.0", + "ansi-styles": "^5.0.0", + "jest-get-type": "^27.0.6", + "jest-matcher-utils": "^27.1.0", + "jest-message-util": "^27.1.0", + "jest-regex-util": "^27.0.6" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-capacitor": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", + "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "graphql": { + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", + "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + }, + "graphql-extensions": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz", + "integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==", + "requires": { + "@apollographql/apollo-tools": "^0.5.0", + "apollo-server-env": "^3.1.0", + "apollo-server-types": "^0.9.0" + } + }, + "graphql-query-complexity": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", + "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", + "requires": { + "lodash.get": "^4.4.2" + } + }, + "graphql-subscriptions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", + "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", + "requires": { + "iterall": "^1.3.0" + } + }, + "graphql-tag": { + "version": "2.12.5", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz", + "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "graphql-tools": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", + "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", + "requires": { + "apollo-link": "^1.2.14", + "apollo-utilities": "^1.0.1", + "deprecated-decorator": "^0.1.6", + "iterall": "^1.1.3", + "uuid": "^3.1.0" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "http-errors": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", + "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + } + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "requires": { + "@types/estree": "*" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + }, + "jest": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.1.0.tgz", + "integrity": "sha512-pSQDVwRSwb109Ss13lcMtdfS9r8/w2Zz8+mTUA9VORD66GflCdl8nUFCqM96geOD2EBwWCNURrNAfQsLIDNBdg==", + "requires": { + "@jest/core": "^27.1.0", + "import-local": "^3.0.2", + "jest-cli": "^27.1.0" + } + }, + "jest-changed-files": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.1.0.tgz", + "integrity": "sha512-eRcb13TfQw0xiV2E98EmiEgs9a5uaBIqJChyl0G7jR9fCIvGjXovnDS6Zbku3joij4tXYcSK4SE1AXqOlUxjWg==", + "requires": { + "@jest/types": "^27.1.0", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.1.0.tgz", + "integrity": "sha512-6FWtHs3nZyZlMBhRf1wvAC5CirnflbGJAY1xssSAnERLiiXQRH+wY2ptBVtXjX4gz4AA2EwRV57b038LmifRbA==", + "requires": { + "@jest/environment": "^27.1.0", + "@jest/test-result": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.1.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.1.0", + "jest-matcher-utils": "^27.1.0", + "jest-message-util": "^27.1.0", + "jest-runtime": "^27.1.0", + "jest-snapshot": "^27.1.0", + "jest-util": "^27.1.0", + "pretty-format": "^27.1.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + } + }, + "jest-cli": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.1.0.tgz", + "integrity": "sha512-h6zPUOUu+6oLDrXz0yOWY2YXvBLk8gQinx4HbZ7SF4V3HzasQf+ncoIbKENUMwXyf54/6dBkYXvXJos+gOHYZw==", + "requires": { + "@jest/core": "^27.1.0", + "@jest/test-result": "^27.1.0", + "@jest/types": "^27.1.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.1.0", + "jest-util": "^27.1.0", + "jest-validate": "^27.1.0", + "prompts": "^2.0.1", + "yargs": "^16.0.3" + } + }, + "jest-config": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.0.tgz", + "integrity": "sha512-GMo7f76vMYUA3b3xOdlcKeKQhKcBIgurjERO2hojo0eLkKPGcw7fyIoanH+m6KOP2bLad+fGnF8aWOJYxzNPeg==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^27.1.0", + "@jest/types": "^27.1.0", + "babel-jest": "^27.1.0", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "jest-circus": "^27.1.0", + "jest-environment-jsdom": "^27.1.0", + "jest-environment-node": "^27.1.0", + "jest-get-type": "^27.0.6", + "jest-jasmine2": "^27.1.0", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.1.0", + "jest-runner": "^27.1.0", + "jest-util": "^27.1.0", + "jest-validate": "^27.1.0", + "micromatch": "^4.0.4", + "pretty-format": "^27.1.0" + } + }, + "jest-diff": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.0.tgz", + "integrity": "sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.2.0" + } + }, + "jest-docblock": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", + "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.1.0.tgz", + "integrity": "sha512-K/cNvQlmDqQMRHF8CaQ0XPzCfjP5HMJc2bIJglrIqI9fjwpNqITle63IWE+wq4p+3v+iBgh7Wq0IdGpLx5xjDg==", + "requires": { + "@jest/types": "^27.1.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "jest-util": "^27.1.0", + "pretty-format": "^27.1.0" + } + }, + "jest-environment-jsdom": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.1.0.tgz", + "integrity": "sha512-JbwOcOxh/HOtsj56ljeXQCUJr3ivnaIlM45F5NBezFLVYdT91N5UofB1ux2B1CATsQiudcHdgTaeuqGXJqjJYQ==", + "requires": { + "@jest/environment": "^27.1.0", + "@jest/fake-timers": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/node": "*", + "jest-mock": "^27.1.0", + "jest-util": "^27.1.0", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.1.0.tgz", + "integrity": "sha512-JIyJ8H3wVyM4YCXp7njbjs0dIT87yhGlrXCXhDKNIg1OjurXr6X38yocnnbXvvNyqVTqSI4M9l+YfPKueqL1lw==", + "requires": { + "@jest/environment": "^27.1.0", + "@jest/fake-timers": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/node": "*", + "jest-mock": "^27.1.0", + "jest-util": "^27.1.0" + } + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==" + }, + "jest-haste-map": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.1.0.tgz", + "integrity": "sha512-7mz6LopSe+eA6cTFMf10OfLLqRoIPvmMyz5/OnSXnHO7hB0aDP1iIeLWCXzAcYU5eIJVpHr12Bk9yyq2fTW9vg==", + "requires": { + "@jest/types": "^27.1.0", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.1.0", + "jest-worker": "^27.1.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.1.0.tgz", + "integrity": "sha512-Z/NIt0wBDg3przOW2FCWtYjMn3Ip68t0SL60agD/e67jlhTyV3PIF8IzT9ecwqFbeuUSO2OT8WeJgHcalDGFzQ==", + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^27.1.0", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.1.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.1.0", + "jest-matcher-utils": "^27.1.0", + "jest-message-util": "^27.1.0", + "jest-runtime": "^27.1.0", + "jest-snapshot": "^27.1.0", + "jest-util": "^27.1.0", + "pretty-format": "^27.1.0", + "throat": "^6.0.1" + } + }, + "jest-leak-detector": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.1.0.tgz", + "integrity": "sha512-oHvSkz1E80VyeTKBvZNnw576qU+cVqRXUD3/wKXh1zpaki47Qty2xeHg2HKie9Hqcd2l4XwircgNOWb/NiGqdA==", + "requires": { + "jest-get-type": "^27.0.6", + "pretty-format": "^27.1.0" + } + }, + "jest-matcher-utils": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.1.0.tgz", + "integrity": "sha512-VmAudus2P6Yt/JVBRdTPFhUzlIN8DYJd+et5Rd9QDsO/Z82Z4iwGjo43U8Z+PTiz8CBvKvlb6Fh3oKy39hykkQ==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.1.0", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.1.0" + } + }, + "jest-message-util": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.1.0.tgz", + "integrity": "sha512-Eck8NFnJ5Sg36R9XguD65cf2D5+McC+NF5GIdEninoabcuoOfWrID5qJhufq5FB0DRKoiyxB61hS7MKoMD0trQ==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.1.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.0.tgz", + "integrity": "sha512-iT3/Yhu7DwAg/0HvvLCqLvrTKTRMyJlrrfJYWzuLSf9RCAxBoIXN3HoymZxMnYsC3eD8ewGbUa9jUknwBenx2w==", + "requires": { + "@jest/types": "^27.1.0", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + }, + "jest-regex-util": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", + "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==" + }, + "jest-resolve": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.1.0.tgz", + "integrity": "sha512-TXvzrLyPg0vLOwcWX38ZGYeEztSEmW+cQQKqc4HKDUwun31wsBXwotRlUz4/AYU/Fq4GhbMd/ileIWZEtcdmIA==", + "requires": { + "@jest/types": "^27.1.0", + "chalk": "^4.0.0", + "escalade": "^3.1.1", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.1.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.1.0", + "jest-validate": "^27.1.0", + "resolve": "^1.20.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.1.0.tgz", + "integrity": "sha512-Kq5XuDAELuBnrERrjFYEzu/A+i2W7l9HnPWqZEeKGEQ7m1R+6ndMbdXCVCx29Se1qwLZLgvoXwinB3SPIaitMQ==", + "requires": { + "@jest/types": "^27.1.0", + "jest-regex-util": "^27.0.6", + "jest-snapshot": "^27.1.0" + } + }, + "jest-runner": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.1.0.tgz", + "integrity": "sha512-ZWPKr9M5w5gDplz1KsJ6iRmQaDT/yyAFLf18fKbb/+BLWsR1sCNC2wMT0H7pP3gDcBz0qZ6aJraSYUNAGSJGaw==", + "requires": { + "@jest/console": "^27.1.0", + "@jest/environment": "^27.1.0", + "@jest/test-result": "^27.1.0", + "@jest/transform": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-docblock": "^27.0.6", + "jest-environment-jsdom": "^27.1.0", + "jest-environment-node": "^27.1.0", + "jest-haste-map": "^27.1.0", + "jest-leak-detector": "^27.1.0", + "jest-message-util": "^27.1.0", + "jest-resolve": "^27.1.0", + "jest-runtime": "^27.1.0", + "jest-util": "^27.1.0", + "jest-worker": "^27.1.0", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + } + }, + "jest-runtime": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.1.0.tgz", + "integrity": "sha512-okiR2cpGjY0RkWmUGGado6ETpFOi9oG3yV0CioYdoktkVxy5Hv0WRLWnJFuArSYS8cHMCNcceUUMGiIfgxCO9A==", + "requires": { + "@jest/console": "^27.1.0", + "@jest/environment": "^27.1.0", + "@jest/fake-timers": "^27.1.0", + "@jest/globals": "^27.1.0", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.1.0", + "@jest/transform": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.1.0", + "jest-message-util": "^27.1.0", + "jest-mock": "^27.1.0", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.1.0", + "jest-snapshot": "^27.1.0", + "jest-util": "^27.1.0", + "jest-validate": "^27.1.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^16.0.3" + } + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.1.0.tgz", + "integrity": "sha512-eaeUBoEjuuRwmiRI51oTldUsKOohB1F6fPqWKKILuDi/CStxzp2IWekVUXbuHHoz5ik33ioJhshiHpgPFbYgcA==", + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.1.0", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.1.0", + "jest-get-type": "^27.0.6", + "jest-haste-map": "^27.1.0", + "jest-matcher-utils": "^27.1.0", + "jest-message-util": "^27.1.0", + "jest-resolve": "^27.1.0", + "jest-util": "^27.1.0", + "natural-compare": "^1.4.0", + "pretty-format": "^27.1.0", + "semver": "^7.3.2" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "jest-util": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.1.0.tgz", + "integrity": "sha512-edSLD2OneYDKC6gZM1yc+wY/877s/fuJNoM1k3sOEpzFyeptSmke3SLnk1dDHk9CgTA+58mnfx3ew3J11Kes/w==", + "requires": { + "@jest/types": "^27.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.1.0.tgz", + "integrity": "sha512-QiJ+4XuSuMsfPi9zvdO//IrSRSlG6ybJhOpuqYSsuuaABaNT84h0IoD6vvQhThBOKT+DIKvl5sTM0l6is9+SRA==", + "requires": { + "@jest/types": "^27.1.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "leven": "^3.1.0", + "pretty-format": "^27.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + } + } + }, + "jest-watcher": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.1.0.tgz", + "integrity": "sha512-ivaWTrA46aHWdgPDgPypSHiNQjyKnLBpUIHeBaGg11U+pDzZpkffGlcB1l1a014phmG0mHgkOHtOgiqJQM6yKQ==", + "requires": { + "@jest/test-result": "^27.1.0", + "@jest/types": "^27.1.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.1.0", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.0.tgz", + "integrity": "sha512-mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "libphonenumber-js": { + "version": "1.9.34", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.34.tgz", + "integrity": "sha512-gHTNU9xTtVgSp30IDX/57W4pETMXDIYXFfwEOJVXiYosiY7Hc7ogJwlBjOqlCcU04X0aA8DT57hdwUC1sJBJnA==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "requires": { + "mime-db": "1.49.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nanoid": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, + "node-releases": { + "version": "1.1.75", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", + "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-path": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.7.tgz", + "integrity": "sha512-T4evaK9VfGGQskXBDILcn6F90ZD+WO3OwRFFQ2rmZdUH4vQeDBpiolTpVlPY2yj5xSepyILTjDyM6UvbbdHMZw==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optimism": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", + "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", + "requires": { + "@wry/context": "^0.6.0", + "@wry/trie": "^0.3.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "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==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, + "prompts": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.56.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", + "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==" + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "subscriptions-transport-ws": { + "version": "0.9.19", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", + "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" + }, + "dependencies": { + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + } + } + }, + "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" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, + "ts-invariant": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", + "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "ts-jest": { + "version": "27.0.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.5.tgz", + "integrity": "sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==", + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^27.0.0", + "json5": "2.x", + "lodash": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + }, + "type-graphql": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz", + "integrity": "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==", + "requires": { + "@types/glob": "^7.1.3", + "@types/node": "*", + "@types/semver": "^7.3.3", + "glob": "^7.1.6", + "graphql-query-complexity": "^0.7.0", + "graphql-subscriptions": "^1.1.0", + "semver": "^7.3.2", + "tslib": "^2.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", + "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==" + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util.promisify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-to-istanbul": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", + "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "validator": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.6.0.tgz", + "integrity": "sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.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" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", + "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==" + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xss": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", + "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", + "requires": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "zen-observable-ts": { + "version": "0.8.21", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", + "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", + "requires": { + "tslib": "^1.9.3", + "zen-observable": "^0.8.0" + } + } + } + }, + "@polka/url": { + "version": "1.0.0-next.20", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.20.tgz", + "integrity": "sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q==" + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "@rollup/plugin-commonjs": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", + "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + } + } + }, + "@rollup/plugin-json": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@rollup/pluginutils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", + "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "@sideway/address": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", + "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@sinonjs/samsam": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", + "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", + "requires": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" + }, + "@smui/button": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/button/-/button-4.2.0.tgz", + "integrity": "sha512-impnVMXWHLqBXUyjo+GKRuLOgICv2bX//JVKKV3oba8msIimdOi0BR1Ds7ecti6248eXuFlwrE4GM/oc/57G1A==", + "dev": true, + "requires": { + "@material/button": "^11.0.0", + "@material/elevation": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/theme": "^11.0.0", + "@smui/common": "^4.2.0", + "@smui/ripple": "^4.2.0" + } + }, + "@smui/common": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/common/-/common-4.2.0.tgz", + "integrity": "sha512-ersYpoqvb0hGP2lFdOtNlue5m74H/eOEtpbb5r4Sk8lmwaDh+Gj8xbX93AAE2Jfq/p6XcEmHB6CsGoATi5JHOQ==", + "dev": true, + "requires": { + "@material/dom": "^11.0.0", + "svelte": "^3.35.0" + } + }, + "@smui/floating-label": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/floating-label/-/floating-label-4.2.0.tgz", + "integrity": "sha512-EQhJkzt0AMqbBj/bxY9TmovsPVPxVcfQCZZrpfbJ0V2PqyZGOVXEjggGpa638PcRHPX44NjSSCnJNiKa6SCGEQ==", + "dev": true, + "requires": { + "@material/floating-label": "^11.0.0", + "@smui/common": "^4.2.0" + } + }, + "@smui/line-ripple": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/line-ripple/-/line-ripple-4.2.0.tgz", + "integrity": "sha512-FA/btw+A97pUGYejkdZmSSQ2V6pnAVcgY4W7qNagRlfuyxfHf7a+rFQjgj8eN4hRBSihh8hcV+Tyfo+2oCOYog==", + "dev": true, + "requires": { + "@material/line-ripple": "^11.0.0", + "@smui/common": "^4.2.0" + } + }, + "@smui/notched-outline": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/notched-outline/-/notched-outline-4.2.0.tgz", + "integrity": "sha512-6HY/N2e8jFZgtrM1xBpniYrZGhBRuM26PpFAHce6BjHB2IUDd+hdQbGmsiQnoQ6CsXhTuDyHL8c2RMfuSRbAJg==", + "dev": true, + "requires": { + "@material/notched-outline": "^11.0.0", + "@smui/common": "^4.2.0" + } + }, + "@smui/paper": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/paper/-/paper-4.2.0.tgz", + "integrity": "sha512-szeOAYwB6pyppGy5md3CdNZW59IDnwD/mw+H6vJdHuxEEe6OXvQ2rPi9ojOrHEiBz8dN8ryTKQxTrXDbrJWeNA==", + "dev": true, + "requires": { + "@material/elevation": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/typography": "^11.0.0", + "@smui/common": "^4.2.0" + } + }, + "@smui/ripple": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/ripple/-/ripple-4.2.0.tgz", + "integrity": "sha512-oTaPC/6FAYwifth9AvkUuIC5SenMPITg1yZSdD9B1Wcgi2NRAWuMDV2j6Kc+yYgv6iUCKlQ26fCxK2xmYwqhug==", + "dev": true, + "requires": { + "@material/dom": "^11.0.0", + "@material/ripple": "^11.0.0" + } + }, + "@smui/textfield": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smui/textfield/-/textfield-4.2.0.tgz", + "integrity": "sha512-4RxvxcabtPrlYiHddsF/uFjOZhA3qA/W17HyiccTKxfHpZWOxxnZvCE4CDs8LyckEvz73fSUTQOb4pqd2Of02g==", + "dev": true, + "requires": { + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/textfield": "^11.0.0", + "@smui/common": "^4.2.0", + "@smui/floating-label": "^4.2.0", + "@smui/line-ripple": "^4.2.0", + "@smui/notched-outline": "^4.2.0", + "@smui/ripple": "^4.2.0" + } + }, + "@stablelib/aead": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", + "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" + }, + "@stablelib/aes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", + "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/blockcipher": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/aes-kw": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", + "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", + "requires": { + "@stablelib/aes": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/blockcipher": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/binary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", + "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", + "requires": { + "@stablelib/int": "^1.0.1" + } + }, + "@stablelib/blockcipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", + "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" + }, + "@stablelib/bytes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", + "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" + }, + "@stablelib/chacha": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", + "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/chacha20poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", + "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", + "requires": { + "@stablelib/aead": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/poly1305": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", + "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" + }, + "@stablelib/ed25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", + "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", + "requires": { + "@stablelib/random": "^1.0.1", + "@stablelib/sha512": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/hash": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", + "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" + }, + "@stablelib/int": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", + "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" + }, + "@stablelib/keyagreement": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", + "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", + "requires": { + "@stablelib/bytes": "^1.0.1" + } + }, + "@stablelib/poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", + "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", + "requires": { + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", + "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/sha512": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", + "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/wipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", + "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" + }, + "@stablelib/x25519": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz", + "integrity": "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==", + "requires": { + "@stablelib/keyagreement": "^1.0.1", + "@stablelib/random": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/xchacha20": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", + "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/xchacha20poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", + "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", + "requires": { + "@stablelib/aead": "^1.0.1", + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1", + "@stablelib/xchacha20": "^1.0.1" + } + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@transmute/did-key-bls12381": { + "version": "0.2.1-unstable.42", + "resolved": "https://registry.npmjs.org/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz", + "integrity": "sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ==", + "requires": { + "@mattrglobal/bbs-signatures": "^0.5.0", + "@mattrglobal/bls12381-key-pair": "^0.5.0", + "base64url": "^3.0.1", + "bs58": "^4.0.1" + } + }, + "@transmute/did-key-cipher": { + "version": "0.2.1-unstable.42", + "resolved": "https://registry.npmjs.org/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz", + "integrity": "sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw==", + "requires": { + "@peculiar/webcrypto": "^1.1.3", + "@stablelib/aes-kw": "^1.0.0", + "@stablelib/xchacha20poly1305": "^1.0.0", + "@transmute/did-key-common": "^0.2.1-unstable.42", + "web-streams-polyfill": "^3.0.0" + } + }, + "@transmute/did-key-common": { + "version": "0.2.1-unstable.42", + "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz", + "integrity": "sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A==", + "requires": { + "base64url": "^3.0.1", + "borc": "^2.1.2", + "canonicalize": "^1.0.3", + "cbor": "^5.1.0" + } + }, + "@transmute/did-key-ed25519": { + "version": "0.2.1-unstable.42", "resolved": "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz", "integrity": "sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw==", "requires": { @@ -2910,8 +8993,8 @@ } }, "@transmute/did-wallet": { - "version": "git+ssh://git@github.com/lucksus/did-wallet.git#cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2", - "from": "@transmute/did-wallet@lucksus/did-wallet", + "version": "github:lucksus/did-wallet#cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2", + "from": "github:lucksus/did-wallet", "requires": { "base64url": "^3.0.1", "jsonschema": "^1.2.4", @@ -2949,6 +9032,13 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/asn1js": { @@ -3003,6 +9093,13 @@ "integrity": "sha512-1TdA9IXOy4sdqn8vgieQ6GZAiHiPNrOiO1s2GJjuYPw4QVY7gYoVjkW049avj33Ez7IcIvu43hQsMsoUFbCn2g==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/bn.js": { @@ -3011,6 +9108,13 @@ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/body-parser": { @@ -3020,6 +9124,13 @@ "requires": { "@types/connect": "*", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/component-emitter": { @@ -3033,6 +9144,13 @@ "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/content-disposition": { @@ -3054,6 +9172,13 @@ "@types/express": "*", "@types/keygrip": "*", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/cors": { @@ -3072,7 +9197,8 @@ "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true }, "@types/express": { "version": "4.17.13", @@ -3093,6 +9219,13 @@ "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/faker": { @@ -3107,6 +9240,13 @@ "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/fs-extra": { @@ -3151,11 +9291,11 @@ } }, "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "requires": { + "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, @@ -3169,12 +9309,91 @@ "pretty-format": "^27.0.0" }, "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + } + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "pretty-format": { "version": "27.2.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", @@ -3192,6 +9411,15 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -3224,6 +9452,13 @@ "@types/keygrip": "*", "@types/koa-compose": "*", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/koa-compose": { @@ -3235,9 +9470,9 @@ } }, "@types/lodash": { - "version": "4.14.172", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.172.tgz", - "integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==", + "version": "4.14.173", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", + "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==", "dev": true }, "@types/long": { @@ -3265,9 +9500,10 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "@types/node": { - "version": "14.17.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.15.tgz", - "integrity": "sha512-D1sdW0EcSCmNdLKBGMYb38YsHUS6JcM7yQ6sLQ9KuZ35ck7LYCKE7kYFHOO59ayFOY3zobWVZxf4KXhYHcHYFA==" + "version": "14.17.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.17.tgz", + "integrity": "sha512-niAjcewgEYvSPCZm3OaM9y6YQrL2SEPH9PymtE6fuZAvFiP6ereCcvApGl2jKTq7copTIguX3PBvfP08LN4LvQ==", + "dev": true }, "@types/node-fetch": { "version": "2.5.12", @@ -3277,6 +9513,19 @@ "requires": { "@types/node": "*", "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } } }, "@types/pbkdf2": { @@ -3285,6 +9534,13 @@ "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/prettier": { @@ -3313,6 +9569,7 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, "requires": { "@types/node": "*" } @@ -3328,6 +9585,13 @@ "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/serve-static": { @@ -3337,6 +9601,13 @@ "requires": { "@types/mime": "^1", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/sha256": { @@ -3349,10 +9620,9 @@ } }, "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" }, "@types/uuid": { "version": "8.3.1", @@ -3366,13 +9636,19 @@ "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", "requires": { "@types/yargs-parser": "*" } @@ -3395,30 +9671,20 @@ "dev": true, "requires": { "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } } }, "@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "dev": true, + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", + "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", "requires": { - "tslib": "^2.3.0" + "tslib": "^1.9.3" }, "dependencies": { "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -3429,14 +9695,6 @@ "dev": true, "requires": { "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } } }, "@zxing/text-encoding": { @@ -3609,6 +9867,11 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -3647,25 +9910,22 @@ } }, "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "optional": true }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" } }, "any-signal": { @@ -3678,13 +9938,12 @@ } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "apollo-cache-control": { @@ -3726,13 +9985,10 @@ "zen-observable-ts": "^0.8.21" }, "dependencies": { - "ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "requires": { - "tslib": "^1.9.3" - } + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -3843,6 +10099,11 @@ "@types/connect": "*", "@types/node": "*" } + }, + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" } } }, @@ -3884,21 +10145,10 @@ "tslib": "^1.10.0" }, "dependencies": { - "@wry/equality": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", - "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", - "requires": { - "tslib": "^1.9.3" - } - }, - "ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "requires": { - "tslib": "^1.9.3" - } + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -3916,11 +10166,6 @@ "readable-stream": "^2.0.6" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -3966,14 +10211,6 @@ "mri": "1.1.4" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, "camelcase": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", @@ -3984,34 +10221,16 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -4044,14 +10263,6 @@ "optional": true, "requires": { "typical": "^2.6.1" - }, - "dependencies": { - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - } } }, "array-find-index": { @@ -4110,13 +10321,6 @@ "integrity": "sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g==", "requires": { "pvutils": "^1.0.17" - }, - "dependencies": { - "pvutils": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", - "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" - } } }, "assert-plus": { @@ -4194,19 +10398,107 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "babel-jest": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.1.1.tgz", - "integrity": "sha512-JA+dzJl4n2RBvWQEnph6HJaTHrsIPiXGQYatt/D8nR4UpX9UG4GaDzykVVPQBbrdTebZREkRb6SOxyIXJRab6Q==", + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.2.0.tgz", + "integrity": "sha512-bS2p+KGGVVmWXBa8+i6SO/xzpiz2Q/2LnqLbQknPKefWXVZ67YIjA4iXup/jMOEZplga9PpWn+wrdb3UdDwRaA==", "dev": true, "requires": { - "@jest/transform": "^27.1.1", + "@jest/transform": "^27.2.0", "@jest/types": "^27.1.1", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.0.6", + "babel-preset-jest": "^27.2.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "slash": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "dev": true, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "babel-plugin-dynamic-import-node": { @@ -4231,9 +10523,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz", - "integrity": "sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==", + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz", + "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -4336,12 +10628,12 @@ } }, "babel-preset-jest": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz", - "integrity": "sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==", + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz", + "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^27.0.6", + "babel-plugin-jest-hoist": "^27.2.0", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -4376,6 +10668,32 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -4430,9 +10748,9 @@ } }, "big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + "version": "1.6.49", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.49.tgz", + "integrity": "sha512-KJ7VhqH+f/BOt9a3yMwJNmcZjG53ijWMTjSAGMveQWyLwqIiwkjNP5PFgDob3Snnx86SjDj6I89fIbv0dkQeNw==" }, "big.js": { "version": "5.2.2", @@ -4512,10 +10830,9 @@ } }, "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "bn.js": { "version": "4.12.0", @@ -4539,6 +10856,14 @@ "type-is": "~1.6.17" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -4556,6 +10881,11 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -4584,29 +10914,64 @@ } }, "boxen": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", "chalk": "^4.1.0", "cli-boxes": "^2.2.1", - "string-width": "^4.2.0", + "string-width": "^4.2.2", "type-fest": "^0.20.2", "widest-line": "^3.1.0", "wrap-ansi": "^7.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "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==" }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -4623,10 +10988,31 @@ "strip-ansi": "^6.0.0" } }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.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" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } } } }, @@ -4640,12 +11026,30 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "fill-range": "^7.0.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "brorand": { @@ -4836,13 +11240,6 @@ "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", "requires": { "node-gyp-build": "^4.2.0" - }, - "dependencies": { - "node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" - } } }, "bufio": { @@ -4853,7 +11250,8 @@ "builtin-modules": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true }, "builtins": { "version": "1.0.3", @@ -4968,13 +11366,6 @@ "requires": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "camelcase": { @@ -5013,9 +11404,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001255", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz", - "integrity": "sha512-F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==" + "version": "1.0.30001258", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001258.tgz", + "integrity": "sha512-RBByOG6xWXUp0CR2/WU2amXz3stjKpSl5J1xU49F1n2OxD//uBZO4wCKUiG+QMGf7CHGfDDcqoKriomoGVxTeA==" }, "canonicalize": { "version": "1.0.5", @@ -5030,13 +11421,6 @@ "no-case": "^3.0.4", "tslib": "^2.0.3", "upper-case-first": "^2.0.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "capture-exit": { @@ -5089,12 +11473,13 @@ } }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "change-case": { @@ -5114,13 +11499,6 @@ "sentence-case": "^3.0.4", "snake-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "char-regex": { @@ -5154,6 +11532,64 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "chownr": { @@ -5162,10 +11598,9 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, "cid-tool": { "version": "1.0.0", @@ -5181,20 +11616,10 @@ "yargs": "^15.0.2" }, "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -5220,6 +11645,14 @@ "strip-ansi": "^6.0.0" } }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, "uint8arrays": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", @@ -5229,21 +11662,6 @@ "web-encoding": "^1.0.2" } }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, "yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", @@ -5261,15 +11679,6 @@ "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -5347,62 +11756,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -5432,19 +11785,19 @@ "optional": true }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^6.2.0" }, "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -5460,6 +11813,14 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } } } }, @@ -5498,15 +11859,6 @@ "q": "^1.1.2" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -5518,21 +11870,6 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -5583,37 +11920,20 @@ "requires": { "color-convert": "^1.9.3", "color-string": "^1.6.0" - }, - "dependencies": { - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } } }, "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==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "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==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-string": { "version": "1.6.0", @@ -5647,14 +11967,6 @@ "array-back": "^2.0.0", "find-replace": "^1.0.3", "typical": "^2.6.1" - }, - "dependencies": { - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - } } }, "command-line-commands": { @@ -5676,14 +11988,6 @@ "array-back": "^2.0.0", "table-layout": "^0.4.2", "typical": "^2.6.1" - }, - "dependencies": { - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - } } }, "commander": { @@ -5727,11 +12031,6 @@ "typedarray": "^0.0.6" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5792,6 +12091,21 @@ "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "console-clear": { @@ -5812,13 +12126,6 @@ "no-case": "^3.0.4", "tslib": "^2.0.3", "upper-case": "^2.0.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "content-disposition": { @@ -5991,9 +12298,9 @@ "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "cors": { "version": "2.8.5", @@ -6083,29 +12390,13 @@ } }, "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "crypto-browserify": { @@ -6661,11 +12952,12 @@ "integrity": "sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==" }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "optional": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "decamelize": { @@ -6720,7 +13012,8 @@ "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true }, "default-gateway": { "version": "6.0.3", @@ -6759,6 +13052,34 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delay": { @@ -6972,13 +13293,6 @@ "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "dot-prop": { @@ -6998,12 +13312,6 @@ "readable-stream": "^2.0.2" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -7071,9 +13379,9 @@ } }, "electron-to-chromium": { - "version": "1.3.834", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.834.tgz", - "integrity": "sha512-9hnYJOlj2zbVn59Oy1R2mW/jntsRG7Gy56/aAOq8s29DzDYW/kOrq/ryJXGAQRRMg4MreHjI63XavGZTsnPubg==" + "version": "1.3.842", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.842.tgz", + "integrity": "sha512-P/nDMPIYdb2PyqCQwhTXNi5JFjX1AsDVR0y6FrHw752izJIAJ+Pn5lugqyBq4tXeRSZBMBb2ZGvRGB1djtELEQ==" }, "elliptic": { "version": "6.5.4", @@ -7096,9 +13404,9 @@ "dev": true }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "emojis-list": { "version": "3.0.0", @@ -7174,11 +13482,6 @@ "ms": "^2.1.1" } }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", @@ -7212,6 +13515,11 @@ "ms": "2.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", @@ -7489,6 +13797,11 @@ "@types/node": "*" } }, + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + }, "bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", @@ -7571,35 +13884,17 @@ "strip-final-newline": "^2.0.0" }, "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { - "isexe": "^2.0.0" + "mimic-fn": "^2.1.0" } } } @@ -7629,104 +13924,255 @@ "to-regex": "^3.0.1" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "expect": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.2.0.tgz", + "integrity": "sha512-oOTbawMQv7AK1FZURbPTgGSzmhxkjFzoARSvDjOMnOpeWuYQx1tP6rXu9MIX5mrACmyCAM7fSNP8IJO2f1p0CQ==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-styles": "^5.0.0", + "jest-get-type": "^27.0.6", + "jest-matcher-utils": "^27.2.0", + "jest-message-util": "^27.2.0", + "jest-regex-util": "^27.0.6" + }, + "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "fill-range": "^7.0.1" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { - "kind-of": "^3.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "color-convert": "^2.0.1" } } } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "to-regex-range": "^5.0.1" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "expect": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.1.1.tgz", - "integrity": "sha512-JQAzp0CJoFFHF1RnOtrMUNMdsfx/Tl0+FhRzVl8q0fa23N+JyWdPXwb3T5rkHCvyo9uttnK7lVdKCBl1b/9EDw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-regex-util": "^27.0.6" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, @@ -7772,6 +14218,19 @@ "vary": "~1.1.2" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -7811,6 +14270,16 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "external-editor": { @@ -7822,17 +14291,6 @@ "chardet": "^0.4.0", "iconv-lite": "^0.4.17", "tmp": "^0.0.33" - }, - "dependencies": { - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "optional": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - } } }, "extglob": { @@ -7866,10 +14324,31 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -7997,12 +14476,24 @@ "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==" }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "to-regex-range": "^5.0.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "finalhandler": { @@ -8017,6 +14508,21 @@ "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "find-cache-dir": { @@ -8029,23 +14535,6 @@ "pkg-dir": "^3.0.0" }, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -8054,45 +14543,6 @@ "pify": "^4.0.1", "semver": "^5.6.0" } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, @@ -8113,13 +14563,7 @@ "optional": true, "requires": { "typical": "^2.6.0" - } - }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true + } } } }, @@ -8130,13 +14574,6 @@ "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" - }, - "dependencies": { - "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==" - } } }, "flatstr": { @@ -8173,12 +14610,12 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, @@ -8230,10 +14667,14 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } }, "fstream": { "version": "1.0.12", @@ -8245,17 +14686,6 @@ "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } } }, "function-bind": { @@ -8663,1162 +15093,2324 @@ }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "optional": true + } + } + }, + "generic-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", + "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-browser-rtc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz", + "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-folder-size": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz", + "integrity": "sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==", + "requires": { + "gar": "^1.0.4", + "tiny-each-async": "2.0.3" + } + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "git-config": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", + "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", + "optional": true, + "requires": { + "iniparser": "~1.0.5" + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "requires": { + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "requires": { + "define-properties": "^1.1.3" + } + }, + "globule": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", + "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "glob": "^7.1.3" + "pump": "^3.0.0" } }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + } + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "graphql": { + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", + "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + }, + "graphql-extensions": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz", + "integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==", + "requires": { + "@apollographql/apollo-tools": "^0.5.0", + "apollo-server-env": "^3.1.0", + "apollo-server-types": "^0.9.0" + } + }, + "graphql-subscriptions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", + "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", + "requires": { + "iterall": "^1.3.0" + } + }, + "graphql-tag": { + "version": "2.12.5", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz", + "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==", + "requires": { + "tslib": "^2.1.0" + } + }, + "graphql-tools": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", + "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", + "requires": { + "apollo-link": "^1.2.14", + "apollo-utilities": "^1.0.1", + "deprecated-decorator": "^0.1.6", + "iterall": "^1.1.3", + "uuid": "^3.1.0" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "hamt-sharding": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-1.0.0.tgz", + "integrity": "sha512-jDk8N1U8qprvSt3KopOrrP46zUogxeZY+znDHP196MLBQKldld0TQFTneT1bxOFDw8vttbAQy1bG7L3/pzYorg==", + "requires": { + "sparse-array": "^1.3.1" + } + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "optional": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "hapi-pino": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.3.0.tgz", + "integrity": "sha512-8Cm1WIs6jp8B9ZzYqPFbCWNKt6F6jNCfLmCIHmPsm35sTOvT/r5+d9KpYR2vigWQRLS23VBXzOqUVESpP7r+jA==", + "requires": { + "@hapi/hoek": "^9.0.0", + "abstract-logging": "^2.0.0", + "pino": "^6.0.0", + "pino-pretty": "^4.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "safe-buffer": "~5.1.0" + "is-buffer": "^1.1.5" } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, + } + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hashlru": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", + "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" + }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "requires": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "heap": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", + "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=" + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dev": true, + "requires": { + "react-is": "^16.7.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http-errors": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", + "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ms": "2.1.2" } }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "ms": "2.1.2" } }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", + "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" + }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + }, + "import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "requires": { + "import-from": "^3.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "find-up": "^4.0.0" } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "optional": true } } }, - "generic-names": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", - "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", - "dev": true, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "loader-utils": "^1.1.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "get-browser-rtc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz", - "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==" + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "iniparser": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", + "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", + "optional": true }, - "get-folder-size": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz", - "integrity": "sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==", + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "optional": true, "requires": { - "gar": "^1.0.4", - "tiny-each-async": "2.0.3" + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" + "interface-datastore": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-3.0.6.tgz", + "integrity": "sha512-ruF9CVmtKCNfzCZYW6YeEKDRDbgFaiKGrSWof19BVCv6Qx/WrL1jRV4sCQUHCaXwJI7FCFknhw++PGafWCXvfw==", + "requires": { + "err-code": "^3.0.1", + "ipfs-utils": "^6.0.0", + "iso-random-stream": "^2.0.0", + "it-all": "^1.0.2", + "it-drain": "^1.0.1", + "nanoid": "^3.0.2" + }, + "dependencies": { + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + } + } }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "requires": { - "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.0", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "side-channel": "^1.0.4" } }, - "get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, - "get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + "ip-address": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-7.1.0.tgz", + "integrity": "sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==", + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "1.1.2" + } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true + "ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "ipfs": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.54.5.tgz", + "integrity": "sha512-vmp/wK9gchCFH/n2W/r863TvQczHNKS2+OsCaGKhAJNJ08dgHuzffmcfW+pdg/WDTmgFGF+1+ZF555EuL/Uh7A==", + "requires": { + "debug": "^4.1.1", + "ipfs-cli": "^0.4.5", + "ipfs-core": "^0.5.4", + "ipfs-repo": "^8.0.0", + "semver": "^7.3.2", + "update-notifier": "^5.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "ipfs-bitswap": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-4.0.2.tgz", + "integrity": "sha512-9fYoCL7G0Qu3z4r99j2xVWLbYnB9kK+JdTSEt1XNquPW8tA89U44ZfLxaq2C/LuxbQLkV0/C26WZtrCd1QYllQ==", + "requires": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.1", + "bignumber.js": "^9.0.0", + "cids": "^1.0.0", + "debug": "^4.1.0", + "ipld-block": "^0.11.0", + "it-length-prefixed": "^3.0.0", + "it-pipe": "^1.1.0", + "just-debounce-it": "^1.1.0", + "libp2p-interfaces": "^0.8.3", + "moving-average": "^1.0.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.1", + "protons": "^2.0.0", + "streaming-iterables": "^5.0.2", + "uint8arrays": "^2.0.5", + "varint-decoder": "^1.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } + } + } + } + }, + "ipfs-block-service": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/ipfs-block-service/-/ipfs-block-service-0.18.0.tgz", + "integrity": "sha512-tye5Uxbf3bYlfcGkV3CspP2JNcM2Ggm/5Kxph0jGKtAZtgfFxUq3NeSmvS6nGtZZBaFP4nwRF2yq7dQMALWzVg==", "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "err-code": "^2.0.0", + "streaming-iterables": "^5.0.2" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "ipfs-cli": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.4.5.tgz", + "integrity": "sha512-CrRACkyk6WysKs+AHuPk5TyOqDXkYOiti4qzxSeNg7tqiKb2MOJ8XjhCib15ojiUE2RPhjA3DTRS3tsc4tMitw==", "requires": { - "assert-plus": "^1.0.0" + "bignumber.js": "^9.0.1", + "byteman": "^1.3.5", + "cid-tool": "^1.0.0", + "cids": "^1.1.5", + "debug": "^4.1.1", + "err-code": "^2.0.3", + "execa": "^5.0.0", + "get-folder-size": "^2.0.1", + "ipfs-core": "^0.5.4", + "ipfs-core-utils": "^0.7.2", + "ipfs-daemon": "^0.5.5", + "ipfs-http-client": "^49.0.4", + "ipfs-repo": "^8.0.0", + "ipfs-utils": "^6.0.1", + "ipld-dag-cbor": "^0.17.0", + "ipld-dag-pb": "^0.20.0", + "it-all": "^1.0.4", + "it-concat": "^1.0.1", + "it-first": "^1.0.4", + "it-glob": "0.0.11", + "it-pipe": "^1.1.0", + "jsondiffpatch": "^0.4.1", + "libp2p-crypto": "^0.19.0", + "mafmt": "^8.0.0", + "multiaddr": "^8.0.0", + "multiaddr-to-uri": "^6.0.0", + "multibase": "^4.0.2", + "multihashing-async": "^2.1.2", + "parse-duration": "^0.4.4", + "peer-id": "^0.14.1", + "pretty-bytes": "^5.4.1", + "progress": "^2.0.3", + "stream-to-it": "^0.2.2", + "streaming-iterables": "^5.0.2", + "uint8arrays": "^2.1.3", + "yargs": "^16.0.3" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, - "git-config": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", - "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", - "optional": true, + "ipfs-core": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.5.4.tgz", + "integrity": "sha512-gyv3slu7FuaN1wxfDPhNoWiTSvUJ1pq0Nx2NsU3WWzOvKCaacHtE8HXO51AAuQUMUEN0thYGzVHziHGLI9udNQ==", "requires": { - "iniparser": "~1.0.5" + "abort-controller": "^3.0.0", + "array-shuffle": "^2.0.0", + "bignumber.js": "^9.0.1", + "cbor": "^6.0.1", + "cids": "^1.1.5", + "class-is": "^1.1.0", + "dag-cbor-links": "^2.0.0", + "datastore-core": "^3.0.0", + "datastore-pubsub": "^0.4.1", + "debug": "^4.1.1", + "dlv": "^1.1.3", + "err-code": "^2.0.3", + "hamt-sharding": "^1.0.0", + "hashlru": "^2.3.0", + "interface-datastore": "^3.0.3", + "ipfs-bitswap": "^4.0.2", + "ipfs-block-service": "^0.18.0", + "ipfs-core-types": "^0.3.1", + "ipfs-core-utils": "^0.7.2", + "ipfs-repo": "^8.0.0", + "ipfs-unixfs": "^2.0.3", + "ipfs-unixfs-exporter": "^3.0.4", + "ipfs-unixfs-importer": "^5.0.0", + "ipfs-utils": "^6.0.1", + "ipld": "^0.28.0", + "ipld-block": "^0.11.0", + "ipld-dag-cbor": "^0.17.0", + "ipld-dag-pb": "^0.20.0", + "ipld-raw": "^6.0.0", + "ipns": "^0.8.0", + "is-domain-name": "^1.0.1", + "is-ipfs": "^2.0.0", + "it-all": "^1.0.4", + "it-first": "^1.0.4", + "it-last": "^1.0.4", + "it-pipe": "^1.1.0", + "libp2p": "^0.30.7", + "libp2p-bootstrap": "^0.12.1", + "libp2p-crypto": "^0.19.0", + "libp2p-floodsub": "^0.24.1", + "libp2p-gossipsub": "^0.8.0", + "libp2p-kad-dht": "^0.20.1", + "libp2p-mdns": "^0.15.0", + "libp2p-mplex": "^0.10.0", + "libp2p-noise": "^2.0.1", + "libp2p-record": "^0.9.0", + "libp2p-tcp": "^0.15.1", + "libp2p-webrtc-star": "^0.21.0", + "libp2p-websockets": "^0.15.1", + "mafmt": "^8.0.0", + "merge-options": "^3.0.4", + "mortice": "^2.0.0", + "multiaddr": "^8.0.0", + "multiaddr-to-uri": "^6.0.0", + "multibase": "^4.0.2", + "multicodec": "^3.0.1", + "multihashing-async": "^2.1.2", + "native-abort-controller": "^1.0.3", + "p-queue": "^6.6.1", + "parse-duration": "^0.4.4", + "peer-id": "^0.14.1", + "streaming-iterables": "^5.0.2", + "uint8arrays": "^2.1.3" + }, + "dependencies": { + "cbor": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-6.0.1.tgz", + "integrity": "sha512-gVJ2e/DFInWOriOUqNyrZe5xN8RSK49X7G+pLalz32GwKs1xHNXtrkcbV5K4+Z2X7qJiv6f700PnUEaJoIEPGQ==", + "requires": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "ipfs-core-types": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.3.1.tgz", + "integrity": "sha512-xPBsowS951RsuskMo86AWz9y4ReaBot1YsjOhZvKl8ORd8taxIBTT72LnEPwIZ2G24U854Zjxvd/qUMqO14ivg==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "cids": "^1.1.5", + "multiaddr": "^8.0.0", + "peer-id": "^0.14.1" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "ipfs-core-utils": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.7.2.tgz", + "integrity": "sha512-d7T72GxvhNN+tEHsJjxI5Y4LQVdMMbSwNbWB6nVsIHUEdwm3w85L2u1E/ctNd9aaNGvoBwEcnIZhSmqhMf7stw==", "requires": { - "is-glob": "^4.0.1" + "any-signal": "^2.1.2", + "blob-to-it": "^1.0.1", + "browser-readablestream-to-it": "^1.0.1", + "cids": "^1.1.5", + "err-code": "^2.0.3", + "ipfs-core-types": "^0.3.1", + "ipfs-utils": "^6.0.1", + "it-all": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.1", + "multiaddr": "^8.0.0", + "multiaddr-to-uri": "^6.0.0", + "parse-duration": "^0.4.4", + "timeout-abort-controller": "^1.1.1", + "uint8arrays": "^2.1.3" } }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "ipfs-daemon": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.5.5.tgz", + "integrity": "sha512-GZnWy3MqJ/zgJxMByEuK6d0tphRV24H+y83ej4+ORjcjgwB/qBrJlYC3qtwPQAZJcLg+jMxGU+UK1xU91paPXA==", "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "debug": "^4.1.1", + "dlv": "^1.1.3", + "ipfs-core": "^0.5.4", + "ipfs-grpc-server": "^0.2.5", + "ipfs-http-client": "^49.0.4", + "ipfs-http-gateway": "^0.3.2", + "ipfs-http-server": "^0.3.5", + "ipfs-utils": "^6.0.1", + "just-safe-set": "^2.1.0", + "libp2p": "^0.30.7", + "libp2p-delegated-content-routing": "^0.9.0", + "libp2p-delegated-peer-routing": "^0.8.0", + "libp2p-webrtc-star": "^0.21.0", + "multiaddr": "^8.0.0", + "prom-client": "^12.0.0", + "prometheus-gc-stats": "^0.6.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "prom-client": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz", + "integrity": "sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ==", + "optional": true, + "requires": { + "tdigest": "^0.1.1" + } + } } }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "ipfs-grpc-protocol": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.2.0.tgz", + "integrity": "sha512-XQB67HO8ti36HhGxompsoZxKfareIE6jetOAWVrfbKyPVi75JtUjQ7euhNxbxw2xS3/H8Jd8bsIU/qwKe1tVig==" + }, + "ipfs-grpc-server": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.2.5.tgz", + "integrity": "sha512-mAGRI4n7hKpBb3kwFpi9Bn2elLJFA2vzNuAlKCn9o4JTlhiCIa1ocCqNvTaN7nGcEvDeFmA1YgPVVUA0Ot17Lw==", "requires": { - "ini": "2.0.0" + "@grpc/grpc-js": "^1.1.8", + "change-case": "^4.1.1", + "coercer": "^1.1.2", + "debug": "^4.1.1", + "ipfs-grpc-protocol": "^0.2.0", + "it-first": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.1", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.0", + "protobufjs": "^6.10.2", + "ws": "^7.3.1" }, "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globalthis": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "ipfs-http-client": { + "version": "49.0.4", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-49.0.4.tgz", + "integrity": "sha512-qgWbkcB4glQrUkE2tZR+GVXyrO6aJyspWBjyct/6TzrhCHx7evjz+kUTK+wNm4S9zccUePEml5VNZUmUhoQtbA==", "requires": { - "define-properties": "^1.1.3" + "abort-controller": "^3.0.0", + "any-signal": "^2.1.2", + "bignumber.js": "^9.0.1", + "cids": "^1.1.5", + "debug": "^4.1.1", + "form-data": "^3.0.0", + "ipfs-core-types": "^0.3.1", + "ipfs-core-utils": "^0.7.2", + "ipfs-utils": "^6.0.1", + "ipld-block": "^0.11.0", + "ipld-dag-cbor": "^0.17.0", + "ipld-dag-pb": "^0.20.0", + "ipld-raw": "^6.0.0", + "it-last": "^1.0.4", + "it-map": "^1.0.4", + "it-tar": "^1.2.2", + "it-to-stream": "^0.1.2", + "merge-options": "^3.0.4", + "multiaddr": "^8.0.0", + "multibase": "^4.0.2", + "multicodec": "^3.0.1", + "multihashes": "^4.0.2", + "nanoid": "^3.1.12", + "native-abort-controller": "^1.0.3", + "parse-duration": "^0.4.4", + "stream-to-it": "^0.2.2", + "uint8arrays": "^2.1.3" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "it-to-stream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", + "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", + "requires": { + "buffer": "^5.6.0", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "requires": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "dependencies": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } } }, - "globule": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", - "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", - "dev": true, + "ipfs-http-gateway": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.3.2.tgz", + "integrity": "sha512-yb+dbv7ZF5or6rsGm0FF2PSGE4OvJSnEqdOf5JjEokf43gRHBVe4QpiMBWZahRET3bZZ3IfjLOPWkCptE/eNVA==", "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" + "@hapi/ammo": "^5.0.1", + "@hapi/boom": "^9.1.0", + "@hapi/hapi": "^20.0.0", + "cids": "^1.1.5", + "debug": "^4.1.1", + "hapi-pino": "^8.3.0", + "ipfs-core-utils": "^0.7.2", + "ipfs-http-response": "^0.6.0", + "is-ipfs": "^2.0.0", + "it-last": "^1.0.4", + "it-to-stream": "^0.1.2", + "joi": "^17.2.1", + "multibase": "^4.0.2", + "uint8arrays": "^2.1.3", + "uri-to-multiaddr": "^4.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "it-to-stream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", + "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", + "requires": { + "buffer": "^5.6.0", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "ipfs-http-response": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-0.6.4.tgz", + "integrity": "sha512-ltQgWaK72IJC7wmwrCZdhewA5Rq2G666y9R4CXkU1rgcqvXDyC0izEDJZN9xNXg17ib9ieS3Dcqc4k+A1te8xw==", "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "debug": "^4.1.1", + "file-type": "^16.0.0", + "filesize": "^6.1.0", + "it-buffer": "^0.1.1", + "it-concat": "^2.0.0", + "it-reader": "^3.0.0", + "it-to-stream": "^1.0.0", + "mime-types": "^2.1.27", + "multihashes": "^4.0.2", + "p-try-each": "^1.0.1" }, "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "it-concat": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", + "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", "requires": { - "pump": "^3.0.0" + "bl": "^5.0.0" } }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "it-reader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", + "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", + "requires": { + "bl": "^5.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "requires": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + } + }, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" } } }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" - }, - "graphql-extensions": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz", - "integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==", - "requires": { - "@apollographql/apollo-tools": "^0.5.0", - "apollo-server-env": "^3.1.0", - "apollo-server-types": "^0.9.0" - } - }, - "graphql-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", - "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", - "requires": { - "iterall": "^1.3.0" - } - }, - "graphql-tag": { - "version": "2.12.5", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz", - "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==", + "ipfs-http-server": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.3.5.tgz", + "integrity": "sha512-mGMO2iPEINVpKCxndRfkVQXCzdG47x4Fa8GnvhFPFXBfbJDGqBQGXVYiR6gjyC6DjmRVNE2vipany2qx3fekDg==", "requires": { - "tslib": "^2.1.0" + "@hapi/boom": "^9.1.0", + "@hapi/content": "^5.0.2", + "@hapi/hapi": "^20.0.0", + "abort-controller": "^3.0.0", + "cids": "^1.1.5", + "debug": "^4.1.1", + "dlv": "^1.1.3", + "err-code": "^2.0.3", + "hapi-pino": "^8.3.0", + "ipfs-core-utils": "^0.7.2", + "ipfs-http-gateway": "^0.3.2", + "ipfs-unixfs": "^2.0.3", + "ipld-dag-pb": "^0.20.0", + "it-all": "^1.0.4", + "it-drain": "^1.0.3", + "it-first": "^1.0.4", + "it-last": "^1.0.4", + "it-map": "^1.0.4", + "it-multipart": "^1.0.5", + "it-pipe": "^1.1.0", + "it-tar": "^1.2.2", + "it-to-stream": "^0.1.2", + "iterable-ndjson": "^1.1.0", + "joi": "^17.2.1", + "just-safe-set": "^2.1.0", + "multiaddr": "^8.0.0", + "multibase": "^4.0.2", + "multicodec": "^3.0.1", + "multihashing-async": "^2.1.2", + "native-abort-controller": "^1.0.3", + "parse-duration": "^0.4.4", + "prom-client": "^12.0.0", + "stream-to-it": "^0.2.2", + "streaming-iterables": "^5.0.2", + "uint8arrays": "^2.1.3", + "uri-to-multiaddr": "^4.0.0" }, "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "it-to-stream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", + "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", + "requires": { + "buffer": "^5.6.0", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "prom-client": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz", + "integrity": "sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ==", + "optional": true, + "requires": { + "tdigest": "^0.1.1" + } } } }, - "graphql-tools": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", - "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", + "ipfs-repo": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-8.0.0.tgz", + "integrity": "sha512-NFdoVFYbhIn48JGJEbMq6890RTbdgXnfKKnBTO5sE1Dk0ByR3ncGDKmUtiTsfbZbBbpmmeKmfdLNTBzUYFXIfg==", "requires": { - "apollo-link": "^1.2.14", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" + "bignumber.js": "^9.0.0", + "bytes": "^3.1.0", + "cids": "^1.0.0", + "datastore-core": "^3.0.0", + "datastore-fs": "^3.0.0", + "datastore-level": "^4.0.0", + "debug": "^4.1.0", + "err-code": "^2.0.0", + "interface-datastore": "^3.0.3", + "ipfs-repo-migrations": "^6.0.0", + "ipfs-utils": "^6.0.0", + "ipld-block": "^0.11.0", + "it-map": "^1.0.2", + "it-pushable": "^1.4.0", + "just-safe-get": "^2.0.0", + "just-safe-set": "^2.1.0", + "multibase": "^3.0.0", + "p-queue": "^6.0.0", + "proper-lockfile": "^4.0.0", + "sort-keys": "^4.0.0", + "uint8arrays": "^2.0.5" }, "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } } } }, - "hamt-sharding": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-1.0.0.tgz", - "integrity": "sha512-jDk8N1U8qprvSt3KopOrrP46zUogxeZY+znDHP196MLBQKldld0TQFTneT1bxOFDw8vttbAQy1bG7L3/pzYorg==", - "requires": { - "sparse-array": "^1.3.1" - } - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "optional": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "hapi-pino": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.3.0.tgz", - "integrity": "sha512-8Cm1WIs6jp8B9ZzYqPFbCWNKt6F6jNCfLmCIHmPsm35sTOvT/r5+d9KpYR2vigWQRLS23VBXzOqUVESpP7r+jA==", - "requires": { - "@hapi/hoek": "^9.0.0", - "abstract-logging": "^2.0.0", - "pino": "^6.0.0", - "pino-pretty": "^4.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, + "ipfs-repo-migrations": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-6.0.0.tgz", + "integrity": "sha512-kX+ddMtN4aCxZNfMbxlt48Go+9eu4Mkbsv/feLI3XwL/yjlfkqU2lSG7DiqBLCZ0rSrpOTRXhxg/zUYXzLC7cA==", "requires": { - "ansi-regex": "^2.0.0" + "cbor": "^6.0.1", + "cids": "^1.0.0", + "datastore-core": "^3.0.0", + "debug": "^4.1.0", + "fnv1a": "^1.0.1", + "interface-datastore": "^3.0.3", + "ipld-dag-pb": "^0.20.0", + "it-length": "^1.0.1", + "multibase": "^3.0.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.0", + "proper-lockfile": "^4.1.1", + "protons": "^2.0.0", + "uint8arrays": "^2.0.5", + "varint": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "cbor": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-6.0.1.tgz", + "integrity": "sha512-gVJ2e/DFInWOriOUqNyrZe5xN8RSK49X7G+pLalz32GwKs1xHNXtrkcbV5K4+Z2X7qJiv6f700PnUEaJoIEPGQ==", + "requires": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } + } } } }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "ipfs-unixfs": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-2.0.4.tgz", + "integrity": "sha512-b8dL8DZSwv0G3WTy8XnH1+Vzj/UydNI4yK/7/j3Ywyx+3yAQW566bdgaW1zvEFWTT3tBK1h3iJrRNHRs3CnBJA==", "requires": { - "has-symbols": "^1.0.2" + "err-code": "^2.0.0", + "protons": "^2.0.0" } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "ipfs-unixfs-exporter": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-3.0.7.tgz", + "integrity": "sha512-ZYpE8SVLcvxDVb9+aKwthf7a4gRFSHqbEJaVrvVOpeXKSG66WTrI0KQR14sIk0v4SYOaUSWrWVXsSjUbONrVHg==", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "cids": "^1.0.0", + "err-code": "^2.0.0", + "hamt-sharding": "^1.0.0", + "ipfs-unixfs": "^2.0.4", + "ipfs-utils": "^5.0.0", + "it-last": "^1.0.1", + "multihashing-async": "^2.0.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "ipfs-utils": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz", + "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==", + "requires": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^2.0.0", + "fs-extra": "^9.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.0.0", + "it-glob": "0.0.10", + "it-to-stream": "^0.1.2", + "merge-options": "^2.0.0", + "nanoid": "^3.1.3", + "native-abort-controller": "0.0.3", + "native-fetch": "^2.0.0", + "node-fetch": "^2.6.0", + "stream-to-it": "^0.2.0" + } + }, + "iso-url": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", + "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" + }, + "it-glob": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", + "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", + "requires": { + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4" + } + }, + "it-to-stream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", + "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", + "requires": { + "buffer": "^5.6.0", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "merge-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", + "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", + "requires": { + "is-plain-obj": "^2.0.0" + } + }, + "native-abort-controller": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", + "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", + "requires": { + "globalthis": "^1.0.1" + } + }, + "native-fetch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", + "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", + "requires": { + "globalthis": "^1.0.1" + } + } } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "ipfs-unixfs-importer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-5.0.0.tgz", + "integrity": "sha512-bvdnCXwwCj72w/FQ7o6XcvrcbCUgXrruK0UZOfhl/mf44Nv0DWyn1Y4hQF/u63rJvYLQdAMlqniAAtFQpHQhcg==", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "bl": "^4.0.0", + "err-code": "^2.0.0", + "hamt-sharding": "^1.0.0", + "ipfs-unixfs": "^2.0.4", + "ipfs-utils": "^5.0.0", + "ipld-dag-pb": "^0.20.0", + "it-all": "^1.0.1", + "it-batch": "^1.0.3", + "it-first": "^1.0.1", + "it-parallel-batch": "^1.0.3", + "merge-options": "^3.0.3", + "multihashing-async": "^2.0.0", + "rabin-wasm": "^0.1.1", + "uint8arrays": "^1.1.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "ipfs-utils": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz", + "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==", "requires": { - "kind-of": "^3.0.2" + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^2.0.0", + "fs-extra": "^9.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.0.0", + "it-glob": "0.0.10", + "it-to-stream": "^0.1.2", + "merge-options": "^2.0.0", + "nanoid": "^3.1.3", + "native-abort-controller": "0.0.3", + "native-fetch": "^2.0.0", + "node-fetch": "^2.6.0", + "stream-to-it": "^0.2.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "merge-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", + "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", "requires": { - "is-buffer": "^1.1.5" + "is-plain-obj": "^2.0.0" } } } }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "iso-url": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", + "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" + }, + "it-glob": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", + "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", "requires": { - "is-buffer": "^1.1.5" + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4" } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hashlru": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" - }, - "header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "requires": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "heap": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", - "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=" - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, - "requires": { - "react-is": "^16.7.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, + }, + "it-to-stream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", + "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", "requires": { - "ms": "2.1.2" + "buffer": "^5.6.0", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "native-abort-controller": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", + "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", + "requires": { + "globalthis": "^1.0.1" + } + }, + "native-fetch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", + "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", + "requires": { + "globalthis": "^1.0.1" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, + "ipfs-utils": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-6.0.8.tgz", + "integrity": "sha512-mDDQaDisI/uWk+X08wyw+jBcq76IXwMjgyaoyEgJDb/Izb+QbBCSJjo9q+EvbMxh6/l6q0NiAfbbsxEyQYPW9w==", "requires": { - "agent-base": "6", - "debug": "4" + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^3.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.0.0", + "it-glob": "~0.0.11", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-abort-controller": "^1.0.3", + "native-fetch": "^3.0.0", + "node-fetch": "^2.6.1", + "stream-to-it": "^0.2.2" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "ms": "2.1.2" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "image-size": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", - "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" - }, - "immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "requires": { - "import-from": "^3.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "iso-url": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", + "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" } } }, - "import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "in-publish": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", - "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "iniparser": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", - "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", - "optional": true - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "optional": true, + "ipld": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/ipld/-/ipld-0.28.0.tgz", + "integrity": "sha512-lERRFJb17Phi3x06sSirFgCkmSw8lNqOwn2CiBexu0Amo6ICTXULuSZcDeM1AN4+fSzebQgEc8bBIV4zW7dv0A==", "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "cids": "^1.0.0", + "ipld-block": "^0.11.0", + "ipld-dag-cbor": "^0.17.0", + "ipld-dag-pb": "^0.20.0", + "ipld-raw": "^6.0.0", + "merge-options": "^2.0.0", + "multicodec": "^2.0.0", + "typical": "^6.0.0" }, "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "optional": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "optional": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "optional": true, + "merge-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", + "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", "requires": { - "color-convert": "^1.9.0" + "is-plain-obj": "^2.0.0" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "optional": true, + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "optional": true, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", "requires": { - "color-name": "1.1.3" + "uint8arrays": "1.1.0", + "varint": "^6.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "optional": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "optional": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } + "typical": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", + "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==" }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "optional": true, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", "requires": { - "has-flag": "^3.0.0" + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" } } } }, - "interface-datastore": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-3.0.6.tgz", - "integrity": "sha512-ruF9CVmtKCNfzCZYW6YeEKDRDbgFaiKGrSWof19BVCv6Qx/WrL1jRV4sCQUHCaXwJI7FCFknhw++PGafWCXvfw==", - "requires": { - "err-code": "^3.0.1", - "ipfs-utils": "^6.0.0", - "iso-random-stream": "^2.0.0", - "it-all": "^1.0.2", - "it-drain": "^1.0.1", - "nanoid": "^3.0.2" - }, - "dependencies": { - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - } - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "ipld-block": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.11.1.tgz", + "integrity": "sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw==", "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "cids": "^1.0.0" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "ipld-dag-cbor": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz", + "integrity": "sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw==", "requires": { - "loose-envify": "^1.0.0" + "borc": "^2.1.2", + "cids": "^1.0.0", + "is-circular": "^1.0.2", + "multicodec": "^3.0.1", + "multihashing-async": "^2.0.0", + "uint8arrays": "^2.1.3" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ip-address": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-6.4.0.tgz", - "integrity": "sha512-c5uxc2WUTuRBVHT/6r4m7HIr/DfV0bF6DvLH3iZGSK8wp8iMwwZSgIq2do0asFf8q9ECug0SE+6+1ACMe4sorA==", + "ipld-dag-pb": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz", + "integrity": "sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg==", "requires": { - "jsbn": "1.1.0", - "lodash.find": "4.6.0", - "lodash.max": "4.0.1", - "lodash.merge": "4.6.2", - "lodash.padstart": "4.6.1", - "lodash.repeat": "4.1.0", - "sprintf-js": "1.1.2" + "cids": "^1.0.0", + "class-is": "^1.1.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.0", + "protons": "^2.0.0", + "reset": "^0.1.0", + "run": "^1.4.0", + "stable": "^0.1.8", + "uint8arrays": "^1.0.0" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } } }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "ipfs": { - "version": "0.54.5", - "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.54.5.tgz", - "integrity": "sha512-vmp/wK9gchCFH/n2W/r863TvQczHNKS2+OsCaGKhAJNJ08dgHuzffmcfW+pdg/WDTmgFGF+1+ZF555EuL/Uh7A==", + "ipld-raw": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-6.0.0.tgz", + "integrity": "sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg==", "requires": { - "debug": "^4.1.1", - "ipfs-cli": "^0.4.5", - "ipfs-core": "^0.5.4", - "ipfs-repo": "^8.0.0", - "semver": "^7.3.2", - "update-notifier": "^5.0.0" + "cids": "^1.0.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.0" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", "requires": { - "ms": "2.1.2" + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } } } }, - "ipfs-bitswap": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-4.0.2.tgz", - "integrity": "sha512-9fYoCL7G0Qu3z4r99j2xVWLbYnB9kK+JdTSEt1XNquPW8tA89U44ZfLxaq2C/LuxbQLkV0/C26WZtrCd1QYllQ==", + "ipns": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/ipns/-/ipns-0.8.2.tgz", + "integrity": "sha512-TzWz5tUhMT/XJT/FnvU/TzVTqZln5aF9uBKP63ymdPY1tXU/ToF40SP7nr42VEfnf236gOEE8aR6CHOf4TG95g==", "requires": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.0", - "cids": "^1.0.0", - "debug": "^4.1.0", - "ipld-block": "^0.11.0", - "it-length-prefixed": "^3.0.0", - "it-pipe": "^1.1.0", - "just-debounce-it": "^1.1.0", - "libp2p-interfaces": "^0.8.3", - "moving-average": "^1.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.1", - "protons": "^2.0.0", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.0.5", - "varint-decoder": "^1.0.0" + "debug": "^4.2.0", + "err-code": "^2.0.3", + "interface-datastore": "^3.0.1", + "libp2p-crypto": "^0.19.0", + "multibase": "^3.0.1", + "multihashes": "^3.0.1", + "peer-id": "^0.14.2", + "protons": "^2.0.0", + "timestamp-nano": "^1.0.0", + "uint8arrays": "^2.0.5" }, "dependencies": { "debug": { @@ -9842,595 +17434,610 @@ "@multiformats/base-x": "^4.0.1", "web-encoding": "^1.0.6" } + } + } + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - }, - "dependencies": { - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - } + "is-buffer": "^1.1.5" } } } }, - "ipfs-block-service": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/ipfs-block-service/-/ipfs-block-service-0.18.0.tgz", - "integrity": "sha512-tye5Uxbf3bYlfcGkV3CspP2JNcM2Ggm/5Kxph0jGKtAZtgfFxUq3NeSmvS6nGtZZBaFP4nwRF2yq7dQMALWzVg==", + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-circular": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", + "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==" + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-domain-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz", + "integrity": "sha1-9uszsUpJdUHcpYM1E31EZuDCDaE=" + }, + "is-electron": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", + "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", "requires": { - "err-code": "^2.0.0", - "streaming-iterables": "^5.0.2" + "ip-regex": "^4.0.0" } }, - "ipfs-cli": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.4.5.tgz", - "integrity": "sha512-CrRACkyk6WysKs+AHuPk5TyOqDXkYOiti4qzxSeNg7tqiKb2MOJ8XjhCib15ojiUE2RPhjA3DTRS3tsc4tMitw==", + "is-ipfs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-2.0.0.tgz", + "integrity": "sha512-X4Cg/JO+h/ygBCrIQSMgicHRLo5QpB+i5tHLhFgGBksKi3zvX6ByFCshDxNBvcq4NFxF3coI2AaLqwzugNzKcw==", "requires": { - "bignumber.js": "^9.0.1", - "byteman": "^1.3.5", - "cid-tool": "^1.0.0", - "cids": "^1.1.5", - "debug": "^4.1.1", - "err-code": "^2.0.3", - "execa": "^5.0.0", - "get-folder-size": "^2.0.1", - "ipfs-core": "^0.5.4", - "ipfs-core-utils": "^0.7.2", - "ipfs-daemon": "^0.5.5", - "ipfs-http-client": "^49.0.4", - "ipfs-repo": "^8.0.0", - "ipfs-utils": "^6.0.1", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "it-all": "^1.0.4", - "it-concat": "^1.0.1", - "it-first": "^1.0.4", - "it-glob": "0.0.11", - "it-pipe": "^1.1.0", - "jsondiffpatch": "^0.4.1", - "libp2p-crypto": "^0.19.0", + "cids": "^1.0.0", + "iso-url": "~0.4.7", "mafmt": "^8.0.0", "multiaddr": "^8.0.0", - "multiaddr-to-uri": "^6.0.0", - "multibase": "^4.0.2", - "multihashing-async": "^2.1.2", - "parse-duration": "^0.4.4", - "peer-id": "^0.14.1", - "pretty-bytes": "^5.4.1", - "progress": "^2.0.3", - "stream-to-it": "^0.2.2", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.1.3", - "yargs": "^16.0.3" + "multibase": "^3.0.0", + "multihashes": "^3.0.1", + "uint8arrays": "^1.1.0" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", "requires": { - "ms": "2.1.2" + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } } } }, - "ipfs-core": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.5.4.tgz", - "integrity": "sha512-gyv3slu7FuaN1wxfDPhNoWiTSvUJ1pq0Nx2NsU3WWzOvKCaacHtE8HXO51AAuQUMUEN0thYGzVHziHGLI9udNQ==", + "is-loopback-addr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", + "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "abort-controller": "^3.0.0", - "array-shuffle": "^2.0.0", - "bignumber.js": "^9.0.1", - "cbor": "^6.0.1", - "cids": "^1.1.5", - "class-is": "^1.1.0", - "dag-cbor-links": "^2.0.0", - "datastore-core": "^3.0.0", - "datastore-pubsub": "^0.4.1", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^2.0.3", - "hamt-sharding": "^1.0.0", - "hashlru": "^2.3.0", - "interface-datastore": "^3.0.3", - "ipfs-bitswap": "^4.0.2", - "ipfs-block-service": "^0.18.0", - "ipfs-core-types": "^0.3.1", - "ipfs-core-utils": "^0.7.2", - "ipfs-repo": "^8.0.0", - "ipfs-unixfs": "^2.0.3", - "ipfs-unixfs-exporter": "^3.0.4", - "ipfs-unixfs-importer": "^5.0.0", - "ipfs-utils": "^6.0.1", - "ipld": "^0.28.0", - "ipld-block": "^0.11.0", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "ipld-raw": "^6.0.0", - "ipns": "^0.8.0", - "is-domain-name": "^1.0.1", - "is-ipfs": "^2.0.0", - "it-all": "^1.0.4", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-pipe": "^1.1.0", - "libp2p": "^0.30.7", - "libp2p-bootstrap": "^0.12.1", - "libp2p-crypto": "^0.19.0", - "libp2p-floodsub": "^0.24.1", - "libp2p-gossipsub": "^0.8.0", - "libp2p-kad-dht": "^0.20.1", - "libp2p-mdns": "^0.15.0", - "libp2p-mplex": "^0.10.0", - "libp2p-noise": "^2.0.1", - "libp2p-record": "^0.9.0", - "libp2p-tcp": "^0.15.1", - "libp2p-webrtc-star": "^0.21.0", - "libp2p-websockets": "^0.15.1", - "mafmt": "^8.0.0", - "merge-options": "^3.0.4", - "mortice": "^2.0.0", - "multiaddr": "^8.0.0", - "multiaddr-to-uri": "^6.0.0", - "multibase": "^4.0.2", - "multicodec": "^3.0.1", - "multihashing-async": "^2.1.2", - "native-abort-controller": "^1.0.3", - "p-queue": "^6.6.1", - "parse-duration": "^0.4.4", - "peer-id": "^0.14.1", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.1.3" + "kind-of": "^3.0.2" }, "dependencies": { - "cbor": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-6.0.1.tgz", - "integrity": "sha512-gVJ2e/DFInWOriOUqNyrZe5xN8RSK49X7G+pLalz32GwKs1xHNXtrkcbV5K4+Z2X7qJiv6f700PnUEaJoIEPGQ==", - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "ms": "2.1.2" + "is-buffer": "^1.1.5" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, - "ipfs-core-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.3.1.tgz", - "integrity": "sha512-xPBsowS951RsuskMo86AWz9y4ReaBot1YsjOhZvKl8ORd8taxIBTT72LnEPwIZ2G24U854Zjxvd/qUMqO14ivg==", + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "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-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "requires": { - "cids": "^1.1.5", - "multiaddr": "^8.0.0", - "peer-id": "^0.14.1" + "has-tostringtag": "^1.0.0" } }, - "ipfs-core-utils": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.7.2.tgz", - "integrity": "sha512-d7T72GxvhNN+tEHsJjxI5Y4LQVdMMbSwNbWB6nVsIHUEdwm3w85L2u1E/ctNd9aaNGvoBwEcnIZhSmqhMf7stw==", + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "requires": { - "any-signal": "^2.1.2", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "cids": "^1.1.5", - "err-code": "^2.0.3", - "ipfs-core-types": "^0.3.1", - "ipfs-utils": "^6.0.1", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.1", - "multiaddr": "^8.0.0", - "multiaddr-to-uri": "^6.0.0", - "parse-duration": "^0.4.4", - "timeout-abort-controller": "^1.1.1", - "uint8arrays": "^2.1.3" + "has-symbols": "^1.0.2" } }, - "ipfs-daemon": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.5.5.tgz", - "integrity": "sha512-GZnWy3MqJ/zgJxMByEuK6d0tphRV24H+y83ej4+ORjcjgwB/qBrJlYC3qtwPQAZJcLg+jMxGU+UK1xU91paPXA==", + "is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", "requires": { - "debug": "^4.1.1", - "dlv": "^1.1.3", - "ipfs-core": "^0.5.4", - "ipfs-grpc-server": "^0.2.5", - "ipfs-http-client": "^49.0.4", - "ipfs-http-gateway": "^0.3.2", - "ipfs-http-server": "^0.3.5", - "ipfs-utils": "^6.0.1", - "just-safe-set": "^2.1.0", - "libp2p": "^0.30.7", - "libp2p-delegated-content-routing": "^0.9.0", - "libp2p-delegated-peer-routing": "^0.8.0", - "libp2p-webrtc-star": "^0.21.0", - "multiaddr": "^8.0.0", - "prom-client": "^12.0.0", - "prometheus-gc-stats": "^0.6.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" } }, - "ipfs-grpc-protocol": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.2.0.tgz", - "integrity": "sha512-XQB67HO8ti36HhGxompsoZxKfareIE6jetOAWVrfbKyPVi75JtUjQ7euhNxbxw2xS3/H8Jd8bsIU/qwKe1tVig==" + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "ipfs-grpc-server": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.2.5.tgz", - "integrity": "sha512-mAGRI4n7hKpBb3kwFpi9Bn2elLJFA2vzNuAlKCn9o4JTlhiCIa1ocCqNvTaN7nGcEvDeFmA1YgPVVUA0Ot17Lw==", - "requires": { - "@grpc/grpc-js": "^1.1.8", - "change-case": "^4.1.1", - "coercer": "^1.1.2", - "debug": "^4.1.1", - "ipfs-grpc-protocol": "^0.2.0", - "it-first": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.0", - "protobufjs": "^6.10.2", - "ws": "^7.3.1" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true }, - "ipfs-http-client": { - "version": "49.0.4", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-49.0.4.tgz", - "integrity": "sha512-qgWbkcB4glQrUkE2tZR+GVXyrO6aJyspWBjyct/6TzrhCHx7evjz+kUTK+wNm4S9zccUePEml5VNZUmUhoQtbA==", + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "iso-constants": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", + "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==" + }, + "iso-random-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz", + "integrity": "sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg==", "requires": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "bignumber.js": "^9.0.1", - "cids": "^1.1.5", - "debug": "^4.1.1", - "form-data": "^3.0.0", - "ipfs-core-types": "^0.3.1", - "ipfs-core-utils": "^0.7.2", - "ipfs-utils": "^6.0.1", - "ipld-block": "^0.11.0", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "ipld-raw": "^6.0.0", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-tar": "^1.2.2", - "it-to-stream": "^0.1.2", - "merge-options": "^3.0.4", - "multiaddr": "^8.0.0", - "multibase": "^4.0.2", - "multicodec": "^3.0.1", - "multihashes": "^4.0.2", - "nanoid": "^3.1.12", - "native-abort-controller": "^1.0.3", - "parse-duration": "^0.4.4", - "stream-to-it": "^0.2.2", - "uint8arrays": "^2.1.3" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "requires": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "dependencies": { - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } - } - } - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - } + "events": "^3.3.0", + "readable-stream": "^3.4.0" } }, - "ipfs-http-gateway": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.3.2.tgz", - "integrity": "sha512-yb+dbv7ZF5or6rsGm0FF2PSGE4OvJSnEqdOf5JjEokf43gRHBVe4QpiMBWZahRET3bZZ3IfjLOPWkCptE/eNVA==", + "iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/hapi": "^20.0.0", - "cids": "^1.1.5", - "debug": "^4.1.1", - "hapi-pino": "^8.3.0", - "ipfs-core-utils": "^0.7.2", - "ipfs-http-response": "^0.6.0", - "is-ipfs": "^2.0.0", - "it-last": "^1.0.4", - "it-to-stream": "^0.1.2", - "joi": "^17.2.1", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "uri-to-multiaddr": "^4.0.0" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "ms": "2.1.2" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, - "ipfs-http-response": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-0.6.4.tgz", - "integrity": "sha512-ltQgWaK72IJC7wmwrCZdhewA5Rq2G666y9R4CXkU1rgcqvXDyC0izEDJZN9xNXg17ib9ieS3Dcqc4k+A1te8xw==", + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, "requires": { - "debug": "^4.1.1", - "file-type": "^16.0.0", - "filesize": "^6.1.0", - "it-buffer": "^0.1.1", - "it-concat": "^2.0.0", - "it-reader": "^3.0.0", - "it-to-stream": "^1.0.0", - "mime-types": "^2.1.27", - "multihashes": "^4.0.2", - "p-try-each": "^1.0.1" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "dependencies": { - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "it-concat": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", - "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", - "requires": { - "bl": "^5.0.0" - } - }, - "it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "requires": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "requires": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - } - }, - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "ipfs-http-server": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.3.5.tgz", - "integrity": "sha512-mGMO2iPEINVpKCxndRfkVQXCzdG47x4Fa8GnvhFPFXBfbJDGqBQGXVYiR6gjyC6DjmRVNE2vipany2qx3fekDg==", + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, "requires": { - "@hapi/boom": "^9.1.0", - "@hapi/content": "^5.0.2", - "@hapi/hapi": "^20.0.0", - "abort-controller": "^3.0.0", - "cids": "^1.1.5", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^2.0.3", - "hapi-pino": "^8.3.0", - "ipfs-core-utils": "^0.7.2", - "ipfs-http-gateway": "^0.3.2", - "ipfs-unixfs": "^2.0.3", - "ipld-dag-pb": "^0.20.0", - "it-all": "^1.0.4", - "it-drain": "^1.0.3", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-multipart": "^1.0.5", - "it-pipe": "^1.1.0", - "it-tar": "^1.2.2", - "it-to-stream": "^0.1.2", - "iterable-ndjson": "^1.1.0", - "joi": "^17.2.1", - "just-safe-set": "^2.1.0", - "multiaddr": "^8.0.0", - "multibase": "^4.0.2", - "multicodec": "^3.0.1", - "multihashing-async": "^2.1.2", - "native-abort-controller": "^1.0.3", - "parse-duration": "^0.4.4", - "prom-client": "^12.0.0", - "stream-to-it": "^0.2.2", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.1.3", - "uri-to-multiaddr": "^4.0.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, "requires": { - "ms": "2.1.2" + "has-flag": "^4.0.0" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, - "ipfs-repo": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-8.0.0.tgz", - "integrity": "sha512-NFdoVFYbhIn48JGJEbMq6890RTbdgXnfKKnBTO5sE1Dk0ByR3ncGDKmUtiTsfbZbBbpmmeKmfdLNTBzUYFXIfg==", + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, "requires": { - "bignumber.js": "^9.0.0", - "bytes": "^3.1.0", - "cids": "^1.0.0", - "datastore-core": "^3.0.0", - "datastore-fs": "^3.0.0", - "datastore-level": "^4.0.0", - "debug": "^4.1.0", - "err-code": "^2.0.0", - "interface-datastore": "^3.0.3", - "ipfs-repo-migrations": "^6.0.0", - "ipfs-utils": "^6.0.0", - "ipld-block": "^0.11.0", - "it-map": "^1.0.2", - "it-pushable": "^1.4.0", - "just-safe-get": "^2.0.0", - "just-safe-set": "^2.1.0", - "multibase": "^3.0.0", - "p-queue": "^6.0.0", - "proper-lockfile": "^4.0.0", - "sort-keys": "^4.0.0", - "uint8arrays": "^2.0.5" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "dependencies": { "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, "requires": { "ms": "2.1.2" } @@ -10438,117 +18045,218 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - } + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, - "ipfs-repo-migrations": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-6.0.0.tgz", - "integrity": "sha512-kX+ddMtN4aCxZNfMbxlt48Go+9eu4Mkbsv/feLI3XwL/yjlfkqU2lSG7DiqBLCZ0rSrpOTRXhxg/zUYXzLC7cA==", + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, "requires": { - "cbor": "^6.0.1", - "cids": "^1.0.0", - "datastore-core": "^3.0.0", - "debug": "^4.1.0", - "fnv1a": "^1.0.1", - "interface-datastore": "^3.0.3", - "ipld-dag-pb": "^0.20.0", - "it-length": "^1.0.1", - "multibase": "^3.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.0", - "proper-lockfile": "^4.1.1", - "protons": "^2.0.0", - "uint8arrays": "^2.0.5", - "varint": "^6.0.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "it-all": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", + "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==" + }, + "it-batch": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.8.tgz", + "integrity": "sha512-RfEa1rxOPnicXvaXJ1qNThxPrq8/Lc+KwSVWHFEEOp2CrjpjhR5WfmBJozhkbzZ/r/Gl0HjzVVrt0NpG8qczDQ==" + }, + "it-buffer": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", + "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3" }, "dependencies": { - "cbor": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-6.0.1.tgz", - "integrity": "sha512-gVJ2e/DFInWOriOUqNyrZe5xN8RSK49X7G+pLalz32GwKs1xHNXtrkcbV5K4+Z2X7qJiv6f700PnUEaJoIEPGQ==", - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", "requires": { - "ms": "2.1.2" + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } - }, - "multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + } + } + }, + "it-concat": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-1.0.3.tgz", + "integrity": "sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA==", + "requires": { + "bl": "^4.0.0" + } + }, + "it-drain": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.4.tgz", + "integrity": "sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==" + }, + "it-filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.2.tgz", + "integrity": "sha512-rxFUyPCrhk7WrNxD8msU10iEPhQmROoqwuyWmQUYY1PtopwUGBYyra9EYG2nRZADYeuT83cohKWmKCWPzpeyiw==" + }, + "it-first": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.6.tgz", + "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" + }, + "it-glob": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.11.tgz", + "integrity": "sha512-p02iVYsvOPU7cW4sV9BC62Kz6Mz2aUTJz/cKWDeFqc05kzB3WgSq8OobZabVA/K4boSm6q+s0xOZ8xiArLSoXQ==", + "requires": { + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4" + } + }, + "it-goodbye": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/it-goodbye/-/it-goodbye-2.0.2.tgz", + "integrity": "sha512-k56lqArpxkIU0yyhnPhvnyOBpzRQn+4VEyd+dUBWhN5kvCgPBeC0XMuHiA71iU98sDpCrJrT/X+81ajT0AOQtQ==", + "requires": { + "buffer": "^5.6.0" + } + }, + "it-handshake": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-1.0.2.tgz", + "integrity": "sha512-uutOim5xF1eyDQD3u8qd3TxbWKwxqGMlbvacZsRsPdjO1BD9lnPTVci0jSMGsvMOu+5Y3W/QQ4hPQb87qPmPVQ==", + "requires": { + "it-pushable": "^1.4.0", + "it-reader": "^2.0.0", + "p-defer": "^3.0.0" + } + }, + "it-last": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.5.tgz", + "integrity": "sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q==" + }, + "it-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.3.tgz", + "integrity": "sha512-iZduLNprLW2OJCa1LtFvogh4DVhInt2jbqgvCgWQIX6v1z3IJpKvfkDutslKIgztEuhqm3QRLn16dhspVsaayw==" + }, + "it-length-prefixed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.1.0.tgz", + "integrity": "sha512-E5GwT6qfZEwh3/XThyYwgjKJ4/hxvTC9kdbj3gxXDeUDKtC7+K2T647sPeX7xDEWqunsnoQyvOrjoHPegaT3uw==", + "requires": { + "@types/bl": "^2.1.0", + "bl": "^4.0.2", + "buffer": "^5.5.0", + "varint": "^5.0.0" + }, + "dependencies": { + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, + "it-map": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", + "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" + }, + "it-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.0.tgz", + "integrity": "sha512-bs40LMjG/9JMOcJ7pgyGLoOeWBpw28ZoMmZIk/1NCa5SUxd4elXCuadAr2qSjPiHz2GxrqoWGFAP7SePGddatw==", + "requires": { + "it-pushable": "^1.4.0" + } + }, + "it-multipart": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/it-multipart/-/it-multipart-1.0.9.tgz", + "integrity": "sha512-EGavbE/ohpP3DESwmjRSz6U3iBtgj2yVgCvqF3EkFO93WxndDg0vDnA2zeSbgyglIINXE93Kvk5Vl8ub6es5Jw==", + "requires": { + "buffer": "^6.0.3", + "buffer-indexof": "^1.1.1", + "parse-headers": "^2.0.2" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - }, - "dependencies": { - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - } + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } } } }, - "ipfs-unixfs": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-2.0.4.tgz", - "integrity": "sha512-b8dL8DZSwv0G3WTy8XnH1+Vzj/UydNI4yK/7/j3Ywyx+3yAQW566bdgaW1zvEFWTT3tBK1h3iJrRNHRs3CnBJA==", + "it-pair": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", + "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", "requires": { - "err-code": "^2.0.0", - "protons": "^2.0.0" + "get-iterator": "^1.0.2" } }, - "ipfs-unixfs-exporter": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-3.0.7.tgz", - "integrity": "sha512-ZYpE8SVLcvxDVb9+aKwthf7a4gRFSHqbEJaVrvVOpeXKSG66WTrI0KQR14sIk0v4SYOaUSWrWVXsSjUbONrVHg==", + "it-parallel-batch": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.9.tgz", + "integrity": "sha512-lfCxXsHoEtgyWj5HLrEQXlZF0p3c0hfYeVJAbxQIHIzHLq4lkYplUIe3UGxYl4n1Sjpcs6YL/87352399aVeIA==", + "requires": { + "it-batch": "^1.0.8" + } + }, + "it-pb-rpc": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.11.tgz", + "integrity": "sha512-1Yvae7LNHNM/WzxWT7OyHqwpA7DZoGos22JioMZ5H6i9iExQf71NHE0phHKEfkJdWLo7SRqPLLbqs2zaeKCwPA==", "requires": { - "cids": "^1.0.0", - "err-code": "^2.0.0", - "hamt-sharding": "^1.0.0", - "ipfs-unixfs": "^2.0.4", - "ipfs-utils": "^5.0.0", - "it-last": "^1.0.1", - "multihashing-async": "^2.0.0" + "is-buffer": "^2.0.5", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.2" }, "dependencies": { + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -10558,88 +18266,100 @@ "ieee754": "^1.2.1" } }, - "ipfs-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz", - "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==", - "requires": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^2.0.0", - "fs-extra": "^9.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "0.0.10", - "it-to-stream": "^0.1.2", - "merge-options": "^2.0.0", - "nanoid": "^3.1.3", - "native-abort-controller": "0.0.3", - "native-fetch": "^2.0.0", - "node-fetch": "^2.6.0", - "stream-to-it": "^0.2.0" - } - }, - "iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" - }, - "it-glob": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", - "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", - "requires": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "merge-options": { + "it-handshake": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", + "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", + "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", "requires": { - "is-plain-obj": "^2.0.0" + "it-pushable": "^1.4.0", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0" } }, - "native-abort-controller": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", - "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", + "it-length-prefixed": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", + "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", "requires": { - "globalthis": "^1.0.1" + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" } }, - "native-fetch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", - "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", + "it-reader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", + "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", "requires": { - "globalthis": "^1.0.1" + "bl": "^5.0.0" } } } }, - "ipfs-unixfs-importer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-5.0.0.tgz", - "integrity": "sha512-bvdnCXwwCj72w/FQ7o6XcvrcbCUgXrruK0UZOfhl/mf44Nv0DWyn1Y4hQF/u63rJvYLQdAMlqniAAtFQpHQhcg==", + "it-peekable": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.2.tgz", + "integrity": "sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg==" + }, + "it-pipe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", + "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" + }, + "it-protocol-buffers": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/it-protocol-buffers/-/it-protocol-buffers-0.2.1.tgz", + "integrity": "sha512-UbezSc9BZTw0DU7mFS6iG9PXeycJfTDJlFAlniI3x1CRrKeDP+IW6ERPAFskHI3O+wij18Mk7eHgDtFz4Zk65A==", + "requires": { + "it-buffer": "^0.1.1", + "it-length-prefixed": "^3.0.0" + } + }, + "it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "requires": { + "fast-fifo": "^1.0.0" + } + }, + "it-reader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", + "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", + "requires": { + "bl": "^4.0.0" + } + }, + "it-take": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.0.tgz", + "integrity": "sha512-zfr2iAtekTGhHVWzCqqqgDnHhmzdzfCW92L0GvbaSFlvc3n2Ep/sponzmlNl2Kg39N5Py+02v+Aypc+i2c+9og==" + }, + "it-tar": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-1.2.2.tgz", + "integrity": "sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA==", "requires": { "bl": "^4.0.0", - "err-code": "^2.0.0", - "hamt-sharding": "^1.0.0", - "ipfs-unixfs": "^2.0.4", - "ipfs-utils": "^5.0.0", - "ipld-dag-pb": "^0.20.0", - "it-all": "^1.0.1", - "it-batch": "^1.0.3", - "it-first": "^1.0.1", - "it-parallel-batch": "^1.0.3", - "merge-options": "^3.0.3", - "multihashing-async": "^2.0.0", - "rabin-wasm": "^0.1.1", - "uint8arrays": "^1.1.0" + "buffer": "^5.4.3", + "iso-constants": "^0.1.2", + "it-concat": "^1.0.0", + "it-reader": "^2.0.0", + "p-defer": "^3.0.0" + } + }, + "it-to-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", + "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "requires": { + "buffer": "^6.0.3", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" }, "dependencies": { "buffer": { @@ -10650,110 +18370,18 @@ "base64-js": "^1.3.1", "ieee754": "^1.2.1" } - }, - "ipfs-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz", - "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==", - "requires": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^2.0.0", - "fs-extra": "^9.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "0.0.10", - "it-to-stream": "^0.1.2", - "merge-options": "^2.0.0", - "nanoid": "^3.1.3", - "native-abort-controller": "0.0.3", - "native-fetch": "^2.0.0", - "node-fetch": "^2.6.0", - "stream-to-it": "^0.2.0" - }, - "dependencies": { - "merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", - "requires": { - "is-plain-obj": "^2.0.0" - } - } - } - }, - "iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" - }, - "it-glob": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", - "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", - "requires": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - } - }, - "native-abort-controller": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", - "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", - "requires": { - "globalthis": "^1.0.1" - } - }, - "native-fetch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", - "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", - "requires": { - "globalthis": "^1.0.1" - } - }, - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } } } }, - "ipfs-utils": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-6.0.8.tgz", - "integrity": "sha512-mDDQaDisI/uWk+X08wyw+jBcq76IXwMjgyaoyEgJDb/Izb+QbBCSJjo9q+EvbMxh6/l6q0NiAfbbsxEyQYPW9w==", + "it-ws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz", + "integrity": "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==", "requires": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "~0.0.11", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-abort-controller": "^1.0.3", - "native-fetch": "^3.0.0", - "node-fetch": "^2.6.1", - "stream-to-it": "^0.2.2" + "buffer": "^6.0.3", + "event-iterator": "^2.0.0", + "iso-url": "^1.1.2", + "ws": "^7.3.1" }, "dependencies": { "buffer": { @@ -10765,1213 +18393,1500 @@ "ieee754": "^1.2.1" } }, - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, "iso-url": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" - }, - "it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "requires": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } } } }, - "ipld": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ipld/-/ipld-0.28.0.tgz", - "integrity": "sha512-lERRFJb17Phi3x06sSirFgCkmSw8lNqOwn2CiBexu0Amo6ICTXULuSZcDeM1AN4+fSzebQgEc8bBIV4zW7dv0A==", + "iterable-ndjson": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", + "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", "requires": { - "cids": "^1.0.0", - "ipld-block": "^0.11.0", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "ipld-raw": "^6.0.0", - "merge-options": "^2.0.0", - "multicodec": "^2.0.0", - "typical": "^6.0.0" + "string_decoder": "^1.2.0" + } + }, + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + }, + "jest": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.2.0.tgz", + "integrity": "sha512-oUqVXyvh5YwEWl263KWdPUAqEzBFzGHdFLQ05hUnITr1tH+9SscEI9A/GH9eBClA+Nw1ct+KNuuOV6wlnmBPcg==", + "dev": true, + "requires": { + "@jest/core": "^27.2.0", + "import-local": "^3.0.2", + "jest-cli": "^27.2.0" }, "dependencies": { - "merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", + "@jest/console": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", + "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "dev": true, "requires": { - "is-plain-obj": "^2.0.0" + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.0", + "jest-util": "^27.2.0", + "slash": "^3.0.0" } }, - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "@jest/test-result": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", + "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "dev": true, "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "@jest/console": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, - "multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, "requires": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" } }, - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" + "@types/istanbul-lib-report": "*" } - } - } - }, - "ipld-block": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.11.1.tgz", - "integrity": "sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw==", - "requires": { - "cids": "^1.0.0" - } - }, - "ipld-dag-cbor": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz", - "integrity": "sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw==", - "requires": { - "borc": "^2.1.2", - "cids": "^1.0.0", - "is-circular": "^1.0.2", - "multicodec": "^3.0.1", - "multihashing-async": "^2.0.0", - "uint8arrays": "^2.1.3" - } - }, - "ipld-dag-pb": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz", - "integrity": "sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg==", - "requires": { - "cids": "^1.0.0", - "class-is": "^1.1.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.0", - "protons": "^2.0.0", - "reset": "^0.1.0", - "run": "^1.4.0", - "stable": "^0.1.8", - "uint8arrays": "^1.0.0" - }, - "dependencies": { - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "@types/yargs-parser": "*" } }, - "multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" + "color-convert": "^2.0.1" } }, - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" + "fill-range": "^7.0.1" } - } - } - }, - "ipld-raw": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-6.0.0.tgz", - "integrity": "sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg==", - "requires": { - "cids": "^1.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.0" - }, - "dependencies": { - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-cli": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.2.0.tgz", + "integrity": "sha512-bq1X/B/b1kT9y1zIFMEW3GFRX1HEhFybiqKdbxM+j11XMMYSbU9WezfyWIhrSOmPT+iODLATVjfsCnbQs7cfIA==", + "dev": true, + "requires": { + "@jest/core": "^27.2.0", + "@jest/test-result": "^27.2.0", + "@jest/types": "^27.1.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.2.0", + "jest-util": "^27.2.0", + "jest-validate": "^27.2.0", + "prompts": "^2.0.1", + "yargs": "^16.0.3" } }, - "multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, "requires": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } - } - } - }, - "ipns": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/ipns/-/ipns-0.8.2.tgz", - "integrity": "sha512-TzWz5tUhMT/XJT/FnvU/TzVTqZln5aF9uBKP63ymdPY1tXU/ToF40SP7nr42VEfnf236gOEE8aR6CHOf4TG95g==", - "requires": { - "debug": "^4.2.0", - "err-code": "^2.0.3", - "interface-datastore": "^3.0.1", - "libp2p-crypto": "^0.19.0", - "multibase": "^3.0.1", - "multihashes": "^3.0.1", - "peer-id": "^0.14.2", - "protons": "^2.0.0", - "timestamp-nano": "^1.0.0", - "uint8arrays": "^2.0.5" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + }, + "jest-validate": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", + "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", + "dev": true, "requires": { - "ms": "2.1.2" + "@jest/types": "^27.1.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "leven": "^3.1.0", + "pretty-format": "^27.2.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true }, - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "braces": "^3.0.1", + "picomatch": "^2.2.3" } - } - } - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-circular": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", - "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==" - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-domain-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz", - "integrity": "sha1-9uszsUpJdUHcpYM1E31EZuDCDaE=" - }, - "is-electron": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", - "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true - }, - "is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { - "has-tostringtag": "^1.0.0" + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "jest-changed-files": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.1.1.tgz", + "integrity": "sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA==", "dev": true, "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "requires": { - "ip-regex": "^4.0.0" + "@jest/types": "^27.1.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "dev": true, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + } } }, - "is-ipfs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-2.0.0.tgz", - "integrity": "sha512-X4Cg/JO+h/ygBCrIQSMgicHRLo5QpB+i5tHLhFgGBksKi3zvX6ByFCshDxNBvcq4NFxF3coI2AaLqwzugNzKcw==", + "jest-circus": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.2.0.tgz", + "integrity": "sha512-WwENhaZwOARB1nmcboYPSv/PwHBUGRpA4MEgszjr9DLCl97MYw0qZprBwLb7rNzvMwfIvNGG7pefQ5rxyBlzIA==", + "dev": true, "requires": { - "cids": "^1.0.0", - "iso-url": "~0.4.7", - "mafmt": "^8.0.0", - "multiaddr": "^8.0.0", - "multibase": "^3.0.0", - "multihashes": "^3.0.1", - "uint8arrays": "^1.1.0" + "@jest/environment": "^27.2.0", + "@jest/test-result": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.2.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.2.0", + "jest-matcher-utils": "^27.2.0", + "jest-message-util": "^27.2.0", + "jest-runtime": "^27.2.0", + "jest-snapshot": "^27.2.0", + "jest-util": "^27.2.0", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" }, "dependencies": { - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "@jest/console": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", + "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.0", + "jest-util": "^27.2.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", + "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "dev": true, + "requires": { + "@jest/console": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } - } - } - }, - "is-loopback-addr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", - "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" - }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - }, - "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-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "requires": { - "@types/estree": "*" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "iso-constants": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", - "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==" - }, - "iso-random-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz", - "integrity": "sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg==", - "requires": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, - "iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "jest-config": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.2.0.tgz", + "integrity": "sha512-Z1romHpxeNwLxQtouQ4xt07bY6HSFGKTo0xJcvOK3u6uJHveA4LB2P+ty9ArBLpTh3AqqPxsyw9l9GMnWBYS9A==", + "dev": true, "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^27.2.0", + "@jest/types": "^27.1.1", + "babel-jest": "^27.2.0", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "jest-circus": "^27.2.0", + "jest-environment-jsdom": "^27.2.0", + "jest-environment-node": "^27.2.0", + "jest-get-type": "^27.0.6", + "jest-jasmine2": "^27.2.0", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.2.0", + "jest-runner": "^27.2.0", + "jest-util": "^27.2.0", + "jest-validate": "^27.2.0", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0" }, "dependencies": { - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", + "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "leven": "^3.1.0", + "pretty-format": "^27.2.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" } } } }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "jest-diff": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.0.tgz", + "integrity": "sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw==", "dev": true, "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" + "chalk": "^4.0.0", + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.2.0" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "dev": true, + "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==", "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "jest-docblock": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", + "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", "dev": true, "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "detect-newline": "^3.0.0" } }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "jest-each": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.2.0.tgz", + "integrity": "sha512-biDmmUQjg+HZOB7MfY2RHSFL3j418nMoC3TK3pGAj880fQQSxvQe1y2Wy23JJJNUlk6YXiGU0yWy86Le1HBPmA==", "dev": true, "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "@jest/types": "^27.1.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "jest-util": "^27.2.0", + "pretty-format": "^27.2.0" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", "dev": true, "requires": { - "ms": "2.1.2" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "it-all": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", - "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==" - }, - "it-batch": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.8.tgz", - "integrity": "sha512-RfEa1rxOPnicXvaXJ1qNThxPrq8/Lc+KwSVWHFEEOp2CrjpjhR5WfmBJozhkbzZ/r/Gl0HjzVVrt0NpG8qczDQ==" - }, - "it-buffer": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", - "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3" - }, - "dependencies": { - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "color-convert": "^2.0.1" } }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } - } - } - }, - "it-concat": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-1.0.3.tgz", - "integrity": "sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA==", - "requires": { - "bl": "^4.0.0" - } - }, - "it-drain": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.4.tgz", - "integrity": "sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==" - }, - "it-filter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.2.tgz", - "integrity": "sha512-rxFUyPCrhk7WrNxD8msU10iEPhQmROoqwuyWmQUYY1PtopwUGBYyra9EYG2nRZADYeuT83cohKWmKCWPzpeyiw==" - }, - "it-first": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.6.tgz", - "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" - }, - "it-glob": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.11.tgz", - "integrity": "sha512-p02iVYsvOPU7cW4sV9BC62Kz6Mz2aUTJz/cKWDeFqc05kzB3WgSq8OobZabVA/K4boSm6q+s0xOZ8xiArLSoXQ==", - "requires": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "it-goodbye": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-goodbye/-/it-goodbye-2.0.2.tgz", - "integrity": "sha512-k56lqArpxkIU0yyhnPhvnyOBpzRQn+4VEyd+dUBWhN5kvCgPBeC0XMuHiA71iU98sDpCrJrT/X+81ajT0AOQtQ==", - "requires": { - "buffer": "^5.6.0" - } - }, - "it-handshake": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-1.0.2.tgz", - "integrity": "sha512-uutOim5xF1eyDQD3u8qd3TxbWKwxqGMlbvacZsRsPdjO1BD9lnPTVci0jSMGsvMOu+5Y3W/QQ4hPQb87qPmPVQ==", - "requires": { - "it-pushable": "^1.4.0", - "it-reader": "^2.0.0", - "p-defer": "^3.0.0" - }, - "dependencies": { - "it-reader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "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==", + "dev": true, "requires": { - "bl": "^4.0.0" + "has-flag": "^4.0.0" } } } }, - "it-last": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.5.tgz", - "integrity": "sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q==" - }, - "it-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.3.tgz", - "integrity": "sha512-iZduLNprLW2OJCa1LtFvogh4DVhInt2jbqgvCgWQIX6v1z3IJpKvfkDutslKIgztEuhqm3QRLn16dhspVsaayw==" - }, - "it-length-prefixed": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.1.0.tgz", - "integrity": "sha512-E5GwT6qfZEwh3/XThyYwgjKJ4/hxvTC9kdbj3gxXDeUDKtC7+K2T647sPeX7xDEWqunsnoQyvOrjoHPegaT3uw==", - "requires": { - "@types/bl": "^2.1.0", - "bl": "^4.0.2", - "buffer": "^5.5.0", - "varint": "^5.0.0" - }, - "dependencies": { - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - } - } - }, - "it-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", - "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" - }, - "it-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.0.tgz", - "integrity": "sha512-bs40LMjG/9JMOcJ7pgyGLoOeWBpw28ZoMmZIk/1NCa5SUxd4elXCuadAr2qSjPiHz2GxrqoWGFAP7SePGddatw==", - "requires": { - "it-pushable": "^1.4.0" - } - }, - "it-multipart": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-multipart/-/it-multipart-1.0.9.tgz", - "integrity": "sha512-EGavbE/ohpP3DESwmjRSz6U3iBtgj2yVgCvqF3EkFO93WxndDg0vDnA2zeSbgyglIINXE93Kvk5Vl8ub6es5Jw==", + "jest-environment-jsdom": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.2.0.tgz", + "integrity": "sha512-wNQJi6Rd/AkUWqTc4gWhuTIFPo7tlMK0RPZXeM6AqRHZA3D3vwvTa9ktAktyVyWYmUoXdYstOfyYMG3w4jt7eA==", + "dev": true, "requires": { - "buffer": "^6.0.3", - "buffer-indexof": "^1.1.1", - "parse-headers": "^2.0.2" + "@jest/environment": "^27.2.0", + "@jest/fake-timers": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/node": "*", + "jest-mock": "^27.1.1", + "jest-util": "^27.2.0", + "jsdom": "^16.6.0" }, "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "@jest/fake-timers": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.0.tgz", + "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "@jest/types": "^27.1.1", + "@sinonjs/fake-timers": "^7.0.2", + "@types/node": "*", + "jest-message-util": "^27.2.0", + "jest-mock": "^27.1.1", + "jest-util": "^27.2.0" } - } - } - }, - "it-pair": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", - "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", - "requires": { - "get-iterator": "^1.0.2" - } - }, - "it-parallel-batch": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.9.tgz", - "integrity": "sha512-lfCxXsHoEtgyWj5HLrEQXlZF0p3c0hfYeVJAbxQIHIzHLq4lkYplUIe3UGxYl4n1Sjpcs6YL/87352399aVeIA==", - "requires": { - "it-batch": "^1.0.8" - } - }, - "it-pb-rpc": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.11.tgz", - "integrity": "sha512-1Yvae7LNHNM/WzxWT7OyHqwpA7DZoGos22JioMZ5H6i9iExQf71NHE0phHKEfkJdWLo7SRqPLLbqs2zaeKCwPA==", - "requires": { - "is-buffer": "^2.0.5", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2" - }, - "dependencies": { - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" } }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "@sinonjs/commons": "^1.7.0" } }, - "it-handshake": { + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" + "to-regex-range": "^5.0.1" } }, - "it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" + "ci-info": "^3.1.1" } - } - } - }, - "it-peekable": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.2.tgz", - "integrity": "sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg==" - }, - "it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "it-protocol-buffers": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/it-protocol-buffers/-/it-protocol-buffers-0.2.1.tgz", - "integrity": "sha512-UbezSc9BZTw0DU7mFS6iG9PXeycJfTDJlFAlniI3x1CRrKeDP+IW6ERPAFskHI3O+wij18Mk7eHgDtFz4Zk65A==", - "requires": { - "it-buffer": "^0.1.1", - "it-length-prefixed": "^3.0.0" - } - }, - "it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "requires": { - "fast-fifo": "^1.0.0" - } - }, - "it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "requires": { - "bl": "^5.0.0" - }, - "dependencies": { - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "jest-mock": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", + "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "@jest/types": "^27.1.1", + "@types/node": "*" } - } - } - }, - "it-take": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.0.tgz", - "integrity": "sha512-zfr2iAtekTGhHVWzCqqqgDnHhmzdzfCW92L0GvbaSFlvc3n2Ep/sponzmlNl2Kg39N5Py+02v+Aypc+i2c+9og==" - }, - "it-tar": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-1.2.2.tgz", - "integrity": "sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA==", - "requires": { - "bl": "^4.0.0", - "buffer": "^5.4.3", - "iso-constants": "^0.1.2", - "it-concat": "^1.0.0", - "it-reader": "^2.0.0", - "p-defer": "^3.0.0" - }, - "dependencies": { - "it-reader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, "requires": { - "bl": "^4.0.0" + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } - } - } - }, - "it-to-stream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", - "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", - "requires": { - "buffer": "^5.6.0", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "it-ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz", - "integrity": "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==", - "requires": { - "buffer": "^6.0.3", - "event-iterator": "^2.0.0", - "iso-url": "^1.1.2", - "ws": "^7.3.1" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, - "iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" - } - } - }, - "iterable-ndjson": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", - "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", - "requires": { - "string_decoder": "^1.2.0" - } - }, - "iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "jest": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.1.1.tgz", - "integrity": "sha512-LFTEZOhoZNR/2DQM3OCaK5xC6c55c1OWhYh0njRsoHX0qd6x4nkcgenkSH0JKjsAGMTmmJAoL7/oqYHMfwhruA==", - "dev": true, - "requires": { - "@jest/core": "^27.1.1", - "import-local": "^3.0.2", - "jest-cli": "^27.1.1" - } - }, - "jest-changed-files": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.1.1.tgz", - "integrity": "sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.1.1.tgz", - "integrity": "sha512-Xed1ApiMFu/yzqGMBToHr8sp2gkX/ARZf4nXoGrHJrXrTUdVIWiVYheayfcOaPdQvQEE/uyBLgW7I7YBLIrAXQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.1.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, "pretty-format": { "version": "27.2.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", @@ -11982,6 +19897,14 @@ "ansi-regex": "^5.0.0", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } } }, "react-is": { @@ -11989,101 +19912,257 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "jest-cli": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.1.1.tgz", - "integrity": "sha512-LCjfEYp9D3bcOeVUUpEol9Y1ijZYMWVqflSmtw/wX+6Fb7zP4IlO14/6s9v1pxsoM4Pn46+M2zABgKuQjyDpTw==", + "jest-environment-node": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.2.0.tgz", + "integrity": "sha512-WbW+vdM4u88iy6Q3ftUEQOSgMPtSgjm3qixYYK2AKEuqmFO2zmACTw1vFUB0qI/QN88X6hA6ZkVKIdIWWzz+yg==", "dev": true, "requires": { - "@jest/core": "^27.1.1", - "@jest/test-result": "^27.1.1", + "@jest/environment": "^27.2.0", + "@jest/fake-timers": "^27.2.0", "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "prompts": "^2.0.1", - "yargs": "^16.0.3" + "@types/node": "*", + "jest-mock": "^27.1.1", + "jest-util": "^27.2.0" }, "dependencies": { + "@jest/fake-timers": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.0.tgz", + "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@sinonjs/fake-timers": "^7.0.2", + "@types/node": "*", + "jest-message-util": "^27.2.0", + "jest-mock": "^27.1.1", + "jest-util": "^27.2.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "jest-config": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.1.tgz", - "integrity": "sha512-2iSd5zoJV4MsWPcLCGwUVUY/j6pZXm4Qd3rnbCtrd9EHNTg458iHw8PZztPQXfxKBKJxLfBk7tbZqYF8MGtxJA==", + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.1.1", + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", "@jest/types": "^27.1.1", - "babel-jest": "^27.1.1", + "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.1.1", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", "micromatch": "^4.0.4", - "pretty-format": "^27.1.1" + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "pretty-format": { + "jest-mock": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", + "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*" + } + }, + "jest-util": { "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", "dev": true, "requires": { "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-diff": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.1.1.tgz", - "integrity": "sha512-m/6n5158rqEriTazqHtBpOa2B/gGgXJijX6nsEgZfbJ/3pxQcdpVXBe+FP39b1dxWHyLVVmuVXddmAwtqFO4Lg==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } }, "pretty-format": { "version": "27.2.0", @@ -12095,6 +20174,14 @@ "ansi-regex": "^5.0.0", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } } }, "react-is": { @@ -12102,180 +20189,297 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true - } - } - }, - "jest-docblock": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.1.1.tgz", - "integrity": "sha512-r6hOsTLavUBb1xN0uDa89jdDeBmJ+K49fWpbyxeGRA2pLY46PlC4z551/cWNQzrj+IUa5/gSRsCIV/01HdNPug==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "escape-string-regexp": "^2.0.0" } }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "jest-environment-jsdom": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.1.1.tgz", - "integrity": "sha512-6vOnoZ6IaExuw7FvnuJhA1qFYv1DDSnN0sQowzolNwxQp7bG1YhLxj2YU1sVXAYA3IR3MbH2mbnJUsLUWfyfzw==", - "dev": true, - "requires": { - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.1.1.tgz", - "integrity": "sha512-OEGeZh0PwzngNIYWYgWrvTcLygopV8OJbC9HNb0j70VBKgEIsdZkYhwcFnaURX83OHACMqf1pa9Tv5Pw5jemrg==", - "dev": true, - "requires": { - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1" - } - }, "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" }, "jest-haste-map": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.1.1.tgz", - "integrity": "sha512-NGLYVAdh5C8Ezg5QBFzrNeYsfxptDBPlhvZNaicLiZX77F/rS27a9M6u9ripWAaaD54xnWdZNZpEkdjD5Eo5aQ==", - "dev": true, + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", + "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", "requires": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", + "@jest/types": "^24.9.0", + "anymatch": "^2.0.0", "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "micromatch": "^4.0.4", + "fsevents": "^1.2.7", + "graceful-fs": "^4.1.15", + "invariant": "^2.2.4", + "jest-serializer": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.9.0", + "micromatch": "^3.1.10", + "sane": "^4.0.3", "walker": "^1.0.7" } }, "jest-jasmine2": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.1.1.tgz", - "integrity": "sha512-0LAzUmcmvQwjIdJt0cXUVX4G5qjVXE8ELt6nbMNDzv2yAs2hYCCUtQq+Eje70GwAysWCGcS64QeYj5VPHYVxPg==", + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.2.0.tgz", + "integrity": "sha512-NcPzZBk6IkDW3Z2V8orGueheGJJYfT5P0zI/vTO/Jp+R9KluUdgFrgwfvZ0A34Kw6HKgiWFILZmh3oQ/eS+UxA==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.1.1", + "@jest/environment": "^27.2.0", "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.1", + "@jest/test-result": "^27.2.0", "@jest/types": "^27.1.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^27.1.1", + "expect": "^27.2.0", "is-generator-fn": "^2.0.0", - "jest-each": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1", + "jest-each": "^27.2.0", + "jest-matcher-utils": "^27.2.0", + "jest-message-util": "^27.2.0", + "jest-runtime": "^27.2.0", + "jest-snapshot": "^27.2.0", + "jest-util": "^27.2.0", + "pretty-format": "^27.2.0", "throat": "^6.0.1" }, "dependencies": { + "@jest/console": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", + "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.0", + "jest-util": "^27.2.0", + "slash": "^3.0.0" + } + }, + "@jest/source-map": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", + "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", + "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "dev": true, + "requires": { + "@jest/console": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "pretty-format": { + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", "dev": true, "requires": { + "@babel/code-frame": "^7.12.13", "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-leak-detector": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.1.1.tgz", - "integrity": "sha512-gwSgzmqShoeEsEVpgObymQPrM9P6557jt1EsFW5aCeJ46Cme0EdjYU7xr6llQZ5GpWDl56eOstUaPXiZOfiTKw==", - "dev": true, - "requires": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } }, "pretty-format": { "version": "27.2.0", @@ -12287,6 +20491,14 @@ "ansi-regex": "^5.0.0", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } } }, "react-is": { @@ -12294,68 +20506,147 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "jest-matcher-utils": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.1.1.tgz", - "integrity": "sha512-Q1a10w9Y4sh0wegkdP6reQOa/Dtz7nAvDqBgrat1ItZAUvk4jzXAqyhXPu/ZuEtDaXaNKpdRPRQA8bvkOh2Eaw==", + "jest-leak-detector": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.2.0.tgz", + "integrity": "sha512-e91BIEmbZw5+MHkB4Hnrq7S86coTxUMCkz4n7DLmQYvl9pEKmRx9H/JFH87bBqbIU5B2Ju1soKxRWX6/eGFGpA==", "dev": true, "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.1.1", "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" + "pretty-format": "^27.2.0" }, "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + } } }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "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==", + "dev": true, + "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==", "dev": true - } - } - }, - "jest-message-util": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.1.1.tgz", - "integrity": "sha512-b697BOJV93+AVGvzLRtVZ0cTVRbd59OaWnbB2D75GRaIMc4I+Z9W0wHxbfjW01JWO+TqqW4yevT0aN7Fd0XWng==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", "dev": true }, "pretty-format": { @@ -12375,171 +20666,111 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true - } - } - }, - "jest-mock": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", - "dev": true - }, - "jest-resolve": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.1.1.tgz", - "integrity": "sha512-M41YFmWhvDVstwe7XuV21zynOiBLJB5Sk0GrIsYYgTkjfEWNLVXDjAyq1W7PHseaYNOxIc0nOGq/r5iwcZNC1A==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "resolve": "^1.20.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.1.1.tgz", - "integrity": "sha512-sYZR+uBjFDCo4VhYeazZf/T+ryYItvdLKu9vHatqkUqHGjDMrdEPOykiqC2iEpaCFTS+3iL/21CYiJuKdRbniw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.1.1" - } - }, - "jest-runner": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.1.1.tgz", - "integrity": "sha512-lP3MBNQhg75/sQtVkC8dsAQZumvy3lHK/YIwYPfEyqGIX1qEcnYIRxP89q0ZgC5ngvi1vN2P5UFHszQxguWdng==", - "dev": true, - "requires": { - "@jest/console": "^27.1.1", - "@jest/environment": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-haste-map": "^27.1.1", - "jest-leak-detector": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.1.1.tgz", - "integrity": "sha512-FEwy+tSzmsvuKaQpyYsUyk31KG5vMmA2r2BSTHgv0yNfcooQdm2Ke91LM9Ud8D3xz8CLDHJWAI24haMFTwrsPg==", - "dev": true, - "requires": { - "@jest/console": "^27.1.1", - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/globals": "^27.1.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-mock": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - } - }, - "jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "jest-snapshot": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.1.1.tgz", - "integrity": "sha512-Wi3QGiuRFo3lU+EbQmZnBOks0CJyAMPHvYoG7iJk00Do10jeOyuOEO0Jfoaoun8+8TDv+Nzl7Aswir/IK9+1jg==", + "jest-matcher-utils": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.2.0.tgz", + "integrity": "sha512-F+LG3iTwJ0gPjxBX6HCyrARFXq6jjiqhwBQeskkJQgSLeF1j6ui1RTV08SR7O51XTUhtc8zqpDj8iCG4RGmdKw==", "dev": true, "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.1.1", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.1.1", + "jest-diff": "^27.2.0", "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-util": "^27.1.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.1.1", - "semver": "^7.3.2" + "pretty-format": "^27.2.0" }, "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "dev": true, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", "dev": true }, "pretty-format": { @@ -12552,6 +20783,14 @@ "ansi-regex": "^5.0.0", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } } }, "react-is": { @@ -12559,47 +20798,317 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "jest-util": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.1.1.tgz", - "integrity": "sha512-zf9nEbrASWn2mC/L91nNb0K+GkhFvi4MP6XJG2HqnHzHvLYcs7ou/In68xYU1i1dSkJlrWcYfWXQE8nVR+nbOA==", - "dev": true, + "jest-message-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", + "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" + "@babel/code-frame": "^7.0.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" } }, - "jest-validate": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.1.1.tgz", - "integrity": "sha512-N5Er5FKav/8m2dJwn7BGnZwnoD1BSc8jx5T+diG2OvyeugvZDhPeAt5DrNaGkkaKCrSUvuE7A5E4uHyT7Vj0Mw==", + "jest-mock": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", + "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", + "requires": { + "@jest/types": "^24.9.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-regex-util": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", + "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", + "dev": true + }, + "jest-resolve": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.2.0.tgz", + "integrity": "sha512-v09p9Ib/VtpHM6Cz+i9lEAv1Z/M5NVxsyghRHRMEUOqwPQs3zwTdwp1xS3O/k5LocjKiGS0OTaJoBSpjbM2Jlw==", "dev": true, "requires": { "@jest/types": "^27.1.1", - "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.1.1" + "escalade": "^3.1.1", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.2.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.2.0", + "jest-validate": "^27.2.0", + "resolve": "^1.20.0", + "slash": "^3.0.0" }, "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "jest-haste-map": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", + "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", + "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "leven": "^3.1.0", + "pretty-format": "^27.2.0" + } + }, + "jest-worker": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", + "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "pretty-format": { @@ -12612,6 +21121,14 @@ "ansi-regex": "^5.0.0", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } } }, "react-is": { @@ -12619,39 +21136,119 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "jest-watcher": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.1.1.tgz", - "integrity": "sha512-XQzyHbxziDe+lZM6Dzs40fEt4q9akOGwitJnxQasJ9WG0bv3JGiRlsBgjw13znGapeMtFaEsyhL0Cl04IbaoWQ==", + "jest-resolve-dependencies": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.0.tgz", + "integrity": "sha512-EY5jc/Y0oxn+oVEEldTidmmdVoZaknKPyDORA012JUdqPyqPL+lNdRyI3pGti0RCydds6coaw6xt4JQY54dKsg==", "dev": true, "requires": { - "@jest/test-result": "^27.1.1", "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.1.1", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.1.tgz", - "integrity": "sha512-XJKCL7tu+362IUYTWvw8+3S75U7qMiYiRU6u5yqscB48bTvzwN6i8L/7wVTXiFLwkRsxARNM7TISnTvcgv9hxA==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "jest-regex-util": "^27.0.6", + "jest-snapshot": "^27.2.0" }, "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "dev": true, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -12659,2843 +21256,3526 @@ } } }, - "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" - }, - "joi": { - "version": "17.4.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", - "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.0", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "joycon": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", - "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==" - }, - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "jest-runner": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.2.0.tgz", + "integrity": "sha512-Cl+BHpduIc0cIVTjwoyx0pQk4Br8gn+wkr35PmKCmzEdOUnQ2wN7QVXA8vXnMQXSlFkN/+KWnk20TAVBmhgrww==", "dev": true, "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "requires": { - "delimit-stream": "0.1.0" - } - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsondiffpatch": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", - "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", - "requires": { - "chalk": "^2.3.0", - "diff-match-patch": "^1.0.0" + "@jest/console": "^27.2.0", + "@jest/environment": "^27.2.0", + "@jest/test-result": "^27.2.0", + "@jest/transform": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-docblock": "^27.0.6", + "jest-environment-jsdom": "^27.2.0", + "jest-environment-node": "^27.2.0", + "jest-haste-map": "^27.2.0", + "jest-leak-detector": "^27.2.0", + "jest-message-util": "^27.2.0", + "jest-resolve": "^27.2.0", + "jest-runtime": "^27.2.0", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" }, "dependencies": { + "@jest/console": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", + "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.0", + "jest-util": "^27.2.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", + "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "dev": true, + "requires": { + "@jest/console": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "color-convert": "^1.9.0" + "fill-range": "^7.0.1" } }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true }, "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-haste-map": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", + "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "dev": true, "requires": { - "has-flag": "^3.0.0" + "@jest/types": "^27.1.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", + "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" } } } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonschema": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", - "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "just-debounce-it": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.5.0.tgz", - "integrity": "sha512-itSWJS5d2DTSCizVJ2Z0Djx/dGmUGfZe7WNfUfVP23+htGcIcPHbEjL4eB8ljojTs/+oYwLexImRRCP0A2WXjA==" - }, - "just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==" - }, - "just-safe-get": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-2.1.2.tgz", - "integrity": "sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ==" - }, - "just-safe-set": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz", - "integrity": "sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w==" - }, - "k-bucket": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" - } - } - }, - "keypair": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz", - "integrity": "sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ==" - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "level": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", - "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", - "requires": { - "level-js": "^5.0.0", - "level-packager": "^5.1.0", - "leveldown": "^5.4.0" - } - }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "requires": { - "buffer": "^5.6.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==" - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - } - }, - "level-js": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", - "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", - "requires": { - "abstract-leveldown": "~6.2.3", - "buffer": "^5.5.0", - "inherits": "^2.0.3", - "ltgt": "^2.1.2" - } - }, - "level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "requires": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "requires": { - "xtend": "^4.0.2" - } - }, - "leveldown": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", - "requires": { - "abstract-leveldown": "~6.2.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "~4.1.0" - } - }, - "levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "requires": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "jest-runtime": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.2.0.tgz", + "integrity": "sha512-6gRE9AVVX49hgBbWQ9PcNDeM4upMUXzTpBs0kmbrjyotyUyIJixLPsYjpeTFwAA07PVLDei1iAm2chmWycdGdQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "libp2p": { - "version": "0.30.13", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.30.13.tgz", - "integrity": "sha512-iR5nZBZ+AtClzviNIzTsz58v4CdDEM+vzOiILcVm0d++NtkFt/DP0wcnia0qXLXUT98R01pkEnfdNyoBojPPPQ==", - "requires": { - "@motrix/nat-api": "^0.3.1", - "abort-controller": "^3.0.0", - "aggregate-error": "^3.1.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.1", - "cids": "^1.1.5", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^2.0.0", - "es6-promisify": "^6.1.1", - "events": "^3.2.0", - "hashlru": "^2.3.0", - "interface-datastore": "^3.0.3", - "ipfs-utils": "^6.0.0", - "it-all": "^1.0.4", - "it-buffer": "^0.1.2", - "it-drain": "^1.0.3", - "it-filter": "^1.0.1", - "it-first": "^1.0.4", - "it-handshake": "^1.0.2", - "it-length-prefixed": "^3.1.0", - "it-map": "^1.0.4", - "it-merge": "1.0.0", - "it-pipe": "^1.1.0", - "it-protocol-buffers": "^0.2.0", - "it-take": "1.0.0", - "libp2p-crypto": "^0.19.0", - "libp2p-interfaces": "^0.8.1", - "libp2p-utils": "^0.2.2", - "mafmt": "^8.0.0", - "merge-options": "^3.0.4", - "moving-average": "^1.0.0", - "multiaddr": "^8.1.0", - "multicodec": "^2.1.0", - "multihashing-async": "^2.0.1", - "multistream-select": "^1.0.0", - "mutable-proxy": "^1.0.0", - "node-forge": "^0.10.0", - "p-any": "^3.0.0", - "p-fifo": "^1.0.0", - "p-retry": "^4.2.0", - "p-settle": "^4.0.1", - "peer-id": "^0.14.2", - "private-ip": "^2.0.0", - "protons": "^2.0.0", - "retimer": "^2.0.0", - "sanitize-filename": "^1.6.3", - "set-delayed-interval": "^1.0.0", - "streaming-iterables": "^5.0.2", - "timeout-abort-controller": "^1.1.1", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0", - "xsalsa20": "^1.0.2" + "@jest/console": "^27.2.0", + "@jest/environment": "^27.2.0", + "@jest/fake-timers": "^27.2.0", + "@jest/globals": "^27.2.0", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.2.0", + "@jest/transform": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.2.0", + "jest-message-util": "^27.2.0", + "jest-mock": "^27.1.1", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.2.0", + "jest-snapshot": "^27.2.0", + "jest-util": "^27.2.0", + "jest-validate": "^27.2.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^16.0.3" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "@jest/console": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", + "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.0", + "jest-util": "^27.2.0", + "slash": "^3.0.0" + } + }, + "@jest/fake-timers": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.0.tgz", + "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@sinonjs/fake-timers": "^7.0.2", + "@types/node": "*", + "jest-message-util": "^27.2.0", + "jest-mock": "^27.1.1", + "jest-util": "^27.2.0" + } + }, + "@jest/source-map": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", + "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", + "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "dev": true, + "requires": { + "@jest/console": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "jest-haste-map": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", + "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", + "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*" + } + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", + "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "leven": "^3.1.0", + "pretty-format": "^27.2.0" + } + }, + "jest-worker": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", + "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, "requires": { - "ms": "2.1.2" + "escape-string-regexp": "^2.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true }, - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "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==", + "dev": true, "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "has-flag": "^4.0.0" } }, - "multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - }, - "dependencies": { - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - } + "is-number": "^7.0.0" } } } }, - "libp2p-bootstrap": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.12.3.tgz", - "integrity": "sha512-4S7+YyZYy8wRmNxXGwsBsKrxGMk59nTqwDdBeEf9m3aVWZ0zdz5uu3WXq7sl8ULb703Zx5IdjGDrdbxhYtdqlA==", + "jest-serializer": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", + "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" + }, + "jest-snapshot": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.2.0.tgz", + "integrity": "sha512-MukJvy3KEqemCT2FoT3Gum37CQqso/62PKTfIzWmZVTsLsuyxQmJd2PI5KPcBYFqLlA8LgZLHM8ZlazkVt8LsQ==", + "dev": true, "requires": { - "debug": "^4.3.1", - "mafmt": "^9.0.0", - "multiaddr": "^9.0.1", - "peer-id": "^0.14.0" + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.2.0", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.2.0", + "jest-get-type": "^27.0.6", + "jest-haste-map": "^27.2.0", + "jest-matcher-utils": "^27.2.0", + "jest-message-util": "^27.2.0", + "jest-resolve": "^27.2.0", + "jest-util": "^27.2.0", + "natural-compare": "^1.4.0", + "pretty-format": "^27.2.0", + "semver": "^7.3.2" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, "requires": { - "ms": "2.1.2" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" } }, - "err-code": { + "@types/istanbul-reports": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } }, - "mafmt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", - "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, "requires": { - "multiaddr": "^9.0.1" + "@types/yargs-parser": "*" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, - "multiaddr": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", - "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { - "cids": "^1.0.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" + "color-convert": "^2.0.1" } - } - } - }, - "libp2p-crypto": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz", - "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==", - "requires": { - "err-code": "^3.0.1", - "is-typedarray": "^1.0.0", - "iso-random-stream": "^2.0.0", - "keypair": "^1.0.1", - "multiformats": "^9.4.5", - "node-forge": "^0.10.0", - "pem-jwk": "^2.0.0", - "protobufjs": "^6.11.2", - "secp256k1": "^4.0.0", - "uint8arrays": "^3.0.0", - "ursa-optional": "^0.10.1" - }, - "dependencies": { - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" }, - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { - "multiformats": "^9.4.2" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } - } - } - }, - "libp2p-delegated-content-routing": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.9.0.tgz", - "integrity": "sha512-7elrRRg+eLKCGvztCMj3+jhfg6nkH0qdNSM07jQYDnTcT2OtixOA9pdaFhGqxCag3pLSVW96S5inYzJj/Di6dQ==", - "requires": { - "debug": "^4.1.1", - "it-drain": "^1.0.3", - "multiaddr": "^8.0.0", - "p-defer": "^3.0.0", - "p-queue": "^6.2.1" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "ms": "2.1.2" + "fill-range": "^7.0.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-delegated-peer-routing": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.8.2.tgz", - "integrity": "sha512-q49zSTE7wpagt3FDY6S2e2Rr59kPoTMJAwlPeenZ1ajJLbKXRP26RfraK8RaUUw7mHw0BPo47VQcH7ieDkSO+A==", - "requires": { - "cids": "^1.0.0", - "debug": "^4.1.1", - "p-defer": "^3.0.0", - "p-queue": "^6.3.0", - "peer-id": "^0.14.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { - "ms": "2.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-floodsub": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.24.1.tgz", - "integrity": "sha512-szI/5GtuiwIAWyBxAfobLw5Qe3EBkxWH6snExG3bXz98cLmW25q8WdTWHHJ0oqzzDZ3YOMsTlRrGpRE4AzR26w==", - "requires": { - "debug": "^4.2.0", - "libp2p-interfaces": "^0.8.1", - "time-cache": "^0.3.0", - "uint8arrays": "^1.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { - "ms": "2.1.2" + "to-regex-range": "^5.0.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true }, - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - } + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - } - } - }, - "libp2p-gossipsub": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.8.0.tgz", - "integrity": "sha512-nR5XGN6E5n2ukPR9aa/rtegwluxiK+vT9j5Oulp+P1h6T9vEqDvFAEe9cqA3FiT7apI5gk44SE0aZFTMpxz6EA==", - "requires": { - "@types/debug": "^4.1.5", - "debug": "^4.1.1", - "denque": "^1.4.1", - "err-code": "^2.0.0", - "it-pipe": "^1.0.1", - "libp2p-interfaces": "^0.8.0", - "peer-id": "^0.14.0", - "protons": "^2.0.0", - "time-cache": "^0.3.0", - "uint8arrays": "^1.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, "requires": { - "ms": "2.1.2" + "ci-info": "^3.1.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "jest-haste-map": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", + "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "dev": true, "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "@jest/types": "^27.1.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" } }, - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } - } - } - }, - "libp2p-interfaces": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-0.8.4.tgz", - "integrity": "sha512-LaPkXVhqgAcFwqsyqGSZNAjgXSa2V+skOfIKE2UtQHaduwLct2KpFDOmvhRHTWHfRHwI9bSCskDB7xWGNTwZsQ==", - "requires": { - "@types/bl": "^2.1.0", - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "chai": "^4.2.0", - "chai-checkmark": "^1.0.1", - "debug": "^4.3.1", - "delay": "^4.4.0", - "detect-node": "^2.0.4", - "dirty-chai": "^2.0.1", - "err-code": "^2.0.3", - "it-goodbye": "^2.0.2", - "it-length-prefixed": "^3.1.0", - "it-pair": "^1.0.0", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.0", - "libp2p-crypto": "^0.19.0", - "libp2p-tcp": "^0.15.0", - "multiaddr": "^8.1.2", - "multibase": "^3.1.1", - "multihashes": "^3.1.1", - "p-defer": "^3.0.0", - "p-limit": "^3.1.0", - "p-wait-for": "^3.2.0", - "peer-id": "^0.14.2", - "protons": "^2.0.0", - "sinon": "^9.2.4", - "streaming-iterables": "^5.0.4", - "uint8arrays": "^2.0.5" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, "requires": { - "ms": "2.1.2" + "@types/node": "*", + "graceful-fs": "^4.2.4" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } - } - } - }, - "libp2p-kad-dht": { - "version": "0.20.6", - "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.20.6.tgz", - "integrity": "sha512-hRClzJP+NK3zBU0/pYkoDUhZcviqmPu4czFaftcl3cCGasjxSaWNEZNKsf65QwoINZD9jFrYkQuXW9/gWQwuOA==", - "requires": { - "abort-controller": "^3.0.0", - "async": "^2.6.2", - "base32.js": "~0.1.0", - "cids": "^1.1.5", - "debug": "^4.3.1", - "err-code": "^2.0.3", - "hashlru": "^2.3.0", - "heap": "~0.2.6", - "interface-datastore": "^3.0.3", - "it-length-prefixed": "^3.1.0", - "it-pipe": "^1.1.0", - "k-bucket": "^5.0.0", - "libp2p-crypto": "^0.19.0", - "libp2p-interfaces": "^0.8.2", - "libp2p-record": "^0.9.0", - "multiaddr": "^8.1.2", - "multihashing-async": "^2.0.1", - "p-filter": "^2.1.0", - "p-map": "^4.0.0", - "p-queue": "^6.6.2", - "p-timeout": "^4.1.0", - "p-times": "^3.0.0", - "peer-id": "^0.14.2", - "promise-to-callback": "^1.0.0", - "protons": "^2.0.0", - "streaming-iterables": "^5.0.4", - "uint8arrays": "^2.0.5", - "varint": "^5.0.0", - "xor-distance": "^2.0.0" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + }, + "jest-worker": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", + "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "dev": true, "requires": { - "lodash": "^4.17.14" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, "requires": { - "ms": "2.1.2" + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - } - } - }, - "libp2p-mdns": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.15.0.tgz", - "integrity": "sha512-wuILE+mwC6ww/0TMkR3k2h53D5Ma9TXpz0siacbsACcGukkS+mIpsvruaf9U1Uxe0F1aC8+Y+Vi5lP8C3YR9Lg==", - "requires": { - "debug": "^4.1.1", - "multiaddr": "^8.0.0", - "multicast-dns": "^7.2.0", - "peer-id": "^0.14.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, "requires": { - "ms": "2.1.2" + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-mplex": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.4.tgz", - "integrity": "sha512-a8Oy68EXaSBBXGOGYMuwBcpnynkhqAFJ3LiyV24u9fE4wTxvuWTr0prSyKc+KC8QsLuX3A+CAdSgxqm09NbumQ==", - "requires": { - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "bl": "^5.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.1", - "varint": "^6.0.0" - }, - "dependencies": { - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "lru-cache": "^6.0.0" } }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "escape-string-regexp": "^2.0.0" } }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "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==", + "dev": true, "requires": { - "ms": "2.1.2" + "has-flag": "^4.0.0" } }, - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-noise": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/libp2p-noise/-/libp2p-noise-2.0.5.tgz", - "integrity": "sha512-hmR1Y4bJ6hxEO+1aIF1HeJrUNh9NHUbH8gUTtMqpIe7zfdggGau9XKMY0InbafBPFF/WxeIOJDKZiQV4qy2fFg==", - "requires": { - "bcrypto": "^5.4.0", - "debug": "^4.3.1", - "it-buffer": "^0.1.1", - "it-length-prefixed": "^3.0.0", - "it-pair": "^1.0.0", - "it-pb-rpc": "^0.1.9", - "it-pipe": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "peer-id": "^0.14.3", - "protobufjs": "^6.10.1", - "uint8arrays": "^2.0.5" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { - "ms": "2.1.2" + "is-number": "^7.0.0" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, - "libp2p-record": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.9.0.tgz", - "integrity": "sha512-8FlhzP+UlXTYOR+9D8nYoGOIJ6S8XogKD625bqzHJbXJQyJNCNaW3tZPHqrQrvUW7o6GsAeyQAfCp5WLEH0FZg==", + "jest-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", + "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", + "requires": { + "@jest/console": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/source-map": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "callsites": "^3.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.15", + "is-ci": "^2.0.0", + "mkdirp": "^0.5.1", + "slash": "^2.0.0", + "source-map": "^0.6.0" + } + }, + "jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", "requires": { - "err-code": "^2.0.0", - "multihashes": "^3.0.1", - "multihashing-async": "^2.0.1", - "protons": "^2.0.0", - "uint8arrays": "^1.1.0" + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" }, "dependencies": { - "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - } - }, - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" } } }, - "libp2p-tcp": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.15.4.tgz", - "integrity": "sha512-MqXIlqV7t9z0A1Ww9Omd2XIlndcYOAh5R6kWRZ8Vo/CITazKUC5ZGNoj23hq/aEPaX8p5XmJs2BKESg/OuhGhQ==", + "jest-watcher": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.2.0.tgz", + "integrity": "sha512-SjRWhnr+qO8aBsrcnYIyF+qRxNZk6MZH8TIDgvi+VlsyrvOyqg0d+Rm/v9KHiTtC9mGGeFi9BFqgavyWib6xLg==", + "dev": true, "requires": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "libp2p-utils": "^0.3.0", - "mafmt": "^9.0.0", - "multiaddr": "^9.0.1", - "stream-to-it": "^0.2.2" + "@jest/test-result": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.2.0", + "string-length": "^4.0.1" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "ip-address": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-7.1.0.tgz", - "integrity": "sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==", + "@jest/console": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", + "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "dev": true, "requires": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.0", + "jest-util": "^27.2.0", + "slash": "^3.0.0" } }, - "libp2p-utils": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.3.1.tgz", - "integrity": "sha512-LOVfww7a6Rhtoupl3z1ABuTEli5whY3VLTB9QntsOIwbOcX9GfmjuhqYbEDht9lVPAQl+rCUWbfDMvK121ryUg==", + "@jest/test-result": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", + "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "dev": true, "requires": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^7.1.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^9.0.1", - "private-ip": "^2.1.1" + "@jest/console": "^27.2.0", + "@jest/types": "^27.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, - "mafmt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", - "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, "requires": { - "multiaddr": "^9.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multiaddr": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", - "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", - "requires": { - "cids": "^1.0.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" - } - } - } - }, - "libp2p-utils": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.2.3.tgz", - "integrity": "sha512-9BoMCgvJF7LJ+JVMaHtqfCqhZN4i/sx0DrY6lf9U0Rq9uUgQ9qTai2O9LXcfr1LOS3OMMeRLsKk25MMgsf7W3w==", - "requires": { - "abortable-iterator": "^3.0.0", - "debug": "^4.2.0", - "err-code": "^2.0.3", - "ip-address": "^6.1.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^8.0.0", - "private-ip": "^2.1.1" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, "requires": { - "ms": "2.1.2" + "@types/istanbul-lib-report": "*" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-webrtc-peer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-peer/-/libp2p-webrtc-peer-10.0.1.tgz", - "integrity": "sha512-Qi/YVrSI5sjU+iBvr1iAjGrakIEvzCS8S76v4q43jjlDb6Wj+S4OnFLH/uRlt7eLXcx4vlaI6huMzYrUAoopMg==", - "requires": { - "debug": "^4.0.1", - "err-code": "^2.0.3", - "get-browser-rtc": "^1.0.0", - "queue-microtask": "^1.1.0", - "randombytes": "^2.0.3", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, "requires": { - "ms": "2.1.2" + "@types/yargs-parser": "*" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-webrtc-star": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-star/-/libp2p-webrtc-star-0.21.2.tgz", - "integrity": "sha512-Ax5s/Ih8f5cVAt1RQacokjbzSnvz5+SmW+1bPs22myZ48WcTt8CydHOKBGKpflFZBMHNttPoOY4xgLp95xxuIg==", - "requires": { - "@hapi/hapi": "^20.0.0", - "@hapi/inert": "^6.0.3", - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "ipfs-utils": "^6.0.0", - "it-pipe": "^1.1.0", - "libp2p-utils": "^0.2.1", - "libp2p-webrtc-peer": "^10.0.1", - "mafmt": "^8.0.0", - "menoetius": "0.0.2", - "minimist": "^1.2.5", - "multiaddr": "^8.0.0", - "p-defer": "^3.0.0", - "peer-id": "^0.14.2", - "prom-client": "^13.0.0", - "socket.io": "^2.3.0", - "socket.io-client-next": "npm:socket.io-client@^3.0.4", - "socket.io-next": "npm:socket.io@^3.0.4", - "stream-to-it": "^0.2.2", - "streaming-iterables": "^5.0.3" - }, - "dependencies": { - "debug": { + "ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "requires": { - "ms": "2.1.2" + "type-fest": "^0.21.3" } }, - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } }, - "prom-client": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-13.2.0.tgz", - "integrity": "sha512-wGr5mlNNdRNzEhRYXgboUU2LxHWIojxscJKmtG3R8f4/KiWqyYgXTLHs0+Ted7tG3zFT7pgHJbtomzZ1L0ARaQ==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "tdigest": "^0.1.1" + "fill-range": "^7.0.1" } - } - } - }, - "libp2p-websockets": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.15.9.tgz", - "integrity": "sha512-tuQ4KezPEiJ/JXGKJUttPgBWTv36NnaqY05lWja8wQwQU3R1NgpH4GRJnTBshGXoBFdvGGJbTxvsJlh15NzMkg==", - "requires": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "ipfs-utils": "^8.1.2", - "it-ws": "^4.0.0", - "libp2p-utils": "^0.3.0", - "mafmt": "^9.0.0", - "multiaddr": "^9.0.1", - "multiaddr-to-uri": "^7.0.0", - "p-defer": "^3.0.0", - "p-timeout": "^4.1.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, "requires": { - "ms": "2.1.2" + "color-name": "~1.1.4" } }, - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + "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==", + "dev": true }, - "ip-address": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-7.1.0.tgz", - "integrity": "sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==", + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" + "to-regex-range": "^5.0.1" } }, - "ipfs-utils": { - "version": "8.1.6", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz", - "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, "requires": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "~0.0.11", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-abort-controller": "^1.0.3", - "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" + "ci-info": "^3.1.1" } }, - "iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, - "it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "jest-message-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", + "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "dev": true, "requires": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "libp2p-utils": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.3.1.tgz", - "integrity": "sha512-LOVfww7a6Rhtoupl3z1ABuTEli5whY3VLTB9QntsOIwbOcX9GfmjuhqYbEDht9lVPAQl+rCUWbfDMvK121ryUg==", + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, "requires": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^7.1.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^9.0.1", - "private-ip": "^2.1.1" + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } }, - "mafmt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", - "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "pretty-format": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", + "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, "requires": { - "multiaddr": "^9.0.1" + "escape-string-regexp": "^2.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multiaddr": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", - "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", + "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==", + "dev": true, "requires": { - "cids": "^1.0.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" + "has-flag": "^4.0.0" } }, - "multiaddr-to-uri": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-7.0.0.tgz", - "integrity": "sha512-VbscDpLcbV0m25tJqfnZSfbjVUuNlPa4BbD5l/7me1t0lc3SWI0XAoO5E/PNJF0e1qUlbdq7yjVFEQjUT+9r0g==", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { - "multiaddr": "^9.0.1" + "is-number": "^7.0.0" } }, - "node-fetch": { - "version": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true } } }, - "liquidcore": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/liquidcore/-/liquidcore-0.7.10.tgz", - "integrity": "sha512-8Ks5reBkEzUPCX4QwNKunRFMXFGtMT8N0vlcCZOhFOcDahxlyieg0ZOpbHUPSviCSvaBByAEvj1xb6R9dNbQkA==", + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", "requires": { - "filecompare": "^1.0.4", - "metro": "0.57.0", - "metro-core": "0.57.0", - "tmp": "^0.1.0" + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, - "livereload": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", - "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", - "dev": true, + "joi": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", + "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", "requires": { - "chokidar": "^3.5.0", - "livereload-js": "^3.3.1", - "opts": ">= 1.2.0", - "ws": "^7.4.3" + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" } }, - "livereload-js": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz", - "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==", + "joycon": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", + "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==" + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", "dev": true }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "argparse": "^2.0.1" + } + }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" }, "dependencies": { - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, "requires": { - "error-ex": "^1.2.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true } } }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", + "requires": { + "delimit-stream": "0.1.0" + } + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsondiffpatch": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", + "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", + "requires": { + "chalk": "^2.3.0", + "diff-match-patch": "^1.0.0" }, "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "minimist": "^1.2.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" } } } }, - "loady": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz", - "integrity": "sha512-uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==" - }, - "local-access": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", - "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "requires": { - "p-locate": "^4.1.0" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.find": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", - "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, - "lodash.max": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.max/-/lodash.max-4.0.1.tgz", - "integrity": "sha1-hzVWbGGLNan3YFILSHrnllivE2o=" + "jsonschema": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", + "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==" }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "just-debounce-it": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.5.0.tgz", + "integrity": "sha512-itSWJS5d2DTSCizVJ2Z0Djx/dGmUGfZe7WNfUfVP23+htGcIcPHbEjL4eB8ljojTs/+oYwLexImRRCP0A2WXjA==" }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "optional": true + "just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==" }, - "lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" + "just-safe-get": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-2.1.2.tgz", + "integrity": "sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ==" }, - "lodash.repeat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", - "integrity": "sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ=" + "just-safe-set": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz", + "integrity": "sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w==" }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + "k-bucket": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", + "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", + "requires": { + "randombytes": "^2.1.0" + } }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + "keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true + "keypair": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz", + "integrity": "sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ==" }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "graceful-fs": "^4.1.9" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "package-json": "^6.3.0" } }, - "lowdb": { + "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", - "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "graceful-fs": "^4.1.3", - "is-promise": "^2.1.0", - "lodash": "4", - "pify": "^3.0.0", - "steno": "^0.4.1" + "invert-kv": "^1.0.0" } }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "level": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", + "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "level-js": "^5.0.0", + "level-packager": "^5.1.0", + "leveldown": "^5.4.0" } }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", "requires": { - "yallist": "^4.0.0" + "buffer": "^5.6.0" } }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + "level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==" }, - "mafmt": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-8.0.4.tgz", - "integrity": "sha512-wwZ5+PU0vQw10kwQRyZin1Z0dqVOp0BnYlX1xvXHS2fmLwrrQCfU1+3tlW5MRcihUwGz1virnVhbRAU1biKfiw==", + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", "requires": { - "multiaddr": "^8.0.0" + "errno": "~0.1.1" } }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "level-iterator-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", + "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", "requires": { - "sourcemap-codec": "^1.4.4" + "inherits": "^2.0.4", + "readable-stream": "^3.4.0", + "xtend": "^4.0.2" } }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "level-js": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", + "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "abstract-leveldown": "~6.2.3", + "buffer": "^5.5.0", + "inherits": "^2.0.3", + "ltgt": "^2.1.2" } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "level-packager": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", + "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", "requires": { - "tmpl": "1.0.x" + "encoding-down": "^6.3.0", + "levelup": "^4.3.2" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { + "level-supports": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "requires": { + "xtend": "^4.0.2" + } }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "leveldown": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", + "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", "requires": { - "object-visit": "^1.0.0" + "abstract-leveldown": "~6.2.1", + "napi-macros": "~2.0.0", + "node-gyp-build": "~4.1.0" + }, + "dependencies": { + "node-gyp-build": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", + "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==" + } } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "levelup": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", + "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "deferred-leveldown": "~5.3.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~4.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" } }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" }, - "media-typer": { + "levn": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, "requires": { - "mimic-fn": "^1.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - } + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, - "menoetius": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/menoetius/-/menoetius-0.0.2.tgz", - "integrity": "sha512-7W0ayHMNgvEdFh+m3m29KA87nvT0JIGCXeSZa26fiSof+bwpg+olEjD8AAvtxZ3uhTcp2d+5r1dcV/KhR8PBVQ==", + "libp2p": { + "version": "0.30.13", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.30.13.tgz", + "integrity": "sha512-iR5nZBZ+AtClzviNIzTsz58v4CdDEM+vzOiILcVm0d++NtkFt/DP0wcnia0qXLXUT98R01pkEnfdNyoBojPPPQ==", "requires": { - "prom-client": "^11.5.3" + "@motrix/nat-api": "^0.3.1", + "abort-controller": "^3.0.0", + "aggregate-error": "^3.1.0", + "any-signal": "^2.1.1", + "bignumber.js": "^9.0.1", + "cids": "^1.1.5", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^2.0.0", + "es6-promisify": "^6.1.1", + "events": "^3.2.0", + "hashlru": "^2.3.0", + "interface-datastore": "^3.0.3", + "ipfs-utils": "^6.0.0", + "it-all": "^1.0.4", + "it-buffer": "^0.1.2", + "it-drain": "^1.0.3", + "it-filter": "^1.0.1", + "it-first": "^1.0.4", + "it-handshake": "^1.0.2", + "it-length-prefixed": "^3.1.0", + "it-map": "^1.0.4", + "it-merge": "1.0.0", + "it-pipe": "^1.1.0", + "it-protocol-buffers": "^0.2.0", + "it-take": "1.0.0", + "libp2p-crypto": "^0.19.0", + "libp2p-interfaces": "^0.8.1", + "libp2p-utils": "^0.2.2", + "mafmt": "^8.0.0", + "merge-options": "^3.0.4", + "moving-average": "^1.0.0", + "multiaddr": "^8.1.0", + "multicodec": "^2.1.0", + "multihashing-async": "^2.0.1", + "multistream-select": "^1.0.0", + "mutable-proxy": "^1.0.0", + "node-forge": "^0.10.0", + "p-any": "^3.0.0", + "p-fifo": "^1.0.0", + "p-retry": "^4.2.0", + "p-settle": "^4.0.1", + "peer-id": "^0.14.2", + "private-ip": "^2.0.0", + "protons": "^2.0.0", + "retimer": "^2.0.0", + "sanitize-filename": "^1.6.3", + "set-delayed-interval": "^1.0.0", + "streaming-iterables": "^5.0.2", + "timeout-abort-controller": "^1.1.1", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0", + "xsalsa20": "^1.0.2" }, "dependencies": { - "prom-client": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz", - "integrity": "sha512-iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==", + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "tdigest": "^0.1.1" + "ms": "2.1.2" + } + }, + "ip-address": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-6.4.0.tgz", + "integrity": "sha512-c5uxc2WUTuRBVHT/6r4m7HIr/DfV0bF6DvLH3iZGSK8wp8iMwwZSgIq2do0asFf8q9ECug0SE+6+1ACMe4sorA==", + "requires": { + "jsbn": "1.1.0", + "lodash.find": "4.6.0", + "lodash.max": "4.0.1", + "lodash.merge": "4.6.2", + "lodash.padstart": "4.6.1", + "lodash.repeat": "4.1.0", + "sprintf-js": "1.1.2" + } + }, + "libp2p-utils": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.2.3.tgz", + "integrity": "sha512-9BoMCgvJF7LJ+JVMaHtqfCqhZN4i/sx0DrY6lf9U0Rq9uUgQ9qTai2O9LXcfr1LOS3OMMeRLsKk25MMgsf7W3w==", + "requires": { + "abortable-iterator": "^3.0.0", + "debug": "^4.2.0", + "err-code": "^2.0.3", + "ip-address": "^6.1.0", + "is-loopback-addr": "^1.0.0", + "multiaddr": "^8.0.0", + "private-ip": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } } } } }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, + "libp2p-bootstrap": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.12.3.tgz", + "integrity": "sha512-4S7+YyZYy8wRmNxXGwsBsKrxGMk59nTqwDdBeEf9m3aVWZ0zdz5uu3WXq7sl8ULb703Zx5IdjGDrdbxhYtdqlA==", "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "debug": "^4.3.1", + "mafmt": "^9.0.0", + "multiaddr": "^9.0.1", + "peer-id": "^0.14.0" }, "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "ms": "2.1.2" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, + "mafmt": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", + "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "multiaddr": "^9.0.1" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, + "multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "cids": "^1.0.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multibase": "^4.0.2", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0" } + } + } + }, + "libp2p-crypto": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz", + "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==", + "requires": { + "err-code": "^3.0.1", + "is-typedarray": "^1.0.0", + "iso-random-stream": "^2.0.0", + "keypair": "^1.0.1", + "multiformats": "^9.4.5", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protobufjs": "^6.11.2", + "secp256k1": "^4.0.0", + "uint8arrays": "^3.0.0", + "ursa-optional": "^0.10.1" + }, + "dependencies": { + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", "requires": { - "is-utf8": "^0.2.0" + "multiformats": "^9.4.2" } } } }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "libp2p-delegated-content-routing": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.9.0.tgz", + "integrity": "sha512-7elrRRg+eLKCGvztCMj3+jhfg6nkH0qdNSM07jQYDnTcT2OtixOA9pdaFhGqxCag3pLSVW96S5inYzJj/Di6dQ==", "requires": { - "is-plain-obj": "^2.1.0" + "debug": "^4.1.1", + "it-drain": "^1.0.3", + "multiaddr": "^8.0.0", + "p-defer": "^3.0.0", + "p-queue": "^6.2.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "metro": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.57.0.tgz", - "integrity": "sha512-En3phXm60rij0QxNM9+MHQZwJA48QQfNQdT4A0tt5XGZ3MJd8cYlO5LCpRLhFm+15aCblMWGKX58Sm8evtsAag==", - "requires": { - "@babel/core": "^7.0.0", - "@babel/generator": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/plugin-external-helpers": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "absolute-path": "^0.0.0", - "async": "^2.4.0", - "babel-preset-fbjs": "^3.3.0", - "buffer-crc32": "^0.2.13", - "chalk": "^2.4.1", - "concat-stream": "^1.6.0", - "connect": "^3.6.5", - "debug": "^2.2.0", - "denodeify": "^1.2.1", - "eventemitter3": "^3.0.0", - "fbjs": "^1.0.0", - "fs-extra": "^1.0.0", - "graceful-fs": "^4.1.3", - "image-size": "^0.6.0", - "invariant": "^2.2.4", - "jest-haste-map": "^24.7.1", - "jest-worker": "^24.6.0", - "json-stable-stringify": "^1.0.1", - "lodash.throttle": "^4.1.1", - "merge-stream": "^1.0.1", - "metro-babel-register": "0.57.0", - "metro-babel-transformer": "0.57.0", - "metro-cache": "0.57.0", - "metro-config": "0.57.0", - "metro-core": "0.57.0", - "metro-inspector-proxy": "0.57.0", - "metro-minify-uglify": "0.57.0", - "metro-react-native-babel-preset": "0.57.0", - "metro-resolver": "0.57.0", - "metro-source-map": "0.57.0", - "metro-symbolicate": "0.57.0", - "mime-types": "2.1.11", - "mkdirp": "^0.5.1", - "node-fetch": "^2.2.0", - "nullthrows": "^1.1.1", - "resolve": "^1.5.0", - "rimraf": "^2.5.4", - "serialize-error": "^2.1.0", - "source-map": "^0.5.6", - "temp": "0.8.3", - "throat": "^4.1.0", - "wordwrap": "^1.0.0", - "write-file-atomic": "^1.2.0", - "ws": "^1.1.5", - "xpipe": "^1.0.5", - "yargs": "^9.0.0" + }, + "libp2p-delegated-peer-routing": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.8.2.tgz", + "integrity": "sha512-q49zSTE7wpagt3FDY6S2e2Rr59kPoTMJAwlPeenZ1ajJLbKXRP26RfraK8RaUUw7mHw0BPo47VQcH7ieDkSO+A==", + "requires": { + "cids": "^1.0.0", + "debug": "^4.1.1", + "p-defer": "^3.0.0", + "p-queue": "^6.3.0", + "peer-id": "^0.14.0" }, "dependencies": { - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" + "ms": "2.1.2" } }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "libp2p-floodsub": { + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.24.1.tgz", + "integrity": "sha512-szI/5GtuiwIAWyBxAfobLw5Qe3EBkxWH6snExG3bXz98cLmW25q8WdTWHHJ0oqzzDZ3YOMsTlRrGpRE4AzR26w==", + "requires": { + "debug": "^4.2.0", + "libp2p-interfaces": "^0.8.1", + "time-cache": "^0.3.0", + "uint8arrays": "^1.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" + "ms": "2.1.2" } }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" } }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + } + } + }, + "libp2p-gossipsub": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.8.0.tgz", + "integrity": "sha512-nR5XGN6E5n2ukPR9aa/rtegwluxiK+vT9j5Oulp+P1h6T9vEqDvFAEe9cqA3FiT7apI5gk44SE0aZFTMpxz6EA==", + "requires": { + "@types/debug": "^4.1.5", + "debug": "^4.1.1", + "denque": "^1.4.1", + "err-code": "^2.0.0", + "it-pipe": "^1.0.1", + "libp2p-interfaces": "^0.8.0", + "peer-id": "^0.14.0", + "protons": "^2.0.0", + "time-cache": "^0.3.0", + "uint8arrays": "^1.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" + "ms": "2.1.2" } }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", "requires": { - "@types/yargs-parser": "*" + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", "requires": { - "color-convert": "^1.9.0" + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + } + } + }, + "libp2p-interfaces": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-0.8.4.tgz", + "integrity": "sha512-LaPkXVhqgAcFwqsyqGSZNAjgXSa2V+skOfIKE2UtQHaduwLct2KpFDOmvhRHTWHfRHwI9bSCskDB7xWGNTwZsQ==", + "requires": { + "@types/bl": "^2.1.0", + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "chai": "^4.2.0", + "chai-checkmark": "^1.0.1", + "debug": "^4.3.1", + "delay": "^4.4.0", + "detect-node": "^2.0.4", + "dirty-chai": "^2.0.1", + "err-code": "^2.0.3", + "it-goodbye": "^2.0.2", + "it-length-prefixed": "^3.1.0", + "it-pair": "^1.0.0", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.0", + "libp2p-crypto": "^0.19.0", + "libp2p-tcp": "^0.15.0", + "multiaddr": "^8.1.2", + "multibase": "^3.1.1", + "multihashes": "^3.1.1", + "p-defer": "^3.0.0", + "p-limit": "^3.1.0", + "p-wait-for": "^3.2.0", + "peer-id": "^0.14.2", + "protons": "^2.0.0", + "sinon": "^9.2.4", + "streaming-iterables": "^5.0.4", + "uint8arrays": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "ms": "2.1.2" } }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" } }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "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": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "yocto-queue": "^0.1.0" } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + } + } + }, + "libp2p-kad-dht": { + "version": "0.20.6", + "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.20.6.tgz", + "integrity": "sha512-hRClzJP+NK3zBU0/pYkoDUhZcviqmPu4czFaftcl3cCGasjxSaWNEZNKsf65QwoINZD9jFrYkQuXW9/gWQwuOA==", + "requires": { + "abort-controller": "^3.0.0", + "async": "^2.6.2", + "base32.js": "~0.1.0", + "cids": "^1.1.5", + "debug": "^4.3.1", + "err-code": "^2.0.3", + "hashlru": "^2.3.0", + "heap": "~0.2.6", + "interface-datastore": "^3.0.3", + "it-length-prefixed": "^3.1.0", + "it-pipe": "^1.1.0", + "k-bucket": "^5.0.0", + "libp2p-crypto": "^0.19.0", + "libp2p-interfaces": "^0.8.2", + "libp2p-record": "^0.9.0", + "multiaddr": "^8.1.2", + "multihashing-async": "^2.0.1", + "p-filter": "^2.1.0", + "p-map": "^4.0.0", + "p-queue": "^6.6.2", + "p-timeout": "^4.1.0", + "p-times": "^3.0.0", + "peer-id": "^0.14.2", + "promise-to-callback": "^1.0.0", + "protons": "^2.0.0", + "streaming-iterables": "^5.0.4", + "uint8arrays": "^2.0.5", + "varint": "^5.0.0", + "xor-distance": "^2.0.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } + "lodash": "^4.17.14" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "color-name": "1.1.3" + "ms": "2.1.2" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } + "p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, + "libp2p-mdns": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.15.0.tgz", + "integrity": "sha512-wuILE+mwC6ww/0TMkR3k2h53D5Ma9TXpz0siacbsACcGukkS+mIpsvruaf9U1Uxe0F1aC8+Y+Vi5lP8C3YR9Lg==", + "requires": { + "debug": "^4.1.1", + "multiaddr": "^8.0.0", + "multicast-dns": "^7.2.0", + "peer-id": "^0.14.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" + "ms": "2.1.2" } }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "libp2p-mplex": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.4.tgz", + "integrity": "sha512-a8Oy68EXaSBBXGOGYMuwBcpnynkhqAFJ3LiyV24u9fE4wTxvuWTr0prSyKc+KC8QsLuX3A+CAdSgxqm09NbumQ==", + "requires": { + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "bl": "^5.0.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.1", + "varint": "^6.0.0" + }, + "dependencies": { + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", "requires": { - "ci-info": "^2.0.0" + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "number-is-nan": "^1.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "ms": "2.1.2" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "libp2p-noise": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/libp2p-noise/-/libp2p-noise-2.0.5.tgz", + "integrity": "sha512-hmR1Y4bJ6hxEO+1aIF1HeJrUNh9NHUbH8gUTtMqpIe7zfdggGau9XKMY0InbafBPFF/WxeIOJDKZiQV4qy2fFg==", + "requires": { + "bcrypto": "^5.4.0", + "debug": "^4.3.1", + "it-buffer": "^0.1.1", + "it-length-prefixed": "^3.0.0", + "it-pair": "^1.0.0", + "it-pb-rpc": "^0.1.9", + "it-pipe": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "peer-id": "^0.14.3", + "protobufjs": "^6.10.1", + "uint8arrays": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" + "ms": "2.1.2" } }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "libp2p-record": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.9.0.tgz", + "integrity": "sha512-8FlhzP+UlXTYOR+9D8nYoGOIJ6S8XogKD625bqzHJbXJQyJNCNaW3tZPHqrQrvUW7o6GsAeyQAfCp5WLEH0FZg==", + "requires": { + "err-code": "^2.0.0", + "multihashes": "^3.0.1", + "multihashing-async": "^2.0.1", + "protons": "^2.0.0", + "uint8arrays": "^1.1.0" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" } }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", "requires": { - "@jest/types": "^24.9.0" + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" } - }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" - }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + } + } + }, + "libp2p-tcp": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.15.4.tgz", + "integrity": "sha512-MqXIlqV7t9z0A1Ww9Omd2XIlndcYOAh5R6kWRZ8Vo/CITazKUC5ZGNoj23hq/aEPaX8p5XmJs2BKESg/OuhGhQ==", + "requires": { + "abortable-iterator": "^3.0.0", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "libp2p-utils": "^0.3.0", + "mafmt": "^9.0.0", + "multiaddr": "^9.0.1", + "stream-to-it": "^0.2.2" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" } }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "mafmt": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", + "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } + "multiaddr": "^9.0.1" } }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", "requires": { - "graceful-fs": "^4.1.6" + "cids": "^1.0.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multibase": "^4.0.2", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0" } - }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + } + } + }, + "libp2p-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.3.1.tgz", + "integrity": "sha512-LOVfww7a6Rhtoupl3z1ABuTEli5whY3VLTB9QntsOIwbOcX9GfmjuhqYbEDht9lVPAQl+rCUWbfDMvK121ryUg==", + "requires": { + "abortable-iterator": "^3.0.0", + "debug": "^4.3.0", + "err-code": "^3.0.1", + "ip-address": "^7.1.0", + "is-loopback-addr": "^1.0.0", + "multiaddr": "^9.0.1", + "private-ip": "^2.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "readable-stream": "^2.0.1" + "ms": "2.1.2" } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" }, - "mime-db": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", - "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=" + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "mime-types": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", - "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", + "multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", "requires": { - "mime-db": "~1.23.0" + "cids": "^1.0.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multibase": "^4.0.2", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0" } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + } + } + }, + "libp2p-webrtc-peer": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/libp2p-webrtc-peer/-/libp2p-webrtc-peer-10.0.1.tgz", + "integrity": "sha512-Qi/YVrSI5sjU+iBvr1iAjGrakIEvzCS8S76v4q43jjlDb6Wj+S4OnFLH/uRlt7eLXcx4vlaI6huMzYrUAoopMg==", + "requires": { + "debug": "^4.0.1", + "err-code": "^2.0.3", + "get-browser-rtc": "^1.0.0", + "queue-microtask": "^1.1.0", + "randombytes": "^2.0.3", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "remove-trailing-separator": "^1.0.1" + "ms": "2.1.2" } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "libp2p-webrtc-star": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/libp2p-webrtc-star/-/libp2p-webrtc-star-0.21.2.tgz", + "integrity": "sha512-Ax5s/Ih8f5cVAt1RQacokjbzSnvz5+SmW+1bPs22myZ48WcTt8CydHOKBGKpflFZBMHNttPoOY4xgLp95xxuIg==", + "requires": { + "@hapi/hapi": "^20.0.0", + "@hapi/inert": "^6.0.3", + "abortable-iterator": "^3.0.0", + "class-is": "^1.1.0", + "debug": "^4.2.0", + "err-code": "^3.0.1", + "ipfs-utils": "^6.0.0", + "it-pipe": "^1.1.0", + "libp2p-utils": "^0.2.1", + "libp2p-webrtc-peer": "^10.0.1", + "mafmt": "^8.0.0", + "menoetius": "0.0.2", + "minimist": "^1.2.5", + "multiaddr": "^8.0.0", + "p-defer": "^3.0.0", + "peer-id": "^0.14.2", + "prom-client": "^13.0.0", + "socket.io": "^2.3.0", + "socket.io-client-next": "npm:socket.io-client@^3.0.4", + "socket.io-next": "npm:socket.io@^3.0.4", + "stream-to-it": "^0.2.2", + "streaming-iterables": "^5.0.3" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "ms": "2.1.2" } }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "ip-address": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-6.4.0.tgz", + "integrity": "sha512-c5uxc2WUTuRBVHT/6r4m7HIr/DfV0bF6DvLH3iZGSK8wp8iMwwZSgIq2do0asFf8q9ECug0SE+6+1ACMe4sorA==", "requires": { - "glob": "^7.1.3" + "jsbn": "1.1.0", + "lodash.find": "4.6.0", + "lodash.max": "4.0.1", + "lodash.merge": "4.6.2", + "lodash.padstart": "4.6.1", + "lodash.repeat": "4.1.0", + "sprintf-js": "1.1.2" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", + "libp2p-utils": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.2.3.tgz", + "integrity": "sha512-9BoMCgvJF7LJ+JVMaHtqfCqhZN4i/sx0DrY6lf9U0Rq9uUgQ9qTai2O9LXcfr1LOS3OMMeRLsKk25MMgsf7W3w==", "requires": { - "escape-string-regexp": "^2.0.0" + "abortable-iterator": "^3.0.0", + "debug": "^4.2.0", + "err-code": "^2.0.3", + "ip-address": "^6.1.0", + "is-loopback-addr": "^1.0.0", + "multiaddr": "^8.0.0", + "private-ip": "^2.1.1" }, "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" } } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "libp2p-websockets": { + "version": "0.15.9", + "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.15.9.tgz", + "integrity": "sha512-tuQ4KezPEiJ/JXGKJUttPgBWTv36NnaqY05lWja8wQwQU3R1NgpH4GRJnTBshGXoBFdvGGJbTxvsJlh15NzMkg==", + "requires": { + "abortable-iterator": "^3.0.0", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "ipfs-utils": "^8.1.2", + "it-ws": "^4.0.0", + "libp2p-utils": "^0.3.0", + "mafmt": "^9.0.0", + "multiaddr": "^9.0.1", + "multiaddr-to-uri": "^7.0.0", + "p-defer": "^3.0.0", + "p-timeout": "^4.1.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "safe-buffer": "~5.1.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "ansi-regex": "^2.0.0" + "ms": "2.1.2" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "ipfs-utils": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz", + "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==", "requires": { - "has-flag": "^3.0.0" + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^3.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.1.5", + "it-glob": "~0.0.11", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-abort-controller": "^1.0.3", + "native-fetch": "^3.0.0", + "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "react-native-fetch-api": "^2.0.0", + "stream-to-it": "^0.2.2" } }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" + "iso-url": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", + "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "mafmt": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", + "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "multiaddr": "^9.0.1" } }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "cids": "^1.0.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multibase": "^4.0.2", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0" } }, - "ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "multiaddr-to-uri": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-7.0.0.tgz", + "integrity": "sha512-VbscDpLcbV0m25tJqfnZSfbjVUuNlPa4BbD5l/7me1t0lc3SWI0XAoO5E/PNJF0e1qUlbdq7yjVFEQjUT+9r0g==", "requires": { - "options": ">=0.0.5", - "ultron": "1.0.x" + "multiaddr": "^9.0.1" } }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + "node-fetch": { + "version": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" }, - "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" + } + } + }, + "liquidcore": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/liquidcore/-/liquidcore-0.7.10.tgz", + "integrity": "sha512-8Ks5reBkEzUPCX4QwNKunRFMXFGtMT8N0vlcCZOhFOcDahxlyieg0ZOpbHUPSviCSvaBByAEvj1xb6R9dNbQkA==", + "requires": { + "filecompare": "^1.0.4", + "metro": "0.57.0", + "metro-core": "0.57.0", + "tmp": "^0.1.0" + }, + "dependencies": { + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" + "rimraf": "^2.6.3" + } + } + } + }, + "listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", + "dev": true + }, + "livereload": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", + "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "dev": true, + "requires": { + "chokidar": "^3.5.0", + "livereload-js": "^3.3.1", + "opts": ">= 1.2.0", + "ws": "^7.4.3" + } + }, + "livereload-js": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz", + "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" } }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, "requires": { - "camelcase": "^4.1.0" + "minimist": "^1.2.0" } } } }, - "metro-babel-register": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.57.0.tgz", - "integrity": "sha512-toZwgFY/y/+8GxSLT6kDRI5/hcnm7VtVglMo8WN9p9LEeGjKgWeJrf6YrrqQ8L+Ycy771w00jHZVw2QwlvCQUQ==", + "loady": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz", + "integrity": "sha512-uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==" + }, + "local-access": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", + "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.find": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", + "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.max": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.max/-/lodash.max-4.0.1.tgz", + "integrity": "sha1-hzVWbGGLNan3YFILSHrnllivE2o=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "optional": true + }, + "lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" + }, + "lodash.repeat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", + "integrity": "sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lowdb": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", + "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", + "requires": { + "graceful-fs": "^4.1.3", + "is-promise": "^2.1.0", + "lodash": "4", + "pify": "^3.0.0", + "steno": "^0.4.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "requires": { - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/register": "^7.0.0", - "core-js": "^2.2.2", - "escape-string-regexp": "^1.0.5" + "tslib": "^2.0.3" } }, - "metro-babel-transformer": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.57.0.tgz", - "integrity": "sha512-679BstNiPUUt5a4f86iJTa7q8jFntgd9SQBVWN+CLI5L9T7iTxi7JDbR+oHIOi3OT/dBlY9s2dWZCVAuNW9DHA==", + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "@babel/core": "^7.0.0", - "metro-source-map": "0.57.0" + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } }, - "metro-cache": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.57.0.tgz", - "integrity": "sha512-vdZaLyVhY7edArO069Jfg3RvYiratNsPtWh/oV5CtRXh5QYNyqWAEQ2riy0tZnC6ECwt6jAygQB8o3DNx5CI+w==", + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + }, + "mafmt": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-8.0.4.tgz", + "integrity": "sha512-wwZ5+PU0vQw10kwQRyZin1Z0dqVOp0BnYlX1xvXHS2fmLwrrQCfU1+3tlW5MRcihUwGz1virnVhbRAU1biKfiw==", "requires": { - "jest-serializer": "^24.4.0", - "metro-core": "0.57.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4" + "multiaddr": "^8.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" }, "dependencies": { - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "menoetius": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/menoetius/-/menoetius-0.0.2.tgz", + "integrity": "sha512-7W0ayHMNgvEdFh+m3m29KA87nvT0JIGCXeSZa26fiSof+bwpg+olEjD8AAvtxZ3uhTcp2d+5r1dcV/KhR8PBVQ==", + "requires": { + "prom-client": "^11.5.3" + }, + "dependencies": { + "prom-client": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz", + "integrity": "sha512-iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==", "requires": { - "glob": "^7.1.3" + "tdigest": "^0.1.1" } } } }, - "metro-config": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.57.0.tgz", - "integrity": "sha512-QEz4Uu2fJoCguOuol72t4alG/vzHNaKOyYpd/evXokBFq2FsFw6dN5WYRL0mr6QlWPjh1efoeDD9s/DB2xG7nQ==", + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, "requires": { - "cosmiconfig": "^5.0.5", - "jest-validate": "^24.7.0", - "metro": "0.57.0", - "metro-cache": "0.57.0", - "metro-core": "0.57.0", - "pretty-format": "^24.7.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { + "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, "requires": { - "@types/yargs-parser": "*" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, "requires": { - "color-convert": "^1.9.0" + "error-ex": "^1.2.0" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "pinkie-promise": "^2.0.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, "requires": { - "color-name": "1.1.3" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, "requires": { - "has-flag": "^3.0.0" + "is-utf8": "^0.2.0" } } } }, - "metro-core": { + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "requires": { + "is-plain-obj": "^2.1.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "metro": { "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.57.0.tgz", - "integrity": "sha512-PSiCqis2tjlnafA3iVN2eDt2a7MgxgDpR7XfThqkgEhoQ9VL2Ko1n4btEGPT9O8YwjjpkVIG4hYc11mfpdCc/w==", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.57.0.tgz", + "integrity": "sha512-En3phXm60rij0QxNM9+MHQZwJA48QQfNQdT4A0tt5XGZ3MJd8cYlO5LCpRLhFm+15aCblMWGKX58Sm8evtsAag==", "requires": { + "@babel/core": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/plugin-external-helpers": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "absolute-path": "^0.0.0", + "async": "^2.4.0", + "babel-preset-fbjs": "^3.3.0", + "buffer-crc32": "^0.2.13", + "chalk": "^2.4.1", + "concat-stream": "^1.6.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "denodeify": "^1.2.1", + "eventemitter3": "^3.0.0", + "fbjs": "^1.0.0", + "fs-extra": "^1.0.0", + "graceful-fs": "^4.1.3", + "image-size": "^0.6.0", + "invariant": "^2.2.4", "jest-haste-map": "^24.7.1", + "jest-worker": "^24.6.0", + "json-stable-stringify": "^1.0.1", "lodash.throttle": "^4.1.1", + "merge-stream": "^1.0.1", + "metro-babel-register": "0.57.0", + "metro-babel-transformer": "0.57.0", + "metro-cache": "0.57.0", + "metro-config": "0.57.0", + "metro-core": "0.57.0", + "metro-inspector-proxy": "0.57.0", + "metro-minify-uglify": "0.57.0", + "metro-react-native-babel-preset": "0.57.0", "metro-resolver": "0.57.0", - "wordwrap": "^1.0.0" + "metro-source-map": "0.57.0", + "metro-symbolicate": "0.57.0", + "mime-types": "2.1.11", + "mkdirp": "^0.5.1", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.1", + "resolve": "^1.5.0", + "rimraf": "^2.5.4", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "temp": "0.8.3", + "throat": "^4.1.0", + "wordwrap": "^1.0.0", + "write-file-atomic": "^1.2.0", + "ws": "^1.1.5", + "xpipe": "^1.0.5", + "yargs": "^9.0.0" }, "dependencies": { - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - } - }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - } - }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "lodash": "^4.17.14" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "chalk": { "version": "2.4.2", @@ -15507,248 +24787,289 @@ "supports-color": "^5.3.0" } }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "is-extendable": "^0.1.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" } }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "ci-info": "^2.0.0" + "number-is-nan": "^1.0.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "readable-stream": "^2.0.1" } }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", + "mime-db": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=" + }, + "mime-types": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" + "mime-db": "~1.23.0" } }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "@jest/types": "^24.9.0" + "safe-buffer": "~5.1.0" } }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" } }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "has-flag": "^3.0.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "requires": { - "remove-trailing-separator": "^1.0.1" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", + "ws": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } + "options": ">=0.0.5", + "ultron": "1.0.x" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", "requires": { - "has-flag": "^3.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "camelcase": "^4.1.0" } } } }, + "metro-babel-register": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.57.0.tgz", + "integrity": "sha512-toZwgFY/y/+8GxSLT6kDRI5/hcnm7VtVglMo8WN9p9LEeGjKgWeJrf6YrrqQ8L+Ycy771w00jHZVw2QwlvCQUQ==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/register": "^7.0.0", + "core-js": "^2.2.2", + "escape-string-regexp": "^1.0.5" + } + }, + "metro-babel-transformer": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.57.0.tgz", + "integrity": "sha512-679BstNiPUUt5a4f86iJTa7q8jFntgd9SQBVWN+CLI5L9T7iTxi7JDbR+oHIOi3OT/dBlY9s2dWZCVAuNW9DHA==", + "requires": { + "@babel/core": "^7.0.0", + "metro-source-map": "0.57.0" + } + }, + "metro-cache": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.57.0.tgz", + "integrity": "sha512-vdZaLyVhY7edArO069Jfg3RvYiratNsPtWh/oV5CtRXh5QYNyqWAEQ2riy0tZnC6ECwt6jAygQB8o3DNx5CI+w==", + "requires": { + "jest-serializer": "^24.4.0", + "metro-core": "0.57.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4" + } + }, + "metro-config": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.57.0.tgz", + "integrity": "sha512-QEz4Uu2fJoCguOuol72t4alG/vzHNaKOyYpd/evXokBFq2FsFw6dN5WYRL0mr6QlWPjh1efoeDD9s/DB2xG7nQ==", + "requires": { + "cosmiconfig": "^5.0.5", + "jest-validate": "^24.7.0", + "metro": "0.57.0", + "metro-cache": "0.57.0", + "metro-core": "0.57.0", + "pretty-format": "^24.7.0" + } + }, + "metro-core": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.57.0.tgz", + "integrity": "sha512-PSiCqis2tjlnafA3iVN2eDt2a7MgxgDpR7XfThqkgEhoQ9VL2Ko1n4btEGPT9O8YwjjpkVIG4hYc11mfpdCc/w==", + "requires": { + "jest-haste-map": "^24.7.1", + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.57.0", + "wordwrap": "^1.0.0" + } + }, "metro-inspector-proxy": { "version": "0.57.0", "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.57.0.tgz", @@ -15793,6 +25114,14 @@ } } }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -15806,6 +25135,11 @@ "number-is-nan": "^1.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", @@ -15890,6 +25224,22 @@ "integrity": "sha512-hDTuYfpY+07b1x3i2c71CilH+9+vx4I5Lk57Q4T94tojzNGnsndQxq/AcRIbpbdiRlcw4r1+Fm4BLCR8J9JjTw==", "requires": { "uglify-es": "^3.1.9" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + } + } } }, "metro-react-native-babel-preset": { @@ -15983,13 +25333,23 @@ } }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "miller-rabin": { @@ -16020,9 +25380,9 @@ } }, "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "mimic-response": { "version": "1.0.1", @@ -16067,13 +25427,6 @@ "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } } }, "minizlib": { @@ -16091,6 +25444,16 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { @@ -16136,9 +25499,9 @@ "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "multiaddr": { "version": "8.1.2", @@ -16354,14 +25717,6 @@ "ms": "2.1.2" } }, - "it-reader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", - "requires": { - "bl": "^4.0.0" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -16466,23 +25821,6 @@ "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - } } }, "negotiator": { @@ -16518,73 +25856,6 @@ "ts-typed-json": "^0.2.2", "validate-npm-package-license": "^3.0.1", "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "optional": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", - "optional": true, - "requires": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "optional": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "optional": true - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "optional": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "optional": true, - "requires": { - "has-flag": "^2.0.0" - } - } } }, "netmask": { @@ -16614,14 +25885,6 @@ "path-to-regexp": "^1.7.0" }, "dependencies": { - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -16644,13 +25907,6 @@ "requires": { "lower-case": "^2.0.2", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "node-addon-api": { @@ -16697,15 +25953,6 @@ "abbrev": "1" } }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", @@ -16722,13 +25969,22 @@ "fstream": "^1.0.12", "inherits": "2" } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, "node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" }, "node-int64": { "version": "0.4.0", @@ -16756,23 +26012,6 @@ "rimraf": "^2.6.1", "semver": "^5.3.0", "tar": "^4.4.2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true - } } }, "node-releases": { @@ -16865,6 +26104,15 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -16906,20 +26154,15 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } }, "normalize-url": { "version": "4.5.1", @@ -17045,44 +26288,11 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -17104,9 +26314,9 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object-path": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.7.tgz", - "integrity": "sha512-T4evaK9VfGGQskXBDILcn6F90ZD+WO3OwRFFQ2rmZdUH4vQeDBpiolTpVlPY2yj5xSepyILTjDyM6UvbbdHMZw==" + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==" }, "object-visit": { "version": "1.0.1", @@ -17186,11 +26396,12 @@ } }, "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "optional": true, "requires": { - "mimic-fn": "^2.1.0" + "mimic-fn": "^1.0.0" } }, "optimism": { @@ -17249,6 +26460,16 @@ "mem": "^1.1.0" }, "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", @@ -17273,6 +26494,15 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -17285,6 +26515,32 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, @@ -17357,11 +26613,11 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -17370,16 +26626,6 @@ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - } } }, "p-map": { @@ -17403,14 +26649,6 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "requires": { - "p-finally": "^1.0.0" - } } } }, @@ -17435,16 +26673,6 @@ "requires": { "p-limit": "^2.2.2", "p-reflect": "^2.1.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - } } }, "p-some": { @@ -17457,9 +26685,12 @@ } }, "p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "requires": { + "p-finally": "^1.0.0" + } }, "p-times": { "version": "3.0.0", @@ -17485,16 +26716,6 @@ "integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==", "requires": { "p-timeout": "^3.0.0" - }, - "dependencies": { - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "requires": { - "p-finally": "^1.0.0" - } - } } }, "package-json": { @@ -17522,13 +26743,6 @@ "requires": { "dot-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "parse-asn1": { @@ -17590,13 +26804,6 @@ "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "pascalcase": { @@ -17611,23 +26818,12 @@ "requires": { "dot-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "path-is-absolute": { "version": "1.0.1", @@ -17746,9 +26942,9 @@ "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pinkie": { "version": "2.0.4", @@ -17796,6 +26992,56 @@ "rfdc": "^1.3.0", "split2": "^3.1.1", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "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" + } + } } }, "pino-std-serializers": { @@ -17812,11 +27058,43 @@ } }, "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "requires": { - "find-up": "^4.0.0" + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } } }, "posix-character-classes": { @@ -17835,15 +27113,6 @@ "supports-color": "^6.1.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -17866,21 +27135,6 @@ } } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -18011,12 +27265,6 @@ "requires": { "resolve-from": "^3.0.0" } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true } } }, @@ -18174,15 +27422,6 @@ "postcss": "^6.0.1" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -18194,21 +27433,6 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -18247,15 +27471,6 @@ "postcss": "^6.0.1" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -18267,21 +27482,6 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -18320,15 +27520,6 @@ "postcss": "^6.0.1" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -18340,21 +27531,6 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -18393,15 +27569,6 @@ "postcss": "^6.0.1" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -18413,21 +27580,6 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -18738,6 +27890,24 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + } + } + }, "printj": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", @@ -18768,10 +27938,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prom-client": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz", - "integrity": "sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ==", - "optional": true, + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-13.2.0.tgz", + "integrity": "sha512-wGr5mlNNdRNzEhRYXgboUU2LxHWIojxscJKmtG3R8f4/KiWqyYgXTLHs0+Ted7tG3zFT7pgHJbtomzZ1L0ARaQ==", "requires": { "tdigest": "^0.1.1" } @@ -18870,6 +28039,13 @@ "@types/long": "^4.0.1", "@types/node": ">=13.7.0", "long": "^4.0.0" + }, + "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + } } }, "protocol-buffers-schema": { @@ -18968,15 +28144,13 @@ "integrity": "sha512-IDefMJEQl7HX0FP2hIKJFnAR11klP1js2ixCrOaMhe3kXFK6RQ2ABUCuwWaaD4ib0hSbh2fGTICvWJJhDfNecA==", "requires": { "tslib": "^2.2.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, + "pvutils": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", + "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -18988,6 +28162,16 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -19120,13 +28304,6 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - } } }, "react": { @@ -19254,13 +28431,6 @@ "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", "requires": { "ms": "^2.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } } }, "redent": { @@ -19296,11 +28466,11 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", "requires": { - "regenerate": "^1.4.0" + "regenerate": "^1.4.2" } }, "regenerator-runtime": { @@ -19326,16 +28496,16 @@ } }, "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" } }, "registry-auth-token": { @@ -19360,9 +28530,9 @@ "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" }, "regjsparser": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", - "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", "requires": { "jsesc": "~0.5.0" }, @@ -19425,30 +28595,11 @@ "uuid": "^3.3.2" }, "dependencies": { - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -19493,13 +28644,20 @@ "dev": true, "requires": { "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } } }, "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" }, "resolve-url": { "version": "0.2.1", @@ -19522,23 +28680,6 @@ "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" - }, - "dependencies": { - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "optional": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "optional": true, - "requires": { - "mimic-fn": "^1.0.0" - } - } } }, "ret": { @@ -19579,10 +28720,9 @@ "dev": true }, "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { "glob": "^7.1.3" } @@ -19605,11 +28745,19 @@ } }, "rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", + "version": "2.52.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.7.tgz", + "integrity": "sha512-55cSH4CCU6MaPr9TAOyrIC+7qFCHscL7tkNsm1MBfIJRRqRbCEY0mmeFn4Wg8FKsHtEH8r389Fz38r/o+kgXLg==", "requires": { "fsevents": "~2.3.2" + }, + "dependencies": { + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + } } }, "rollup-plugin-inject": { @@ -19680,11 +28828,60 @@ "style-inject": "^0.3.0" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "dev": true, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "pify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -19711,6 +28908,12 @@ "terser": "^5.0.0" }, "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", @@ -19721,6 +28924,15 @@ "merge-stream": "^2.0.0", "supports-color": "^7.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -19736,15 +28948,6 @@ "tslib": "2.1.0" }, "dependencies": { - "@rollup/pluginutils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", - "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", - "requires": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - } - }, "find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -19773,6 +28976,14 @@ "graceful-fs": "^4.1.6" } }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", @@ -19899,42 +29110,6 @@ "walker": "~1.0.5" }, "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -19961,27 +29136,6 @@ "strip-eof": "^1.0.0" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -19990,67 +29144,11 @@ "pump": "^3.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -20064,18 +29162,25 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "isexe": "^2.0.0" } } } @@ -20089,9 +29194,9 @@ } }, "sass": { - "version": "1.38.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.38.1.tgz", - "integrity": "sha512-Lj8nPaSYOuRhgqdyShV50fY5jKnvaRmikUNalMPmbH+tKMGgEKVkltI/lP30PEfO2T1t6R9yc2QIBLgOc3uaFw==", + "version": "1.41.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.41.1.tgz", + "integrity": "sha512-vIjX7izRxw3Wsiez7SX7D+j76v7tenfO18P59nonjr/nzCkZuoHuF7I/Fo0ZRZPKr88v29ivIdE9BqGDgQD/Nw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0" @@ -20115,15 +29220,6 @@ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -20135,19 +29231,10 @@ "wrap-ansi": "^5.1.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "find-up": { @@ -20169,15 +29256,6 @@ "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -20224,12 +29302,6 @@ "strip-ansi": "^5.0.0" } }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", @@ -20308,13 +29380,6 @@ "elliptic": "^6.5.2", "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0" - }, - "dependencies": { - "node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" - } } }, "semiver": { @@ -20323,12 +29388,9 @@ "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==" }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-diff": { "version": "3.1.1", @@ -20365,6 +29427,21 @@ "statuses": "~1.5.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "http-errors": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", @@ -20397,13 +29474,6 @@ "no-case": "^3.0.4", "tslib": "^2.0.3", "upper-case-first": "^2.0.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "serialize-error": { @@ -20476,11 +29546,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, @@ -20540,17 +29605,17 @@ } }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "side-channel": { "version": "1.0.4", @@ -20563,9 +29628,9 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.4.tgz", + "integrity": "sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==" }, "signed-varint": { "version": "2.0.1", @@ -20627,12 +29692,17 @@ "supports-color": "^7.1.0" }, "dependencies": { - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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": { - "@sinonjs/commons": "^1.7.0" + "has-flag": "^4.0.0" } } } @@ -20676,10 +29746,9 @@ "dev": true }, "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" }, "slide": { "version": "1.1.6", @@ -20693,13 +29762,6 @@ "requires": { "dot-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "snapdragon": { @@ -20717,6 +29779,14 @@ "use": "^3.1.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -20733,66 +29803,10 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "source-map": { "version": "0.5.7", @@ -20818,6 +29832,32 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -20864,11 +29904,6 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" } } }, @@ -20903,6 +29938,16 @@ "ms": "2.0.0" } }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "socket.io-parser": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", @@ -21000,6 +30045,11 @@ "socket.io-parser": "~4.0.3" }, "dependencies": { + "@types/node": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", + "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + }, "cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", @@ -21085,10 +30135,10 @@ "ms": "^2.1.1" } }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" } } }, @@ -21143,7 +30193,8 @@ "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true }, "sparse-array": { "version": "1.3.2", @@ -21228,10 +30279,9 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", + "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", "requires": { "escape-string-regexp": "^2.0.0" }, @@ -21239,8 +30289,7 @@ "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" } } }, @@ -21260,62 +30309,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -21333,12 +30326,6 @@ "readable-stream": "^2.0.1" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -21421,6 +30408,23 @@ "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "string-width": { @@ -21430,21 +30434,6 @@ "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } } }, "string.prototype.trimend": { @@ -21474,18 +30463,17 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "strip-eof": { "version": "1.0.0", @@ -21515,9 +30503,9 @@ } }, "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "strtok3": { "version": "6.2.4", @@ -21568,21 +30556,14 @@ "iterall": "^1.2.1", "symbol-observable": "^1.0.4", "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" - }, - "dependencies": { - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - } } }, "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==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "^4.0.0" + "has-flag": "^2.0.0" } }, "supports-hyperlinks": { @@ -21593,12 +30574,29 @@ "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "svelte": { - "version": "3.42.4", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.42.4.tgz", - "integrity": "sha512-DqC0AmDdBrrbIA+Kzl3yhBb6qCn4vZOAfxye2pTnIpinLegyagC5sLI8Pe9GPlXu9VpHBXIwpDDedpMfu++epA==" + "version": "3.42.6", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.42.6.tgz", + "integrity": "sha512-lAcryr9Do2PeGtbodspX5I4kWj4yWYAa2WGpDCwzNkP3y8WZTxigMd4/TMO1rBZEOkMYGn4ZXrbAlSEGhK6q3w==" }, "svgo": { "version": "1.3.2", @@ -21621,15 +30619,6 @@ "util.promisify": "~1.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -21650,21 +30639,6 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -21728,11 +30702,6 @@ "xhr-request": "^1.0.1" }, "dependencies": { - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, "fs-extra": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", @@ -21821,10 +30790,9 @@ } }, "symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "dev": true + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" }, "symbol-tree": { "version": "3.2.4", @@ -21843,14 +30811,6 @@ "lodash.padend": "^4.6.1", "typical": "^2.6.1", "wordwrapjs": "^3.0.0" - }, - "dependencies": { - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - } } }, "tar": { @@ -21865,13 +30825,6 @@ "mkdirp": "^0.5.5", "safe-buffer": "^5.2.1", "yallist": "^3.1.1" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } } }, "tdigest": { @@ -21906,17 +30859,34 @@ "requires": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } } }, "terser": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", - "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.8.0.tgz", + "integrity": "sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", - "source-map-support": "~0.5.19" + "source-map-support": "~0.5.20" }, "dependencies": { "source-map": { @@ -21956,20 +30926,13 @@ "requires": { "typical": "^2.6.0" } - }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true } } }, "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" }, "through": { "version": "2.3.8", @@ -21986,11 +30949,6 @@ "xtend": "~4.0.1" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -22069,21 +31027,12 @@ "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==" }, "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "optional": true, "requires": { - "rimraf": "^2.6.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } + "os-tmpdir": "~1.0.2" } }, "tmpl": { @@ -22141,12 +31090,12 @@ } }, "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "^7.0.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "toidentifier": { @@ -22175,22 +31124,12 @@ "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" }, "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tr46": { @@ -22232,38 +31171,162 @@ } }, "ts-invariant": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", - "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", - "dev": true, + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", "requires": { - "tslib": "^2.1.0" + "tslib": "^1.9.3" }, "dependencies": { "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "ts-jest": { + "version": "27.0.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.5.tgz", + "integrity": "sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^27.0.0", + "json5": "2.x", + "lodash": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "jest-util": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", + "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "dev": true, + "requires": { + "@jest/types": "^27.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true } } }, - "ts-jest": { - "version": "27.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.5.tgz", - "integrity": "sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - } - }, "ts-typed-json": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", @@ -22282,9 +31345,9 @@ } }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tunnel-agent": { "version": "0.6.0", @@ -22319,10 +31382,9 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" }, "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" }, "type-is": { "version": "1.6.18", @@ -22347,37 +31409,22 @@ } }, "typescript": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", - "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", + "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", "dev": true }, "typical": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", - "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "optional": true }, "ua-parser-js": { "version": "0.7.28", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==" }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" - } - } - }, "uglify-js": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", @@ -22409,28 +31456,28 @@ } }, "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" }, "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" } }, "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" }, "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" }, "union-value": { "version": "1.0.1", @@ -22441,13 +31488,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } } }, "uniq": { @@ -22524,11 +31564,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, @@ -22550,10 +31585,10 @@ "setimmediate": "~1.0.4" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", "dev": true }, "readable-stream": { @@ -22609,17 +31644,55 @@ "xdg-basedir": "^4.0.0" }, "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "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" + } }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { - "ci-info": "^2.0.0" + "lru-cache": "^6.0.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" } } } @@ -22630,13 +31703,6 @@ "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "requires": { "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "upper-case-first": { @@ -22645,13 +31711,6 @@ "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "requires": { "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "uri-js": { @@ -22714,13 +31773,6 @@ "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", "requires": { "node-gyp-build": "^4.2.0" - }, - "dependencies": { - "node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" - } } }, "utf8": { @@ -22849,6 +31901,13 @@ "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + } } }, "vlq": { @@ -23236,13 +32295,6 @@ "asn1js": "^2.1.1", "pvtsutils": "^1.2.0", "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "webidl-conversions": { @@ -23262,6 +32314,21 @@ "typedarray-to-buffer": "^3.1.5", "utf-8-validate": "^5.0.2", "yaeti": "^0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "whatwg-encoding": { @@ -23296,9 +32363,9 @@ } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "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" } @@ -23349,10 +32416,10 @@ "string-width": "^4.0.0" }, "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -23368,6 +32435,14 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } } } }, @@ -23390,30 +32465,43 @@ "requires": { "reduce-flatten": "^1.0.1", "typical": "^2.6.1" - }, - "dependencies": { - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - } } }, "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "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" + } + }, + "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==" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -23429,6 +32517,14 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } } } }, @@ -23481,18 +32577,6 @@ "timed-out": "^4.0.1", "url-set-query": "^1.0.0", "xhr": "^2.0.4" - }, - "dependencies": { - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - } } }, "xhr-request-promise": { @@ -23572,9 +32656,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "yaeti": { "version": "0.0.6", @@ -23582,9 +32666,9 @@ "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "yargs": { "version": "16.2.0", @@ -23600,10 +32684,41 @@ "yargs-parser": "^20.2.2" }, "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "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" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.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==" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -23619,13 +32734,45 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" } } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yeast": { "version": "0.1.2", @@ -23649,6 +32796,13 @@ "requires": { "tslib": "^1.9.3", "zen-observable": "^0.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } } } } diff --git a/package.json b/package.json index 003934339..54927f5c1 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "types": "src/types.d.ts", "scripts": { "build": "tsc && npm run build-dapp", + "build-executor": "tsc", "build-dapp": "rollup -c", "dapp-dev": "rollup -c -w", "dapp-start": "sirv public", @@ -66,7 +67,7 @@ "node-sass": "^4.14.1", "node-wget-js": "^1.0.1", "react": "^17.0.1", - "rollup": "^2.41.3", + "rollup": "2.52.7", "rollup-plugin-inject-process-env": "^1.3.1", "rollup-plugin-livereload": "^2.0.0", "rollup-plugin-node-polyfills": "^0.2.1", @@ -83,9 +84,6 @@ "@holochain/conductor-api": "0.2.0", "@perspect3vism/ad4m": "file:../ad4m", "@peculiar/webcrypto": "^1.1.7", - "@rollup/plugin-commonjs": "^17.1.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.2.0", "@transmute/did-key-ed25519": "^0.2.1-unstable.29", "@transmute/did-key-secp256k1": "^0.2.1-unstable.29", "@transmute/did-key.js": "^0.2.1-unstable.29", @@ -102,10 +100,8 @@ "node-fetch": "^2.6.1", "svelte": "^3.0.0", "sirv-cli": "^1.0.0", - "@metamask/detect-provider": "^1.1.0", - "web3": "^1.3.0", - "rollup": "^2.41.3", - "rollup-plugin-typescript2": "^0.30.0", + "@metamask/detect-provider": "1.2.0", + "web3": "^1.5.2", "sha256": "^0.2.0", "sha3": "^2.1.3" } diff --git a/src/tests/integration.test.ts b/src/tests/integration.test.ts index 28aefe202..d448a2c45 100644 --- a/src/tests/integration.test.ts +++ b/src/tests/integration.test.ts @@ -152,64 +152,64 @@ describe("Integration tests", () => { }) describe('Agent / Agent-Setup', agentTests(testContext)) - describe('Runtime', runtimeTests(testContext)) - describe('Expression', expressionTests(testContext)) - describe('Perspective', perspectiveTests(testContext)) - - describe('with Alice and Bob', () => { - let bob: PerspectivismCore | null = null - beforeAll(async () => { - const appDataPath = path.join(TEST_DIR, 'agents', 'bob') - const ipfsRepoPath = path.join(appDataPath, '.jsipfs') - if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - fs.mkdirSync(path.join(TEST_DIR, 'agents')) - if(!fs.existsSync(appDataPath)) - fs.mkdirSync(appDataPath) - - bob = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - appDefaultLangPath: path.join(TEST_DIR, 'languages'), - ad4mBootstrapLanguages: { - agents: "agent-expression-store", - languages: "languages", - neighbourhoods: "neighbourhood-store", - }, - ad4mBootstrapFixtures: { - languages: [], - perspectives: [], - }, - appBuiltInLangs: ['note-ipfs'], - appLangAliases: null, - mocks: false, - gqlPort: 14000, - hcPortAdmin: 12000, - hcPortApp: 11337, - ipfsSwarmPort: 14002, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true - }) - - bob.initControllers() - await bob.initLanguages() - - testContext.bob = new Ad4mClient(apolloClient(14000)) - testContext.bobCore = bob - const generate = await testContext.bob.agent.generate("passphrase") - expect(generate.isInitialized).toBe(true); - expect(generate.isUnlocked).toBe(true); - await testContext.makeAllNodesKnown() - }) - - afterAll(async () => { - await bob!.exit(); - await new Promise((resolve)=>setTimeout(resolve, 1000)) - }) - - describe('Language', languageTests(testContext)) - describe('Neighbourhood', neighbourhoodTests(testContext)) - }) + // describe('Runtime', runtimeTests(testContext)) + // describe('Expression', expressionTests(testContext)) + // describe('Perspective', perspectiveTests(testContext)) + + // describe('with Alice and Bob', () => { + // let bob: PerspectivismCore | null = null + // beforeAll(async () => { + // const appDataPath = path.join(TEST_DIR, 'agents', 'bob') + // const ipfsRepoPath = path.join(appDataPath, '.jsipfs') + // if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + // fs.mkdirSync(path.join(TEST_DIR, 'agents')) + // if(!fs.existsSync(appDataPath)) + // fs.mkdirSync(appDataPath) + + // bob = await main.init({ + // appDataPath, + // resourcePath: TEST_DIR, + // appDefaultLangPath: path.join(TEST_DIR, 'languages'), + // ad4mBootstrapLanguages: { + // agents: "agent-expression-store", + // languages: "languages", + // neighbourhoods: "neighbourhood-store", + // }, + // ad4mBootstrapFixtures: { + // languages: [], + // perspectives: [], + // }, + // appBuiltInLangs: ['note-ipfs'], + // appLangAliases: null, + // mocks: false, + // gqlPort: 14000, + // hcPortAdmin: 12000, + // hcPortApp: 11337, + // ipfsSwarmPort: 14002, + // ipfsRepoPath, + // hcUseBootstrap: false, + // hcUseProxy: false, + // hcUseLocalProxy: false, + // hcUseMdns: true + // }) + + // bob.initControllers() + // await bob.initLanguages() + + // testContext.bob = new Ad4mClient(apolloClient(14000)) + // testContext.bobCore = bob + // const generate = await testContext.bob.agent.generate("passphrase") + // expect(generate.isInitialized).toBe(true); + // expect(generate.isUnlocked).toBe(true); + // await testContext.makeAllNodesKnown() + // }) + + // afterAll(async () => { + // await bob!.exit(); + // await new Promise((resolve)=>setTimeout(resolve, 1000)) + // }) + + // describe('Language', languageTests(testContext)) + // describe('Neighbourhood', neighbourhoodTests(testContext)) + // }) }) \ No newline at end of file From 24094000f7f581ec9a8860b16cc536db938b3a7f Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 17 Sep 2021 20:59:44 +0100 Subject: [PATCH 014/722] add remaining logic for saving for eth ep proof --- dapp/App.svelte | 20 +++++++++++++++++--- package-lock.json | 26 ++++++++++++++++++++++---- package.json | 1 + src/core/agent/AgentService.ts | 3 +-- src/core/agent/Signatures.ts | 8 ++++++++ 5 files changed, 49 insertions(+), 9 deletions(-) diff --git a/dapp/App.svelte b/dapp/App.svelte index 5e70a0b20..1d4218ef2 100644 --- a/dapp/App.svelte +++ b/dapp/App.svelte @@ -2,7 +2,8 @@ import Paper, {Title, Subtitle, Content} from '@smui/paper'; import Button, {Label} from '@smui/button'; import Textfield from '@smui/textfield' - import Icon from '@smui/textfield/icon/index'; + import Icon from '@smui/textfield/icon/index'; + import { NotificationDisplay, notifier } from '@beyonk/svelte-notifications' import { startEthereum, connectWallet, sign } from './ethereum' import Web3 from 'web3' import { @@ -57,9 +58,21 @@ } function signDid() { + //TODO: check that EP has not already been created with current eth address sign(currentAccount, did).then(result => { const { data, signature, r, s, v } = result; - console.log("got signature back", signature); + //Then sign eth address with did + ad4mClient.agent.entanglementProofPreFlight(ethereum.selectedAddress).then(result => { + //Add the signed did to the proof + result.didSignedByDeviceKey = signature; + delete result["__typename"]; + console.log("Sending", result); + //Save proof into ad4m + ad4mClient.agent.addEntanglementProofs([result]).then(result => { + console.log("Added EP with result", result); + notifier.success('Ethereum Proof Generated!'); + }) + }) }); } @@ -70,7 +83,7 @@ signedIn = true; } else { signedIn = false; - console.error("Incorrect password!"); + notifier.error('Incorrect Password!') } }) } @@ -79,6 +92,7 @@
+ {#if signedIn==true} {#if currentAccount==undefined}

Get Started

diff --git a/package-lock.json b/package-lock.json index 38ea6f114..c817ce7de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1041,6 +1041,12 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@beyonk/svelte-notifications": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@beyonk/svelte-notifications/-/svelte-notifications-4.1.1.tgz", + "integrity": "sha512-UMfc5K6pfAkPrtp6OL2/ZbnSBzsQaG6qYBHJVnBdoEXdH+jlL4mx0FZ6wsS90aSz9akZGRyVzsIB0e9zaWLiGw==", + "dev": true + }, "@cnakazawa/watch": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", @@ -8556,6 +8562,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", + "dev": true, "requires": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" @@ -13682,7 +13689,8 @@ "estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true }, "esutils": { "version": "2.0.3", @@ -26939,7 +26947,8 @@ "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true }, "pify": { "version": "4.0.1", @@ -28748,6 +28757,7 @@ "version": "2.52.7", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.7.tgz", "integrity": "sha512-55cSH4CCU6MaPr9TAOyrIC+7qFCHscL7tkNsm1MBfIJRRqRbCEY0mmeFn4Wg8FKsHtEH8r389Fz38r/o+kgXLg==", + "dev": true, "requires": { "fsevents": "~2.3.2" }, @@ -28756,6 +28766,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true } } @@ -28940,6 +28951,7 @@ "version": "0.30.0", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz", "integrity": "sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==", + "dev": true, "requires": { "@rollup/pluginutils": "^4.1.0", "find-cache-dir": "^3.3.1", @@ -28952,6 +28964,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -28962,6 +28975,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -28972,6 +28986,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -28980,6 +28995,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, "requires": { "find-up": "^4.0.0" } @@ -28987,12 +29003,14 @@ "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "dev": true }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true } } }, diff --git a/package.json b/package.json index 54927f5c1..557dc56fd 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ }, "devDependencies": { "@apollo/client": "3.3.20", + "@beyonk/svelte-notifications": "^4.1.1", "@rollup/plugin-commonjs": "^17.1.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^11.2.0", diff --git a/src/core/agent/AgentService.ts b/src/core/agent/AgentService.ts index bf12c6c0f..1bdd2a845 100644 --- a/src/core/agent/AgentService.ts +++ b/src/core/agent/AgentService.ts @@ -94,8 +94,7 @@ export default class AgentService { throw new Error("Can't sign without signingKeyId") } - const timestamp = new Date().toISOString() - const payloadBytes = Signatures.buildMessage(data, timestamp) + const payloadBytes = Signatures.buildMessageRaw(data) const key = this.getSigningKey() const privKey = Uint8Array.from(Buffer.from(key.privateKey, key.encoding)) diff --git a/src/core/agent/Signatures.ts b/src/core/agent/Signatures.ts index a0e30799e..acd033048 100644 --- a/src/core/agent/Signatures.ts +++ b/src/core/agent/Signatures.ts @@ -51,4 +51,12 @@ export default class Signatures { const payloadBytes = Uint8Array.from(sha256(Buffer.from(payloadBuffer), { asBytes: true })) return payloadBytes } + + static buildMessageRaw(data: any): Uint8Array { + const payload = { data } + const payloadString = stringify(payload) + const payloadBuffer = Buffer.from(payloadString) + const payloadBytes = Uint8Array.from(sha256(Buffer.from(payloadBuffer), { asBytes: true })) + return payloadBytes + } } From 3c4f89c59833beb486cdbc4cb766e3dabdc8da7d Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 17 Sep 2021 21:06:39 +0100 Subject: [PATCH 015/722] use consistent naming structure for ep resolver methods --- src/core/graphQL-interface/GraphQL.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/graphQL-interface/GraphQL.ts b/src/core/graphQL-interface/GraphQL.ts index 6ef027d2a..a3df06417 100644 --- a/src/core/graphQL-interface/GraphQL.ts +++ b/src/core/graphQL-interface/GraphQL.ts @@ -130,7 +130,7 @@ function createResolvers(core: PerspectivismCore) { return core.perspectivesController.allPerspectiveHandles() }, //@ts-ignore - getEntanglementProofs: (parent, args, context, info) => { + agentGetEntanglementProofs: (parent, args, context, info) => { return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore @@ -151,19 +151,19 @@ function createResolvers(core: PerspectivismCore) { }, Mutation: { //@ts-ignore - addEntanglementProofs: (parent, args, context, info) => { + agentAddEntanglementProofs: (parent, args, context, info) => { const { proofs } = args; core.entanglementProofController.addEntanglementProofs(proofs); return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore - deleteEntanglementProofs: (parent, args, context, info) => { + agentDeleteEntanglementProofs: (parent, args, context, info) => { const { proofs } = args; core.entanglementProofController.deleteEntanglementProofs(proofs); return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore - entanglementProofPreFlight: (parent, args, context, info) => { + agentEntanglementProofPreFlight: (parent, args, context, info) => { const { deviceKey } = args; return core.entanglementProofController.signDeviceKey(deviceKey); }, From 69afc13149df5c777c9da57a086d5db7336c09da Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 17 Sep 2021 21:06:58 +0100 Subject: [PATCH 016/722] add back missing tests --- src/tests/integration.test.ts | 120 +++++++++++++++++----------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/src/tests/integration.test.ts b/src/tests/integration.test.ts index d448a2c45..28aefe202 100644 --- a/src/tests/integration.test.ts +++ b/src/tests/integration.test.ts @@ -152,64 +152,64 @@ describe("Integration tests", () => { }) describe('Agent / Agent-Setup', agentTests(testContext)) - // describe('Runtime', runtimeTests(testContext)) - // describe('Expression', expressionTests(testContext)) - // describe('Perspective', perspectiveTests(testContext)) - - // describe('with Alice and Bob', () => { - // let bob: PerspectivismCore | null = null - // beforeAll(async () => { - // const appDataPath = path.join(TEST_DIR, 'agents', 'bob') - // const ipfsRepoPath = path.join(appDataPath, '.jsipfs') - // if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - // fs.mkdirSync(path.join(TEST_DIR, 'agents')) - // if(!fs.existsSync(appDataPath)) - // fs.mkdirSync(appDataPath) - - // bob = await main.init({ - // appDataPath, - // resourcePath: TEST_DIR, - // appDefaultLangPath: path.join(TEST_DIR, 'languages'), - // ad4mBootstrapLanguages: { - // agents: "agent-expression-store", - // languages: "languages", - // neighbourhoods: "neighbourhood-store", - // }, - // ad4mBootstrapFixtures: { - // languages: [], - // perspectives: [], - // }, - // appBuiltInLangs: ['note-ipfs'], - // appLangAliases: null, - // mocks: false, - // gqlPort: 14000, - // hcPortAdmin: 12000, - // hcPortApp: 11337, - // ipfsSwarmPort: 14002, - // ipfsRepoPath, - // hcUseBootstrap: false, - // hcUseProxy: false, - // hcUseLocalProxy: false, - // hcUseMdns: true - // }) - - // bob.initControllers() - // await bob.initLanguages() - - // testContext.bob = new Ad4mClient(apolloClient(14000)) - // testContext.bobCore = bob - // const generate = await testContext.bob.agent.generate("passphrase") - // expect(generate.isInitialized).toBe(true); - // expect(generate.isUnlocked).toBe(true); - // await testContext.makeAllNodesKnown() - // }) - - // afterAll(async () => { - // await bob!.exit(); - // await new Promise((resolve)=>setTimeout(resolve, 1000)) - // }) - - // describe('Language', languageTests(testContext)) - // describe('Neighbourhood', neighbourhoodTests(testContext)) - // }) + describe('Runtime', runtimeTests(testContext)) + describe('Expression', expressionTests(testContext)) + describe('Perspective', perspectiveTests(testContext)) + + describe('with Alice and Bob', () => { + let bob: PerspectivismCore | null = null + beforeAll(async () => { + const appDataPath = path.join(TEST_DIR, 'agents', 'bob') + const ipfsRepoPath = path.join(appDataPath, '.jsipfs') + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(appDataPath)) + fs.mkdirSync(appDataPath) + + bob = await main.init({ + appDataPath, + resourcePath: TEST_DIR, + appDefaultLangPath: path.join(TEST_DIR, 'languages'), + ad4mBootstrapLanguages: { + agents: "agent-expression-store", + languages: "languages", + neighbourhoods: "neighbourhood-store", + }, + ad4mBootstrapFixtures: { + languages: [], + perspectives: [], + }, + appBuiltInLangs: ['note-ipfs'], + appLangAliases: null, + mocks: false, + gqlPort: 14000, + hcPortAdmin: 12000, + hcPortApp: 11337, + ipfsSwarmPort: 14002, + ipfsRepoPath, + hcUseBootstrap: false, + hcUseProxy: false, + hcUseLocalProxy: false, + hcUseMdns: true + }) + + bob.initControllers() + await bob.initLanguages() + + testContext.bob = new Ad4mClient(apolloClient(14000)) + testContext.bobCore = bob + const generate = await testContext.bob.agent.generate("passphrase") + expect(generate.isInitialized).toBe(true); + expect(generate.isUnlocked).toBe(true); + await testContext.makeAllNodesKnown() + }) + + afterAll(async () => { + await bob!.exit(); + await new Promise((resolve)=>setTimeout(resolve, 1000)) + }) + + describe('Language', languageTests(testContext)) + describe('Neighbourhood', neighbourhoodTests(testContext)) + }) }) \ No newline at end of file From 15254c882cc62aebcda382fdd2934f90e2719c81 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 22 Sep 2021 14:47:32 +0100 Subject: [PATCH 017/722] add necassary change to all HolochainService to generate EP proof + call hc conductor for did signing (sign method currently not implemented by conductor) --- package-lock.json | 249 +++++++----------- src/core/EntanglementProof.ts | 5 +- src/core/PerspectivismCore.ts | 7 +- .../Holochain/HolochainService.ts | 17 +- src/main.ts | 2 +- src/tests/linkLanguage.test.ts | 1 + 6 files changed, 114 insertions(+), 167 deletions(-) diff --git a/package-lock.json b/package-lock.json index c817ce7de..5969e63c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9509,8 +9509,7 @@ "@types/node": { "version": "14.17.17", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.17.tgz", - "integrity": "sha512-niAjcewgEYvSPCZm3OaM9y6YQrL2SEPH9PymtE6fuZAvFiP6ereCcvApGl2jKTq7copTIguX3PBvfP08LN4LvQ==", - "dev": true + "integrity": "sha512-niAjcewgEYvSPCZm3OaM9y6YQrL2SEPH9PymtE6fuZAvFiP6ereCcvApGl2jKTq7copTIguX3PBvfP08LN4LvQ==" }, "@types/node-fetch": { "version": "2.5.12", @@ -24029,6 +24028,11 @@ "streaming-iterables": "^5.0.3" }, "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -24037,6 +24041,45 @@ "ms": "2.1.2" } }, + "engine.io": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", + "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" + } + }, + "engine.io-client": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", + "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", + "requires": { + "base64-arraybuffer": "0.1.4", + "component-emitter": "~1.3.0", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.1", + "has-cors": "1.1.0", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.4.2", + "xmlhttprequest-ssl": "~1.6.2", + "yeast": "0.1.2" + } + }, + "engine.io-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", + "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, "err-code": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", @@ -24081,6 +24124,56 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "socket.io-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", + "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" + }, + "socket.io-client-next": { + "version": "npm:socket.io-client@3.1.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", + "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", + "requires": { + "@types/component-emitter": "^1.2.10", + "backo2": "~1.0.2", + "component-emitter": "~1.3.0", + "debug": "~4.3.1", + "engine.io-client": "~4.1.0", + "parseuri": "0.0.6", + "socket.io-parser": "~4.0.4" + } + }, + "socket.io-next": { + "version": "npm:socket.io@3.1.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", + "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "requires": { + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.8", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~4.1.0", + "socket.io-adapter": "~2.1.0", + "socket.io-parser": "~4.0.3" + } + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" } } }, @@ -29978,158 +30071,6 @@ } } }, - "socket.io-client-next": { - "version": "npm:socket.io-client@3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", - "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", - "requires": { - "@types/component-emitter": "^1.2.10", - "backo2": "~1.0.2", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-client": "~4.1.0", - "parseuri": "0.0.6", - "socket.io-parser": "~4.0.4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "engine.io-client": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", - "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", - "requires": { - "base64-arraybuffer": "0.1.4", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.1", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "engine.io-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", - "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", - "requires": { - "base64-arraybuffer": "0.1.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" - } - } - }, - "socket.io-next": { - "version": "npm:socket.io@3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", - "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - }, - "dependencies": { - "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" - } - }, - "engine.io-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", - "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", - "requires": { - "base64-arraybuffer": "0.1.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" - } - } - }, "socket.io-parser": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", diff --git a/src/core/EntanglementProof.ts b/src/core/EntanglementProof.ts index d2afe75d7..ff7ec3b55 100644 --- a/src/core/EntanglementProof.ts +++ b/src/core/EntanglementProof.ts @@ -17,9 +17,8 @@ export default class EntanglementProofController { return new EntanglementProof(this.#agentService.did!, deviceKey, this.#agentService.signString(deviceKey)) } - generateHolochainProof(holochainPubKey: string): EntanglementProof { - const holochainDidSignature = "TODO - CALL LAIR?"; - return new EntanglementProof(this.#agentService.did!, holochainPubKey, this.#agentService.signString(holochainPubKey), holochainDidSignature) + generateHolochainProof(holochainPubKey: string, signedDid: string): EntanglementProof { + return new EntanglementProof(this.#agentService.did!, holochainPubKey, this.#agentService.signString(holochainPubKey), signedDid) } addEntanglementProofs(proofs: EntanglementProof[]): void { diff --git a/src/core/PerspectivismCore.ts b/src/core/PerspectivismCore.ts index 87f3f0de2..7e6ab854d 100644 --- a/src/core/PerspectivismCore.ts +++ b/src/core/PerspectivismCore.ts @@ -23,6 +23,7 @@ import RuntimeService from './RuntimeService' import { PERSPECT3VIMS_AGENT_INFO } from './perspect3vismAgentInfo' export interface InitServicesParams { + agentDid: string, hcPortAdmin?: number, hcPortApp?: number, ipfsSwarmPort?: number, @@ -86,7 +87,7 @@ export default class PerspectivismCore { get entanglementProofController(): EntanglementProofController { if (!this.#entanglementProofController) { - throw Error("No entanglementProofController") + this.#entanglementProofController = new EntanglementProofController(Config.rootConfigPath, this.#agentService); } return this.#entanglementProofController } @@ -123,7 +124,7 @@ export default class PerspectivismCore { useProxy: params.hcUseProxy, useLocalProxy: params.hcUseLocalProxy, useMdns: params.hcUseMdns, - }) + }, params.agentDid, this.entanglementProofController) let [ipfs, _] = await Promise.all([IPFS.init( params.ipfsSwarmPort, params.ipfsRepoPath @@ -159,7 +160,7 @@ export default class PerspectivismCore { languageController: this.#languageController }) - this.#entanglementProofController = new EntanglementProofController(Config.rootConfigPath, this.#agentService); + this.entanglementProofController } async initLanguages() { diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index b48eb2f26..764f48230 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -8,6 +8,7 @@ import {stopProcesses, unpackDna, packDna, writeDefaultConductor, runHolochain, import type { Dna } from '@perspect3vism/ad4m' import type { ChildProcess } from 'child_process' import { RequestAgentInfoResponse } from '@holochain/conductor-api' +import EntanglementProofController from '../../EntanglementProof' export const fakeCapSecret = (): CapSecret => Buffer.from(Array(64).fill('aa').join(''), 'hex') @@ -41,8 +42,10 @@ export default class HolochainService { #didResolveError: boolean #conductorConfigPath: string signalCallbacks: Map; + #agentDid: string + #entanglementProofController?: EntanglementProofController - constructor(config: HolochainConfiguration) { + constructor(config: HolochainConfiguration, agentDid: string, entanglementProofController?: EntanglementProofController) { let { conductorPath, dataPath, @@ -56,6 +59,8 @@ export default class HolochainService { } = config; this.#didResolveError = false; + this.#agentDid = agentDid; + this.#entanglementProofController = entanglementProofController; console.log("HolochainService: Creating low-db instance for holochain-serivce"); this.#dataPath = dataPath @@ -207,13 +212,13 @@ export default class HolochainService { const hash = await this.#adminWebsocket!.registerDna({ path: p }) - //const didHolochainEntanglement = await this.#entanglementProofController.generateHolochainProof(pubKey.toString()); + //TODO: call below is broken since its not implemented on the conductor yet + const signedDid = await this.#appWebsocket!.client.request({type: "crypto", data: {type: "sign", data: this.#agentDid}}); + //@ts-ignore + const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(pubKey.toString(), signedDid); //The membrane proof passing here is untested and thus most likely broken - // await this.#adminWebsocket!.installApp({ - // installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick, membrane_proof: Buffer.from(JSON.stringify(didHolochainEntanglement))}] - // }) await this.#adminWebsocket!.installApp({ - installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick}] + installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick, membrane_proof: Buffer.from(JSON.stringify({"ad4mDidEntanglement": didHolochainEntanglement}))}] }) } installed = true diff --git a/src/main.ts b/src/main.ts index 7bd19c435..31abba430 100644 --- a/src/main.ts +++ b/src/main.ts @@ -96,7 +96,7 @@ export async function init(config: OuterConfig): Promise { bootstrapFixtures, }); console.log("\x1b[34m", "Init services...", "\x1b[0m"); - await core.initServices({ hcPortAdmin, hcPortApp, ipfsSwarmPort, ipfsRepoPath, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap }); + await core.initServices({ hcPortAdmin, hcPortApp, ipfsSwarmPort, ipfsRepoPath, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, agentDid: core.agentService.did! }); console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); await core.startGraphQLServer(gqlPort, mocks) core.startDAppServer(dAppPort); diff --git a/src/tests/linkLanguage.test.ts b/src/tests/linkLanguage.test.ts index ce641ff6c..6d9fbe444 100644 --- a/src/tests/linkLanguage.test.ts +++ b/src/tests/linkLanguage.test.ts @@ -42,6 +42,7 @@ describe(LANG_TO_TEST, () => { }) await core.initServices({ + agentDid: core.agentService.did!, hcPortAdmin: 22000, hcPortApp: 21337, ipfsSwarmPort: 24002, From cd6e4d5163f6cde671fffb25df4a375820aae5a4 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 1 Oct 2021 12:43:06 +0100 Subject: [PATCH 018/722] added logic for calling signing dna + registering multiple signal callbacks per dna --- public/signing.dna | Bin 0 -> 751136 bytes src/core/PerspectivismCore.ts | 4 +- .../Holochain/HolochainService.ts | 90 +++++++++++++++--- src/main.ts | 2 +- src/tests/linkLanguage.test.ts | 2 +- 5 files changed, 79 insertions(+), 19 deletions(-) create mode 100644 public/signing.dna diff --git a/public/signing.dna b/public/signing.dna new file mode 100644 index 0000000000000000000000000000000000000000..e2be7ac4a1a5625147715ede70087acabea4addd GIT binary patch literal 751136 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≺eu8ji4{qHFMfOH(558mT^gO4jYQYz&StW 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≤wFIR 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 z z&GMPY{BI9xo2)^Yob5~0*Of5dpGH6Ek_U3efqz0%6{_&DV8XNNLt@Hglu9Mz3B;ZN z0q)tG;K^y}w1V0#6o|6|>wC@+o}3ejvKo)s(Oy%1T<|(PutB*;Sh#(V(CT3?T<7zv83?$TXU3hM&aDao2 z`873VW|hJskx&?UfLV<2?bp_pScNexliFsY;FNW=S-$S*Q?3+G9fB&wZgA}={le>y z8HN|V^VnG71f{Mgd-WSe^4`Mao@Yfaaj+Z`I3T4rj^sK(KbS9IS63oUIAu0{(`LAO z!8stQ0?Lgt9O}TEkJ;P(ma>Z{W+&#RXA*W9eKB4o#cV5<(WOFo?UTg7QV2K}*X%9B z@Iav8av_240@~FYoAuVw1lJ_XawbiXMUglSvFxhRyu3I@N-oJY)uN{0&$n%Y%bR+o z!2$&5RRZbq?Ze<`R6@Zgg`m1E-r&gIF`9CVwoY5lQg4(Nlw<6jBe{+wO-#x|Zqhul z2|2pIYZF{O#d47u=>-#oW|-8wN7KDS7tAC)fmJz8EoF9o&uG%8EEg8yPNBWGo^qOcE zRunz2a4nZ7DTGm%QWVLDYpR9PD4W_;0U2h7QG$VwjO2Z?c-l&7s;Wa7 z(?E1SI+}c&JD(OoB-#~BQfl6hjpRBCs-i;f&uH%E>(bh0)|lGNF39jKikxH93TRaYQe#v%m~2qzfD} z1kO+`>W&f<+Y_*`N%~Ul|68 z4~e7F+SVGGDuN)tTALGs`9a>xVMTDMQyS{)*ERt;vYDpp6M147EO_9AUmu1S0N{@- z^Dyp8LDeFfYF78r*CbBtEZjKIbM?# z9QUhPetQU4k27w3Ds-A=A>`zu{GHJRyHb+4QwMHlxKCk8`tE36J(Vg8O$7L(%anjz z@x4uO^_)>$I0LvA7FMb;`2C|lDTt~?kir4wFfzB0Tz+uONIYEJaj#&7e-RSg7tNBf1Wjd6$DMcwQ(fApX-~c$)+H76h#2 zpqn{yx}R+Va#Lj50O!k0p$ksY7e7B{7zrF06}?vs(uuHwYR8WzwyuPLWnbq(YMxRU z&M!yvLKm8fxH*vpt`%vXzdHI?FB6$^h0XBV^1LAL$6pWQm1X3HUqCcA+;NIN{>>&> zs!R&wxV5>Ig%?mdeme|RCTK&BnyE+6!9frI-Do1*EU{c9rtlP#ORwzrqvRzVno3|<=-B&`3jrrcyK-lj>4LQ*z%imAElu}69Ww6paFXtyP# zX7xpvNEGtSLLJn~6CWuco8Rr&kql`9M8<8*FK+Qv0b<;JB-fFO0(LZ+0`yA+qu9@T z96JQe$`np|f_7C712!(_J&&!O2wfCD_X+?}mQlIUW_hn;@6dxnn!0HXmbiwrWG7Xg zIjq@dK%yW8-uu{1@SI_1E^;7?oa(Fssk_gyqX>>N0N@$7I#&!h0v`m9-uLM5x-FCw zHYq%bDw;~$-0$d5DoEV^!~+F1xeR0&zW+#)7Kw)%98-qDDq={CdB8|sX^kftgw6~A zbmc%VmcP;u90Kk1ITNN}K2Jdp1X1J%9a}!8FGZZH3(E|-$O)`lRF_mpFGI$tI>v)H z0qxYRV5(} zRxnNl$PIZqJ$y8UGRrBqCf7~`CP}h=#7M4#LH;SSBxeBK7?9a!`N&Oh^~ilsC;^>; z`<#kpKWZd5mwRAWnWa^vMed=^J$fY90Rx9q!b%OSh35*FVfXzJ!et^iYAu$xM48bj6=f!`wXctj3RR$Kav-r5P7V_tW)Ph5KtYi9LaSk zoI$}7pZGlIhJ|MNgiUbuoX|{ihdJfs2iz>5IE+_TgmDHG97p!-O@KQ=w`Y0A zlEA#pDNyG*BYEPcC`k2Na2QCGqkE&JHP0S;!36d4_eocr@1mbT%otaH#{OOt6lZY=Wzo7K}+(BtgQm%E7N+It)c6 z_>^%YRe|QlQ_`r>v_%9%FUKc2MIa=Q^@YSQKr9hi-)+8LZO=$uy z$!kVax=aeEJU6L@xk;02!)u2j&A@_%TZ;E0w9N>Ve%&T`*P5BkgcSM{<4F#p`T9-p zt`pcG1T0{M3wa=u{Tq%w)NLHi>Q=qzucdtcOeiKN4ji1jAY3{hX4~!}s&KksvIwC_ zlAPd!(!B`6p8;h|)as!|Z1m>Ni38JJaZjA`s0qPYg1cY~u=3C}0DCVfj zqyktC_WkZnAm}*hWg(y|IBYT{)p^elt{xLy8OTja!72+geY1S;Xd3x|Kc$6ZjtBAz zfEf6`(R6jz98jc5jKpySD%DqRhO1{t1`=tS6*6^{ETGjSr5d1{ka`JaGIe6!Ulw9~#MZWZF5F3ZX^nQRJB*40Ac!{SnRg0SLjaVYIr>-6DD8s}wopPT;1SL8 zvqM;FND{z-nukm|fRuT&{M=|-r?{6==awRV1e26rZA4wGDdA5>;J9Tt&}R9CO>p%f z#kwN5Jm-PxVKvJyZUPD0$viJ$pRzFHK?G}-Um6D3;c}U#!e<<|PEGCyUmnSO1Z~K8 zsYDK#0KyV>=PRS>VWVnB6H25G)(Ja5e38*nw4n$S} z=F(X~HufJ3LopE+I!RJ^*kZh=fZ899CXSp~FSS%brrZ}C(#elTQ(8}Tl8Kzb)EyFK zp_Bc16I?y0bO5mm>8NnBhxYoDVNg8>Yg1-qPL(6Af+hT?Bgq%jz*9`0gIlGFb3cGD z{%kbUhd}NJs1A+DTSFCPmS5n{H^XI3S;|wF1Y9ta;|2XR@2d zcf6uP3(fN0#|YQ;} z2p|NXL0oEUzOCKnczJkE|oRQpF zh;Rlr%tU773z1M7yU|n=b+BaChaJwdj9};IZ35zys=$q9EO_rl4&wCuAzZ!S@fbKT zN^-2_lsx+dBMK@eOr&_!q42yQN&ny}^sHju&l$t7o`}F%JZj6@odu zhZi3=nw5SW9(KsnOagh}e1NOYOGa{m3Nmhhy^?z;oKM_<1-^6`#6y7xa&q?txfB|l z^kql?vU;v0SA{YrbzD-x&zBEFh_kT&3dn}S7aE{avwX#9TC;(-F|A3pPk?~~XnEym zu0vZ5SxF?)!N^9D`LEgpS1$=k&RHfbIY+0sdaoXaLM#-ZF+d(Xhf#-00KaB5sV`-9 zvMC6ZOTCqYA|zfrk_*g}kfnJ}0EPhV8N^;*w+Sw*EP|3=rHVT(DUaFfhj3Yw%$b~v zOmf^-PocbT7)_i7@C0nASt2Ea?GtkG8%L8)=DDHLsS0WXRm^ObZ`uS`FSSW90T!%+ zV)`(tH;<;cWr2-nnJQp)PtvRy@ZjGv3@bc9Gn09fNR`N(A`ag=qA~~wWZ*gh59dh+ zP4=phJpP~(1DVj}FgIF!HQ@N)cHC{c>vPgr8w@a?hT9`1@=hCxKg#DrK1E5HnTDZ-N(1@!J4@08JF!k-g|0!(b*(6bv#ISK1XZ8{|7j6HhX@2*N8NwBs42UwYSQ zf-DJ#=|O6keN>tmpr7v^hF@En;EaWnJj0VA^z%KVY5R3K)I$wP9oBJA2}9mHn&wHu zNQ%UziOF?Bs@40BJJ1u@Zq}HtxT?>3nw7PM8Z86 zM)Ja1%5OK4=g2@iVX1+LB8}2yD*V84?P6S4&*tjx&8F?9u7mr#Wmf5Mw?# zn(rhN&e()vWK5FK{(fjQU8tb}`T(mZRqW9eEcW4H@NSiHSUjN+%S0&-D)N!z%CGe1 z_yw%IiX6XduL~Ws{l*R0w_MTbm5J8{)02^G_2mFIE-A<^;}b|@87aIU-2~!TFsXq- zF;Ai3GfF@Gv5~x*4kD#XvWyaNih|bh@zJ#E07jrls6=U>=Ngyf6GM1n1#X?;G zrHXErpBx6LpMqm>n~B1hU=4)TPmScBo7_t2(;#H7VbBHA{pn30TcoL^%7jo=mKFIV+S^i3?Pv>a(NCQMnDy6edl$%QMRM__@)%dJfR4P=Xu?p#S5PKR=9z znP*-mID}DG-NA-TpA<~#!&*!X8G0Q#(Pv-UQ@L_7*$!i zTa#ffP~>V`9yE$FE~L=BQW3~^=xf8E@Qm>kEF%zMVHAM%_0bGMHbNSnYnFSePlUJs zjidke3y>nK3*kem(~NQ+e)G8UWpPrn+T5-VCk`E+#J15->B|A*#a|WEGx6Vfk_XdQr6N<)4lwO)Ap7071&g8^}=%{?9gnkfTh_vJCgn<|dJlyna3ml$Ym%i`;67 zFRY?;a-)hoWLm3O-o#}N2+A)E>eKSLHV;(BIGzHc9{>^CeHYPIXGUy;hk>yf1%ioTsR}a&vNi*49APfp2m=%s(7gKJ@B*n5z3>hN<~OboZQtk(y%z0dCQF<0ZP645=Y`6)ngU{>>vVuO=Z zc)Uci!2$WrpuXI9clr3Mb8ta@R7T!7psp^)4e&@ZSZ_uGBA1Ae8Wut;Zg$OtfexwPXY27&z4lQ5RWK3+_kp9i&xQ05N3=`;ciNnC>g}HFj?J&` zXqt|%8i0>E%{cGcMtZYaI`5=1s^Az7(Eo!s)wwFLES*Z&!=3awRRMU&CYxWOGjf6# z2~UK?`+n%=nqSU>(hdw(G6xm3Sw3te--WSO0z0%0@Quw2tmEOEYo9}gt!9Cx(pzC6 zhCX6b%`ZzF1R1V@jc_3e-+APwnxFP2Se5~|fmoAM%DP95jCS~KUp))@deyz|Fxs`>ds zNXaO%b>=93vspfVQ_U~1kO$`&AkjQ8NP)R>B;UE_Af&L>@J!~$3Ea~s>~6;vh&ub+ zykc%6pk@a28!)O4%xYsOpyY|W%g55ZOm+NAOyvSVju(XDg6PpxZFS!ymT7e185rpPq)oAF0>FGBr7E&aWyavuJb6>hONv-^z-uZ^5d`M- zl+7_OiowJyPI5}btDxyWbyLjC1sx0sU=gepA;-L)Hj>l@=IlHVMSu;9iIg0&o<5T6 z5F%AR_mUT!Ge=2dp0T^UAFU%x*G`RQ=lq^M6Vug4yU0(t!d9}R$YJW`N?BY1SfU4z zpJ(pAkVs>GWG+l&7Bk7jG*778)9{m7+|n%eJWt+cJWD7GF{d&p5cA}KZlATAoGKNM zYwUEsXU}O92bxoU!cKKBr~CK#@;v&IR;8<;sbp*F2~6c)QQ*_CA%1!@`#$9y2qQFCcAaLy_kA2 zSo^B)FRZ@5FwD+QOi!H-OJQqdid(fI%OvcNEKyKDUaZnnzMCobx*v1t<6?=8LGh5vKb7p68H8+!=F}|0^!8iu`qS5Y3Vd$ zf-0G5&d3q7S-yDp?RrikTjfdY!%LcL2M+5(SRk=1Nu3ul)8tFm*?r~6-R@rJM!Vdm zDlsBwfFWPH&h9Td>=$Own9L0K9>xT2jKb_+w!3^p-S1Fb4|-Z~=Yx)f>BZN+D2h?XWvbmRLEl=GU!wV``4y8UUuij1n_S>%Av;_Sf(JubvPbwo1}^-r+D6??!6`(#?YLGQftd zY(go>c9)Ot+ud}X2Y)EcS#nV##xZ9nCTDAkM!5nakSdWnls> zV%45UYoNsEnh9tDlq)#FHos}N>lr9r{XoS2dxt4(0*gG)AUbDWQC!lScdsv?YTxAa zZ0J5tA=5O=JY;_k3yy?L_m$>G&BV(%3-gGs7Y^`|W}AW>!USV3F}K z^h!V~P8tq~=WV;oD|_dcu%SKHo-15$0}ZGl3*0l6V=F;T-ah;Zw$Asgi3112?A&=d z=5$%8$>(IAa+NrnP-1Xsmd)}VyUQo`O)weW4)#);dT%5E7S8~d(JSGU7xkUHiykVW zS4kz#o|>2=(ROy<^r6FDg1gDBg8?!l1Q-ekIP1H1mrv^3jP(kz@#~3}aJ>&`5E>kw zo|>&oF_eJx&rDOa`v#zCnmw{@b#pfID~s_5AUO|>Rk}$rOdLFYsWI{8KuD5eXx6uSzTds z&{SGGl96fD!!BwISJ1Qm;P7{(qoEQ67JQXZjq)JX&EFDbs&GJKaX1V^$ zHKF7xZdc+oAk#e8K+gk}X!-EfGs~J`+AYrOl3WPNo~)cqC{f%;c9&1>o244!8#qwu zn)}*yx@#)J8nC5i!qr1ze^-VJyq6pX$0MDB{7-r6x2$MChriT47;l=^P zOo8Cy0ex(D`OMyV3N~bxbN);yCLwmsT@WCI&DNA!UGB6AHpqlS#iD#pAKzU*t8c2j z_Ec-H$bNc2ghJQ=j!Vzxknf0L&NU+W_V2r8A zxzxCH0e2J(m{1peBSHyXx9s|#?qU=j~; zto`UB07t_NqQQN4aoGN7*;LL!flF^;E~4T-1}4`9zWTZ?pXR?(&^|OA)JD z%JTSHC9K`T9ty3sF88rB=BFItC-I}T*J5=jpuKUQiHxe?G|O+SXDv%l@QU$SJ2?wr zcKq=4&s!I6nO%& z_U+v@@?)?5HLXH8UAhBmY3Jr?+zZ=Z)_-X^*AT#!$&ySZ+5^h@&hGLXed}EHNxJFD z$q?T?CYaC71blcl;FG8A$JZBzp$Z7K&s4HPSm4l*&NytMxV7KiUH-IZt;s69@s>Z+ z!7$*^gp2y*)G4S~g;rWgB`LYk_jZ>*?_KyRozVJt^!VzrycIe9zV-_G;J)$kRiIWz zvRneLgtjJKkpi&z{_gS@eM{#Xa=$lRbDIxoCxX zt?~R-Z*=osc1N;m`NdDr91d-rWcw&`VvpZYVbL|`CyKfb(w?{2Km{ccl0@3o=0JP*(`oOa+LX+k9%@3Ef! zI2yNOQ4HI3PlaR8wV|hmG2W;-L`%nDesYwK`Ch}{k4{v~ z(6(dwIGgn%_gWgt)l2zY6(g6Ddmmpuux~%a=H)C)(~Nalu~LQSl1L?z;2gQa-Dmha za#5)<;nt=9=3YBM#@-qyJlWG8bbR@kzP*t{+?!Tt$cF6AqIj)!ZcYx?44{M; zNs$3QgK6Qx$Cr=o+njV%9@L`HtM%dqK$u-Fn2)RbQ46Sf8A+EKR zMA)TZlgWATkZ2(7H_L|}UtZa_J$e({r8dUrrOTfq1jAerJhVm!-qkE0c6|Ay-VI9m zXpx@VE)nszK6eL7SZ0Occ`5@H)qVK!k)^WIyvmPB1v zadlNoBeGOI{bo8>STb8c0!kz(vEEFNBvRgcQKCF$Det}aI`ZCo@4c7ax6i#uq{GR` zi$vZFlpK6S?ARw_$KKx;vA5BPEj874d;EFbvp1;etU1mGUZb6+o|0l23&~M-%N#g- zq9>f!y?DKzjGkl5y+@eo8URpmodu|7Pry0lVtC?t-7D8?YzI#wj&1wo{o0aGq&=F$ zTU^aP0(9mBWeX@JBLV^C@}%>+H?7y3o1eQY^WulC312v|FB+t zo3ux{!jG+-NGbtRT;u<>BpYO(?(F9Cx(~1a1pajIRJOcK+O=hR`p=+F_eK`?E?8p= z*PeS}apj436?(nrmwNLQ=+8`7jk5^np#7F zJNVSUX?9mMn|UctSuYYLT%f{Vx19IS>vDx}zAv?!7`{+v>l1~03B({uFH4CzMo^|t zJMUlD<@G$(aYz{#pqXoyZ=j6%ea(xt9UGw-;~`1oV(b%kJpH`wl6_AsZai`ydX#hL zBll@IWY=U7J+b%#4<;xrD&xtMik@-az1F1)X~z~RJ5eL`9FooOses zky{KHqJ`uD_$cW@RAB#~b>8wi9k*YqjYp0gYDAj?K5VK&uquns81>ob{m-?d`W?Jm z#u<0V<2q7~vEw?o^4d1&3eHk93t2v?yH&mA8*7L?$uTPZoSR*S=u3pxE2{**@uS@q_I&$x&e=bYcu3Sf{ z2;m|0Ps{%8j;F5Xag2Pnt4|n|tINH{vt2bY3ll$=A|y_w&80UfaRCWO-E+@7Sq@R+ z$4NazyJbDZ^&_o!xbQ*x$`XEc+@AE38qQzJNosG%|9jqf<7c;LSK$o~i&??MaLr|| z!cRUml_)e+O;O@MRsg9mzI*9@{_2M(T|D6*B zv7azesOn(yUotP6z~`Z7Rw^il9gN-a(le_GAx)xFp|~uQ!KF|Uu~ND7R`>8aEKhCRr!`D?MWNv-ph+CCo0G-94bq6k_B(8(Iyy^ z9J6KAz5J{+(^T5F>YO#=T*0x?2h8*<&Kqad-edKI|&KN0(Bz@gHiN~e&^gc#_=a!1X z)Ys3Icsl!7CF2!eH&%q4Z+DyCep_TDmA;zeVl1o&-X*K5X+_}25fhxV0M?NCX~ z6JF%i>#AY4dyQipN}co>3E=22pRr^M)q57oFmmADHc#pTENY5Mx~iJ0rPTFrKW|*9 zRe8*fV4-R5fU|M_>5t5nc#8R&f(=G-z!ErfK6+kv>#5xxzxs-W zFL=E>KF`L7F?T8Ts=UedDS+0zm9=Cl09!%1d~CiHnJkOU8Ni?bcM#%z{JidAd*x>9 zlWz73-Nzx0u2$;;rM^lv8isxGiFwi&NNI#kS$iMB2YEB|<9Ji{H3{? zoadMq&m{#BIMwa_@?41*v`LAP9pV60Al_HzNxTSH%txnrlGx$`{?AwEN<0bZQ-b`} zjHwdg^nC5S?jc(lAZK=JfYz{!%VFtS{QB8SB$Ujf8L~^=)LoS3S)?DbRG0E zzBx~-%RoKhiZSJc$(r2PZ|%TDro?$KaaZa&6Rj2d#Nps8KO=(T*&Xwm3TmQq;YWU zk}RS?ydTV!cm8`VCaVDPnChweT=F(xCH`WEll{--hGV-p*V+An7-5crcS zh?tbJ%9mngWu*m>F`Tcq0Qc>Kiy;oLahTG}1rdX^wFkX_B zNjRJuf0$Bhh6S9m#&{6ZDn~x*{&-&Zy|LEJ-fOKn3G8%wla8KxnLfX~G9Dc3pQhDY z;&Ao63$?-yP_eE*pVxhBtT!>Et+`$5y6JS5osxh~g-%uhB%|!gQ|iod1V1W5L7-9+ zY5%Y1bw3+BqC-1$Uh>>cr@xdHcYqtB(XtpSZhYVKr_*21#nP>yTs<#EP#WL!$3_1D zXV2Sla2gtO0sbeBP{)JJh1lr(Pph#6uNudT5Lmc@YRlYse)r9>#`t_%x9L=-4M&I< z9id~naDa+8O{uaNsQ`;k!U86=1`wHjVthX^gsc!Z3Zbgcaxf-&*!llsT|xkJs(1ElGnhx60%SY}_nWyee ze>xd$G9p#A%w7gnVsbJKx>+}$|9@;pzX{$Kc84a{GjO^r9Xq~U78Z{!;LG+DTofMR z2$NteY^{{H3N1>+HL*{x0OD2E!e zkr$_Jl5}_PxlQdH;6|rdg_MBl0_OL;wsuzHyu*S5tL3Z*Qu6$!c7XvX20~mUC<+&` z3t!OGE)|eLksf1HTIB$JzOb!bjaJs+5IG9wDP{GGn%Whgsx!QL*l!sVR^e^K?T#-k z_N&(z(DsIdw1*ofK$E|?sT~LGB(ctPjwWgjeZHirom3Lm66;f%5VON~e`!-YE9gsz zm`oy`IE=cNHMIj7$8-P)&NIF~-DZ1vTe}*wH5yp3upSZosCz|II}fYMjT4%4WgPK| zuWV|ULy`1m48)GqS-Mg8s-||uN`tLXV-fg%bS3H4ZS7($UfHOf6jD%Ww%44mw`|8J z>+FV=a*RG;@D+?*gi2+o^n~NJZ4FftJaH97bOlBbEBkeA4Ry-Ga)~`*Rd5_HL4#N@-%Upq9$LNzTb#x&A=JhjPUklZ%m*EbYxZ?*WS?fZ2ozgwr|d z-m=3UWb#D>e7l4*DKYf$)}8iHtVXOPWt84Xda(Ak9roaHOi`VNl3-XJnbx=OvwO(NV?kckZxcl#1?MJM1ANAmBOTCy#?Z zmQnZao%Vn;Th*vd6w*7oN%x-f`Bpu+aR-ZzJSdN|9`TE0;YRu1b^1WVP+54M9Hn=$ znKLY^4>k;iz!!c+w8nXxJtc7c(Dp-F#bl8%^qTS?8?3&rVJJXJ6)2L)M&@AY9qNa- zAIifGf%l2I72v8gtB*7cWegqb(M1Gd37p}m`{?#Vg`&KKvnv@?qA8W@#~OyRa9MDC zF(^J3e6LaW@$H9-#sD^mlqoT4n1E6DiH4yNonXNNl5+SrO2GhsvSFy~v{wqJqz}nf zeBe(t3b`aUxpRSW-7?KUqkyC`WpYrITkhN2t0%$z1J}4tsk7D+NJ(|)^Mxwp&e5IVCTShaLPzN>VDcVmS&(55C+u% zGNDp^ke@Y-r3zv`4gdrwAMfF_pSO&KogP@xz)j$jQXY+8G>oOCC<4fk#m3Uv!H)j2 zWvnO}B}CvV0s9uPNxy0tiy5YU_8d_@r3oH&zit{!dt>SDbpVYZ;AQ`&MTg$wUt2?u zrgNpTN55?tD=49Wg9Kq=JF~&Oe%COTsTGJp%}Q&-3Lz)IZx|~E_;eL?0kBeAsK)vq z8pf&&u0)VL07{gZ?B*XE#wrRlkz~wJjWa=L-k)0LB|ZGp0D=$5R1O&H&kbW$8Ip{q zf(wBM!*PiGrD@Gmt^K@S2O5+Rr%m6D>2Ur^qY-r^{=Ws?3>Vw07p~D9?v?7Wn)|?rb z55uT{(1ROVVa4+lf$|8WWltkLq@fkeT8gaFeQ;oDgqc6Ir4@`XgMSTVN!LL0df0HQ zejNf3F{-b53JX%GTF}EAT1k8@SnZ&Vjg?oNM2~1_r6_1N-U4C=^GWF9BO6+2I1$B| zqJ_h`l3?c_)zm6cW-N&)NdP~QGJR4d?-=UG+goscO1b{ zk8NpHSvDMosu-w{i15cXv~rvt<15R9Gd`2%AK%a_#-hoJa*(LGW@zIHgRSUgF|4Ta z*!|TPGNqgn{y(v$6%f(v=t*D#z~mv}lUiCOP+(s15~xNoVXJJ&NBT4k;zV1Yze zk3q3wtY@~gf;zzH)fy1_Dtd?htl?I4ckVi{YKXG}`LO|XFzn&8TUuFz{}3sz5g8I% z`J9GU&eV{BuM`DTkSADxTN_%HRJ?T7L~p=TE9~Xx4z@ZzK4F26XiAO45GgZ@74^J^ zR+7WFhG$-I?A1Q2#PeHP5hV(XQ!5S>0G*@m1r4o~Ex>veI5qsv5oYwlhE}Ff(neua zgbz?D7=KYiD~EH4Xrn^hRUlvVwuV;GB4`i_UI$1KOKbkcEv-rhOAqb_Kl)VgyytJWJt>6I|G3OegZGaA6Hr%SW*a9(wm$3EV-Eok?XM1@|E386% zV54!s3g!?yyrQ9%vas)9%#x2vDT8zQl?|;xRe}a!hAxSMJcSi~RZAyuq2SD$M3*aG+t4cJq@@BPl!VOijz-<<8d{-y z;9L=BM4}ffnAhtYT4gUlwE_r4Bqg+m1$e^+?RmA}#UlDL#z!#cj_k)9FBqqP+l!>K zaup1jOooM6OssIYV9*Sy;7u2Fw`^M*VFG&YQf-7Qk1zF?=eDemP$>@-Ajxd3EsAce zzWIXg;d`Ypb5dceRJCuAV0E@4SvU-j!*YYEZJlWl26g~!*^crf7AH7Y5XlOweCm&pWuila4*4nV5-U+X082(dNT0Z% zd%|8xrZ?;Cq-Zh)x}C(O0A8Y~-oq#7MKqg0H5C>dmRt!2EA3PBBAU;ZMFHG5+Ui}w z_Wbm`h(>Reibf0xZY6RCz~?g;bT4g9G0PYB;szq;Yc5WZI>A#DI{+3)IbiCe?z3|* zbIOUqv(7Q{P#D#H{M-fS@_o+1CKf*lN*w0@ue$CIlpYK^WPx!<`r?PbX zaDUT75G9v$mR2W9O#6j%eagW{ghD)X@W-XU67$6ix@VtyKkEL56o5OsJHXxAi-`Xl z{rbwqLn~wBw+_9dG+z;hSoir#E$qgZF6f@qAgA6XlX0q>VH=GF&WYr+ml3PTC=EyR z%NLw`H`&G}q7OF{I1ZCSW`s9<<$`enn{#5W8=t#nshn227BJ3164n3J3%X}DtUG~ZzqlcHRl@kRI@MpVWuGZ#k=C%q8UzST|SfN`4Kbux(;KD@JTGwc;qt^#NpP)B_@mc7s zk4Nu;RyokBx!XOj-EHO7LYKP(1K?0Wq{0CHVp`<^Qz`IuLIMfv2<`jj1uY5a&zSQ5 zssDMm6{ZALU@uvwD3~C!?N`$(3=wCDp3~i3!|AoauUC&*ISYkdap=gg(x0}wtu*l8 z4Dk(Rs|w>9Kfjq$XQCRmBI-Wu`l~P}rZQRG1KOHn?^?;{@iE{pioLHDzOk{qy3| zt{1sc#igR)l{-ohND;$drc|1gQe`Qv1sYN!CE@$)1>M)itIW-z{hv->x_EG$1#vUZ zP2n)h`(8Muz5t~-?+la=tbvl`-S5Kg^J9JSc{2UeDGJbE$U4GZr_8Q&hwuJVDoRPv ztxU3*bkv31*c&gLsnx$~X>o-j$YYeA`jnPzI<7N%OG2z=@Dv^;o9T^VmILaXSRP01JpMi04gwtjxEt21#piU>^K0^ipvGgIK5 zKXgi^*+}h9oU4qq@l9Dn!>cW{qWOqGUmd;50 zEiFz)S*aRU0WXF1_2_AJ7HW{jmjsNAGYX9!b7A+RF+|4Z*S9#GI-oKa${-$CK)A$V zi5@$p?gCHn@QhU6MP34>Y`Acy4*xb$(zI}F;VjZ^3TG(A_^5mQl=@2a^x2q1$&WY; zx>H>A`y~tW-g|iag%FP$H@VT=?$EMR*=2lm$8819JL8 zTa&+y??0t`k%96^30g!&psxTNo_^ufH6~}y2mNDT>IrN`1*-^<&jM4nt4|>vR)thJ zmpB7**VmQlo^j#SMHgppOUBc63>>lGN+VkJ&g!A*KJ&t1OYieh545|t$Fj$oiaDblQ)XoB&;V{o4X{~!` z-~|`96|(}^r)(A;!fIl?UwC0l(H~_IUuP3QJ%ae9j7%?TYUh0fp6fzPMyo{mgl=nU z2aD~hl)8c#E}BZCy|}4e;*5KoPs*YpqYSq%xv;6?PZmnp0@yfP#;cK|?xh#DR{R0Q zSYUXxkBBclhl}yDRebC02L(5kae{lOV_=FG5NA~8=jF|slD4Km+X~xD^9rBy6&H>R zq@F{F!$ySx2TY|FEX-PRr96$VY*v`^RBy0kFL0Ox#U6F9n(flsRWf#?red@DBF;N*wHwB<7kDB?1>HaE<;Y#aamy9l?%thv(`=X1u3fI#RNM|Af^v$IUwESg!s0hK zYsmwr(JU1N8c}8PE#5L?|6n&S2X5MU;O{+xk|Z)n9RpE> z*>1euWN|hsipX{_qK>-)XhLJMZ*Nyrq12SwIR*f)P^S5JTzDc0!MSt0dDF?~5l9qY zDM6wNl@!Ar3cyC3l*qn8aI++hzH zCra_&WiWK!Q%2ek?X-tT6(czVb_CLjp@;6mZR-$9@aoQiZf1ttMEQa~d|^Y;O`L;O z8OKdXDGIdu$o4~pm=(|+Rsp@zglHjyVuCCEOu{ZPpVp)GbmLQJa| zoS~053>A%%RX{+hAI(XDpV)q=48asgb_dgMlg2*#WW!JNk{o=fZR0<=9%qSOu?#!5J^X@Ja>r zzP7z$oR3b&oLSa%cL?j}>lZc@k*y^bRwTnZ6^e3}d}I5ee2j2TT(Txxs<<)gzIov} z^&V~A$B>d0m8&AJENd9OZ*8xk2=)pnWWr8n!BYO)Z=Xw-#ntLw9!9sYg3_2=GaTcDm3_+wV1~#~|K;A1Vm3NCFto_b)tm zUj46gM@2BnsE*fV&n_QdUB2PY{4M&bIW%}#( zEcsXWSba}otVxw$=@9J$YCs0y;!R1;WnPDFeLni4IV!!jm4J`AsJr#l3D3;fx8Muj z?M|}c)d-UQ=9(i%?}~1g7ngd_Y+brxFD;QY)q;b5{DP?l1I(rF!+yfh> zyRuKZXebx|$vrO@&LnKKSxya~!NNoVckHY0Jb6ZPuID^9%9%C1LO5R_6amH&(|Pkn zLz%Kq$|)AkAk4H$%#^9TNv@G9DH8qklv#cDb@bz=GAI@6GGxwtv{q4Kv!~9;h@PYY zH_FHhkfkCe-O2|Y3>$UJjAT5Ce{9OQY6MGxF4ZHdLKr>jo;D*HPvQ_8WpqMitVPfY zMgeTWq5kx_J20I>01QCDItR?1a#KCyqH_ukoD?`Qzg*+-HlB z#A}_5knp5zlyIb;dr|k?7BP3*mEI)hrmyZiAPpAbOaVcl8;Q@GS5d1=nIoRBKx3Gx zI1`?K(YZsxkBzMpB?K^1+ya2h^bX_&7oD@WR>o6KfaDm0V;j98=zG+?@S=0|0?MSa zUB!e|U)2!@7v1|N}{{Vd4cF{R^OKm*W=z?^VdsFf#Jl#%t z@kQs_-GcEDljKsVgLfFOb*1yz4W4U>IUk>$1hfR z2k+T|71f2_lV5aBvG?O?N*=P{Mffarar98^7n7niS6H;KxTt$t zi%-YTfS0^wz~%rlI~Exa_>ZL|!>^nXG`3F0P2RClFmx4sZHhtDgSl7DqnJTzPRZ`* zwgC?cfat3)I@j)PO$?Q)wgk$H<*JZWTy1*Ip+kVno1WGCt^Q z&&6p{Cd-6Fhf|%fNEeP@chOK)rIXuB?XIEPc#(IVt>UIeQ?1u;9^wT?2VIC4lz|f*-0l03rCk1 zuZKG^?(gv8v18zo$0Ys1ga0!AZ7;~0NiI_dqXBY#-M{Vm|20!v2unB6-8Pv8<+Mu~ z{7=dFQ-|XnZN)az)iJj+y+`cg>xMQAEb*{jW1IRcP_u^CqH&)!{q>f+6;i zD%!kf?nIQTCl7mqp-->%-nkPon3#<&)p!Q~4qANQ+=-YRuU5zuG~z=a_4@B?!vqB0zo8ypg+0?gnJKR9o<&z*=xMM3F41?3i^VqBk?HxZ-HjEdTs zR3jV;?C4LJ%1urINs6}7)GBh{Ke1A zn}`V{FJSh96GkvYl)z`_PQ;*XjnYKxxvvBRes2Cmtg65?ik!hXT4?d}^Cn{EEJn{6 z13)d4#9I8q+=-~PPF}+%TEPT4V_%#*5u>V7_!vJb!D#0n?R8S&lgCO-A^Cn`|l5%0mXmk~tc$aU^orqKet9VPL6|$vw;P;~Pz@NRdm6upOPR(y`->8CdmZ;}v(ja^pP5|M}1F6QIm z&`_7-KTk)Nt}n|gbk(wkLx&dQp@N~tDxLhF%Ze@+mM47@C(f)E@UI!@%~(id-#shm zk)1a-&^1A=LQf%l?;?p=$mPRF&G!ybnd%i?ZLtB~E z$da(G8h|7Tmf$y2YD-a-EGv9cz$8teWIPvj-x)77HMa|GI<0Y=KtX!rLb5DrI9k7( zR%-}jL93_gMFFycjsE+KS}L}mS*;x^hq35(UvB{(9JAH(O!_07>km`v&1eo6L%}z~ zchDJ!(I02O+Rl(g3k6Yd%>?=*PG^+ZX-cix5;9|z;=$w)_>a0jH$AhO^=dmE0~Zy% zFdhQjP8-R6{>zlgbJipB%}9xsN&Tg{~LaB1;QLS`$vx~9V@%; zuq5XU;Po72wus$F-TkLko<(TI3lF8r!0AchjTg66GQW3NUJgquyQsX?9{+9pi(NcJ zM6%LSeyprA4ovuWH%+UqSP@(^@c9;DBE?$|xVZcLSY3Rc{JZHCRZ~X5#ZZIWwNDv@sX> zz?|h=1IYbTPxjFlk5fIYnXH-j$!@WdtKOcS@Nm3m^h18xZ)9832Ac}+SN~(*NN}Y*PWO%CJong z=R|5MuQD+4Cr&@{xq>PtRxJeqP7WwRiUAzoz{H<)arf;1w07b`vP}~|_vpK^o}2-x z>nVpiXj-Y{fS#Uwad+DWJ^3Bz>8uZACJT$6*~*w|HW8uR(89X;;(uGGuFYrV9q)eS z9gnS?^gV*c|7%G$$fDvv*H5|lpVxM+#HOx~t>l9TNjYVC`3SxHr=Ly)CK4f5lt2ec z%rS!4dg{fC>-yX5$UwbE5>!+0!#zr(KRWJK??%w8ROf3bnn}wEhR~;>IYye2lxj3H?K_5G`n2Jn?kLnHi7biE84uie8>vCRa2k&@X zM*^O7?#H0kVCO`e-p(8OIT5Dd%6Pf(=o#>}9v7;`Gf7fSJ%@$BDvoJ}pOM1vRd)~!&!|0lA z#@{yG;#xUE|K?v$d=0gTKOu5jV4krOF2if3EMU*?*SH=ttYnW5A7AOaywfR8ihl`5 z*VJKHHEF3FzTL5OM2u&pns1m2A3%)P7_%1X;KV{wTQEn!Cl)l8BPV{r{ zh2u+$RMlZ|seeLmm1F?H3X9;4D4F8L|FnHSmaf2U>{l#lnrOFU|X^8A&2_aEb@I^H_W#iu%AVCXz=GXp^FnnXkQAEo@P1=tLH)c;v{T{@Vhl z_t|G=0f`a$@VcgUz*HQU20viLMDH6QBn%a2|@-Jqgr5A{$Vb9*&)Gmq~tIr9JvapUWtiPqL9rjmr zaAs@O`G);|TT{E@8G{>Qoc1ha@_gUk)UL{!BH|BjtP6rF zZoi|gU0|%x?RW1z&Iz=8XJb17EXRO{rCXc^{`0$r+fk7yTG!SHs!E^W0~F6G1xiyp zZnzTO>*6K1o+{J7r>ULb@LlLKp*JB{dMo|jrgqY@fYbf&SU8SI_Z zRwzbKS4Z6^8XL+A&#nS8Q?i(dIexOOVTc;20oZLc#koZ9%G(+uI8!X?;t)8qzS7~R z+Zq;G0%#qNBT%uRq1De^?6z#EPBvVK$15o|8j*|<*vKYT8uYWP7i7-jo8lW)!~^rJ z2x+jFfqvk`|6H?*V1hZUKjmvJu~4+|`HQ=sooiQOHmydB_%C2NmJCmi%1nHrS!3Qt z#lS>}0%S(^ubk&VW4nD>ccaFPX5Il)V?omE4R}vqYStKnWQLH`z-z0PQB~S6PdM0f z=dH^|eJQFh3{)V)OUk@rPk!a%f7nW2VsiQ*WF{FYo9OX0_9HYeI1_4xTNeVf_SGHs zpy)7CLW43i6+Y~!``S)>@Kz}Z0Jte9lYu{eeTO|5=}q=LdXZ{PU~9W??6e0s(k2+= zZI#hQdOf?t9&7}FVK~QzjR-Ok*?en>)b^ znuAKv8wvvG0q9P9fO7_R26}+w!xPrS4=*07dEdX`L~xUV&na1p6P8||{pjMs64&GM z=P^;E;43_y6rr#mZ$Fg4S`mG@bY7z(|M({jLq(5(9X2CG_?(530sORKC{u9Un`}#_ z5}7c{KWi9@&<(iMwesYWRaD}B`=KO@9O4xPTjmR)fxl=N3SSyKM*1LA;gJ&2{<2{x zr@@B>xVGFVOU~)9S`-+41?{9+5(a!QX7%gshf==Ah-gg#elNqPI$^+T4u$gsBmmkO0l?r-T2q-hsr!sN~)j`Pct8&iu?Y3!%$HGd$F8qSNon= zxZmGzJ5&iiu^QkaA!PLQApQOgLosfGx4LRTgC>$;y0KxXOrH~l_{0}e#IS~&S9O`&)ZV}BIkAvIRs14mZf8gLy$H)6hDd^8z%FW|6hYfsC%TVx* zU^4J^bLy)aKlty@!8`qH^;B}!GDnjPyb?=QCmyoBo&eJ_)+av-OfpJC`Ot<>k|VfO zp-reNg+BMe!n7)g1JDNEg>8nmPUPSH&gQxvQSoQFsM{Wc|cY_F%lWl@OE!K?GeyGS83qauk zk$O|;f&JqfhH?mBxd5yk=r)1Ete&v_P^knhzz)>_e9}?I^Cvb8rMwHAd7zsaJB$#& zC$$Wfln6OTTO>1tygzvkj*wk{e!cGN6RYJbA)_oBjVa%}y`Bm_9(+ravnwjmErqAF z93i?W@NNkxJRBBEy8hILq3G_GD^3+n`S38*EiFS;$9PadQB0&0D2AtPKNP*kbcjkr zRs{eTY}3>K{#-~Wvd*sP%7Arx1{Q_cLbbsM)mi&=M2J-oT5?-bjFnSi#b*w;8VAiX zP*jPHsH=^H89l3EED3b5UyPOWU}+CNyJ0Mec6$S(+L`LbIpW85&32vdj_(LqmbziyFqtQc6bgN79@! z6py;w8paAN)l>|(T0l$-318eY76?(0jZp^bgtFJaq+zT`#j+z;CT1#6gH|tX7)$09 zbjcAY2hc&fr}?s$u_9Ph7&$78Qfq*p{PKpeTn$md?f1Y$MJ6cg6%At{R`7{q6FbKd z+QOi|vSBQIDF9LxCxkB?D|pnss%0!owS9`{kxnl#uU9we5L8rk257I-iLk}jw2Vbm zq_kB*$kemuuWcBsuc3nV4(q|-m|`8iu3@Y!fmeViQ$7SZTi9Q(Z`sQgxHAXArs?Gl z`Mz%$4!g(sV0!V zE0bl)-UnE0e6tG8zons-3o#bD>ZO@uk}&AEHnj3pBGP5RR)E$ON&)b;hE_1`tXS^p z9smLfe6P2+w6YHFjjt7>aVx2&QcJ4@7T#!Xvo!SnVbr~|p;ZyEq8^(#z&nOz9Chz% zX=OR!4t!~yB-k0c3DeRl;n0gt!?FRxHE8vohE~-B@=sXpT&OH7*2a5>Ta8ax4XlAX zp(8kpAYh~3*U$=1cnv-jWw-?53C+L1rIj>*i8atEsd=Au`U5SkERJ&=eJQKtDwVYS zU_&b{f($rYW1^2a2p)6 zaMKy~Gi>iiT3RLIXsu>KW}Fe&DIaZUl@n-=;2Gt*M3{zM`LTvpM4LyTABeexc9ae0 z<1MY=b!8(3j=qdVOl2V&T2&ybraEae)1?ZW=ARsFHGWFKz*1ML@yD#ETREfdQw^;E z{sf_FZ~!DhRYHfKZfGS`%47<0#KQaHSR0>dX%%7Q6-II{12e@~pKWL*X>TDAFYuOC zAb|RF4XwbYFrNxh*}N3;Qa<0%%1fSwGr-;>Am;+R@r8y~k;D4}0R|C)Ytr}nVnZuJ zO^jqd)?&4$mjPcIY;~;Mi@sMV1;jYw6j5cMvA*2U3dba38X1MsFd*a+eWjt5b_H;R z3^kM;``A`qLb-zwriuD(NxOO`IP#w1RwEgXu)n0lq2Wg#A%N zE0H3xISesh!hd1sf85Xto^sR{@Dd9Eai}inPa0ZjoU5QWJY5yVuB61t4Xuneuxio- z7+<03hRx3!T3N5a)JF$5FY`?If`8uBDkuTgQrY07p7e8=oN^ogx}g;!`AWxvkVT|Kx5t0e&twgE_qPT|HjSgW1 zIP`{Ah$bb%6mouZvh;55k1efKMEnXDs;ZDhB@(@*RYs8Pu}1=UR!xc9|J=|D%a8VC zlG#}+=;hB}8d|vsNYB=4Y=YZCXwP38TKR}?o$hns@`lprGheOBdO^=0xtvTc5`?5ak_XAp6I?%QNzZjf8FX`>r0~=c=gl;}XW2vqv zqdHp;YHXP)Wt@yU!-|wjDCC3p`PG(w^-(tZ;BsBDir$dd%!~kkjAJo#sP-W{XsoIN zP-TErc^xPcd}w=PofsT``0W7o;ekR`4{L9n& zy)Q1TKG?o$^ONbtm9k8AGs5BuDdWhYLnTcfP+x_=I`LrJ)BEWK`p5ktiD(ymh@vP( z5;*jjee^7R^0aUH@X>`;Wl`aUwQr{J_jkYJ75MKzp0eo5HV>>57HI{d0$K(_P+^_N z?(3dP-`Tm1NO-EQ1b-ZdFl5jK}Z0 zOHa&hwGsU4MpU#9Ej>eC4)^YZ2l%3N^A&+C@x!2?_jUK}rz3Z9U#(YtzvkBNDX`{% zn*q`)e10%H;IwD7yA2?0FiTM*#xyD-sDILoB#9O#PlMwH;NmO=GEd$&uA{T{H`YB* z3dii|(S`n(lPmWNobxRop?0?CZWUz6i#qzI$-mGWK1Zym)Y@{6Anf zmsSqla80=O+AZ^TZDaUcDiIhg0|1!;)!|5g+T^&~<|EjJGjq9O<0=8M=hxT(ToB}6wRH6O$|jef02jd?bSP zMe{w~(>sxYfk=@FZi*gM54`Z(_MId3V%8pAEPz^;QFXP?N4B?>k3drJcCtQC*56dggrWDXLe@ z(ok%AGr9?+NRe53v+oPbnQm{qa<1h~EQ9G(F=H<|OApgtH3xg>3_Z=ATmkaAu;6Pk zCU8$t;j8y`KbUph*zKp>?m|t{a!_9Ro|dKuciPkKdzHzhc+ELIU(bA0DMW-MmxP8GaU&OyLcCIeb=?t6D14A;?Np)*JVAzZx$N*CxTP?S?gd zj*eajw_!OPTAkjmR~byP#{O-W0bkVT6Moaa?x*9K%lV)Abdz>TWbJ%)0uY(WINsho zcpR^_1)Q;6HwO1WvwFkHHN0_iRuQ<(E|{ETNDhe0TlS61LJ6i%>m%*5)Enrh)sFvd zapk(5+awmFD$-Cgp_KX;5pUhsJ?qq;$xiC&!D-^VLD3RGBEDa25hfn$q{a zZSZ8VlcWTv6m!QPWi`ve=sqiDdFiUVZc?Sl5ldbdxh5pf*FC#Q#@&MKwiI#` z&=I-p({U6TC~NGfd&j=+wiY>0wJ%RY(EqkY&WKGPAMrFN&mt*V7`YYi+;`5Vx)^)P zbORVDqvqDf80kshyY{uD(LB4RyeUU;pl4@6aP5?g^epDxP5$z%XFavQ%tOjm3F%_u zAU#LjdnUJgxE?zO;~RYA`Ys0#uCMQM<;J^XCz9wNquYKrEc7@24j#O6`N&~3T+GMA zp`k7})mN#Q_F_C#PLz^aO~o%Ox?EVE^htyYv-G;7NS`E622jC!&(3*(j`fsf+6j09 z^r-NC`?@ckee*~>`J`B+tt2u(QSArhombW=#)OapKN`-u_n(zts`?77J_qtLbFE?2 zePCbr!G0cQY$?`kz`iKO&Mm_o|M_lryoN!RYxo`Sez!YrvGcDve)Lc|vAs!0lYc#M zr}GrvGB!^Q^fCgDj?$F0?1N|Ze2mj2(<=&HO)!)a_Csg&e4M7I5Yn5zC?GwP>CW!? z6i^h7(Tyo31INkp;j?-^I7dr#2B=O%C_~S)KC-X-(0D#}m*%rY>A2PMG#e&{zg|17 zDJH~xUu#B7CYXuzGV`Nn_k<+kHWgEJfnHXTh5OjqJs|~f!&>Ye&XY~_5aZ)#_k^?( zR;#RogEMCdruxL$Jt2!_7IOr=0s2Z&#?()q-4k*~F=JI`R538q70^$e-4pUYSk1Wd z!p2%D8``JO?g>R!we(ul5-OLJ0O2!d_k@bk#d8nJLUC3iz@pEd?Gy39Gw7CNwED7yOmzU~$4E3R|X zT9bC+x^V2eg9pby{uBOys?Tommpx{2@Zizq#lwp$i`V0q<6^bzA}DhCVl~-H5Rt{Q z?1set!oIt&SBY6w$)u8{I(q!rb)<}#ST)t7smS1UhI;+tzV5Z_l>ruNqcToa3GfVP zLfb3s7`&Rwh3p=d12R$B$V)cB&WC#a>e>AXgjX&FO&lNy0(yA;wX=IdGT2gd2|PFn+yXJ=*LS$4 zm?{h;p-_Tz8IvFS`rl|?Q^i@E5T(0Zk}RuL|Xf>b&W&G1{3`-dlI zXjHS&o$WL=B4BM?w60>A#V|C@Z}0nu9WA}8shUjX3RJK6^uYZ)`&QPf2@vq<*N&fD zNnA50S+ou|Q?X?#N(e*z-F>ccVS5=sgh`sTU|vuLrF}Q7liBX*INg!p1!%H&RFx?B zU@FYl_s?$gr5F{61k2=H0IEkhqR#FKVP7L|mpWRnXrYX{AMS8d@IZ+{3Rp*OYo)h$ zKib!Qa=rDi=Jf32>Jp<}U-H;7BR{TWtoNO7u`RkG)vdQANmByRRHO>USIY4Hy_g8E|}DrXhw*_C=Dc)a}Av0yPuxjy8wrU2$2dg8lU@@ zQ$IVqCxp|EX+t?jg64s)0{r|epAf!_NHy_*GcZyK_FwGKZ>-VcABEyLWx$DpvB)o* z{YIuLn0N+c&Dm((mf9z{Ac{Q7RZVK?EkL zKb_qZ3SP$=5_lpRwV-I=&pSMnbd;c;t&qItEX5!a`j_TIDOaCl0QeqUu^|m&lz-jV z-MsEl@^Tkq*i*QXlM{nkQ#*Os}aHlDP5A8G6~)PET53zRHP;YrQt@dRBTCc5tS;Qd$9 zQ8d0wf6Xbn8}(g`4-;7rQ_4*y5<_eVG8GUR0MSwRkZF6exx!Cy0%)!^6&}Y!r|ro{ zy0sIjer*kOapz%E_QU~)7O!P8NyO6U_nopQ0a^&anTQP1NrzqZh$(xL63S6E8(~CN z^iKMb)Aj^X2$QOrkOxooLmxF|PYND`p*NI_u13(!qDN2Jli`x_B0#N1DkQ{4-D9Tg z$riy0w9U**r<@&ikDan7=d{yI)2l@+C#p5}xM_PzAz(?0tXY6n#q1tGWlx@Yh1Css zLc?*R**#&(o&vB9&#xo>FGjF_;1w=ureh<)=*9Q--2F+@1um0Wl+1!BeN~so-5WOC)!8iI z>AMGG{cSk!?{)&_Tl;bf%ZMcinyrdjGwj?U@t?WBd*cT2^%)R<(Wo8BFB0e@9;1s{ zl@y2Mf7af}e_V=o`4vucDS2|rP(|p$<^AmadhG}{7uq@X zGw|^n@c$AHpZYG__@7;Qe5pq``hU8{D+HbFG-gjFI=1l&U${5wIjv2!+t<>y&Wu^d zJji@Xsyd*a7wzw!zg|63&69d)+3oT+ThB~WP-nrkvg&K{de9)>w!eGDdS$6IsH|NC z_;%}Jz#1>cS`fbuacoq;e+Jd|;{DxgHmJ?bv4uJ__i)#2&r$%E)RK8($=E^u@g@7a zcdS>PVQ0mPJN2Es=?{Pn8<$HfyzyRum;?4Oq{f%-@7}#ZjdI?s-0Uuedy7z*o()g| z>KX=V_LuGN-n&7QdXD$<9$f%kHH- za2!TT8w(!VCupol9zR1BFrmx*Uu1(U9s;EAv z22OP?;J6LR__nI{xi~5CdGO$Bsn50Rc1`}KzE7+K`su2rbm;goEHCQ+PA3+GqB5NX zivl5%7Z@{b+6msJ#bY-O*q;OlR}*vgzHCIT*~D>l7D+_6vuPkLmafa>{Yw(TWAip!WKi$zn?`_l7JUnD$9J{E-ZfsTp5vp!2+83+3rB3;;d z>sg}@7;`18OD0jCCa_=K+fG{_D#uWr6v2zk`&`~{-`{<-MIU||ebA>EGp}bs{jx8Jw_-SQ<$fslDcjCJ6nxjlWdMKIVJI?+|StCmX2gsuo zwMguScb@%|3e~b~aZEFugEGR%zU%CtRE8nfl#4;6p!)nM@7_Ot13I^pQYR*b=BJ)m z4H^`#@zE5VS#(?HJ?F^8YT%}pP*N0BDR8Xxo$)dHCd)Dj33?RDhgMc*WTsgK+F}p!SfX9NcvW6V1^+}Jq51oCV*?F#| zO%}v;QJU6jw>zIXRHhi{P3clf3I_GVXX|H%ZUSZ?;dDhtb%{Q*zxznbOs4Xy?{WhG zfoc8fyDqPtkKnoV&4H>fgr&R?j-|4cX-?o7qG2p)7JZ=$vmf36KR3l@lb`y^F_;K5>@M2!=XoV@mSyER4X6KDobp)7dbi ziDBhd@R+KIJVyk~l;-p7nt+Ww;oOg$NuC6Su%F(4MT7Xq4lSmF4+;>qf3J~@%CI7o zamX=NM%`zo=_YWlv?(j|J*d)lmG^k0dWRAlmI)A zy3g;w%l6&K!$+SUt3?GXfw6sYs(y?H z-pCC6c^stH!pr#5bp7BIQFPTCn4(nlWaP_J^@IHbtc()Wks;8q0$W{|A|Q=E+-URWM9yLD@jQvA=ud zf7(92VQx=nzGLuw=js`2r%y7-d@e=?(BzR9V0hpB53iFF9I!FLOsR-%>Dk}6_IFQg z&f-njs?A=CglG+Pw15xr?Z4?}q8q1UlEkCtlvB?ze`kMp z%YRhen2BzHN*`Z7HmMr{4x|>R5pHQveeguTyT5zPe^3pXRYyNFUzoKe7DIkIqPXwv z@1D@27B!!0SsUn`o@xZQ5+tBbPR1%VZ1MO1wx`zZDF>&9-dY+;i*AY2`N7}z6y>K- zF>2+47DaK&yYR!m?WwV9lw=wz@j#Arh;+Z=NBg_Swx~v&TdLXM_i2-W*F?}$bq5|-0-Tx}?Ky%R0n`N;C}k$d+L!mc3J{ml4Sumx(;Lz!^f zLiCXURz+Lm=ljPs(YKr0#$w~AJ+oD;WUZKE;O07;6D!=XP`JyHXo6pyD__7ldM6cW zdR#D#FYwEG`~te@ta-HACJ{3+>%ZFH-8y?QRb2#WdCzjgLVqWi$O|BYj7RV?AxS|A zXn#GYk|q@s1MS0ws8wf>KEK)D{b5j2w-l~lytb#K-Son?8`8svr}u%kSo^FVKXhne ze5W5vU-+1Kf!pGQN&#Q$xBs!`U$C`+)1@qJNR+DYcavA&+s|JJyTkcUcT}Ig37qy2 zrvF=dhp}+a>nR?}K?DuE#K|NJ-QwJOhWPle)`P10FO@4)^td2HOEyvbF;Gp)SlnV!}SztcHH zxLLgq2niM@7c4;xiI8oGlKT>25&!x()$WdJWu{VhR&WjUMOUoa``)hm%->YIL)F@K zs-3*v$D!pOZu6qWg>-dIRjy zklrO8IWm56z}KX5p%DR41yJtFXCW2cDSOcEmN$=R_>M=Uj0-1{Eo>asC7+b>f_Z0> z)nHy8e7k?&VpPBLQSW}`IKjkmx0+UBuBj}z_tXU@m-|Qi`Q)@@JlT;_1jjO7V z@@Uz6FPYSq%5MZkx9}g@+RhnatWLJFNR`GO*3^z0<&6S9CZ#o%R>Q-a+6iBU>Wdxc z%yYyU{)o1Axtgr2v67nzT42;YvZy;G< z`YE@=($+57;;q7mNFciC zUddCN+EpNiIWQYtFp@{Cms{G}8GQC&Oiq$j6`+@=4YxbKv^dTLWEIp>yfUSv0F3SF zZS713w3MqAx+X{Eo}SUv4y(jRX24NKoH+?{KC`Wzgh{Fr?yIcP8F;VHYHFuU3Pj@R z6l&5Hyx6mw+8KpY5kMICjO8rw9iG$HPQ%LQ8UgpRoG1prwW*yAE~MZk=f&AT-uZKz z+Ib1GOFAGbwa^2rQTM#2c7X}+RPm-@ovAEF-SeB;MP8*y@Dx1JOms*71#RtA!ujh$ z71^p}V0T~G)(&7%tUd(zeoRvt=NC1#1IKTIf&ne`D3BiM-`3X7L6NCuu1!d=YNPJO zZSA6VQm9%5HzLw_FKKI6>7q=r3^Ob&;9PlWQ@gB%54L8wGT8MI`|o8S;j7yk!ZTEYMJ{XL+A3_p*EBYStAz;)Dqt!((TT5Z zY?!PqB4raZg2n<-U)S0&DPOD$(N%mAG<=Hn5|G`liN)#pA43T$ya)k7C3(H#V&B|+u9mxoc1zvY!PXqr}t-XZ)`~UxFKuM4*rnG z@$`;XRMwbbu2rX0=`rs6Zs)das7^Lqh{tOm za53YRmEL5dO~K-M|Ly)^tF~fdAeYL$DXr+jv6bcHsduU1Yb5TgB^N$w^zeb5_8=VP zilYEdYR)n75AL)FIAsnlPl_DDCWT`k+F=jUFlOMV6_0aboHk{rJ@`~v@>#*~BYL6) zDLd^URuikjiNoO@MJ)1@E+{84!v z9q@IahcE81hsvt;9Cq2p0Aq()d}*gWsHlTbK*N#+MUNi7d^^5X4{qGSq9eyg1g#Ns zCKoBBz(W4Y?Zj4%CPj@Gjq0Naiy@R(<2&szs9$XuO0pO*PL=Q^q(q~yH4G&bKCdV0 zpg5isyq2$TKa_-nTmq1d>LTRB=K4m%P}X}5{|2ZO=X4Ev)O~aNp%fTHPQy^4P)6#Q4Dbm27rxYYw;u|y zBmSx9efkWMF{|%23>AYZ49Fwp0O5$CN8R@uhN4_7z&cZ`IvNA{e$cWk41&TE0Aoa| z;)rGO!-k=vk~(99BLdcN3P#7b>7Px<49p=!vES1+u^fzRO<{-j|j zr?3g(p+t>U#T>m7*?uS>VnFe*3!#1x$xz_W8ipd&7Ot+W32cWjuvkCeeyEVMFMz)h zU-KyG70WMLW>qv03TL^?RJ)a~-)}!ultc)?YvdTw6g2u(%d7yuDOa3!yi~7X&VIf9 zP~gY}-FZy_40KvJ80 zbyV~-z%c#3VJHpzj3W)}0>+RK{XaAe1@}~F5w!%Y5rEi?x<76|6igD>5f0=s888n} z;GbFyQ`N=yb$3gMfgqkgHw=X(D9PqV8cL$kUs_fmGX^JJ$e>1&W7xufZ5S$fDzFB` zOKX!1Y~X$WmxiH0Y2Zu2wkzd9GL5?X{V&@ORjngOj1EQ|2XMsh-!haIoO`De{6Ggg zIO=X39O^g?1+Wlt2uxbYz3Sb0n!cq#zW3mK*dGz{gXwE#vLaD&nx zjSp-X%JP8amkO7Z@l)XJe$e(qaj*l3Z4I$5LNhGe2R96*6$}MnqMX4DNFpO1vi(p% zwSX`cI3<$!cF6b8hM~Lx(FM1nR01aG3qP!3DDou>L(r%T@iQPD8-@xY065Vw6hawM zFsnywKNKR<6cJnEoXY{{B>2XbSxIgS2SXB}eyTy-J*r_SPmhCeehN`Bg{(&LzqAexOepbU!ssc>Y z#o$xLKs8&Q-ExQo!mE9SLo7g66L;7!6u>UZULmA++z~K)Yttd3qQ^-BIJkh2CE9TN zp(^5Er)m^gz&9f(;&}~2l|a>eLHq&6(To<;^BacJPyr+>ITsfxfPO)X0;TqddFYCU zgvo^seBod#P?A0RseqSN&Lm=lB;h8!Xt-5B7UfWP0LZv>K$^+k-qtb}{2uK!UF883 zL)ZLX+%T2^7GCM5MJa;Pu7Mstbln%aLo8>7M33KdV9lI85T52=+7z~ z5tVA&w2WoJJopr|mvmtRt=`!%78nOuU-(V52t6UZ?`jwe90|)6(Pxz&XE~94E$a{z z6DLd^rvnQD$Lo7q#=FcyST+CsKMS%e9T{7}nS0Zf4K z3gE1Ei7@o8Wo-aKX9do9R!SC1di>#rv4F7j{;`9tsXfB=k%qD0YcQ7pa0A|fUF|L$Nuxy`gXa!a#5tIqi15$F#>vJuw@Rg+qRSD}2BW--Xp%p+U z#2cW#;LDq6A>kKVTEUHFbS;QB3Q$HcUJb1@c(#gwCIUgRp#8vdHM9bnmNLNw96UxM zEBfVzRt_!$oFN}^f>l8$(N|hpfz4zv^8r98{s(P*wV@T_YR?iVY2fJqcG2o<4XpyD zNA=(gr7gLiVW~e$~7l|U?s zpppvP8n6c#>(33X@L>zQJxe;oz9g!vsTJHWMCUTlyKIV6{@T(i15yXZ3$n0+0>w#m z-%GY{MWud}DAn3(RsSgJel4xMu8doH>rhoC{Qv$9t)T8`=#gpG6{s!N{EZE*V4JY} zVbU1q#yIHkrj}OVkm$(>1Ljyf`B4vOX_dWp)?$BUp?W0sfeo$DCfJOKG5|ubY|!2PA$gb!|M1#DO-MLMxCJka4oT3W#$ho7y2V+q?D56%itpd!YF1k%O&{ zm3#GQD#&0}Bv}BJ754I@8d`BHIbselp|XZPd-tPTT7_&)s6>kBlq^t)k_WZ8_V31JKY@x`tLt3RsyEfwQYvDP8ANTUx=gp&iFi5*v*Gv?EdJ|kCkG*_rLo2wvfJG1`QbAlxtM|Drtqc&+2yHkGS*hI7^IBRJ-#^wd zIswR{_ejrgXw^T6#$Xj#AkIEmn-?^+N>p(LP7OeIAXyb(`GpOwvY-_20El6*btPv0 zMGdXsbQyqwpl&IMV2CSk8*Fuaj7QOh2-pCC0HGMVi}&J&R-AdnULIrsAbLrUs9)01 zN+ZMJs;KxHgk;hqOz<;&0f{6i=1zZF{iX&#^p_QtLlbJ;uAm@zkHNC2#mBGR&h9hF5tF9Eay}F^5 z<2V`+rYH~7TZo~1O-n0GMuH6hYz|2YJ$P+HE01uwM9_K&FY(EU|7vIznCFCm0~)P> ziLrWL-_R;r1CJ7Lxk_*q34wV-L#qTh8as;_pQIJUA-=Jt6;Kqas%f*9ILEM}-qg?v zek(}ZAgnS)2SSP8+|nu-?%-KkdfKV!jn-QlT2dRX{EswX9N$xy?CWGy>D-5B}=BK6XdcX?4!ab?`UYHq>AtZOm?6-u^PdD zHMHt4G{%@^h~NYWsd!gID?;?OP+<2=l7g<4y}PAVz|wG-5@$jHw*>#y(8|J%f-;;^ zh0sSTT;I|v5<^FCYN2;V$kO{7TEWtIV9^#3vxOOeoqvBzD{L=8PkumwS5H?(KG4!C zO5+h+8qk5#)5Wb1Hnaj%W&@~iAsNB}y1DhChE@@_uq2R<+Cr0bFQsc~g>{QCxpI7H zFnrMbhZ|aDE)aX^)ZaRUI>3Lmw9=eq4&v9vfKLZ)e6*oe;dI>^fh8~>UnvdC$68uR zdMB4tg*ytk7dGnSmmEPW%lce6ecN#goIXX)!Gl+?EH5ryJLzg|{p&UV^u*uxS%=1> zt$8kKeI|!g$QTegXAJp?OS;EUzHY=mYe!vJIJ&%eeOQ_FnvN{3l%&tB5q_;+V)BBy+;2Cz1=%nalBpQKkmpSxrry+R+4vGt2zzg}GRH;4cxyc}BN{;JU+feesf} z%sv3!q;ollf@6a&{e0~AzCGM(e67PrD(MPn8~#-g(8hOK0%FPN{y5lAtVBjv625!M|3E91jw}~>bY&UT z&GM0>u;mL!4zZ)w zU6*%!{)^R}H!k4F!BEr`5l5wx9i=1t#U2O#cbPo-|ZuIm9=(p2Z7##Qp%qYlWo51hU zRf6d(4CPq^RtoBa(h_A@&EL=1!Yod1bOH>(flSZs5pu)L_`{irt!xE&Zi>V~4givt z=pSdSfXNre(I4T*CnBYLIQ37L{P)vRfLL6*9)Fe>XibvIDs=6TLTa3P!NTMD^K^?* z^j8pMP(X5{AgB5-bD=_RK}QuOBRn(ES@2x`I^6^TcY>-0gGn^2a?sR$Z$B3k^oYv> z0Ar^(oI*gI_q+X66AV__m|cN;37n-;QvJD@AkGd215k4TBbgN@c;j>vbV;!6z4nw* zIncwBo91GIn$h!TPKcjjJx%a{=_Z&E%>jze;FS#`7a|3}Wp1QGQE^zux=zv;P>M@{(!d7-T48B5;fNSEv%Jr@%!Nmj{o;yihuF*ieCpPH0Mm{kYqAPuOF*+y=SEL3pLGK?e>P zfKpKcqImp_RW=4vc~KD&1dq&?)L)r;!tKvU00Amiv5as2a_ere1y(x=RaV4j2igfmv*QOi&epFVXy1PhE_!(}Xf$!wp}`<6KojNW2~ z0&3qES?LRjL&yu~QASRw;CR(Tvr$a{TC_(vxt?(EbEZYF(9(?6x_P zOyfHO)uZgKB4~P|_To8_3_f>u9K?$(UM9k2Uot0>;duAJ>IL}j5F|add+D4=2H?_B zu4+qocAxU;WitjT#*ri~G^44w6TmCFn8D$%z5MpwBS|#tPjPE?9DSZ3b@5NG84%;t z{IgI6q#&RB)wl0%BGJ5UykjsC?yf7>mE|iJ%c0zS*I@m1G!ZEuY%m_;^cf*u zbNki{VlZ>gueD-c%9h-P0+nC+Pst0-p-P&=dOiOs6cCaQcE_ z!!obl(EIrJ&W*C*3KtFlBG3&HN}Tk*>6B%3GBIc!vUlEU#Fp=$@}7bV+F}Dz>a(2b zKG_H6MOlhcq>1PQ!Ecrd0DW*eWn~kSj-JXKQ|SYGMmL?ZD!92ym+wjtRZ6U^Zf=xS zSWzN*mA#3P5^H>TN}C1PP744RK2h~t%4j*AvI@SO4$@Pp1>-2`)JNwW@vQEaj-|y%G-Vi&*_p_wgxjv_(_A6WGZaAt~j*`oz2_%L4Rp3`f1Bi+fb$ z?vqpcSqMB_CH}!vRdjglpPEitykdchB1%>zGfGA6u>W`;9YtK{Abx(EE3DLr_c zfjOp{ctMOrseC>=^oClrKZvzHRp`;!bnPk``x)w z7Ud|3CKi>A(`1*wH>K;qBi;F+Tr-swy0!fMDIuB|AXCT;XCXbt8+AXJ7iA>~pK~>W z3&|@jh#yX=EC(!A#sD8gQ!=1Y_oFGDQjg==8be$@TzQ}lKb{+9DMxvmJfs7jMGN95 zQ*Of?nE?vLxsfqaQmmg&Y2Zud#Zz(7ppzxg=x6hytPBHhxUtM>iTDBr{^wJo4lE0- zDXyi80H|?@{bEYgp#TNpa6}?kslQwH%Xv{25WnI=h`|?})Rc?jS5qRTl~S#G0HwxI zeS=Z=>nQ{2YCV&(I;*qpkDTAkkFua`7 z43wS|-SVV#trdph_j98xpQt!BPM<2YCJ+7(Q~Fu>7oL(D(M9P@rDXp&B?eE`O~G4o z!(dOzP5#roD67Ig;PA0ZWAiY|E%WDT18M7Ut^$UaRB{O`>n~Fpc*K}SP>m=XsgBjC z`|I2&3k$0-lbF}4M#@Qc-%F=MN)@&Z#d4Ncz<&V$?sw@_%F0s2EHbEXse+{3*7u*T zBPX&21IcA_fbuCl`Hh#(%_S;>6W?p18<;7InDm>bo292J)NmX`bvO>`ef$Ha>xjY< z@J)!sQgKn?V13|}de4ZR6*gc27UGE|f6$Z?MS(r+f+#r0G-Zi>@N^v+6%sg1@P?*( zMWF3NF70mKS`e(WzBoRT!|M0ArQq@J`Py^zn5OxJ>)-;h@ST%UU%fs zk#t>HTw3_|BZo_$H}%-TgV&Xi%Q7TCc#!@PJ%AjLr2nfrdC522;b>`P`G&icdeu@c z_n`?;XR95Ns_t>x8Hj_R+~l%aDtpd~9eQB-vU&SrPTCR`mOLDFBPk!u%P;Nj-+!@5 zrH(!RV*d?)c2zz@pNcMpXu&v8Ucjhw`04Q6eX1lO7u_dfz9hOL^Get!`c&Y12R>Cg zavY*9AA>bnT)K7_KiS5P@3vg(p~Y*jTe&kmV?9HkkZZwBWVx@->fB%{hgZ$pC-f;R zy0aaN^wCl|uUB8%{k0d-4cW&-i%a+1#Sb^`?w|4FHR0Mb^qo9ago*S_PG%8B8TwAI znYZtRxPpnAsxV1K-#^^Gw0qFlD*6rIX|Cdi77v2Lrcua&eO1UkICwA|J-X2Ua#y}!%K&#edbD>< z&g2&jRP9LANEom;x(tCynU!lb=fUd!?rdjx>Nk-OS|9pBHFQt_gq{#c6_NU z92G|wRu&JJV=LkC(W$=CDSEo*#4pd#_fY^knGxU@DQ~_VOv?I}x%)m5tg^SM#+a3Z z@ZDQ4?H)Z2$>zdqy!(+uXKG_P7K9Y02E~Gf&o%Vn-ZpO^u4XT);xQ@7os8gj-hOF! z)7S!>8ZPWjkaC9fr|Ce>c%YORzEH|8(I;djqY%v1VEU@A{>fU#0_s~6(M)%TO z9}XQatDnMC3Js6l&5De4H|zZ~mB;8rVFb%8gTgN04nHtcc}fPu@4+<)0nrL&7`e22 zz`DHee#c4Yw-9pq@X>`;xzZ8(d9=Jdw%L<~j9?-u%Ec*@c8m()eP}K$o`u(365ak% zlnoitdN;!j7U6AR!yC{7@J zk?!9Q&FItfKBK-!PSVVkzC zw+03qpq2Iophz10MxUGa8TG5Kz-iS~V=HSBJs(8xKR@p?>Q^00P8y*VQ$!*OGc=}pOGG8H{+s5%jMYdLpVY1-v3O0e$5@PxZ{-@58D$Jk}z)q=vS7*A{t$}eB>}1 zF6QIm&`_7-KgVfxeObm|T(wlgp+k!ikk%EGbNz(>EGxQPSf2DrWHdK97RuP;V@?{# z+!rsslKlEH6L`%j6gIlg(UMli=bEgC`%DwsD4h!{#WZCw6M}~C7M54AAV>G2e{jdUUwOwnuL^Qv@zS5(srRhLd3{0vOd+cfs`@;9Mc}KK z{$H!oASyBa+Bv3GgE(s?K+}`sGZtKS5kpyoduq_yer*r*QF9621*cS{`v-%z^6L}V z?qo$WwmCG#{y35j9*jrsQ}V%scRq5Tb`1K8@$au5|Nd%t#DFC45>~>RAXOJBf-?bo zg5g^te*ea$*RPeysa9xbC!_bkTNR;LtFQ~1pv0-)yp$@lo3T-v%zN_FKOQ;~!=cS~ zX!6&0qMyQQLU(+F@gJ0ag^FZgH!_0D!1bWd^sUJSyOUppyXG2kq?U#2!m;ZP9smkK z^}Zbc_)qwQf5NY}_{&~t2M-=SVf1lWEQNLU4~G=ABV>iG(?xK~WAp7xyQi)fPp~}_ z?@rg2an-%GYe&ck=*N|45kxTr$KRQqfIUCFLBLpQ5mkCZgsP^*FW zV!OWJhkKMXz>|;RQ(&uD{3ZWWe^-lUGCn-kNSKu1(egqGdy}q^@Ozj3KkL9Mc`A#r zD`HSg!6=ujPC`X%wE|4_{nJs>>3zkqj2o0Bf&mlfEqEQDN=EqkgG;+NY>-f$3e-E} zj@nqr%o6ts?n$Hy5@OKs|M1f8nH$8{XFzu%VXeWOxeEQwba3vp=1L4<}{SzE$JXxDNf%bM*=)hA**o2h=jG94GZ$ed3oJ zzDAWA<}FCdJR}umvi#Yl-B;Jo!-y??oi!GVe6T6G;tjo=FpIFo|4f0_MAA)6@j3)= z;yG1U4PExZcacR6#(F=$wENnINy-5WW08~&GV2*78pbX$y})@ zhOObR=5V5Sfj8AO(Oh+QNm8B#tXeVnMSneq6aCktx$TQ8oWn3e!8x!ynGN3a`pu=? zw>M1G&8r#O!r}rfGNH2KWYwkULFewb(@%BJZP6A}t;&Hgag2v#CFq`^ss8TL?mHW% z>RZ3+iP&WKzUzq|N8?|#tYBk+mpSW;5Yfm%oAmqX=X%CI>s^nQr7P%f8|E5BksRB# zNL4u(gFx9IF73X%ey*0y{Gd5>BULIWNig4 zn4Pa4aXRJI9GL8%=5Vs(leKZO*#HqU!AWMK_I~g^)1NQxzPDkre2)F4EsSw=I=Y&2 zNFw`C250-1Ih^f))3nvm6RglOAkqvXa5;GY_^)#~+mql`)3=SP+8nJH)+BESzwLbw z%-?JW{KTzhD{<<096c_E?r@9dyw zasLC|4>wF#&9@h|#rFm0MFmHwK8vv24`LEGPCwx@`||yiA9srhORm6~RmAL48X}Pg zCVbNzPI%aN+-e7F#uLX{R)L2y{DmKIp!?B=3F|p`Ah-I&EJx2|U~rtl!VR8B51hvt z4||bY%vgcBz?7T-tuDmy8^{OE;f%L&CAXNda{}N6xcU&QC}}WKc<_Pl#~Wtciq;%1 zD*?x4*u^=Y>~fN|VUp1g zpcPg*n6A6s^V$|jM`v5AS4N2xO&Ij5A3pu0&+L94yI$=(x>|CnDNBp8Tn%5MeZ+z8 zXB#FxKbYN)Kw04>cR@PrXun-Z@yG++&)3h|vDwdh>w6j7g%-k!Qh;w&E@X9sC)T45 zbiddzZGKjqSX+H=W0K4@NG5e;Z1B$RqYrey+%WH%N04nMe2a+(X;rMnv8u7Z?cl^8 zbD;axhKbLd2yL|ETM^yTgGUPrpaG23Fzxc#>1RG`W4_hQqZO`r5t)!She1sDaq~L! zev@Cn%v_%}R(*@P>ll>snHOnY08}xf;qIBDENr`x6h0Q>Lt$dut%JXL<!S|iRu@+a| zhTwfL31nn-A`X(SPdW=GKgNa|Cm)JU%5z{WQbPrU=i8H~pZqwXR4#S5?-Gpr?5!P5 zY@FVpdCP0hjZOq47N&-i8QpxK`{Vk_`&K7*ZQg}+C@db{&5ysi?<>O5E9h4(0h_fx z)Wk(jS;RD$$K)w33OIJ!H&VB_yLinh?&smJ*F4+VSq7g~Cnsm=fJ!)-jI@Jc%u^3^ z-`Jpl=F6_Tb^rg0_6z8zoca2znLdeHxDQ!KrfmtM?v?}HpSGRnd>iuDQMu% zY953fe2@IJvp@r57iT9LV8VmSQz;gSlP(UTGfzJYG_cJ%x0ME5_KZsg$U=bBA7oLU zaiIJ21`UXL)4*yH+q;*09WTdPZe1Byv@zUPM_F~m;5K;XfpHeYH7d|&;gPo$xn$@@ zVKACmZ&Dgu2+umu-EV^y%oJLfBwRWpTG%R?QxmEa;qdAl3?&K4elXB|_JMJ#?KNt! zXXSp_@=m{1Mr)O`DuC?=E#q@q^e}gBP}^%XZJE)^ry{88Z5_Pzf9rwn#tnLK^SLbu z_qzi6#P;|{`jZALDY=ZE3aCn6brgd*$a4>L4_K!N@V9g4E}iO4&-SX&NoN87SVgN{ z&Vz{e^A2H_KwfEAj2tMdpDk zuB{5OC^on*UT|QXkbI3U=FXSeQWt%;-j??@F?-9L2#Hk}@?aSG!UNrdHz-4%#fEb$ z&cq{_E+qm+X2OO+KnO$8pwE5Vf$m`&^f7W<9D zRtjNMUse|!EYc-22s^#_K=<$s3Yj~Ursb z?v@Se*=%3u=*3%e$|*zxea@-F;pi6k%6w(XhZqsTq@)J#Jin|(L&v5|o-}8-{@1Lb zsBkdbWO$H_*D%O*y!=4-ob?)#Y@XLppF48v1+-?Q6B#DAyW?V zV;@zLb-s8`S3J*o2>%6cHy?=SuM`)slH)$qYZ(c-4XK*7d5>b_ZK?t{}M` zoBpzN{P3x`OjWai`4Zp6of$kmaHD%aYVZ~0J z)n$6GYdt-vxU|9(Vd7xa_+aev+5_FYH>gq06Er&895~)`ggh*Req^?W!OI4(JJ5Z4 zy(ZoKxcKwJW1m!Q<=j}FQk5|m?*@lM4%B;NhX6KO8{{JTNp|Ft9=WKn|~ z;0*`553K)ee$X50izjSZGi01?YH@{p+>pajQozB3z32Zg;poPT28&B8M;6Ba_$vJJ zs+Dmk$J!ESjlW0RKi(+kP#&v;2bapdC%rdRY_L2tC$q{d8>31Yb#FY-eQSd{^*q{> z`MlWSVk*XD2@=D`!Uw_XHyv17t7qL}Z2om=ab<%G!lFzn@(@$jz7EofZ$5Bj-H5zl z#J&LGh9RX?MkO9h@!ar1sPQcaj;;ofYWKDS|NFYWn{VH4h$bm^QG%PS5FLBUpD0J&+t(}0o(8wK z6^u+1(y7F%4WdnFwT2t^jsw@N8}l^o*R8z}K!Bs=4kxIyJW!=njP=d~|KD}W+vy{- zlc^+VDpdwmH4{2z$%Gqq?>f!yPv&mupGijVQViM%FC$B%?%k)^{YluQzYM_yc9C<6 z8MwoI)V=4xwQIZIaju=MA06~ONdZn}u)>TLf`XLy9;oYv+Udi$EgyD_i#4Piq_wUv z%OrI6z5@&EM&eU_@e|Kmdz>T%TWeulN5#PgcJDvUA=ba3rCE5BK&I&GxR!-s-G1P} ze_uDmP7}zidwEU<)R`V;kS>8E(Sj?b4nAFms)#w#yOv0h>AhT$g>A3pGZ zt{ZsAZ~NBdedwuoWugU`OTeYeu*x4f(A{@^IW5(~udipucSw4t0NYukswUe)cOklu z9*FB!h?;VmYfqpY0yoasD4pZV>rwZy0~->wZ;=dr%lzy+aC;{UG{AodN{b3=!JEO? z4hoYD9b+kTJj!Th@}uaTio5D!0tiWx+$bs5txbzM=zzk|NMc& z>&BY)>cCbP2mAXz$yKImDOHFVVU)fAdVbyZw|8(~W#$vW9V)VrW z-Q(8VBfHC~tJgwUG4m)2BD|D~wS!p5m!@8bJ2X}&ED60%POOMjd9G9|^vee}WYRyy zz1_)Sd8|MECMV^oA+OCr{F>qsq$4;wT5y)BWOB}f(cxDPbWdL|p*tfIuA{5SxO2;u zGSYeOye@-y*;n^S#&snm`n&p)CFw)138Bw0nDDg&-7~hUGP)ZwZt{(wL|?fP%$3aS za2ABGANU7|sCy$P;Tv$V7Hs13-is^OEl?<%5Xkm!vl2B2mH<2kM-j|7dN85A2agk> z)+DnApTURAQhoD)Ti>@??fZ&xi5+$H__6CK?6Jlw2X_r1k4+U8|62#{-q_Yld{rB8 z00$$A9(1O^ePCS7N%!_Z=M<&qX;a9U)l&W}v1Y4GwjjhN8zB!H1-n;@Nqux*rb?H7?ACEt!ifI7NL?iK_Vg zWUy833)HDV)p=dWTqu|!jP=vuR{dC&(W4rv5#kChB-J<=Rz_dmFA0{404r3y3W{R9 zpAWa{CG<7I=y(pkH%Cq`<}U_YfjA&_3g>Bh$n1r{W- z6V+Sbb))Y0do=!d$zhFp=WviD%Zm;0yZ>5~r&KL~1ceoT|I2zqGp_c!1#5h= zpgsQn?(i?K7+7uVtKaLs`hCy2pQuA#yyY5fr>@4qReFg5%4~}lQKjOH9X+5Jv!pj4L?nN`cIS_F&yp&cExtcFq<+ywQ5E49x3;FZ+Ma>;b!R@kOt+FFb=0 zRgO!X@ejGId+^_#Ss_lj0v!y1Gu}m+9ndeBzlUD7mmW{T@~=@Q89AI)hhzU?m+hs; zBj9lq?W4{CK@rt~eE43C-!I6_;dC>jtp>|j15D8)F6$oDyFGSyC1~&f@ck1)6qBom z>#bmp9(h^!kX{(qBFt#%_~DHgl|}={1pWIp=Y+UEpykrai9>=F08xo09T+dUA`p1g zEX5HB^Mxycvnb%M;JAMDEXC1TWf27j?wX@f5a%(o6vs$mgfs{_EtMRG3-{PrisSk# zAzWFeB%B;9<;Trb9ECVSNeTbjC(3cxJ${zr01oubBH(vYb9x8ZJ>jxhh5HH!n)L`f zqLZS(M)1VTW)=9kqJWS^8>B_}8?lI=blI58;EXMt`hI9Veyq@K?qfaTebvU1*ESlL ze;@yjYIh$zc-7=rJzh($G6h7ymy)o_r<9pvClW#kt$?0-V>BluPXem$o_yJrgusu( zm1|D59`19rq?NJNm-X;U51Oi298VI#7YI{$VK-maeXgIY8_)F=6ka)WXg6OZ^xa*7 zAFmpIBengPEd3)v*j6q`Nu$A0Q%*Kc#trJY-(WhMlI zK(3?;8I+kC82OgVy00|Vjh&wrGr2~SV_*MG!qrSz@B?#v+GUGtXQ)ie4U;j+apDR> za=;OaW|DJ%^1bXO3xlf-Lo(29yQa;Qd>>_IcH?@Iw?e~rLsZ~Gsqpkb#hSe-93;~ z&-uA$WX|*k1+)kk(c-iuUgUX~{ofeJ$hG54e)`8lM`Ad%x&O&u--&)YanN&?OBnwF zMP4?DWJK%lgb1Jk3b4mF%tQ_Z9Wh(j zCCwd>8(^?+oQWKkA?S9&cmuU0S|4wki5yWz_&CNhNWu+0{&@3D1`tZ6YS^;( zPTiNbIH0|c5G_mT;HSKA`o4m6(Q9w$9vV6xb?=|LFC#>8I66vkjItMxx(`gxeP4kti#caf_7++jbsw9$FOWH< zcuN<2SyUYE{l};7D{*abbVRyO6@x=xpP0Tc$fZJYN-$PnF-F}dr|&CS4k`pB2#{@I zAlIj+?kj_iiwGgP&NB2DBtJcUUona-c(jNbwWja*nd$pNbOvNB6|W-$O*iU3J9S^s zx~&cexAQsi1RvmYQ}nMUP)U%^nfr17V=_xA?Dc_}1Sz-5w1kkrjx~xCvgt_I>kodyJ__t4aaRha&?P z@LQ+bV-`7LforPFEHh;M_G$KL73HN!Ac*0z)`~Clozv~nsOoFc2B=r575nQVRo)9f*DLK=blu!>NLWciD2yitE20#b<`e&!vW6~v9SyONpaI-*tJBRu_Ioo0`vCy>B1z_<36 zuC@JoYaeQhd|;d6$sA%3mWQA`f-amezqzdCiJIaChn!?QAbi*Kvf{UwwLDQ{1^`P9 z%<06&HtBbl=`GuBxMm7ZM^+V+%7(*2B8dL|WjlMB1~V9dNJ(H&z@Ice?H?}N_GKCq zEV!Z~cv=sz8v6O;W!t|@<3;9_3|tHeFoI_Jr^~i|nFbu6JA;rM6QyN1>i&G$_Ak?5 zk8%E(96_KINx|P=F5CWPnittdKrTR-s^>(V{PnW!U#2%SIJo1{|?)~Oe^&0GQh_HsR8f?pXdnZ~uO@K7}1ReInA9X{X=+rLax#hC!SQOT5&AYkc%cQ_MF zFQ_$TVs+SQks+cPbq_it)_#MW}IX}$2t$tA5)_@ z%a1rC<5ZyQMGFNCf#c|hHF@M6C@G2+Q;$=Ysr2hz=qLJTy8nY7hqO4e84$IA^D)7S zKk5#LXehZbe0OT&)xHziPma-Lgsay+q4LMp@FSoRb@VJ31QkL=8~~5L10~P1YRd68 z5;t3LGM?3tRrWbD3)mJ$>@jD4%#ajL#|Q>DCPoL{W6$`Q6)~j)9T$N4g-S8ylsOJRjeV;L@umB}q2tH|pbWlb4I;tHp_`D8zr#37)gC;IWbl6g zizE2Jo(;(lNcDt0l*$VbEey_b(iJH5fK*T1L#Y6XQNa)c%y>-=gRP``(jCSref;We zC5fKg&N%N!`4cQiWu3&W7l8 zP+>@_r|h9r;J;N#K`~uYtwR@FpSp)qRgldHB1}Ro;rNiQZrMAjs01RTIy4pW)X8GY zTV8hFL#e<+0l`RCfr=fz-T3sqlS(SME1~F|5Ut5LcyW5~q(bahEC?-8;oJ}~HE_3j z@1!Dg05Fs8<#;Z`;LYp3lM2HMVwRz@AWI%PY@WS$QduTq=2a%EJ;ZQB7q$0LDk*~( zpjjLYDZKOnsczjvsdN@#&jFX30QPn03qE%brE+w|K-U67AE0I)km`ARCzb1SJ?dyd z>7^)!_TcmPP%85B1nBM@O7W%+T@BwusS+SCFrOJzr2zOebg_K4ZYU0FAcUD!7_tb6 zc+|aU57ks)sIp~%21-VY7eDK2E;j-^W;5P4KpCs ztM^W-tR(D|Lu_LixVWL`TCbU{sRH5vp9UC+vPGs0$oRE;s3zk9sTxn0uYiybEveV- zp;XbNTvRG13vmBKAMf>hCsiRmB<1Ve67Lt$98_bV=nD@~uyvC;OW$_bfM@%!&l=*igb@!4s#v9dFxf z5qPBQ30Or4j}zlmwQA2rC@|cGYQ)f+NP3w4j=dH^GS74h+E$aCf=AN5bI(Q4yi)S$ zqGV-}$oF^cxd>DyDfq-hPBKx}(0A{-2$4r&V+_R=CjiBF@7Z$^h_S?SM0DXRcW%_Z zcdtcIBITgDWh&8CPJD>>?YRiCItAFp1Y2T%2kHHLErQNmRR;^L;aBovN8JbZUW6PK zvz*F8i$YHrKDg&10Db0084;w@eNE~Q?X?KTvJ?#$IR*zR7@mE%=OWO37n71#K{!ii z#E17>gy>@tmg@q)Aya*TkLg~R&edo6-DIHx>4wTEHIbam(xdoF@6TttO!Nk_GVlaioVYK}L<}pWr2Oa>0S+tJq+gne7*5#;JSS!r zwV`JeU!I8=!4jL385c$LiAldQ6EPClLK!Up8-%_Y2l-cLA_m}5pF?I&XCUub8(*7= z7*$h|G!R}IisASuU!R2-oMVY{6H2lUh8%X|8#56@Rp|&V^F?Mu7uvr$6EU>)ELvaz z7W{GlymlsHSfH%grKDJ;r;DTR+cOaZE-&IhC#wL*L2mDNW+FzcFy&zHvhzaG3H#ld zh>=0z2Oc<2S#gC8`@NZnfrzkz#RSP3DI?RU`~ED%5Wp`p-Ln8fpd3{o|G`Ye;0V&C zv?}AQR|RLv4`(6ZQj=EpYM2rOLK}Ss~VP&DDbHAE}7*f^<1FEwqB~`jc z`0JU7VH9HmL%JaKfhyilY zBR-HSDyLY&3H$q*h@nfa0DNq4R%og?_J^5>0q{`-C#)78{vdYBA7>oPQ-!lfrJ15|HtzyZ50CBRZD7F4!zO2n%gIVkTl_ zptHsJkZaDNLX1bwMhv>20x}qZql{F2^ii`Bqm-Bm)k*X!QAGdfS%~47(3Of109e4L z#fE*%Y{aNkn41?)Tb4@4J$5Ey`0O$_eZo0wJ=VtKW+Fzk#^YBeQF%s6=J@!Th>-zB zT9+x&DLiy6(I?DCjKYLbHQEY-+(R2roQW94Rc~DY1uJ=>v~5qCi5OK@#05|W6TFf! zfATEE@Yt{c2ffNpdqr0bZ=Q)5JUQhkv1XKjS>TI4WhP<>1=y(=1WU?9%EI;3nTR2& zSRJbw%(zfwMQ@pj7{*v#@jWQBzN9pGPn(Gtwy0$BX#~*o8gR5deI{Z!?-3V>Dzgto zV~IXvCSt^3w5-Wel>$MF#?k%QASqjKnD}o_N>{6VO@-1qy^)dS%gc^o{1Qo z#gMrJUJWdcYC=C}HezU66w*uKTo72Ix6VckFX4o;D6Igqg0=D7nTR2*Vj6xi!UWe} zBYECT#E_aPAK~}}15grccqLIINDw~6ETe9 zUJ2z~^iCM~qA!|>7}+>Q1xn~vV5A3Nx6MS1Vso&Pl5?uWDYf~FXCX%9M)DX0*OlJ2 zB2Ib9OvDhJ7Ym9@$>^=X+IZ<~#K7SiidS6N0Mc#Ly=*38z$0eGR!9@7phsaZpNSY+ zFdbMn+Q9iK@XTK^6ETePJ{D=b$q6|AsC(s1#IX1l(d&Sfp*STbe$`CGaE7_6vv(zn zV8W<-^=!n*z?uMTq?(*aIALEi6EVC`5+{lh2EY$PobuY4h>=6d%43Df6I zs73GqZE&jBLr-d7KMOGuV>sP>@?0emG-#bS%tQDAa)kh#!_pJWx6MKfLdz?_9*yt-2m=+hosAe3w$oH?Z19EZyS`&4Vn~yP^%m#7 zbHzg&@0^VoflHGVAYzcQROjklGZDjQF!TVOGD6wFVK?4A6EPx=HUw;ddsyLA-}pVV z5Ti)X!KV~e1uay>Des+$7+Pv=bTCpR>-yXoGZ7RiH2WBBg<%Z##6btjgBKaF1oQ)WTF{YEv2&QF#FZ!XGh(T3pjR&!$ZR8q9TQ?Ii zTy@~3v0reuNjm61JQFdza78JtidIz;$@P($h>^4aDhoF>F{?5*>_=xJMs>{V2o%mE zR-mGEANyas8wbT0Ds^`XG0YJp{!f{rHRou_Z{r z=1zKrU%-TYVn%{M0t=lGx`1;I2izxTBuE5)kENO@#{f@MczZ^Iq@+}(ay0gMvfDDup{G9y7^3fwYRKuR)3-pE&HBZ%Py z((zKTXsxmkX5jUYiu6;muA3@t)W01`i%l^{ui2QmmeDJMNN^5fYE z5|!dQJFA#;f|Eh}$&3Wilr231;}wjaEsnaM&Pb5zLY3B-Y((K?S${SgK@t-}azmN2 za_nicpU+4T&S6=3_CBa+GeFH>%t{b^7F|IQ70?k3XU#8XB}gnf2bTe))jnD9uVy5O zG#s{_OJQU10w(^~vl1kSV6`ksaiGpX6@N1$K^)Fq5rly+pDZN@`0b1YA)uAlT#Uxi zN3RBdHyc5SV3tru4ni5G%&7bQj06$Z1xD=kYsS|Qr-dt zHkt}{{B<^h)F7xhvnaAM>j?0@@8#WtNRSO>xJ)nB#xh*TsNl`jCxq(%W@lBn{OXJd zHL5Dq9Ie*eXRQ!q-EVfnIFRqEC&6OoiN1-Q36~O zZz@1W?4p}4pK0kf6MbQZ=~@Nlz{RQjfY}P2NuiqJ(`47y?1 z9zfILO!QKYYx*s&ka|K6NAZheRO9bxe+lM<_jTn)?`v(dmF2Lwa%}v&uyO={a@FKl z)JoMOhsXniS`0nx1pUt-4m_|&U*6r9)}ErycfZ^Cl%y1; znK_0v#bsgfWaVn$gPgEJA(Ur8VT|b>b9wjfzgwpTxmgQibssspvUp_a;K950KkrOC z%`-kRi^)v9atvryEFu;UL||YhkDb}ll2J3d-U~Pjp*g(9$IVO>3o$4`8Za%&CNt_D zKPyoLQ-z7BvMG`kP5E19C5qG{MtY>+sVWs+QhVaeM2Vnc75*ziErss6JZV;S_GvQ{r6AS=QXmY@$v!*5(`O}$ zV@|@NRPasSLi{uXX?bRz>MA^QW};+ee3d*#7qc~R`kpl_QM`)ID-Cou zDi`U&$+KrB3J5swz%_wUuz}Xfb7mz9VhEOvW7$?X2?+?!tuqrPb1#clAe^Mgv}~U{ zD^a4e5Wtpff=Qf;Zar^Sq9h&+xY3Yw38vS|^JgYXP)3!Im3A>zDh=|2nTZl{A_L*E zA~8ydJnCLJD^W5?mJnTVzH(a$+fy=_*a6nbn4MarmtvgSb!wap_BDrUbx{HARh}2ce+C_ju{7M5*3p zmFUqrzJ{&{248l$Cqa0x^@VuDN;zif$9TNjJLBg&AFqmFY}#!_DHFAh+At$CKIY3W z@4nd2L(4VuST4toAHtWqd;jwo4nL*zM~)sN;cr;zCvfoKl^6>R7xVFOXsFBapJP>A zUzYI~S1r|W=+I(3R8~pC6X1m$qwteHi5uV^o}%W3?t2D&k5jLiSDcj-R(>d>6*o~x z!4fdJI<(bZb5>3;^H4O`tk61)mJdwuwLNX9#;m|Kr?|r~y3f&)R!UFM$$EID#}WZ( z#^NvlVr|N=_PWcvUynHnKfusY=Q*tyr=OZ?De8qCXF@5K7tc(en zHQWOo<5w=0L-`(y#}-#6y>6cMiN7T}rt}&>#}wFuOB4oNfx-D+IsCiVPp`x*;fNsS zOF2@}pEq3I{cNm6H4jSs*Q0qziPP!NFk6kv8lbphit0hUaZ3FOTX6dOP^cmxCy??@ zmv_JE^~c#f=WNn|7pw4!@$au5|NiQ7>=+oPlT_>O?QE(jF{myWghCBU<{MQ>qfjv=hY!1EQPv*__{X`7(O4Cl}-7hE;zT z;l!<>6N0VYv)Y;b96mzA9)L?+FfMG=yQh^O6cE^I=8{mNFOT=0`Pxt0oRp`tpL|g| z0kP076-%YH-aEAtVdkAIhI=0)-B*9#@SJ0tZij)O~PD`6IVL`mGOI!=a^~J~UtM z=Qck4bl>0ml%$WT)F85CI90kS^_Pq<@WEvC+#nEwdH(R_-Hqe@B!I5fGqBG|vs@BX#_&FYxkgk#5! z<8#oTE)Zozw$KO}K@|&`V95#=$!9NLTuUyg%{M3k>>Wu54_;sJ!#zr(KRWJK;XNuG z4gwF59+RAV#?t_v_qhoGa`MKe+dSUcajcK$ZYg;$nC_@tbt3wKxqtpFn0q6lHlBL` z83e+Vhb%QTFoffNVGzRz zR)8FhMPmKOp`HJwvp@kmiIOJ@a2Xa)GUL5SBAWpPeEIV3Pa6~<=1l=R0))pJFs@*B z+*W6VQetQieC6`)ej6Sw*t1dtTP=iYmC*>esW3(eLp$NC6Zm>n4Rnue-fZDCal}{? zni4`8;Z(HRE&e?e;#H>60GrQ4X0IH4S2BW@ct)hAU=f zW@c$VyZ5>Kdk*hihscb`R8}e24&8I?n0=oevt)_eDwEXa*KXR}Z_9FAcsBF?Ik4e+ zFj*WGNfAc61O{OD_4xWtoBMBBj|=V^If$z}bSyNlN%L5JGBHoQP`+`~JC7}g+x`;p zj<-6xvbxc<2^#;aCD|a0nzZ-6dDAmvk%w$I=P)iUFE3p~6Tha7N9;Nqb_myyXD5+9=J8{L@@CRX>;^t;$xYC1*V$Q& z_ssn2{MEG07sJQ^eWomVoZ%GalJle(vG3lrdE)p0-FX>ct6E2f$hgH&pd`Qn zBj3Ae^Q7@1`tvfx&TkqSqoS7^++a*4Gpi31!p#t2p^&Xxv|*@c z*CZIIFR$%jbmpyO6@- z>VSSjz5We){X6Q_%r9a+2my1t1jN$K+TJ+*`lq|dCEAwH}`uzB&aia&lvM`^D@Z;~!kFM!RFrm)v zH#MtEb2Ji|bY7>LS)?SN0=(3OUVd^@MZL6ILgZqHTZ*%*=@)ZxX{n7nbxNfWJyTAJ zV8HkNw3nRVMM(|q9gEQku6OgZescJnA`54tgu_lR5q{oF4uh)@^WY?{jRyVwqMw}M zEb_{vwp8?#^0M`liL-^9cQ||&e7ww5jPKXILCv`F%gRsKBc$ zp$Mx8RBY@Iz2xA+*+ee}a7d|I*`WDjFFCI(OvkZ_B-|tVofta+7oGCp zL+*03K5}3?t*O;3tR+lqsHwY7mIHK7`iC*^Oj1f^A#k=Shf_Z}p>ghT8cfv|$7#^q zy`P*0T&`uU0eCT^#H;t{CC6>MXJg{Gw zu)!7~E9Q6aesTe~o`Y8dk}z>9czBD#YK2;WZ%=ppfS`(_7u!851f~<8gQ*SEY73)307epmtX-!R4I`bee})Tj)H1a za4xP@(ij>SsDoKi;Z{33iI2Hi^XnUGP}~T+GnY)(2~IDd_j{H(NU&gz?r18)$g16wni#hC*@wPv}2r1KZwkZnWdU zQNf2N-mJqTZ}_1?Ti21tVA62#$3Bo9qPK}}D+u=K>CzLnX&a=t1rYJq=as=$5zwB9S{YvwQ? zB<$P@YYCtG={IZcb7P6P*>+cX*r-(b$ueasl}dX?@0A2DSPfb3aHo`^=f2OpZVnE7 zHp>buGAFsNl-BQAy$78HcuyGCFeNDH6%&5;&DNsSFdwjCd69cc0Vo)s^v~v3%4u_i=Ftgy|w`B*-(%oRH_x^wY+?fEx17E zfJiPGqNT9nSM0Tg=xRt+OF#tPb67;L++zzKtP@wbTR7Mhn}9C7YL6{M;Q+lvBXv%6 zD-N1h@41C2xrA|}B%E`P{qUN-wh&8%XRc$?MJkF-e(fGxC>VOG#qwwis7AE#x;?f~ zxyP3%B}b~js(}l=ey=T9cyXp+E}RGH;qJfTW_+g>T-U(7Yu|>6q_j5J%~5NLlYQgO z#7;tfC}b2JK^LMnRNjdLr6bV#P1Cy)lvy90c@5R=3cmE4dvq1)hyVu05rLP<;Ag(2 zM^_R2hyV-`akyGA{;fT_3R2)7SGYqa2v?w*-qxe5Vqw!I$}|&|j#%}#_n8$I4U;k< zgLCp!^xz%SyE0IFE_$1TNH}X)^>_C9Rx#i+!RuivnKoJCyLxm58jMj{Q)MN526XlA z9$gV%Vyg*M(irSK^vQdAbQLlHzg)ct3Zy61weQgt^fz#i=#2%2VW|qh`=)ngm4Yi% z=()cDet>WF{ywu(h6O?LSC*=4 z8E8fU8UY9Yqtm-e0?S~j1{K|sls=;Yoe8f(Dsz+CVaaGbL>nuHQImu7==nCX~ zVl2SYQ&>#Q>N9=1iV8zhIfF6<9*=MJ+38(X?7du)bfRj&;=mR@*JlT|c{{L`d~{jT z3((I`>}rj=Vjf~p&Z07`2i;d+xY-T(MgMT--JJnSEQORZI>;{I#C~!5dP$=)0MEb~ zd?$)rZ@x6~({x=KSjgb`0pbVj9tu|Y^7O8>fF+t!0?ekZA{Y59H@op9uozuFr{Lu% zW-D&cU>y$8SEnx@SY22U0r&u1vrP5WzSiSQ!C;jh76iVPf=7o#^!4doIhB-ysx;uq zlOjLx8yD6gI^1Xc2|K)H+!s?wV@Oi@PD#+@-V)2vm4C|{RFB*K3BPLGXUyoS9CzYsh!fJXer!+Nh^ zcPdPw@Ac>^v#Jf(PE!@%Hb2JqdvsN$2Y>+6Kad3qZTEwl-QcsLjIJ6EQl;=okl;Eq zi@or}>8nP`C1bLbUD3go#8UsL#|KKDGm)5(SxSy?G-!U@qpOla04Bj}sn~rm1%J|` zD@R5N-1wvgtDZo%pHA;8!>`S?ffo*N+Tu9C59pfsK->YH5#81;yoz@{t)J z`OHAC{Cav1fNX>2H+^=6pyXfHr2x6)u-AV(QL0KowzTk}$c+8xgyRxx z@w>@VZC^kSwS(p}DmtghPWgS0zTho#99b%V>d_axZU8wRcRY-$Kp*)oe=)r;ps1QMxtT~IoD}JH*T0zFmzCKA zWzv=>jfH{K-TL&EC5sV&kqAy>j)UgzJ^BI~1I)crOb)032dR7X=u0UkId&At7A(Q4pz?ysnOvP$$(USZ3=qnLZ2)-~_V>n=z zLGyqZ-Dr7%9XV(o)}ybGSSVEhG%@(f zl#cr0efEY(iQzur4`T`o$q5FClw0<(eZH3q zS!)UzjTCBvz45q-QuEx<2tjW8?2?L}XcS02zK4`%#<~L9NWnF$ZN-~DQW~a`4OOLR zfH9)4C-#w|nzK+)fnMZD%DVid9#UY~q)@toaO6@_)b5jeNWskny6p^*9_|8_M0rXd zDKaNPl5kK+6_nPXd1?=-s3Ik970^)(t_)7)(|Slj-8#->0{zG+Y5bshdLOA&0Nq7c zMc7wWQ6-T+QW+-&5SGO)AsIzXKeLBa*3h`XU%*pkku}xl=pj{L000w#T7$WwB>H-G zAE^Ys3FvHOkzuS<^`eIqtQrTZklbR7l1}Aw`$%CzAr+0~Fxgw!QO}z!)t+T$;CZ_W zp46+@0(#HyBNapq_>W4z(7irrUeH4dXIX<@5s}y?O?u;nJ)|T^z5-J(QVcP8%t7;_ z9#Xo%cCZ@5tDL)p)p&6aDWh?V14)L_CIY=rY+lkwssMBaN6QS=pCPH2_K*T23-=gU zJT@c1XZS0=~_;+$UIM+!Et=dckg6A?t=pm{|PDN0>T)rKOOD48JQ zSN4!fi5}U&y=Dv-AFceWdPrqXC6lG1gjK?Otj4SRNSP#X0|^Jm9B2b})NA@kS$c5} zTMC{OYytH3+8$B_--B6z-X=-1mR~nf>P$G>(&+RQk5de~!B@ujdVLQmVW?b2h0z;X z6$SHpLmw&lUBXKuS~P|DgR<`-rNCn1Bg0uSBCrTM>P>y5V80d{c*v>Fn^>E-`7LRWY2}+9QrrMMU^X&q znTmufeV~UFX?Sc}++vlLN(jsc`$(ZD#k|2DjIiyo@*nCUWt^$L&HNXu1?39vzK2vW zSh^%YO2Ko(%7DD@A(eoNy8zx=;MT+!2YKH|Drj8GxEcyomX#Rc$9hN=4#XyBnM4wd z)9vu_iBfB=MTCzOQ~{J#yoB~eU!Uk9#VPo$FzooC3{DK_`#w@ItU&<*Ei*6@sc!tI zdPo7JOpNjnCRc5w+P0tWBL#?@Xo|4bh#(0bW1kcgrX_YVTUkCbEChz$Fo zQf5QkdY|hdWhjV*WAQRBBt>s~Ki@;jsa$|xo4}NVp@?~Xp^sFs8i;Cf-dpLYYVsF* zNCCk&)^m_Fyl}6v=fBiLipmTU;Rn-_a9^y(mwQM7Hsl%$0<8vQgyK@a(nAUc7f_zy zVWk9|6^!t!J*42};jWC?U=3NN;Eu0Nmg?+z>pYA@Az&b;K!p{)-a`tQA&#W|^#=^<6&G6cg~z`Uf2ul&=$`1hky{<889w*WG+ zvckn;xpsA~ER-`K&|91nTd{yt#vKNTZc>_^NQB?Y`tRs- zfNIGGzCKk?2JH+M?k^UpH?gnYwsM{AlZz30vYnrRHUiE9b1+mo?7!)H)YE$$ZpPlE z=FnN7bnBGN$x1B@_4wQKJV$WqDil#om6Wdm-|%;Tv3%Hbh|$P*Z*OU z?+RZSG!kwq9R%z&oR&XbC;b*U{9tTi1z)QyC8oK{k#;{FdM5EP#}~#foO%xEM(0FN zRPTBn^a`JY;{0GVrxZLv?svNmdi8)5!G&i^BnWa0JL>M&L9g&ZIBsnqIu!&ZJ^i}J zbAdgJWQRf@%FfdWf( zVe!Og3NtC!`+bfy4{Hl^PK7$P+KgL!w!cU zGjA9yO^Or>nI0o}%J6ffdB@&nVdt)osIF~S4`u<=FedJpZ87xwAGy&5sdbQ+$X>eS zIiPwD?gN_S0Y{ow?CGNpi$ERv*4zjXrAvSNc2vf4Kob!lel?Q7od+Iie%l4O9zr<( zc^H1%=;l}3X#CFet5@#b+fW>C4ZLo!l62Q%6F=xiHUC1eFL96XMSP?(I}bk6yk>7Z zSDzme7>=)uL948%f%;V0B$&^+`=^W43R-k&F>amS^F z?OO$?wy2bX4J@lvlwc-A`u{xL-c_F6?8pr>9WBhR3|rNQVer#xgJ`kr>=2A{}c7>MRg&`dILQ$BJE z=zsc==BF1>!Sg9o@6SIDQ+1WaHG-*m@e)u<^oHK7(UbOP+$iSlQgys05d|o8t^J^R z=7pjZ$5ZZ(DMc{0U_dC=pH&$sZ`QLe7}YX9>}|KPg_i@fs8GJ&HjMJw7nW){)I`T) zs>L%NBKJ%)-Bv6eG|#zEw%T}3ld-Lq1rxRCNUxiMCzJfS7tB^0ANDp($~bx-l#J*jvybEiqosUd1-B!!wK?SKzEw)O7sXzZn^X9{_-B->F>A0TgXl&lB>D`8Tb+N8LYUQ%^{mmFyx(~V4? z-;r(ITsr{;6@Z5=#ej=7%7Ki1=>;@8AE~T{S0PhcF;Cf$k2IfeN2j~dbzvOKWo2z) z6%0rF^LnYfTWt+l>HhK3**0?I+}!GNm>))mKyW^yabvEMyzZx;$)?SPIG(K;h?3C@IoudtbaG%>R`)+{sd6 ztc0D*D${@#a0Xv>q+~GJ9$%~M+2$Lv0_U5Ver+Zf|P?}0n6BcqZb(bJ2w*Boh{(PNYcG0S=lbL)DF z!ekKHIEMr0$?$mX1v*j_Rjw40rJ>CWg|@uz0v)NV5myrQm#WTd1K#}gN1BJUDva&b zn7bC(3-`GA+n?{S7GcEg*Ba53lf7nUi&FG9`3*<@o*s^D*0L2FwQSpaXsnJcX)7pZ zvSm1x+f2bvx@q5dgr1bBZn~F`j(AwDx_eYGJA3)kW$mxpGqk$2`Pe{u%Y&@hDKB|- zc2aL|Ix;^uQc79rZKafVh{7GM$W3oUxmP&^?uBG^QfF`Ornb?U*{vWqmK6H1ThcYR zald0~2_78SBPKbgmz$G%d&`l3F=dOJZbEJJ8$**;GO0?^^iJZfdyy6}qm2<%;)tG= z4w|>^L0a=tV21~V3miTR`hNS7=H(NdQbs!~&M#nZ>9i2$&+HC}?A^ECXd1t!w&BW! zvzOAZw&`l4xDJ^)r(~#!GC{p#57V|nM;I$Q1*jxTFRkBsq(hK9rMWCz zX22WLdE7nk+QWQ2Q?jZMV{pZ_Ik?`v7inFDV>~(q6;m?S@;!Ty4xCjT6hLRotfV|X z@7;^Er-$p@d&=#XDd*Vx_8=W=3|uWj)hY(&dSR><>BBq69sc`@oUrOYMGgcEWy|U#v@q2!wRa{crda zI4Vnr9nC-qo-{7;WHsCwiRJp>K9@^}l(69hKAbXMKxcjENb~bf>$ph>(sl)Lcp%bb z<#R~EF~S3kF@lu>M5d)8KfKR1G}!PgwuxCCWwjVI9|8Q{IU#P3DhwxL`P^BwKi9qd zIJ8CW)7e&VWU&7ChlSXUuD?k>8K_y{mx42jH2>&6*FWa$M0HuE1W%umkbLY&^X2Zy zyX*SMw^0`7aZ@QQ`d6As?gDhk% z8K8mk&ITr_B=slvxsZt$4$Lf-k~P3U;JTkW(mcOA`0|E*@b|a$)dVA4$Tq{+Xj4{v zdcR9Al85Gw#!)3_hCTe5BhBZ!GcPZ!Grzy3Vo-|k6TM<8RZYnJXZN{O*@LVrOsS+f z%mrLepF7fgwp%K3L0LrmTq$^ZF40SJ$Fb=aFg9H)v_vUI z>kH)rRg@5Pl0W%{Bh6QCGU~r_qqaG)7ut$;ZgYv2(o|ZRyvs3~Nz?q|k>;ygrm3&b zY4$r~-8{X{iIRf^AT8DUiJ$XJN1AVLnWw*CKj+x3H=L_V@Y`wzUV*DTmq~N|@{kDF zoU3IQ?l;|GvJBs}dK)cHyscp(?(>!5Q;*Hb`o5FB5S^QD0hGmdt^gWy$|6qY>b`oU zxywHtUjTg(F2D}k03chaEEvtKHz`fjV_!ScyliY0gzCErHy|^uTQ|-OH?|lnI8f|3 z@%ViGNb~CPb<^y|vu-x>D;!JqihdA>W6JpIb-~< z0?-MvsEKWV^GFzNTiR`HcT72qzj25@%A}k~LOXg21><`{C*L|!#~^yK8$`d(LTqvn zbUt&`rX*(!%baqSP3Y;{Q+rxj&A2ddT@;$k_?*17l1B-rzeHFxa#ByL1chBgznsH4XaheZmp5JjaD`*mF-9gP zZrSf2`P&Vi4EXHQ!U7rZON%Qyt}f$5trQsHx4ay`ysWHl@MmUz5oeOjbLEqwWNWzn zqc8+m{NR8sYD%f8D@ZsEN{=x9A0C+-=km-3mv`yWTeNF$#`rw!(e{a~&k_EoOO(() zOuUePbfkI0O-7UOX;Ob6a>Skq*5UUXnfUB%J9A<;@XfYOeMjn=F>WKcK@YVfC~Wx0 z7uX0X?_CrU-kE1LQo7oo98q&SBtKk_y^l*v6!62ShF*$N)o7)oLeoF(B}X9#z!MnI z1%NtK^6+Q<nCWmWwl0S49;$qQ1y53 zCkVnd3te#+VzY9}@_Ubdf<+irwB)`Pu&*5O*gY?CI|^>ktH>(F6XNTGLIPN42F<-L zS$|)D!$i`zuAb9DQ!Pv=F(*^SNxk>Y=tPg0+(Wx z6ZSrPZ2@1dD$0{zVdK(QxbGfY&_;mu&Os>|u;sCN?zhJlpo~K`q(@SwloNyI{(Ee} zRWuwZ#SHf`)TP1w$XW#};B@mIIoXlv9#Z$&m-`v4!H8axvRt z3#@WLjLm~DnOaGm3Fl$iSpz;QNqUd*kV_`kEa{4tY6U1HavAAAiobs7^scxMEYP>E z0=zdRMt)e2uCT*mski|#ts*T3`0(jnNrjcPxT-a%PN^aEh#p;44~4?A4Ib+uiA;Xv z^sa!0QTaO|f{K)SZO}ZbM^{l-VL5bkhNWr~&hDe9cSWUt9aUm1LB`CmO&`;vtEAwc zP{p{Qid6In^s&>s@-k4ZO~woUK2mDH$Mso2hnwF~SxcUysIcK4-=ixXd9oh3q83UJ zx%z}2T}i-j3R1ErSbc(Os!i_-TL>Np%#+F#{Wxfz)T65cA4^2|(@_N8mIHh8B~xp$ zGG-X4qd*0pL|cjRDVO{?Fk$znMC*mIV+lnI7oiF*Rb6@N^reP-3MbXMTqTuy#a4LQ z#IHK6y9_hXW}q@W;XILl^YrOmX;qY#Le&5h$pZs!p3$SLpuqh2iVv@f;}zHJGpBcD z9Q^GF4@?7XZA+9st4CKlis;Z2pa}0NnDN!z4r&HyQ?0`PM#xk1EjjjoKc zu4bv2gxg>}mD+sn^p#15K|j-#099CNIiGjQ4I{i|bZH7b;UH*IWnmfBetUk8r6Kna zsHrH?*-U=a3of~VN3x8r8DLMGW|<^og0;EvUf5&JvS86*7b>h=Q8?2t>T#xFmhb}D z0B&+fiPICtOQsi7C1Mip7;rGCs!S=0Uou&$+X@`V1%M1i=DoB}U&iRRBuWfY z~&NMl!zFYx?vByV&PK z4|Oz^DH$}c?a@~j6k`nrIwl3b9T(E;dh}%~ur_Pq=SyiEm9Tq#kG={oaIHcqv`5+~ z*EjU&OYk5a07z+LlDVReO8mmp9T$MpsMLPaXebx{lx=og9OR-eQf`9X5tFSA~ zh51-v@z=a)OmWb>rH2%mt;tGwnaT4?rodbKNZCyF+qnT&BHI!`Z|fliZSDaAEg2NA#EEH=B2aflS9#TL=E37FE6GzBQn(duEq%x)FgsDO$x~rx&d{-|i zAdC`fs%WYNhOhkY$x@w;;>Qi1Aa8moY!Rjnui*9Uq? z0f>f0S{z6L=PG6B{$LNOQnaJ^Y}`i@%797^UNXJ(B_L}q#>v@ z-^Y7MS<>-5DrrQ77fU4vdq_D2D-E!O^>8H^-OHcsAqDi`ngoIaczljz4u0yA9;Gjn z02>F#ABHv{cI@6y_mDD7DA34omhqX}$EKg@Aq87XWhi^lM1bU}md|H8hbM{M;oyiakPUKzZ6I08)6$^YQr}QW9z!nqDYYxUpn8e4&RFZWGG@qvBSAxP|Wh zVjro@;K2e>0(=R)3sPU|Aq5px3#U4&U?vn5%=~f>Dd4MA#R$unwF6N!Xui@%s^tSE zP+Cd>ps+W-+CwTw`d&^&s!eSz*6?eWOfSF2Qw0fC6Q|VGmP)XGy@!<6Q12eMiK_)Z zBBZ|2M+!bAxMs4V5-eZn`ET}+0>qI8)#vrKDor(fzSTntC`*saz#9&@ck9b@*aJVfq>D$``P(UiB>0^3bLR{D z*_L>-WI*ktg%zcpfT#1r8xlx0O!1X6uzJ97>1UTTpXnybuk(qXJ$u*>ajH}i#%-0j=_6rIKfnH_ z_g9PIkf&!fP@Nj174WkXp{>8TBRhl(zg=mozW!=uv-u=+WzE)`y#Oi+mc- zvPub>Tmu`rBA)tajnB2;~G9b zQ+oRoTpymmL%*X8FUL!J@_L?=$V zP6GdfllS{Sul(r(--js$3a)h7VH$o&D7*6^!=Vk|I6I^i%k3*(`wBXy`}ouP&uB#j<`cu zUd31j|1dV4;p5soal?7-sz#Y#ohN&4_!H;C2k!lvkHB$c?p;RpXA;8WlG=cW`a`p`H2(cVx4N_A;U0#YY}Qwk>jeU5gyS_Quf`(|yi%$*fy=T@oC_-Z(F7J&Vp z3+e6H(CqBx>%ZLQqhe2K;R-P9T!ZIcLDP*ldl_W1=A zyg!i)SBXowP*C0vKiYh^+qLe3Rv-J^yI3#iUKKNs&P9MdkJ#tR;m)(RRwJtvUBT-| z9_>}{`MTY=MCuZOf&F`H`jbOk%aTPF~x{M^Qir0KJ8DT7i{(^wH)! z-7d7(tL_{u0?asU1)7yHF6j!_G37SI>@oXYI8~CMMAlY&dM!C<9(%M;ki_+L>FiV6 zDeMl(GIOwgHN`YNZlB9#RJ2NiM*+G4{|C4ISbOBV3l^ zsCY(@q2!4B>Z$u(B``)TS18>ON}`ucPy4go+DBb5W~!#gwAz_cpf#Vq-!G7@w#94M zA8@&7$3Np}^V`n)QWuW?oxJ)7QM{DF!TDI}vA?F=EzjKdN){=DP)-9LbQFs6tX=@Z z)tClVK0U+*+-&mix?jyNEnc=7R@V-F`M8Y*Kib@HGwCkafi8iZ@jb|c+jdzoZ@B?NuTP8q^cI_30+^WK9f8d?Nmu}r zxP%uRZN9K2yK~A6fS=EI)8~ z>SJ|6=U}RW;@T{$vC}fV>S%NKEz968%w^aU8PP2SCBX1J87Vo{gjJIk;?+l+dyVJO zXZ*r5&qjhkc3!wETa|$Z+n+ZAAIZ9L#m6YLj=(>{#I<%eoqt(o4%4eUX*AtiTb$?#It;?6OJ|IAK z=2FQRCf-x8Kia%$%ktS9-SX{Z=ct-Zgu5oW0Q);}4d3wRHQc#WN>mb*rpW?6ehCw! zJ>Pira7v}@)b^W>p07gVJN5SFqnD5NwnMp`VQ+D1d3os?e2}GU=ud}pTVFd3`@qYf zN=!~BkX>&%x-`}<-=*M7SY8hJ+Lte%qX!O`EzGAfS}Mf|FdaN3Xxny%vCTVnSCw{HB9ld6()9t?Ta6`_`on4;4y0z%( zw`pl{wRLVT?S8S|wGhfCj-41XrS_iG_1lLbs~ep=wfo1rmJF*~E?v8~5v^~iz=H`& zi;CUk%|!L`j`JC|pM!N&(TG!GD^0Hi-nn@ayD})I`>v+@tX!N8d2V%S4l3gcDt*FB zWB~9Y1$GOsitH=kbO0(bN;EpD&G+?eQ#$3i*4ihf z9OaIi(B}JlwyAKIovvDOrolQ-REkZ{Hg$1H3#KJho|jTiYV!j<+cZ&{T1{52!a?y9 z!N?ExY|~NFKMPX$3c2z^?}7H1QjKxNn=V1HnIOZ=v)Jn>hE6 z^lYY26nbk|manG47?T-o^ICK&zD``YPaVDW z_9p!fR|)6qCC<7sSB%FBlM9?%h@m)GC7(X}f6g63H8nRdGXdsuA(YQs^siMW%SwoE~x^X=94o%B_TDHMEKmkn<@fk zPK;hS?&#uZKEL0ltf{iN%rvy7R8;Bd3;S)#G3l~}tzKXOYATBL#eFv=OieD=@0nz5DLOJ1Y@|%M zRPrSlK?S882KJ4Ev{rbCq8duym4r`&=9>pQ zM?3%92WZWdAaRdF8A0c$fX)A%1GMIy)Ud6q^h$OKnZJ90)&f;#$d3LUNe-~g>r`B#l^X@tksEvRDTL0ZG%RI*A+ zu~#I;dj04CtyL{_jRLMy5OB27+K&&?8r+0bS+Z@hKTAay`?q!lkd3*3mR5l)(Ot^4 zD7Jzfs8)Cf&b0aI0a~N<5EdFF2kuN;0Pkl9XpJf?1ui`I+Jeu;S@`(@T9eXOkzF!6 z$;2uA@fQbatrplq-ohDz16Q$bzdS%|N@r1p6CR6}4P~DD)d5R-P(NNXBkhVUiVswlPXp!w|qS_51L%DV(ty<&z^%Kz>Ftzp$F z6@H{*ftFL%+26NrQjgZ`(BKz5FRdH@b8rRbI)8u;T2368lEF1roF)_E4~N${*1)si z7%T+Gf`Qfa$HQwJW+H{YbKI9YWvW~Er$cO&V|XL;?Cg-A9m2(?GPIm49EZ!mZ0rIrNQogc#Zq)J!}>Ul$ldX`$2P$ z!)qMiDYM$c!UeKrJteF-#Kw)aHsC6ta-xBPfA4j8jmMl=p@JA#6CfN|mU|y!rGB=L=y$AM_qkKKp7oHf$Jp#E0^^#K# z%onByqg@I(JA>xIz2pGl`qVtGea#Ussgh@2fTDsQ<%_Dos zQPn!ov9@BUSyKs_NA;4+#zSY701G|9{Gw;Sz2vA44434Lro=SKJ*Jl&EU18iN(~wY zx*qHD*qiq$%`D;dW)&qYSI)7$2hHPp$*G#GaUxJXuWSh5d3-N9Z54J4NEzVY!BcjS zC-jq}VzwSQ5QrvR3eXcz>?LOalvZwvNi6WH>Fs4NIY)H~VC9DFK|@oi)+hIq%PN7` zfK~$a>WFuJN-sIDO{Vh>-yDjNih4b@pIqP=sOOSW$p?C)^R!-aA!Js(0+3xjXd>wA zr}vUemMV@WP%MUuhvV{jMn5@RE}Whr;2<)QvCp2_PYz^;5H)4^e?rmYmuK~o%W$K( zkctThf|88EXZMmTD!^Sz0bFF_g^I>Kr=OgwS;u01f`4kjJ2cPjC07Hh#Q_2qnF~$( z^LaP#Rc{^diJT)PiQb>ayU)WDD zR%t6RC#YL*w;C-cu7l$qkOP5JxE-fPcsxz@=P_JK#y1bdF}VG_SGpS zt%m^y2sP0g@K^U=`z(@DU|ce&H%svRYi{2B;RgNcd+YKApu1Ju3Ih+MIN3n2?Y(>w zbQSCiEkOBV5wUe&*IO2zuFDSSkpNfg2%UTV&6{uCK+>CSD;`o5AYm>AOGRfY1O0~H z3l*)%f=35~%$G{VwcmL2=KD9KTt-`0D~EzT1ytWNCKQ=hf(j|2I3WnHahci{%;`CuQGVYXhH{%pt>6rXWfosV3~(_u2wBy9M>c zoKT^KxZbhH7B~!#0MEc{pyZaaC%$v9El_z3;K>qd8)(I?6rj|q6jitT>-liDD{Cowg4oPQ#tU;fT;+o z{QkkcwooZvBy$%$C>Bbc{GmOzkhCz?V=GyzLQk2=KfKo#0C)-OiUi{v8M)ja*<%af zwIXGAv(<1V35NXW9$SD*#VpQs20n;`0hjn=H|IOG;JOCp9dGk(TX@5!FmQo^(2$Sc zd}5L0Hd}R~l(UdoD%g>LKdJK2r+ajz7zY|39Tc?imX5<`rgx<^6^DwTgR0DtfQZlb=!!Xzur=XQ zULlbHCK1tI8RGNKR~q3C5JKJYhtbOjp8<&fZy1r3b@t@*9#U11yH(-s{R!`(&D&A0o^${KJ2 zfQn!-njomG@AR(VAs1b6B2|TAB5m>A9$f*348?)*kk}Q4LI=OsqbqoXrD%c^v4aWr z{C1?U~h;#W7n;UrQYPPAQ9g1@R`j8RrvPE~P#J$-p3h(uFM$x4D@B2MEs z6F*Qju36&`^7_MQ?vWd7M zf8S%#Y6i6h-Y5i?EO{k==<$8Pp$fsgSJ?DM6-fPYdRK;J31>E>oGOL844Oan*$O;o zAlL=&qn0+}P~PP)dvrxciN@Ung=5HEz3X58In80ueZ-k(xU_J@VSg9e5_jvd;!ePl z!3nI`g(gBx-~BIdka;;rS1Kio$vWJfo`Gh>HGPliD`jl}d8ic(MYynJUEcFArym30 zv~U$+9>MFZmICMQHN7jx;obs)ik`#btI&w|?$MPY#79Q(Mf8*{Kf2HL0@u|K$y`_|4c=LCJ1l zTS~xAE|3B6faxohn4+3P26VqomSYP(u*b$_GUZ6_1KdhyEiRY`P46lP6Cy@v$gJlU zF5-jxoRLbkBqR(QQ7EIupm|7-t}649Le5zB$_c28hyLY_Bn$uO+Iiyxhr{NBqF^(8 z+=oqHy8?1cWB(9jlPU>4{4X#1jJacWj^~wCVYrbgf}t8TkC?a*s}!{5xzDt1y#}{p z0=Cp6CrfpnETN7OwlYP2`2g+ps6KraVQq?V%`04O23PyhJ^D(8swS~wVNZxkZvA6= z^raj?3SfX17NccUYU!~(`Xc1OQurz-ADF0y$MxweXb)V@6zx4YP+YB#@6ne?5p)<+ z8sJFs^hoy!J^C`X7%G1teG%BtKt`U}qc0{6X9*Mrh0GgzRr91CeOW0Cka7n5q;f;< z_LF<`MJWt4hfyPxQa)jXPwCT_12a(=JZ)f8f?~y=+Gh=8)j)lyHmJ8n;443^M_*2J zcsan#9QKB%mxWL7(HB;Mve3B#e6zGAP@d7JuLx{jf_*B$5EI43KC?$(*}y6UFs~!G z##3S1XZ7d{#7<5yD4f-?2EuKh-RFBnM%b+?9F7j4ra|+ZK7A$UI3+HMNpMa(>bX7o z0?q+0PddPrJZTC*RuM9J&;v)k_bdDIJm-pyP3pfjv zo;LziZC}s7qDNn#$b(=2!GS?m%A4D~vX7pJ21rgz$_B`VfsT6BM5%eWKhUBuzCav? zfLjb63clB?dq{DB%O0eS6e1DzFlb)WO9}v#0@++)B_>+K*Y=U}sdDHim;v-e0ju%4 zK2ot__a*BcbiJgac(3mv1S5;yJWp?(L= zdwNKT%*cnvmCh258usCPdq^peqR<<_uq{1xhK_n)AE|_s0&>~ImNJ!ImcPG`R0)8> zSb(!9wbjt`O%EyP>p)3gs!MPX3v|>6`bb4t857|2qXKtNb_xP82b6y;Si7K`sSCH=w(KhZ-9x-b_*aZw2jF7f)G z>>*VuSM>4>oh7(!kor^)DRPMfloPYA@-}C~rzc9C36ukn!yj@`qCj6Xb_w*xXL?9U zivfaBfVq*qcN7}YM+y#X0b>cyN0CMxG@t7sWhibYfmQ;H;4S%IpYI{%l+hH)CWM48 zps<}U^pJ{?J4VJYv<4VfjPQ#+q(EFIAgKwqVd1JxP1HlG;I3pK%|N*)K|ht{X0(}}PA)rnFoZIvDDB)EGCAQs&7U~m(Ct&dcQHdS!3 z!g`-5knrn$q$2tO!h!v(acfe1L=P$MxTF{a_?OwW&#AxJLrMZ}q=#FTCk9IZJL+3~ zq$>C?Q-Z6bPHo*7#NJS6m2Dd+>;8S`<`u)jLRJ7zuTtWe!AlKDdH2au9r`Vli>Uxb$-=MzyZ0V_q@;&+0tZ6kj3vs{a?c)89AG}@l=Ke=T4qSy ztA`XwL{Xg#FtR<|H;nM!J){5}f;Qucp0<17h+unrNkw`H0u-^}pjDid`}UElFeOW^ zDiJJ7yZ3(mq_8y>7ydKs=iViWzjRMyT4kFnb4?p(b<_;qvE4-$Wq_CD;wt_M0 z6av>16B$3^*m+EtZVXpZSCMegnIX65k>|5JhrSFEUA|bs$Qyao`RvXUIskql0i=Oa z$MJjg`RtCWyMWXzUKVm`FuTW`*Y0x6p5bO>fOmjEgJ?XT-BDtE78ER2u5t2VM?UVn zc9&tb3INIkYgP)xe*Agu4o*gnU_}`rl{C9299uVxN`<3tgJ0eT zzuJGlSWl00S3ne%CCD-swZ*pT)}7JorCWO){`(ag;$`c>1(&sNe!8sGE9-waS1H_pGy)|Jg+(ZQ z0NFM1EU+O9rP>DvOE1qSjqs_*n#a=!J=;3M zT)GkdT|oPbtHa1n{F^&Y80K~X8l#|eGILjVe@;t?WveXfkQ4=oOsp&Mv}4U9+5v79 zeluO&H$Lb2+)bFcA{dHSJ^ukmM>=g-Wq z&R-4FVSJEVM$rCi3>aufyt;gDt}ZW~nLE2&>io52ie~|LwZdDY2s}zf z@QmwiESy~RK(s)CBTcF9o_W2ECBl0J1P}yx%IGRC+-DtYUf)F}?i2*Y*=Ed`ZbQcS z9CqD~yK4LZ9$q+_AKhdT8$YU8ssi0D6}11ek2P=J;{-U{*Rk0547Q#Wj0xYs0gEjT zoDm$4=N!9H#Rd*BJ#fDCZjsgCtf!n}&pp<>Vy~M~oVU$57Og+F3jwl9XDCxtP#oa% zpn2Z0<~4gAxjcWnaBS#Xw;vc~4w?;i6re**F3j^UqS5=-Utr9Dx&zwEx-i$dDy35E^rlY$o>Ykt*zJ%6#xzxUMF)9uky7c$%^A_DM>=g#mz@5NtqUnJ1n$<=dSs5@tD(&%-KQCV2#RDu2%*1F%Rqr)rC4T9# z=Bc~i7?&|865KIvF)QEHwoWbo0Kz{OGRkG zYi_V}P4v2;=HNl?_(as_YmYTA>~rLHbNdecb>ueRDZ1dK$i_f@CxI*Gbr<@Ooej}} zfpugy8hTFf`eQfXm#Ce}a1`v8DNJ7aEGgpR4ab^C@BW<>J@(^s&K?e$u=#ZG@^Hm= z_&|em_R_%=<-uy`vo{`VzSO;MwEKPEc_K&D^1VGS@) zWL}|^U9mDxDSzI2><04Ix6?$KWo9j~e^_j#O$PV2W6c*Y?g?&77%x>W6aZ3VV1V<`;Gxq!U?a?x-Gc zWr?y3yz^M|l-&nuR&a@i1q@Ri&Yjh@H#>XBa%O3@T-N?>o5Cw0dY36JqN9g{xL4mb z(f)Dk30lYiIxHu9a?+P=yrf}?9Cv z0BR76Nk|c@t-@1?_j`}6XD4?T^rZLe|G*xXhTg(E2WTzgFum^vK4V;lp(bx=YllKl zfZu-^&U%9V3ethS8uKXyLD9;FYF9^T-x0=w&c ztP#%fcU&$OT1^!cv|XDswCEzSnx8n z{dG%a-SJkfd^ekwh53Y^hJlb9L6E~RuFn1#X^fmQO4(XmGBuXUCDimMkNwMy4<_kj znccn=%{TdyGmf7qSxS2R^QrMQ(sy3QX#6$w;~cG7`@F*>%50Kil_iKl^XX%MzaevW zby>GxU=By?>_SLoeVS+1R!3I`ro{Z>66wF)}b1D&1Wg|%@>Z{ zVYA`Ow>OrS7OyVLXz*5;`PeR0v=-#5SxImmQ-O)VXg$9Ghd_A0c;Ggx6)7iaVRa-Y zDGSS&j>XM43b)zbW_MIpm&5!jQM5}73ni^?1`)5nQSci9#Egc zWzs`zPbYk;0t$hW*eM>hmsL>(+^-y4reMO2$W+q>rV2e`0xplmrE+FY;UEsvrK4any()FSL?^q;OMU{tU`geKd;Yi zKwZi1^|59OUsGmNh3{4by#FN;SuAOx3GGNlU&tQK;+52N)TKUW*4DTMX}86NS2` zo6g}L#w{qUGl?QtzTN7^Q6VuR)aH@|SZo3hy2k8Nz$gFCq>hFO5-HslT#LXH%m$AY z|L#Pg?wL}7t>7ZKCpaXPp1yu>qEI&_D*PNUqohpD4j}0FCrzo#q%ExRz$BBT+DtU1 z9~^5Q++K-nyI$HM=z7<^y^BvW_V3&1*b$co7R5QTvH+B-s3}8Igv?MEVa zJZM}QEIsCXrhD8!pe|ELw5de3z=aHE-`j5$9) zggr~qCa`b_=Q9x&`k?v6Mft5|E`%+Zq=YRxV;;Y}DCfbc5RTWz8f~(rtSG-ab~$}z zA`X`Dk(b5%5*K&GXS^j*3GiTS`%Sw$A}R-)3b$8^lyGvAHS+6YXUW#myS>q&F78Ii9b3p-~e`?*X&2MJ54SWZWrdzJ{_28wz^8$(xc?$Hn z_bxMGv`x9&VzfTz==X<#$)g2)<&1<8Y$j=fyUx_Hfs5S+z9Up%wKIXT#z>o(u6|Na zcbmEGl%6(pN}2qk)sxCONz3%sDbn+}!RfzBi=B zL+2{ZC=F=U88F6#FLSS%YYy1?7|@|WNV&pw3K2x2h?Ba$_l(`aDAQ|;S1m4GvpD+1 zlUdEH<6uc+q*rUMMt-!pf@Sm<^V%>MNW>9NHIz_XDgg1)D{VifULsWTtz@eccXc`}YeW+G31VAu^LQRQW?^ z*4@SHa%5v)4_ID}E+z|QkPM}?dDu+zfOb&B$GlTJ>7q>!?E^9kklz^AT zo?p!6TDv8xX~c(Z|DGIC{L}&X>#p3oCO^8SBXI>fw+2erBB9X5QTb92gg!;3*K=n8 zB?dfgy-^?uSWD+LkD9sF*j=OO2X04=@XI^utaEz7FG^3xM`=vY1 zi(tA*zDtTSn2H4f8_5Md9eLu+;X83pnz`dxn{LN(wkHrRt;yIejodhmw6}Am3hiEr z7=@&aa!;OVo;cB7uUNzY3>9J}8J_~MYXS}8Oz^Bcq zxgBz~t%qO5rKN>d{}s4tu!F$Mi$Jw-pFUZR($diND=Fq75eR2oq1qSQbNve-yT%ke=qJ^gt0%=D6W z0K{0%jDyiGn)28^XJS{wnt;O4!&nf26}}7QzkKdYk6I#d%!J`NOR5b<7V`6EdeqM` z!Al>!(*ZmH<>!0;%=A3{3a*s_OUxr6@gyl*!p!tM;<`nigGxXqV4`9PUpUhvk9fk~ zieMW!JUYj*hA*0#o&lHQ<2fY~F4sFcEw8!)8!;263h%l+l&=_VU~zb^6;6)sXyHszF)R$9vL z|H_%+LzIhZ9$6+I1Y9@609rx23=tKeD6qbzci8`yI8oEQYGxa^--UwAtuD-Ua=S}rg$n>={f3rnMbwVTY z4gwZ!h(>^1pwiQ7!eYH{a&uiyX{Z%vR1448G_kqY&&Vy!>8`mJFdI&a%s8MtxGun# zT7|RqhVz9Hzj3CGh?7&T8#GCAQ1s94w7v@+ZE*^QqPv497_F#CKj$SS$ zv)gCHe7}@<2Yn7P>LI}RVYsq6SJ?sY#wU8qK0O@D-R!-yPI6&o#V&g5O!L|cojn_3 z>{ejp+DX#O&}fupzj<3PV^?6dIE@rI3LJIZaj z=4)(NUkiWLA3;M1e_9O*7Shxg4kTOXX(%#*}o{S>H z-Yru32o*zNA@Av7q`iz1i+kBoW?OrdHvtl!!qPbQkL!L zQ*~ZaO|bW0l$OP|8@XxP4KNeAg>$jo zsiWj>TNbZay>g#fX3Iac!|$TzW2j6+ZKMF;RZ?=zkIu{=HvZD7MGK@-L!C1ZKgd`w zylFmmQJSk@6^kq2^m%gJR5oFPAD?Mn)CFVi`eAqdrkCzK;cb`=osS*by=*K3ZF7Tc z0eB*CQv6?psU~e8Eb$Wu2930%@|;$P!m$fzgMV^JTn$tG>=L~nl3IG*2*6H_a3(0V zO@i41{rj04k{ju$STww3OW`ZdX>VEc*=@I31WGx)&G5_NZD#R}ykORp2u+=_b3Qlo zpGMWAVcXOr=9^ledk*$TT3(u4Svz}niRN-U`YmOrU0Dwop>j`^B_?#y3~Vp0{pV+> z7{%}*f8WMNmVYQRH(bc!zn~O-n;p9|Wi<=~P%YTg5|peywzazk%@^933p;Fx>n(kA zIo7vZE?3O2bPq~^D+aGQHZ{IOrdM-cY+ca4ZE-fgGFKJ@J~!P?1}krh7cdzC(-CI; zrJ3gLH#zUi!^H|{EjWkp+E(b6Z>!J1bTpQ+)IKiza*Ks=G1?qwd4A<=SWQ=AG32Fp zy5k)Oe|!1dWtZRL@`0V315?)8>X}l5NnDSGwPnJGyHr{MOISF;gohgiN>4Xmnfbek zooIUQTy$CNRv*la3>Nzczz48_IHBdQ&iro^TegFC^4X@f<>k@_|JaI=JMJY&kV^T6?C5W6hH(ph@EK0AB+_UGQi84fAP zM3JU&IY0>NiQoO3Gk-tvySw#eR*OrEE&UDMsjZ1XEfkBOy>@T=TPDQUg8rqH0a0fYT~e%PVqvGX9;J=59CHr;-u? z!`Cc12lyc^EUm09L)+MVwEdwy?HDRHXAmMP!`+0Le0SzQ??t7UIjn7~Q78`9N>EkY z?{{5JBZzrD1TegT7j^-#1mlelt0YV4N04oA_;`e8+9{ccq%7l@67dr1FwVT&x%1XmI1+`v$z!9D>ydSkN6Fl>*R?aOZwX~Ru zx;=jIG~GG+Ep0TkYLpXHE~5xaO7!EIg=unAkBFk6&n%;r4!68qA0`KdZ9L-~^p{Y= zGb?%XlbO|xtp*Fz)wRV$D%0F*k$P2Zqub3suU@4EnO(VZ{>=E%1e6R|iACvU%Ee6T z_op+>H^$LN<8}_6re%OaU!>>jw{L&k98!Oag)HN4zX8JBef2u5a>_p-4@esdl?SQ{ zDqk2jX{tXvWDA#P5cmQ{uGXOBDVxL3uXhXg7i~bu(8YyUwtMSs`JFby%v#&7Sq5jc z+?EW2`=$&GBH_U1Qd-Sl&X{cqT(=GA7F1WmkTMG^&1=|1tZ;bTuqJ;s<9CsCt>k58 zRSn;42M%5w7=r|7k#q&d{_FPMb!rF2G8}!IKw+DQHvVFKe)ved``7Ew#nocDwoP>q zN)8~%nPl{W9(eq3X8z@FLv9xfL*85~D4%G&5elCplNHhYc86ax(r??imC>QmN9;q(rg-_QJ2j|MnDvy|5s${cRt zE6HI?DN&(VkpXT21|BqjnE6*d+EI1B&HdpExRJnoc2Li4b?QI%lV6x$?6M=WWD*NT zsS0NV{r{=OYe)y1)hmgW)WGM$f?5dwcuw%!;>W)!;J+3}s7;tKFdatnUSd;8s|xH| zz!GrV?sB|&`?$W7de=uOt;V~>a*G7!bBq12t2Ggad$Hqi39JD2wZk8yi&4Yhs}z$8 zQnLWka@`ftoKdMm=~~iK(AC!5_4sXQ8frR{3_EKfoEyWE0p$4t-H6*gNSw609Y3)3 zB!c8r%(xgY@%^!n?|%G09;WpqnWc*JAb~;&IB@RfdIyR|#tr*dohj|P z&l<;C!H^y__c{L8hvnWk_dR}#1N+*|{n{^Z5XY^#|M9(fN>nb?;{zHX#EB&^dk;9i z-Fwu~uZydCKtHK4HhoJHW z;u|#&Ki=HsdUt`EM;yQPA$i%&Bad&l_Y~S$6t~H)1*f}^ONs`F9ty^BXml!k{iq$j zY%6Im?R0=0KECS$HlYVhiktzqqE|qVKHig{*%tJoh5;|Cc-WoN16HLhLsZ1}_`lkS z>TO*)E`~Sy@P=sTGf!3oUBD9eEbLweJ46bK4Sek0K2U0G=J#2FQ=aXv9i?<$C~eZuj$8P_;w)ZDp*t9FbB z8;$kZG3AjKMS~YM(pkefsoy6a_gls&$C@8eBssvg%(#+jkp(xwpn1~qt2QIpcCx!J zpF$SiVg;A}7+Gh+%3K$eWHlT#>tL23dPA&(V1xi%C1$EQVDJcz{y%Jaxw-ymMp2Pv12K zinD4e>@ES^X{sgvw7oP%w+3Bi?c2P-g052I?g8jZ$$*}I{BQbCQ4H_;^^s}pMraAx zTiMxaG0A7_sX00xDXgpx&9A~?dhr0-igQt^`p7d|({)Ja?a4^TRuS_pO~^t7SY(5v z*US`K@vP&m=gIe}&xf{KXK+yTMf;2PER5KJuD}j)fmuo-LvN0seZ0Brb#jlm#d6L1 z2Z}CaMkKP2))p%K_?+Ya?YbC5cj33ezDdIMQ?LppYZFR5_xOLmE=I8F#w+J>nM=cD zg84;{8=iN(qd3mLk>R^h%+)1mziU?JhM@*Y!$P+3>%A9TQ$oMzUsvB{$huLE2M`Ix zMlQLdqT(+&{$H<)5vX$QeCMuNBW0`-9*j{MzSawm-+9cXl)FXTb{9$K%gxSq&fKWC z3b=$G(N*}>Miz~`@TTs!8S!g9R)0IhkA@c;;PDWvQvui`6?A6k-HmWAOZ=imTy*@E?d z<>56h1nv@-VTW=bY@}*n$N$URMt;lT#vK0CZIA6Y$MCOjK|h6!^2OWLOkgfu4Qde)k*mkk+0R=8|1qmTx+2U%4;q|)XeF!I@tWMxRoxF~P5+%RB zUAKb~PMT6W%Losm*aEa{xG9Vk)`2LYm~#*J#(Uem;rRK;hgy8BiV4aZo3S;p``>tc z<IenAg?5H^f00AHy>~A`+pm4 zT}rtx%8YRAxh`D*-Btg1j&7=dJhw$0&?UXFza9Ow{odUqiH5+ju&9o zQj>BSmlT!n8NmQ{ewS=Iy+(FT)!^WQa8&?)5KxfsIKGEu;SK<=&rE~URKCq#`p&(G zbZyPtmQ8(jX?}&`g6`1%+*xM3JNr9E#A^#2o^C%Csb=LOh0Vj7&=Tr0C>Y!=AM?Jc zGQPkO7E#Fvu*nEu*za%s>P-%ZPfF;v-rmaayfIx3*U)=7BccSD+RgDqW{aKMRdOHH zay8(!q=&1Sf&MALYaeJg_r|rSTW!bHhPG>W#Bk1lk-@c^P(w~mlB4*+c6UyZR@k~% z(e+X3;RK8&h^I^s#6Q$>4_n23D}L*>u$;G!Ac&%Pq@V)@)RZzXeE9gOagK6C2f<3i zDPpk*n~jy0IMI)^oXIv$)3oaJDlWiiZgvU~>;xU8%eE zi$LgQY|ipg}MxlO*uu6UW^+Cn?7WNhr&9 z9CYfV0c1`knE_U}d4WFJTehN8P@o=M3=GIN@PCuYoRk6HtSw%%+&&&tpuS2m^h7rR zQp3u9`uH6WwyWrS5YwcyRGCtVP_dWK>;RB%Z15#h#gfgMd{ERIhtV<8O47o}`1&V}|;_}1~MWh@-8 zo&mbH!4o8jZ}aWr)5=(6WidPso)8Btk;(g=<5SC6B%CGYRe=?!0MWs?{qFIpWh}CD zkmWFmMVnx2(0uRs)G`(^p`#2Nwn9a;b+W&Id|DX`Sz$&~9$!thWhgPy53YaxiJJj@ z95@9K!f;BVihg(qsz_Js1pq(}WIjqV34e4^o<=NKj-Xu3 zbTjlVpOo~4;Saf zTq5Q44hm7}NMA>F~RpIQZ5RCb{5q z#r*)3mmU$_^~6P~^(t5)mfuI37eS_cZ1x%-LcA=l;BGoxE? zSiIa8oaQ1ZM|g!%2QdF07r>|}Ckz~8rHm@L@bJy=dE&CU-Zi$gEu#8DkKPMtxCwaJ zy-u9(#E$_z3Xn^(5EEN)4DWs7yqDOz&x!M1V(Y#q&U=Zi`<-a+GftH--n+`r?n$V6 z75|Av`l?b26#o$j1iAl-gXSF%(Mskp#pt>70bAh#Ck|LdOd3j~W}Op0QPTH8^S~2Z zQfqLgdoNnsQw(%$3EpRBS5xwR~7fR>P z4N-y*J#mndXgRcRzF?6_;Qk)K<-<-KO1j&?y|gkoCW}NTRIKI1`7Vj(nTba7n$fpv zv#vhkM3--Av&MnltBT%I_o3fF01^g3I0@)&t_0sa@HAZ-LxE{b~2q@o2pJ=|@+D?8m2l|Dm81|RF*HV2ak-cFBd?T4Mk2%r&cwDtR zwquEl3waT`9aUk6MnC`*xFcBJ$dThTOiCeyg~KQ~Js@u$dtxklUhG^ggtA6-O;a&o zhPwvlsHbr02~9ulJQx{|KhY<%aHV7~se+RPSJ#%te!_`9nT4Sd1XF+!Q-~ZE+@N{l ziM=HV1`i4YIhJIdG?9W`pLAks84W1sBBBnWXeT43Mt|~&>18x@VgVmofUL7{kD=V3 za$8i;=e)fs!$)SUfI%0eQTuEgSr1f)7OfLX}|3#e&^Pa_MNb0#K zdK3WB)n_bzk(QNqgwH!Md;rIG^J{l6j=9@r851B?BS-;^+^eC+LZ6f2mY@t4gXZ}s zn&-C1MD{!;n_GH%!0&$S!ZwO=y>1aJvDoBAp*-r8o#zE7ny1rnh1_MJ>k%_^UhStm zS^v{KUZza=5Gnq#>YCaN%r89Ae6LeK{y^&I(8k*~wW)hHn!NM;>Xkd}r!D<%oiIKO z1zlIFIwvZ<=Y7$M=Gi^JjGjBcigs(wHbZZtlc9oVhN3zK&5LiKmqVAEm}yFo8>-j9 z&>V+(@sbnG4{lKN-C6=cRN(?tT7-dAr3d!)(i6?Mx+%*Gb;|u`J2cCN$ZO;Zu1tVA znwW8P_+ECRc`1Pb!gS%H7yE=^J8w*w1V_fRi@w@A>K)Voc1TtkW{=NgC*n4F`HANJ z?H(D1{vRCR+VOSSt#>Tag1g#!KPA@-wFs_NDV6N4SM9T<5*bx}w}P-YMo`47_t{d#?yL0rMge5v^u+r$Cz{t> z=&0+kl9U(PGwA`MFgPBdWlZzh6U|4*N3Yp=82!F?;F!w|dl!D8=WWQo4Qj%?UUy8J<+RhlIEQ9FH)_yXbp$p+xiKXqJ!}=N=f^PxX-um5l|6KfUFDj zJRdv^Jvw^FUR#I+Z3Y=D9A(YmV83&ZEd)*v=wqc|5y3RR@4KdhIzW;NJ;M(yI&3Rw z)_3;+bzBNI0bMtu;Hsi>e(&kgl?K)qloVRo;OX&sAL;@4ln^vNSOC2SsF6na;U0Z)E|mo)WdT2w z_Pygr`t&7~Rk){9N=gNVzCPNcufUju=Lr|b09~}Wlt0#^FHEU0=*=iGwLr;8KHdY! z(t@((2q(A;x`n?!(L*YF8<^o7mYAR%v4iH5J>ajbDUSxWyKSH7;+TA@hg7LK8I^6d zP=AUlp?Dml5;*QNq6fPdq}zD zGf1vjL03g8+R%Kd2ZUI%1tN;&^Z0+2u!djmAytcY#zY6TVX&Ps!msoI9wCs)5dwMa zw4o};U+p241N61tcOQ#t zQ0aF5+U^zG?4I>+Me)GRmLdf`#G(R{0E)hK;(DrKhx^(_&I63|$P88f{`PsG*}ik4 z`TWHfl^82@EeuuYPwCZ0z81P%;1E!P5MTht(gU~VyC*L6T6HA|itmGs56cdK-Jtp2 ziGMM+$vN9>3Xs6k!UA0Bp?0^19=%Zsd(M5KhpFE`aXnV0<2C_uR1wCouWHn-PN zK*46`DKz58C$86$eHz#_%z3Fz(jW$L5`J=`dDwL{AThdm##us^Ql#x=4~>mKXo&|u1_Oa(09d?s$NWIwx5h9;z`HVQBiCR*lUpZ)wo85)Ib;Cco2 ztrH+He9&K9C_{tRw2|uaIhB&8%G19*(R{ljZq(d`8mqWp<|d^88wYH0Td#*K|6iSG zez-GFeBsRYVANcK$s!WfkDx>@gmnG-JXm(W*_CgVbX^OGHUC2pDtu+2 zzCt>eDFXO`C#R#2Txg5EEM#EZ+lqNTsQt)PU21v#?bBAJ1~v`A06+x;LxT!XHV;18 zz8h3?lP!v^%5GhA^oS^lCcvx)=}2ser@ZJ7IXSy^pkr5sNfy);@zB`Gj;Pp&o@{|t zxzACqOpen7$!N5XJ_RawOq=*&Coe__473Q9`Ync%*=x4}foTo?See8Kki?v#{=R11mH#0l!A6&jrx&>S^G(ANmJ@RCw z-M~k8Ls!;qcJ|VxYv@mJIpL%1n(r^xn5|(MJZiCuN_9QzIpsz}~=5Z(44x@3y(YTiGSG+Pw8OUIB5pDMPi8JVKg;GI1Ca|y>G$-+TPnamw zD$j(~4S*jU6^F6`C;o{i%iJNpjoW=0p46(c&5ry|FJ(7Tg*IpIooVP}uVt%b9yF_y z*eamOCiM5@lg(#uFsjUQu=>U@c*sy@u=`l^l&xQTU5Vi$A1X0W=b5!QBCxthAv#Yz z`R}#}sZMAlO`Va3!31!H^2foP+ItW}*Yps1o zIh<0`XvNV6w%J>%8TpKp`}0nCrdOg$k?juS6fEX5Pp*!IcG;anyLNkBJ?A?wXT}#iGXo7?0MLq0(K)$IO zDwd`hE0kjR#XanPt%UVKu;{e{2afyjB|YqZ+-%^jQ#LsCVEriAy@%ajbjX%rcV#%I zk@7dctcL}kT&h7(gjudE(p!R;_psm%a88k=vsDD{s6g&3PA-yRGm?vM*Axc(3hoB~ z8Ino@M-Tf^LJ_|5B<1cMrVZ(JtoICU<_Ld?0;>dN9+VVi+)eW^I~{k!WU`XN7m@>h zOhG%ZK7T#7$Rms{r!6Bhs8~xmw_bDdqRa%m_1bM-dr{6Krp&C)$+#ea2xA_vJGm{z zY?pSLN_Y*;1STukSchvx2H~+$Uw`ttPpb2VlPAXq+NG9RoTqse2@EL%-3Gb<&~b^bCU&TFjqBrfOUbAH@s=9IZlFpLyn>dR1QS~0|oB{;+`UuPoAfQ z4{te1!412|7773l!am@5=n5tF)+y5X?AuNf zD0vv^%L_K0%)qE%nW^Zp>)zfj^0u~ZxpsB_ z04d}5@Q1rvAMczf)Lv4as##_!EvF~$3nyJSZ|C=k_z7f?He@jIXOM4xZuVDrvRo%rMzKQy!T}DxrQ%~O6*(nIfNLgk1Doc3C#Po{2NtGO5ODChvV@1d|K!wcdqxf;P-)()3c3R3)m$2$f>L#S=Jvsd7HV(*~ZEGPy*K_7;OfE za>4?A=;YKiR3QK;mz>kZ@#&N2Jssa?PM-H%d7nM`FDI|T zs5meMN+1mAEoxxfxClSjQ@m4mKue9OWDodS=@5MW>z!Qc^b;LFUxca5%8>t z6MFu}IM_GLjwaTV!V_ZG0y2fF1#4k=wTYgAeDmag+|*pVZk1h7)Aem+(%Q;u`#BU3 z^q7rNWrCCmfBn|scHpZk$r@jQT}9A2gXY^O|7yqkS==t1-68$Wut1%r%6b`#%W?+) zP2v45TD`p;2j#fyRli=C5RQYPL&ETB6s67k?#X@EMf9-ys#S_H#wp_MdncFCl+#lq zwJzH!T%}*H#c8O|46qYcXQf=y-|r@H2pYfn!Bl;_C&k|U@Z>>50Ac$_nQMmisdVyC zwLd!KJK@JCsci6hFJ|5RWa?Uskh43kFINs2i^@K5st=02`_q&CO5}CvB-%g$6X5NL zC`>h;pv<2gSh3?4)eg|MAgHnu>h$y0$U2{jz4=9}tj?eQZhqN8G7}>E*2yiL$pr4J zNHC`|=EPyi{;Fl5oIO-cFpsM{oEweH%d&Vt4LHZ(pghIgp1i?@i;kv30q}2hiGmrB z8*Nd--<&)%X3_OYO>rmiX#Vl&@!ytZ&g-cQ+DTv>n?3d_(DNtwtyCOxn z5{UbUJyMIRN;ok>3alTXU3{58PNxXrVk;>4bKU@iS zIW?79R5n;!s!+v8#|b{Z>#6C~B5-t8jE4qyQM9+u-A?tO7I^?-s8|Iyo|2?M$y3v* zMOVNG;}&5|dG6>L)jdv4rxv{v(M!U~sNyO;gTCjf>C_^i-9mu@u@nz495?^HPEDs4 z=|!>*EQ7YL*${Dk?^Dx53XRFtIIzvokSbBG$NQX`{^Z)=!&+7gG+eB~K;z%{RF6PJ z%qC}YGGH`khY{ZI)N~p%RB#8(1Wn005^0tDpQ2~U#?4JvAidv)3|V|wjWA?I%)-O` z=71y~aO$8puu4kO2bC-e-=;x&VBa<=j*I@yoi^H}KrU)i1~M?U!`0>-CB1mif!ib= zn@6raW%D*f&OP`P>FRC(NuYWN^%aGN1UPx3%c#H`_Xg;HfQbc=IC_M ztzaW=5)crAl%ZKiB@6|TQ<50%@E`a??V3lPy7fkrb~#)#hl#)f4%cjrYvg?0Hphmc zKH!xCb}J0J8W=j9(?^~9$HQ;~+=veV`lNabcux{tsKbPbJo=QM+Y(T0hs3@e^7M+e)MzM+_No8>=BMfdR7^CYlVZ*Ti_SdNnut|=!l^Ei{yMqQ zzl&{$q>Y4J7rI@mcnHefF%2%ym}fNLQJMCUP{k*n8V2wBLmfvOk-6(IBD6D9Vuj@k z(29)DC+)J{>w0i+>unYITe9B3ZBS;VLG$F@*LzAAJI`}M{WSfEf z6tR9vO^1TE%_=z1jun)pkqQbI*X2|9-x#cLD{wz%WmGK=OZ2q;H5Gun zR2@tWK&Mg`I?&H*b=>BwExRN1GVj)L77cv^LKO*b83T_?dD{i@f=kcKwy7_^|#ItXB4Y=Zqi zXr6aqTQX+}hz0Jhus9YD#_;n`HTT+*EM`|-a=0219+cL&u^7zT$S4Tv1*iV|rg=88 zsp%ux6($^463VbBoj1-nNz3uVQ(fi{&h*?=m9s~U)lFh|mDLtxRv|=Dfr`@Y`=V1s z_Zhp7q3ou70yppvlL9G_N`P8?@qUlElVs9z_?bM1O7GoXvfrk>Pa;8Y%~RV;x!CFF!0N2mHIx zFdX5VX%NOZ@2@zlrd@=pGMpElS#B#$yz*4@sGDr@pqLw9;(hPwQ6y~FbGWGnqJ$+4 z2uB2F3A=gKssA$m?PWT1*6|$&M`O7|SYCy%HTZ{i+tI$b<)+gzhRV_3-D2bKM3;;R zwkKE>S7jE!B5>)w`qY(k8?X6BWww2Qc67s0v^?_IP;R;YDRlXVF767qVuTY|J%}aY zD2K;uPK}k4(sDP>y7NYGn3vY@EpFTXJW72ea0ek%Mn5KvQtR)Woy3|-Zk?2#V|QuJ zo7bM&D62E{)VgL(*D4ohL#D7(xUW}`I|UDuRTCpXSx_q_PiXper*1!~Y28xq?Pzu3 z9E6{e8gL1l(B$h6=2-63nb$)Sv<;uA$mY1$+W45Al&}+#>040v{?Ota- zZIasvR@`YyZ$0(zdQM5DwdLiq2=KFORGeY&`Ad%W1V#z5HrOF44Su}`mfgo6S@21yyMh= z=r;7ZjaWAgs~j+v2O4S}JXkH7celXDQ0=sO-fVe9yya!@F59 z^6&UCPyzst5f(@=HI`#Ts~w%KbzF8LVeS}k1_h0vZIU#e51hJUy=_I@vOQB)uUyJ2LTs@e@OPbJ z>&%$Bwbj}_hBHEEpWBNLbj$i3D&Q|kDVewQh=%gtisplzX|_E+_Rf1Gza=<1@H8=D zgTeBLKl`E1QQk+>V@uB*m^2Cj(zbnFI%qz8(1ttmCU9>JPubfPVl z?zr;~2Y>Y6tzcizm1|eaBJ9P>@S8#V>rGGM(s7%sd$~@J)W_`f?z4_G*7{Y&DFZI7 zR?68A!}_DA{^b<)VK=W-z$>W&Yw#LQp;6dpA3Fe&gpVOY5eldc=tqicZjb#$Rc5=X zjC(gw9^S;ljf`;SH8##CPEoAOFx~Fn@&HUwzJMRVS4)e*)}jcJ{$w}eRxA0rxwFgj zSK~4w{tdnY2D)l5?SAHLZLtg$R!fcn31R_umDe#+IP0gTwZzr1sUdzmR7E)kpv9o` zIJi|u5Zb3t{mqn?{N>?_+b{3f9M>?x9Cn6M(4%b@?NiM?MyR5p0^Vr1)5XJOvKnVc0ssN$kCL~(_&z)+c ztv2~E%5Bv9;xQ&UfH*P9Tmu>L&F4?G@z)*3m(MNk+DLCWxndb4FR*c9ms$P`r!J=t zt+%en?H9}KYwvcw2lfFP&UnXIl>l_VxL@od8Lmx+HuTC1oRdNGrTsRgC|S251B70y z6lm5j@3*Pg=3oYsgd1DIF&s2sIdwZ~%58eJm+#`$?u@&70AvX;N`@__BF@NH_pb#_ zDDd`yx+$tqLyx+@w*STe$mf#jNxC*tQ`YydPqk$<^Ho$^fIAd}1sXKpm~Q`Qo*V~A zkl|svOo_c)d*g5d3C7d_d`}Cvkn92skX`|PYjRh&Tv}S#r^eBR#VS?Ftk_6^*0)a` zYS#AA&WaaNM2{{Rwg7#q@3dHp@w?57xW@hU#lR4NT><^exQz6C{kx}{`?m$wB;P2o zw!O=}hI&nU@wf2|Z%de5S0;Vu`D}S3zmw!XsaDWV6@&~+N%=q|*7r^|FCWb_e(=SZ zH)@ALZ!1%^w}Dq5z$t=oiLM08F!1l6YF^e2TpZHC`<2()+qf+g6^KPDl-SMFyT~6L z`hu@XargsI48VDD(OW?{0xaGicBUoYI_j&5hS4Q=n@+WbN;%PYRU_HH}BvTC9Fm*?B~Nd;Xc zvb0c?GCLaPPfq>aUKqoG^#m*zfNuMu%z6brJx3ZpFA%=7nzBttpnwwi*TcIr8d2Z!OAhmNF ze@8HkfOjiBG(|C~U7bI)JCqvqXT#!rx{5v#kL3zF=JW>w#@L#TN829~zS!C_bh9Ok z8b9#%^(PRKs=+S7T_xw`k1g>qq0J7#S1fya$Zd_Isr~8HznR-hT3X2g?!nT+-V-cP zVY|DWzT;>M%I(53p^Xiq?oQZ;WABMLMV)8xleGj#kwbSqJyv7U+MVC(Y|Io`>E=v{ zw!=?%26LE7BBZ z&?1;7tgI&)$8{1Y05^MAJcU-@^Yp&16nGyR`xb)$>8Ap&lzZ*3Ay5-&2ly}Z$>63N zH1|HePaUQcOO+@3G|4k60)C(UHf1=aWKfZ3An=B!ci;Us6)7u7p{NRNf~LHX_uF?< z3W^?Ju<(h}-ht`3|LOgQb5RQE1UgId=-Xrv4>)~j6p#l`Mq#2J%g7y7%6Q;uy{-;M zw3`eokY1guVSb@S0l9ESWN329O)&zi^`O(uy~opyGd7VG*oY};0qWV=4cHsoFNd?M zUFq0~j}O-^GwI;V<6dN;SWVGn4?f)miH{6M?yT2V&Ml(lvrF?UR6P3*?a!UU9RC*> zb-8wS_IC8st=GbGr|d=^2#t(KVK_P_%U#9FQ8k%|bcb%smC^nZcibAKR-IpI$xPsi>NVRoL_@B-))3$iOeGv=ghFlE=4-0HhA zcyOf4^;o7j>~B3n@G@cocKBng@1}=M*3uuFD-I?`}XGz>)Wg?UbEb#3U@?)5Y2}h1)SrcdE{QiZLYwi zmDUER0jC-ckLq{MBcTlyeF9w1feI=-`t%`jW8NzSW&o0U5Z*u$s;`U^qd)od-}G&U z%ZynqtuWJ^o4_(i{!sNrBxLDnsaN53-gOt%`F7V=CVfgx`jSb-urzcUoJPs%2t$N1kFoIo^7F@lOvfRwhQW(nu zF6}lw#9s0w1n{r{*a_E`8%8;+o_RX$;Qw*nbp=ISmpHq;{mpIgYemr^Q$4t9a-sd@ zaD0G4VnLpD`q;1=)3vP5;xcLjys@KYHt-?IpnxUu?95VV&<#EGBK<4v$`gT*s;xiw^y%>dnr_lV5(A!;0WAcy2~IlL zk3sXi_7jr;zSz8O?>l>Grw(9-5F`QRg58p?Ea|FNwObH!0AAo6QQ}}?#GilK3>#^6 znOa%|UU7T;z!|>q0+xTVg+xHb%K!+P8~6f=vfjR6R445mEZUnaR2ED|a$eF?L@K56 z!qdlx!?I_WmuQpe5aIgM%K3<2JNOb->Pmdpi%#EmryV4RJLqf|(tkz4Oy-lhLl?8Z zwmAI$aMqLHV9Md1t3qb&i%+xBH8Gu~sBX0ot{8rd6q2G?fC|*k3xdU7a=PVS%v?V! z^YT5QGdX~`1MRCLuvSLTNMCyTK#+;&#bPJncK6uT8n)`oPXGP(9q)IrbEY0VRg|w% z0|x~Z~v;(|8|EN>ehYW;&w|{hqzE$FJicTD(os1Dh?EA{Y=$TUVXZ) zL*hoa&w4|fj>t$$dx`{s?!b`&1(R_1n+)&!HLWE{L+(rwfsa)K2(Y;>G`Bs*b5|}c z(FtJ%cU8c@sX0hXx65l!|MT{fEiIjCUU&Nci4T|;I?3ksr~hBwZ->#2%^TMLV0ril zZ#@0KjtC6HMVmLB{$JWAyYC1qc78E8Z{8T@=BE~{{de8AY(oWy!xX^Yz~#eW6I8wo zis3D%DIVRkx&2x3d>&2JXTNmq5&8i?hA;^fl+X{~_j;wZm41YL+}`L2)o|JKes> zk^Q^I#c`0?YYC*(xeC=7GN{`@^Y+vKc>aelTmTzYVib@L<1`70i|rlPE$An!WmNi0 z+iZ+1P*d-`&Ja(-YZ3GSP|L`HS`V6co&KLT4@vXx)Bii&)M9S3gWQv4axg()MDPq) znUh!gp7uObcPp!5dA-y3wno%;1Jt#T6Xw=PFHvG@Si?obaWjhI``*_grQ45gpyOk^F(I=pgxm6g* zu!M4HkGTPK#-#+Q1M8R4X?>v8|J$3;Wz z2T!XBO{kS&n*E4NRb;0tCu{(U_(QGvwws(u^W-X!!2%~H0a`N7aY{`xXg)ky^6a`K zfKgn*OaK6u%8_dM$mxGQX}Tg|(U<2o8t_GHc#I6jfX$IIqkXi+A$Ds(Z}eQKwxLlG z|A8;WE&Z|6c7mWib0(ZU+XeAcq1`IEuZ0UvRrNmJUhun#`jxUex6!W#>FKF%8W2)x zvC5xlp}gIM1>2Brk=BiwBu z9`qH0%(B>%sN%dPydzHaN90xFY7=H z59pg>qnF#PAJ{2X6d0zK0U5!ve|4HTS;rOr*h;IA>3h{IiguAxN|Uecq9@kH^_5Et znMAF$#eqaZ6EGMl-~HEj(M{{3a<#Rnv9*=WRNfDONhHB9`rgCdR;=26ap?sOM0YK!? zjsU?VJSaRTaXq&F=l4(VDU*Uu*flPY#mTCpXWu_KEQ$aKmx3k%Cu=>E3QPUN7LFOd zAnj0Z)1h4I?Ai)(W-zCKW)mf-MY083;YWu{N(T$UI)Vo90-@5LiETN`Dv>VN1x(yH++FQ;_s6#rBt!nscfQ^jzjPK?DRi} zb$>i@jG5w?ucZoJf60>xN6;v*X_iUp)Vg{Um4^k1}S<*;);jNt-vwW1@L*J`nS z$lhkb24=R{UF0F~B6Z;Stcj{${qpq8MkC~p7+B|L+ML-MPJaL?;qh~Hw4lH0!L)G6 zb#VqRd#1`SP*J~bZIzui+fGql43{iZlC?$BBg1n2ru7BJK+<}T#dEMaxUVgo zkwW|F4=wf8sXgFlt^zElO=)hmNEohJ_SL9(N;y~=E zH%Frw1I0O%^#xxm$pBT#B%NQPHtNOM70rjgtSQ(%4P!<{HN2Ww$ri3RqzYLx*NOrCAsY`7nkLB9gumx|Fdr+dtb z4GB`jX4qegb`JXyfRaIeGb1FfUwX@P&)HtQIXF@HO$Db6phO~S>t37Fq&2d2VO3-- zB)Z0(f5kbIm%|lQN2*&Z&PeHTX)VjF!uGRmIrn?d{;NqV%^8X3`71hbB(!Udf#dd| zy1j$uKC`#!GYaUpcKtdGzO1yFjID}-O8rCugqT>a`_A5~S7Tz>*m|)N>7bW$n`4iF zd>HBXoBjXoxCcb{O}g*jmfBeVGTy_tVLB?}zarI!y#MTNCyqv6u{^)B1{h#`W^+qt zThP$MM>HPyIu?r43z`Q^S*l@sW^{7H#;Ejzf;9zK2ko9vj`vcL9>6gn{xoHL)Xi-IKE^I@|iZx2Sukmay=MWG}H_^FL7&)4pOcB>!+i6Anf#A@guJ$&{* zZC$HL>(sV4wn{6*r$HN`7_Ojkt!yfxQYL{%%L4U^rJ@< z-sl?-&Rf~b+T_-{(t|464-p?nk~g2)>g>qF&5<70cO&sO z`4*iuw~!)0NBIcR$ayu?t~gE`=6ig}3V^P&2_5 z6Hx%+eERI|rXLxx?)@w-E#kVlGJvz0Z!;xiVVLI%SPd>HO*iW^X8-l{22IxU=;a#&z#-)p%!Ot1DCIzT__u8SOV<=nFMD_!0FVuF`l)X4j2(1>0YTeIbyc- zSS#b}J$rKZx1l|)>804Y*3slJk0D1CiKUPKoLRS{xa($LRySoSQ4p--R3d0!>iW5x zcJ(e#)HVkWLFPDaWmzQFj;eUKSHR}A2ZuVW3g7-jxxMg#=FiYpXk!C5?W?RkW7Y-l zQ#OGLd(ZycovmZ;DNR@%{Q zC`N+`nAZ!(S9D}JZPqgQ#N~?RHrJY$St-sf5ErU(i39wi5wm?GUCp+1EI^;Z?g3I! zHU^xD7tc;haud15?GB`01!WZlHN9l^P~aVAVd<6N3J@5rDfafIvxkI_2?hfbJcGBs zYDfOT%VrM+>yl1uhmY?-syfc0175zXe>IGPV!HS&r4#|`h`5SZ%+m8pZTGCjx7-gL zGzukKw^TziQ@XuZj`$suw$Ct`Jcx-pe{D;aRbo@9X~N$}xvY&#iT zM@nU3H4HXc=*8lzH}CiHMz#bGQ#voocFQaF0&dLLOpzOArhqL|EldL;fH+Xh(`(1o z*~s*DrnLhibqyS)D_e$|s&`mi4bDnf`Q(VcZkqTSh|_g(Mwz;bb)G5ZGldhpe)qH6 ziEq>!u|X!F46yxy*jb9Ze8a5WMV5E6tE9?XJ5Ct~$_p?1{nk7NCs<@F;MPiEQ#WcM5quh^Mz%OSwxyQG{Gg z;2DE@%j~~fpN?IFt<}~(82+NGa|(|zoV~J~DZ>;NO(HfPL3Y#v@bN@ zx_Lpax8~0Rja#J?lTqF(tue2WV~xuj)F>V2uH5?4ZN6C2&>q$9QH0S3{$bM-aR{# zawkoA#o2r7Qdob+oe84KC<^X<&urMyx#xRx?%inkkBr{8Vb36H6&2@r?}(*_3FsCZ z_cZ+5wkSDkmtmu%5lC<^zWV&~)iN)}am1TGEiO3i2URoWlp(%{V>}xyN~o zVL%l6!3)+T>I${*s7q&;mN{x&~2ia509IC>x*Ua>tX3A z%jxN20_*9cwZs8@Wc(9$M()s>>WAypvBk}Rab>{Wo6$)i=j@}i|9OWV_VxkC`$#g| zL}?APhoznH0YA2>D#pMio0^SZj#itHM>yCX5%9h~3HFCmj z3q1<`^r5JQ@ed+g~e!(ebfCHE)YDi#>EDrGJ_uG`vx>%+&vsEWe`FOst-=>rX{;J`t z=IUW7qp2^>?)%w$1O*Tr_&_BA`wW^d?YAlH5)TI4gSpCzB}#lZ+mom)IB34o?nyI>6b`xKopP-A?8Vq%g3`qa4k{dr`_>e3SqC9Rbk& zlmB`60IKBE@!U=R2MV-K{~tc9)hxT&OyIZ!=xyoEaGCSd%$^qJ`2Pi@nH9ydPdfnd C-f$ZL literal 0 HcmV?d00001 diff --git a/src/core/PerspectivismCore.ts b/src/core/PerspectivismCore.ts index b51612cb2..154979749 100644 --- a/src/core/PerspectivismCore.ts +++ b/src/core/PerspectivismCore.ts @@ -23,7 +23,7 @@ import RuntimeService from './RuntimeService' import { PERSPECT3VIMS_AGENT_INFO } from './perspect3vismAgentInfo' export interface InitServicesParams { - agentDid: string, + agentService: AgentService, hcPortAdmin?: number, hcPortApp?: number, ipfsSwarmPort?: number, @@ -124,7 +124,7 @@ export default class PerspectivismCore { useProxy: params.hcUseProxy, useLocalProxy: params.hcUseLocalProxy, useMdns: params.hcUseMdns, - }, params.agentDid, this.entanglementProofController) + }, params.agentService, this.entanglementProofController) let [ipfs, _] = await Promise.all([IPFS.init( params.ipfsSwarmPort, params.ipfsRepoPath diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index 764f48230..bff1c5040 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -9,6 +9,8 @@ import type { Dna } from '@perspect3vism/ad4m' import type { ChildProcess } from 'child_process' import { RequestAgentInfoResponse } from '@holochain/conductor-api' import EntanglementProofController from '../../EntanglementProof' +import AgentService from '../../agent/AgentService' +import { CellId } from '@holochain/conductor-api' export const fakeCapSecret = (): CapSecret => Buffer.from(Array(64).fill('aa').join(''), 'hex') @@ -41,11 +43,12 @@ export default class HolochainService { #conductorPath: string #didResolveError: boolean #conductorConfigPath: string - signalCallbacks: Map; - #agentDid: string + signalCallbacks: Map; + #agentService: AgentService #entanglementProofController?: EntanglementProofController + #signingService?: CellId - constructor(config: HolochainConfiguration, agentDid: string, entanglementProofController?: EntanglementProofController) { + constructor(config: HolochainConfiguration, agentService: AgentService, entanglementProofController?: EntanglementProofController) { let { conductorPath, dataPath, @@ -59,7 +62,7 @@ export default class HolochainService { } = config; this.#didResolveError = false; - this.#agentDid = agentDid; + this.#agentService = agentService; this.#entanglementProofController = entanglementProofController; console.log("HolochainService: Creating low-db instance for holochain-serivce"); @@ -101,8 +104,11 @@ export default class HolochainService { // console.log(new Date().toISOString(), "GOT CALLBACK FROM HC, checking against language callbacks"); if (this.signalCallbacks.size != 0) { let callbacks = this.signalCallbacks.get(signal.data.cellId[1].toString("base64")) - if (callbacks && callbacks![0] != undefined) { - callbacks![0](signal); + if (callbacks && callbacks! != undefined) { + //TODO: test that these multiple callbacks work correctly + for (const callback of callbacks) { + callback[0](signal) + } }; }; } @@ -128,6 +134,30 @@ export default class HolochainService { this.#appWebsocket = await AppWebsocket.connect(`ws://localhost:${this.#appPort}`, 100000, this.handleCallback.bind(this)) console.debug("HolochainService: Holochain app interface connected on port", this.#appPort) }; + + //Install signing service DNA + const activeApps = await this.#adminWebsocket!.listActiveApps(); + if (!activeApps.includes("signing_service")) { + const pubKey = await this.pubKeyForLanguage("main"); + + const hash = await this.#adminWebsocket!.registerDna({ + //Pretty sure this is not gonna work in production + path: path.join(__dirname, "../../../../public/signing.dna") + }) + + const installedApp = await this.#adminWebsocket!.installApp({ + installed_app_id: "signing_service", agent_key: pubKey, dnas: [{hash: hash, nick: "crypto"}] + }) + this.#signingService = installedApp.cell_data[0].cell_id; + + try { + await this.#adminWebsocket!.activateApp({installed_app_id: "signing_service"}) + } catch(e) { + console.error("HolochainService: ERROR activating app signing_service", " - ", e) + } + + } + resolveReady!() this.#didResolveError = false; } catch(e) { @@ -137,6 +167,22 @@ export default class HolochainService { } } + async callSigningService(data: string): Promise { + if (!this.#signingService) { + throw new Error("Signing service DNA is not init'd yet!") + } + const pubKey = await this.pubKeyForLanguage("main"); + const result = await this.#appWebsocket!.callZome({ + cap: null, + cell_id: this.#signingService!, + zome_name: "crypto", + fn_name: "sign", + payload: data, + provenance: pubKey + }) + return result + } + async stop() { await this.#ready console.log("HolochainService.stop(): Stopping holochain and lair processes"); @@ -187,11 +233,7 @@ export default class HolochainService { if (this.#didResolveError) { console.error("HolochainService.ensureInstallDNAforLanguage: Warning attempting to install holochain DNA when conductor did not start error free...") } - const pubKey = await this.pubKeyForLanguage(lang); - if (callback != undefined) { - console.log("HolochainService: setting holochains signal callback for language", lang); - this.signalCallbacks.set(pubKey.toString("base64"), [callback, lang]); - }; + const pubKey = await this.pubKeyForLanguage("main"); const activeApps = await this.#adminWebsocket!.listActiveApps(); //console.log("HolochainService: Found running apps:", activeApps); if(!activeApps.includes(lang)) { @@ -212,10 +254,28 @@ export default class HolochainService { const hash = await this.#adminWebsocket!.registerDna({ path: p }) - //TODO: call below is broken since its not implemented on the conductor yet - const signedDid = await this.#appWebsocket!.client.request({type: "crypto", data: {type: "sign", data: this.#agentDid}}); - //@ts-ignore + if (callback != undefined) { + console.log("HolochainService: setting holochains signal callback for language", lang); + const hashHex = hash.toString("hex"); + let callbacks = this.signalCallbacks.get(hashHex); + let newCallbacks = []; + if (callbacks) { + callbacks.push([callback, lang]); + newCallbacks = callbacks; + } else { + newCallbacks = [[callback, lang]] as [AppSignalCb, string][] + } + this.signalCallbacks.set(hashHex, newCallbacks); + }; + const did = this.#agentService.did; + if(!did) { + throw new Error("Agent has not been created yet and thus cannot sign a did for holochain") + } + console.log("using signed did", did); + const signedDid = await this.callSigningService(did); + console.log("passing signed did", signedDid); const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(pubKey.toString(), signedDid); + console.warn("got did entanglement", didHolochainEntanglement); //The membrane proof passing here is untested and thus most likely broken await this.#adminWebsocket!.installApp({ installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick, membrane_proof: Buffer.from(JSON.stringify({"ad4mDidEntanglement": didHolochainEntanglement}))}] @@ -293,7 +353,7 @@ export default class HolochainService { try { console.debug("\x1b[31m", new Date().toISOString(), "HolochainService calling zome function:", dnaNick, zomeName, fnName, payload, "\nFor language with address", lang, "\x1b[0m") const result = await this.#appWebsocket!.callZome({ - cap: fakeCapSecret(), + cap: null, cell_id, zome_name: zomeName, fn_name: fnName, diff --git a/src/main.ts b/src/main.ts index 31abba430..94e41af63 100644 --- a/src/main.ts +++ b/src/main.ts @@ -96,7 +96,7 @@ export async function init(config: OuterConfig): Promise { bootstrapFixtures, }); console.log("\x1b[34m", "Init services...", "\x1b[0m"); - await core.initServices({ hcPortAdmin, hcPortApp, ipfsSwarmPort, ipfsRepoPath, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, agentDid: core.agentService.did! }); + await core.initServices({ hcPortAdmin, hcPortApp, ipfsSwarmPort, ipfsRepoPath, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, agentService: core.agentService }); console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); await core.startGraphQLServer(gqlPort, mocks) core.startDAppServer(dAppPort); diff --git a/src/tests/linkLanguage.test.ts b/src/tests/linkLanguage.test.ts index 6d9fbe444..f236676ea 100644 --- a/src/tests/linkLanguage.test.ts +++ b/src/tests/linkLanguage.test.ts @@ -42,7 +42,7 @@ describe(LANG_TO_TEST, () => { }) await core.initServices({ - agentDid: core.agentService.did!, + agentService: core.agentService, hcPortAdmin: 22000, hcPortApp: 21337, ipfsSwarmPort: 24002, From 00081e0350b786e4edb2d62d89e6763070f32fcf Mon Sep 17 00:00:00 2001 From: jdeepee Date: Sat, 2 Oct 2021 16:36:19 +0100 Subject: [PATCH 019/722] if signing service is already installed then search for cell data to populate holochain service --- .../Holochain/HolochainService.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index bff1c5040..bafbf552a 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -155,7 +155,15 @@ export default class HolochainService { } catch(e) { console.error("HolochainService: ERROR activating app signing_service", " - ", e) } - + } else { + const { cell_data } = await this.#appWebsocket!.appInfo({installed_app_id: "signing_service"}) + console.warn(cell_data); + const cell = cell_data.find(c => c.cell_nick === "crypto") + if(!cell) { + const e = new Error(`No DNA with nick signing_service found for language signing service DNA`) + throw e + } + this.#signingService = cell.cell_id; } resolveReady!() @@ -180,7 +188,7 @@ export default class HolochainService { payload: data, provenance: pubKey }) - return result + return result.toString("hex") } async stop() { @@ -271,11 +279,8 @@ export default class HolochainService { if(!did) { throw new Error("Agent has not been created yet and thus cannot sign a did for holochain") } - console.log("using signed did", did); const signedDid = await this.callSigningService(did); - console.log("passing signed did", signedDid); - const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(pubKey.toString(), signedDid); - console.warn("got did entanglement", didHolochainEntanglement); + const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(pubKey.toString("hex"), signedDid); //The membrane proof passing here is untested and thus most likely broken await this.#adminWebsocket!.installApp({ installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick, membrane_proof: Buffer.from(JSON.stringify({"ad4mDidEntanglement": didHolochainEntanglement}))}] From 70513c8c94aa6886de1167cac5578e4df405bb17 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Sun, 3 Oct 2021 17:29:43 +0100 Subject: [PATCH 020/722] add option to turn on/off running of dapp server --- src/main.ts | 6 ++++-- src/tests/integration.test.ts | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main.ts b/src/main.ts index 94e41af63..d694f66d3 100644 --- a/src/main.ts +++ b/src/main.ts @@ -15,6 +15,7 @@ interface OuterConfig { appBuiltInLangs: string[] | null, appLangAliases: object | null, mocks: boolean, + runDappServer: boolean, dAppPort?: number, gqlPort?: number, hcPortAdmin?: number, @@ -32,7 +33,8 @@ export async function init(config: OuterConfig): Promise { let { resourcePath, appDataPath, appDefaultLangPath, ad4mBootstrapLanguages, ad4mBootstrapFixtures, appBuiltInLangs, appLangAliases, - mocks, + mocks, + runDappServer, dAppPort, gqlPort, hcPortAdmin, hcPortApp, ipfsSwarmPort, ipfsRepoPath, @@ -99,7 +101,7 @@ export async function init(config: OuterConfig): Promise { await core.initServices({ hcPortAdmin, hcPortApp, ipfsSwarmPort, ipfsRepoPath, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, agentService: core.agentService }); console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); await core.startGraphQLServer(gqlPort, mocks) - core.startDAppServer(dAppPort); + if (runDappServer) { core.startDAppServer(dAppPort) }; console.log("\x1b[32m", "AD4M init complete", "\x1b[0m"); return core diff --git a/src/tests/integration.test.ts b/src/tests/integration.test.ts index 28aefe202..9dd57b03d 100644 --- a/src/tests/integration.test.ts +++ b/src/tests/integration.test.ts @@ -128,7 +128,8 @@ describe("Integration tests", () => { hcUseBootstrap: false, hcUseProxy: false, hcUseLocalProxy: false, - hcUseMdns: true + hcUseMdns: true, + runDappServer: false }) core.initControllers() @@ -190,7 +191,8 @@ describe("Integration tests", () => { hcUseBootstrap: false, hcUseProxy: false, hcUseLocalProxy: false, - hcUseMdns: true + hcUseMdns: true, + runDappServer: false }) bob.initControllers() From 47d18fdb08f86bfaa5246bb0c9ddb98f6a29972a Mon Sep 17 00:00:00 2001 From: jdeepee Date: Sun, 3 Oct 2021 17:30:33 +0100 Subject: [PATCH 021/722] allow dna to be installed if DNA not init'd + register callbacks even if DNA already installed --- .../Holochain/HolochainService.ts | 58 ++++++++++++++----- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index bafbf552a..29cf7c6e2 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -1,4 +1,4 @@ -import { AdminWebsocket, AgentPubKey, AppSignalCb, AppWebsocket, CapSecret, AppSignal } from '@holochain/conductor-api' +import { AdminWebsocket, AgentPubKey, AppSignalCb, AppWebsocket, CapSecret, AppSignal, AppStatusFilter } from '@holochain/conductor-api' import low from 'lowdb' import FileSync from 'lowdb/adapters/FileSync' import path from 'path' @@ -43,7 +43,7 @@ export default class HolochainService { #conductorPath: string #didResolveError: boolean #conductorConfigPath: string - signalCallbacks: Map; + signalCallbacks: Map; #agentService: AgentService #entanglementProofController?: EntanglementProofController #signingService?: CellId @@ -103,11 +103,11 @@ export default class HolochainService { handleCallback(signal: AppSignal) { // console.log(new Date().toISOString(), "GOT CALLBACK FROM HC, checking against language callbacks"); if (this.signalCallbacks.size != 0) { - let callbacks = this.signalCallbacks.get(signal.data.cellId[1].toString("base64")) + let callbacks = this.signalCallbacks.get(signal.data.cellId[0].toString("hex")) if (callbacks && callbacks! != undefined) { //TODO: test that these multiple callbacks work correctly for (const callback of callbacks) { - callback[0](signal) + callback(signal) } }; }; @@ -157,7 +157,6 @@ export default class HolochainService { } } else { const { cell_data } = await this.#appWebsocket!.appInfo({installed_app_id: "signing_service"}) - console.warn(cell_data); const cell = cell_data.find(c => c.cell_nick === "crypto") if(!cell) { const e = new Error(`No DNA with nick signing_service found for language signing service DNA`) @@ -242,9 +241,9 @@ export default class HolochainService { console.error("HolochainService.ensureInstallDNAforLanguage: Warning attempting to install holochain DNA when conductor did not start error free...") } const pubKey = await this.pubKeyForLanguage("main"); - const activeApps = await this.#adminWebsocket!.listActiveApps(); - //console.log("HolochainService: Found running apps:", activeApps); - if(!activeApps.includes(lang)) { + const activeApps = await this.#adminWebsocket!.listApps({status_filter: AppStatusFilter.Enabled}); + // console.log("HolochainService: Found running apps:", activeApps); + if(!activeApps.map(value => value.installed_app_id).includes(lang)) { let installed // 1. install app @@ -268,22 +267,25 @@ export default class HolochainService { let callbacks = this.signalCallbacks.get(hashHex); let newCallbacks = []; if (callbacks) { - callbacks.push([callback, lang]); + callbacks.push(callback); newCallbacks = callbacks; } else { - newCallbacks = [[callback, lang]] as [AppSignalCb, string][] + newCallbacks = [callback] as AppSignalCb[] } this.signalCallbacks.set(hashHex, newCallbacks); }; const did = this.#agentService.did; - if(!did) { - throw new Error("Agent has not been created yet and thus cannot sign a did for holochain") + //Did should only ever be undefined when the system DNA's get init'd before agent create occurs + //These system DNA's do not currently need EP proof's + let membraneProof; + if(did) { + const signedDid = await this.callSigningService(did); + const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(pubKey.toString("hex"), signedDid); + membraneProof = Buffer.from(JSON.stringify({"ad4mDidEntanglement": didHolochainEntanglement})); } - const signedDid = await this.callSigningService(did); - const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(pubKey.toString("hex"), signedDid); //The membrane proof passing here is untested and thus most likely broken await this.#adminWebsocket!.installApp({ - installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick, membrane_proof: Buffer.from(JSON.stringify({"ad4mDidEntanglement": didHolochainEntanglement}))}] + installed_app_id: lang, agent_key: pubKey, dnas: [{hash: hash, nick: dna.nick, membrane_proof: membraneProof}] }) } installed = true @@ -305,6 +307,32 @@ export default class HolochainService { } catch(e) { console.error("HolochainService: ERROR activating app", lang, " - ", e) } + } else { + for (let dna of dnas) { + if (callback != undefined) { + console.log("HolochainService: setting holochains signal callback for language", lang); + let infoResult = await this.#appWebsocket!.appInfo({installed_app_id: lang}) + const { cell_data } = infoResult + const cell = cell_data.find(c => c.cell_nick === dna.nick) + if(!cell) { + const e = new Error(`No DNA with nick '${dna.nick}' found for language ${lang}`) + console.error(e) + return e + } + const hash = cell.cell_id[0]; + + const hashHex = hash.toString("hex"); + let callbacks = this.signalCallbacks.get(hashHex); + let newCallbacks = []; + if (callbacks) { + callbacks.push(callback); + newCallbacks = callbacks; + } else { + newCallbacks = [callback] as AppSignalCb[] + } + this.signalCallbacks.set(hashHex, newCallbacks); + }; + } } } From 7eed2e9892e218f23fe8952431bcab2600054f87 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Sun, 3 Oct 2021 17:37:56 +0100 Subject: [PATCH 022/722] remove swear --- dapp/App.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dapp/App.svelte b/dapp/App.svelte index 1d4218ef2..ac23531ed 100644 --- a/dapp/App.svelte +++ b/dapp/App.svelte @@ -108,7 +108,7 @@ {:else} -

Sign Some Shit

+

Create link

From 8babc375c666c2172f3976b214fbe43cdcd0f73d Mon Sep 17 00:00:00 2001 From: jdeepee Date: Sun, 3 Oct 2021 17:49:50 +0100 Subject: [PATCH 023/722] use main chain id in eth dapp --- dapp/ethereum.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dapp/ethereum.js b/dapp/ethereum.js index 9db7b9dab..9945ace1e 100644 --- a/dapp/ethereum.js +++ b/dapp/ethereum.js @@ -47,7 +47,7 @@ export async function sign(signer, did) { name: "Ad4m DID Authentification", version: "2", //TODO: infer env from process.env and then use correct chainId; ropstein or eth - chainId: 3, + chainId: 1, }; var message = { From 68b33f9ee78aa05cf88cd3bfd00304267d28e328 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Sun, 3 Oct 2021 17:57:18 +0100 Subject: [PATCH 024/722] use new listApps() method when searching for signing_service dna --- src/core/storage-services/Holochain/HolochainService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index 29cf7c6e2..f13993571 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -136,8 +136,8 @@ export default class HolochainService { }; //Install signing service DNA - const activeApps = await this.#adminWebsocket!.listActiveApps(); - if (!activeApps.includes("signing_service")) { + const activeApps = await this.#adminWebsocket!.listApps({status_filter: AppStatusFilter.Enabled}); + if (!activeApps.map(value => value.installed_app_id).includes("signing_service")) { const pubKey = await this.pubKeyForLanguage("main"); const hash = await this.#adminWebsocket!.registerDna({ From 389e33116f35cf585fc2035aaa7463a77d522c6e Mon Sep 17 00:00:00 2001 From: jdeepee Date: Tue, 5 Oct 2021 20:52:35 +0100 Subject: [PATCH 025/722] remove old EP proof var on AgentService --- src/core/agent/AgentService.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/core/agent/AgentService.ts b/src/core/agent/AgentService.ts index 1bdd2a845..798bfa05d 100644 --- a/src/core/agent/AgentService.ts +++ b/src/core/agent/AgentService.ts @@ -18,7 +18,6 @@ export default class AgentService { #wallet?: object #file: string #fileProfile: string - #entanglementProofs: string #agent?: Agent #agentLanguage?: Language #pubsub: PubSub @@ -30,7 +29,6 @@ export default class AgentService { constructor(rootConfigPath: string) { this.#file = path.join(rootConfigPath, "agent.json") this.#fileProfile = path.join(rootConfigPath, "agentProfile.json") - this.#entanglementProofs = path.join(rootConfigPath, "entanglementProofs.json") this.#pubsub = PubSubInstance.get() this.#readyPromise = new Promise(resolve => { this.#readyPromiseResolve = resolve From db9ad3555b84f0885a3f9c8e2b19df6fad112451 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Tue, 5 Oct 2021 20:52:49 +0100 Subject: [PATCH 026/722] rename entanglement proof file variable --- src/core/EntanglementProof.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/core/EntanglementProof.ts b/src/core/EntanglementProof.ts index ff7ec3b55..7fd1fbbfb 100644 --- a/src/core/EntanglementProof.ts +++ b/src/core/EntanglementProof.ts @@ -5,11 +5,11 @@ import AgentService from "./agent/AgentService"; import { EntanglementProof } from '@perspect3vism/ad4m'; export default class EntanglementProofController { - #entanglementProofs: string + #entanglementProofsFile: string #agentService: AgentService constructor(rootConfigPath: string, agentService: AgentService) { - this.#entanglementProofs = path.join(rootConfigPath, "entanglementProofs.json") + this.#entanglementProofsFile = path.join(rootConfigPath, "entanglementProofs.json") this.#agentService = agentService } @@ -23,30 +23,30 @@ export default class EntanglementProofController { addEntanglementProofs(proofs: EntanglementProof[]): void { let entanglementProofs: EntanglementProof[]; - if (fs.existsSync(this.#entanglementProofs)) { - entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); + if (fs.existsSync(this.#entanglementProofsFile)) { + entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofsFile).toString())); entanglementProofs = entanglementProofs.concat(proofs); entanglementProofs = Array.from(new Set(entanglementProofs)); } else { entanglementProofs = proofs } - fs.writeFileSync(this.#entanglementProofs, JSON.stringify(entanglementProofs)) + fs.writeFileSync(this.#entanglementProofsFile, JSON.stringify(entanglementProofs)) } deleteEntanglementProofs(proofs: EntanglementProof[]): void { - if (fs.existsSync(this.#entanglementProofs)) { - let entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); + if (fs.existsSync(this.#entanglementProofsFile)) { + let entanglementProofs = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofsFile).toString())); for (const agent of proofs) { entanglementProofs.splice(entanglementProofs.findIndex((value) => value == agent), 1); } - fs.writeFileSync(this.#entanglementProofs, JSON.stringify(entanglementProofs)) + fs.writeFileSync(this.#entanglementProofsFile, JSON.stringify(entanglementProofs)) } } getEntanglementProofs(): EntanglementProof[] { - if (fs.existsSync(this.#entanglementProofs)) { - let entanglementProofs: EntanglementProof[] = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofs).toString())); + if (fs.existsSync(this.#entanglementProofsFile)) { + let entanglementProofs: EntanglementProof[] = Array.from(JSON.parse(fs.readFileSync(this.#entanglementProofsFile).toString())); return entanglementProofs } else { return [] From 298d8552c64c5966da0d9d24ef898b29d2904841 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Wed, 6 Oct 2021 15:12:16 +0100 Subject: [PATCH 027/722] integrate deviceKeyType with EP proof --- dapp/App.svelte | 2 +- src/core/EntanglementProof.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dapp/App.svelte b/dapp/App.svelte index ac23531ed..74ff5aca6 100644 --- a/dapp/App.svelte +++ b/dapp/App.svelte @@ -62,7 +62,7 @@ sign(currentAccount, did).then(result => { const { data, signature, r, s, v } = result; //Then sign eth address with did - ad4mClient.agent.entanglementProofPreFlight(ethereum.selectedAddress).then(result => { + ad4mClient.agent.entanglementProofPreFlight(ethereum.selectedAddress, "ethereum").then(result => { //Add the signed did to the proof result.didSignedByDeviceKey = signature; delete result["__typename"]; diff --git a/src/core/EntanglementProof.ts b/src/core/EntanglementProof.ts index 7fd1fbbfb..4f8766997 100644 --- a/src/core/EntanglementProof.ts +++ b/src/core/EntanglementProof.ts @@ -13,12 +13,12 @@ export default class EntanglementProofController { this.#agentService = agentService } - signDeviceKey(deviceKey: string): EntanglementProof { - return new EntanglementProof(this.#agentService.did!, deviceKey, this.#agentService.signString(deviceKey)) + signDeviceKey(deviceKey: string, deviceKeyType: string): EntanglementProof { + return new EntanglementProof(this.#agentService.did!, this.#agentService.signingKeyId!, deviceKeyType, deviceKey, this.#agentService.signString(deviceKey)) } generateHolochainProof(holochainPubKey: string, signedDid: string): EntanglementProof { - return new EntanglementProof(this.#agentService.did!, holochainPubKey, this.#agentService.signString(holochainPubKey), signedDid) + return new EntanglementProof(this.#agentService.did!, this.#agentService.signingKeyId!, "holochain", holochainPubKey, this.#agentService.signString(holochainPubKey), signedDid) } addEntanglementProofs(proofs: EntanglementProof[]): void { From 12285aa83f78c65701484d023abf0067adee4b1a Mon Sep 17 00:00:00 2001 From: jdeepee Date: Wed, 6 Oct 2021 15:12:43 +0100 Subject: [PATCH 028/722] expose method for verify did signatures and check preflight signature in ep test --- src/core/PerspectivismCore.ts | 7 ++++++ src/core/agent/Signatures.ts | 31 ++++++++++++++++++++++++++- src/core/graphQL-interface/GraphQL.ts | 9 ++++++-- src/tests/agent.ts | 6 +++++- 4 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/core/PerspectivismCore.ts b/src/core/PerspectivismCore.ts index 154979749..a2eb7974d 100644 --- a/src/core/PerspectivismCore.ts +++ b/src/core/PerspectivismCore.ts @@ -71,6 +71,13 @@ export default class PerspectivismCore { return this.#runtimeService } + get signatureService(): Signatures { + if (!this.#signatures) { + throw Error("No signature service") + } + return this.#signatures + } + get perspectivesController(): PerspectivesController { if (!this.#perspectivesController) { throw Error("No perspectiveController") diff --git a/src/core/agent/Signatures.ts b/src/core/agent/Signatures.ts index acd033048..f7a006e7f 100644 --- a/src/core/agent/Signatures.ts +++ b/src/core/agent/Signatures.ts @@ -13,6 +13,36 @@ export default class Signatures { this.#didResolver = didResolver } + async verifyStringSignedByDid(did: string, didSigningKeyId: string, data: string, signedData: string): Promise { + // @ts-ignore + const { didDocument } = await this.#didResolver.resolve(did) + if(!didDocument) { + console.debug("DID document not found for", did) + return false + } + + const availableKeys = didDocument.publicKey ? didDocument.publicKey : didDocument.verificationMethod + //@ts-ignore + const key = availableKeys.find(k => k.id === didSigningKeyId) + if(!key) { + console.debug("Key not found in DID document", didSigningKeyId, didDocument) + return false + } + + let pubKey: Uint8Array | undefined + if(key.publicKeyHex) + pubKey = Uint8Array.from(Buffer.from(key.publicKeyHex, "hex")) + if(key.publicKeyBase58) + pubKey = Uint8Array.from(bs58.decode(key.publicKeyBase58)) + const sigBytes = Uint8Array.from(Buffer.from(signedData, "hex")) + const message = Signatures.buildMessageRaw(data) + + if (!pubKey) { + throw Error("Could not find publicKeyHex or publicKeyBase58 in did document") + } + return secp256k1.ecdsaVerify(sigBytes, message, pubKey) + } + async verify(expr: Expression): Promise { // @ts-ignore const { didDocument } = await this.#didResolver.resolve(expr.author) @@ -21,7 +51,6 @@ export default class Signatures { return false } - const availableKeys = didDocument.publicKey ? didDocument.publicKey : didDocument.verificationMethod //@ts-ignore const key = availableKeys.find(k => k.id === expr.proof.key) diff --git a/src/core/graphQL-interface/GraphQL.ts b/src/core/graphQL-interface/GraphQL.ts index a3df06417..e217e8d0e 100644 --- a/src/core/graphQL-interface/GraphQL.ts +++ b/src/core/graphQL-interface/GraphQL.ts @@ -147,6 +147,11 @@ function createResolvers(core: PerspectivismCore) { }, runtimeHcAgentInfos: async () => { return JSON.stringify(await core.holochainRequestAgentInfos()) + }, + //@ts-ignore + runtimeVerifyStringSignedByDid: async (parent, args, context, info) => { + const { did, didSigningKeyId, data, signedData } = args; + return await core.signatureService.verifyStringSignedByDid(did, didSigningKeyId, data, signedData) } }, Mutation: { @@ -164,8 +169,8 @@ function createResolvers(core: PerspectivismCore) { }, //@ts-ignore agentEntanglementProofPreFlight: (parent, args, context, info) => { - const { deviceKey } = args; - return core.entanglementProofController.signDeviceKey(deviceKey); + const { deviceKey, deviceKeyType } = args; + return core.entanglementProofController.signDeviceKey(deviceKey, deviceKeyType); }, //@ts-ignore addTrustedAgents: (parent, args, context, info) => { diff --git a/src/tests/agent.ts b/src/tests/agent.ts index 2a8a85a82..4d42a9c8c 100644 --- a/src/tests/agent.ts +++ b/src/tests/agent.ts @@ -85,10 +85,14 @@ export default function agentTests(testContext: TestContext) { const ad4mClient = testContext.ad4mClient!; //Check can generate a preflight key - const preFlight = await ad4mClient.agent.entanglementProofPreFlight("ethAddr"); + const preFlight = await ad4mClient.agent.entanglementProofPreFlight("ethAddr", "ethereum"); expect(preFlight.deviceKey).toBe("ethAddr"); + expect(preFlight.deviceKeyType).toBe("ethereum"); expect(preFlight.didSignedByDeviceKey).toBeNull(); + const verify = await ad4mClient.runtime.verifyStringSignedByDid(preFlight.did, preFlight.didSigningKeyId, "ethAddr", preFlight.deviceKeySignedByDid); + expect(verify).toBe(true); + //Check can save a entanglement proof preFlight.didSignedByDeviceKey = "ethSignedDID"; const addProof = await ad4mClient.agent.addEntanglementProofs([preFlight as EntanglementProofInput]); From 1227407fb1576f07f9b7dae241ae037892baa6df Mon Sep 17 00:00:00 2001 From: jdeepee Date: Wed, 6 Oct 2021 19:55:39 +0100 Subject: [PATCH 029/722] add get method for getting signingKeyId on agentService --- src/core/agent/AgentService.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/core/agent/AgentService.ts b/src/core/agent/AgentService.ts index 798bfa05d..3478a079d 100644 --- a/src/core/agent/AgentService.ts +++ b/src/core/agent/AgentService.ts @@ -47,6 +47,13 @@ export default class AgentService { return this.#readyPromise } + get signingKeyId(): string { + if (!this.#signingKeyId) { + throw new Error("No signing key id on AgentService") + } + return this.#signingKeyId! + } + createSignedExpression(data: any): Expression { if(!this.isInitialized){ throw new Error("Can't sign without keystore") From a024e8bdef99ac7690b3563aa221dcaefbddcd76 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Thu, 7 Oct 2021 13:35:31 +0100 Subject: [PATCH 030/722] use remote ad4m version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8b24debf6..46819f2e6 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ }, "dependencies": { "@holochain/conductor-api": "0.2.0", - "@perspect3vism/ad4m": "file:../ad4m", + "@perspect3vism/ad4m": "0.1.20", "@peculiar/webcrypto": "^1.1.7", "@transmute/did-key-ed25519": "^0.2.1-unstable.29", "@transmute/did-key-secp256k1": "^0.2.1-unstable.29", From 7bf6511238dafe98882e30d2e894025f50a3c1ef Mon Sep 17 00:00:00 2001 From: jdeepee Date: Thu, 7 Oct 2021 16:05:47 +0100 Subject: [PATCH 031/722] load signing service dna from github release --- package-lock.json | 39139 ++-------------- .../Holochain/HolochainService.ts | 14 +- 2 files changed, 4437 insertions(+), 34716 deletions(-) diff --git a/package-lock.json b/package-lock.json index b2a1fb5f4..1f9144d1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,107 +1,22 @@ { "name": "@perspect3vism/ad4m-executor", "version": "0.1.19", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "@perspect3vism/ad4m-executor", - "version": "0.1.19", - "license": "CAL-1.0", - "dependencies": { - "@holochain/conductor-api": "0.2.0", - "@peculiar/webcrypto": "^1.1.7", - "@perspect3vism/ad4m": "0.1.20", - "@rollup/plugin-commonjs": "^17.1.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.2.0", - "@transmute/did-key-ed25519": "^0.2.1-unstable.29", - "@transmute/did-key-secp256k1": "^0.2.1-unstable.29", - "@transmute/did-key.js": "^0.2.1-unstable.29", - "@transmute/did-wallet": "lucksus/did-wallet", - "@types/json-stable-stringify": "^1.0.33", - "apollo-server": "^2.18.2", - "graphql": "^15.3.0", - "ipfs": "^0.54.4", - "js-yaml": "^4.0.0", - "json-stable-stringify": "^1.0.1", - "liquidcore": "^0.7.10", - "lowdb": "^1.0.0", - "node-fetch": "^2.6.1", - "rollup": "^2.41.3", - "rollup-plugin-typescript2": "^0.30.0", - "sha256": "^0.2.0", - "sha3": "^2.1.3" - }, - "devDependencies": { - "@apollo/client": "3.3.20", - "@types/faker": "^5.5.7", - "@types/fs-extra": "^9.0.12", - "@types/jest": "^27.0.0", - "@types/js-yaml": "^4.0.2", - "@types/lowdb": "^1.0.11", - "@types/node": "^14.14.22", - "@types/node-fetch": "^2.5.11", - "@types/secp256k1": "^4.0.3", - "@types/sha256": "^0.2.0", - "@types/uuid": "^8.3.1", - "faker": "^5.1.0", - "fs-extra": "^9.1.0", - "jest": "^27.0.4", - "node-wget-js": "^1.0.1", - "react": "^17.0.1", - "ts-jest": "^27.0.3", - "typescript": "^4.2.4", - "unzipper": "^0.10.11" - } - }, - "../ad4m": { - "name": "@perspect3vism/ad4m", - "version": "0.1.20", - "extraneous": true, - "license": "CAL-1.0", - "dependencies": { - "@apollo/client": "3.3.20", - "@holochain/conductor-api": "0.0.4", - "@types/jest": "^27.0.1", - "@types/mocha": "^8.0.3", - "class-validator": "^0.13.1", - "graphql": "^15.5.0", - "react": "^17.0.2", - "reflect-metadata": "^0.1.13", - "type-graphql": "^1.1.1" - }, - "devDependencies": { - "@apollo/link-error": "^2.0.0-beta.3", - "@rollup/plugin-alias": "^3.1.5", - "@rollup/plugin-commonjs": "^20.0.0", - "@rollup/plugin-node-resolve": "^13.0.4", - "@types/reflect-metadata": "^0.1.0", - "apollo-server": "^2.25.2", - "cross-fetch": "^3.1.4", - "ipfs-core-types": "^0.8.1", - "jest": "^27.0.4", - "rollup": "^2.56.3", - "ts-jest": "^27.0.3", - "typescript": "^4.2.4" - } - }, - "node_modules/@achingbrain/electron-fetch": { + "dependencies": { + "@achingbrain/electron-fetch": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/@achingbrain/electron-fetch/-/electron-fetch-1.7.2.tgz", "integrity": "sha512-ShX5frO+2OddzRIlUb8D0Ao2eC3uZl910CYnRIPGLLM360vQceeOqpivwNdbry41Ph3MMtLR4RpzGdaADGG8Gg==", - "dependencies": { + "requires": { "encoding": "^0.1.13" - }, - "engines": { - "node": ">=6" } }, - "node_modules/@apollo/client": { + "@apollo/client": { "version": "3.3.20", "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", - "dependencies": { + "requires": { "@graphql-typed-document-node/core": "^3.0.0", "@types/zen-observable": "^0.8.0", "@wry/context": "^0.6.0", @@ -116,26 +31,19 @@ "tslib": "^1.10.0", "zen-observable": "^0.8.14" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0", - "react": "^16.8.0 || ^17.0.0", - "subscriptions-transport-ws": "^0.9.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "subscriptions-transport-ws": { - "optional": true + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, - "node_modules/@apollo/protobufjs": { + "@apollo/protobufjs": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz", "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==", - "hasInstallScript": true, - "dependencies": { + "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", "@protobufjs/codegen": "^2.0.4", @@ -150,38 +58,32 @@ "@types/node": "^10.1.0", "long": "^4.0.0" }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } } }, - "node_modules/@apollo/protobufjs/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, - "node_modules/@apollographql/apollo-tools": { + "@apollographql/apollo-tools": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz", - "integrity": "sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==", - "engines": { - "node": ">=8", - "npm": ">=6" - } + "integrity": "sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==" }, - "node_modules/@apollographql/graphql-playground-html": { + "@apollographql/graphql-playground-html": { "version": "1.6.27", "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz", "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==", - "dependencies": { + "requires": { "xss": "^1.0.8" } }, - "node_modules/@apollographql/graphql-upload-8-fork": { + "@apollographql/graphql-upload-8-fork": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", - "dependencies": { + "requires": { "@types/express": "*", "@types/fs-capacitor": "*", "@types/koa": "*", @@ -189,52 +91,40 @@ "fs-capacitor": "^2.0.4", "http-errors": "^1.7.3", "object-path": "^0.11.4" - }, - "engines": { - "node": ">=8.5" - }, - "peerDependencies": { - "graphql": "0.13.1 - 15" } }, - "node_modules/@assemblyscript/loader": { + "@assemblyscript/loader": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" }, - "node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dependencies": { + "@babel/code-frame": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", + "requires": { "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/compat-data": { + "@babel/compat-data": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "engines": { - "node": ">=6.9.0" - } + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, - "node_modules/@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/core": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", + "requires": { + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -242,159 +132,111 @@ "semver": "^6.3.0", "source-map": "^0.5.0" }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "dependencies": { - "@babel/types": "^7.15.4", + "@babel/generator": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", + "requires": { + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, - "node_modules/@babel/helper-annotate-as-pure": { + "@babel/helper-annotate-as-pure": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz", "integrity": "sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==", - "dependencies": { + "requires": { "@babel/helper-explode-assignable-expression": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets": { + "@babel/helper-compilation-targets": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", - "dependencies": { + "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, - "node_modules/@babel/helper-create-class-features-plugin": { + "@babel/helper-create-class-features-plugin": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.15.4", "@babel/helper-function-name": "^7.15.4", "@babel/helper-member-expression-to-functions": "^7.15.4", "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { + "@babel/helper-create-regexp-features-plugin": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.14.5", "regexpu-core": "^4.7.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { + "@babel/helper-define-polyfill-provider": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", - "dependencies": { + "requires": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.13.0", @@ -404,707 +246,490 @@ "resolve": "^1.14.2", "semver": "^6.1.2" }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { + "@babel/helper-explode-assignable-expression": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz", "integrity": "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-function-name": { + "@babel/helper-function-name": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "dependencies": { + "requires": { "@babel/helper-get-function-arity": "^7.15.4", "@babel/template": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-get-function-arity": { + "@babel/helper-get-function-arity": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { + "@babel/helper-hoist-variables": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { + "@babel/helper-member-expression-to-functions": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports": { + "@babel/helper-module-imports": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", - "dependencies": { + "@babel/helper-module-transforms": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" + "@babel/types": "^7.15.6" } }, - "node_modules/@babel/helper-optimise-call-expression": { + "@babel/helper-optimise-call-expression": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-plugin-utils": { + "@babel/helper-plugin-utils": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "engines": { - "node": ">=6.9.0" - } + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" }, - "node_modules/@babel/helper-remap-async-to-generator": { + "@babel/helper-remap-async-to-generator": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz", "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.15.4", "@babel/helper-wrap-function": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-replace-supers": { + "@babel/helper-replace-supers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "dependencies": { + "requires": { "@babel/helper-member-expression-to-functions": "^7.15.4", "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-simple-access": { + "@babel/helper-simple-access": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "@babel/helper-skip-transparent-expression-wrappers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { + "@babel/helper-split-export-declaration": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "dependencies": { + "requires": { "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "engines": { - "node": ">=6.9.0" - } + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, - "node_modules/@babel/helper-validator-option": { + "@babel/helper-validator-option": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "engines": { - "node": ">=6.9.0" - } + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" }, - "node_modules/@babel/helper-wrap-function": { + "@babel/helper-wrap-function": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz", "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==", - "dependencies": { + "requires": { "@babel/helper-function-name": "^7.15.4", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/helpers": { + "@babel/helpers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", - "dependencies": { + "requires": { "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { + "@babel/highlight": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dependencies": { + "requires": { "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "node_modules/@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } + "@babel/parser": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, - "node_modules/@babel/plugin-external-helpers": { + "@babel/plugin-external-helpers": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.14.5.tgz", "integrity": "sha512-q/B/hLX+nDGk73Xn529d7Ar4ih17J8pNBbsXafq8oXij0XfFEA/bks+u+6q5q04zO5o/qivjzui6BqzPfYShEg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { + "@babel/plugin-proposal-class-properties": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", - "dependencies": { + "requires": { "@babel/helper-create-class-features-plugin": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-default-from": { + "@babel/plugin-proposal-export-default-from": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz", "integrity": "sha512-T8KZ5abXvKMjF6JcoXjgac3ElmXf0AWzJwi2O/42Jk+HmCky3D9+i1B7NPP1FblyceqTevKeV/9szeikFoaMDg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-export-default-from": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { + "@babel/plugin-proposal-object-rest-spread": { "version": "7.15.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", - "dependencies": { + "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "@babel/plugin-proposal-optional-catch-binding": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { + "@babel/plugin-proposal-optional-chaining": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { + "@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-bigint": { + "@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { + "@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { + "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-default-from": { + "@babel/plugin-syntax-export-default-from": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.14.5.tgz", "integrity": "sha512-snWDxjuaPEobRBnhpqEfZ8RMxDbHt8+87fiEioGuE+Uc0xAKgSD8QiuL3lF93hPVQfZFAcYwrrf+H5qUhike3Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-flow": { + "@babel/plugin-syntax-flow": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz", "integrity": "sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { + "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { + "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { + "@babel/plugin-syntax-jsx": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { + "@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { + "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { + "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { + "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { + "@babel/plugin-syntax-typescript": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { + "@babel/plugin-transform-arrow-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { + "@babel/plugin-transform-async-to-generator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", - "dependencies": { + "requires": { "@babel/helper-module-imports": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { + "@babel/plugin-transform-block-scoped-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { + "@babel/plugin-transform-block-scoping": { "version": "7.15.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { + "@babel/plugin-transform-classes": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.15.4", "@babel/helper-function-name": "^7.15.4", "@babel/helper-optimise-call-expression": "^7.15.4", @@ -1112,453 +737,278 @@ "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { + "@babel/plugin-transform-computed-properties": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { + "@babel/plugin-transform-destructuring": { "version": "7.14.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { + "@babel/plugin-transform-exponentiation-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", - "dependencies": { + "requires": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-flow-strip-types": { + "@babel/plugin-transform-flow-strip-types": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz", "integrity": "sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-flow": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { + "@babel/plugin-transform-for-of": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { + "@babel/plugin-transform-function-name": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", - "dependencies": { + "requires": { "@babel/helper-function-name": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { + "@babel/plugin-transform-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { + "@babel/plugin-transform-member-expression-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { + "@babel/plugin-transform-modules-commonjs": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", - "dependencies": { + "requires": { "@babel/helper-module-transforms": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-simple-access": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-assign": { + "@babel/plugin-transform-object-assign": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz", "integrity": "sha512-lvhjk4UN9xJJYB1mI5KC0/o1D5EcJXdbhVe+4fSk08D6ZN+iuAIs7LJC+71h8av9Ew4+uRq9452v9R93SFmQlQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { + "@babel/plugin-transform-object-super": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-replace-supers": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { + "@babel/plugin-transform-parameters": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-property-literals": { + "@babel/plugin-transform-property-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-display-name": { + "@babel/plugin-transform-react-display-name": { "version": "7.15.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz", "integrity": "sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx": { + "@babel/plugin-transform-react-jsx": { "version": "7.14.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", - "dependencies": { + "requires": { "@babel/helper-annotate-as-pure": "^7.14.5", "@babel/helper-module-imports": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-jsx": "^7.14.5", "@babel/types": "^7.14.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx-source": { + "@babel/plugin-transform-react-jsx-source": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz", "integrity": "sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-regenerator": { + "@babel/plugin-transform-regenerator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", - "dependencies": { + "requires": { "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", - "dependencies": { - "@babel/helper-module-imports": "^7.14.5", + "@babel/plugin-transform-runtime": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz", + "integrity": "sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw==", + "requires": { + "@babel/helper-module-imports": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "semver": "^6.3.0" }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { + "@babel/plugin-transform-shorthand-properties": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", - "dependencies": { + "@babel/plugin-transform-spread": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", + "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", + "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { + "@babel/plugin-transform-sticky-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-template-literals": { + "@babel/plugin-transform-template-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", - "dependencies": { + "@babel/plugin-transform-typescript": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.8.tgz", + "integrity": "sha512-ZXIkJpbaf6/EsmjeTbiJN/yMxWPFWvlr7sEG1P95Xb4S4IBcrf2n7s/fItIhsAmOf8oSh3VJPDppO6ExfAfKRQ==", + "requires": { "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-typescript": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { + "@babel/plugin-transform-unicode-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", - "dependencies": { + "requires": { "@babel/helper-create-regexp-features-plugin": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register": { + "@babel/register": { "version": "7.15.3", "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz", "integrity": "sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw==", - "dependencies": { + "requires": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", "make-dir": "^2.1.0", "pirates": "^4.0.0", "source-map-support": "^0.5.16" }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/register/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, - "node_modules/@babel/runtime": { + "@babel/runtime": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "dependencies": { + "requires": { "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/template": { + "@babel/template": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "dependencies": { + "requires": { "@babel/code-frame": "^7.14.5", "@babel/parser": "^7.15.4", "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/traverse": { + "@babel/traverse": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dependencies": { + "requires": { "@babel/code-frame": "^7.14.5", "@babel/generator": "^7.15.4", "@babel/helper-function-name": "^7.15.4", @@ -1569,188 +1019,392 @@ "debug": "^4.1.0", "globals": "^11.1.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/types": { + "@babel/types": { "version": "7.15.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "dependencies": { + "requires": { "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@bcoe/v8-coverage": { + "@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "node_modules/@cnakazawa/watch": { + "@beyonk/svelte-notifications": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@beyonk/svelte-notifications/-/svelte-notifications-4.1.1.tgz", + "integrity": "sha512-UMfc5K6pfAkPrtp6OL2/ZbnSBzsQaG6qYBHJVnBdoEXdH+jlL4mx0FZ6wsS90aSz9akZGRyVzsIB0e9zaWLiGw==", + "dev": true + }, + "@cnakazawa/watch": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dependencies": { + "requires": { "exec-sh": "^0.3.2", "minimist": "^1.2.0" + } + }, + "@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + } + }, + "@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "requires": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + } + }, + "@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "requires": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz", + "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz", + "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==", + "requires": { + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0" + } + }, + "@ethersproject/address": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", + "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/rlp": "^5.4.0" + } + }, + "@ethersproject/base64": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", + "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", + "requires": { + "@ethersproject/bytes": "^5.4.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.2.tgz", + "integrity": "sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", + "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/constants": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", + "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", + "requires": { + "@ethersproject/bignumber": "^5.4.0" + } + }, + "@ethersproject/hash": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", + "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", + "requires": { + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, + "@ethersproject/keccak256": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", + "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "js-sha3": "0.5.7" }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } + } + }, + "@ethersproject/logger": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.1.tgz", + "integrity": "sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A==" + }, + "@ethersproject/networks": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz", + "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/properties": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.1.tgz", + "integrity": "sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w==", + "requires": { + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/rlp": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", + "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", + "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/strings": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", + "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/transactions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", + "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", + "requires": { + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/signing-key": "^5.4.0" + } + }, + "@ethersproject/web": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", + "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", + "requires": { + "@ethersproject/base64": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" } }, - "node_modules/@graphql-typed-document-node/core": { + "@graphql-typed-document-node/core": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz", - "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } + "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==" }, - "node_modules/@grpc/grpc-js": { + "@grpc/grpc-js": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.7.tgz", "integrity": "sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA==", - "dependencies": { + "requires": { "@types/node": ">=12.12.47" }, - "engines": { - "node": "^8.13.0 || >=10.10.0" + "dependencies": { + "@types/node": { + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" + } } }, - "node_modules/@hapi/accept": { + "@hapi/accept": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/ammo": { + "@hapi/ammo": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/b64": { + "@hapi/b64": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/boom": { + "@hapi/boom": { "version": "9.1.4", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/bounce": { + "@hapi/bounce": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/bourne": { + "@hapi/bourne": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" }, - "node_modules/@hapi/call": { + "@hapi/call": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/catbox": { + "@hapi/catbox": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", "@hapi/podium": "4.x.x", "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/catbox-memory": { + "@hapi/catbox-memory": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/content": { + "@hapi/content": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x" } }, - "node_modules/@hapi/cryptiles": { + "@hapi/cryptiles": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x" - }, - "engines": { - "node": ">=12.0.0" } }, - "node_modules/@hapi/file": { + "@hapi/file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" }, - "node_modules/@hapi/hapi": { - "version": "20.1.5", - "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.1.5.tgz", - "integrity": "sha512-BhJ5XFR9uWPUBj/z5pPqXSk8OnvQQU/EbQjwpmjZy0ymNEiq7kIhXkAmzXcntbBHta9o7zpW8XMeXnfV4wudXw==", - "dependencies": { + "@hapi/hapi": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.2.0.tgz", + "integrity": "sha512-yPH/z8KvlSLV8lI4EuId9z595fKKk5n6YA7H9UddWYWsBXMcnCyoFmHtYq0PCV4sNgKLD6QW9e27R9V9Z9aqqw==", + "requires": { "@hapi/accept": "^5.0.1", "@hapi/ammo": "^5.0.1", "@hapi/boom": "^9.1.0", @@ -1769,31 +1423,28 @@ "@hapi/teamwork": "^5.1.0", "@hapi/topo": "^5.0.0", "@hapi/validate": "^1.1.1" - }, - "engines": { - "node": ">=12.0.0" } }, - "node_modules/@hapi/heavy": { + "@hapi/heavy": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, - "node_modules/@hapi/inert": { + "@hapi/inert": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/@hapi/inert/-/inert-6.0.4.tgz", "integrity": "sha512-tpmNqtCCAd+5Ts07bJmMaA79+ZUIf0zSWnQMaWtbcO4nGrO/yXB2AzoslfzFX2JEV9vGeF3FfL8mYw0pHl8VGg==", - "dependencies": { + "requires": { "@hapi/ammo": "5.x.x", "@hapi/boom": "9.x.x", "@hapi/bounce": "2.x.x", @@ -1802,11 +1453,11 @@ "lru-cache": "^6.0.0" } }, - "node_modules/@hapi/iron": { + "@hapi/iron": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", - "dependencies": { + "requires": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", @@ -1814,32 +1465,29 @@ "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/mimos": { + "@hapi/mimos": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz", "integrity": "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x", "mime-db": "1.x.x" } }, - "node_modules/@hapi/nigel": { + "@hapi/nigel": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", - "dependencies": { + "requires": { "@hapi/hoek": "^9.0.4", "@hapi/vise": "^4.0.0" - }, - "engines": { - "node": ">=12.0.0" } }, - "node_modules/@hapi/pez": { + "@hapi/pez": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", - "dependencies": { + "requires": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", "@hapi/content": "^5.0.2", @@ -1847,39 +1495,39 @@ "@hapi/nigel": "4.x.x" } }, - "node_modules/@hapi/podium": { + "@hapi/podium": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x", "@hapi/teamwork": "5.x.x", "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/shot": { + "@hapi/shot": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/somever": { + "@hapi/somever": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz", "integrity": "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==", - "dependencies": { + "requires": { "@hapi/bounce": "2.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/statehood": { + "@hapi/statehood": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/bounce": "2.x.x", "@hapi/bourne": "2.x.x", @@ -1889,11 +1537,11 @@ "@hapi/validate": "1.x.x" } }, - "node_modules/@hapi/subtext": { + "@hapi/subtext": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", "@hapi/content": "^5.0.2", @@ -1903,54 +1551,51 @@ "@hapi/wreck": "17.x.x" } }, - "node_modules/@hapi/teamwork": { + "@hapi/teamwork": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", - "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==", - "engines": { - "node": ">=12.0.0" - } + "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==" }, - "node_modules/@hapi/topo": { + "@hapi/topo": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { + "requires": { "@hapi/hoek": "^9.0.0" } }, - "node_modules/@hapi/validate": { + "@hapi/validate": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", - "dependencies": { + "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0" } }, - "node_modules/@hapi/vise": { + "@hapi/vise": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", - "dependencies": { + "requires": { "@hapi/hoek": "9.x.x" } }, - "node_modules/@hapi/wreck": { + "@hapi/wreck": { "version": "17.1.0", "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz", "integrity": "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==", - "dependencies": { + "requires": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", "@hapi/hoek": "9.x.x" } }, - "node_modules/@holochain/conductor-api": { + "@holochain/conductor-api": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@holochain/conductor-api/-/conductor-api-0.2.0.tgz", "integrity": "sha512-GUjItNXRAxrae9hwf3brVVAB55bkG+Z3u6tEkmazrMs2tk+egIOjN9Oin1GsORjQoNw+7xj7mwZ1+TLY2F8hiQ==", - "dependencies": { + "requires": { "@msgpack/msgpack": "2.4.0", "@types/ws": "^7.2.4", "isomorphic-ws": "^4.0.1", @@ -1958,29715 +1603,1723 @@ "ws": "^7.3.0" } }, - "node_modules/@istanbuljs/load-nyc-config": { + "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "dependencies": { + "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/@istanbuljs/schema": { + "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/@jest/console": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.1.1.tgz", - "integrity": "sha512-VpQJRsWSeAem0zpBjeRtDbcD6DlbNoK11dNYt+PSQ+DDORh9q2/xyEpErfwgnLjWX0EKkSZmTGx/iH9Inzs6vQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.1.1", - "jest-util": "^27.1.1", - "slash": "^3.0.0" + "@jest/console": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", + "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", + "requires": { + "@jest/source-map": "^24.9.0", + "chalk": "^2.0.1", + "slash": "^2.0.0" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.1.1.tgz", - "integrity": "sha512-oCkKeTgI0emznKcLoq5OCD0PhxCijA4l7ejDnWW3d5bgSi+zfVaLybVqa+EQOxpNejQWtTna7tmsAXjMN9N43Q==", - "dev": true, - "dependencies": { - "@jest/console": "^27.1.1", - "@jest/reporters": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.1.1", - "jest-config": "^27.1.1", - "jest-haste-map": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-resolve-dependencies": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "jest-watcher": "^27.1.1", - "micromatch": "^4.0.4", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/jest-config": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.1.tgz", - "integrity": "sha512-2iSd5zoJV4MsWPcLCGwUVUY/j6pZXm4Qd3rnbCtrd9EHNTg458iHw8PZztPQXfxKBKJxLfBk7tbZqYF8MGtxJA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.1.1", - "@jest/types": "^27.1.1", - "babel-jest": "^27.1.1", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.1.1", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.1.1.tgz", - "integrity": "sha512-+y882/ZdxhyqF5RzxIrNIANjHj991WH7jifdcplzMDosDUOyCACFYUyVTBGbSTocbU+s1cesroRzkwi8hZ9SHg==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.1.1.tgz", - "integrity": "sha512-u8TJ5VlsVYTsGFatoyIae2l25pku4Bu15QCPTx2Gs5z+R//Ee3tHN85462Vc9yGVcdDvgADbqNkhOLxbEwPjMQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.1.1", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.1.1.tgz", - "integrity": "sha512-Q3JcTPmY+DAEHnr4MpnBV3mwy50EGrTC6oSDTNnW7FNGGacTJAfpWNk02D7xv422T1OzK2A2BKx+26xJOvHkyw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.1.1", - "@jest/types": "^27.1.1", - "expect": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.1.1.tgz", - "integrity": "sha512-cEERs62n1P4Pqox9HWyNOEkP57G95aK2mBjB6D8Ruz1Yc98fKH53b58rlVEnsY5nLmkLNZk65fxNi9C0Yds/8w==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/source-map": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.1.1.tgz", - "integrity": "sha512-8vy75A0Jtfz9DqXFUkjC5Co/wRla+D7qRFdShUY8SbPqBS3GBx3tpba7sGKFos8mQrdbe39n+c1zgVKtarfy6A==", - "dev": true, - "dependencies": { - "@jest/console": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.1.1.tgz", - "integrity": "sha512-l8zD3EdeixvwmLNlJoMX3hhj8iIze95okj4sqmBzOq/zW8gZLElUveH4bpKEMuR+Nweazjlwc7L6g4C26M/y6Q==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-runtime": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.1.1.tgz", - "integrity": "sha512-qM19Eu75U6Jc5zosXXVnq900Nl9JDpoGaZ4Mg6wZs7oqbu3heYSMOZS19DlwjlhWdfNRjF4UeAgkrCJCK3fEXg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.1.1", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.1.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" - }, - "node_modules/@mattrglobal/bbs-signatures": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", - "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", - "optionalDependencies": { - "@mattrglobal/node-bbs-signatures": "0.11.0" - } - }, - "node_modules/@mattrglobal/bls12381-key-pair": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", - "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", - "dependencies": { - "@mattrglobal/bbs-signatures": "0.5.0", - "bs58": "4.0.1", - "rfc4648": "1.4.0" - } - }, - "node_modules/@mattrglobal/node-bbs-signatures": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", - "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "neon-cli": "0.4.0", - "node-pre-gyp": "0.14.0" - }, - "engines": { - "node": ">=10", - "yarn": "1.x" - } - }, - "node_modules/@motrix/nat-api": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", - "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", - "dependencies": { - "async": "^3.2.0", - "debug": "^4.3.1", - "default-gateway": "^6.0.3", - "request": "^2.88.2", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.4.23" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@motrix/nat-api/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@motrix/nat-api/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@msgpack/msgpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", - "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.0.38", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.38.tgz", - "integrity": "sha512-zZ64UpCTm9me15nuCpPgJghSdbEm8atcDQPCyK+bKXjZAQ1735NCZXCSCfbckbQ4MH36Rm9403n/qMq77LFDzQ==", - "dependencies": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@peculiar/asn1-schema/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@peculiar/json-schema/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@peculiar/webcrypto": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz", - "integrity": "sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ==", - "dependencies": { - "@peculiar/asn1-schema": "^2.0.32", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.1.6", - "tslib": "^2.2.0", - "webcrypto-core": "^1.2.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@peculiar/webcrypto/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@perspect3vism/ad4m": { - "version": "0.1.20", - "resolved": "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.1.20.tgz", - "integrity": "sha512-DBP23mFNhSrWAMTX3KLBpv2DU7wG4+OxJWK1oqd844a0E3ujgoZl6jbenDY8Yj9iRhEy//7etiHfN1rjSA/mCQ==", - "dependencies": { - "@apollo/client": "3.3.20", - "@holochain/conductor-api": "0.0.4", - "@types/jest": "^27.0.1", - "@types/mocha": "^8.0.3", - "class-validator": "^0.13.1", - "graphql": "^15.5.0", - "react": "^17.0.2", - "reflect-metadata": "^0.1.13", - "type-graphql": "^1.1.1" - } - }, - "node_modules/@perspect3vism/ad4m/node_modules/@holochain/conductor-api": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@holochain/conductor-api/-/conductor-api-0.0.4.tgz", - "integrity": "sha512-s52H+JMtiWID8wsqkKVkbjNDrHeVD88X+XWEllIi9INc7md2nBkMKBVChc/qgpRFqrpj2X8j/Es9MtvIJYnQqg==", - "dependencies": { - "@msgpack/msgpack": "2.4.0", - "@types/ws": "^7.2.4", - "isomorphic-ws": "^4.0.1", - "nanoid": "^3.1.9", - "ws": "^7.3.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", - "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^2.30.0" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", - "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", - "dependencies": { - "@rollup/pluginutils": "^3.0.8" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "node_modules/@sideway/address": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", - "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", - "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", - "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" - }, - "node_modules/@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "node_modules/@stablelib/aes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", - "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/aes-kw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", - "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", - "dependencies": { - "@stablelib/aes": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "dependencies": { - "@stablelib/int": "^1.0.1" - } - }, - "node_modules/@stablelib/blockcipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", - "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" - }, - "node_modules/@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "node_modules/@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "node_modules/@stablelib/ed25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", - "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", - "dependencies": { - "@stablelib/random": "^1.0.1", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "node_modules/@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "node_modules/@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "dependencies": { - "@stablelib/bytes": "^1.0.1" - } - }, - "node_modules/@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/sha512": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", - "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "node_modules/@stablelib/x25519": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz", - "integrity": "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==", - "dependencies": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/xchacha20": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", - "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/xchacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", - "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1", - "@stablelib/xchacha20": "^1.0.1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@transmute/did-key-bls12381": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz", - "integrity": "sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ==", - "dependencies": { - "@mattrglobal/bbs-signatures": "^0.5.0", - "@mattrglobal/bls12381-key-pair": "^0.5.0", - "base64url": "^3.0.1", - "bs58": "^4.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-cipher": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz", - "integrity": "sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw==", - "dependencies": { - "@peculiar/webcrypto": "^1.1.3", - "@stablelib/aes-kw": "^1.0.0", - "@stablelib/xchacha20poly1305": "^1.0.0", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "web-streams-polyfill": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-common": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz", - "integrity": "sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A==", - "dependencies": { - "base64url": "^3.0.1", - "borc": "^2.1.2", - "canonicalize": "^1.0.3", - "cbor": "^5.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-ed25519": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz", - "integrity": "sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw==", - "dependencies": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@transmute/did-key-x25519": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-secp256k1": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz", - "integrity": "sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ==", - "dependencies": { - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1", - "secp256k1": "^4.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-web-crypto": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-web-crypto/-/did-key-web-crypto-0.2.1-unstable.42.tgz", - "integrity": "sha512-GaD320cZxPJAVdQtSrxgTn91T1M/2qwSMQgowVdnY5HKEik2BS3o1kU7DYAJpUPdU2WNKg9W3Rr+C/dRY0Q0rQ==", - "dependencies": { - "@transmute/web-crypto-key-pair": "^0.6.1-unstable.18" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-x25519": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-x25519/-/did-key-x25519-0.2.1-unstable.42.tgz", - "integrity": "sha512-pInHZaepvjmfym1fBDrdbL5isUVbYHR1nYBsH3uD9EPn7SwZfEBe0Vg9hUop81b4x/6+VVWuGm2dIhpVBxsRPQ==", - "dependencies": { - "@stablelib/ed25519": "^1.0.1", - "@stablelib/x25519": "^1.0.0", - "@transmute/did-key-cipher": "^0.2.1-unstable.42", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key.js": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key.js/-/did-key.js-0.2.1-unstable.42.tgz", - "integrity": "sha512-vqwkJeAIkpekSCszKztIOVGFuWZMF8GJfiSHMv+vsS0cgLqzHer8WCUCudWt76rc2s90uK7FdlkvdwoZgGRl6g==", - "dependencies": { - "@transmute/did-key-bls12381": "^0.2.1-unstable.42", - "@transmute/did-key-ed25519": "^0.2.1-unstable.42", - "@transmute/did-key-secp256k1": "^0.2.1-unstable.42", - "@transmute/did-key-web-crypto": "^0.2.1-unstable.42", - "@transmute/did-key-x25519": "^0.2.1-unstable.42" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-wallet": { - "version": "0.0.0-6", - "resolved": "git+ssh://git@github.com/lucksus/did-wallet.git#cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2", - "integrity": "sha512-iya0qxEe2xkeDIZ8StHWGS7kH81nw8YZ4EzwGPkW/SaGlEB2UExcYAlJdfHM5ErqDDOqp7Ke3Lla3VywMtRhIA==", - "license": "Apache-2", - "dependencies": { - "base64url": "^3.0.1", - "jsonschema": "^1.2.4", - "lodash": "^4.17.11" - } - }, - "node_modules/@transmute/ld-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" - }, - "node_modules/@transmute/web-crypto-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-BVN5ECm3t5ldJiyixsdoXaptr14p2PxOOGWvyBm5eqWlVy/kiWQiVh43wZgEbHtjOkacTfw+BaVAtYkyGn2tpw==", - "dependencies": { - "@peculiar/webcrypto": "^1.1.6", - "@transmute/ld-key-pair": "^0.6.1-unstable.37", - "big-integer": "^1.6.48" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@trust/keyto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@trust/keyto/-/keyto-1.0.1.tgz", - "integrity": "sha512-OXTmKkrnkwktCX86XA7eWs1TQ6u64enm0syzAfNhjigbuGLy5aLhbhRYWtjt4zzdG/irWudluheRZ9Ic9pCwsA==", - "dependencies": { - "asn1.js": "^5.2.0", - "base64url": "^3.0.1", - "elliptic": "^6.5.2" - } - }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/asn1js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", - "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" - }, - "node_modules/@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/bl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/bl/-/bl-2.1.0.tgz", - "integrity": "sha512-1TdA9IXOy4sdqn8vgieQ6GZAiHiPNrOiO1s2GJjuYPw4QVY7gYoVjkW049avj33Ez7IcIvu43hQsMsoUFbCn2g==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/component-emitter": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", - "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==" - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" - }, - "node_modules/@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", - "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==" - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/faker": { - "version": "5.5.8", - "resolved": "https://registry.npmjs.org/@types/faker/-/faker-5.5.8.tgz", - "integrity": "sha512-bsl0rYsaZVHlZkynL5O04q6YXDmVjcid6MbOHWqvtE2WWs/EKhp0qchDDhVWlWyQXUffX1G83X9LnMxRl8S/Mw==", - "dev": true - }, - "node_modules/@types/fs-capacitor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", - "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.12.tgz", - "integrity": "sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" - }, - "node_modules/@types/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.1.tgz", - "integrity": "sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw==", - "dependencies": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/js-yaml": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.3.tgz", - "integrity": "sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==", - "dev": true - }, - "node_modules/@types/json-stable-stringify": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz", - "integrity": "sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw==" - }, - "node_modules/@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" - }, - "node_modules/@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", - "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "node_modules/@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "dependencies": { - "@types/koa": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.172", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.172.tgz", - "integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==", - "dev": true - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/lowdb": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@types/lowdb/-/lowdb-1.0.11.tgz", - "integrity": "sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg==", - "dev": true, - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "node_modules/@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==" - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/node": { - "version": "14.17.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.15.tgz", - "integrity": "sha512-D1sdW0EcSCmNdLKBGMYb38YsHUS6JcM7yQ6sLQ9KuZ35ck7LYCKE7kYFHOO59ayFOY3zobWVZxf4KXhYHcHYFA==" - }, - "node_modules/@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now==" - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sha256": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@types/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha512-QYMr6HuxTQunFWRLZpGopbkgQFoFWOmKTBGgNSYiWMqU/CWnQSTo3edyHvgsRXsOWtOSOG/cmDptPzgCeOsQGw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg==", - "dev": true - }, - "node_modules/@types/validator": { - "version": "13.6.3", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.6.3.tgz", - "integrity": "sha512-fWG42pMJOL4jKsDDZZREnXLjc3UE0R8LOJfARWYg6U966rxDT7TYejYzLnUF5cvSObGg34nd0+H2wHHU5Omdfw==" - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - }, - "node_modules/@types/zen-observable": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", - "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" - }, - "node_modules/@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/context/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/equality/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@wry/trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", - "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/trie/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abortable-iterator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.0.tgz", - "integrity": "sha512-7KqcPPnMhfot4GrEjK51zesS4Ye/lUCHBgYt3oRxIlU24HO3mVxBwEo9niNyfHqoWKqWLuZTc3zErNomdHA+ag==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/absolute-path": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", - "integrity": "sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=" - }, - "node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/abstract-logging": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dependencies": { - "string-width": "^3.0.0" - } - }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "optional": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ansi-escape-sequences/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-signal": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", - "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.3" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/apollo-cache-control": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz", - "integrity": "sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==", - "deprecated": "The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details.", - "dependencies": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-datasource": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz", - "integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==", - "dependencies": { - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/apollo-graphql": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.3.tgz", - "integrity": "sha512-rcAl2E841Iko4kSzj4Pt3PRBitmyq1MvoEmpl04TQSpGnoVgl1E/ZXuLBYxMTSnEAm7umn2IsoY+c6Ll9U/10A==", - "dependencies": { - "core-js-pure": "^3.10.2", - "lodash.sortby": "^4.7.0", - "sha.js": "^2.4.11" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0" - } - }, - "node_modules/apollo-link": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz", - "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==", - "dependencies": { - "apollo-utilities": "^1.3.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3", - "zen-observable-ts": "^0.8.21" - }, - "peerDependencies": { - "graphql": "^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-link/node_modules/ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "dependencies": { - "tslib": "^1.9.3" - } - }, - "node_modules/apollo-reporting-protobuf": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz", - "integrity": "sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==", - "dependencies": { - "@apollo/protobufjs": "1.2.2" - } - }, - "node_modules/apollo-server": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.2.tgz", - "integrity": "sha512-2Ekx9puU5DqviZk6Kw1hbqTun3lwOWUjhiBJf+UfifYmnqq0s9vAv6Ditw+DEXwphJQ4vGKVVgVIEw6f/9YfhQ==", - "dependencies": { - "apollo-server-core": "^2.25.2", - "apollo-server-express": "^2.25.2", - "express": "^4.0.0", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "stoppable": "^1.1.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-caching": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz", - "integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/apollo-server-core": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.2.tgz", - "integrity": "sha512-lrohEjde2TmmDTO7FlOs8x5QQbAS0Sd3/t0TaK2TWaodfzi92QAvIsq321Mol6p6oEqmjm8POIDHW1EuJd7XMA==", - "dependencies": { - "@apollographql/apollo-tools": "^0.5.0", - "@apollographql/graphql-playground-html": "1.6.27", - "@apollographql/graphql-upload-8-fork": "^8.1.3", - "@josephg/resolvable": "^1.0.0", - "@types/ws": "^7.0.0", - "apollo-cache-control": "^0.14.0", - "apollo-datasource": "^0.9.0", - "apollo-graphql": "^0.9.0", - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0", - "apollo-server-errors": "^2.5.0", - "apollo-server-plugin-base": "^0.13.0", - "apollo-server-types": "^0.9.0", - "apollo-tracing": "^0.15.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "^0.15.0", - "graphql-tag": "^2.11.0", - "graphql-tools": "^4.0.8", - "loglevel": "^1.6.7", - "lru-cache": "^6.0.0", - "sha.js": "^2.4.11", - "subscriptions-transport-ws": "^0.9.19", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-env": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz", - "integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==", - "dependencies": { - "node-fetch": "^2.6.1", - "util.promisify": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/apollo-server-errors": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz", - "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.2.tgz", - "integrity": "sha512-A2gF2e85vvDugPlajbhr0A14cDFDIGX0mteNOJ8P3Z3cIM0D4hwrWxJidI+SzobefDIyIHu1dynFedJVhV0euQ==", - "dependencies": { - "@apollographql/graphql-playground-html": "1.6.27", - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.0", - "@types/cors": "2.8.10", - "@types/express": "^4.17.12", - "@types/express-serve-static-core": "^4.17.21", - "accepts": "^1.3.5", - "apollo-server-core": "^2.25.2", - "apollo-server-types": "^0.9.0", - "body-parser": "^1.18.3", - "cors": "^2.8.5", - "express": "^4.17.1", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "parseurl": "^1.3.2", - "subscriptions-transport-ws": "^0.9.19", - "type-is": "^1.6.16" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-express/node_modules/@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/apollo-server-plugin-base": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz", - "integrity": "sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==", - "dependencies": { - "apollo-server-types": "^0.9.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz", - "integrity": "sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==", - "dependencies": { - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-tracing": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz", - "integrity": "sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==", - "deprecated": "The `apollo-tracing` package is no longer part of Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#tracing for details", - "dependencies": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-utilities": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz", - "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==", - "dependencies": { - "@wry/equality": "^0.1.2", - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.10.0" - }, - "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-utilities/node_modules/@wry/equality": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", - "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", - "dependencies": { - "tslib": "^1.9.3" - } - }, - "node_modules/apollo-utilities/node_modules/ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "dependencies": { - "tslib": "^1.9.3" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", - "dependencies": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/args/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/args/node_modules/camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/args/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/args/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/args/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/args/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/args/node_modules/leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/args/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "optional": true, - "dependencies": { - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/array-back/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/array-shuffle": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-2.0.0.tgz", - "integrity": "sha512-rJTchCppiO6QsQnN51KDH1cgMYm13B+ybxFS5GgdBdTTHpZcrq3M7SOBgzp+L9fqqnjkFDiwdEVcX1wINgl9DQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1js": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.1.1.tgz", - "integrity": "sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g==", - "dependencies": { - "pvutils": "latest" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/asn1js/node_modules/pvutils": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", - "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/babel-jest": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.1.1.tgz", - "integrity": "sha512-JA+dzJl4n2RBvWQEnph6HJaTHrsIPiXGQYatt/D8nR4UpX9UG4GaDzykVVPQBbrdTebZREkRb6SOxyIXJRab6Q==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.0.6", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz", - "integrity": "sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", - "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-fbjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", - "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", - "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-syntax-class-properties": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-block-scoped-functions": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-member-expression-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-property-literals": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz", - "integrity": "sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.0.6", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base32.js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz", - "integrity": "sha1-tYLexpPC8R6JPPBk7mrFthMaIgI=", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/base64url": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", - "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bcrypto": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/bcrypto/-/bcrypto-5.4.0.tgz", - "integrity": "sha512-KDX2CR29o6ZoqpQndcCxFZAtYA1jDMnXU3jmCfzP44g++Cu7AHHtZN/JbrN/MXAg9SLvtQ8XISG+eVD9zH1+Jg==", - "hasInstallScript": true, - "dependencies": { - "bufio": "~1.0.7", - "loady": "~0.0.5" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "engines": { - "node": "*" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" - }, - "node_modules/blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "node_modules/blob-to-it": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.3.tgz", - "integrity": "sha512-3bCrqSWG2qWwoIeF6DUJeuW/1isjx7DUhqZn9GpWlK8SVeqcjP+zw4yujdV0bVaqtggk6CUgtu87jfwHi5g7Zg==", - "dependencies": { - "browser-readablestream-to-it": "^1.0.2" - } - }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/body-parser/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/borc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", - "dependencies": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/boxen": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.0", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/boxen/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "node_modules/browser-readablestream-to-it": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz", - "integrity": "sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg==" - }, - "node_modules/browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", - "dependencies": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true, - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/bufio": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.0.7.tgz", - "integrity": "sha512-bd1dDQhiC+bEbEfg56IdBv7faWa6OipMs/AFFFvtFnB3wAYjlwQpQRZ0pm6ZkgtfL0pILRXhKxOiQj6UzoMR7A==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "optional": true - }, - "node_modules/busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", - "dependencies": { - "dicer": "0.3.0" - }, - "engines": { - "node": ">=4.5.0" - } - }, - "node_modules/byteman": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/byteman/-/byteman-1.3.5.tgz", - "integrity": "sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA==" - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-callsite/node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camel-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001255", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz", - "integrity": "sha512-F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/canonicalize": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.5.tgz", - "integrity": "sha512-mAjKJPIyP0xqqv6IAkvso07StOmz6cmGtNDg3pXCSzXVZOqka7StIkAhJl/zHOi4M2CgpYfD6aeRWbnrmtvBEA==" - }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/capital-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-checkmark": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chai-checkmark/-/chai-checkmark-1.0.1.tgz", - "integrity": "sha1-n7s8mtkQHwl+8ogyjTD0In10//s=" - }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/change-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "optional": true - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "engines": { - "node": "*" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true - }, - "node_modules/ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "node_modules/cid-tool": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cid-tool/-/cid-tool-1.0.0.tgz", - "integrity": "sha512-K7NGZBo1P6N2ogUmBtJWwMNfqXxU3ROiCHs+YKDDwBecsZ46J+9vJ6pOEJzds1JzqRnYRxxZBPfgBEYQebMXJg==", - "dependencies": { - "cids": "^1.0.0", - "explain-error": "^1.0.4", - "multibase": "^3.0.0", - "multihashes": "^3.0.1", - "split2": "^3.1.1", - "uint8arrays": "^1.1.0", - "yargs": "^15.0.2" - }, - "bin": { - "cid": "src/cli/bin.js" - } - }, - "node_modules/cid-tool/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/cid-tool/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cid-tool/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cid-tool/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/cid-tool/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cid-tool/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/cid-tool/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cid-tool/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/cid-tool/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cid-tool/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cids": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", - "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "multibase": "^4.0.1", - "multicodec": "^3.0.1", - "multihashes": "^4.0.1", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/cids/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/cids/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-validator": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.1.tgz", - "integrity": "sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg==", - "dependencies": { - "@types/validator": "^13.1.3", - "libphonenumber-js": "^1.9.7", - "validator": "^13.5.2" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "optional": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "optional": true - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/coercer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/coercer/-/coercer-1.1.2.tgz", - "integrity": "sha1-6upEWVEfc/nzat4EqYEHznWCS3A=" - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/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==" - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - }, - "bin": { - "command-line-args": "bin/cli.js" - } - }, - "node_modules/command-line-args/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/command-line-commands": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz", - "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "optional": true, - "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "node_modules/constant-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-hex": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", - "integrity": "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/convert-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", - "integrity": "sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo=" - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", - "dependencies": { - "browserslist": "^4.17.0", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/cosmiconfig/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/cross-spawn/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/cross-spawn/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/dag-cbor-links": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dag-cbor-links/-/dag-cbor-links-2.0.2.tgz", - "integrity": "sha512-PS5skw2eGKVZ1VVu9wquoIoefgMvKhl9/OItzf+7UMot0Nnd3oe/Ai5AP48GvEkAi6GkmglhWwuoKF23hTHJqQ==", - "dependencies": { - "cids": "^1.0.0", - "ipld-dag-cbor": "^0.17.0" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/datastore-core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-3.0.0.tgz", - "integrity": "sha512-3jEv4DCPcDUYqZ5bc5TKwWhF8Rc4pykNxMoCKx5SxOWyTKqE1EX31JmC6eNGRKiAI1rLF3+i4AyW0UvY2LROGg==", - "dependencies": { - "debug": "^4.1.1", - "interface-datastore": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/datastore-core/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/datastore-core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/datastore-fs": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-3.0.2.tgz", - "integrity": "sha512-U9cmNMwopBzxSPnkwVC53OxPXbF9GNWpqAhdI/nxj2Xu1pShmCm/pwyZjd+HthHSwAbOdmEhQK/MLLaKWNylYQ==", - "dependencies": { - "datastore-core": "^3.0.0", - "fast-write-atomic": "^0.2.0", - "interface-datastore": "^3.0.3", - "it-glob": "^0.0.11", - "mkdirp": "^1.0.4" - } - }, - "node_modules/datastore-fs/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/datastore-level": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-4.0.0.tgz", - "integrity": "sha512-tesQaHDCHsZCTSI64ld9GJJnghcU3iZMVdXkQtr4LO88B5A5VAQPuRD0ZJAgcnqvMVM9QRm8CH1UEQgxpWvwaA==", - "dependencies": { - "datastore-core": "^3.0.0", - "interface-datastore": "^3.0.3", - "level": "^6.0.1" - } - }, - "node_modules/datastore-pubsub": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/datastore-pubsub/-/datastore-pubsub-0.4.3.tgz", - "integrity": "sha512-ObozduDPBdXN45k6AvX8apHiLjkORbRNrj5BHRt2SQhBAflU3uj+HQsyXZbnazUCiGIOjWAbr3fMZQVnef1Vtw==", - "dependencies": { - "debug": "^4.2.0", - "err-code": "^3.0.1", - "interface-datastore": "^2.0.0", - "uint8arrays": "^2.0.5" - } - }, - "node_modules/datastore-pubsub/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/datastore-pubsub/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/datastore-pubsub/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/datastore-pubsub/node_modules/interface-datastore": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-2.0.1.tgz", - "integrity": "sha512-a4xHvVE8JCG8UItP0CCq+UJyBHZxhMp3esuFNjb3U9rP+tzKiG0HZXz8gIIwic6VbuE0Gui2whbJyJOFpMxhLg==", - "dependencies": { - "class-is": "^1.1.0", - "err-code": "^2.0.1", - "ipfs-utils": "^4.0.1", - "iso-random-stream": "^1.1.1", - "it-all": "^1.0.2", - "it-drain": "^1.0.1", - "nanoid": "^3.0.2" - } - }, - "node_modules/datastore-pubsub/node_modules/interface-datastore/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/datastore-pubsub/node_modules/ipfs-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-4.0.1.tgz", - "integrity": "sha512-6mg+S1sbjj+Ff+uoHOhVeC4myfV2tb2sHcdYwfpJ4ZcBo9WfdxSMnWFLiC5bIqByyJuN/g5aWgz3ozjKDzND1Q==", - "dependencies": { - "@achingbrain/electron-fetch": "^1.7.2", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "err-code": "^2.0.0", - "fs-extra": "^9.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "0.0.10", - "merge-options": "^2.0.0", - "nanoid": "^3.1.3", - "native-abort-controller": "0.0.3", - "native-fetch": "^2.0.0", - "node-fetch": "^2.6.0", - "stream-to-it": "^0.2.0" - } - }, - "node_modules/datastore-pubsub/node_modules/ipfs-utils/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/datastore-pubsub/node_modules/iso-random-stream": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-1.1.2.tgz", - "integrity": "sha512-7y0tsBBgQs544iTYjyrMp5xvgrbYR8b+plQq1Bryp+03p0LssrxC9C1M0oHv4QESDt7d95c74XvMk/yawKqX+A==", - "dependencies": { - "buffer": "^6.0.3", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/datastore-pubsub/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/datastore-pubsub/node_modules/it-glob": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", - "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", - "dependencies": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "node_modules/datastore-pubsub/node_modules/merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/datastore-pubsub/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/datastore-pubsub/node_modules/native-abort-controller": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", - "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/datastore-pubsub/node_modules/native-fetch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", - "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/dateformat": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz", - "integrity": "sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==", - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delay": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/delay/-/delay-4.4.1.tgz", - "integrity": "sha512-aL3AhqtfhOlT/3ai6sWXeqwnw63ATNpnUiN4HL7x9q+My5QtHlO3OIkasmug9LKzpheLdmUKGRKnYXYAS7FQkQ==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true - }, - "node_modules/delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" - }, - "node_modules/denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=" - }, - "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/deprecated-decorator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", - "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", - "dependencies": { - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=4.5.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" - }, - "node_modules/diff-sequences": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dirty-chai": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz", - "integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==", - "peerDependencies": { - "chai": ">=2.2.1 <5" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, - "node_modules/dns-over-http-resolver/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dns-over-http-resolver/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/dns-packet": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.0.tgz", - "integrity": "sha512-Nce7YLu6YCgWRvOmDBsJMo9M5/jV3lEZ5vUWnWXYmwURvPylHvq7nkDWhNmk1ZQoZZOP7oQh/S0lSxbisKOfHg==", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ecc-jsbn/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/electron-fetch": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz", - "integrity": "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==", - "dependencies": { - "encoding": "^0.1.13" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.3.834", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.834.tgz", - "integrity": "sha512-9hnYJOlj2zbVn59Oy1R2mW/jntsRG7Gy56/aAOq8s29DzDYW/kOrq/ryJXGAQRRMg4MreHjI63XavGZTsnPubg==" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dependencies": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", - "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/engine.io-client": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz", - "integrity": "sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==", - "dependencies": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/engine.io/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/engine.io/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-string": "^1.0.7", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-promisify": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", - "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==" - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.1.1.tgz", - "integrity": "sha512-JQAzp0CJoFFHF1RnOtrMUNMdsfx/Tl0+FhRzVl8q0fa23N+JyWdPXwb3T5rkHCvyo9uttnK7lVdKCBl1b/9EDw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-regex-util": "^27.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/explain-error": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz", - "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk=" - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "optional": true, - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "optional": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/faker": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz", - "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-redact": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.2.tgz", - "integrity": "sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fast-write-atomic": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", - "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" - }, - "node_modules/fastify-warning": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", - "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fbjs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", - "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==", - "dependencies": { - "core-js": "^2.4.1", - "fbjs-css-vars": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-type": { - "version": "16.5.3", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", - "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/filecompare": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filecompare/-/filecompare-1.0.4.tgz", - "integrity": "sha512-Kfqx1EcX+zuixN8jEs52y50mz6XmfZG3msRJx7rFXj4T3oY7SBBHMYimrg8DZJdP2ab1asOMp0mqZlxezbor3w==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "filecompare": "bin/filecompare" - } - }, - "node_modules/filesize": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz", - "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", - "optional": true, - "dependencies": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-replace/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/find-replace/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up/node_modules/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "node_modules/fnv1a": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.0.1.tgz", - "integrity": "sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU=" - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-capacitor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", - "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==", - "engines": { - "node": ">=8.5" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/gar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz", - "integrity": "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==" - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gc-stats/-/gc-stats-1.4.0.tgz", - "integrity": "sha512-4FcCj9e8j8rCjvLkqRpGZBLgTC/xr9XEf5By3x77cDucWWB3pJK6FEwXZCTCbb4z8xdaOoi4owBNrvn3ciDdxA==", - "bundleDependencies": [ - "node-pre-gyp" - ], - "hasInstallScript": true, - "optional": true, - "dependencies": { - "nan": "^2.13.2", - "node-pre-gyp": "^0.13.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/gc-stats/node_modules/abbrev": { - "version": "1.1.1", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/ansi-regex": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/aproba": { - "version": "1.2.0", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/are-we-there-yet": { - "version": "1.1.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/gc-stats/node_modules/balanced-match": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/brace-expansion": { - "version": "1.1.11", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/gc-stats/node_modules/chownr": { - "version": "1.1.1", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/code-point-at": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/concat-map": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/console-control-strings": { - "version": "1.1.0", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/core-util-is": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/debug": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/gc-stats/node_modules/deep-extend": { - "version": "0.6.0", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/gc-stats/node_modules/delegates": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/detect-libc": { - "version": "1.0.3", - "inBundle": true, - "license": "Apache-2.0", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/gc-stats/node_modules/fs-minipass": { - "version": "1.2.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "minipass": "^2.2.1" - } - }, - "node_modules/gc-stats/node_modules/fs.realpath": { - "version": "1.0.0", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/gauge": { - "version": "2.7.4", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gc-stats/node_modules/glob": { - "version": "7.1.3", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/gc-stats/node_modules/has-unicode": { - "version": "2.0.1", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/iconv-lite": { - "version": "0.4.24", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/ignore-walk": { - "version": "3.0.1", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/gc-stats/node_modules/inflight": { - "version": "1.0.6", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/gc-stats/node_modules/inherits": { - "version": "2.0.3", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/ini": { - "version": "1.3.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/gc-stats/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/isarray": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/minimatch": { - "version": "3.0.4", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/gc-stats/node_modules/minimist": { - "version": "0.0.8", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/minipass": { - "version": "2.3.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/gc-stats/node_modules/minizlib": { - "version": "1.2.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "minipass": "^2.2.1" - } - }, - "node_modules/gc-stats/node_modules/mkdirp": { - "version": "0.5.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/gc-stats/node_modules/ms": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/needle": { - "version": "2.3.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/gc-stats/node_modules/node-pre-gyp": { - "version": "0.13.0", - "inBundle": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/gc-stats/node_modules/nopt": { - "version": "4.0.1", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/gc-stats/node_modules/npm-bundled": { - "version": "1.0.6", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/npm-packlist": { - "version": "1.4.1", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "node_modules/gc-stats/node_modules/npmlog": { - "version": "4.1.2", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/gc-stats/node_modules/number-is-nan": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/object-assign": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/once": { - "version": "1.4.0", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/gc-stats/node_modules/os-homedir": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/os-tmpdir": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/osenv": { - "version": "0.1.5", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/gc-stats/node_modules/path-is-absolute": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/process-nextick-args": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/rc": { - "version": "1.2.8", - "inBundle": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/gc-stats/node_modules/rc/node_modules/minimist": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/readable-stream": { - "version": "2.3.6", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/gc-stats/node_modules/rimraf": { - "version": "2.6.3", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/gc-stats/node_modules/safe-buffer": { - "version": "5.1.2", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/safer-buffer": { - "version": "2.1.2", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/sax": { - "version": "1.2.4", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/semver": { - "version": "5.7.0", - "inBundle": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/gc-stats/node_modules/set-blocking": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/signal-exit": { - "version": "3.0.2", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/string_decoder": { - "version": "1.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/gc-stats/node_modules/string-width": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/strip-ansi": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/strip-json-comments": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gc-stats/node_modules/tar": { - "version": "4.4.8", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/gc-stats/node_modules/util-deprecate": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/gc-stats/node_modules/wide-align": { - "version": "1.1.3", - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/gc-stats/node_modules/wrappy": { - "version": "1.0.2", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gc-stats/node_modules/yallist": { - "version": "3.0.3", - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-browser-rtc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz", - "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-folder-size": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz", - "integrity": "sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==", - "dependencies": { - "gar": "^1.0.4", - "tiny-each-async": "2.0.3" - }, - "bin": { - "get-folder-size": "bin/get-folder-size" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/git-config": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", - "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", - "optional": true, - "dependencies": { - "iniparser": "~1.0.5" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/got/node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "node_modules/graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-extensions": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz", - "integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==", - "deprecated": "The `graphql-extensions` API has been removed from Apollo Server 3. Use the plugin API instead: https://www.apollographql.com/docs/apollo-server/integrations/plugins/", - "dependencies": { - "@apollographql/apollo-tools": "^0.5.0", - "apollo-server-env": "^3.1.0", - "apollo-server-types": "^0.9.0" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-query-complexity": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", - "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", - "dependencies": { - "lodash.get": "^4.4.2" - }, - "peerDependencies": { - "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", - "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", - "dependencies": { - "iterall": "^1.3.0" - }, - "peerDependencies": { - "graphql": "^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.5", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz", - "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-tag/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/graphql-tools": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", - "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", - "deprecated": "This package has been deprecated and now it only exports makeExecutableSchema.\\nAnd it will no longer receive updates.\\nWe recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.\\nCheck out https://www.graphql-tools.com to learn what package you should use instead", - "dependencies": { - "apollo-link": "^1.2.14", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" - }, - "peerDependencies": { - "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-tools/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/hamt-sharding": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-1.0.0.tgz", - "integrity": "sha512-jDk8N1U8qprvSt3KopOrrP46zUogxeZY+znDHP196MLBQKldld0TQFTneT1bxOFDw8vttbAQy1bG7L3/pzYorg==", - "dependencies": { - "sparse-array": "^1.3.1" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "optional": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hapi-pino": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.3.0.tgz", - "integrity": "sha512-8Cm1WIs6jp8B9ZzYqPFbCWNKt6F6jNCfLmCIHmPsm35sTOvT/r5+d9KpYR2vigWQRLS23VBXzOqUVESpP7r+jA==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "abstract-logging": "^2.0.0", - "pino": "^6.0.0", - "pino-pretty": "^4.0.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hashlru": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" - }, - "node_modules/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/header-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/heap": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", - "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "optional": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/image-size": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", - "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==", - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/iniparser": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", - "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "optional": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "node_modules/inquirer/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "optional": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "optional": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "optional": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "optional": true - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "optional": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "optional": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/interface-datastore": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-3.0.6.tgz", - "integrity": "sha512-ruF9CVmtKCNfzCZYW6YeEKDRDbgFaiKGrSWof19BVCv6Qx/WrL1jRV4sCQUHCaXwJI7FCFknhw++PGafWCXvfw==", - "dependencies": { - "err-code": "^3.0.1", - "ipfs-utils": "^6.0.0", - "iso-random-stream": "^2.0.0", - "it-all": "^1.0.2", - "it-drain": "^1.0.1", - "nanoid": "^3.0.2" - } - }, - "node_modules/interface-datastore/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ip-address": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-6.4.0.tgz", - "integrity": "sha512-c5uxc2WUTuRBVHT/6r4m7HIr/DfV0bF6DvLH3iZGSK8wp8iMwwZSgIq2do0asFf8q9ECug0SE+6+1ACMe4sorA==", - "dependencies": { - "jsbn": "1.1.0", - "lodash.find": "4.6.0", - "lodash.max": "4.0.1", - "lodash.merge": "4.6.2", - "lodash.padstart": "4.6.1", - "lodash.repeat": "4.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipfs": { - "version": "0.54.5", - "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.54.5.tgz", - "integrity": "sha512-vmp/wK9gchCFH/n2W/r863TvQczHNKS2+OsCaGKhAJNJ08dgHuzffmcfW+pdg/WDTmgFGF+1+ZF555EuL/Uh7A==", - "dependencies": { - "debug": "^4.1.1", - "ipfs-cli": "^0.4.5", - "ipfs-core": "^0.5.4", - "ipfs-repo": "^8.0.0", - "semver": "^7.3.2", - "update-notifier": "^5.0.0" - }, - "bin": { - "jsipfs": "src/cli.js" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-bitswap": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-4.0.2.tgz", - "integrity": "sha512-9fYoCL7G0Qu3z4r99j2xVWLbYnB9kK+JdTSEt1XNquPW8tA89U44ZfLxaq2C/LuxbQLkV0/C26WZtrCd1QYllQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.0", - "cids": "^1.0.0", - "debug": "^4.1.0", - "ipld-block": "^0.11.0", - "it-length-prefixed": "^3.0.0", - "it-pipe": "^1.1.0", - "just-debounce-it": "^1.1.0", - "libp2p-interfaces": "^0.8.3", - "moving-average": "^1.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.1", - "protons": "^2.0.0", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.0.5", - "varint-decoder": "^1.0.0" - } - }, - "node_modules/ipfs-bitswap/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-bitswap/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-bitswap/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-bitswap/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipfs-bitswap/node_modules/multicodec/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipfs-block-service": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/ipfs-block-service/-/ipfs-block-service-0.18.0.tgz", - "integrity": "sha512-tye5Uxbf3bYlfcGkV3CspP2JNcM2Ggm/5Kxph0jGKtAZtgfFxUq3NeSmvS6nGtZZBaFP4nwRF2yq7dQMALWzVg==", - "deprecated": "This module has been merged into ipfs", - "dependencies": { - "err-code": "^2.0.0", - "streaming-iterables": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-cli": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.4.5.tgz", - "integrity": "sha512-CrRACkyk6WysKs+AHuPk5TyOqDXkYOiti4qzxSeNg7tqiKb2MOJ8XjhCib15ojiUE2RPhjA3DTRS3tsc4tMitw==", - "dependencies": { - "bignumber.js": "^9.0.1", - "byteman": "^1.3.5", - "cid-tool": "^1.0.0", - "cids": "^1.1.5", - "debug": "^4.1.1", - "err-code": "^2.0.3", - "execa": "^5.0.0", - "get-folder-size": "^2.0.1", - "ipfs-core": "^0.5.4", - "ipfs-core-utils": "^0.7.2", - "ipfs-daemon": "^0.5.5", - "ipfs-http-client": "^49.0.4", - "ipfs-repo": "^8.0.0", - "ipfs-utils": "^6.0.1", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "it-all": "^1.0.4", - "it-concat": "^1.0.1", - "it-first": "^1.0.4", - "it-glob": "0.0.11", - "it-pipe": "^1.1.0", - "jsondiffpatch": "^0.4.1", - "libp2p-crypto": "^0.19.0", - "mafmt": "^8.0.0", - "multiaddr": "^8.0.0", - "multiaddr-to-uri": "^6.0.0", - "multibase": "^4.0.2", - "multihashing-async": "^2.1.2", - "parse-duration": "^0.4.4", - "peer-id": "^0.14.1", - "pretty-bytes": "^5.4.1", - "progress": "^2.0.3", - "stream-to-it": "^0.2.2", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.1.3", - "yargs": "^16.0.3" - } - }, - "node_modules/ipfs-cli/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-cli/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-core": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.5.4.tgz", - "integrity": "sha512-gyv3slu7FuaN1wxfDPhNoWiTSvUJ1pq0Nx2NsU3WWzOvKCaacHtE8HXO51AAuQUMUEN0thYGzVHziHGLI9udNQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "array-shuffle": "^2.0.0", - "bignumber.js": "^9.0.1", - "cbor": "^6.0.1", - "cids": "^1.1.5", - "class-is": "^1.1.0", - "dag-cbor-links": "^2.0.0", - "datastore-core": "^3.0.0", - "datastore-pubsub": "^0.4.1", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^2.0.3", - "hamt-sharding": "^1.0.0", - "hashlru": "^2.3.0", - "interface-datastore": "^3.0.3", - "ipfs-bitswap": "^4.0.2", - "ipfs-block-service": "^0.18.0", - "ipfs-core-types": "^0.3.1", - "ipfs-core-utils": "^0.7.2", - "ipfs-repo": "^8.0.0", - "ipfs-unixfs": "^2.0.3", - "ipfs-unixfs-exporter": "^3.0.4", - "ipfs-unixfs-importer": "^5.0.0", - "ipfs-utils": "^6.0.1", - "ipld": "^0.28.0", - "ipld-block": "^0.11.0", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "ipld-raw": "^6.0.0", - "ipns": "^0.8.0", - "is-domain-name": "^1.0.1", - "is-ipfs": "^2.0.0", - "it-all": "^1.0.4", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-pipe": "^1.1.0", - "libp2p": "^0.30.7", - "libp2p-bootstrap": "^0.12.1", - "libp2p-crypto": "^0.19.0", - "libp2p-floodsub": "^0.24.1", - "libp2p-gossipsub": "^0.8.0", - "libp2p-kad-dht": "^0.20.1", - "libp2p-mdns": "^0.15.0", - "libp2p-mplex": "^0.10.0", - "libp2p-noise": "^2.0.1", - "libp2p-record": "^0.9.0", - "libp2p-tcp": "^0.15.1", - "libp2p-webrtc-star": "^0.21.0", - "libp2p-websockets": "^0.15.1", - "mafmt": "^8.0.0", - "merge-options": "^3.0.4", - "mortice": "^2.0.0", - "multiaddr": "^8.0.0", - "multiaddr-to-uri": "^6.0.0", - "multibase": "^4.0.2", - "multicodec": "^3.0.1", - "multihashing-async": "^2.1.2", - "native-abort-controller": "^1.0.3", - "p-queue": "^6.6.1", - "parse-duration": "^0.4.4", - "peer-id": "^0.14.1", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.1.3" - } - }, - "node_modules/ipfs-core-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.3.1.tgz", - "integrity": "sha512-xPBsowS951RsuskMo86AWz9y4ReaBot1YsjOhZvKl8ORd8taxIBTT72LnEPwIZ2G24U854Zjxvd/qUMqO14ivg==", - "dependencies": { - "cids": "^1.1.5", - "multiaddr": "^8.0.0", - "peer-id": "^0.14.1" - } - }, - "node_modules/ipfs-core-utils": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.7.2.tgz", - "integrity": "sha512-d7T72GxvhNN+tEHsJjxI5Y4LQVdMMbSwNbWB6nVsIHUEdwm3w85L2u1E/ctNd9aaNGvoBwEcnIZhSmqhMf7stw==", - "dependencies": { - "any-signal": "^2.1.2", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "cids": "^1.1.5", - "err-code": "^2.0.3", - "ipfs-core-types": "^0.3.1", - "ipfs-utils": "^6.0.1", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.1", - "multiaddr": "^8.0.0", - "multiaddr-to-uri": "^6.0.0", - "parse-duration": "^0.4.4", - "timeout-abort-controller": "^1.1.1", - "uint8arrays": "^2.1.3" - } - }, - "node_modules/ipfs-core/node_modules/cbor": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-6.0.1.tgz", - "integrity": "sha512-gVJ2e/DFInWOriOUqNyrZe5xN8RSK49X7G+pLalz32GwKs1xHNXtrkcbV5K4+Z2X7qJiv6f700PnUEaJoIEPGQ==", - "hasInstallScript": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=10.18.0" - } - }, - "node_modules/ipfs-core/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-daemon": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.5.5.tgz", - "integrity": "sha512-GZnWy3MqJ/zgJxMByEuK6d0tphRV24H+y83ej4+ORjcjgwB/qBrJlYC3qtwPQAZJcLg+jMxGU+UK1xU91paPXA==", - "dependencies": { - "debug": "^4.1.1", - "dlv": "^1.1.3", - "ipfs-core": "^0.5.4", - "ipfs-grpc-server": "^0.2.5", - "ipfs-http-client": "^49.0.4", - "ipfs-http-gateway": "^0.3.2", - "ipfs-http-server": "^0.3.5", - "ipfs-utils": "^6.0.1", - "just-safe-set": "^2.1.0", - "libp2p": "^0.30.7", - "libp2p-delegated-content-routing": "^0.9.0", - "libp2p-delegated-peer-routing": "^0.8.0", - "libp2p-webrtc-star": "^0.21.0", - "multiaddr": "^8.0.0" - }, - "optionalDependencies": { - "prom-client": "^12.0.0", - "prometheus-gc-stats": "^0.6.0" - }, - "peerDependencies": { - "electron-webrtc": "^0.3.0", - "wrtc": "^0.4.6" - } - }, - "node_modules/ipfs-daemon/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-daemon/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-grpc-protocol": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.2.0.tgz", - "integrity": "sha512-XQB67HO8ti36HhGxompsoZxKfareIE6jetOAWVrfbKyPVi75JtUjQ7euhNxbxw2xS3/H8Jd8bsIU/qwKe1tVig==" - }, - "node_modules/ipfs-grpc-server": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.2.5.tgz", - "integrity": "sha512-mAGRI4n7hKpBb3kwFpi9Bn2elLJFA2vzNuAlKCn9o4JTlhiCIa1ocCqNvTaN7nGcEvDeFmA1YgPVVUA0Ot17Lw==", - "dependencies": { - "@grpc/grpc-js": "^1.1.8", - "change-case": "^4.1.1", - "coercer": "^1.1.2", - "debug": "^4.1.1", - "ipfs-grpc-protocol": "^0.2.0", - "it-first": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.0", - "protobufjs": "^6.10.2", - "ws": "^7.3.1" - } - }, - "node_modules/ipfs-grpc-server/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-grpc-server/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-client": { - "version": "49.0.4", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-49.0.4.tgz", - "integrity": "sha512-qgWbkcB4glQrUkE2tZR+GVXyrO6aJyspWBjyct/6TzrhCHx7evjz+kUTK+wNm4S9zccUePEml5VNZUmUhoQtbA==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "bignumber.js": "^9.0.1", - "cids": "^1.1.5", - "debug": "^4.1.1", - "form-data": "^3.0.0", - "ipfs-core-types": "^0.3.1", - "ipfs-core-utils": "^0.7.2", - "ipfs-utils": "^6.0.1", - "ipld-block": "^0.11.0", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "ipld-raw": "^6.0.0", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-tar": "^1.2.2", - "it-to-stream": "^0.1.2", - "merge-options": "^3.0.4", - "multiaddr": "^8.0.0", - "multibase": "^4.0.2", - "multicodec": "^3.0.1", - "multihashes": "^4.0.2", - "nanoid": "^3.1.12", - "native-abort-controller": "^1.0.3", - "parse-duration": "^0.4.4", - "stream-to-it": "^0.2.2", - "uint8arrays": "^2.1.3" - }, - "engines": { - "node": ">=10.3.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-http-client/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-client/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-http-client/node_modules/multihashes/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/ipfs-http-client/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/ipfs-http-gateway": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.3.2.tgz", - "integrity": "sha512-yb+dbv7ZF5or6rsGm0FF2PSGE4OvJSnEqdOf5JjEokf43gRHBVe4QpiMBWZahRET3bZZ3IfjLOPWkCptE/eNVA==", - "dependencies": { - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/hapi": "^20.0.0", - "cids": "^1.1.5", - "debug": "^4.1.1", - "hapi-pino": "^8.3.0", - "ipfs-core-utils": "^0.7.2", - "ipfs-http-response": "^0.6.0", - "is-ipfs": "^2.0.0", - "it-last": "^1.0.4", - "it-to-stream": "^0.1.2", - "joi": "^17.2.1", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "uri-to-multiaddr": "^4.0.0" - } - }, - "node_modules/ipfs-http-gateway/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-gateway/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-response": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-0.6.4.tgz", - "integrity": "sha512-ltQgWaK72IJC7wmwrCZdhewA5Rq2G666y9R4CXkU1rgcqvXDyC0izEDJZN9xNXg17ib9ieS3Dcqc4k+A1te8xw==", - "dependencies": { - "debug": "^4.1.1", - "file-type": "^16.0.0", - "filesize": "^6.1.0", - "it-buffer": "^0.1.1", - "it-concat": "^2.0.0", - "it-reader": "^3.0.0", - "it-to-stream": "^1.0.0", - "mime-types": "^2.1.27", - "multihashes": "^4.0.2", - "p-try-each": "^1.0.1" - } - }, - "node_modules/ipfs-http-response/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/ipfs-http-response/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ipfs-http-response/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-response/node_modules/it-concat": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", - "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", - "dependencies": { - "bl": "^5.0.0" - } - }, - "node_modules/ipfs-http-response/node_modules/it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/ipfs-http-response/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-response/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-http-response/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/ipfs-http-response/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/ipfs-http-server": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.3.5.tgz", - "integrity": "sha512-mGMO2iPEINVpKCxndRfkVQXCzdG47x4Fa8GnvhFPFXBfbJDGqBQGXVYiR6gjyC6DjmRVNE2vipany2qx3fekDg==", - "dependencies": { - "@hapi/boom": "^9.1.0", - "@hapi/content": "^5.0.2", - "@hapi/hapi": "^20.0.0", - "abort-controller": "^3.0.0", - "cids": "^1.1.5", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^2.0.3", - "hapi-pino": "^8.3.0", - "ipfs-core-utils": "^0.7.2", - "ipfs-http-gateway": "^0.3.2", - "ipfs-unixfs": "^2.0.3", - "ipld-dag-pb": "^0.20.0", - "it-all": "^1.0.4", - "it-drain": "^1.0.3", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-multipart": "^1.0.5", - "it-pipe": "^1.1.0", - "it-tar": "^1.2.2", - "it-to-stream": "^0.1.2", - "iterable-ndjson": "^1.1.0", - "joi": "^17.2.1", - "just-safe-set": "^2.1.0", - "multiaddr": "^8.0.0", - "multibase": "^4.0.2", - "multicodec": "^3.0.1", - "multihashing-async": "^2.1.2", - "native-abort-controller": "^1.0.3", - "parse-duration": "^0.4.4", - "stream-to-it": "^0.2.2", - "streaming-iterables": "^5.0.2", - "uint8arrays": "^2.1.3", - "uri-to-multiaddr": "^4.0.0" - }, - "optionalDependencies": { - "prom-client": "^12.0.0" - } - }, - "node_modules/ipfs-http-server/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-server/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-repo": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-8.0.0.tgz", - "integrity": "sha512-NFdoVFYbhIn48JGJEbMq6890RTbdgXnfKKnBTO5sE1Dk0ByR3ncGDKmUtiTsfbZbBbpmmeKmfdLNTBzUYFXIfg==", - "dependencies": { - "bignumber.js": "^9.0.0", - "bytes": "^3.1.0", - "cids": "^1.0.0", - "datastore-core": "^3.0.0", - "datastore-fs": "^3.0.0", - "datastore-level": "^4.0.0", - "debug": "^4.1.0", - "err-code": "^2.0.0", - "interface-datastore": "^3.0.3", - "ipfs-repo-migrations": "^6.0.0", - "ipfs-utils": "^6.0.0", - "ipld-block": "^0.11.0", - "it-map": "^1.0.2", - "it-pushable": "^1.4.0", - "just-safe-get": "^2.0.0", - "just-safe-set": "^2.1.0", - "multibase": "^3.0.0", - "p-queue": "^6.0.0", - "proper-lockfile": "^4.0.0", - "sort-keys": "^4.0.0", - "uint8arrays": "^2.0.5" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-repo-migrations": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-6.0.0.tgz", - "integrity": "sha512-kX+ddMtN4aCxZNfMbxlt48Go+9eu4Mkbsv/feLI3XwL/yjlfkqU2lSG7DiqBLCZ0rSrpOTRXhxg/zUYXzLC7cA==", - "dependencies": { - "cbor": "^6.0.1", - "cids": "^1.0.0", - "datastore-core": "^3.0.0", - "debug": "^4.1.0", - "fnv1a": "^1.0.1", - "interface-datastore": "^3.0.3", - "ipld-dag-pb": "^0.20.0", - "it-length": "^1.0.1", - "multibase": "^3.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.0", - "proper-lockfile": "^4.1.1", - "protons": "^2.0.0", - "uint8arrays": "^2.0.5", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/cbor": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-6.0.1.tgz", - "integrity": "sha512-gVJ2e/DFInWOriOUqNyrZe5xN8RSK49X7G+pLalz32GwKs1xHNXtrkcbV5K4+Z2X7qJiv6f700PnUEaJoIEPGQ==", - "hasInstallScript": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=10.18.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-repo-migrations/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-repo-migrations/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/multicodec/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipfs-repo/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-repo/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-repo/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-unixfs": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-2.0.4.tgz", - "integrity": "sha512-b8dL8DZSwv0G3WTy8XnH1+Vzj/UydNI4yK/7/j3Ywyx+3yAQW566bdgaW1zvEFWTT3tBK1h3iJrRNHRs3CnBJA==", - "dependencies": { - "err-code": "^2.0.0", - "protons": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=4.0.0" - } - }, - "node_modules/ipfs-unixfs-exporter": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-3.0.7.tgz", - "integrity": "sha512-ZYpE8SVLcvxDVb9+aKwthf7a4gRFSHqbEJaVrvVOpeXKSG66WTrI0KQR14sIk0v4SYOaUSWrWVXsSjUbONrVHg==", - "dependencies": { - "cids": "^1.0.0", - "err-code": "^2.0.0", - "hamt-sharding": "^1.0.0", - "ipfs-unixfs": "^2.0.4", - "ipfs-utils": "^5.0.0", - "it-last": "^1.0.1", - "multihashing-async": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=4.0.0" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/ipfs-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz", - "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^2.0.0", - "fs-extra": "^9.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "0.0.10", - "it-to-stream": "^0.1.2", - "merge-options": "^2.0.0", - "nanoid": "^3.1.3", - "native-abort-controller": "0.0.3", - "native-fetch": "^2.0.0", - "node-fetch": "^2.6.0", - "stream-to-it": "^0.2.0" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/it-glob": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", - "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", - "dependencies": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/native-abort-controller": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", - "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/native-fetch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", - "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/ipfs-unixfs-importer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-5.0.0.tgz", - "integrity": "sha512-bvdnCXwwCj72w/FQ7o6XcvrcbCUgXrruK0UZOfhl/mf44Nv0DWyn1Y4hQF/u63rJvYLQdAMlqniAAtFQpHQhcg==", - "dependencies": { - "bl": "^4.0.0", - "err-code": "^2.0.0", - "hamt-sharding": "^1.0.0", - "ipfs-unixfs": "^2.0.4", - "ipfs-utils": "^5.0.0", - "ipld-dag-pb": "^0.20.0", - "it-all": "^1.0.1", - "it-batch": "^1.0.3", - "it-first": "^1.0.1", - "it-parallel-batch": "^1.0.3", - "merge-options": "^3.0.3", - "multihashing-async": "^2.0.0", - "rabin-wasm": "^0.1.1", - "uint8arrays": "^1.1.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=4.0.0" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/ipfs-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz", - "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^2.0.0", - "fs-extra": "^9.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "0.0.10", - "it-to-stream": "^0.1.2", - "merge-options": "^2.0.0", - "nanoid": "^3.1.3", - "native-abort-controller": "0.0.3", - "native-fetch": "^2.0.0", - "node-fetch": "^2.6.0", - "stream-to-it": "^0.2.0" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/ipfs-utils/node_modules/merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/it-glob": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", - "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", - "dependencies": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/native-abort-controller": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", - "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/native-fetch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", - "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", - "dependencies": { - "globalthis": "^1.0.1" - }, - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipfs-utils": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-6.0.8.tgz", - "integrity": "sha512-mDDQaDisI/uWk+X08wyw+jBcq76IXwMjgyaoyEgJDb/Izb+QbBCSJjo9q+EvbMxh6/l6q0NiAfbbsxEyQYPW9w==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.0.0", - "it-glob": "~0.0.11", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-abort-controller": "^1.0.3", - "native-fetch": "^3.0.0", - "node-fetch": "^2.6.1", - "stream-to-it": "^0.2.2" - } - }, - "node_modules/ipfs-utils/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ipfs-utils/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/ipfs-utils/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/ipfs-utils/node_modules/it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/ipfs/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipld": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ipld/-/ipld-0.28.0.tgz", - "integrity": "sha512-lERRFJb17Phi3x06sSirFgCkmSw8lNqOwn2CiBexu0Amo6ICTXULuSZcDeM1AN4+fSzebQgEc8bBIV4zW7dv0A==", - "deprecated": "Please use the multiformats module instead", - "dependencies": { - "cids": "^1.0.0", - "ipld-block": "^0.11.0", - "ipld-dag-cbor": "^0.17.0", - "ipld-dag-pb": "^0.20.0", - "ipld-raw": "^6.0.0", - "merge-options": "^2.0.0", - "multicodec": "^2.0.0", - "typical": "^6.0.0" - } - }, - "node_modules/ipld-block": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.11.1.tgz", - "integrity": "sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw==", - "dependencies": { - "cids": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipld-dag-cbor": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz", - "integrity": "sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw==", - "deprecated": "This module has been superseded by @ipld/dag-cbor and multiformats", - "dependencies": { - "borc": "^2.1.2", - "cids": "^1.0.0", - "is-circular": "^1.0.2", - "multicodec": "^3.0.1", - "multihashing-async": "^2.0.0", - "uint8arrays": "^2.1.3" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipld-dag-pb": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz", - "integrity": "sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg==", - "deprecated": "This module has been superseded by @ipld/dag-pb and multiformats", - "dependencies": { - "cids": "^1.0.0", - "class-is": "^1.1.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.0", - "protons": "^2.0.0", - "reset": "^0.1.0", - "run": "^1.4.0", - "stable": "^0.1.8", - "uint8arrays": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipld-dag-pb/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipld-dag-pb/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipld-dag-pb/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipld-raw": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-6.0.0.tgz", - "integrity": "sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "cids": "^1.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.0" - } - }, - "node_modules/ipld-raw/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipld-raw/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipld-raw/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipld/node_modules/merge-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ipld/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipld/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipld/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/ipns": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/ipns/-/ipns-0.8.2.tgz", - "integrity": "sha512-TzWz5tUhMT/XJT/FnvU/TzVTqZln5aF9uBKP63ymdPY1tXU/ToF40SP7nr42VEfnf236gOEE8aR6CHOf4TG95g==", - "dependencies": { - "debug": "^4.2.0", - "err-code": "^2.0.3", - "interface-datastore": "^3.0.1", - "libp2p-crypto": "^0.19.0", - "multibase": "^3.0.1", - "multihashes": "^3.0.1", - "peer-id": "^0.14.2", - "protons": "^2.0.0", - "timestamp-nano": "^1.0.0", - "uint8arrays": "^2.0.5" - } - }, - "node_modules/ipns/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipns/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipns/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "dependencies": { - "ci-info": "^3.1.1" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-circular": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", - "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==" - }, - "node_modules/is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-domain-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz", - "integrity": "sha1-9uszsUpJdUHcpYM1E31EZuDCDaE=" - }, - "node_modules/is-electron": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", - "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dependencies": { - "ip-regex": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ipfs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-2.0.0.tgz", - "integrity": "sha512-X4Cg/JO+h/ygBCrIQSMgicHRLo5QpB+i5tHLhFgGBksKi3zvX6ByFCshDxNBvcq4NFxF3coI2AaLqwzugNzKcw==", - "dependencies": { - "cids": "^1.0.0", - "iso-url": "~0.4.7", - "mafmt": "^8.0.0", - "multiaddr": "^8.0.0", - "multibase": "^3.0.0", - "multihashes": "^3.0.1", - "uint8arrays": "^1.1.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/is-ipfs/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/is-ipfs/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/is-loopback-addr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", - "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/iso-constants": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", - "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==", - "hasInstallScript": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/iso-random-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz", - "integrity": "sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg==", - "dependencies": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", - "engines": { - "node": ">=10" - } - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/it-all": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", - "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==" - }, - "node_modules/it-batch": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.8.tgz", - "integrity": "sha512-RfEa1rxOPnicXvaXJ1qNThxPrq8/Lc+KwSVWHFEEOp2CrjpjhR5WfmBJozhkbzZ/r/Gl0HjzVVrt0NpG8qczDQ==" - }, - "node_modules/it-buffer": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", - "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3" - } - }, - "node_modules/it-buffer/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/it-buffer/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-concat": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-1.0.3.tgz", - "integrity": "sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA==", - "dependencies": { - "bl": "^4.0.0" - } - }, - "node_modules/it-drain": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.4.tgz", - "integrity": "sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==" - }, - "node_modules/it-filter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.2.tgz", - "integrity": "sha512-rxFUyPCrhk7WrNxD8msU10iEPhQmROoqwuyWmQUYY1PtopwUGBYyra9EYG2nRZADYeuT83cohKWmKCWPzpeyiw==" - }, - "node_modules/it-first": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.6.tgz", - "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" - }, - "node_modules/it-glob": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.11.tgz", - "integrity": "sha512-p02iVYsvOPU7cW4sV9BC62Kz6Mz2aUTJz/cKWDeFqc05kzB3WgSq8OobZabVA/K4boSm6q+s0xOZ8xiArLSoXQ==", - "dependencies": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "node_modules/it-goodbye": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-goodbye/-/it-goodbye-2.0.2.tgz", - "integrity": "sha512-k56lqArpxkIU0yyhnPhvnyOBpzRQn+4VEyd+dUBWhN5kvCgPBeC0XMuHiA71iU98sDpCrJrT/X+81ajT0AOQtQ==", - "dependencies": { - "buffer": "^5.6.0" - } - }, - "node_modules/it-handshake": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-1.0.2.tgz", - "integrity": "sha512-uutOim5xF1eyDQD3u8qd3TxbWKwxqGMlbvacZsRsPdjO1BD9lnPTVci0jSMGsvMOu+5Y3W/QQ4hPQb87qPmPVQ==", - "dependencies": { - "it-pushable": "^1.4.0", - "it-reader": "^2.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/it-handshake/node_modules/it-reader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", - "dependencies": { - "bl": "^4.0.0" - } - }, - "node_modules/it-last": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.5.tgz", - "integrity": "sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q==" - }, - "node_modules/it-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.3.tgz", - "integrity": "sha512-iZduLNprLW2OJCa1LtFvogh4DVhInt2jbqgvCgWQIX6v1z3IJpKvfkDutslKIgztEuhqm3QRLn16dhspVsaayw==" - }, - "node_modules/it-length-prefixed": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.1.0.tgz", - "integrity": "sha512-E5GwT6qfZEwh3/XThyYwgjKJ4/hxvTC9kdbj3gxXDeUDKtC7+K2T647sPeX7xDEWqunsnoQyvOrjoHPegaT3uw==", - "dependencies": { - "@types/bl": "^2.1.0", - "bl": "^4.0.2", - "buffer": "^5.5.0", - "varint": "^5.0.0" - } - }, - "node_modules/it-length-prefixed/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/it-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", - "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" - }, - "node_modules/it-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.0.tgz", - "integrity": "sha512-bs40LMjG/9JMOcJ7pgyGLoOeWBpw28ZoMmZIk/1NCa5SUxd4elXCuadAr2qSjPiHz2GxrqoWGFAP7SePGddatw==", - "dependencies": { - "it-pushable": "^1.4.0" - } - }, - "node_modules/it-multipart": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-multipart/-/it-multipart-1.0.9.tgz", - "integrity": "sha512-EGavbE/ohpP3DESwmjRSz6U3iBtgj2yVgCvqF3EkFO93WxndDg0vDnA2zeSbgyglIINXE93Kvk5Vl8ub6es5Jw==", - "dependencies": { - "buffer": "^6.0.3", - "buffer-indexof": "^1.1.1", - "parse-headers": "^2.0.2" - } - }, - "node_modules/it-multipart/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-pair": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", - "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/it-parallel-batch": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.9.tgz", - "integrity": "sha512-lfCxXsHoEtgyWj5HLrEQXlZF0p3c0hfYeVJAbxQIHIzHLq4lkYplUIe3UGxYl4n1Sjpcs6YL/87352399aVeIA==", - "dependencies": { - "it-batch": "^1.0.8" - } - }, - "node_modules/it-pb-rpc": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.11.tgz", - "integrity": "sha512-1Yvae7LNHNM/WzxWT7OyHqwpA7DZoGos22JioMZ5H6i9iExQf71NHE0phHKEfkJdWLo7SRqPLLbqs2zaeKCwPA==", - "dependencies": { - "is-buffer": "^2.0.5", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2" - } - }, - "node_modules/it-pb-rpc/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/it-pb-rpc/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-pb-rpc/node_modules/it-handshake": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", - "dependencies": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/it-pb-rpc/node_modules/it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/it-peekable": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.2.tgz", - "integrity": "sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg==" - }, - "node_modules/it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "node_modules/it-protocol-buffers": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/it-protocol-buffers/-/it-protocol-buffers-0.2.1.tgz", - "integrity": "sha512-UbezSc9BZTw0DU7mFS6iG9PXeycJfTDJlFAlniI3x1CRrKeDP+IW6ERPAFskHI3O+wij18Mk7eHgDtFz4Zk65A==", - "dependencies": { - "it-buffer": "^0.1.1", - "it-length-prefixed": "^3.0.0" - } - }, - "node_modules/it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "dependencies": { - "fast-fifo": "^1.0.0" - } - }, - "node_modules/it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "dependencies": { - "bl": "^5.0.0" - } - }, - "node_modules/it-reader/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/it-reader/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-take": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.0.tgz", - "integrity": "sha512-zfr2iAtekTGhHVWzCqqqgDnHhmzdzfCW92L0GvbaSFlvc3n2Ep/sponzmlNl2Kg39N5Py+02v+Aypc+i2c+9og==" - }, - "node_modules/it-tar": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-1.2.2.tgz", - "integrity": "sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA==", - "dependencies": { - "bl": "^4.0.0", - "buffer": "^5.4.3", - "iso-constants": "^0.1.2", - "it-concat": "^1.0.0", - "it-reader": "^2.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/it-tar/node_modules/it-reader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", - "dependencies": { - "bl": "^4.0.0" - } - }, - "node_modules/it-to-stream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", - "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", - "dependencies": { - "buffer": "^5.6.0", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/it-ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz", - "integrity": "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==", - "dependencies": { - "buffer": "^6.0.3", - "event-iterator": "^2.0.0", - "iso-url": "^1.1.2", - "ws": "^7.3.1" - } - }, - "node_modules/it-ws/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-ws/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/iterable-ndjson": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", - "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", - "dependencies": { - "string_decoder": "^1.2.0" - } - }, - "node_modules/iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "node_modules/jest": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.1.1.tgz", - "integrity": "sha512-LFTEZOhoZNR/2DQM3OCaK5xC6c55c1OWhYh0njRsoHX0qd6x4nkcgenkSH0JKjsAGMTmmJAoL7/oqYHMfwhruA==", - "dev": true, - "dependencies": { - "@jest/core": "^27.1.1", - "import-local": "^3.0.2", - "jest-cli": "^27.1.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.1.1.tgz", - "integrity": "sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.1.1.tgz", - "integrity": "sha512-Xed1ApiMFu/yzqGMBToHr8sp2gkX/ARZf4nXoGrHJrXrTUdVIWiVYheayfcOaPdQvQEE/uyBLgW7I7YBLIrAXQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.1.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.1.1.tgz", - "integrity": "sha512-LCjfEYp9D3bcOeVUUpEol9Y1ijZYMWVqflSmtw/wX+6Fb7zP4IlO14/6s9v1pxsoM4Pn46+M2zABgKuQjyDpTw==", - "dev": true, - "dependencies": { - "@jest/core": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "prompts": "^2.0.1", - "yargs": "^16.0.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/jest-config": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.1.tgz", - "integrity": "sha512-2iSd5zoJV4MsWPcLCGwUVUY/j6pZXm4Qd3rnbCtrd9EHNTg458iHw8PZztPQXfxKBKJxLfBk7tbZqYF8MGtxJA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.1.1", - "@jest/types": "^27.1.1", - "babel-jest": "^27.1.1", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.1.1", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-runner": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.1.1.tgz", - "integrity": "sha512-m/6n5158rqEriTazqHtBpOa2B/gGgXJijX6nsEgZfbJ/3pxQcdpVXBe+FP39b1dxWHyLVVmuVXddmAwtqFO4Lg==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.1.1.tgz", - "integrity": "sha512-r6hOsTLavUBb1xN0uDa89jdDeBmJ+K49fWpbyxeGRA2pLY46PlC4z551/cWNQzrj+IUa5/gSRsCIV/01HdNPug==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.1.1.tgz", - "integrity": "sha512-6vOnoZ6IaExuw7FvnuJhA1qFYv1DDSnN0sQowzolNwxQp7bG1YhLxj2YU1sVXAYA3IR3MbH2mbnJUsLUWfyfzw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.1.1.tgz", - "integrity": "sha512-OEGeZh0PwzngNIYWYgWrvTcLygopV8OJbC9HNb0j70VBKgEIsdZkYhwcFnaURX83OHACMqf1pa9Tv5Pw5jemrg==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.1.1.tgz", - "integrity": "sha512-NGLYVAdh5C8Ezg5QBFzrNeYsfxptDBPlhvZNaicLiZX77F/rS27a9M6u9ripWAaaD54xnWdZNZpEkdjD5Eo5aQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.1.1.tgz", - "integrity": "sha512-0LAzUmcmvQwjIdJt0cXUVX4G5qjVXE8ELt6nbMNDzv2yAs2hYCCUtQq+Eje70GwAysWCGcS64QeYj5VPHYVxPg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.1.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.1.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.1.1.tgz", - "integrity": "sha512-gwSgzmqShoeEsEVpgObymQPrM9P6557jt1EsFW5aCeJ46Cme0EdjYU7xr6llQZ5GpWDl56eOstUaPXiZOfiTKw==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.1.1.tgz", - "integrity": "sha512-Q1a10w9Y4sh0wegkdP6reQOa/Dtz7nAvDqBgrat1ItZAUvk4jzXAqyhXPu/ZuEtDaXaNKpdRPRQA8bvkOh2Eaw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.1.1", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.1.1.tgz", - "integrity": "sha512-b697BOJV93+AVGvzLRtVZ0cTVRbd59OaWnbB2D75GRaIMc4I+Z9W0wHxbfjW01JWO+TqqW4yevT0aN7Fd0XWng==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.1.1.tgz", - "integrity": "sha512-M41YFmWhvDVstwe7XuV21zynOiBLJB5Sk0GrIsYYgTkjfEWNLVXDjAyq1W7PHseaYNOxIc0nOGq/r5iwcZNC1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "resolve": "^1.20.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.1.1.tgz", - "integrity": "sha512-sYZR+uBjFDCo4VhYeazZf/T+ryYItvdLKu9vHatqkUqHGjDMrdEPOykiqC2iEpaCFTS+3iL/21CYiJuKdRbniw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.1.1.tgz", - "integrity": "sha512-lP3MBNQhg75/sQtVkC8dsAQZumvy3lHK/YIwYPfEyqGIX1qEcnYIRxP89q0ZgC5ngvi1vN2P5UFHszQxguWdng==", - "dev": true, - "dependencies": { - "@jest/console": "^27.1.1", - "@jest/environment": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-haste-map": "^27.1.1", - "jest-leak-detector": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.1.1.tgz", - "integrity": "sha512-FEwy+tSzmsvuKaQpyYsUyk31KG5vMmA2r2BSTHgv0yNfcooQdm2Ke91LM9Ud8D3xz8CLDHJWAI24haMFTwrsPg==", - "dev": true, - "dependencies": { - "@jest/console": "^27.1.1", - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/globals": "^27.1.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-mock": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.1.1.tgz", - "integrity": "sha512-Wi3QGiuRFo3lU+EbQmZnBOks0CJyAMPHvYoG7iJk00Do10jeOyuOEO0Jfoaoun8+8TDv+Nzl7Aswir/IK9+1jg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.1.1", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.1.1", - "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-util": "^27.1.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.1.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.1.1.tgz", - "integrity": "sha512-zf9nEbrASWn2mC/L91nNb0K+GkhFvi4MP6XJG2HqnHzHvLYcs7ou/In68xYU1i1dSkJlrWcYfWXQE8nVR+nbOA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.1.1.tgz", - "integrity": "sha512-N5Er5FKav/8m2dJwn7BGnZwnoD1BSc8jx5T+diG2OvyeugvZDhPeAt5DrNaGkkaKCrSUvuE7A5E4uHyT7Vj0Mw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.1.1.tgz", - "integrity": "sha512-XQzyHbxziDe+lZM6Dzs40fEt4q9akOGwitJnxQasJ9WG0bv3JGiRlsBgjw13znGapeMtFaEsyhL0Cl04IbaoWQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.1.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.1.tgz", - "integrity": "sha512-XJKCL7tu+362IUYTWvw8+3S75U7qMiYiRU6u5yqscB48bTvzwN6i8L/7wVTXiFLwkRsxARNM7TISnTvcgv9hxA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/joi": { - "version": "17.4.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", - "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.0", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/joycon": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", - "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dependencies": { - "delimit-stream": "0.1.0" - } - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsondiffpatch": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", - "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", - "dependencies": { - "chalk": "^2.3.0", - "diff-match-patch": "^1.0.0" - }, - "bin": { - "jsondiffpatch": "bin/jsondiffpatch" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/jsondiffpatch/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsondiffpatch/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsondiffpatch/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/jsondiffpatch/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/jsondiffpatch/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/jsondiffpatch/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "engines": { - "node": "*" - } - }, - "node_modules/jsonschema": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", - "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/just-debounce-it": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.5.0.tgz", - "integrity": "sha512-itSWJS5d2DTSCizVJ2Z0Djx/dGmUGfZe7WNfUfVP23+htGcIcPHbEjL4eB8ljojTs/+oYwLexImRRCP0A2WXjA==" - }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==" - }, - "node_modules/just-safe-get": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-2.1.2.tgz", - "integrity": "sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ==" - }, - "node_modules/just-safe-set": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz", - "integrity": "sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w==" - }, - "node_modules/k-bucket": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/keypair": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz", - "integrity": "sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ==" - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/level": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", - "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", - "dependencies": { - "level-js": "^5.0.0", - "level-packager": "^5.1.0", - "leveldown": "^5.4.0" - }, - "engines": { - "node": ">=8.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" - } - }, - "node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-js": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", - "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", - "dependencies": { - "abstract-leveldown": "~6.2.3", - "buffer": "^5.5.0", - "inherits": "^2.0.3", - "ltgt": "^2.1.2" - } - }, - "node_modules/level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dependencies": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/leveldown": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", - "hasInstallScript": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "~4.1.0" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/libp2p": { - "version": "0.30.13", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.30.13.tgz", - "integrity": "sha512-iR5nZBZ+AtClzviNIzTsz58v4CdDEM+vzOiILcVm0d++NtkFt/DP0wcnia0qXLXUT98R01pkEnfdNyoBojPPPQ==", - "dependencies": { - "@motrix/nat-api": "^0.3.1", - "abort-controller": "^3.0.0", - "aggregate-error": "^3.1.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.1", - "cids": "^1.1.5", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^2.0.0", - "es6-promisify": "^6.1.1", - "events": "^3.2.0", - "hashlru": "^2.3.0", - "interface-datastore": "^3.0.3", - "ipfs-utils": "^6.0.0", - "it-all": "^1.0.4", - "it-buffer": "^0.1.2", - "it-drain": "^1.0.3", - "it-filter": "^1.0.1", - "it-first": "^1.0.4", - "it-handshake": "^1.0.2", - "it-length-prefixed": "^3.1.0", - "it-map": "^1.0.4", - "it-merge": "1.0.0", - "it-pipe": "^1.1.0", - "it-protocol-buffers": "^0.2.0", - "it-take": "1.0.0", - "libp2p-crypto": "^0.19.0", - "libp2p-interfaces": "^0.8.1", - "libp2p-utils": "^0.2.2", - "mafmt": "^8.0.0", - "merge-options": "^3.0.4", - "moving-average": "^1.0.0", - "multiaddr": "^8.1.0", - "multicodec": "^2.1.0", - "multihashing-async": "^2.0.1", - "multistream-select": "^1.0.0", - "mutable-proxy": "^1.0.0", - "node-forge": "^0.10.0", - "p-any": "^3.0.0", - "p-fifo": "^1.0.0", - "p-retry": "^4.2.0", - "p-settle": "^4.0.1", - "peer-id": "^0.14.2", - "private-ip": "^2.0.0", - "protons": "^2.0.0", - "retimer": "^2.0.0", - "sanitize-filename": "^1.6.3", - "set-delayed-interval": "^1.0.0", - "streaming-iterables": "^5.0.2", - "timeout-abort-controller": "^1.1.1", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0", - "xsalsa20": "^1.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-bootstrap": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.12.3.tgz", - "integrity": "sha512-4S7+YyZYy8wRmNxXGwsBsKrxGMk59nTqwDdBeEf9m3aVWZ0zdz5uu3WXq7sl8ULb703Zx5IdjGDrdbxhYtdqlA==", - "dependencies": { - "debug": "^4.3.1", - "mafmt": "^9.0.0", - "multiaddr": "^9.0.1", - "peer-id": "^0.14.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/libp2p-bootstrap/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-bootstrap/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-bootstrap/node_modules/mafmt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", - "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", - "dependencies": { - "multiaddr": "^9.0.1" - } - }, - "node_modules/libp2p-bootstrap/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-bootstrap/node_modules/multiaddr": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", - "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", - "dependencies": { - "cids": "^1.0.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-crypto": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz", - "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==", - "dependencies": { - "err-code": "^3.0.1", - "is-typedarray": "^1.0.0", - "iso-random-stream": "^2.0.0", - "keypair": "^1.0.1", - "multiformats": "^9.4.5", - "node-forge": "^0.10.0", - "pem-jwk": "^2.0.0", - "protobufjs": "^6.11.2", - "secp256k1": "^4.0.0", - "uint8arrays": "^3.0.0", - "ursa-optional": "^0.10.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/libp2p-crypto/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-crypto/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/libp2p-delegated-content-routing": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.9.0.tgz", - "integrity": "sha512-7elrRRg+eLKCGvztCMj3+jhfg6nkH0qdNSM07jQYDnTcT2OtixOA9pdaFhGqxCag3pLSVW96S5inYzJj/Di6dQ==", - "dependencies": { - "debug": "^4.1.1", - "it-drain": "^1.0.3", - "multiaddr": "^8.0.0", - "p-defer": "^3.0.0", - "p-queue": "^6.2.1" - }, - "peerDependencies": { - "ipfs-http-client": "*" - } - }, - "node_modules/libp2p-delegated-content-routing/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-delegated-content-routing/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-delegated-peer-routing": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.8.2.tgz", - "integrity": "sha512-q49zSTE7wpagt3FDY6S2e2Rr59kPoTMJAwlPeenZ1ajJLbKXRP26RfraK8RaUUw7mHw0BPo47VQcH7ieDkSO+A==", - "dependencies": { - "cids": "^1.0.0", - "debug": "^4.1.1", - "p-defer": "^3.0.0", - "p-queue": "^6.3.0", - "peer-id": "^0.14.0" - }, - "peerDependencies": { - "ipfs-http-client": "*" - } - }, - "node_modules/libp2p-delegated-peer-routing/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-delegated-peer-routing/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-floodsub": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.24.1.tgz", - "integrity": "sha512-szI/5GtuiwIAWyBxAfobLw5Qe3EBkxWH6snExG3bXz98cLmW25q8WdTWHHJ0oqzzDZ3YOMsTlRrGpRE4AzR26w==", - "dependencies": { - "debug": "^4.2.0", - "libp2p-interfaces": "^0.8.1", - "time-cache": "^0.3.0", - "uint8arrays": "^1.1.0" - }, - "peerDependencies": { - "libp2p": "^0.30.0" - } - }, - "node_modules/libp2p-floodsub/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-floodsub/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-floodsub/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-floodsub/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/libp2p-gossipsub": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.8.0.tgz", - "integrity": "sha512-nR5XGN6E5n2ukPR9aa/rtegwluxiK+vT9j5Oulp+P1h6T9vEqDvFAEe9cqA3FiT7apI5gk44SE0aZFTMpxz6EA==", - "dependencies": { - "@types/debug": "^4.1.5", - "debug": "^4.1.1", - "denque": "^1.4.1", - "err-code": "^2.0.0", - "it-pipe": "^1.0.1", - "libp2p-interfaces": "^0.8.0", - "peer-id": "^0.14.0", - "protons": "^2.0.0", - "time-cache": "^0.3.0", - "uint8arrays": "^1.1.0" - }, - "peerDependencies": { - "libp2p": "^0.30.0" - } - }, - "node_modules/libp2p-gossipsub/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-gossipsub/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-gossipsub/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-gossipsub/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/libp2p-interfaces": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-0.8.4.tgz", - "integrity": "sha512-LaPkXVhqgAcFwqsyqGSZNAjgXSa2V+skOfIKE2UtQHaduwLct2KpFDOmvhRHTWHfRHwI9bSCskDB7xWGNTwZsQ==", - "dependencies": { - "@types/bl": "^2.1.0", - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "chai": "^4.2.0", - "chai-checkmark": "^1.0.1", - "debug": "^4.3.1", - "delay": "^4.4.0", - "detect-node": "^2.0.4", - "dirty-chai": "^2.0.1", - "err-code": "^2.0.3", - "it-goodbye": "^2.0.2", - "it-length-prefixed": "^3.1.0", - "it-pair": "^1.0.0", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.0", - "libp2p-crypto": "^0.19.0", - "libp2p-tcp": "^0.15.0", - "multiaddr": "^8.1.2", - "multibase": "^3.1.1", - "multihashes": "^3.1.1", - "p-defer": "^3.0.0", - "p-limit": "^3.1.0", - "p-wait-for": "^3.2.0", - "peer-id": "^0.14.2", - "protons": "^2.0.0", - "sinon": "^9.2.4", - "streaming-iterables": "^5.0.4", - "uint8arrays": "^2.0.5" - } - }, - "node_modules/libp2p-interfaces/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-interfaces/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-interfaces/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-kad-dht": { - "version": "0.20.6", - "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.20.6.tgz", - "integrity": "sha512-hRClzJP+NK3zBU0/pYkoDUhZcviqmPu4czFaftcl3cCGasjxSaWNEZNKsf65QwoINZD9jFrYkQuXW9/gWQwuOA==", - "dependencies": { - "abort-controller": "^3.0.0", - "async": "^2.6.2", - "base32.js": "~0.1.0", - "cids": "^1.1.5", - "debug": "^4.3.1", - "err-code": "^2.0.3", - "hashlru": "^2.3.0", - "heap": "~0.2.6", - "interface-datastore": "^3.0.3", - "it-length-prefixed": "^3.1.0", - "it-pipe": "^1.1.0", - "k-bucket": "^5.0.0", - "libp2p-crypto": "^0.19.0", - "libp2p-interfaces": "^0.8.2", - "libp2p-record": "^0.9.0", - "multiaddr": "^8.1.2", - "multihashing-async": "^2.0.1", - "p-filter": "^2.1.0", - "p-map": "^4.0.0", - "p-queue": "^6.6.2", - "p-timeout": "^4.1.0", - "p-times": "^3.0.0", - "peer-id": "^0.14.2", - "promise-to-callback": "^1.0.0", - "protons": "^2.0.0", - "streaming-iterables": "^5.0.4", - "uint8arrays": "^2.0.5", - "varint": "^5.0.0", - "xor-distance": "^2.0.0" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-kad-dht/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/libp2p-kad-dht/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-kad-dht/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-kad-dht/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/libp2p-mdns": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.15.0.tgz", - "integrity": "sha512-wuILE+mwC6ww/0TMkR3k2h53D5Ma9TXpz0siacbsACcGukkS+mIpsvruaf9U1Uxe0F1aC8+Y+Vi5lP8C3YR9Lg==", - "dependencies": { - "debug": "^4.1.1", - "multiaddr": "^8.0.0", - "multicast-dns": "^7.2.0", - "peer-id": "^0.14.0" - } - }, - "node_modules/libp2p-mdns/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-mdns/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-mplex": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.4.tgz", - "integrity": "sha512-a8Oy68EXaSBBXGOGYMuwBcpnynkhqAFJ3LiyV24u9fE4wTxvuWTr0prSyKc+KC8QsLuX3A+CAdSgxqm09NbumQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "bl": "^5.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.1", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-mplex/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/libp2p-mplex/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/libp2p-mplex/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-mplex/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-mplex/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-noise": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/libp2p-noise/-/libp2p-noise-2.0.5.tgz", - "integrity": "sha512-hmR1Y4bJ6hxEO+1aIF1HeJrUNh9NHUbH8gUTtMqpIe7zfdggGau9XKMY0InbafBPFF/WxeIOJDKZiQV4qy2fFg==", - "deprecated": "This repository is now being maintained by ChainSafe, and can be found at https://github.com/ChainSafe/js-libp2p-noise under @chainsafe/libp2p-noise", - "dependencies": { - "bcrypto": "^5.4.0", - "debug": "^4.3.1", - "it-buffer": "^0.1.1", - "it-length-prefixed": "^3.0.0", - "it-pair": "^1.0.0", - "it-pb-rpc": "^0.1.9", - "it-pipe": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "peer-id": "^0.14.3", - "protobufjs": "^6.10.1", - "uint8arrays": "^2.0.5" - } - }, - "node_modules/libp2p-noise/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-noise/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-record": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.9.0.tgz", - "integrity": "sha512-8FlhzP+UlXTYOR+9D8nYoGOIJ6S8XogKD625bqzHJbXJQyJNCNaW3tZPHqrQrvUW7o6GsAeyQAfCp5WLEH0FZg==", - "dependencies": { - "err-code": "^2.0.0", - "multihashes": "^3.0.1", - "multihashing-async": "^2.0.1", - "protons": "^2.0.0", - "uint8arrays": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/libp2p-record/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-record/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/libp2p-tcp": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.15.4.tgz", - "integrity": "sha512-MqXIlqV7t9z0A1Ww9Omd2XIlndcYOAh5R6kWRZ8Vo/CITazKUC5ZGNoj23hq/aEPaX8p5XmJs2BKESg/OuhGhQ==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "libp2p-utils": "^0.3.0", - "mafmt": "^9.0.0", - "multiaddr": "^9.0.1", - "stream-to-it": "^0.2.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/libp2p-tcp/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-tcp/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-tcp/node_modules/ip-address": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-7.1.0.tgz", - "integrity": "sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/libp2p-tcp/node_modules/libp2p-utils": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.3.1.tgz", - "integrity": "sha512-LOVfww7a6Rhtoupl3z1ABuTEli5whY3VLTB9QntsOIwbOcX9GfmjuhqYbEDht9lVPAQl+rCUWbfDMvK121ryUg==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^7.1.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^9.0.1", - "private-ip": "^2.1.1" - } - }, - "node_modules/libp2p-tcp/node_modules/mafmt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", - "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", - "dependencies": { - "multiaddr": "^9.0.1" - } - }, - "node_modules/libp2p-tcp/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-tcp/node_modules/multiaddr": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", - "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", - "dependencies": { - "cids": "^1.0.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-utils": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.2.3.tgz", - "integrity": "sha512-9BoMCgvJF7LJ+JVMaHtqfCqhZN4i/sx0DrY6lf9U0Rq9uUgQ9qTai2O9LXcfr1LOS3OMMeRLsKk25MMgsf7W3w==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.2.0", - "err-code": "^2.0.3", - "ip-address": "^6.1.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^8.0.0", - "private-ip": "^2.1.1" - } - }, - "node_modules/libp2p-utils/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-utils/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-webrtc-peer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-peer/-/libp2p-webrtc-peer-10.0.1.tgz", - "integrity": "sha512-Qi/YVrSI5sjU+iBvr1iAjGrakIEvzCS8S76v4q43jjlDb6Wj+S4OnFLH/uRlt7eLXcx4vlaI6huMzYrUAoopMg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "debug": "^4.0.1", - "err-code": "^2.0.3", - "get-browser-rtc": "^1.0.0", - "queue-microtask": "^1.1.0", - "randombytes": "^2.0.3", - "readable-stream": "^3.4.0" - } - }, - "node_modules/libp2p-webrtc-peer/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-webrtc-peer/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-webrtc-star": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-star/-/libp2p-webrtc-star-0.21.2.tgz", - "integrity": "sha512-Ax5s/Ih8f5cVAt1RQacokjbzSnvz5+SmW+1bPs22myZ48WcTt8CydHOKBGKpflFZBMHNttPoOY4xgLp95xxuIg==", - "dependencies": { - "@hapi/hapi": "^20.0.0", - "@hapi/inert": "^6.0.3", - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "ipfs-utils": "^6.0.0", - "it-pipe": "^1.1.0", - "libp2p-utils": "^0.2.1", - "libp2p-webrtc-peer": "^10.0.1", - "mafmt": "^8.0.0", - "menoetius": "0.0.2", - "minimist": "^1.2.5", - "multiaddr": "^8.0.0", - "p-defer": "^3.0.0", - "peer-id": "^0.14.2", - "prom-client": "^13.0.0", - "socket.io": "^2.3.0", - "socket.io-client-next": "npm:socket.io-client@^3.0.4", - "socket.io-next": "npm:socket.io@^3.0.4", - "stream-to-it": "^0.2.2", - "streaming-iterables": "^5.0.3" - }, - "bin": { - "star-sig": "src/sig-server/bin.js", - "star-signal": "src/sig-server/bin.js", - "webrtc-star": "src/sig-server/bin.js" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-webrtc-star/node_modules/engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/engine.io-client": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", - "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", - "dependencies": { - "base64-arraybuffer": "0.1.4", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.1", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/engine.io-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", - "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", - "dependencies": { - "base64-arraybuffer": "0.1.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-webrtc-star/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-webrtc-star/node_modules/prom-client": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-13.2.0.tgz", - "integrity": "sha512-wGr5mlNNdRNzEhRYXgboUU2LxHWIojxscJKmtG3R8f4/KiWqyYgXTLHs0+Ted7tG3zFT7pgHJbtomzZ1L0ARaQ==", - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" - }, - "node_modules/libp2p-webrtc-star/node_modules/socket.io-client-next": { - "name": "socket.io-client", - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", - "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", - "dependencies": { - "@types/component-emitter": "^1.2.10", - "backo2": "~1.0.2", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-client": "~4.1.0", - "parseuri": "0.0.6", - "socket.io-parser": "~4.0.4" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/socket.io-next": { - "name": "socket.io", - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", - "dependencies": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/libp2p-websockets": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.15.9.tgz", - "integrity": "sha512-tuQ4KezPEiJ/JXGKJUttPgBWTv36NnaqY05lWja8wQwQU3R1NgpH4GRJnTBshGXoBFdvGGJbTxvsJlh15NzMkg==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "ipfs-utils": "^8.1.2", - "it-ws": "^4.0.0", - "libp2p-utils": "^0.3.0", - "mafmt": "^9.0.0", - "multiaddr": "^9.0.1", - "multiaddr-to-uri": "^7.0.0", - "p-defer": "^3.0.0", - "p-timeout": "^4.1.0" - } - }, - "node_modules/libp2p-websockets/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/libp2p-websockets/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-websockets/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/libp2p-websockets/node_modules/ip-address": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-7.1.0.tgz", - "integrity": "sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/libp2p-websockets/node_modules/ipfs-utils": { - "version": "8.1.6", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz", - "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "~0.0.11", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-abort-controller": "^1.0.3", - "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - } - }, - "node_modules/libp2p-websockets/node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/libp2p-websockets/node_modules/it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/libp2p-websockets/node_modules/libp2p-utils": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.3.1.tgz", - "integrity": "sha512-LOVfww7a6Rhtoupl3z1ABuTEli5whY3VLTB9QntsOIwbOcX9GfmjuhqYbEDht9lVPAQl+rCUWbfDMvK121ryUg==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^7.1.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^9.0.1", - "private-ip": "^2.1.1" - } - }, - "node_modules/libp2p-websockets/node_modules/mafmt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", - "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", - "dependencies": { - "multiaddr": "^9.0.1" - } - }, - "node_modules/libp2p-websockets/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-websockets/node_modules/multiaddr": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", - "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", - "dependencies": { - "cids": "^1.0.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multibase": "^4.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-websockets/node_modules/multiaddr-to-uri": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-7.0.0.tgz", - "integrity": "sha512-VbscDpLcbV0m25tJqfnZSfbjVUuNlPa4BbD5l/7me1t0lc3SWI0XAoO5E/PNJF0e1qUlbdq7yjVFEQjUT+9r0g==", - "dependencies": { - "multiaddr": "^9.0.1" - } - }, - "node_modules/libp2p-websockets/node_modules/node-fetch": { - "name": "@achingbrain/node-fetch", - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" - }, - "node_modules/libp2p/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p/node_modules/multicodec/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/libphonenumber-js": { - "version": "1.9.36", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.36.tgz", - "integrity": "sha512-eaQRvOHmBKOxd2TKNml5lx1/7+nm4MftXTUXPTcBS70mm7U3AUNBNPF99tNBpkrYQNu+YFP553ranMsbshqqTA==" - }, - "node_modules/liquidcore": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/liquidcore/-/liquidcore-0.7.10.tgz", - "integrity": "sha512-8Ks5reBkEzUPCX4QwNKunRFMXFGtMT8N0vlcCZOhFOcDahxlyieg0ZOpbHUPSviCSvaBByAEvj1xb6R9dNbQkA==", - "dependencies": { - "filecompare": "^1.0.4", - "metro": "0.57.0", - "metro-core": "0.57.0", - "tmp": "^0.1.0" - }, - "bin": { - "liquidcore": "lib/cli.js" - } - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, - "node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/loady": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz", - "integrity": "sha512-uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "node_modules/lodash.find": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", - "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "node_modules/lodash.max": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.max/-/lodash.max-4.0.1.tgz", - "integrity": "sha1-hzVWbGGLNan3YFILSHrnllivE2o=" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "optional": true - }, - "node_modules/lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" - }, - "node_modules/lodash.repeat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", - "integrity": "sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ=" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowdb": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", - "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", - "dependencies": { - "graceful-fs": "^4.1.3", - "is-promise": "^2.1.0", - "lodash": "4", - "pify": "^3.0.0", - "steno": "^0.4.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lower-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" - }, - "node_modules/mafmt": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-8.0.4.tgz", - "integrity": "sha512-wwZ5+PU0vQw10kwQRyZin1Z0dqVOp0BnYlX1xvXHS2fmLwrrQCfU1+3tlW5MRcihUwGz1virnVhbRAU1biKfiw==", - "dependencies": { - "multiaddr": "^8.0.0" - } - }, - "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dependencies": { - "tmpl": "1.0.x" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mem/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/menoetius": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/menoetius/-/menoetius-0.0.2.tgz", - "integrity": "sha512-7W0ayHMNgvEdFh+m3m29KA87nvT0JIGCXeSZa26fiSof+bwpg+olEjD8AAvtxZ3uhTcp2d+5r1dcV/KhR8PBVQ==", - "dependencies": { - "prom-client": "^11.5.3" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/menoetius/node_modules/prom-client": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz", - "integrity": "sha512-iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==", - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=6.1" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "dependencies": { - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/metro": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.57.0.tgz", - "integrity": "sha512-En3phXm60rij0QxNM9+MHQZwJA48QQfNQdT4A0tt5XGZ3MJd8cYlO5LCpRLhFm+15aCblMWGKX58Sm8evtsAag==", - "dependencies": { - "@babel/core": "^7.0.0", - "@babel/generator": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/plugin-external-helpers": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "absolute-path": "^0.0.0", - "async": "^2.4.0", - "babel-preset-fbjs": "^3.3.0", - "buffer-crc32": "^0.2.13", - "chalk": "^2.4.1", - "concat-stream": "^1.6.0", - "connect": "^3.6.5", - "debug": "^2.2.0", - "denodeify": "^1.2.1", - "eventemitter3": "^3.0.0", - "fbjs": "^1.0.0", - "fs-extra": "^1.0.0", - "graceful-fs": "^4.1.3", - "image-size": "^0.6.0", - "invariant": "^2.2.4", - "jest-haste-map": "^24.7.1", - "jest-worker": "^24.6.0", - "json-stable-stringify": "^1.0.1", - "lodash.throttle": "^4.1.1", - "merge-stream": "^1.0.1", - "metro-babel-register": "0.57.0", - "metro-babel-transformer": "0.57.0", - "metro-cache": "0.57.0", - "metro-config": "0.57.0", - "metro-core": "0.57.0", - "metro-inspector-proxy": "0.57.0", - "metro-minify-uglify": "0.57.0", - "metro-react-native-babel-preset": "0.57.0", - "metro-resolver": "0.57.0", - "metro-source-map": "0.57.0", - "metro-symbolicate": "0.57.0", - "mime-types": "2.1.11", - "mkdirp": "^0.5.1", - "node-fetch": "^2.2.0", - "nullthrows": "^1.1.1", - "resolve": "^1.5.0", - "rimraf": "^2.5.4", - "serialize-error": "^2.1.0", - "source-map": "^0.5.6", - "temp": "0.8.3", - "throat": "^4.1.0", - "wordwrap": "^1.0.0", - "write-file-atomic": "^1.2.0", - "ws": "^1.1.5", - "xpipe": "^1.0.5", - "yargs": "^9.0.0" - }, - "bin": { - "metro": "src/cli.js" - } - }, - "node_modules/metro-babel-register": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.57.0.tgz", - "integrity": "sha512-toZwgFY/y/+8GxSLT6kDRI5/hcnm7VtVglMo8WN9p9LEeGjKgWeJrf6YrrqQ8L+Ycy771w00jHZVw2QwlvCQUQ==", - "dependencies": { - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/register": "^7.0.0", - "core-js": "^2.2.2", - "escape-string-regexp": "^1.0.5" - } - }, - "node_modules/metro-babel-transformer": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.57.0.tgz", - "integrity": "sha512-679BstNiPUUt5a4f86iJTa7q8jFntgd9SQBVWN+CLI5L9T7iTxi7JDbR+oHIOi3OT/dBlY9s2dWZCVAuNW9DHA==", - "dependencies": { - "@babel/core": "^7.0.0", - "metro-source-map": "0.57.0" - } - }, - "node_modules/metro-cache": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.57.0.tgz", - "integrity": "sha512-vdZaLyVhY7edArO069Jfg3RvYiratNsPtWh/oV5CtRXh5QYNyqWAEQ2riy0tZnC6ECwt6jAygQB8o3DNx5CI+w==", - "dependencies": { - "jest-serializer": "^24.4.0", - "metro-core": "0.57.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4" - } - }, - "node_modules/metro-cache/node_modules/jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-cache/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/metro-config": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.57.0.tgz", - "integrity": "sha512-QEz4Uu2fJoCguOuol72t4alG/vzHNaKOyYpd/evXokBFq2FsFw6dN5WYRL0mr6QlWPjh1efoeDD9s/DB2xG7nQ==", - "dependencies": { - "cosmiconfig": "^5.0.5", - "jest-validate": "^24.7.0", - "metro": "0.57.0", - "metro-cache": "0.57.0", - "metro-core": "0.57.0", - "pretty-format": "^24.7.0" - } - }, - "node_modules/metro-config/node_modules/@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-config/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/metro-config/node_modules/@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/metro-config/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/metro-config/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/metro-config/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/metro-config/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-config/node_modules/jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "dependencies": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-config/node_modules/pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "dependencies": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-config/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.57.0.tgz", - "integrity": "sha512-PSiCqis2tjlnafA3iVN2eDt2a7MgxgDpR7XfThqkgEhoQ9VL2Ko1n4btEGPT9O8YwjjpkVIG4hYc11mfpdCc/w==", - "dependencies": { - "jest-haste-map": "^24.7.1", - "lodash.throttle": "^4.1.1", - "metro-resolver": "0.57.0", - "wordwrap": "^1.0.0" - } - }, - "node_modules/metro-core/node_modules/@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "dependencies": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "dependencies": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "dependencies": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/metro-core/node_modules/@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "node_modules/metro-core/node_modules/@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/metro-core/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/metro-core/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/metro-core/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/metro-core/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/metro-core/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/metro-core/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/metro-core/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/metro-core/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "dependencies": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 6" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/metro-core/node_modules/jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "dependencies": { - "@jest/types": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "dependencies": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro-core/node_modules/jest-worker/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/metro-core/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-core/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/metro-core/node_modules/stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/metro-core/node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/metro-core/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-core/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.57.0.tgz", - "integrity": "sha512-F75MkDAl5eeFBchJacutMEKwx83RSKrteO3YrbBzpKapZcS6FspTYiXobyGUkaamoTWUVN6Eg1WOMacMPqH58A==", - "dependencies": { - "connect": "^3.6.5", - "debug": "^2.2.0", - "rxjs": "^5.4.3", - "ws": "^1.1.5", - "yargs": "^9.0.0" - }, - "bin": { - "metro-inspector-proxy": "src/cli.js" - } - }, - "node_modules/metro-inspector-proxy/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-inspector-proxy/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/cliui/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "node_modules/metro-inspector-proxy/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "node_modules/metro-inspector-proxy/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", - "dependencies": { - "options": ">=0.0.5", - "ultron": "1.0.x" - } - }, - "node_modules/metro-inspector-proxy/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "node_modules/metro-inspector-proxy/node_modules/yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dependencies": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - } - }, - "node_modules/metro-inspector-proxy/node_modules/yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dependencies": { - "camelcase": "^4.1.0" - } - }, - "node_modules/metro-minify-uglify": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.57.0.tgz", - "integrity": "sha512-hDTuYfpY+07b1x3i2c71CilH+9+vx4I5Lk57Q4T94tojzNGnsndQxq/AcRIbpbdiRlcw4r1+Fm4BLCR8J9JjTw==", - "dependencies": { - "uglify-es": "^3.1.9" - } - }, - "node_modules/metro-react-native-babel-preset": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.57.0.tgz", - "integrity": "sha512-pvLh1QOwdxsjgYE2a+4aTKs3LSF3+t4jscxHtkND6wsJnKVVspLt8FkDaORa6zr3Fq12tVpEt5NJMdgtWqBpaA==", - "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-exponentiation-operator": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-assign": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-regenerator": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.0.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "react-refresh": "^0.4.0" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/metro-resolver": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.57.0.tgz", - "integrity": "sha512-/MxN1s1y/5+dvAMoFOGGdXz4ps4b3NlYajpqJtivc21OFcmrHH3HD48P4zM+/pJmzLVYBYDSYIeUuhw1YpIVIA==", - "dependencies": { - "absolute-path": "^0.0.0" - } - }, - "node_modules/metro-source-map": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.57.0.tgz", - "integrity": "sha512-hYd2MmLUOmOJkQCzABLV3mYW7JwzkfvL9SUAHhRDzUS4Z69k+Yh2805HpH8/gN6SGvfw0PuPXXEixtvW66b6yQ==", - "dependencies": { - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.57.0", - "ob1": "0.57.0", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "node_modules/metro-source-map/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-symbolicate": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.57.0.tgz", - "integrity": "sha512-Gq30gqGAGYIpO7FdeUboQXaMUeiQqq2VNiPaLJg67zCz9FKLuS3Laf4i/mpUCzHv9+lqcEKIOEYP7SQaluUIPQ==", - "dependencies": { - "invariant": "^2.2.4", - "metro-source-map": "0.57.0", - "source-map": "^0.5.6", - "through2": "^2.0.1", - "vlq": "^1.0.0" - }, - "bin": { - "metro-symbolicate": "src/symbolicate.js" - }, - "engines": { - "node": ">=8.3" - } - }, - "node_modules/metro-symbolicate/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "dependencies": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "dependencies": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "dependencies": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/metro/node_modules/@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "node_modules/metro/node_modules/@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/metro/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/metro/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/metro/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/metro/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/metro/node_modules/cliui/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/metro/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/metro/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } - }, - "node_modules/metro/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/metro/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "node_modules/metro/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/metro/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/metro/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/metro/node_modules/jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "dependencies": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 6" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/metro/node_modules/jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "dependencies": { - "@jest/types": "^24.9.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "dependencies": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-util/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/metro/node_modules/jest-worker/node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/metro/node_modules/jest-worker/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/metro/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/metro/node_modules/merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/metro/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/mime-db": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", - "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/metro/node_modules/mime-types": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", - "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", - "dependencies": { - "mime-db": "~1.23.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/metro/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/metro/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "node_modules/metro/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/metro/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/metro/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/metro/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/metro/node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/metro/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/metro/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro/node_modules/throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" - }, - "node_modules/metro/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "node_modules/metro/node_modules/ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", - "dependencies": { - "options": ">=0.0.5", - "ultron": "1.0.x" - } - }, - "node_modules/metro/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "node_modules/metro/node_modules/yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dependencies": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - } - }, - "node_modules/metro/node_modules/yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dependencies": { - "camelcase": "^4.1.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mortice": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-2.0.1.tgz", - "integrity": "sha512-9gsXmjq+5LZmXDIoyC/crf2i/7CUwDGSBEwSEsr1i/WfKmJ6DVt38B5kg6BE/WF/1/yfGJYiB1Wyiu423iI3nQ==", - "dependencies": { - "nanoid": "^3.1.20", - "observable-webworkers": "^1.0.0", - "p-queue": "^6.0.0", - "promise-timeout": "^1.3.0" - } - }, - "node_modules/moving-average": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/moving-average/-/moving-average-1.0.1.tgz", - "integrity": "sha512-Hl3aUJqu/7LMslHM6mz9Sk1mpFwe4jW5QcmJgukcUGFILBcQW5L9ot8BUVRSuUaW3o/1Twrwmu7w2NTGvw76cA==" - }, - "node_modules/mri": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", - "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multiaddr": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz", - "integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==", - "dependencies": { - "cids": "^1.0.0", - "class-is": "^1.1.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^2.0.3", - "is-ip": "^3.1.0", - "multibase": "^3.0.0", - "uint8arrays": "^1.1.0", - "varint": "^5.0.0" - } - }, - "node_modules/multiaddr-to-uri": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz", - "integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==", - "dependencies": { - "multiaddr": "^8.0.0" - } - }, - "node_modules/multiaddr/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multiaddr/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/multiaddr/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/multibase": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multicast-dns": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.3.tgz", - "integrity": "sha512-TzxgGSLRLB7tqAlzjgd2x2ZE0cDsGFq4rs9W4yE5xp+7hlRXeUQGtXZsTGfGw2FwWB45rfe8DtXMYBpZGMLUng==", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicodec": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", - "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "node_modules/multicodec/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/multiformats": { - "version": "9.4.7", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.7.tgz", - "integrity": "sha512-fZbcdf7LnvokPAZYkv4TLXe7PAg9sQ5qLXcwrAmZOloEb2+5FtFiAY+l3/9wsu4oTJXTV3JSggFQQ2dJLS01vA==" - }, - "node_modules/multihashes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz", - "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==", - "dependencies": { - "multibase": "^3.1.0", - "uint8arrays": "^2.0.5", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashes/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashing-async": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", - "integrity": "sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==", - "dependencies": { - "blakejs": "^1.1.0", - "err-code": "^3.0.0", - "js-sha3": "^0.8.0", - "multihashes": "^4.0.1", - "murmurhash3js-revisited": "^3.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashing-async/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/multihashing-async/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashing-async/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/multihashing-async/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/multistream-select": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-1.0.0.tgz", - "integrity": "sha512-82riQ+qZ0RPY+KbRdeeKKQnFSBCVpUbZ15EniGU2nfwM8NdrpPIeUYXFw4a/pyprcNeRfMgLlG9aCh874p8nJg==", - "dependencies": { - "bl": "^4.0.0", - "debug": "^4.1.1", - "err-code": "^2.0.0", - "it-handshake": "^1.0.2", - "it-length-prefixed": "^3.0.0", - "it-pipe": "^1.0.1", - "it-reader": "^2.0.0", - "p-defer": "^3.0.0", - "uint8arrays": "^1.1.0" - } - }, - "node_modules/multistream-select/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/multistream-select/node_modules/it-reader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", - "dependencies": { - "bl": "^4.0.0" - } - }, - "node_modules/multistream-select/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multistream-select/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multistream-select/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/murmurhash3js-revisited": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", - "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/mutable-proxy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", - "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==", - "engines": { - "node": ">=6.X.X", - "npm": ">=3.X.X" - } - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "optional": true - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" - }, - "node_modules/nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" - }, - "node_modules/native-abort-controller": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", - "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==", - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "optional": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/needle/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "optional": true - }, - "node_modules/neon-cli": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.4.0.tgz", - "integrity": "sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w==", - "optional": true, - "dependencies": { - "chalk": "~2.1.0", - "command-line-args": "^4.0.2", - "command-line-commands": "^2.0.0", - "command-line-usage": "^4.0.0", - "git-config": "0.0.7", - "handlebars": "^4.1.0", - "inquirer": "^3.0.6", - "mkdirp": "^0.5.1", - "quickly-copy-file": "^1.0.0", - "rimraf": "^2.6.1", - "rsvp": "^4.6.1", - "semver": "^5.1.0", - "toml": "^2.3.0", - "ts-typed-json": "^0.2.2", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - }, - "bin": { - "neon": "bin/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/neon-cli/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "optional": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", - "optional": true, - "dependencies": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/neon-cli/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "optional": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/neon-cli/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "optional": true - }, - "node_modules/neon-cli/node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/neon-cli/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/neon-cli/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/neon-cli/node_modules/supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "optional": true, - "dependencies": { - "has-flag": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/nise": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", - "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", - "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/nise/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/nise/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/no-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-pre-gyp": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/node-pre-gyp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/node-pre-gyp/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" - }, - "node_modules/node-wget-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-wget-js/-/node-wget-js-1.0.1.tgz", - "integrity": "sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw==", - "dev": true, - "dependencies": { - "request": "^2.88.0" - }, - "bin": { - "wget": "cli.js" - } - }, - "node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "optional": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "optional": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "optional": true - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "optional": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nullthrows": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/ob1": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.57.0.tgz", - "integrity": "sha512-BRAyYcG7NeA8vZFQ/oMqw1fiRLdFcxi/x9DJ3KWeaSI7+tiO3MZwMjnkL9sdsZMEL4OtpggbeAK2dL3zYNiI1A==" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-path": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.7.tgz", - "integrity": "sha512-T4evaK9VfGGQskXBDILcn6F90ZD+WO3OwRFFQ2rmZdUH4vQeDBpiolTpVlPY2yj5xSepyILTjDyM6UvbbdHMZw==", - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/observable-webworkers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-1.0.0.tgz", - "integrity": "sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ==" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "dependencies": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" - } - }, - "node_modules/optional": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz", - "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==", - "optional": true - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dependencies": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-locale/node_modules/execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-locale/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "engines": { - "node": ">=4" - } - }, - "node_modules/os-locale/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-locale/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-locale/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-any": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", - "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", - "dependencies": { - "p-cancelable": "^2.0.0", - "p-some": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", - "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", - "dependencies": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-filter/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue/node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/p-queue/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-reflect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", - "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "dependencies": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-settle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", - "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", - "dependencies": { - "p-limit": "^2.2.2", - "p-reflect": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-settle/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-some": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", - "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", - "dependencies": { - "aggregate-error": "^3.0.0", - "p-cancelable": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/p-times": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-times/-/p-times-3.0.0.tgz", - "integrity": "sha512-/Z7mcs8Liie8E7IHI9SBtmkHVW/GjLroQ94ALoAMIG20mqFMuh56/3WYhtOTqX9ccRSOxgaCkFC94Bat1Ofskg==", - "dependencies": { - "p-map": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/p-try-each/-/p-try-each-1.0.1.tgz", - "integrity": "sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A==" - }, - "node_modules/p-wait-for": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz", - "integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==", - "dependencies": { - "p-timeout": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-wait-for/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/param-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/parse-duration": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-0.4.4.tgz", - "integrity": "sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg==" - }, - "node_modules/parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==" - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" - }, - "node_modules/parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/pascal-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, - "node_modules/peek-readable": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", - "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/peer-id": { - "version": "0.14.8", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.14.8.tgz", - "integrity": "sha512-GpuLpob/9FrEFvyZrKKsISEkaBYsON2u0WtiawLHj1ii6ewkoeRiSDFLyIefYhw0jGvQoeoZS05jaT52X7Bvig==", - "dependencies": { - "cids": "^1.1.5", - "class-is": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "minimist": "^1.2.5", - "multihashes": "^4.0.2", - "protobufjs": "^6.10.2", - "uint8arrays": "^2.0.5" - }, - "bin": { - "peer-id": "src/bin.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/peer-id/node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/peer-id/node_modules/multihashes/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/peer-id/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/pem-jwk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", - "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", - "dependencies": { - "asn1.js": "^5.0.1" - }, - "bin": { - "pem-jwk": "bin/pem-jwk.js" - }, - "engines": { - "node": ">=5.10.0" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pino": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.13.2.tgz", - "integrity": "sha512-vmD/cabJ4xKqo9GVuAoAEeQhra8XJ7YydPV/JyIP+0zDtFTu5JSKdtt8eksGVWKtTSrNGcRrzJ4/IzvUWep3FA==", - "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "fastify-warning": "^0.2.0", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-pretty": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-4.8.0.tgz", - "integrity": "sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw==", - "dependencies": { - "@hapi/bourne": "^2.0.0", - "args": "^5.0.1", - "chalk": "^4.0.0", - "dateformat": "^4.5.1", - "fast-safe-stringify": "^2.0.7", - "jmespath": "^0.15.0", - "joycon": "^2.2.5", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "rfdc": "^1.3.0", - "split2": "^3.1.1", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, - "node_modules/pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, - "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-format": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.1.1.tgz", - "integrity": "sha512-zdBi/xlstKJL42UH7goQti5Hip/B415w1Mfj+WWWYMBylAYtKESnXGUtVVcMVid9ReVjypCotUV6CEevYPHv2g==", - "dependencies": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/private-ip": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.2.1.tgz", - "integrity": "sha512-jN1WT/br/VNW9xEcwHr6DjtOKxQ5qOIqmh7o+co2TWgq56pZJw99iO3UT1tWdfgsQiyK9FqG4ji3ykwpjFqITA==", - "dependencies": { - "ip-regex": "^4.3.0", - "netmask": "^2.0.2" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/prom-client": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz", - "integrity": "sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ==", - "optional": true, - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prometheus-gc-stats": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/prometheus-gc-stats/-/prometheus-gc-stats-0.6.3.tgz", - "integrity": "sha512-vCX+HZ1jZHkha25r5dAcRSNjue+K3Hn0B33EcZl7y3hgp3o1YsQ4Y3x7oJWKvDdbelFIL0McsXGmRg3zBrmq+g==", - "optional": true, - "dependencies": { - "optional": "^0.1.3" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "gc-stats": "^1.4.0" - }, - "peerDependencies": { - "prom-client": ">= 10 <= 12" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/promise-timeout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/promise-timeout/-/promise-timeout-1.3.0.tgz", - "integrity": "sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg==" - }, - "node_modules/promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", - "dependencies": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, - "node_modules/proper-lockfile/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" - }, - "node_modules/protons": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/protons/-/protons-2.0.3.tgz", - "integrity": "sha512-j6JikP/H7gNybNinZhAHMN07Vjr1i4lVupg598l4I9gSTjJqOvKnwjzYX2PzvBTSVf2eZ2nWv4vG+mtW8L6tpA==", - "dependencies": { - "protocol-buffers-schema": "^3.3.1", - "signed-varint": "^2.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.0" - } - }, - "node_modules/protons/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/protons/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pvtsutils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.0.tgz", - "integrity": "sha512-IDefMJEQl7HX0FP2hIKJFnAR11klP1js2ixCrOaMhe3kXFK6RQ2ABUCuwWaaD4ib0hSbh2fGTICvWJJhDfNecA==", - "dependencies": { - "tslib": "^2.2.0" - } - }, - "node_modules/pvtsutils/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" - }, - "node_modules/quickly-copy-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", - "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.0" - } - }, - "node_modules/rabin-wasm": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz", - "integrity": "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==", - "dependencies": { - "@assemblyscript/loader": "^0.9.4", - "bl": "^5.0.0", - "debug": "^4.3.1", - "minimist": "^1.2.5", - "node-fetch": "^2.6.1", - "readable-stream": "^3.6.0" - }, - "bin": { - "rabin-wasm": "cli/bin.js" - } - }, - "node_modules/rabin-wasm/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/rabin-wasm/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/rabin-wasm/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/rabin-wasm/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-native-fetch-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", - "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", - "dependencies": { - "p-defer": "^3.0.0" - } - }, - "node_modules/react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/receptacle/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dependencies": { - "regenerate": "^1.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" - }, - "node_modules/regjsparser": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", - "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "node_modules/reset": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/reset/-/reset-0.1.0.tgz", - "integrity": "sha1-n8cxQXGZWubLC35YsGznUir0uvs=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "optional": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "optional": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retimer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", - "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/rfc4648": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz", - "integrity": "sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg==" - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-typescript2": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz", - "integrity": "sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==", - "dependencies": { - "@rollup/pluginutils": "^4.1.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.20.0", - "tslib": "2.1.0" - }, - "peerDependencies": { - "rollup": ">=1.26.3", - "typescript": ">=2.4.0" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", - "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "node_modules/rollup-plugin-typescript2/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/run": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/run/-/run-1.4.0.tgz", - "integrity": "sha1-4X2ekEOrL+F3dsspnhI3848LT/o=", - "dependencies": { - "minimatch": "*" - }, - "bin": { - "runjs": "cli.js" - }, - "engines": { - "node": ">=v0.9.0" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "optional": true - }, - "node_modules/rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "optional": true, - "dependencies": { - "rx-lite": "*" - } - }, - "node_modules/rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", - "dependencies": { - "symbol-observable": "1.0.1" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs/node_modules/symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/sane/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/sane/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/sane/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/secp256k1/node_modules/node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/sentence-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/serialize-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-delayed-interval": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", - "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/sha256": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU=", - "dependencies": { - "convert-hex": "~0.1.0", - "convert-string": "~0.1.0" - } - }, - "node_modules/sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "dependencies": { - "buffer": "6.0.3" - } - }, - "node_modules/sha3/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/signed-varint": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", - "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", - "dependencies": { - "varint": "~5.0.0" - } - }, - "node_modules/signed-varint/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/sinon": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", - "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", - "dependencies": { - "@sinonjs/commons": "^1.8.1", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/samsam": "^5.3.1", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/sinon/node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "engines": { - "node": "*" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/snake-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/socket.io": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz", - "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", - "dependencies": { - "debug": "~4.1.0", - "engine.io": "~3.5.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.4.0", - "socket.io-parser": "~3.4.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - }, - "node_modules/socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", - "dependencies": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - } - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", - "dependencies": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io-parser/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "node_modules/sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "node_modules/sparse-array": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", - "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "node_modules/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/steno": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", - "integrity": "sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs=", - "dependencies": { - "graceful-fs": "^4.1.3" - } - }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "engines": { - "node": ">=4", - "npm": ">=6" - } - }, - "node_modules/stream-to-it": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", - "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/streaming-iterables": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-5.0.4.tgz", - "integrity": "sha512-nEs6hBGIPsVz6uq6pscGGKfoPDQWrDQW0b0UHurtSDysekfKLmkPg7FQVRE2sj3Rad6yUo9E1sGTxOWyYsHQ/g==", - "engines": { - "node": ">=10" - } - }, - "node_modules/streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strtok3": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", - "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/subscriptions-transport-ws": { - "version": "0.9.19", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", - "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", - "dependencies": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependencies": { - "graphql": ">=0.10.0" - } - }, - "node_modules/subscriptions-transport-ws/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "optional": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true - }, - "node_modules/tdigest": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", - "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", - "dependencies": { - "bintrees": "1.0.1" - } - }, - "node_modules/temp": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", - "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", - "engines": [ - "node >=0.8.0" - ], - "dependencies": { - "os-tmpdir": "^1.0.0", - "rimraf": "~2.2.6" - } - }, - "node_modules/temp/node_modules/rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "optional": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-value/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/test-value/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "optional": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/time-cache": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/time-cache/-/time-cache-0.3.0.tgz", - "integrity": "sha1-7Q388P2kXNyV+9YB/agw6/G9XYs=", - "dependencies": { - "lodash.throttle": "^4.1.1" - } - }, - "node_modules/timeout-abort-controller": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", - "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "retimer": "^2.0.0" - } - }, - "node_modules/timestamp-nano": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.0.tgz", - "integrity": "sha512-NO/1CZigzlCWQiWdIGv8ebXt6Uk77zdLz2NE7KcZRU5Egj2+947lzUpk30xQUQlq5dRY25j7ZulG4RfA2DHYfA==", - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/tiny-each-async": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", - "integrity": "sha1-jru/1tYpXxNwAD+7NxYq/loKUdE=" - }, - "node_modules/tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dependencies": { - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tmp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", - "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/toml": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", - "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", - "optional": true - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, - "node_modules/ts-invariant": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", - "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-invariant/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/ts-jest": { - "version": "27.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.5.tgz", - "integrity": "sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "babel-jest": { - "optional": true - } - } - }, - "node_modules/ts-typed-json": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", - "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", - "optional": true, - "dependencies": { - "rsvp": "^3.5.0" - } - }, - "node_modules/ts-typed-json/node_modules/rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "optional": true, - "engines": { - "node": "0.12.* || 4.* || 6.* || >= 7.*" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-graphql": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz", - "integrity": "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==", - "hasInstallScript": true, - "dependencies": { - "@types/glob": "^7.1.3", - "@types/node": "*", - "@types/semver": "^7.3.3", - "glob": "^7.1.6", - "graphql-query-complexity": "^0.7.0", - "graphql-subscriptions": "^1.1.0", - "semver": "^7.3.2", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 10.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typegraphql" - }, - "peerDependencies": { - "class-validator": ">=0.12.0", - "graphql": "^15.3.0" - } - }, - "node_modules/type-graphql/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", - "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typical": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", - "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" - } - }, - "node_modules/uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", - "dependencies": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uglify-es/node_modules/commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" - }, - "node_modules/uglify-js": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unordered-array-remove": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", - "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/update-notifier/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/upper-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-to-multiaddr": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/uri-to-multiaddr/-/uri-to-multiaddr-4.0.0.tgz", - "integrity": "sha512-6zQ1uBlE+F//46CBA3lx3vBMhybSvdGJqgNyQPobSDsWGrDDdmJM/f95GPaswXAGFlRHPqOjrGKT11IcKmIfaA==", - "dependencies": { - "is-ip": "^3.1.0", - "multiaddr": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ursa-optional": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", - "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.14.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" - }, - "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util.promisify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", - "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", - "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "optional": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/validator": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.6.0.tgz", - "integrity": "sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/varint-decoder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz", - "integrity": "sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ==", - "dependencies": { - "varint": "^5.0.0" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/varint-decoder/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vlq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", - "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dependencies": { - "makeerror": "1.0.x" - } - }, - "node_modules/web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dependencies": { - "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.1.1.tgz", - "integrity": "sha512-Czi3fG883e96T4DLEPRvufrF2ydhOOW1+1a6c3gNjH2aIh50DNFBdfwh2AKoOf1rXvpvavAoA11Qdq9+BKjE0Q==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webcrypto-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.2.1.tgz", - "integrity": "sha512-5+h1/e/A4eegCRTg+oQ9ehTJRTMwFhZazJ2RH1FP0VC3q1/0xl7x6SzzTwPxd/VTGc7kjuSEJGnfNgoLe5jNRQ==", - "dependencies": { - "@peculiar/asn1-schema": "^2.0.38", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.0", - "tslib": "^2.3.1" - } - }, - "node_modules/webcrypto-core/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "node_modules/which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/widest-line/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "node_modules/wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", - "optional": true, - "dependencies": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/xmlhttprequest-ssl": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", - "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xor-distance": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xor-distance/-/xor-distance-2.0.0.tgz", - "integrity": "sha512-AsAqZfPAuWx7qB/0kyRDUEvoU3QKsHWzHU9smFlkaiprEpGfJ/NBbLze2Uq0rdkxCxkNM9uOLvz/KoNBCbZiLQ==" - }, - "node_modules/xpipe": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz", - "integrity": "sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=" - }, - "node_modules/xsalsa20": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.1.0.tgz", - "integrity": "sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw==" - }, - "node_modules/xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - }, - "node_modules/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "node_modules/zen-observable-ts": { - "version": "0.8.21", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", - "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", - "dependencies": { - "tslib": "^1.9.3", - "zen-observable": "^0.8.0" - } - } - }, - "dependencies": { - "@achingbrain/electron-fetch": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@achingbrain/electron-fetch/-/electron-fetch-1.7.2.tgz", - "integrity": "sha512-ShX5frO+2OddzRIlUb8D0Ao2eC3uZl910CYnRIPGLLM360vQceeOqpivwNdbry41Ph3MMtLR4RpzGdaADGG8Gg==", - "requires": { - "encoding": "^0.1.13" - } - }, - "@apollo/client": { - "version": "3.3.20", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", - "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", - "dev": true, - "requires": { - "@graphql-typed-document-node/core": "^3.0.0", - "@types/zen-observable": "^0.8.0", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "fast-json-stable-stringify": "^2.0.0", - "graphql-tag": "^2.12.0", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.0", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.7.0", - "tslib": "^1.10.0", - "zen-observable": "^0.8.14" - }, - "dependencies": { - "@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "dev": true, - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "dev": true - }, - "ts-invariant": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", - "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@apollo/protobufjs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz", - "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - } - } - }, - "@apollographql/apollo-tools": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz", - "integrity": "sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==" - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.27", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz", - "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==", - "requires": { - "xss": "^1.0.8" - } - }, - "@apollographql/graphql-upload-8-fork": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", - "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", - "requires": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "busboy": "^0.3.1", - "fs-capacitor": "^2.0.4", - "http-errors": "^1.7.3", - "object-path": "^0.11.4" - } - }, - "@assemblyscript/loader": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", - "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" - }, - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" - }, - "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz", - "integrity": "sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", - "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", - "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz", - "integrity": "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", - "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz", - "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-wrap-function": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", - "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" - }, - "@babel/helper-wrap-function": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz", - "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==", - "requires": { - "@babel/helper-function-name": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", - "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/plugin-external-helpers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.14.5.tgz", - "integrity": "sha512-q/B/hLX+nDGk73Xn529d7Ar4ih17J8pNBbsXafq8oXij0XfFEA/bks+u+6q5q04zO5o/qivjzui6BqzPfYShEg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-export-default-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz", - "integrity": "sha512-T8KZ5abXvKMjF6JcoXjgac3ElmXf0AWzJwi2O/42Jk+HmCky3D9+i1B7NPP1FblyceqTevKeV/9szeikFoaMDg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-default-from": "^7.14.5" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", - "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.15.4" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", - "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-default-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.14.5.tgz", - "integrity": "sha512-snWDxjuaPEobRBnhpqEfZ8RMxDbHt8+87fiEioGuE+Uc0xAKgSD8QiuL3lF93hPVQfZFAcYwrrf+H5qUhike3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz", - "integrity": "sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", - "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", - "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", - "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", - "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", - "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz", - "integrity": "sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-flow": "^7.14.5" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", - "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", - "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", - "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", - "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", - "requires": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-object-assign": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz", - "integrity": "sha512-lvhjk4UN9xJJYB1mI5KC0/o1D5EcJXdbhVe+4fSk08D6ZN+iuAIs7LJC+71h8av9Ew4+uRq9452v9R93SFmQlQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", - "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", - "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.15.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz", - "integrity": "sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", - "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.9" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz", - "integrity": "sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", - "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", - "babel-plugin-polyfill-regenerator": "^0.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", - "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", - "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/register": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz", - "integrity": "sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw==", - "requires": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - } - } - }, - "@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@beyonk/svelte-notifications": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@beyonk/svelte-notifications/-/svelte-notifications-4.1.1.tgz", - "integrity": "sha512-UMfc5K6pfAkPrtp6OL2/ZbnSBzsQaG6qYBHJVnBdoEXdH+jlL4mx0FZ6wsS90aSz9akZGRyVzsIB0e9zaWLiGw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@ethereumjs/common": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.4.0.tgz", - "integrity": "sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w==", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.0" - } - }, - "@ethereumjs/tx": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.0.tgz", - "integrity": "sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA==", - "requires": { - "@ethereumjs/common": "^2.4.0", - "ethereumjs-util": "^7.1.0" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz", - "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==", - "requires": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz", - "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==", - "requires": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0" - } - }, - "@ethersproject/address": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", - "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", - "requires": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/rlp": "^5.4.0" - } - }, - "@ethersproject/base64": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", - "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", - "requires": { - "@ethersproject/bytes": "^5.4.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.2.tgz", - "integrity": "sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA==", - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", - "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", - "requires": { - "@ethersproject/logger": "^5.4.0" - } - }, - "@ethersproject/constants": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", - "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", - "requires": { - "@ethersproject/bignumber": "^5.4.0" - } - }, - "@ethersproject/hash": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", - "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", - "requires": { - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", - "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", - "requires": { - "@ethersproject/bytes": "^5.4.0", - "js-sha3": "0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - } - } - }, - "@ethersproject/logger": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.1.tgz", - "integrity": "sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A==" - }, - "@ethersproject/networks": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz", - "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==", - "requires": { - "@ethersproject/logger": "^5.4.0" - } - }, - "@ethersproject/properties": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.1.tgz", - "integrity": "sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w==", - "requires": { - "@ethersproject/logger": "^5.4.0" - } - }, - "@ethersproject/rlp": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", - "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", - "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", - "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "@ethersproject/transactions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", - "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", - "requires": { - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/signing-key": "^5.4.0" - } - }, - "@ethersproject/web": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", - "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", - "requires": { - "@ethersproject/base64": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, - "@graphql-typed-document-node/core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz", - "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==", - "requires": {} - }, - "@grpc/grpc-js": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.7.tgz", - "integrity": "sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA==", - "requires": { - "@types/node": ">=12.12.47" - }, - "dependencies": { - "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" - } - } - }, - "@hapi/accept": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", - "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/ammo": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", - "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/b64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", - "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/boom": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", - "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/bounce": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", - "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/call": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", - "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/catbox": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", - "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/podium": "4.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/catbox-memory": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", - "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/content": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", - "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", - "requires": { - "@hapi/boom": "9.x.x" - } - }, - "@hapi/cryptiles": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", - "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", - "requires": { - "@hapi/boom": "9.x.x" - } - }, - "@hapi/file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", - "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" - }, - "@hapi/hapi": { - "version": "20.1.5", - "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.1.5.tgz", - "integrity": "sha512-BhJ5XFR9uWPUBj/z5pPqXSk8OnvQQU/EbQjwpmjZy0ymNEiq7kIhXkAmzXcntbBHta9o7zpW8XMeXnfV4wudXw==", - "requires": { - "@hapi/accept": "^5.0.1", - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/bounce": "^2.0.0", - "@hapi/call": "^8.0.0", - "@hapi/catbox": "^11.1.1", - "@hapi/catbox-memory": "^5.0.0", - "@hapi/heavy": "^7.0.1", - "@hapi/hoek": "^9.0.4", - "@hapi/mimos": "^6.0.0", - "@hapi/podium": "^4.1.1", - "@hapi/shot": "^5.0.5", - "@hapi/somever": "^3.0.0", - "@hapi/statehood": "^7.0.3", - "@hapi/subtext": "^7.0.3", - "@hapi/teamwork": "^5.1.0", - "@hapi/topo": "^5.0.0", - "@hapi/validate": "^1.1.1" - } - }, - "@hapi/heavy": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", - "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" - }, - "@hapi/inert": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@hapi/inert/-/inert-6.0.4.tgz", - "integrity": "sha512-tpmNqtCCAd+5Ts07bJmMaA79+ZUIf0zSWnQMaWtbcO4nGrO/yXB2AzoslfzFX2JEV9vGeF3FfL8mYw0pHl8VGg==", - "requires": { - "@hapi/ammo": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x", - "lru-cache": "^6.0.0" - } - }, - "@hapi/iron": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", - "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", - "requires": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/mimos": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz", - "integrity": "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==", - "requires": { - "@hapi/hoek": "9.x.x", - "mime-db": "1.x.x" - } - }, - "@hapi/nigel": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", - "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", - "requires": { - "@hapi/hoek": "^9.0.4", - "@hapi/vise": "^4.0.0" - } - }, - "@hapi/pez": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", - "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", - "requires": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/content": "^5.0.2", - "@hapi/hoek": "9.x.x", - "@hapi/nigel": "4.x.x" - } - }, - "@hapi/podium": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", - "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", - "requires": { - "@hapi/hoek": "9.x.x", - "@hapi/teamwork": "5.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/shot": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", - "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", - "requires": { - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/somever": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz", - "integrity": "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==", - "requires": { - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/statehood": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", - "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/iron": "6.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/subtext": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", - "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/content": "^5.0.2", - "@hapi/file": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/pez": "^5.0.1", - "@hapi/wreck": "17.x.x" - } - }, - "@hapi/teamwork": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", - "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==" - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@hapi/validate": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", - "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0" - } - }, - "@hapi/vise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", - "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/wreck": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz", - "integrity": "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@holochain/conductor-api": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@holochain/conductor-api/-/conductor-api-0.2.0.tgz", - "integrity": "sha512-GUjItNXRAxrae9hwf3brVVAB55bkG+Z3u6tEkmazrMs2tk+egIOjN9Oin1GsORjQoNw+7xj7mwZ1+TLY2F8hiQ==", - "requires": { - "@msgpack/msgpack": "2.4.0", - "@types/ws": "^7.2.4", - "isomorphic-ws": "^4.0.1", - "nanoid": "^3.1.9", - "ws": "^7.3.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - } - }, - "@jest/core": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.2.0.tgz", - "integrity": "sha512-E/2NHhq+VMo18DpKkoty8Sjey8Kps5Cqa88A8NP757s6JjYqPdioMuyUBhDiIOGCdQByEp0ou3jskkTszMS0nw==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/reporters": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.1.1", - "jest-config": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-resolve-dependencies": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "jest-watcher": "^27.2.0", - "micromatch": "^4.0.4", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, - "jest-haste-map": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", - "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.2.0" - } - }, - "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "@jest/environment": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.2.0.tgz", - "integrity": "sha512-iPWmQI0wRIYSZX3wKu4FXHK4eIqkfq6n1DCDJS+v3uby7SOXrHvX4eiTBuEdSvtDRMTIH2kjrSkjHf/F9JIYyQ==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1" - }, - "dependencies": { - "@jest/fake-timers": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.0.tgz", - "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*" - } - }, - "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/globals": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.2.0.tgz", - "integrity": "sha512-raqk9Gf9WC3hlBa57rmRmJfRl9hom2b+qEE/ifheMtwn5USH5VZxzrHHOZg0Zsd/qC2WJ8UtyTwHKQAnNlDMdg==", - "dev": true, - "requires": { - "@jest/environment": "^27.2.0", - "@jest/types": "^27.1.1", - "expect": "^27.2.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/reporters": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.2.0.tgz", - "integrity": "sha512-7wfkE3iRTLaT0F51h1mnxH3nQVwDCdbfgXiLuCcNkF1FnxXLH9utHqkSLIiwOTV1AtmiE0YagHbOvx4rnMP/GA==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.2.0.tgz", - "integrity": "sha512-PrqarcpzOU1KSAK7aPwfL8nnpaqTMwPe7JBPnaOYRDSe/C6AoJiL5Kbnonqf1+DregxZIRAoDg69R9/DXMGqXA==", - "dev": true, - "requires": { - "@jest/test-result": "^27.2.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-runtime": "^27.2.0" - }, - "dependencies": { - "@jest/console": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@jest/transform": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.2.0.tgz", - "integrity": "sha512-Q8Q/8xXIZYllk1AF7Ou5sV3egOZsdY/Wlv09CSbcexBRcC1Qt6lVZ7jRFAZtbHsEEzvOCyFEC4PcrwKwyjXtCg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.1.1", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.2.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" - }, - "@material/animation": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-11.0.0.tgz", - "integrity": "sha512-pAJRl0ySvfOzqyGUme27tPf1LbqrjSTK4g5kngpXOPAIQdYYx89QLAfcqHONSpvXO7/WP+Kc9zJ3WWxbUaG8Wg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "@material/base": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-11.0.0.tgz", - "integrity": "sha512-GTybYdiWBoEyYQ3he8cEeuXe5mPq2peFX41rBsMrs516TGDxrVJrEAKNedydhtpfRBsZRreTXMLZtbGrZzfIFQ==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "@material/button": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/button/-/button-11.0.0.tgz", - "integrity": "sha512-KqqxEcsj8jBkV1yNEiPoHiB1AJBa/1OGm7H+hF+C3RUTIrRLew8IuRL1ZY38ukdHvhno1/qmVMKOs6ui0mxjlg==", - "dev": true, - "requires": { - "@material/density": "^11.0.0", - "@material/dom": "^11.0.0", - "@material/elevation": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/ripple": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/shape": "^11.0.0", - "@material/theme": "^11.0.0", - "@material/touch-target": "^11.0.0", - "@material/typography": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/density": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/density/-/density-11.0.0.tgz", - "integrity": "sha512-FuSx0UukH7p9cIAxEg78zwL5iYuoa/YovyHuuEEudyhWsRH+u0KBSQlYWr+ykg//qZF6urlDrVmu7WAKi1SiCw==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "@material/dom": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-11.0.0.tgz", - "integrity": "sha512-LZdg6VmYnMXc/Ct/GdQ22o4m3UgjhZYQIrwu9Iebqchx0Vd2OTmcFN5nArHSCSgUEhpjpPlkbZmjOpeOAwiKZg==", - "dev": true, - "requires": { - "@material/feature-targeting": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/elevation": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-11.0.0.tgz", - "integrity": "sha512-mgrUSBAdXJ1+VS/SWnu/gr9/nq7P1q5X3aDmoom2EPKauEeKhuAHjABI5duxHOrliZM3mK9VLO56D/tszb7spw==", - "dev": true, - "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/feature-targeting": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-11.0.0.tgz", - "integrity": "sha512-7/jdaHm7C16Eq02tDQ1iI+giWKgk+QRNWFrmGKzHfXbU604XwY/eSLSiVS8QI01vx9QZ0aO9K84m0yhQQNQQtg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "@material/floating-label": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-11.0.0.tgz", - "integrity": "sha512-sY/ijV06cU0y9+1OB122d6z2AuxLzjQgQGVq9dFLoVRL6jhV2HgOxGF/3cvZsgGGsv2liXagkmQ02jBV1ypvgA==", - "dev": true, - "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/dom": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/theme": "^11.0.0", - "@material/typography": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/line-ripple": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-11.0.0.tgz", - "integrity": "sha512-ws0p28hfG5P7RuCJZhHBDhPd/pYusszwRWMa1xkATxCjdCDc9hC9RIsUb6eIG9/iwpYnLNRvIoR5iF+01rVhow==", - "dev": true, - "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/notched-outline": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-11.0.0.tgz", - "integrity": "sha512-GwYFIRA6raFljNARmEpIcIjHztjKD8wcDf+6xl1WezsprGd/Qdzq59/VX76y1et8ZkkL0+fE+4dEaVpCHq/e8A==", - "dev": true, - "requires": { - "@material/base": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/floating-label": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/shape": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/ripple": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-11.0.0.tgz", - "integrity": "sha512-672zAsYaL8aS861VgfEPL4sFMkFe0psiSc+4DfUTq7Nanl4e1gcarzzHZAn5IExUNk3/5QybDiXV+dbaL/0NjQ==", - "dev": true, - "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/dom": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/rtl": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-11.0.0.tgz", - "integrity": "sha512-FcS8+N9MhnC0Wdd34O2yCC/5ylIwkfHjV5pbmHyEtb4YXoWngnPIxgpOr5PsUv95WSQBmeqWCRJDwS+sGZHoKQ==", - "dev": true, - "requires": { - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/shape": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-11.0.0.tgz", - "integrity": "sha512-O9/Dt/9Nbum1IvxRd4u8gCF4ghk9E55UNp2TGe+RN43zpTUbChh2raOFr3sQeRwLIzlb4wstUG9AxmdktrkDUQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/textfield": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-11.0.0.tgz", - "integrity": "sha512-7GwZCJplxQpdExNO8K3IOPH/SniCd4bcvOuKGYWjW1irOLYVX2Om0e7X2q70XWvD/B85Rb8ZaPXqx3EJiwNrvQ==", - "dev": true, - "requires": { - "@material/animation": "^11.0.0", - "@material/base": "^11.0.0", - "@material/density": "^11.0.0", - "@material/dom": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "@material/floating-label": "^11.0.0", - "@material/line-ripple": "^11.0.0", - "@material/notched-outline": "^11.0.0", - "@material/ripple": "^11.0.0", - "@material/rtl": "^11.0.0", - "@material/shape": "^11.0.0", - "@material/theme": "^11.0.0", - "@material/typography": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/theme": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-11.0.0.tgz", - "integrity": "sha512-GnQI8sd2wHFD3AvmhpyRaH5o9D5Shobs1xDH4FdRU9+c+FNNqouZMDzyM6UpCX4700DzqvE7l0/1LjzB7ve7Lg==", - "dev": true, - "requires": { - "@material/feature-targeting": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/touch-target": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-11.0.0.tgz", - "integrity": "sha512-S1XPYj3Bnkw26nFdYRZ0BHcNLfizF8HBeX9+OR7KuJUKaFB6CN01CtyEmDU3XNI0n140KjMtJnsZykWZommolQ==", - "dev": true, - "requires": { - "@material/base": "^11.0.0", - "@material/feature-targeting": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@material/typography": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-11.0.0.tgz", - "integrity": "sha512-i9IGO/ZsF+YnqC2+PpJapt/8hSXOKFXaqv6B9uUr+iQ8GD4bEFpxm5kChzH918wJpCHvxbTYbnR6buaF9nkjCQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^11.0.0", - "@material/theme": "^11.0.0", - "tslib": "^2.1.0" - } - }, - "@mattrglobal/bbs-signatures": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", - "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", - "requires": { - "@mattrglobal/node-bbs-signatures": "0.11.0" - } - }, - "@mattrglobal/bls12381-key-pair": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", - "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", - "requires": { - "@mattrglobal/bbs-signatures": "0.5.0", - "bs58": "4.0.1", - "rfc4648": "1.4.0" - } - }, - "@mattrglobal/node-bbs-signatures": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", - "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", - "optional": true, - "requires": { - "neon-cli": "0.4.0", - "node-pre-gyp": "0.14.0" - } - }, - "@metamask/detect-provider": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz", - "integrity": "sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ==" - }, - "@motrix/nat-api": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", - "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", - "requires": { - "async": "^3.2.0", - "debug": "^4.3.1", - "default-gateway": "^6.0.3", - "request": "^2.88.2", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.4.23" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@msgpack/msgpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", - "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==" - }, - "@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "@peculiar/asn1-schema": { - "version": "2.0.38", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.38.tgz", - "integrity": "sha512-zZ64UpCTm9me15nuCpPgJghSdbEm8atcDQPCyK+bKXjZAQ1735NCZXCSCfbckbQ4MH36Rm9403n/qMq77LFDzQ==", - "requires": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.0", - "tslib": "^2.3.0" - } - }, - "@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "requires": { - "tslib": "^2.0.0" - } - }, - "@peculiar/webcrypto": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz", - "integrity": "sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ==", - "requires": { - "@peculiar/asn1-schema": "^2.0.32", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.1.6", - "tslib": "^2.2.0", - "webcrypto-core": "^1.2.0" - } - }, - "@perspect3vism/ad4m": { - "version": "file:../ad4m", - "requires": { - "@apollo/client": "3.3.20", - "@holochain/conductor-api": "0.0.4", - "@types/jest": "^27.0.1", - "@types/mocha": "^8.0.3", - "class-validator": "^0.13.1", - "graphql": "^15.5.0", - "react": "^17.0.2", - "reflect-metadata": "^0.1.13", - "type-graphql": "^1.1.1" - }, - "dependencies": { - "@apollo/client": { - "version": "3.3.20", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", - "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", - "requires": { - "@graphql-typed-document-node/core": "^3.0.0", - "@types/zen-observable": "^0.8.0", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "fast-json-stable-stringify": "^2.0.0", - "graphql-tag": "^2.12.0", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.0", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.7.0", - "tslib": "^1.10.0", - "zen-observable": "^0.8.14" - } - }, - "@apollo/link-error": { - "version": "2.0.0-beta.3", - "resolved": "https://registry.npmjs.org/@apollo/link-error/-/link-error-2.0.0-beta.3.tgz", - "integrity": "sha512-blNBBi9+4SEfb4Bhn8cYqGFhb0C7MjqLiRwNdUqwGefl1w+G8Ze8pCLHAyPxXLcslirtht9LY0i6ZOpCzSXHCg==", - "requires": { - "@apollo/client": "^3.0.0-beta.23", - "tslib": "^1.9.3" - } - }, - "@apollo/protobufjs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz", - "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - } - } - }, - "@apollographql/apollo-tools": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz", - "integrity": "sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==" - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.27", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz", - "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==", - "requires": { - "xss": "^1.0.8" - } - }, - "@apollographql/graphql-upload-8-fork": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", - "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", - "requires": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "busboy": "^0.3.1", - "fs-capacitor": "^2.0.4", - "http-errors": "^1.7.3", - "object-path": "^0.11.4" - } - }, - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" - }, - "@babel/core": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz", - "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.0", - "@babel/helper-module-transforms": "^7.15.0", - "@babel/helpers": "^7.14.8", - "@babel/parser": "^7.15.0", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", - "requires": { - "@babel/types": "^7.15.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", - "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", - "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", - "requires": { - "@babel/types": "^7.15.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", - "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.0", - "@babel/helper-simple-access": "^7.14.8", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" - }, - "@babel/helper-replace-supers": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", - "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.0", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", - "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", - "requires": { - "@babel/types": "^7.14.8" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" - }, - "@babel/helpers": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz", - "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==", - "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", - "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==" - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "@graphql-typed-document-node/core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz", - "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==" - }, - "@holochain/conductor-api": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@holochain/conductor-api/-/conductor-api-0.0.4.tgz", - "integrity": "sha512-s52H+JMtiWID8wsqkKVkbjNDrHeVD88X+XWEllIi9INc7md2nBkMKBVChc/qgpRFqrpj2X8j/Es9MtvIJYnQqg==", - "requires": { - "@msgpack/msgpack": "2.4.0", - "@types/ws": "^7.2.4", - "isomorphic-ws": "^4.0.1", - "nanoid": "^3.1.9", - "ws": "^7.3.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - }, - "@jest/console": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.1.0.tgz", - "integrity": "sha512-+Vl+xmLwAXLNlqT61gmHEixeRbS4L8MUzAjtpBCOPWH+izNI/dR16IeXjkXJdRtIVWVSf9DO1gdp67B1XorZhQ==", - "requires": { - "@jest/types": "^27.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.1.0", - "jest-util": "^27.1.0", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.1.0.tgz", - "integrity": "sha512-3l9qmoknrlCFKfGdrmiQiPne+pUR4ALhKwFTYyOeKw6egfDwJkO21RJ1xf41rN8ZNFLg5W+w6+P4fUqq4EMRWA==", - "requires": { - "@jest/console": "^27.1.0", - "@jest/reporters": "^27.1.0", - "@jest/test-result": "^27.1.0", - "@jest/transform": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.1.0", - "jest-config": "^27.1.0", - "jest-haste-map": "^27.1.0", - "jest-message-util": "^27.1.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.0", - "jest-resolve-dependencies": "^27.1.0", - "jest-runner": "^27.1.0", - "jest-runtime": "^27.1.0", - "jest-snapshot": "^27.1.0", - "jest-util": "^27.1.0", - "jest-validate": "^27.1.0", - "jest-watcher": "^27.1.0", - "micromatch": "^4.0.4", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.1.0.tgz", - "integrity": "sha512-wRp50aAMY2w1U2jP1G32d6FUVBNYqmk8WaGkiIEisU48qyDV0WPtw3IBLnl7orBeggveommAkuijY+RzVnNDOQ==", - "requires": { - "@jest/fake-timers": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/node": "*", - "jest-mock": "^27.1.0" - } - }, - "@jest/fake-timers": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.1.0.tgz", - "integrity": "sha512-22Zyn8il8DzpS+30jJNVbTlm7vAtnfy1aYvNeOEHloMlGy1PCYLHa4PWlSws0hvNsMM5bON6GISjkLoQUV3oMA==", - "requires": { - "@jest/types": "^27.1.0", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.1.0", - "jest-mock": "^27.1.0", - "jest-util": "^27.1.0" - } - }, - "@jest/globals": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.1.0.tgz", - "integrity": "sha512-73vLV4aNHAlAgjk0/QcSIzzCZSqVIPbmFROJJv9D3QUR7BI4f517gVdJpSrCHxuRH3VZFhe0yGG/tmttlMll9g==", - "requires": { - "@jest/environment": "^27.1.0", - "@jest/types": "^27.1.0", - "expect": "^27.1.0" - } - }, - "@jest/reporters": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.1.0.tgz", - "integrity": "sha512-5T/zlPkN2HnK3Sboeg64L5eC8iiaZueLpttdktWTJsvALEtP2YMkC5BQxwjRWQACG9SwDmz+XjjkoxXUDMDgdw==", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.1.0", - "@jest/test-result": "^27.1.0", - "@jest/transform": "^27.1.0", - "@jest/types": "^27.1.0", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.1.0", - "jest-resolve": "^27.1.0", - "jest-util": "^27.1.0", - "jest-worker": "^27.1.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.0.0" - } - }, - "@jest/source-map": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.1.0.tgz", - "integrity": "sha512-Aoz00gpDL528ODLghat3QSy6UBTD5EmmpjrhZZMK/v1Q2/rRRqTGnFxHuEkrD4z/Py96ZdOHxIWkkCKRpmnE1A==", - "requires": { - "@jest/console": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.1.0.tgz", - "integrity": "sha512-lnCWawDr6Z1DAAK9l25o3AjmKGgcutq1iIbp+hC10s/HxnB8ZkUsYq1FzjOoxxZ5hW+1+AthBtvS4x9yno3V1A==", - "requires": { - "@jest/test-result": "^27.1.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.0", - "jest-runtime": "^27.1.0" - } - }, - "@jest/transform": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.1.0.tgz", - "integrity": "sha512-ZRGCA2ZEVJ00ubrhkTG87kyLbN6n55g1Ilq0X9nJb5bX3MhMp3O6M7KG+LvYu+nZRqG5cXsQnJEdZbdpTAV8pQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.1.0", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.0", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.1.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "@msgpack/msgpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", - "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@rollup/plugin-alias": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.5.tgz", - "integrity": "sha512-yzUaSvCC/LJPbl9rnzX3HN7vy0tq7EzHoEiQl1ofh4n5r2Rd5bj/+zcJgaGA76xbw95/JjWQyvHg9rOJp2y0oQ==", - "requires": { - "slash": "^3.0.0" - } - }, - "@rollup/plugin-commonjs": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz", - "integrity": "sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - }, - "dependencies": { - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - } - } - }, - "@rollup/plugin-node-resolve": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz", - "integrity": "sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/babel__core": { - "version": "7.1.15", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.15.tgz", - "integrity": "sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" - }, - "@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", - "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==" - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/fs-capacitor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", - "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "requires": { - "@types/node": "*" - } - }, - "@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" - }, - "@types/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.1.tgz", - "integrity": "sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw==", - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" - }, - "@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", - "requires": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "requires": { - "@types/koa": "*" - } - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==" - }, - "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" - }, - "@types/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==" - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "@types/reflect-metadata": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@types/reflect-metadata/-/reflect-metadata-0.1.0.tgz", - "integrity": "sha512-bXltFLY3qhzCnVYP5iUpeSICagQ8rc9K2liS+8M0lBcz54BHs3O6W5UvqespVSuebo1BXLi+/y9ioELAW9SC2A==", - "requires": { - "reflect-metadata": "*" - } - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now==" - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "@types/validator": { - "version": "13.6.3", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.6.3.tgz", - "integrity": "sha512-fWG42pMJOL4jKsDDZZREnXLjc3UE0R8LOJfARWYg6U966rxDT7TYejYzLnUF5cvSObGg34nd0+H2wHHU5Omdfw==" - }, - "@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - }, - "@types/zen-observable": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", - "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" - }, - "@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "@wry/trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", - "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "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" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "apollo-cache-control": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz", - "integrity": "sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==", - "requires": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - } - }, - "apollo-datasource": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz", - "integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==", - "requires": { - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - } - }, - "apollo-graphql": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.3.tgz", - "integrity": "sha512-rcAl2E841Iko4kSzj4Pt3PRBitmyq1MvoEmpl04TQSpGnoVgl1E/ZXuLBYxMTSnEAm7umn2IsoY+c6Ll9U/10A==", - "requires": { - "core-js-pure": "^3.10.2", - "lodash.sortby": "^4.7.0", - "sha.js": "^2.4.11" - } - }, - "apollo-link": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz", - "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==", - "requires": { - "apollo-utilities": "^1.3.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3", - "zen-observable-ts": "^0.8.21" - }, - "dependencies": { - "ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "requires": { - "tslib": "^1.9.3" - } - } - } - }, - "apollo-reporting-protobuf": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz", - "integrity": "sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==", - "requires": { - "@apollo/protobufjs": "1.2.2" - } - }, - "apollo-server": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.2.tgz", - "integrity": "sha512-2Ekx9puU5DqviZk6Kw1hbqTun3lwOWUjhiBJf+UfifYmnqq0s9vAv6Ditw+DEXwphJQ4vGKVVgVIEw6f/9YfhQ==", - "requires": { - "apollo-server-core": "^2.25.2", - "apollo-server-express": "^2.25.2", - "express": "^4.0.0", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "stoppable": "^1.1.0" - } - }, - "apollo-server-caching": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz", - "integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "apollo-server-core": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.2.tgz", - "integrity": "sha512-lrohEjde2TmmDTO7FlOs8x5QQbAS0Sd3/t0TaK2TWaodfzi92QAvIsq321Mol6p6oEqmjm8POIDHW1EuJd7XMA==", - "requires": { - "@apollographql/apollo-tools": "^0.5.0", - "@apollographql/graphql-playground-html": "1.6.27", - "@apollographql/graphql-upload-8-fork": "^8.1.3", - "@josephg/resolvable": "^1.0.0", - "@types/ws": "^7.0.0", - "apollo-cache-control": "^0.14.0", - "apollo-datasource": "^0.9.0", - "apollo-graphql": "^0.9.0", - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0", - "apollo-server-errors": "^2.5.0", - "apollo-server-plugin-base": "^0.13.0", - "apollo-server-types": "^0.9.0", - "apollo-tracing": "^0.15.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "^0.15.0", - "graphql-tag": "^2.11.0", - "graphql-tools": "^4.0.8", - "loglevel": "^1.6.7", - "lru-cache": "^6.0.0", - "sha.js": "^2.4.11", - "subscriptions-transport-ws": "^0.9.19", - "uuid": "^8.0.0" - } - }, - "apollo-server-env": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz", - "integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==", - "requires": { - "node-fetch": "^2.6.1", - "util.promisify": "^1.0.0" - } - }, - "apollo-server-errors": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz", - "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==" - }, - "apollo-server-express": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.2.tgz", - "integrity": "sha512-A2gF2e85vvDugPlajbhr0A14cDFDIGX0mteNOJ8P3Z3cIM0D4hwrWxJidI+SzobefDIyIHu1dynFedJVhV0euQ==", - "requires": { - "@apollographql/graphql-playground-html": "1.6.27", - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.0", - "@types/cors": "2.8.10", - "@types/express": "^4.17.12", - "@types/express-serve-static-core": "^4.17.21", - "accepts": "^1.3.5", - "apollo-server-core": "^2.25.2", - "apollo-server-types": "^0.9.0", - "body-parser": "^1.18.3", - "cors": "^2.8.5", - "express": "^4.17.1", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "parseurl": "^1.3.2", - "subscriptions-transport-ws": "^0.9.19", - "type-is": "^1.6.16" - }, - "dependencies": { - "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - } - } - }, - "apollo-server-plugin-base": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz", - "integrity": "sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==", - "requires": { - "apollo-server-types": "^0.9.0" - } - }, - "apollo-server-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz", - "integrity": "sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==", - "requires": { - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - } - }, - "apollo-tracing": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz", - "integrity": "sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==", - "requires": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - } - }, - "apollo-utilities": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz", - "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==", - "requires": { - "@wry/equality": "^0.1.2", - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "@wry/equality": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", - "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", - "requires": { - "tslib": "^1.9.3" - } - }, - "ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "requires": { - "tslib": "^1.9.3" - } - } - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "requires": { - "retry": "0.13.1" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "babel-jest": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.1.0.tgz", - "integrity": "sha512-6NrdqzaYemALGCuR97QkC/FkFIEBWP5pw5TMJoUHZTVXyOgocujp6A0JE2V6gE0HtqAAv6VKU/nI+OCR1Z4gHA==", - "requires": { - "@jest/transform": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.0.6", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz", - "integrity": "sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==", - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz", - "integrity": "sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==", - "requires": { - "babel-plugin-jest-hoist": "^27.0.6", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "browserslist": { - "version": "4.16.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", - "integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", - "requires": { - "caniuse-lite": "^1.0.30001251", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.811", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" - }, - "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", - "requires": { - "dicer": "0.3.0" - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "caniuse-lite": { - "version": "1.0.30001252", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz", - "integrity": "sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==" - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" - }, - "class-validator": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.1.tgz", - "integrity": "sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg==", - "requires": { - "@types/validator": "^13.1.3", - "libphonenumber-js": "^1.9.7", - "validator": "^13.5.2" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - }, - "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==" - }, - "colorette": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", - "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-js-pure": { - "version": "3.16.4", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.4.tgz", - "integrity": "sha512-bY1K3/1Jy9D8Jd12eoeVahNXHLfHFb4TXWI8SQ4y8bImR9qDPmGITBAfmcffTkgUvbJn87r8dILOTWW5kZzkgA==" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", - "requires": { - "node-fetch": "2.6.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - } - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "deprecated-decorator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", - "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" - }, - "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", - "requires": { - "streamsearch": "0.1.2" - } - }, - "diff-sequences": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==" - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.824", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.824.tgz", - "integrity": "sha512-Fk+5aD0HDi9i9ZKt9n2VPOZO1dQy7PV++hz2wJ/KIn+CvVfu4fny39squHtyVDPuHNuoJGAZIbuReEklqYIqfA==" - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "expect": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.1.0.tgz", - "integrity": "sha512-9kJngV5hOJgkFil4F/uXm3hVBubUK2nERVfvqNNwxxuW8ZOUwSTTSysgfzckYtv/LBzj/LJXbiAF7okHCXgdug==", - "requires": { - "@jest/types": "^27.1.0", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.1.0", - "jest-message-util": "^27.1.0", - "jest-regex-util": "^27.0.6" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "requires": { - "bser": "2.1.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-capacitor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", - "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" - }, - "graphql-extensions": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz", - "integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==", - "requires": { - "@apollographql/apollo-tools": "^0.5.0", - "apollo-server-env": "^3.1.0", - "apollo-server-types": "^0.9.0" - } - }, - "graphql-query-complexity": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", - "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", - "requires": { - "lodash.get": "^4.4.2" - } - }, - "graphql-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", - "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", - "requires": { - "iterall": "^1.3.0" - } - }, - "graphql-tag": { - "version": "2.12.5", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz", - "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==", + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "color-convert": "^1.9.0" } }, - "graphql-tools": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", - "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "apollo-link": "^1.2.14", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { - "function-bind": "^1.1.1" + "color-name": "1.1.3" } }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "react-is": "^16.7.0" + "has-flag": "^3.0.0" } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + } + } + }, + "@jest/core": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.2.4.tgz", + "integrity": "sha512-UNQLyy+rXoojNm2MGlapgzWhZD1CT1zcHZQYeiD0xE7MtJfC19Q6J5D/Lm2l7i4V97T30usKDoEtjI8vKwWcLg==", + "dev": true, + "requires": { + "@jest/console": "^27.2.4", + "@jest/reporters": "^27.2.4", + "@jest/test-result": "^27.2.4", + "@jest/transform": "^27.2.4", + "@jest/types": "^27.2.4", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^27.2.4", + "jest-config": "^27.2.4", + "jest-haste-map": "^27.2.4", + "jest-message-util": "^27.2.4", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.2.4", + "jest-resolve-dependencies": "^27.2.4", + "jest-runner": "^27.2.4", + "jest-runtime": "^27.2.4", + "jest-snapshot": "^27.2.4", + "jest-util": "^27.2.4", + "jest-validate": "^27.2.4", + "jest-watcher": "^27.2.4", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "@jest/console": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", + "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", + "dev": true, "requires": { - "whatwg-encoding": "^1.0.5" + "@jest/types": "^27.2.4", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.4", + "jest-util": "^27.2.4", + "slash": "^3.0.0" } }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "@jest/test-result": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", + "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", + "dev": true, "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } + "@jest/console": "^27.2.4", + "@jest/types": "^27.2.4", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "type-fest": "^0.21.3" } }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "import-local": { + "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "fill-range": "^7.0.1" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "to-regex-range": "^5.0.1" } }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, "requires": { "ci-info": "^3.1.1" } }, - "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "requires": { - "@types/estree": "*" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "jest": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.1.0.tgz", - "integrity": "sha512-pSQDVwRSwb109Ss13lcMtdfS9r8/w2Zz8+mTUA9VORD66GflCdl8nUFCqM96geOD2EBwWCNURrNAfQsLIDNBdg==", - "requires": { - "@jest/core": "^27.1.0", - "import-local": "^3.0.2", - "jest-cli": "^27.1.0" - } - }, - "jest-changed-files": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.1.0.tgz", - "integrity": "sha512-eRcb13TfQw0xiV2E98EmiEgs9a5uaBIqJChyl0G7jR9fCIvGjXovnDS6Zbku3joij4tXYcSK4SE1AXqOlUxjWg==", - "requires": { - "@jest/types": "^27.1.0", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.1.0.tgz", - "integrity": "sha512-6FWtHs3nZyZlMBhRf1wvAC5CirnflbGJAY1xssSAnERLiiXQRH+wY2ptBVtXjX4gz4AA2EwRV57b038LmifRbA==", - "requires": { - "@jest/environment": "^27.1.0", - "@jest/test-result": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.1.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.1.0", - "jest-matcher-utils": "^27.1.0", - "jest-message-util": "^27.1.0", - "jest-runtime": "^27.1.0", - "jest-snapshot": "^27.1.0", - "jest-util": "^27.1.0", - "pretty-format": "^27.1.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - } - }, - "jest-cli": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.1.0.tgz", - "integrity": "sha512-h6zPUOUu+6oLDrXz0yOWY2YXvBLk8gQinx4HbZ7SF4V3HzasQf+ncoIbKENUMwXyf54/6dBkYXvXJos+gOHYZw==", - "requires": { - "@jest/core": "^27.1.0", - "@jest/test-result": "^27.1.0", - "@jest/types": "^27.1.0", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.1.0", - "jest-util": "^27.1.0", - "jest-validate": "^27.1.0", - "prompts": "^2.0.1", - "yargs": "^16.0.3" - } - }, - "jest-config": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.1.0.tgz", - "integrity": "sha512-GMo7f76vMYUA3b3xOdlcKeKQhKcBIgurjERO2hojo0eLkKPGcw7fyIoanH+m6KOP2bLad+fGnF8aWOJYxzNPeg==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.1.0", - "@jest/types": "^27.1.0", - "babel-jest": "^27.1.0", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.1.0", - "jest-environment-jsdom": "^27.1.0", - "jest-environment-node": "^27.1.0", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.1.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.0", - "jest-runner": "^27.1.0", - "jest-util": "^27.1.0", - "jest-validate": "^27.1.0", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.0" - } - }, - "jest-diff": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.0.tgz", - "integrity": "sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - } - }, - "jest-docblock": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.1.0.tgz", - "integrity": "sha512-K/cNvQlmDqQMRHF8CaQ0XPzCfjP5HMJc2bIJglrIqI9fjwpNqITle63IWE+wq4p+3v+iBgh7Wq0IdGpLx5xjDg==", - "requires": { - "@jest/types": "^27.1.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.1.0", - "pretty-format": "^27.1.0" - } - }, - "jest-environment-jsdom": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.1.0.tgz", - "integrity": "sha512-JbwOcOxh/HOtsj56ljeXQCUJr3ivnaIlM45F5NBezFLVYdT91N5UofB1ux2B1CATsQiudcHdgTaeuqGXJqjJYQ==", - "requires": { - "@jest/environment": "^27.1.0", - "@jest/fake-timers": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/node": "*", - "jest-mock": "^27.1.0", - "jest-util": "^27.1.0", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.1.0.tgz", - "integrity": "sha512-JIyJ8H3wVyM4YCXp7njbjs0dIT87yhGlrXCXhDKNIg1OjurXr6X38yocnnbXvvNyqVTqSI4M9l+YfPKueqL1lw==", - "requires": { - "@jest/environment": "^27.1.0", - "@jest/fake-timers": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/node": "*", - "jest-mock": "^27.1.0", - "jest-util": "^27.1.0" - } - }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "jest-haste-map": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.1.0.tgz", - "integrity": "sha512-7mz6LopSe+eA6cTFMf10OfLLqRoIPvmMyz5/OnSXnHO7hB0aDP1iIeLWCXzAcYU5eIJVpHr12Bk9yyq2fTW9vg==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.4.tgz", + "integrity": "sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA==", + "dev": true, "requires": { - "@jest/types": "^27.1.0", + "@jest/types": "^27.2.4", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", "graceful-fs": "^4.2.4", "jest-regex-util": "^27.0.6", "jest-serializer": "^27.0.6", - "jest-util": "^27.1.0", - "jest-worker": "^27.1.0", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", "micromatch": "^4.0.4", "walker": "^1.0.7" } }, - "jest-jasmine2": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.1.0.tgz", - "integrity": "sha512-Z/NIt0wBDg3przOW2FCWtYjMn3Ip68t0SL60agD/e67jlhTyV3PIF8IzT9ecwqFbeuUSO2OT8WeJgHcalDGFzQ==", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.1.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.1.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.1.0", - "jest-matcher-utils": "^27.1.0", - "jest-message-util": "^27.1.0", - "jest-runtime": "^27.1.0", - "jest-snapshot": "^27.1.0", - "jest-util": "^27.1.0", - "pretty-format": "^27.1.0", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.1.0.tgz", - "integrity": "sha512-oHvSkz1E80VyeTKBvZNnw576qU+cVqRXUD3/wKXh1zpaki47Qty2xeHg2HKie9Hqcd2l4XwircgNOWb/NiGqdA==", - "requires": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.0" - } - }, - "jest-matcher-utils": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.1.0.tgz", - "integrity": "sha512-VmAudus2P6Yt/JVBRdTPFhUzlIN8DYJd+et5Rd9QDsO/Z82Z4iwGjo43U8Z+PTiz8CBvKvlb6Fh3oKy39hykkQ==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.1.0", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.0" - } - }, "jest-message-util": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.1.0.tgz", - "integrity": "sha512-Eck8NFnJ5Sg36R9XguD65cf2D5+McC+NF5GIdEninoabcuoOfWrID5qJhufq5FB0DRKoiyxB61hS7MKoMD0trQ==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", + "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.0", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.1.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, - "jest-mock": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.0.tgz", - "integrity": "sha512-iT3/Yhu7DwAg/0HvvLCqLvrTKTRMyJlrrfJYWzuLSf9RCAxBoIXN3HoymZxMnYsC3eD8ewGbUa9jUknwBenx2w==", - "requires": { - "@jest/types": "^27.1.0", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" - }, - "jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==" - }, - "jest-resolve": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.1.0.tgz", - "integrity": "sha512-TXvzrLyPg0vLOwcWX38ZGYeEztSEmW+cQQKqc4HKDUwun31wsBXwotRlUz4/AYU/Fq4GhbMd/ileIWZEtcdmIA==", - "requires": { - "@jest/types": "^27.1.0", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.1.0", - "jest-validate": "^27.1.0", - "resolve": "^1.20.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.1.0.tgz", - "integrity": "sha512-Kq5XuDAELuBnrERrjFYEzu/A+i2W7l9HnPWqZEeKGEQ7m1R+6ndMbdXCVCx29Se1qwLZLgvoXwinB3SPIaitMQ==", - "requires": { - "@jest/types": "^27.1.0", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.1.0" - } - }, - "jest-runner": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.1.0.tgz", - "integrity": "sha512-ZWPKr9M5w5gDplz1KsJ6iRmQaDT/yyAFLf18fKbb/+BLWsR1sCNC2wMT0H7pP3gDcBz0qZ6aJraSYUNAGSJGaw==", - "requires": { - "@jest/console": "^27.1.0", - "@jest/environment": "^27.1.0", - "@jest/test-result": "^27.1.0", - "@jest/transform": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.1.0", - "jest-environment-node": "^27.1.0", - "jest-haste-map": "^27.1.0", - "jest-leak-detector": "^27.1.0", - "jest-message-util": "^27.1.0", - "jest-resolve": "^27.1.0", - "jest-runtime": "^27.1.0", - "jest-util": "^27.1.0", - "jest-worker": "^27.1.0", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.1.0.tgz", - "integrity": "sha512-okiR2cpGjY0RkWmUGGado6ETpFOi9oG3yV0CioYdoktkVxy5Hv0WRLWnJFuArSYS8cHMCNcceUUMGiIfgxCO9A==", - "requires": { - "@jest/console": "^27.1.0", - "@jest/environment": "^27.1.0", - "@jest/fake-timers": "^27.1.0", - "@jest/globals": "^27.1.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.0", - "@jest/transform": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.0", - "jest-message-util": "^27.1.0", - "jest-mock": "^27.1.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.0", - "jest-snapshot": "^27.1.0", - "jest-util": "^27.1.0", - "jest-validate": "^27.1.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - } - }, "jest-serializer": { "version": "27.0.6", "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, "requires": { "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.1.0.tgz", - "integrity": "sha512-eaeUBoEjuuRwmiRI51oTldUsKOohB1F6fPqWKKILuDi/CStxzp2IWekVUXbuHHoz5ik33ioJhshiHpgPFbYgcA==", - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.1.0", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.1.0", - "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.1.0", - "jest-matcher-utils": "^27.1.0", - "jest-message-util": "^27.1.0", - "jest-resolve": "^27.1.0", - "jest-util": "^27.1.0", - "natural-compare": "^1.4.0", - "pretty-format": "^27.1.0", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.1.0.tgz", - "integrity": "sha512-edSLD2OneYDKC6gZM1yc+wY/877s/fuJNoM1k3sOEpzFyeptSmke3SLnk1dDHk9CgTA+58mnfx3ew3J11Kes/w==", - "requires": { - "@jest/types": "^27.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.1.0.tgz", - "integrity": "sha512-QiJ+4XuSuMsfPi9zvdO//IrSRSlG6ybJhOpuqYSsuuaABaNT84h0IoD6vvQhThBOKT+DIKvl5sTM0l6is9+SRA==", - "requires": { - "@jest/types": "^27.1.0", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - } - } - }, - "jest-watcher": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.1.0.tgz", - "integrity": "sha512-ivaWTrA46aHWdgPDgPypSHiNQjyKnLBpUIHeBaGg11U+pDzZpkffGlcB1l1a014phmG0mHgkOHtOgiqJQM6yKQ==", - "requires": { - "@jest/test-result": "^27.1.0", - "@jest/types": "^27.1.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.1.0", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.0.tgz", - "integrity": "sha512-mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "libphonenumber-js": { - "version": "1.9.34", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.34.tgz", - "integrity": "sha512-gHTNU9xTtVgSp30IDX/57W4pETMXDIYXFfwEOJVXiYosiY7Hc7ogJwlBjOqlCcU04X0aA8DT57hdwUC1sJBJnA==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "graceful-fs": "^4.2.4" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "jest-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", + "dev": true, "requires": { - "yallist": "^4.0.0" + "@jest/types": "^27.2.4", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "jest-validate": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.4.tgz", + "integrity": "sha512-VMtbxbkd7LHnIH7PChdDtrluCFRJ4b1YV2YJzNwwsASMWftq/HgqiqjvptBOWyWOtevgO3f14wPxkPcLlVBRog==", + "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "@jest/types": "^27.2.4", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "leven": "^3.1.0", + "pretty-format": "^27.2.4" } }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "jest-worker": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.4.tgz", + "integrity": "sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==", + "dev": true, "requires": { - "tmpl": "1.0.x" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" } }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.2.3" } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" - }, - "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" - }, - "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "requires": { - "path-key": "^3.0.0" + "glob": "^7.1.3" } }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-path": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.7.tgz", - "integrity": "sha512-T4evaK9VfGGQskXBDILcn6F90ZD+WO3OwRFFQ2rmZdUH4vQeDBpiolTpVlPY2yj5xSepyILTjDyM6UvbbdHMZw==" + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "escape-string-regexp": "^2.0.0" } }, - "object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" + "ansi-regex": "^5.0.1" } }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "requires": { - "ee-first": "1.1.1" + "has-flag": "^4.0.0" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { - "wrappy": "1" + "is-number": "^7.0.0" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "@jest/environment": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.2.4.tgz", + "integrity": "sha512-wkuui5yr3SSQW0XD0Qm3TATUbL/WE3LDEM3ulC+RCQhMf2yxhci8x7svGkZ4ivJ6Pc94oOzpZ6cdHBAMSYd1ew==", + "dev": true, + "requires": { + "@jest/fake-timers": "^27.2.4", + "@jest/types": "^27.2.4", + "@types/node": "*", + "jest-mock": "^27.2.4" + }, + "dependencies": { + "@jest/fake-timers": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.4.tgz", + "integrity": "sha512-cs/TzvwWUM7kAA6Qm/890SK6JJ2pD5RfDNM3SSEom6BmdyV6OiWP1qf/pqo6ts6xwpcM36oN0wSEzcZWc6/B6w==", + "dev": true, "requires": { - "mimic-fn": "^2.1.0" + "@jest/types": "^27.2.4", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.2.4", + "jest-mock": "^27.2.4", + "jest-util": "^27.2.4" } }, - "optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", + "@sinonjs/fake-timers": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", + "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", + "dev": true, "requires": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" + "@sinonjs/commons": "^1.7.0" } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "fill-range": "^7.0.1" } }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==" + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { - "p-try": "^2.0.0" + "to-regex-range": "^5.0.1" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, "requires": { - "p-limit": "^2.2.0" + "ci-info": "^3.1.1" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "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==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "jest-message-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", + "dev": true, "requires": { - "node-modules-regexp": "^1.0.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.2.4", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.4", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "jest-mock": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.2.4.tgz", + "integrity": "sha512-iVRU905rutaAoUcrt5Tm1JoHHWi24YabqEGXjPJI4tAyA6wZ7mzDi3GrZ+M7ebgWBqUkZE93GAx1STk7yCMIQA==", + "dev": true, "requires": { - "find-up": "^4.0.0" + "@jest/types": "^27.2.4", + "@types/node": "*" } }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } + "jest-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", + "dev": true, + "requires": { + "@jest/types": "^27.2.4", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } }, - "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "escape-string-regexp": "^2.0.0" } }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "is-number": "^7.0.0" } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + } + } + }, + "@jest/fake-timers": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", + "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", + "requires": { + "@jest/types": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0" + }, + "dependencies": { + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" } }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" } }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "requires": { + "@types/yargs-parser": "*" + } + } + } + }, + "@jest/globals": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.2.4.tgz", + "integrity": "sha512-DRsRs5dh0i+fA9mGHylTU19+8fhzNJoEzrgsu+zgJoZth3x8/0juCQ8nVVdW1er4Cqifb/ET7/hACYVPD0dBEA==", + "dev": true, + "requires": { + "@jest/environment": "^27.2.4", + "@jest/types": "^27.2.4", + "expect": "^27.2.4" + } + }, + "@jest/reporters": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.2.4.tgz", + "integrity": "sha512-LHeSdDnDZkDnJ8kvnjcqV8P1Yv/32yL4d4XfR5gBiy3xGO0onwll1QEbvtW96fIwhx2nejug0GTaEdNDoyr3fQ==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.2.4", + "@jest/test-result": "^27.2.4", + "@jest/transform": "^27.2.4", + "@jest/types": "^27.2.4", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^27.2.4", + "jest-resolve": "^27.2.4", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "dependencies": { + "@jest/console": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", + "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", + "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "@jest/types": "^27.2.4", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.4", + "jest-util": "^27.2.4", + "slash": "^3.0.0" } }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "@jest/test-result": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", + "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", + "dev": true, "requires": { - "resolve-from": "^5.0.0" + "@jest/console": "^27.2.4", + "@jest/types": "^27.2.4", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } }, - "rimraf": { + "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "glob": "^7.1.3" + "fill-range": "^7.0.1" } }, - "rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { - "xmlchars": "^2.2.0" + "to-regex-range": "^5.0.1" } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, "requires": { - "lru-cache": "^6.0.0" + "ci-info": "^3.1.1" } }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-haste-map": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.4.tgz", + "integrity": "sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA==", + "dev": true, "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } + "@jest/types": "^27.2.4", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", + "micromatch": "^4.0.4", + "walker": "^1.0.7" } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "jest-message-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", + "dev": true, "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.2.4", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.4", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "@types/node": "*", + "graceful-fs": "^4.2.4" } }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "jest-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", + "dev": true, "requires": { - "shebang-regex": "^3.0.0" + "@jest/types": "^27.2.4", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "jest-worker": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.4.tgz", + "integrity": "sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==", + "dev": true, "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" } }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true }, "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, "requires": { "escape-string-regexp": "^2.0.0" } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==" - }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "has-flag": "^4.0.0" } }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "is-number": "^7.0.0" } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + } + } + }, + "@jest/source-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", + "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", + "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", + "requires": { + "@jest/console": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/istanbul-lib-coverage": "^2.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" } }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "subscriptions-transport-ws": { - "version": "0.9.19", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", - "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", - "requires": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" - }, - "dependencies": { - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - } + "@types/yargs-parser": "*" } - }, - "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==", + } + } + }, + "@jest/test-sequencer": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.2.4.tgz", + "integrity": "sha512-fpk5eknU3/DXE2QCCG1wv/a468+cfPo3Asu6d6yUtM9LOPh709ubZqrhuUOYfM8hXMrIpIdrv1CdCrWWabX0rQ==", + "dev": true, + "requires": { + "@jest/test-result": "^27.2.4", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.2.4", + "jest-runtime": "^27.2.4" + }, + "dependencies": { + "@jest/console": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", + "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", + "dev": true, "requires": { - "has-flag": "^4.0.0" + "@jest/types": "^27.2.4", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.4", + "jest-util": "^27.2.4", + "slash": "^3.0.0" } }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "@jest/test-result": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", + "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", + "dev": true, "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "@jest/console": "^27.2.4", + "@jest/types": "^27.2.4", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, - "symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "fill-range": "^7.0.1" } }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true }, - "to-fast-properties": { + "escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { - "is-number": "^7.0.0" + "to-regex-range": "^5.0.1" } }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" + "ci-info": "^3.1.1" } }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "requires": { - "punycode": "^2.1.1" - } + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, - "ts-invariant": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", - "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", + "jest-haste-map": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.4.tgz", + "integrity": "sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA==", + "dev": true, "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "@jest/types": "^27.2.4", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", + "micromatch": "^4.0.4", + "walker": "^1.0.7" } }, - "ts-jest": { - "version": "27.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.5.tgz", - "integrity": "sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==", + "jest-message-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", + "dev": true, "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.2.4", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.4", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "@types/node": "*", + "graceful-fs": "^4.2.4" } }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - }, - "type-graphql": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz", - "integrity": "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==", + "jest-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", + "dev": true, "requires": { - "@types/glob": "^7.1.3", + "@jest/types": "^27.2.4", "@types/node": "*", - "@types/semver": "^7.3.3", - "glob": "^7.1.6", - "graphql-query-complexity": "^0.7.0", - "graphql-subscriptions": "^1.1.0", - "semver": "^7.3.2", - "tslib": "^2.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "jest-worker": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.4.tgz", + "integrity": "sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==", + "dev": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" } }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, "requires": { - "is-typedarray": "^1.0.0" + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, - "typescript": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", - "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==" + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" + "escape-string-regexp": "^2.0.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "util.promisify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", - "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" + "has-flag": "^4.0.0" } }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-to-istanbul": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", - "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" } - }, - "validator": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.6.0.tgz", - "integrity": "sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + } + } + }, + "@jest/transform": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.2.4.tgz", + "integrity": "sha512-n5FlX2TH0oQGwyVDKPxdJ5nI2sO7TJBFe3u3KaAtt7TOiV4yL+Y+rSFDl+Ic5MpbiA/eqXmLAQxjnBmWgS2rEA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.2.4", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.2.4", + "jest-regex-util": "^27.0.6", + "jest-util": "^27.2.4", + "micromatch": "^4.0.4", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { - "browser-process-hrtime": "^1.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { - "xml-name-validator": "^3.0.0" + "fill-range": "^7.0.1" } }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { - "makeerror": "1.0.x" + "to-regex-range": "^5.0.1" } }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, "requires": { - "iconv-lite": "0.4.24" + "ci-info": "^3.1.1" } }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "jest-haste-map": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.4.tgz", + "integrity": "sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA==", + "dev": true, "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "@jest/types": "^27.2.4", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", + "micromatch": "^4.0.4", + "walker": "^1.0.7" } }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, "requires": { - "isexe": "^2.0.0" + "@types/node": "*", + "graceful-fs": "^4.2.4" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "jest-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", + "dev": true, "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "@jest/types": "^27.2.4", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "jest-worker": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.4.tgz", + "integrity": "sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==", + "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, - "ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==" - }, - "xml-name-validator": { + "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true }, - "xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "requires": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" + "has-flag": "^4.0.0" } }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "@jest/types": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.4.tgz", + "integrity": "sha512-IDO2ezTxeMvQAHxzG/ZvEyA47q0aVfzT95rGFl7bZs/Go0aIucvfDbS2rmnoEdXxlLQhcolmoG/wvL/uKx4tKA==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "@types/node": { + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" + } + } + }, + "@josephg/resolvable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", + "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", + "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" + }, + "@material/animation": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-11.0.0.tgz", + "integrity": "sha512-pAJRl0ySvfOzqyGUme27tPf1LbqrjSTK4g5kngpXOPAIQdYYx89QLAfcqHONSpvXO7/WP+Kc9zJ3WWxbUaG8Wg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/base": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-11.0.0.tgz", + "integrity": "sha512-GTybYdiWBoEyYQ3he8cEeuXe5mPq2peFX41rBsMrs516TGDxrVJrEAKNedydhtpfRBsZRreTXMLZtbGrZzfIFQ==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/button": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-11.0.0.tgz", + "integrity": "sha512-KqqxEcsj8jBkV1yNEiPoHiB1AJBa/1OGm7H+hF+C3RUTIrRLew8IuRL1ZY38ukdHvhno1/qmVMKOs6ui0mxjlg==", + "dev": true, + "requires": { + "@material/density": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/elevation": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/touch-target": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/density": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-11.0.0.tgz", + "integrity": "sha512-FuSx0UukH7p9cIAxEg78zwL5iYuoa/YovyHuuEEudyhWsRH+u0KBSQlYWr+ykg//qZF6urlDrVmu7WAKi1SiCw==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/dom": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-11.0.0.tgz", + "integrity": "sha512-LZdg6VmYnMXc/Ct/GdQ22o4m3UgjhZYQIrwu9Iebqchx0Vd2OTmcFN5nArHSCSgUEhpjpPlkbZmjOpeOAwiKZg==", + "dev": true, + "requires": { + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/elevation": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-11.0.0.tgz", + "integrity": "sha512-mgrUSBAdXJ1+VS/SWnu/gr9/nq7P1q5X3aDmoom2EPKauEeKhuAHjABI5duxHOrliZM3mK9VLO56D/tszb7spw==", + "dev": true, + "requires": { + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/feature-targeting": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-11.0.0.tgz", + "integrity": "sha512-7/jdaHm7C16Eq02tDQ1iI+giWKgk+QRNWFrmGKzHfXbU604XwY/eSLSiVS8QI01vx9QZ0aO9K84m0yhQQNQQtg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/floating-label": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-11.0.0.tgz", + "integrity": "sha512-sY/ijV06cU0y9+1OB122d6z2AuxLzjQgQGVq9dFLoVRL6jhV2HgOxGF/3cvZsgGGsv2liXagkmQ02jBV1ypvgA==", + "dev": true, + "requires": { + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/line-ripple": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-11.0.0.tgz", + "integrity": "sha512-ws0p28hfG5P7RuCJZhHBDhPd/pYusszwRWMa1xkATxCjdCDc9hC9RIsUb6eIG9/iwpYnLNRvIoR5iF+01rVhow==", + "dev": true, + "requires": { + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/notched-outline": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-11.0.0.tgz", + "integrity": "sha512-GwYFIRA6raFljNARmEpIcIjHztjKD8wcDf+6xl1WezsprGd/Qdzq59/VX76y1et8ZkkL0+fE+4dEaVpCHq/e8A==", + "dev": true, + "requires": { + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/floating-label": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/ripple": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-11.0.0.tgz", + "integrity": "sha512-672zAsYaL8aS861VgfEPL4sFMkFe0psiSc+4DfUTq7Nanl4e1gcarzzHZAn5IExUNk3/5QybDiXV+dbaL/0NjQ==", + "dev": true, + "requires": { + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/rtl": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-11.0.0.tgz", + "integrity": "sha512-FcS8+N9MhnC0Wdd34O2yCC/5ylIwkfHjV5pbmHyEtb4YXoWngnPIxgpOr5PsUv95WSQBmeqWCRJDwS+sGZHoKQ==", + "dev": true, + "requires": { + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/shape": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-11.0.0.tgz", + "integrity": "sha512-O9/Dt/9Nbum1IvxRd4u8gCF4ghk9E55UNp2TGe+RN43zpTUbChh2raOFr3sQeRwLIzlb4wstUG9AxmdktrkDUQ==", + "dev": true, + "requires": { + "@material/feature-targeting": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/textfield": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-11.0.0.tgz", + "integrity": "sha512-7GwZCJplxQpdExNO8K3IOPH/SniCd4bcvOuKGYWjW1irOLYVX2Om0e7X2q70XWvD/B85Rb8ZaPXqx3EJiwNrvQ==", + "dev": true, + "requires": { + "@material/animation": "^11.0.0", + "@material/base": "^11.0.0", + "@material/density": "^11.0.0", + "@material/dom": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "@material/floating-label": "^11.0.0", + "@material/line-ripple": "^11.0.0", + "@material/notched-outline": "^11.0.0", + "@material/ripple": "^11.0.0", + "@material/rtl": "^11.0.0", + "@material/shape": "^11.0.0", + "@material/theme": "^11.0.0", + "@material/typography": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/theme": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-11.0.0.tgz", + "integrity": "sha512-GnQI8sd2wHFD3AvmhpyRaH5o9D5Shobs1xDH4FdRU9+c+FNNqouZMDzyM6UpCX4700DzqvE7l0/1LjzB7ve7Lg==", + "dev": true, + "requires": { + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/touch-target": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-11.0.0.tgz", + "integrity": "sha512-S1XPYj3Bnkw26nFdYRZ0BHcNLfizF8HBeX9+OR7KuJUKaFB6CN01CtyEmDU3XNI0n140KjMtJnsZykWZommolQ==", + "dev": true, + "requires": { + "@material/base": "^11.0.0", + "@material/feature-targeting": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@material/typography": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-11.0.0.tgz", + "integrity": "sha512-i9IGO/ZsF+YnqC2+PpJapt/8hSXOKFXaqv6B9uUr+iQ8GD4bEFpxm5kChzH918wJpCHvxbTYbnR6buaF9nkjCQ==", + "dev": true, + "requires": { + "@material/feature-targeting": "^11.0.0", + "@material/theme": "^11.0.0", + "tslib": "^2.1.0" + } + }, + "@mattrglobal/bbs-signatures": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", + "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", + "requires": { + "@mattrglobal/node-bbs-signatures": "0.11.0" + } + }, + "@mattrglobal/bls12381-key-pair": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", + "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", + "requires": { + "@mattrglobal/bbs-signatures": "0.5.0", + "bs58": "4.0.1", + "rfc4648": "1.4.0" + } + }, + "@mattrglobal/node-bbs-signatures": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", + "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", + "optional": true, + "requires": { + "neon-cli": "0.4.0", + "node-pre-gyp": "0.14.0" + } + }, + "@metamask/detect-provider": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz", + "integrity": "sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ==" + }, + "@motrix/nat-api": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", + "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", + "requires": { + "async": "^3.2.0", + "debug": "^4.3.1", + "default-gateway": "^6.0.3", + "request": "^2.88.2", + "unordered-array-remove": "^1.0.2", + "xml2js": "^0.4.23" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "ms": "2.1.2" } }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - }, - "zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "zen-observable-ts": { - "version": "0.8.21", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", - "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@msgpack/msgpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.4.0.tgz", + "integrity": "sha512-5qzv53J43V8GaYsaETs29Q0Ehw9Dog6SG18MASZRQDuZYXtA5T7pymGE2S40NL0X8sjl8+TybmRa5O8d45V7MQ==" + }, + "@multiformats/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, + "@peculiar/asn1-schema": { + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.38.tgz", + "integrity": "sha512-zZ64UpCTm9me15nuCpPgJghSdbEm8atcDQPCyK+bKXjZAQ1735NCZXCSCfbckbQ4MH36Rm9403n/qMq77LFDzQ==", + "requires": { + "@types/asn1js": "^2.0.2", + "asn1js": "^2.1.1", + "pvtsutils": "^1.2.0", + "tslib": "^2.3.0" + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@peculiar/webcrypto": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz", + "integrity": "sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ==", + "requires": { + "@peculiar/asn1-schema": "^2.0.32", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.1.6", + "tslib": "^2.2.0", + "webcrypto-core": "^1.2.0" + } + }, + "@perspect3vism/ad4m": { + "version": "0.1.20", + "resolved": "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.1.20.tgz", + "integrity": "sha512-DBP23mFNhSrWAMTX3KLBpv2DU7wG4+OxJWK1oqd844a0E3ujgoZl6jbenDY8Yj9iRhEy//7etiHfN1rjSA/mCQ==", + "requires": { + "@apollo/client": "3.3.20", + "@holochain/conductor-api": "0.0.4", + "@types/jest": "^27.0.1", + "@types/mocha": "^8.0.3", + "class-validator": "^0.13.1", + "graphql": "^15.5.0", + "react": "^17.0.2", + "reflect-metadata": "^0.1.13", + "type-graphql": "^1.1.1" + }, + "dependencies": { + "@holochain/conductor-api": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@holochain/conductor-api/-/conductor-api-0.0.4.tgz", + "integrity": "sha512-s52H+JMtiWID8wsqkKVkbjNDrHeVD88X+XWEllIi9INc7md2nBkMKBVChc/qgpRFqrpj2X8j/Es9MtvIJYnQqg==", "requires": { - "tslib": "^1.9.3", - "zen-observable": "^0.8.0" + "@msgpack/msgpack": "2.4.0", + "@types/ws": "^7.2.4", + "isomorphic-ws": "^4.0.1", + "nanoid": "^3.1.9", + "ws": "^7.3.0" } } } }, "@polka/url": { - "version": "1.0.0-next.20", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.20.tgz", - "integrity": "sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q==" + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" }, "@protobufjs/aspromise": { "version": "1.1.2", @@ -31726,7 +3379,6 @@ "version": "17.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", - "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", "commondir": "^1.0.1", @@ -31735,62 +3387,20 @@ "is-reference": "^1.2.1", "magic-string": "^0.25.7", "resolve": "^1.17.0" - }, - "dependencies": { - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - } - } - } } }, "@rollup/plugin-json": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", - "dev": true, "requires": { "@rollup/pluginutils": "^3.0.8" - }, - "dependencies": { - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - } } }, "@rollup/plugin-node-resolve": { "version": "11.2.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", @@ -31798,37 +3408,25 @@ "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.19.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" }, "dependencies": { - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, "estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" } } }, - "@rollup/pluginutils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", - "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", - "dev": true, - "requires": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - } - }, "@sideway/address": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", @@ -32303,9 +3901,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32364,9 +3962,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32379,9 +3977,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32395,9 +3993,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32415,9 +4013,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32443,9 +4041,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32465,8 +4063,7 @@ "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, "@types/express": { "version": "4.17.13", @@ -32490,9 +4087,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32511,16 +4108,16 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, "@types/fs-extra": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.12.tgz", - "integrity": "sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", "dev": true, "requires": { "@types/node": "*" @@ -32533,6 +4130,13 @@ "requires": { "@types/minimatch": "*", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" + } } }, "@types/graceful-fs": { @@ -32568,135 +4172,20 @@ } }, "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "requires": { - "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, "@types/jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.1.tgz", - "integrity": "sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.2.tgz", + "integrity": "sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==", "requires": { "jest-diff": "^27.0.0", "pretty-format": "^27.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - } - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "@types/js-yaml": { @@ -32731,9 +4220,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32746,9 +4235,9 @@ } }, "@types/lodash": { - "version": "4.14.173", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", - "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==", + "version": "4.14.175", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.175.tgz", + "integrity": "sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==", "dev": true }, "@types/long": { @@ -32786,9 +4275,10 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "@types/node": { - "version": "14.17.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.17.tgz", - "integrity": "sha512-niAjcewgEYvSPCZm3OaM9y6YQrL2SEPH9PymtE6fuZAvFiP6ereCcvApGl2jKTq7copTIguX3PBvfP08LN4LvQ==" + "version": "14.17.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.21.tgz", + "integrity": "sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==", + "dev": true }, "@types/node-fetch": { "version": "2.5.12", @@ -32822,16 +4312,16 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, "@types/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==", "dev": true }, "@types/q": { @@ -32854,9 +4344,15 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" + } } }, "@types/retry": { @@ -32873,9 +4369,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32894,9 +4390,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -32934,16 +4430,16 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, "@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "requires": { "@types/yargs-parser": "*" } @@ -32967,18 +4463,11 @@ } }, "@wry/equality": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", - "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", + "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", "requires": { - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "tslib": "^2.3.0" } }, "@wry/trie": { @@ -33004,8 +4493,7 @@ "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "abort-controller": { "version": "3.0.0", @@ -33148,39 +4636,34 @@ "dev": true }, "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "requires": { - "string-width": "^3.0.0" + "string-width": "^4.1.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" } } } @@ -33209,16 +4692,16 @@ "optional": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "any-signal": { @@ -33278,6 +4761,14 @@ "zen-observable-ts": "^0.8.21" }, "dependencies": { + "ts-invariant": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "requires": { + "tslib": "^1.9.3" + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -33394,9 +4885,9 @@ } }, "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -33438,6 +4929,22 @@ "tslib": "^1.10.0" }, "dependencies": { + "@wry/equality": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", + "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", + "requires": { + "tslib": "^1.9.3" + } + }, + "ts-invariant": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "requires": { + "tslib": "^1.9.3" + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -33448,14 +4955,12 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -33465,7 +4970,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -33479,14 +4983,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, "requires": { "safe-buffer": "~5.1.0" } @@ -33509,6 +5011,14 @@ "mri": "1.1.4" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, "camelcase": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", @@ -33524,6 +5034,19 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -33660,13 +5183,49 @@ "retry": "0.13.1" } }, - "@perspect3vism/ad4m": { - "version": "0.1.20", - "resolved": "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.1.20.tgz", - "integrity": "sha512-DBP23mFNhSrWAMTX3KLBpv2DU7wG4+OxJWK1oqd844a0E3ujgoZl6jbenDY8Yj9iRhEy//7etiHfN1rjSA/mCQ==", + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "babel-jest": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.2.4.tgz", + "integrity": "sha512-f24OmxyWymk5jfgLdlCMu4fTs4ldxFBIdn5sJdhvGC1m08rSkJ5hYbWkNmfBSvE/DjhCVNSHXepxsI6THGfGsg==", + "dev": true, "requires": { - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/transform": "^27.2.4", + "@jest/types": "^27.2.4", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.0.0", "babel-preset-jest": "^27.2.0", @@ -33675,91 +5234,11 @@ "slash": "^3.0.0" }, "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -33814,12 +5293,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -34190,80 +5669,32 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "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.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.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==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "has-flag": "^4.0.0" + "ansi-regex": "^5.0.1" } }, "wrap-ansi": { @@ -34314,10 +5745,26 @@ } } }, - "@transmute/did-wallet": { - "version": "git+ssh://git@github.com/lucksus/did-wallet.git#cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2", - "integrity": "sha512-iya0qxEe2xkeDIZ8StHWGS7kH81nw8YZ4EzwGPkW/SaGlEB2UExcYAlJdfHM5ErqDDOqp7Ke3Lla3VywMtRhIA==", - "from": "@transmute/did-wallet@lucksus/did-wallet", + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browser-readablestream-to-it": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz", + "integrity": "sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -34388,15 +5835,15 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "bs-logger": { @@ -34481,9 +5928,9 @@ "dev": true }, "bufferutil": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", - "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.4.tgz", + "integrity": "sha512-VNxjXUCrF3LvbLgwfkTb5LsFvk6pGIn7OBb9x+3o+iJ6mKw0JTUp4chBFc88hi1aspeZGeZG9jAIbpFYPQSLZw==", "requires": { "node-gyp-build": "^4.2.0" } @@ -34496,8 +5943,7 @@ "builtin-modules": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" }, "builtins": { "version": "1.0.3", @@ -34650,9 +6096,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001258", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001258.tgz", - "integrity": "sha512-RBByOG6xWXUp0CR2/WU2amXz3stjKpSl5J1xU49F1n2OxD//uBZO4wCKUiG+QMGf7CHGfDDcqoKriomoGVxTeA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "canonicalize": { "version": "1.0.5", @@ -34719,13 +6165,12 @@ } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "change-case": { @@ -34841,8 +6286,7 @@ "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "ci-info": { "version": "2.0.0", @@ -34863,11 +6307,6 @@ "yargs": "^15.0.2" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -34883,21 +6322,21 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "uint8arrays": { @@ -35051,32 +6490,27 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -35116,6 +6550,15 @@ "q": "^1.1.2" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -35127,6 +6570,21 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -35177,20 +6635,37 @@ "requires": { "color-convert": "^1.9.3", "color-string": "^1.6.0" + }, + "dependencies": { + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "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.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "color-string": { "version": "1.6.0", @@ -35202,11 +6677,6 @@ "simple-swizzle": "^0.2.2" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -35373,8 +6843,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "constant-case": { "version": "3.0.4", @@ -35514,16 +6983,15 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, - "apollo-server-errors": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz", - "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==", - "requires": {} + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" }, "copy-descriptor": { "version": "0.1.1", @@ -35536,11 +7004,11 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.2.tgz", + "integrity": "sha512-25VJYCJtGjZwLguj7d66oiHfmnVw3TMOZ0zV8DyMJp/aeQ3OjR519iOOeck08HMyVVRAqXxafc2Hl+5QstJrsQ==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -35552,9 +7020,9 @@ } }, "core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" + "version": "3.18.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.2.tgz", + "integrity": "sha512-4hMMLUlZhKJKOWbbGD1/VDUxGPEhEoN/T01k7bx271WiBKCvCfkgPzy0IeRS4PB50p6/N1q/SZL4B/TRsTE5bA==" }, "core-util-is": { "version": "1.0.3", @@ -36013,6 +7481,34 @@ "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.0.0" + }, + "dependencies": { + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + } } }, "datastore-core": { @@ -36020,7 +7516,8 @@ "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-3.0.0.tgz", "integrity": "sha512-3jEv4DCPcDUYqZ5bc5TKwWhF8Rc4pykNxMoCKx5SxOWyTKqE1EX31JmC6eNGRKiAI1rLF3+i4AyW0UvY2LROGg==", "requires": { - "pvutils": "latest" + "debug": "^4.1.1", + "interface-datastore": "^3.0.1" }, "dependencies": { "debug": { @@ -36205,9 +7702,9 @@ } }, "dateformat": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz", - "integrity": "sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==" + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==" }, "debug": { "version": "3.2.7", @@ -36270,8 +7767,7 @@ "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" }, "default-gateway": { "version": "6.0.3", @@ -36353,8 +7849,7 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "delimit-stream": { "version": "0.1.0", @@ -36637,9 +8132,9 @@ } }, "electron-to-chromium": { - "version": "1.3.842", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.842.tgz", - "integrity": "sha512-P/nDMPIYdb2PyqCQwhTXNi5JFjX1AsDVR0y6FrHw752izJIAJ+Pn5lugqyBq4tXeRSZBMBb2ZGvRGB1djtELEQ==" + "version": "1.3.861", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.861.tgz", + "integrity": "sha512-GZyflmpMnZRdZ1e2yAyvuFwz1MPSVQelwHX4TJZyXypB8NcxdPvPNwy5lOTxnlkrK13EiQzyTPugRSnj6cBgKg==" }, "elliptic": { "version": "6.5.4", @@ -36825,9 +8320,9 @@ } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -36840,7 +8335,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -36940,8 +8437,7 @@ "estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "esutils": { "version": "2.0.3", @@ -37036,9 +8532,9 @@ } }, "ethereumjs-util": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz", - "integrity": "sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.2.tgz", + "integrity": "sha512-xCV3PTAhW8Q2k88XZn9VcO4OrjpeXAlDm5LQTaOLp81SjNSSY6+MwuGXrx6vafOMheWSmZGxIXUbue5e9UvUBw==", "requires": { "@types/bn.js": "^5.1.0", "bn.js": "^5.1.2", @@ -37057,9 +8553,9 @@ } }, "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" }, "bn.js": { "version": "5.2.0", @@ -37215,62 +8711,25 @@ } }, "expect": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.2.0.tgz", - "integrity": "sha512-oOTbawMQv7AK1FZURbPTgGSzmhxkjFzoARSvDjOMnOpeWuYQx1tP6rXu9MIX5mrACmyCAM7fSNP8IJO2f1p0CQ==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.2.4.tgz", + "integrity": "sha512-gOtuonQ8TCnbNNCSw2fhVzRf8EFYDII4nB5NmG4IEV0rbUnW1I5zXvoTntU4iicB/Uh0oZr20NGlOLdJiwsOZA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "ansi-styles": "^5.0.0", "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", + "jest-matcher-utils": "^27.2.4", + "jest-message-util": "^27.2.4", "jest-regex-util": "^27.0.6" }, "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", @@ -37286,42 +8745,6 @@ "fill-range": "^7.0.1" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - } - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -37337,37 +8760,25 @@ "to-regex-range": "^5.0.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } @@ -37382,24 +8793,6 @@ "picomatch": "^2.2.3" } }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -37415,15 +8808,6 @@ "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -37503,9 +8887,9 @@ } }, "ext": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", - "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "requires": { "type": "^2.5.0" }, @@ -37802,6 +9186,11 @@ "pify": "^4.0.1", "semver": "^5.6.0" } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, @@ -37916,7 +9305,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, "requires": { "minipass": "^2.6.0" } @@ -37962,7 +9350,6 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -37977,14 +9364,12 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -37993,7 +9378,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -38004,7 +9388,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -38608,9 +9991,9 @@ } }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -38675,6 +10058,22 @@ "glob": "~7.1.1", "lodash": "~4.17.10", "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "got": { @@ -38716,9 +10115,9 @@ "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-extensions": { "version": "0.15.0", @@ -38730,6 +10129,14 @@ "apollo-server-types": "^0.9.0" } }, + "graphql-query-complexity": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", + "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", + "requires": { + "lodash.get": "^4.4.2" + } + }, "graphql-subscriptions": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", @@ -38786,11 +10193,16 @@ "wordwrap": "^1.0.0" } }, - "dirty-chai": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz", - "integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==", - "requires": {} + "hapi-pino": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.4.0.tgz", + "integrity": "sha512-6ijL1IHOtR1tz3z4/q8NsFA/WWejc5aBnLhRX1FFpNic+RR1XIh8/RrSvI+WJg9tjTwTwU8dsK3vpM6BCKMY/Q==", + "requires": { + "@hapi/hoek": "^9.0.0", + "abstract-logging": "^2.0.0", + "pino": "^6.0.0", + "pino-pretty": "^4.0.0" + } }, "har-schema": { "version": "2.0.0", @@ -38857,9 +10269,9 @@ "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-symbol-support-x": { "version": "1.4.2", @@ -38989,7 +10401,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, "requires": { "react-is": "^16.7.0" } @@ -39106,15 +10517,10 @@ } }, "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, @@ -39145,19 +10551,10 @@ "punycode": "2.1.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" } } }, @@ -39226,9 +10623,9 @@ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", + "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -39318,6 +10715,58 @@ "string-width": "^2.1.0", "strip-ansi": "^4.0.0", "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "optional": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "optional": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "optional": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "optional": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "optional": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "optional": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "interface-datastore": { @@ -39407,14 +10856,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -40730,12 +12171,12 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "safe-buffer": "~5.1.0" + "is-buffer": "^1.1.5" } } } @@ -40818,9 +12259,9 @@ } }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "requires": { "has": "^1.0.3" } @@ -40838,14 +12279,12 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "is-buffer": "^1.1.5" } } } @@ -40937,9 +12376,9 @@ } }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -41009,8 +12448,7 @@ "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" }, "is-negative-zero": { "version": "2.0.1", @@ -41096,7 +12534,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, "requires": { "@types/estree": "*" } @@ -41121,6 +12558,11 @@ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -41165,6 +12607,14 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -41279,23 +12729,6 @@ "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "istanbul-lib-source-maps": { @@ -41327,9 +12760,9 @@ } }, "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.3.tgz", + "integrity": "sha512-0i77ZFLsb9U3DHi22WzmIngVzfoyxxbQcZRqlF3KoKmCJGq9nhFHoGi8FqBztN2rE8w6hURnZghetn0xpkVb6A==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -41690,62 +13123,40 @@ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" }, "jest": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.2.0.tgz", - "integrity": "sha512-oUqVXyvh5YwEWl263KWdPUAqEzBFzGHdFLQ05hUnITr1tH+9SscEI9A/GH9eBClA+Nw1ct+KNuuOV6wlnmBPcg==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.2.4.tgz", + "integrity": "sha512-h4uqb1EQLfPulWyUFFWv9e9Nn8sCqsJ/j3wk/KCY0p4s4s0ICCfP3iMf6hRf5hEhsDyvyrCgKiZXma63gMz16A==", "dev": true, "requires": { - "@jest/core": "^27.2.0", + "@jest/core": "^27.2.4", "import-local": "^3.0.2", - "jest-cli": "^27.2.0" + "jest-cli": "^27.2.4" }, "dependencies": { "@jest/console": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", + "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "jest-message-util": "^27.2.4", + "jest-util": "^27.2.4", + "slash": "^3.0.0" } }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "@jest/test-result": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", + "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "@jest/console": "^27.2.4", + "@jest/types": "^27.2.4", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, "@types/stack-utils": { @@ -41754,30 +13165,6 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -41793,37 +13180,12 @@ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -41839,12 +13201,6 @@ "to-regex-range": "^5.0.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -41861,55 +13217,49 @@ "dev": true }, "jest-cli": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.2.0.tgz", - "integrity": "sha512-bq1X/B/b1kT9y1zIFMEW3GFRX1HEhFybiqKdbxM+j11XMMYSbU9WezfyWIhrSOmPT+iODLATVjfsCnbQs7cfIA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.2.4.tgz", + "integrity": "sha512-4kpQQkg74HYLaXo3nzwtg4PYxSLgL7puz1LXHj5Tu85KmlIpxQFjRkXlx4V47CYFFIDoyl3rHA/cXOxUWyMpNg==", "dev": true, "requires": { - "@jest/core": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/core": "^27.2.4", + "@jest/test-result": "^27.2.4", + "@jest/types": "^27.2.4", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "import-local": "^3.0.2", - "jest-config": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", + "jest-config": "^27.2.4", + "jest-util": "^27.2.4", + "jest-validate": "^27.2.4", "prompts": "^2.0.1", - "yargs": "^16.0.3" + "yargs": "^16.2.0" } }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -41918,17 +13268,17 @@ } }, "jest-validate": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", - "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.4.tgz", + "integrity": "sha512-VMtbxbkd7LHnIH7PChdDtrluCFRJ4b1YV2YJzNwwsASMWftq/HgqiqjvptBOWyWOtevgO3f14wPxkPcLlVBRog==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^27.0.6", "leven": "^3.1.0", - "pretty-format": "^27.2.0" + "pretty-format": "^27.2.4" } }, "leven": { @@ -41947,32 +13297,6 @@ "picomatch": "^2.2.3" } }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -41988,15 +13312,6 @@ "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -42009,96 +13324,16 @@ } }, "jest-changed-files": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.1.1.tgz", - "integrity": "sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.2.4.tgz", + "integrity": "sha512-eeO1C1u4ex7pdTroYXezr+rbr957myyVoKGjcY4R1TJi3A+9v+4fu1Iv9J4eLq1bgFyT3O3iRWU9lZsEE7J72Q==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "execa": "^5.0.0", "throat": "^6.0.1" }, "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "throat": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", @@ -42108,110 +13343,64 @@ } }, "jest-circus": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.2.0.tgz", - "integrity": "sha512-WwENhaZwOARB1nmcboYPSv/PwHBUGRpA4MEgszjr9DLCl97MYw0qZprBwLb7rNzvMwfIvNGG7pefQ5rxyBlzIA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.2.4.tgz", + "integrity": "sha512-TtheheTElrGjlsY9VxkzUU1qwIx05ItIusMVKnvNkMt4o/PeegLRcjq3Db2Jz0GGdBalJdbzLZBgeulZAJxJWA==", "dev": true, "requires": { - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/environment": "^27.2.4", + "@jest/test-result": "^27.2.4", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", - "expect": "^27.2.0", + "expect": "^27.2.4", "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", + "jest-each": "^27.2.4", + "jest-matcher-utils": "^27.2.4", + "jest-message-util": "^27.2.4", + "jest-runtime": "^27.2.4", + "jest-snapshot": "^27.2.4", + "jest-util": "^27.2.4", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3", "throat": "^6.0.1" }, "dependencies": { "@jest/console": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", + "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", + "jest-message-util": "^27.2.4", + "jest-util": "^27.2.4", "slash": "^3.0.0" } }, "@jest/test-result": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", + "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", "dev": true, "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/console": "^27.2.4", + "@jest/types": "^27.2.4", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -42221,37 +13410,12 @@ "fill-range": "^7.0.1" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -42267,12 +13431,6 @@ "to-regex-range": "^5.0.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -42289,29 +13447,29 @@ "dev": true }, "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -42329,32 +13487,6 @@ "picomatch": "^2.2.3" } }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -42370,15 +13502,6 @@ "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "throat": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", @@ -42397,80 +13520,34 @@ } }, "jest-config": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.2.0.tgz", - "integrity": "sha512-Z1romHpxeNwLxQtouQ4xt07bY6HSFGKTo0xJcvOK3u6uJHveA4LB2P+ty9ArBLpTh3AqqPxsyw9l9GMnWBYS9A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.2.4.tgz", + "integrity": "sha512-tWy0UxhdzqiKyp4l5Vq4HxLyD+gH5td+GCF3c22/DJ0bYAOsMo+qi2XtbJI6oYMH5JOJQs9nLW/r34nvFCehjA==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.0", - "@jest/types": "^27.1.1", - "babel-jest": "^27.2.0", + "@jest/test-sequencer": "^27.2.4", + "@jest/types": "^27.2.4", + "babel-jest": "^27.2.4", "chalk": "^4.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.4", "is-ci": "^3.0.0", - "jest-circus": "^27.2.0", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", + "jest-circus": "^27.2.4", + "jest-environment-jsdom": "^27.2.4", + "jest-environment-node": "^27.2.4", "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.0", + "jest-jasmine2": "^27.2.4", "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", + "jest-resolve": "^27.2.4", + "jest-runner": "^27.2.4", + "jest-util": "^27.2.4", + "jest-validate": "^27.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0" + "pretty-format": "^27.2.4" }, "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -42486,37 +13563,12 @@ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -42526,12 +13578,6 @@ "to-regex-range": "^5.0.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -42547,19 +13593,13 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -42568,17 +13608,17 @@ } }, "jest-validate": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", - "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.4.tgz", + "integrity": "sha512-VMtbxbkd7LHnIH7PChdDtrluCFRJ4b1YV2YJzNwwsASMWftq/HgqiqjvptBOWyWOtevgO3f14wPxkPcLlVBRog==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^27.0.6", "leven": "^3.1.0", - "pretty-format": "^27.2.0" + "pretty-format": "^27.2.4" } }, "leven": { @@ -42597,41 +13637,6 @@ "picomatch": "^2.2.3" } }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -42644,135 +13649,14 @@ } }, "jest-diff": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.0.tgz", - "integrity": "sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw==", - "dev": true, + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.4.tgz", + "integrity": "sha512-bLAVlDSCR3gqUPGv+4nzVpEXGsHh98HjUL7Vb2hVyyuBDoQmja8eJb0imUABsuxBeUVmf47taJSAd9nDrwWKEg==", "requires": { "chalk": "^4.0.0", "diff-sequences": "^27.0.6", "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "pretty-format": "^27.2.4" } }, "jest-docblock": { @@ -42785,101 +13669,24 @@ } }, "jest-each": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.2.0.tgz", - "integrity": "sha512-biDmmUQjg+HZOB7MfY2RHSFL3j418nMoC3TK3pGAj880fQQSxvQe1y2Wy23JJJNUlk6YXiGU0yWy86Le1HBPmA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.2.4.tgz", + "integrity": "sha512-w9XVc+0EDBUTJS4xBNJ7N2JCcWItFd006lFjz77OarAQcQ10eFDBMrfDv2GBJMKlXe9aq0HrIIF51AXcZrRJyg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "chalk": "^4.0.0", "jest-get-type": "^27.0.6", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0" + "jest-util": "^27.2.4", + "pretty-format": "^27.2.4" }, "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -42889,153 +13696,66 @@ "ci-info": "^3.1.1" } }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "is-ci": "^3.0.0", "picomatch": "^2.2.3" } - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, "jest-environment-jsdom": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.2.0.tgz", - "integrity": "sha512-wNQJi6Rd/AkUWqTc4gWhuTIFPo7tlMK0RPZXeM6AqRHZA3D3vwvTa9ktAktyVyWYmUoXdYstOfyYMG3w4jt7eA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.2.4.tgz", + "integrity": "sha512-X70pTXFSypD7AIzKT1mLnDi5hP9w9mdTRcOGOmoDoBrNyNEg4rYm6d4LQWFLc9ps1VnMuDOkFSG0wjSNYGjkng==", "dev": true, "requires": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/environment": "^27.2.4", + "@jest/fake-timers": "^27.2.4", + "@jest/types": "^27.2.4", "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0", + "jest-mock": "^27.2.4", + "jest-util": "^27.2.4", "jsdom": "^16.6.0" }, "dependencies": { "@jest/fake-timers": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.0.tgz", - "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.4.tgz", + "integrity": "sha512-cs/TzvwWUM7kAA6Qm/890SK6JJ2pD5RfDNM3SSEom6BmdyV6OiWP1qf/pqo6ts6xwpcM36oN0wSEzcZWc6/B6w==", "dev": true, "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", + "@jest/types": "^27.2.4", + "@sinonjs/fake-timers": "^8.0.1", "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "jest-message-util": "^27.2.4", + "jest-mock": "^27.2.4", + "jest-util": "^27.2.4" } }, "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", + "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" } }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -43045,37 +13765,12 @@ "fill-range": "^7.0.1" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -43091,12 +13786,6 @@ "to-regex-range": "^5.0.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -43113,39 +13802,39 @@ "dev": true }, "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-mock": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.2.4.tgz", + "integrity": "sha512-iVRU905rutaAoUcrt5Tm1JoHHWi24YabqEGXjPJI4tAyA6wZ7mzDi3GrZ+M7ebgWBqUkZE93GAx1STk7yCMIQA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*" } }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -43163,32 +13852,6 @@ "picomatch": "^2.2.3" } }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -43204,15 +13867,6 @@ "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -43225,94 +13879,48 @@ } }, "jest-environment-node": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.2.0.tgz", - "integrity": "sha512-WbW+vdM4u88iy6Q3ftUEQOSgMPtSgjm3qixYYK2AKEuqmFO2zmACTw1vFUB0qI/QN88X6hA6ZkVKIdIWWzz+yg==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.2.4.tgz", + "integrity": "sha512-ZbVbFSnbzTvhLOIkqh5lcLuGCCFvtG4xTXIRPK99rV2KzQT3kNg16KZwfTnLNlIiWCE8do960eToeDfcqmpSAw==", "dev": true, "requires": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/environment": "^27.2.4", + "@jest/fake-timers": "^27.2.4", + "@jest/types": "^27.2.4", "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" + "jest-mock": "^27.2.4", + "jest-util": "^27.2.4" }, "dependencies": { "@jest/fake-timers": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.0.tgz", - "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.4.tgz", + "integrity": "sha512-cs/TzvwWUM7kAA6Qm/890SK6JJ2pD5RfDNM3SSEom6BmdyV6OiWP1qf/pqo6ts6xwpcM36oN0wSEzcZWc6/B6w==", "dev": true, "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", + "@jest/types": "^27.2.4", + "@sinonjs/fake-timers": "^8.0.1", "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" + "jest-message-util": "^27.2.4", + "jest-mock": "^27.2.4", + "jest-util": "^27.2.4" } }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "@sinonjs/fake-timers": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", + "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", "dev": true, "requires": { - "color-convert": "^2.0.1" + "@sinonjs/commons": "^1.7.0" } }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -43322,37 +13930,12 @@ "fill-range": "^7.0.1" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -43368,12 +13951,6 @@ "to-regex-range": "^5.0.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -43390,39 +13967,39 @@ "dev": true }, "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-mock": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.2.4.tgz", + "integrity": "sha512-iVRU905rutaAoUcrt5Tm1JoHHWi24YabqEGXjPJI4tAyA6wZ7mzDi3GrZ+M7ebgWBqUkZE93GAx1STk7yCMIQA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*" } }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -43440,32 +14017,6 @@ "picomatch": "^2.2.3" } }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -43481,15 +14032,6 @@ "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -43502,9 +14044,9 @@ } }, "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==" }, "jest-haste-map": { "version": "24.9.0", @@ -43523,45 +14065,74 @@ "micromatch": "^3.1.10", "sane": "^4.0.3", "walker": "^1.0.7" + }, + "dependencies": { + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "requires": { + "@types/yargs-parser": "*" + } + } } }, "jest-jasmine2": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.2.0.tgz", - "integrity": "sha512-NcPzZBk6IkDW3Z2V8orGueheGJJYfT5P0zI/vTO/Jp+R9KluUdgFrgwfvZ0A34Kw6HKgiWFILZmh3oQ/eS+UxA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.2.4.tgz", + "integrity": "sha512-fcffjO/xLWLVnW2ct3No4EksxM5RyPwHDYu9QU+90cC+/eSMLkFAxS55vkqsxexOO5zSsZ3foVpMQcg/amSeIQ==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.2.0", + "@jest/environment": "^27.2.4", "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/test-result": "^27.2.4", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^27.2.0", + "expect": "^27.2.4", "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", + "jest-each": "^27.2.4", + "jest-matcher-utils": "^27.2.4", + "jest-message-util": "^27.2.4", + "jest-runtime": "^27.2.4", + "jest-snapshot": "^27.2.4", + "jest-util": "^27.2.4", + "pretty-format": "^27.2.4", "throat": "^6.0.1" }, "dependencies": { "@jest/console": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", + "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", + "jest-message-util": "^27.2.4", + "jest-util": "^27.2.4", "slash": "^3.0.0" } }, @@ -43577,69 +14148,23 @@ } }, "@jest/test-result": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", + "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", "dev": true, "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/console": "^27.2.4", + "@jest/types": "^27.2.4", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -43649,37 +14174,12 @@ "fill-range": "^7.0.1" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -43695,12 +14195,6 @@ "to-regex-range": "^5.0.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -43717,29 +14211,29 @@ "dev": true }, "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -43757,32 +14251,6 @@ "picomatch": "^2.2.3" } }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -43798,15 +14266,6 @@ "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "throat": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", @@ -43825,290 +14284,152 @@ } }, "jest-leak-detector": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.2.0.tgz", - "integrity": "sha512-e91BIEmbZw5+MHkB4Hnrq7S86coTxUMCkz4n7DLmQYvl9pEKmRx9H/JFH87bBqbIU5B2Ju1soKxRWX6/eGFGpA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.2.4.tgz", + "integrity": "sha512-SrcHWbe0EHg/bw2uBjVoHacTo5xosl068x2Q0aWsjr2yYuW2XwqrSkZV4lurUop0jhv1709ymG4or+8E4sH27Q==", + "dev": true, + "requires": { + "jest-get-type": "^27.0.6", + "pretty-format": "^27.2.4" + } + }, + "jest-matcher-utils": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.2.4.tgz", + "integrity": "sha512-nQeLfFAIPPkyhkDfifAPfP/U5wm1x0fLtAzqXZSSKckXDNuk2aaOfQiDYv1Mgf5GY6yOsxfUnvNm3dDjXM+BXw==", "dev": true, "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.2.4", "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" + "pretty-format": "^27.2.4" + } + }, + "jest-message-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", + "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" }, "dependencies": { "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", "requires": { "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" } }, "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "requires": { + "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", "requires": { "@types/yargs-parser": "*" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.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==", - "dev": true, + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "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==", - "dev": true + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "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==", - "dev": true, + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" } } } }, - "jest-matcher-utils": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.2.0.tgz", - "integrity": "sha512-F+LG3iTwJ0gPjxBX6HCyrARFXq6jjiqhwBQeskkJQgSLeF1j6ui1RTV08SR7O51XTUhtc8zqpDj8iCG4RGmdKw==", - "dev": true, + "jest-mock": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", + "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.2.0", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" + "@jest/types": "^24.9.0" }, "dependencies": { "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", "requires": { "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" } }, "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "requires": { + "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", "requires": { "@types/yargs-parser": "*" } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "requires": { - "@jest/types": "^24.9.0" - } - }, "jest-pnp-resolver": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", @@ -44122,69 +14443,23 @@ "dev": true }, "jest-resolve": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.2.0.tgz", - "integrity": "sha512-v09p9Ib/VtpHM6Cz+i9lEAv1Z/M5NVxsyghRHRMEUOqwPQs3zwTdwp1xS3O/k5LocjKiGS0OTaJoBSpjbM2Jlw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.2.4.tgz", + "integrity": "sha512-IsAO/3+3BZnKjI2I4f3835TBK/90dxR7Otgufn3mnrDFTByOSXclDi3G2XJsawGV4/18IMLARJ+V7Wm7t+J89Q==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "chalk": "^4.0.0", "escalade": "^3.1.1", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", + "jest-haste-map": "^27.2.4", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", + "jest-util": "^27.2.4", + "jest-validate": "^27.2.4", "resolve": "^1.20.0", "slash": "^3.0.0" }, "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -44210,37 +14485,12 @@ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -44257,12 +14507,6 @@ "dev": true, "optional": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -44278,19 +14522,13 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, "jest-haste-map": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.4.tgz", + "integrity": "sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", @@ -44299,8 +14537,8 @@ "graceful-fs": "^4.2.4", "jest-regex-util": "^27.0.6", "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", "micromatch": "^4.0.4", "walker": "^1.0.7" } @@ -44316,12 +14554,12 @@ } }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -44330,39 +14568,28 @@ } }, "jest-validate": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", - "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.4.tgz", + "integrity": "sha512-VMtbxbkd7LHnIH7PChdDtrluCFRJ4b1YV2YJzNwwsASMWftq/HgqiqjvptBOWyWOtevgO3f14wPxkPcLlVBRog==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^27.0.6", "leven": "^3.1.0", - "pretty-format": "^27.2.0" + "pretty-format": "^27.2.4" } }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.4.tgz", + "integrity": "sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "leven": { @@ -44387,32 +14614,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -44420,9 +14621,9 @@ "dev": true }, "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==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -44440,206 +14641,78 @@ } }, "jest-resolve-dependencies": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.0.tgz", - "integrity": "sha512-EY5jc/Y0oxn+oVEEldTidmmdVoZaknKPyDORA012JUdqPyqPL+lNdRyI3pGti0RCydds6coaw6xt4JQY54dKsg==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.4.tgz", + "integrity": "sha512-i5s7Uh9B3Q6uwxLpMhNKlgBf6pcemvWaORxsW1zNF/YCY3jd5EftvnGBI+fxVwJ1CBxkVfxqCvm1lpZkbaoGmg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.2.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "jest-snapshot": "^27.2.4" } }, "jest-runner": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.2.0.tgz", - "integrity": "sha512-Cl+BHpduIc0cIVTjwoyx0pQk4Br8gn+wkr35PmKCmzEdOUnQ2wN7QVXA8vXnMQXSlFkN/+KWnk20TAVBmhgrww==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.2.4.tgz", + "integrity": "sha512-hIo5PPuNUyVDidZS8EetntuuJbQ+4IHWxmHgYZz9FIDbG2wcZjrP6b52uMDjAEQiHAn8yn8ynNe+TL8UuGFYKg==", "dev": true, "requires": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/console": "^27.2.4", + "@jest/environment": "^27.2.4", + "@jest/test-result": "^27.2.4", + "@jest/transform": "^27.2.4", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-leak-detector": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", + "jest-environment-jsdom": "^27.2.4", + "jest-environment-node": "^27.2.4", + "jest-haste-map": "^27.2.4", + "jest-leak-detector": "^27.2.4", + "jest-message-util": "^27.2.4", + "jest-resolve": "^27.2.4", + "jest-runtime": "^27.2.4", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", "source-map-support": "^0.5.6", "throat": "^6.0.1" }, "dependencies": { "@jest/console": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", + "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", + "jest-message-util": "^27.2.4", + "jest-util": "^27.2.4", "slash": "^3.0.0" } }, "@jest/test-result": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", + "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", "dev": true, "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/console": "^27.2.4", + "@jest/types": "^27.2.4", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -44659,37 +14732,12 @@ "fill-range": "^7.0.1" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -44712,12 +14760,6 @@ "dev": true, "optional": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -44734,12 +14776,12 @@ "dev": true }, "jest-haste-map": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.4.tgz", + "integrity": "sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", @@ -44748,25 +14790,25 @@ "graceful-fs": "^4.2.4", "jest-regex-util": "^27.0.6", "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", "micromatch": "^4.0.4", "walker": "^1.0.7" } }, "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } @@ -44782,12 +14824,12 @@ } }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -44796,25 +14838,14 @@ } }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.4.tgz", + "integrity": "sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "micromatch": { @@ -44825,38 +14856,12 @@ "requires": { "braces": "^3.0.1", "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "slash": { @@ -44875,9 +14880,9 @@ } }, "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==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -44900,37 +14905,20 @@ } } }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "requires": {} - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "jest-runtime": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.2.4.tgz", + "integrity": "sha512-ICKzzYdjIi70P17MZsLLIgIQFCQmIjMFf+xYww3aUySiUA/QBPUTdUqo5B2eg4HOn9/KkUsV0z6GVgaqAPBJvg==", "dev": true, "requires": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/globals": "^27.2.0", + "@jest/console": "^27.2.4", + "@jest/environment": "^27.2.4", + "@jest/fake-timers": "^27.2.4", + "@jest/globals": "^27.2.4", "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/test-result": "^27.2.4", + "@jest/transform": "^27.2.4", + "@jest/types": "^27.2.4", "@types/yargs": "^16.0.0", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", @@ -44939,45 +14927,45 @@ "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", + "jest-haste-map": "^27.2.4", + "jest-message-util": "^27.2.4", + "jest-mock": "^27.2.4", "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", + "jest-resolve": "^27.2.4", + "jest-snapshot": "^27.2.4", + "jest-util": "^27.2.4", + "jest-validate": "^27.2.4", "slash": "^3.0.0", "strip-bom": "^4.0.0", - "yargs": "^16.0.3" + "yargs": "^16.2.0" }, "dependencies": { "@jest/console": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", + "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", + "jest-message-util": "^27.2.4", + "jest-util": "^27.2.4", "slash": "^3.0.0" } }, "@jest/fake-timers": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.0.tgz", - "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.4.tgz", + "integrity": "sha512-cs/TzvwWUM7kAA6Qm/890SK6JJ2pD5RfDNM3SSEom6BmdyV6OiWP1qf/pqo6ts6xwpcM36oN0wSEzcZWc6/B6w==", "dev": true, "requires": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", + "@jest/types": "^27.2.4", + "@sinonjs/fake-timers": "^8.0.1", "@types/node": "*", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" + "jest-message-util": "^27.2.4", + "jest-mock": "^27.2.4", + "jest-util": "^27.2.4" } }, "@jest/source-map": { @@ -44992,78 +14980,32 @@ } }, "@jest/test-result": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", + "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", "dev": true, "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/console": "^27.2.4", + "@jest/types": "^27.2.4", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", + "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" } }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -45089,37 +15031,12 @@ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -45142,12 +15059,6 @@ "dev": true, "optional": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -45163,19 +15074,13 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, "jest-haste-map": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.4.tgz", + "integrity": "sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", @@ -45184,36 +15089,36 @@ "graceful-fs": "^4.2.4", "jest-regex-util": "^27.0.6", "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", "micromatch": "^4.0.4", "walker": "^1.0.7" } }, "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-mock": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.2.4.tgz", + "integrity": "sha512-iVRU905rutaAoUcrt5Tm1JoHHWi24YabqEGXjPJI4tAyA6wZ7mzDi3GrZ+M7ebgWBqUkZE93GAx1STk7yCMIQA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*" } }, @@ -45228,12 +15133,12 @@ } }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -45242,39 +15147,28 @@ } }, "jest-validate": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.0.tgz", - "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.4.tgz", + "integrity": "sha512-VMtbxbkd7LHnIH7PChdDtrluCFRJ4b1YV2YJzNwwsASMWftq/HgqiqjvptBOWyWOtevgO3f14wPxkPcLlVBRog==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^27.0.6", "leven": "^3.1.0", - "pretty-format": "^27.2.0" + "pretty-format": "^27.2.4" } }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.4.tgz", + "integrity": "sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "leven": { @@ -45299,32 +15193,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -45347,9 +15215,9 @@ "dev": true }, "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==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -45372,9 +15240,9 @@ "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" }, "jest-snapshot": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.2.0.tgz", - "integrity": "sha512-MukJvy3KEqemCT2FoT3Gum37CQqso/62PKTfIzWmZVTsLsuyxQmJd2PI5KPcBYFqLlA8LgZLHM8ZlazkVt8LsQ==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.2.4.tgz", + "integrity": "sha512-5DFxK31rYS8X8C6WXsFx8XxrxW3PGa6+9IrUcZdTLg1aEyXDGIeiBh4jbwvh655bg/9vTETbEj/njfZicHTZZw==", "dev": true, "requires": { "@babel/core": "^7.7.2", @@ -45383,78 +15251,32 @@ "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", + "@jest/transform": "^27.2.4", + "@jest/types": "^27.2.4", "@types/babel__traverse": "^7.0.4", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.2.0", + "expect": "^27.2.4", "graceful-fs": "^4.2.4", - "jest-diff": "^27.2.0", + "jest-diff": "^27.2.4", "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", + "jest-haste-map": "^27.2.4", + "jest-matcher-utils": "^27.2.4", + "jest-message-util": "^27.2.4", + "jest-resolve": "^27.2.4", + "jest-util": "^27.2.4", "natural-compare": "^1.4.0", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "semver": "^7.3.2" }, "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -45474,37 +15296,12 @@ "fill-range": "^7.0.1" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -45527,12 +15324,6 @@ "dev": true, "optional": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -45548,19 +15339,13 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, "jest-haste-map": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.0.tgz", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.4.tgz", + "integrity": "sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", @@ -45569,547 +15354,62 @@ "graceful-fs": "^4.2.4", "jest-regex-util": "^27.0.6", "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", + "jest-util": "^27.2.4", + "jest-worker": "^27.2.4", "micromatch": "^4.0.4", "walker": "^1.0.7" } }, "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" } - } - } - }, - "jest-diff": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.1.1.tgz", - "integrity": "sha512-m/6n5158rqEriTazqHtBpOa2B/gGgXJijX6nsEgZfbJ/3pxQcdpVXBe+FP39b1dxWHyLVVmuVXddmAwtqFO4Lg==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - } - }, - "jest-docblock": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.1.1.tgz", - "integrity": "sha512-r6hOsTLavUBb1xN0uDa89jdDeBmJ+K49fWpbyxeGRA2pLY46PlC4z551/cWNQzrj+IUa5/gSRsCIV/01HdNPug==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1" - } - }, - "jest-environment-jsdom": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.1.1.tgz", - "integrity": "sha512-6vOnoZ6IaExuw7FvnuJhA1qFYv1DDSnN0sQowzolNwxQp7bG1YhLxj2YU1sVXAYA3IR3MbH2mbnJUsLUWfyfzw==", - "dev": true, - "requires": { - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.1.1.tgz", - "integrity": "sha512-OEGeZh0PwzngNIYWYgWrvTcLygopV8OJbC9HNb0j70VBKgEIsdZkYhwcFnaURX83OHACMqf1pa9Tv5Pw5jemrg==", - "dev": true, - "requires": { - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.1.1" - } - }, - "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==" - }, - "jest-haste-map": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.1.1.tgz", - "integrity": "sha512-NGLYVAdh5C8Ezg5QBFzrNeYsfxptDBPlhvZNaicLiZX77F/rS27a9M6u9ripWAaaD54xnWdZNZpEkdjD5Eo5aQ==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.1.1.tgz", - "integrity": "sha512-0LAzUmcmvQwjIdJt0cXUVX4G5qjVXE8ELt6nbMNDzv2yAs2hYCCUtQq+Eje70GwAysWCGcS64QeYj5VPHYVxPg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.1.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.1.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.1.1", - "jest-matcher-utils": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "pretty-format": "^27.1.1", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.1.1.tgz", - "integrity": "sha512-gwSgzmqShoeEsEVpgObymQPrM9P6557jt1EsFW5aCeJ46Cme0EdjYU7xr6llQZ5GpWDl56eOstUaPXiZOfiTKw==", - "dev": true, - "requires": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - } - }, - "jest-matcher-utils": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.1.1.tgz", - "integrity": "sha512-Q1a10w9Y4sh0wegkdP6reQOa/Dtz7nAvDqBgrat1ItZAUvk4jzXAqyhXPu/ZuEtDaXaNKpdRPRQA8bvkOh2Eaw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.1.1", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.1.1" - } - }, - "jest-message-util": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.1.1.tgz", - "integrity": "sha512-b697BOJV93+AVGvzLRtVZ0cTVRbd59OaWnbB2D75GRaIMc4I+Z9W0wHxbfjW01JWO+TqqW4yevT0aN7Fd0XWng==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.1.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.1.1.tgz", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", - "dev": true - }, - "jest-resolve": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.1.1.tgz", - "integrity": "sha512-M41YFmWhvDVstwe7XuV21zynOiBLJB5Sk0GrIsYYgTkjfEWNLVXDjAyq1W7PHseaYNOxIc0nOGq/r5iwcZNC1A==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "resolve": "^1.20.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.1.1.tgz", - "integrity": "sha512-sYZR+uBjFDCo4VhYeazZf/T+ryYItvdLKu9vHatqkUqHGjDMrdEPOykiqC2iEpaCFTS+3iL/21CYiJuKdRbniw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.1.1" - } - }, - "jest-runner": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.1.1.tgz", - "integrity": "sha512-lP3MBNQhg75/sQtVkC8dsAQZumvy3lHK/YIwYPfEyqGIX1qEcnYIRxP89q0ZgC5ngvi1vN2P5UFHszQxguWdng==", - "dev": true, - "requires": { - "@jest/console": "^27.1.1", - "@jest/environment": "^27.1.1", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.1.1", - "jest-environment-node": "^27.1.1", - "jest-haste-map": "^27.1.1", - "jest-leak-detector": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-resolve": "^27.1.1", - "jest-runtime": "^27.1.1", - "jest-util": "^27.1.1", - "jest-worker": "^27.1.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.1.1.tgz", - "integrity": "sha512-FEwy+tSzmsvuKaQpyYsUyk31KG5vMmA2r2BSTHgv0yNfcooQdm2Ke91LM9Ud8D3xz8CLDHJWAI24haMFTwrsPg==", - "dev": true, - "requires": { - "@jest/console": "^27.1.1", - "@jest/environment": "^27.1.1", - "@jest/fake-timers": "^27.1.1", - "@jest/globals": "^27.1.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.1.1", - "@jest/transform": "^27.1.1", - "@jest/types": "^27.1.1", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.1.1", - "jest-message-util": "^27.1.1", - "jest-mock": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.1.1", - "jest-snapshot": "^27.1.1", - "jest-util": "^27.1.1", - "jest-validate": "^27.1.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - } - }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - } - } - }, - "jest-watcher": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.2.0.tgz", - "integrity": "sha512-SjRWhnr+qO8aBsrcnYIyF+qRxNZk6MZH8TIDgvi+VlsyrvOyqg0d+Rm/v9KHiTtC9mGGeFi9BFqgavyWib6xLg==", - "dev": true, - "requires": { - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.2.0", - "string-length": "^4.0.1" - }, - "dependencies": { - "@jest/console": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.0.tgz", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.0.tgz", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } }, - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", "dev": true, "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" + "graceful-fs": "^4.2.4" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.0.tgz", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", + "jest-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", + "@jest/types": "^27.2.4", + "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" } }, - "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "jest-worker": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.4.tgz", + "integrity": "sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==", "dev": true, "requires": { - "@jest/types": "^27.1.1", "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" } }, "micromatch": { @@ -46122,30 +15422,10 @@ "picomatch": "^2.2.3" } }, - "pretty-format": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "slash": { @@ -46164,14 +15444,386 @@ } }, "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==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", + "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", + "requires": { + "@jest/console": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/source-map": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "callsites": "^3.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.15", + "is-ci": "^2.0.0", + "mkdirp": "^0.5.1", + "slash": "^2.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "requires": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + }, + "dependencies": { + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-watcher": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.2.4.tgz", + "integrity": "sha512-LXC/0+dKxhK7cfF7reflRYlzDIaQE+fL4ynhKhzg8IMILNMuI4xcjXXfUJady7OR4/TZeMg7X8eHx8uan9vqaQ==", + "dev": true, + "requires": { + "@jest/test-result": "^27.2.4", + "@jest/types": "^27.2.4", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.2.4", + "string-length": "^4.0.1" + }, + "dependencies": { + "@jest/console": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", + "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", + "dev": true, + "requires": { + "@jest/types": "^27.2.4", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.2.4", + "jest-util": "^27.2.4", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", + "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", + "dev": true, + "requires": { + "@jest/console": "^27.2.4", + "@jest/types": "^27.2.4", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.2.4", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.2.4", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-util": { + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", + "dev": true, + "requires": { + "@jest/types": "^27.2.4", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + } + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -46321,11 +15973,37 @@ "universalify": "^0.1.2" } }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } } } }, @@ -46392,6 +16070,14 @@ "diff-match-patch": "^1.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -46402,6 +16088,19 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -47454,11 +17153,6 @@ "streaming-iterables": "^5.0.3" }, "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -47467,45 +17161,6 @@ "ms": "2.1.2" } }, - "engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" - } - }, - "engine.io-client": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", - "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", - "requires": { - "base64-arraybuffer": "0.1.4", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.1", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "engine.io-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", - "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", - "requires": { - "base64-arraybuffer": "0.1.4" - } - }, "err-code": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", @@ -47550,57 +17205,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" - }, - "socket.io-client-next": { - "version": "npm:socket.io-client@3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", - "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", - "requires": { - "@types/component-emitter": "^1.2.10", - "backo2": "~1.0.2", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-client": "~4.1.0", - "parseuri": "0.0.6", - "socket.io-parser": "~4.0.4" - } - }, - "socket.io-next": { - "version": "npm:socket.io@3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", - "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - } - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} } } }, @@ -47720,9 +17324,9 @@ } }, "libphonenumber-js": { - "version": "1.9.36", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.36.tgz", - "integrity": "sha512-eaQRvOHmBKOxd2TKNml5lx1/7+nm4MftXTUXPTcBS70mm7U3AUNBNPF99tNBpkrYQNu+YFP553ranMsbshqqTA==" + "version": "1.9.37", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.37.tgz", + "integrity": "sha512-RnUR4XwiVhMLnT7uFSdnmLeprspquuDtaShAgKTA+g/ms9/S4hQU3/QpFdh3iXPHtxD52QscXLm2W2+QBmvYAg==" }, "liquidcore": { "version": "0.7.10", @@ -47975,13 +17579,6 @@ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } } }, "ltgt": { @@ -48001,7 +17598,6 @@ "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, "requires": { "sourcemap-codec": "^1.4.4" } @@ -48297,6 +17893,14 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -48342,6 +17946,19 @@ } } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -48590,6 +18207,72 @@ "metro-cache": "0.57.0", "metro-core": "0.57.0", "pretty-format": "^24.7.0" + }, + "dependencies": { + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + } } }, "metro-core": { @@ -48900,16 +18583,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "requires": { - "mime-db": "1.49.0" + "mime-db": "1.50.0" } }, "mimic-fn": { @@ -48960,6 +18643,13 @@ "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } } }, "minizlib": { @@ -49093,9 +18783,9 @@ } }, "multicast-dns": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.3.tgz", - "integrity": "sha512-TzxgGSLRLB7tqAlzjgd2x2ZE0cDsGFq4rs9W4yE5xp+7hlRXeUQGtXZsTGfGw2FwWB45rfe8DtXMYBpZGMLUng==", + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", + "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", "requires": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -49121,9 +18811,9 @@ } }, "multiformats": { - "version": "9.4.7", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.7.tgz", - "integrity": "sha512-fZbcdf7LnvokPAZYkv4TLXe7PAg9sQ5qLXcwrAmZOloEb2+5FtFiAY+l3/9wsu4oTJXTV3JSggFQQ2dJLS01vA==" + "version": "9.4.8", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.8.tgz", + "integrity": "sha512-EOJL02/kv+FD5hoItMhKgkYUUruJYMYFq4NQ6YkCh3jVQ5CuHo+OKdHeR50hAxEQmXQ9yvrM9BxLIk42xtfwnQ==" }, "multihashes": { "version": "3.1.2", @@ -49302,9 +18992,9 @@ "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "version": "3.1.29", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz", + "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==" }, "nanomatch": { "version": "1.2.13", @@ -49330,9 +19020,9 @@ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" }, "native-abort-controller": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", - "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", + "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==" }, "native-fetch": { "version": "3.0.0", @@ -49389,6 +19079,64 @@ "ts-typed-json": "^0.2.2", "validate-npm-package-license": "^3.0.1", "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "optional": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "optional": true, + "requires": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "optional": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "optional": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "optional": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "optional": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "optional": true, + "requires": { + "has-flag": "^2.0.0" + } + } } }, "netmask": { @@ -49448,9 +19196,12 @@ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, "node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==" + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "requires": { + "whatwg-url": "^5.0.0" + } }, "node-forge": { "version": "0.10.0", @@ -49545,12 +19296,20 @@ "rimraf": "^2.6.1", "semver": "^5.3.0", "tar": "^4.4.2" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "optional": true + } } }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "node-sass": { "version": "4.14.1", @@ -49687,6 +19446,13 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, "normalize-path": { @@ -49871,13 +19637,13 @@ } }, "object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" + "es-abstract": "^1.19.1" } }, "object.pick": { @@ -49889,14 +19655,14 @@ } }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "oboe": { @@ -49941,7 +19707,6 @@ "version": "0.16.1", "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "dev": true, "requires": { "@wry/context": "^0.6.0", "@wry/trie": "^0.3.0" @@ -50100,23 +19865,15 @@ "p-some": "^5.0.0" } }, - "native-abort-controller": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", - "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==", - "requires": {} + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-defer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "requires": {} - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" }, "p-fifo": { "version": "1.0.0", @@ -50471,11 +20228,15 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pify": { "version": "4.0.1", @@ -50498,9 +20259,9 @@ } }, "pino": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.13.2.tgz", - "integrity": "sha512-vmD/cabJ4xKqo9GVuAoAEeQhra8XJ7YydPV/JyIP+0zDtFTu5JSKdtt8eksGVWKtTSrNGcRrzJ4/IzvUWep3FA==", + "version": "6.13.3", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.13.3.tgz", + "integrity": "sha512-tJy6qVgkh9MwNgqX1/oYi3ehfl2Y9H0uHyEEMsBe74KinESIjdMrMQDWpcZPpPicg3VV35d/GLQZmo4QgU2Xkg==", "requires": { "fast-redact": "^3.0.0", "fast-safe-stringify": "^2.0.8", @@ -50530,53 +20291,10 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "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" - } } } }, @@ -50639,53 +20357,13 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, "postcss-calc": { @@ -50958,6 +20636,15 @@ "postcss": "^6.0.1" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -50969,6 +20656,21 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -51007,6 +20709,15 @@ "postcss": "^6.0.1" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -51018,6 +20729,21 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -51056,6 +20782,15 @@ "postcss": "^6.0.1" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -51067,6 +20802,21 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -51105,6 +20855,15 @@ "postcss": "^6.0.1" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -51116,6 +20875,21 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -51427,20 +21201,25 @@ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" }, "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.4.tgz", + "integrity": "sha512-NUjw22WJHldzxyps2YjLZkUj6q1HvjqFezkB9Y2cklN8NtVZN/kZEXGZdFw4uny3oENzV5EEMESrkI0YDUH8vg==", "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" + "@jest/types": "^27.2.4", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" } } }, @@ -51577,9 +21356,9 @@ }, "dependencies": { "@types/node": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz", - "integrity": "sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w==" + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -51674,11 +21453,11 @@ } }, "pvtsutils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.0.tgz", - "integrity": "sha512-IDefMJEQl7HX0FP2hIKJFnAR11klP1js2ixCrOaMhe3kXFK6RQ2ABUCuwWaaD4ib0hSbh2fGTICvWJJhDfNecA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.1.tgz", + "integrity": "sha512-Q867jEr30lBR2YSFFLZ0/XsEvpweqH6Kj096wmlRAFXrdRGPCNq2iz9B5Tk085EZ+OBZyYAVA5UhPkjSHGrUzQ==", "requires": { - "tslib": "^2.2.0" + "tslib": "^2.3.1" } }, "pvutils": { @@ -51713,9 +21492,9 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, "quickly-copy-file": { "version": "1.0.0", @@ -52276,11 +22055,18 @@ } }, "rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", "requires": { - "bn.js": "^4.11.1" + "bn.js": "^5.2.0" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } } }, "rollup": { @@ -52369,60 +22155,11 @@ "style-inject": "^0.3.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "pify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -52449,12 +22186,6 @@ "terser": "^5.0.0" }, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", @@ -52465,15 +22196,6 @@ "merge-stream": "^2.0.0", "supports-color": "^7.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -52490,6 +22212,16 @@ "tslib": "2.1.0" }, "dependencies": { + "@rollup/pluginutils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", + "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, "find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -52710,6 +22442,11 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -52742,9 +22479,9 @@ } }, "sass": { - "version": "1.41.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.41.1.tgz", - "integrity": "sha512-vIjX7izRxw3Wsiez7SX7D+j76v7tenfO18P59nonjr/nzCkZuoHuF7I/Fo0ZRZPKr88v29ivIdE9BqGDgQD/Nw==", + "version": "1.42.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.42.1.tgz", + "integrity": "sha512-/zvGoN8B7dspKc5mC6HlaygyCBRvnyzzgD5khiaCfglWztY99cYoiTUksVx11NlnemrcfH5CEaCpsUKoW0cQqg==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0" @@ -52768,6 +22505,15 @@ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -52779,6 +22525,21 @@ "wrap-ansi": "^5.1.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -52936,9 +22697,12 @@ "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==" }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } }, "semver-diff": { "version": "3.1.1", @@ -53176,9 +22940,9 @@ } }, "signal-exit": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.4.tgz", - "integrity": "sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" }, "signed-varint": { "version": "2.0.1", @@ -53238,21 +23002,6 @@ "diff": "^4.0.2", "nise": "^4.0.4", "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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" - } - } } }, "sirv": { @@ -53508,6 +23257,158 @@ } } }, + "socket.io-client-next": { + "version": "npm:socket.io-client@3.1.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", + "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", + "requires": { + "@types/component-emitter": "^1.2.10", + "backo2": "~1.0.2", + "component-emitter": "~1.3.0", + "debug": "~4.3.1", + "engine.io-client": "~4.1.0", + "parseuri": "0.0.6", + "socket.io-parser": "~4.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "engine.io-client": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", + "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", + "requires": { + "base64-arraybuffer": "0.1.4", + "component-emitter": "~1.3.0", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.1", + "has-cors": "1.1.0", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.4.2", + "xmlhttprequest-ssl": "~1.6.2", + "yeast": "0.1.2" + } + }, + "engine.io-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", + "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, + "socket.io-next": { + "version": "npm:socket.io@3.1.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", + "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "requires": { + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.8", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~4.1.0", + "socket.io-adapter": "~2.1.0", + "socket.io-parser": "~4.0.3" + }, + "dependencies": { + "@types/node": { + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "engine.io": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", + "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" + } + }, + "engine.io-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", + "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "socket.io-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", + "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, "socket.io-parser": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", @@ -53589,8 +23490,7 @@ "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "sparse-array": { "version": "1.3.2", @@ -53785,13 +23685,16 @@ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true }, "string-length": { "version": "4.0.2", @@ -53803,19 +23706,13 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -53847,12 +23744,27 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + } } }, "strip-bom": { @@ -53941,14 +23853,21 @@ "iterall": "^1.2.1", "symbol-observable": "^1.0.4", "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" + }, + "dependencies": { + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + } } }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "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": "^2.0.0" + "has-flag": "^4.0.0" } }, "supports-hyperlinks": { @@ -53959,29 +23878,12 @@ "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "svelte": { - "version": "3.42.6", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.42.6.tgz", - "integrity": "sha512-lAcryr9Do2PeGtbodspX5I4kWj4yWYAa2WGpDCwzNkP3y8WZTxigMd4/TMO1rBZEOkMYGn4ZXrbAlSEGhK6q3w==" + "version": "3.43.1", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.43.1.tgz", + "integrity": "sha512-nvPIaKx4HLzYlSdquISZpgG1Kqr2VAWQjZOt3Iwm3UhbqmA0LnSx4k1YpRMEhjQYW3ZCqQoK8Egto9tv4YewMA==" }, "svgo": { "version": "1.3.2", @@ -54004,6 +23906,15 @@ "util.promisify": "~1.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -54024,6 +23935,21 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -54175,9 +24101,9 @@ } }, "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" }, "symbol-tree": { "version": "3.2.4", @@ -54202,7 +24128,6 @@ "version": "4.4.19", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "optional": true, "requires": { "chownr": "^1.1.4", "fs-minipass": "^1.2.7", @@ -54211,6 +24136,13 @@ "mkdirp": "^0.5.5", "safe-buffer": "^5.2.1", "yallist": "^3.1.1" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } } }, "tdigest": { @@ -54265,9 +24197,9 @@ } }, "terser": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.8.0.tgz", - "integrity": "sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -54519,13 +24451,9 @@ } }, "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "traverse": { "version": "0.3.9", @@ -54557,18 +24485,11 @@ } }, "ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", + "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", "requires": { - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "tslib": "^2.1.0" } }, "ts-jest": { @@ -54587,83 +24508,12 @@ "yargs-parser": "20.x" }, "dependencies": { - "@jest/types": { - "version": "27.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "ci-info": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-ci": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", @@ -54674,12 +24524,12 @@ } }, "jest-util": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.0.tgz", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", + "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", "dev": true, "requires": { - "@jest/types": "^27.1.1", + "@jest/types": "^27.2.4", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -54687,24 +24537,6 @@ "picomatch": "^2.2.3" } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", @@ -54787,10 +24619,10 @@ "tslib": "^2.0.1" }, "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "@types/node": { + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" } } }, @@ -54817,9 +24649,10 @@ } }, "typescript": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", - "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==" + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", + "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", + "dev": true }, "typical": { "version": "2.6.1", @@ -55049,59 +24882,6 @@ "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.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" - } - } } }, "upper-case": { @@ -55175,9 +24955,9 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, "utf-8-validate": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", - "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.6.tgz", + "integrity": "sha512-hoY0gOf9EkCw+nimK21FVKHUIG1BMqSiRwxB/q3A9yKZOrOI99PP77BxmarDqWz6rG3vVYiBWfhG8z2Tl+7fZA==", "requires": { "node-gyp-build": "^4.2.0" } @@ -55233,9 +25013,9 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v8-to-istanbul": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", - "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", + "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -55269,6 +25049,11 @@ "builtins": "^1.0.3" } }, + "validator": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.6.0.tgz", + "integrity": "sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==" + }, "varint": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", @@ -55363,23 +25148,23 @@ "integrity": "sha512-Czi3fG883e96T4DLEPRvufrF2ydhOOW1+1a6c3gNjH2aIh50DNFBdfwh2AKoOf1rXvpvavAoA11Qdq9+BKjE0Q==" }, "web3": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.2.tgz", - "integrity": "sha512-aapKLdO8t7Cos6tZLeeQUtCJvTiPMlLcHsHHDLSBZ/VaJEucSTxzun32M8sp3BmF4waDEmhY+iyUM1BKvtAcVQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.6.0.tgz", + "integrity": "sha512-rWpXnO88MiVX5yTRqMBCVKASxc7QDkXZZUl1D48sKlbX4dt3BAV+nVMVUKCBKiluZ5Bp8pDrVCUdPx/jIYai5Q==", "requires": { - "web3-bzz": "1.5.2", - "web3-core": "1.5.2", - "web3-eth": "1.5.2", - "web3-eth-personal": "1.5.2", - "web3-net": "1.5.2", - "web3-shh": "1.5.2", - "web3-utils": "1.5.2" + "web3-bzz": "1.6.0", + "web3-core": "1.6.0", + "web3-eth": "1.6.0", + "web3-eth-personal": "1.6.0", + "web3-net": "1.6.0", + "web3-shh": "1.6.0", + "web3-utils": "1.6.0" } }, "web3-bzz": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.2.tgz", - "integrity": "sha512-W/sPCdA+XQ9duUYKHAwf/g69cbbV8gTCRsa1MpZwU7spXECiyJ2EvD/QzAZ+UpJk3GELXFF/fUByeZ3VRQKF2g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.6.0.tgz", + "integrity": "sha512-ugYV6BsinwhIi0CsLWINBz4mqN9wR9vNG0WmyEbdECjxcPyr6vkaWt4qi0zqlUxEnYAwGj4EJXNrbjPILntQTQ==", "requires": { "@types/node": "^12.12.6", "got": "9.6.0", @@ -55387,59 +25172,59 @@ }, "dependencies": { "@types/node": { - "version": "12.20.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.25.tgz", - "integrity": "sha512-hcTWqk7DR/HrN9Xe7AlJwuCaL13Vcd9/g/T54YrJz4Q3ESM5mr33YCzW2bOfzSIc3aZMeGBvbLGvgN6mIJ0I5Q==" + "version": "12.20.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.28.tgz", + "integrity": "sha512-cBw8gzxUPYX+/5lugXIPksioBSbE42k0fZ39p+4yRzfYjN6++eq9kAPdlY9qm+MXyfbk9EmvCYAYRn380sF46w==" } } }, "web3-core": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.2.tgz", - "integrity": "sha512-sebMpQbg3kbh3vHUbHrlKGKOxDWqjgt8KatmTBsTAWj/HwWYVDzeX+2Q84+swNYsm2DrTBVFlqTErFUwPBvyaA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.6.0.tgz", + "integrity": "sha512-o0WsLrJ2yD+HAAc29lGMWJef/MutTyuzpJC0UzLJtIAQJqtpDalzWINEu4j8XYXGk34N/V6vudtzRPo23QEE6g==", "requires": { "@types/bn.js": "^4.11.5", "@types/node": "^12.12.6", "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.5.2", - "web3-core-method": "1.5.2", - "web3-core-requestmanager": "1.5.2", - "web3-utils": "1.5.2" + "web3-core-helpers": "1.6.0", + "web3-core-method": "1.6.0", + "web3-core-requestmanager": "1.6.0", + "web3-utils": "1.6.0" }, "dependencies": { "@types/node": { - "version": "12.20.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.25.tgz", - "integrity": "sha512-hcTWqk7DR/HrN9Xe7AlJwuCaL13Vcd9/g/T54YrJz4Q3ESM5mr33YCzW2bOfzSIc3aZMeGBvbLGvgN6mIJ0I5Q==" + "version": "12.20.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.28.tgz", + "integrity": "sha512-cBw8gzxUPYX+/5lugXIPksioBSbE42k0fZ39p+4yRzfYjN6++eq9kAPdlY9qm+MXyfbk9EmvCYAYRn380sF46w==" } } }, "web3-core-helpers": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.2.tgz", - "integrity": "sha512-U7LJoeUdQ3aY9t5gU7t/1XpcApsWm+4AcW5qKl/44ZxD44w0Dmsq1c5zJm3GuLr/a9MwQfXK4lpmvxVQWHHQRg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.6.0.tgz", + "integrity": "sha512-H/IAH/0mrgvad/oxVKiAMC7qDzMrPPe/nRKmJOoIsupRg9/frvL62kZZiHhqVD1HMyyswbQFC69QRl7JqWzvxg==", "requires": { - "web3-eth-iban": "1.5.2", - "web3-utils": "1.5.2" + "web3-eth-iban": "1.6.0", + "web3-utils": "1.6.0" } }, "web3-core-method": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.2.tgz", - "integrity": "sha512-/mC5t9UjjJoQmJJqO5nWK41YHo+tMzFaT7Tp7jDCQsBkinE68KsUJkt0jzygpheW84Zra0DVp6q19gf96+cugg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.6.0.tgz", + "integrity": "sha512-cHekyEil4mtcCOk6Q1Zh4y+2o5pTwsLIxP6Bpt4BRtZgdsyPiadYJpkLAVT/quch5xN7Qs5ZwG5AvRCS3VwD2g==", "requires": { "@ethereumjs/common": "^2.4.0", "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.5.2", - "web3-core-promievent": "1.5.2", - "web3-core-subscriptions": "1.5.2", - "web3-utils": "1.5.2" + "web3-core-helpers": "1.6.0", + "web3-core-promievent": "1.6.0", + "web3-core-subscriptions": "1.6.0", + "web3-utils": "1.6.0" } }, "web3-core-promievent": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.2.tgz", - "integrity": "sha512-5DacbJXe98ozSor7JlkTNCy6G8945VunRRkPxMk98rUrg60ECVEM/vuefk1atACzjQsKx6tmLZuHxbJQ64TQeQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.6.0.tgz", + "integrity": "sha512-ZzsevjMXWkhqW9dnVfTfb1OUcK7jKcKPvPIbQ4boJccNgvNZPZKlo8xB4pkAX38n4c59O5mC7Lt/z2QL/M5CeQ==", "requires": { "eventemitter3": "4.0.4" }, @@ -55452,24 +25237,24 @@ } }, "web3-core-requestmanager": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.2.tgz", - "integrity": "sha512-oRVW9OrAsXN2JIZt68OEg1Mb1A9a/L3JAGMv15zLEFEnJEGw0KQsGK1ET2kvZBzvpFd5G0EVkYCnx7WDe4HSNw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.6.0.tgz", + "integrity": "sha512-CY5paPdiDXKTXPWaEUZekDfUXSuoE2vPxolwqzsvKwFWH5+H1NaXgrc+D5HpufgSvTXawTw0fy7IAicg8+PWqA==", "requires": { "util": "^0.12.0", - "web3-core-helpers": "1.5.2", - "web3-providers-http": "1.5.2", - "web3-providers-ipc": "1.5.2", - "web3-providers-ws": "1.5.2" + "web3-core-helpers": "1.6.0", + "web3-providers-http": "1.6.0", + "web3-providers-ipc": "1.6.0", + "web3-providers-ws": "1.6.0" } }, "web3-core-subscriptions": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.2.tgz", - "integrity": "sha512-hapI4rKFk22yurtIv0BYvkraHsM7epA4iI8Np+HuH6P9DD0zj/llaps6TXLM9HyacLBRwmOLZmr+pHBsPopUnQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.6.0.tgz", + "integrity": "sha512-kY9WZUY/m1URSOv3uTLshoZD9ZDiFKReIzHuPUkxFpD5oYNmr1/aPQNPCrrMxKODR7UVX/D90FxWwCYqHhLaxQ==", "requires": { "eventemitter3": "4.0.4", - "web3-core-helpers": "1.5.2" + "web3-core-helpers": "1.6.0" }, "dependencies": { "eventemitter3": { @@ -55480,37 +25265,37 @@ } }, "web3-eth": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.2.tgz", - "integrity": "sha512-DwWQ6TCOUqvYyo7T20S7HpQDPveNHNqOn2Q2F3E8ZFyEjmqT4XsGiwvm08kB/VgQ4e/ANyq/i8PPFSYMT8JKHg==", - "requires": { - "web3-core": "1.5.2", - "web3-core-helpers": "1.5.2", - "web3-core-method": "1.5.2", - "web3-core-subscriptions": "1.5.2", - "web3-eth-abi": "1.5.2", - "web3-eth-accounts": "1.5.2", - "web3-eth-contract": "1.5.2", - "web3-eth-ens": "1.5.2", - "web3-eth-iban": "1.5.2", - "web3-eth-personal": "1.5.2", - "web3-net": "1.5.2", - "web3-utils": "1.5.2" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.6.0.tgz", + "integrity": "sha512-qJMvai//r0be6I9ghU24/152f0zgJfYC23TMszN3Y6jse1JtjCBP2TlTibFcvkUN1RRdIUY5giqO7ZqAYAmp7w==", + "requires": { + "web3-core": "1.6.0", + "web3-core-helpers": "1.6.0", + "web3-core-method": "1.6.0", + "web3-core-subscriptions": "1.6.0", + "web3-eth-abi": "1.6.0", + "web3-eth-accounts": "1.6.0", + "web3-eth-contract": "1.6.0", + "web3-eth-ens": "1.6.0", + "web3-eth-iban": "1.6.0", + "web3-eth-personal": "1.6.0", + "web3-net": "1.6.0", + "web3-utils": "1.6.0" } }, "web3-eth-abi": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.2.tgz", - "integrity": "sha512-P3bJbDR5wib4kWGfVeBKBVi27T+AiHy4EJxYM6SMNbpm3DboLDdisu9YBd6INMs8rzxgnprBbGmmyn4jKIDKAA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.6.0.tgz", + "integrity": "sha512-fImomGE9McuTMJLwK8Tp0lTUzXqCkWeMm00qPVIwpJ/h7lCw9UFYV9+4m29wSqW6FF+FIZKwc6UBEf9dlx3orA==", "requires": { "@ethersproject/abi": "5.0.7", - "web3-utils": "1.5.2" + "web3-utils": "1.6.0" } }, "web3-eth-accounts": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.2.tgz", - "integrity": "sha512-F8mtzxgEhxfLc66vPi0Gqd6mpscvvk7Ua575bsJ1p9J2X/VtuKgDgpWcU4e4LKeROQ+ouCpAG9//0j9jQuij3A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.6.0.tgz", + "integrity": "sha512-2f6HS4KIH4laAsNCOfbNX3dRiQosqSY2TRK86C8jtAA/QKGdx+5qlPfYzbI2RjG81iayb2+mVbHIaEaBGZ8sGw==", "requires": { "@ethereumjs/common": "^2.3.0", "@ethereumjs/tx": "^3.2.1", @@ -55519,10 +25304,10 @@ "ethereumjs-util": "^7.0.10", "scrypt-js": "^3.0.1", "uuid": "3.3.2", - "web3-core": "1.5.2", - "web3-core-helpers": "1.5.2", - "web3-core-method": "1.5.2", - "web3-utils": "1.5.2" + "web3-core": "1.6.0", + "web3-core-helpers": "1.6.0", + "web3-core-method": "1.6.0", + "web3-utils": "1.6.0" }, "dependencies": { "eth-lib": { @@ -55543,99 +25328,99 @@ } }, "web3-eth-contract": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.2.tgz", - "integrity": "sha512-4B8X/IPFxZCTmtENpdWXtyw5fskf2muyc3Jm5brBQRb4H3lVh1/ZyQy7vOIkdphyaXu4m8hBLHzeyKkd37mOUg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.6.0.tgz", + "integrity": "sha512-ZUtO77zFnxuFtrc+D+iJ3AzNgFXAVcKnhEYN7f1PNz/mFjbtE6dJ+ujO0mvMbxIZF02t9IZv0CIXRpK0rDvZAw==", "requires": { "@types/bn.js": "^4.11.5", - "web3-core": "1.5.2", - "web3-core-helpers": "1.5.2", - "web3-core-method": "1.5.2", - "web3-core-promievent": "1.5.2", - "web3-core-subscriptions": "1.5.2", - "web3-eth-abi": "1.5.2", - "web3-utils": "1.5.2" + "web3-core": "1.6.0", + "web3-core-helpers": "1.6.0", + "web3-core-method": "1.6.0", + "web3-core-promievent": "1.6.0", + "web3-core-subscriptions": "1.6.0", + "web3-eth-abi": "1.6.0", + "web3-utils": "1.6.0" } }, "web3-eth-ens": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.2.tgz", - "integrity": "sha512-/UrLL42ZOCYge+BpFBdzG8ICugaRS4f6X7PxJKO+zAt+TwNgBpjuWfW/ZYNcuqJun/ZyfcTuj03TXqA1RlNhZQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.6.0.tgz", + "integrity": "sha512-AG24PNv9qbYHSpjHcU2pViOII0jvIR7TeojJ2bxXSDqfcgHuRp3NZGKv6xFvT4uNI4LEQHUhSC7bzHoNF5t8CA==", "requires": { "content-hash": "^2.5.2", "eth-ens-namehash": "2.0.8", - "web3-core": "1.5.2", - "web3-core-helpers": "1.5.2", - "web3-core-promievent": "1.5.2", - "web3-eth-abi": "1.5.2", - "web3-eth-contract": "1.5.2", - "web3-utils": "1.5.2" + "web3-core": "1.6.0", + "web3-core-helpers": "1.6.0", + "web3-core-promievent": "1.6.0", + "web3-eth-abi": "1.6.0", + "web3-eth-contract": "1.6.0", + "web3-utils": "1.6.0" } }, "web3-eth-iban": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.2.tgz", - "integrity": "sha512-C04YDXuSG/aDwOHSX+HySBGb0KraiAVt+/l1Mw7y/fCUrKC/K0yYzMYqY/uYOcvLtepBPsC4ZfUYWUBZ2PO8Vg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.6.0.tgz", + "integrity": "sha512-HM/bKBS/e8qg0+Eh7B8C/JVG+GkR4AJty17DKRuwMtrh78YsonPj7GKt99zS4n5sDLFww1Imu/ZIk3+K5uJCjw==", "requires": { "bn.js": "^4.11.9", - "web3-utils": "1.5.2" + "web3-utils": "1.6.0" } }, "web3-eth-personal": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.2.tgz", - "integrity": "sha512-nH5N2GiVC0C5XeMEKU16PeFP3Hb3hkPvlR6Tf9WQ+pE+jw1c8eaXBO1CJQLr15ikhUF3s94ICyHcfjzkDsmRbA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.6.0.tgz", + "integrity": "sha512-8ohf4qAwbShf4RwES2tLHVqa+pHZnS5Q6tV80sU//bivmlZeyO1W4UWyNn59vu9KPpEYvLseOOC6Muxuvr8mFQ==", "requires": { "@types/node": "^12.12.6", - "web3-core": "1.5.2", - "web3-core-helpers": "1.5.2", - "web3-core-method": "1.5.2", - "web3-net": "1.5.2", - "web3-utils": "1.5.2" + "web3-core": "1.6.0", + "web3-core-helpers": "1.6.0", + "web3-core-method": "1.6.0", + "web3-net": "1.6.0", + "web3-utils": "1.6.0" }, "dependencies": { "@types/node": { - "version": "12.20.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.25.tgz", - "integrity": "sha512-hcTWqk7DR/HrN9Xe7AlJwuCaL13Vcd9/g/T54YrJz4Q3ESM5mr33YCzW2bOfzSIc3aZMeGBvbLGvgN6mIJ0I5Q==" + "version": "12.20.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.28.tgz", + "integrity": "sha512-cBw8gzxUPYX+/5lugXIPksioBSbE42k0fZ39p+4yRzfYjN6++eq9kAPdlY9qm+MXyfbk9EmvCYAYRn380sF46w==" } } }, "web3-net": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.5.2.tgz", - "integrity": "sha512-VEc9c+jfoERhbJIxnx0VPlQDot8Lm4JW/tOWFU+ekHgIiu2zFKj5YxhURIth7RAbsaRsqCb79aE+M0eI8maxVQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.6.0.tgz", + "integrity": "sha512-LFfG95ovTT2sNHkO1TEfsaKpYcxOSUtbuwHQ0K3G0e5nevKDJkPEFIqIcob40yiwcWoqEjENJP9Bjk8CRrZ99Q==", "requires": { - "web3-core": "1.5.2", - "web3-core-method": "1.5.2", - "web3-utils": "1.5.2" + "web3-core": "1.6.0", + "web3-core-method": "1.6.0", + "web3-utils": "1.6.0" } }, "web3-providers-http": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.2.tgz", - "integrity": "sha512-dUNFJc9IMYDLZnkoQX3H4ZjvHjGO6VRVCqrBrdh84wPX/0da9dOA7DwIWnG0Gv3n9ybWwu5JHQxK4MNQ444lyA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.6.0.tgz", + "integrity": "sha512-sNxHFNv3lnxpmULt34AS6M36IYB/Hzm2Et4yPNzdP1XE644D8sQBZQZaJQdTaza5HfrlwoqU6AOK935armqGuA==", "requires": { - "web3-core-helpers": "1.5.2", + "web3-core-helpers": "1.6.0", "xhr2-cookies": "1.1.0" } }, "web3-providers-ipc": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.2.tgz", - "integrity": "sha512-SJC4Sivt4g9LHKlRy7cs1jkJgp7bjrQeUndE6BKs0zNALKguxu6QYnzbmuHCTFW85GfMDjhvi24jyyZHMnBNXQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.6.0.tgz", + "integrity": "sha512-ETYdfhpGiGoWpmmSJnONvnPfd3TPivHEGjXyuX+L5FUsbMOVZj9MFLNIS19Cx/YGL8UWJ/8alLJoTcWSIdz/aA==", "requires": { "oboe": "2.1.5", - "web3-core-helpers": "1.5.2" + "web3-core-helpers": "1.6.0" } }, "web3-providers-ws": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.2.tgz", - "integrity": "sha512-xy9RGlyO8MbJDuKv2vAMDkg+en+OvXG0CGTCM2BTl6l1vIdHpCa+6A/9KV2rK8aU9OBZ7/Pf+Y19517kHVl9RA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.6.0.tgz", + "integrity": "sha512-eNRmlhOPCpuVYwBrKBBQRLGPFb4U1Uo44r9EWV69Cpo4gP6XeBTl6nkawhLz6DS0fq79apyPfItJVuSfAy77pA==", "requires": { "eventemitter3": "4.0.4", - "web3-core-helpers": "1.5.2", + "web3-core-helpers": "1.6.0", "websocket": "^1.0.32" }, "dependencies": { @@ -55647,40 +25432,28 @@ } }, "web3-shh": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.2.tgz", - "integrity": "sha512-wOxOcYt4Sa0AHAI8gG7RulCwVuVjSRS/M/AbFsea3XfJdN6sU13/syY7OdZNjNYuKjYTzxKYrd3dU/K2iqffVw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.6.0.tgz", + "integrity": "sha512-ymN0OFL81WtEeSyb+PFpuUv39fR3frGwsZnIg5EVPZvrOIdaDSFcGSLDmafUt0vKSubvLMVYIBOCskRD6YdtEQ==", "requires": { - "web3-core": "1.5.2", - "web3-core-method": "1.5.2", - "web3-core-subscriptions": "1.5.2", - "web3-net": "1.5.2" + "web3-core": "1.6.0", + "web3-core-method": "1.6.0", + "web3-core-subscriptions": "1.6.0", + "web3-net": "1.6.0" } }, "web3-utils": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.2.tgz", - "integrity": "sha512-quTtTeQJHYSxAwIBOCGEcQtqdVcFWX6mCFNoqnp+mRbq+Hxbs8CGgO/6oqfBx4OvxIOfCpgJWYVHswRXnbEu9Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz", + "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==", "requires": { "bn.js": "^4.11.9", - "eth-lib": "0.2.8", "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", "randombytes": "^2.1.0", "utf8": "3.0.0" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } } }, "webcrypto": { @@ -55705,10 +25478,9 @@ } }, "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "websocket": { "version": "1.0.34", @@ -55759,14 +25531,12 @@ "dev": true }, "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "which": { @@ -55811,7 +25581,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -55824,32 +25593,27 @@ "string-width": "^4.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -55885,53 +25649,27 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "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" - } - }, - "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==" - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -55955,8 +25693,7 @@ "ws": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "requires": {} + "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==" }, "xdg-basedir": { "version": "4.0.0", @@ -56075,9 +25812,9 @@ "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "16.2.0", @@ -56093,19 +25830,6 @@ "yargs-parser": "^20.2.2" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "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" - } - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -56116,40 +25840,27 @@ "wrap-ansi": "^7.0.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==" - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "wrap-ansi": { diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index 716b9bc75..e5273e7b2 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -10,11 +10,13 @@ import type { ChildProcess } from 'child_process' import { RequestAgentInfoResponse } from '@holochain/conductor-api' import EntanglementProofController from '../../EntanglementProof' import AgentService from '../../agent/AgentService' +import fetch from "node-fetch"; export const fakeCapSecret = (): CapSecret => Buffer.from(Array(64).fill('aa').join(''), 'hex') const bootstrapUrl = "https://bootstrap-staging.holo.host" const kitsuneProxy = "kitsune-proxy://SYVd4CF3BdJ4DS7KwLLgeU3_DbHoZ34Y-qroZ79DOs8/kitsune-quic/h/165.22.32.11/p/5779/--" +const signingServiceVersion = "0.0.1"; export interface HolochainConfiguration { conductorPath: string, @@ -148,9 +150,17 @@ export default class HolochainService { if (!activeApps.map(value => value.installed_app_id).includes("signing_service")) { const pubKey = await this.pubKeyForLanguage("main"); + const dest = path.join(this.#dataPath, "signing.dna"); + const res = await fetch(`https://github.com/perspect3vism/signing-service/releases/download/${signingServiceVersion}/signing.dna`); + const fileStream = fs.createWriteStream(dest); + await new Promise((resolve, reject) => { + res.body.pipe(fileStream); + res.body.on("error", reject); + fileStream.on("finish", resolve); + }); + const hash = await this.#adminWebsocket!.registerDna({ - //Pretty sure this is not gonna work in production - path: path.join(__dirname, "../../../../public/signing.dna") + path: dest }) const installedApp = await this.#adminWebsocket!.installApp({ From 901c0eb6764f24b970300e4e2de950b5c54d1f83 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Thu, 7 Oct 2021 16:14:17 +0100 Subject: [PATCH 032/722] remove signing dna --- public/signing.dna | Bin 751136 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/signing.dna diff --git a/public/signing.dna b/public/signing.dna deleted file mode 100644 index e2be7ac4a1a5625147715ede70087acabea4addd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751136 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≺eu8ji4{qHFMfOH(558mT^gO4jYQYz&StW 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≤wFIR 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 z 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 C-f$ZL From b5450d41e1a0b04a2bd3acbdfa1d96ed5a86dbe2 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Tue, 12 Oct 2021 14:33:23 +0100 Subject: [PATCH 033/722] bump node-sass to fix node 16 npm i error --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 820cf244c..8c33c97ec 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "faker": "^5.1.0", "fs-extra": "^9.1.0", "jest": "^27.0.4", - "node-sass": "^4.14.1", + "node-sass": "^6.0.1", "node-wget-js": "^1.0.1", "react": "^17.0.1", "rollup": "2.52.7", From 931093571abcdc59f0998f12c4b46e4474e60e20 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Wed, 13 Oct 2021 14:09:21 +0100 Subject: [PATCH 034/722] check if language has any data in created buffer before calling ipfs to avoid runtime errors --- src/core/LanguageController.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/core/LanguageController.ts b/src/core/LanguageController.ts index 78c298bdc..619c9f90c 100644 --- a/src/core/LanguageController.ts +++ b/src/core/LanguageController.ts @@ -46,12 +46,8 @@ export default class LanguageController { } async loadLanguages() { - try { - await this.loadBuiltInLanguages() - await this.loadInstalledLanguages() - } catch (e) { - throw new Error(`Error loading languages ${e}`); - } + await this.loadBuiltInLanguages() + await this.loadInstalledLanguages() } loadBuiltInLanguages() { @@ -100,6 +96,9 @@ export default class LanguageController { sourceFilePath = path.join(process.env.PWD!, sourceFilePath) const bundleBytes = fs.readFileSync(sourceFilePath) + if (bundleBytes.length === 0) { + throw new Error("Language to be loaded does not contain any data") + } // @ts-ignore const hash = await this.ipfsHash(bundleBytes) From dc2efb85557ba21a0a66fa38d09f597e18776b27 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Mon, 7 Mar 2022 16:34:29 +0000 Subject: [PATCH 035/722] bump version of signing service --- src/core/storage-services/Holochain/HolochainService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index 921b6f004..fedf00f2a 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -18,7 +18,7 @@ export const fakeCapSecret = (): CapSecret => Buffer.from(Array(64).fill('aa').j const bootstrapUrl = "https://bootstrap-staging.holo.host" const kitsuneProxy = "kitsune-proxy://SYVd4CF3BdJ4DS7KwLLgeU3_DbHoZ34Y-qroZ79DOs8/kitsune-quic/h/165.22.32.11/p/5779/--" -const signingServiceVersion = "0.0.1"; +const signingServiceVersion = "0.0.2"; export interface HolochainConfiguration { conductorPath?: string, From 4836688696ab8d15723e48ec125cc36e717618d9 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Mon, 7 Mar 2022 16:35:34 +0000 Subject: [PATCH 036/722] remove package-lock --- package-lock.json | 43016 -------------------------------------------- 1 file changed, 43016 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index c9b59d530..000000000 --- a/package-lock.json +++ /dev/null @@ -1,43016 +0,0 @@ -{ - "name": "@perspect3vism/ad4m-executor", - "version": "0.1.32", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@perspect3vism/ad4m-executor", - "version": "0.1.32", - "license": "CAL-1.0", - "dependencies": { - "@holochain/client": "0.3.2", - "@perspect3vism/ad4m": "0.1.25", - "@transmute/did-key-ed25519": "^0.2.1-unstable.29", - "@transmute/did-key-secp256k1": "^0.2.1-unstable.29", - "@transmute/did-key.js": "^0.2.1-unstable.29", - "@transmute/did-wallet": "lucksus/did-wallet", - "@types/json-stable-stringify": "^1.0.33", - "apollo-server": "^2.18.2", - "fs-extra": "^10.0.0", - "get-port": "5.1.1", - "graphql": "^15.3.0", - "ipfs": "0.61.0", - "js-yaml": "^4.1.0", - "json-stable-stringify": "^1.0.1", - "lowdb": "^1.0.0", - "node-fetch": "^2.6.1", - "sha256": "^0.2.0", - "sha3": "^2.1.3", - "swipl-stdio": "^1.0.4", - "tmp": "^0.2.1" - }, - "devDependencies": { - "@apollo/client": "3.3.20", - "@peculiar/webcrypto": "^1.1.7", - "@types/faker": "^5.5.7", - "@types/fs-extra": "^9.0.12", - "@types/jest": "^27.0.0", - "@types/js-yaml": "^4.0.2", - "@types/lowdb": "^1.0.11", - "@types/node": "^14.14.22", - "@types/node-fetch": "^2.5.11", - "@types/secp256k1": "^4.0.3", - "@types/sha256": "^0.2.0", - "@types/uuid": "^8.3.1", - "faker": "^5.1.0", - "jest": "^27.2.5", - "node-wget-js": "^1.0.1", - "react": "^17.0.1", - "ts-jest": "^27.0.3", - "typescript": "^4.2.4", - "unzipper": "^0.10.11" - } - }, - "node_modules/@apollo/client": { - "version": "3.3.20", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", - "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", - "requires": { - "@graphql-typed-document-node/core": "^3.0.0", - "@types/zen-observable": "^0.8.0", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "fast-json-stable-stringify": "^2.0.0", - "graphql-tag": "^2.12.0", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.0", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.7.0", - "tslib": "^1.10.0", - "zen-observable": "^0.8.14" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "node_modules/@apollo/client/node_modules/@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@apollo/client/node_modules/@wry/equality/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@apollo/client/node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@apollo/client/node_modules/ts-invariant": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", - "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@apollo/client/node_modules/ts-invariant/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@apollo/client/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz", - "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - } - } - }, - "node_modules/@apollo/protobufjs/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz", - "integrity": "sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw==", - "engines": { - "node": ">=8", - "npm": ">=6" - } - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.27", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz", - "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==", - "requires": { - "xss": "^1.0.8" - } - }, - "@apollographql/graphql-upload-8-fork": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", - "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", - "requires": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "busboy": "^0.3.1", - "fs-capacitor": "^2.0.4", - "http-errors": "^1.7.3", - "object-path": "^0.11.4" - } - }, - "@assemblyscript/loader": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", - "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" - }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz", - "integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", - "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@chainsafe/libp2p-noise": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-5.0.2.tgz", - "integrity": "sha512-hpxHl3bxHN2fgpmjP2zkC2Lq3ajA349WxI7U2aBuskkq3Pd+aUmSlVjM8pyN+5Dr5+yHuayqCgMUxq3AeOM7Zw==", - "dependencies": { - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/hkdf": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.1", - "bl": "^5.0.0", - "debug": "^4.3.1", - "it-buffer": "^0.1.3", - "it-length-prefixed": "^5.0.3", - "it-pair": "^1.0.0", - "it-pb-rpc": "^0.2.0", - "it-pipe": "^1.1.0", - "peer-id": "^0.16.0", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz", - "integrity": "sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@hapi/accept": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", - "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/ammo": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", - "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", - "dependencies": { - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/b64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", - "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", - "dependencies": { - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/boom": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", - "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", - "dependencies": { - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/bounce": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", - "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "node_modules/@hapi/call": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", - "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/catbox": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", - "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/podium": "4.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/catbox-memory": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", - "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/content": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", - "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", - "dependencies": { - "@hapi/boom": "9.x.x" - } - }, - "node_modules/@hapi/cryptiles": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", - "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", - "dependencies": { - "@hapi/boom": "9.x.x" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@hapi/file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", - "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" - }, - "node_modules/@hapi/hapi": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.2.1.tgz", - "integrity": "sha512-OXAU+yWLwkMfPFic+KITo+XPp6Oxpgc9WUH+pxXWcTIuvWbgco5TC/jS8UDvz+NFF5IzRgF2CL6UV/KLdQYUSQ==", - "dependencies": { - "@hapi/accept": "^5.0.1", - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/bounce": "^2.0.0", - "@hapi/call": "^8.0.0", - "@hapi/catbox": "^11.1.1", - "@hapi/catbox-memory": "^5.0.0", - "@hapi/heavy": "^7.0.1", - "@hapi/hoek": "^9.0.4", - "@hapi/mimos": "^6.0.0", - "@hapi/podium": "^4.1.1", - "@hapi/shot": "^5.0.5", - "@hapi/somever": "^3.0.0", - "@hapi/statehood": "^7.0.3", - "@hapi/subtext": "^7.0.3", - "@hapi/teamwork": "^5.1.0", - "@hapi/topo": "^5.0.0", - "@hapi/validate": "^1.1.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@hapi/heavy": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", - "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" - }, - "node_modules/@hapi/iron": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", - "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", - "dependencies": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/mimos": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz", - "integrity": "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==", - "dependencies": { - "@hapi/hoek": "9.x.x", - "mime-db": "1.x.x" - } - }, - "node_modules/@hapi/nigel": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", - "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", - "dependencies": { - "@hapi/hoek": "^9.0.4", - "@hapi/vise": "^4.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@hapi/pez": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", - "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", - "dependencies": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/content": "^5.0.2", - "@hapi/hoek": "9.x.x", - "@hapi/nigel": "4.x.x" - } - }, - "node_modules/@hapi/podium": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", - "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", - "dependencies": { - "@hapi/hoek": "9.x.x", - "@hapi/teamwork": "5.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/shot": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", - "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", - "dependencies": { - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/somever": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz", - "integrity": "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==", - "dependencies": { - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/statehood": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", - "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/iron": "6.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/subtext": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", - "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/content": "^5.0.2", - "@hapi/file": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/pez": "^5.0.1", - "@hapi/wreck": "17.x.x" - } - }, - "node_modules/@hapi/teamwork": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", - "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@hapi/validate": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", - "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0" - } - }, - "node_modules/@hapi/vise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", - "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", - "dependencies": { - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/wreck": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz", - "integrity": "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@holochain/client": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@holochain/client/-/client-0.3.2.tgz", - "integrity": "sha512-tBmfgRMcHn/yujiQ4ugolAEbE4WMznIGRt+F8gpPNNAzC263xt+CLa6G3KslcfUc4tKD+XCr5c9z3wkZP/MMzw==", - "dependencies": { - "@msgpack/msgpack": "^2.7.1", - "cross-fetch": "^3.1.4", - "isomorphic-ws": "^4.0.1" - } - }, - "node_modules/@holochain/client/node_modules/@msgpack/msgpack": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz", - "integrity": "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@ipld/car": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@ipld/car/-/car-3.2.3.tgz", - "integrity": "sha512-pXE5mFJlXzJVaBwqAJKGlKqMmxq8H2SLEWBJgkeBDPBIN8ZbscPc3I9itkSQSlS/s6Fgx35Ri3LDTDtodQjCCQ==", - "dependencies": { - "@ipld/dag-cbor": "^7.0.0", - "multiformats": "^9.5.4", - "varint": "^6.0.0" - } - }, - "node_modules/@ipld/dag-cbor": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.0.tgz", - "integrity": "sha512-us/dagGvfQ+acO8uyAfozUQ21xxvI6ZrCWwfbOuk+o+cSpCIKY30lUYRuN3kzWLvTJHvbuCVPVEH38ynM1ZBgw==", - "dependencies": { - "cborg": "^1.6.0", - "multiformats": "^9.5.4" - } - }, - "node_modules/@ipld/dag-json": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.7.tgz", - "integrity": "sha512-nG4hdl1V4GDKZ6Mumu2tL8zSpem/lRSVpQOd1uEovF+qPRkVnb06hsETy97J3kR0EjbZgge8m5AYtrab3DSREg==", - "dependencies": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" - } - }, - "node_modules/@ipld/dag-pb": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.15.tgz", - "integrity": "sha512-qkoUIiuQDx2ZN+YmYFdSNNHRt15p1XTYbqsseb8DgA0ACcqCUurbiNVd0jt5GuiBm76t2mOV2cZsNu6rykRFBQ==", - "dependencies": { - "multiformats": "^9.5.4" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.7.tgz", - "integrity": "sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/reporters": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.4.2", - "jest-config": "^27.4.7", - "jest-haste-map": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.6", - "jest-resolve-dependencies": "^27.4.6", - "jest-runner": "^27.4.6", - "jest-runtime": "^27.4.6", - "jest-snapshot": "^27.4.6", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "jest-watcher": "^27.4.6", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@jest/core/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@jest/core/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@jest/core/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@jest/core/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@jest/core/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/@jest/core/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/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==", - "dev": true - }, - "node_modules/@jest/core/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@jest/core/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/@jest/core/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "dependencies": { - "@jest/fake-timers": { - "version": "27.2.4", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.4.tgz", - "integrity": "sha512-cs/TzvwWUM7kAA6Qm/890SK6JJ2pD5RfDNM3SSEom6BmdyV6OiWP1qf/pqo6ts6xwpcM36oN0wSEzcZWc6/B6w==", - "dev": true, - "requires": { - "@jest/types": "^27.2.4", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.2.4", - "jest-mock": "^27.2.4", - "jest-util": "^27.2.4" - } - }, - "@sinonjs/fake-timers": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", - "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.2.4", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", - "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.4", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.4", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.2.4", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.2.4.tgz", - "integrity": "sha512-iVRU905rutaAoUcrt5Tm1JoHHWi24YabqEGXjPJI4tAyA6wZ7mzDi3GrZ+M7ebgWBqUkZE93GAx1STk7yCMIQA==", - "dev": true, - "requires": { - "@jest/types": "^27.2.4", - "@types/node": "*" - } - }, - "jest-util": { - "version": "27.2.4", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", - "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", - "dev": true, - "requires": { - "@jest/types": "^27.2.4", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "node_modules/@jest/core/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "node_modules/@jest/core/node_modules/jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jest/core/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@jest/core/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@jest/core/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/@jest/core/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/core/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/core/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@jest/core/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@jest/environment": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.6.tgz", - "integrity": "sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/environment/node_modules/@jest/fake-timers": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz", - "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/environment/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/environment/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@jest/environment/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@jest/environment/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@jest/environment/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/environment/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/environment/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/@jest/environment/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/environment/node_modules/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==", - "dev": true - }, - "node_modules/@jest/environment/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@jest/environment/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/environment/node_modules/jest-mock": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz", - "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/environment/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/environment/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@jest/environment/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/environment/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/environment/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/@jest/environment/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/environment/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.6.tgz", - "integrity": "sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.6", - "@jest/types": "^27.4.2", - "expect": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@jest/globals/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@jest/globals/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/globals/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/globals/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/globals/node_modules/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==", - "dev": true - }, - "node_modules/@jest/globals/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/globals/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz", - "integrity": "sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.4.6", - "jest-resolve": "^27.4.6", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@jest/reporters/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@jest/reporters/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@jest/reporters/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/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==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@jest/reporters/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/@jest/reporters/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jest/reporters/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@jest/reporters/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/reporters/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/reporters/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz", - "integrity": "sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.4.6", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-runtime": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@jest/test-sequencer/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@jest/test-sequencer/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@jest/test-sequencer/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/test-sequencer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/test-sequencer/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@jest/test-sequencer/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/test-sequencer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/test-sequencer/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/@jest/test-sequencer/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/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==", - "dev": true - }, - "node_modules/@jest/test-sequencer/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/test-sequencer/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/test-sequencer/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/test-sequencer/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/@jest/test-sequencer/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@jest/test-sequencer/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@jest/test-sequencer/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/test-sequencer/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/@jest/test-sequencer/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/test-sequencer/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/test-sequencer/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/test-sequencer/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz", - "integrity": "sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@jest/transform/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@jest/transform/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/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==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@jest/transform/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/@jest/transform/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jest/transform/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@jest/transform/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/transform/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz", - "integrity": "sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==", - "dependencies": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.5", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/@mattrglobal/bbs-signatures": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", - "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", - "optionalDependencies": { - "@mattrglobal/node-bbs-signatures": "0.11.0" - } - }, - "node_modules/@mattrglobal/bls12381-key-pair": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", - "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", - "dependencies": { - "@mattrglobal/bbs-signatures": "0.5.0", - "bs58": "4.0.1", - "rfc4648": "1.4.0" - } - }, - "node_modules/@mattrglobal/node-bbs-signatures": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", - "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "neon-cli": "0.4.0", - "node-pre-gyp": "0.14.0" - }, - "engines": { - "node": ">=10", - "yarn": "1.x" - } - }, - "node_modules/@multiformats/murmur3": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-1.1.1.tgz", - "integrity": "sha512-TPIBMPX4DX7T4291bPUAn/AMW6H6mnYoI4Bza1DeX1I59dpTWBbOgxaqc+139Ph+NEgb/PNd3sFS8VFoOXzNlw==", - "dependencies": { - "multiformats": "^9.5.4", - "murmurhash3js-revisited": "^3.0.0" - } - }, - "node_modules/@noble/ed25519": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.6.0.tgz", - "integrity": "sha512-UKju89WV37IUALIMfKhKW3psO8AqmrE/GvH6QbPKjzolQ98zM7WmGUeY+xdIgSf5tqPFf75ZCYMgym6E9Jsw3Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/secp256k1": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.5.3.tgz", - "integrity": "sha512-v11x6HReQymMELBq2fnwVthQMOPB5911fwem9515TLiNlitdOuS2qEMa1BzTcDgB563ql0238JGrpJJA1IaJ8Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.0.44", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.44.tgz", - "integrity": "sha512-uaCnjQ9A9WwQSMuDJcNOCYEPXTahgKbFMvI7eMOMd8lXgx0J1eU7F3BoMsK5PFxa3dVUxjSQbaOjfgGoeHGgoQ==", - "dependencies": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.1", - "tslib": "^2.3.0" - } - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@peculiar/webcrypto": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.2.3.tgz", - "integrity": "sha512-q7wDfZy3k/tpnsYB23/MyyDkjn6IdHh8w+xwoVMS5cu6CjVoFzngXDZEOOuSE4zus2yO6ciQhhHxd4XkLpwVnQ==", - "dependencies": { - "@peculiar/asn1-schema": "^2.0.44", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.2.1", - "tslib": "^2.3.1", - "webcrypto-core": "^1.4.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@perspect3vism/ad4m": { - "version": "0.1.25", - "resolved": "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.1.25.tgz", - "integrity": "sha512-l9+K+6WgtnIOILoQex0IB6dnuDbHrZzDPkl2vUftoS12xb8kYJGmkpsovSN9dHw5IJOU4YY7AEJEzXRwdtEcZQ==", - "dependencies": { - "@apollo/client": "3.3.20", - "@holochain/client": "0.3.2", - "@types/jest": "^27.0.1", - "class-validator": "^0.13.1", - "graphql": "^15.5.0", - "react": "^17.0.2", - "reflect-metadata": "^0.1.13", - "type-graphql": "^1.1.1" - } - }, - "node_modules/@perspect3vism/ad4m/node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@perspect3vism/ad4m/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@perspect3vism/ad4m/node_modules/@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" - }, - "node_modules/@perspect3vism/ad4m/node_modules/class-validator": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz", - "integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==", - "dependencies": { - "libphonenumber-js": "^1.9.43", - "validator": "^13.7.0" - } - }, - "node_modules/@perspect3vism/ad4m/node_modules/graphql-query-complexity": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", - "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", - "dependencies": { - "lodash.get": "^4.4.2" - }, - "peerDependencies": { - "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/@perspect3vism/ad4m/node_modules/libphonenumber-js": { - "version": "1.9.44", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.44.tgz", - "integrity": "sha512-zhw8nUMJuQf7jG1dZfEOKKOS6M3QYIv3HnvB/vGohNd0QfxIQcObH3a6Y6s350H+9xgBeOXClOJkS0hJ0yvS3g==" - }, - "node_modules/@perspect3vism/ad4m/node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "node_modules/@perspect3vism/ad4m/node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/@perspect3vism/ad4m/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@perspect3vism/ad4m/node_modules/type-graphql": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz", - "integrity": "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==", - "hasInstallScript": true, - "dependencies": { - "@types/glob": "^7.1.3", - "@types/node": "*", - "@types/semver": "^7.3.3", - "glob": "^7.1.6", - "graphql-query-complexity": "^0.7.0", - "graphql-subscriptions": "^1.1.0", - "semver": "^7.3.2", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 10.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typegraphql" - }, - "peerDependencies": { - "class-validator": ">=0.12.0", - "graphql": "^15.3.0" - } - }, - "node_modules/@perspect3vism/ad4m/node_modules/type-graphql/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@perspect3vism/ad4m/node_modules/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@sideway/address": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@socket.io/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz", - "integrity": "sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q==" - }, - "node_modules/@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "node_modules/@stablelib/aes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", - "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/aes-kw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", - "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", - "dependencies": { - "@stablelib/aes": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "dependencies": { - "@stablelib/int": "^1.0.1" - } - }, - "node_modules/@stablelib/blockcipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", - "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" - }, - "node_modules/@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "node_modules/@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "node_modules/@stablelib/ed25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", - "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", - "dependencies": { - "@stablelib/random": "^1.0.1", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "node_modules/@stablelib/hkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", - "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", - "dependencies": { - "@stablelib/hash": "^1.0.1", - "@stablelib/hmac": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/hmac": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", - "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "node_modules/@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "dependencies": { - "@stablelib/bytes": "^1.0.1" - } - }, - "node_modules/@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/sha256": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", - "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/sha512": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", - "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "node_modules/@stablelib/x25519": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz", - "integrity": "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==", - "dependencies": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/xchacha20": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", - "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/xchacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", - "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1", - "@stablelib/xchacha20": "^1.0.1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@transmute/did-key-bls12381": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz", - "integrity": "sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ==", - "dependencies": { - "@mattrglobal/bbs-signatures": "^0.5.0", - "@mattrglobal/bls12381-key-pair": "^0.5.0", - "base64url": "^3.0.1", - "bs58": "^4.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-cipher": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz", - "integrity": "sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw==", - "dependencies": { - "@peculiar/webcrypto": "^1.1.3", - "@stablelib/aes-kw": "^1.0.0", - "@stablelib/xchacha20poly1305": "^1.0.0", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "web-streams-polyfill": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-common": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz", - "integrity": "sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A==", - "dependencies": { - "base64url": "^3.0.1", - "borc": "^2.1.2", - "canonicalize": "^1.0.3", - "cbor": "^5.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-ed25519": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz", - "integrity": "sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw==", - "dependencies": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@transmute/did-key-x25519": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-secp256k1": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz", - "integrity": "sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ==", - "dependencies": { - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1", - "secp256k1": "^4.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-web-crypto": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-web-crypto/-/did-key-web-crypto-0.2.1-unstable.42.tgz", - "integrity": "sha512-GaD320cZxPJAVdQtSrxgTn91T1M/2qwSMQgowVdnY5HKEik2BS3o1kU7DYAJpUPdU2WNKg9W3Rr+C/dRY0Q0rQ==", - "dependencies": { - "@transmute/web-crypto-key-pair": "^0.6.1-unstable.18" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key-x25519": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-x25519/-/did-key-x25519-0.2.1-unstable.42.tgz", - "integrity": "sha512-pInHZaepvjmfym1fBDrdbL5isUVbYHR1nYBsH3uD9EPn7SwZfEBe0Vg9hUop81b4x/6+VVWuGm2dIhpVBxsRPQ==", - "dependencies": { - "@stablelib/ed25519": "^1.0.1", - "@stablelib/x25519": "^1.0.0", - "@transmute/did-key-cipher": "^0.2.1-unstable.42", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-key.js": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key.js/-/did-key.js-0.2.1-unstable.42.tgz", - "integrity": "sha512-vqwkJeAIkpekSCszKztIOVGFuWZMF8GJfiSHMv+vsS0cgLqzHer8WCUCudWt76rc2s90uK7FdlkvdwoZgGRl6g==", - "dependencies": { - "@transmute/did-key-bls12381": "^0.2.1-unstable.42", - "@transmute/did-key-ed25519": "^0.2.1-unstable.42", - "@transmute/did-key-secp256k1": "^0.2.1-unstable.42", - "@transmute/did-key-web-crypto": "^0.2.1-unstable.42", - "@transmute/did-key-x25519": "^0.2.1-unstable.42" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@transmute/did-wallet": { - "version": "0.0.0-6", - "resolved": "git+ssh://git@github.com/lucksus/did-wallet.git#cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2", - "integrity": "sha512-iya0qxEe2xkeDIZ8StHWGS7kH81nw8YZ4EzwGPkW/SaGlEB2UExcYAlJdfHM5ErqDDOqp7Ke3Lla3VywMtRhIA==", - "license": "Apache-2", - "dependencies": { - "base64url": "^3.0.1", - "jsonschema": "^1.2.4", - "lodash": "^4.17.11" - } - }, - "node_modules/@transmute/ld-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" - }, - "node_modules/@transmute/web-crypto-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-BVN5ECm3t5ldJiyixsdoXaptr14p2PxOOGWvyBm5eqWlVy/kiWQiVh43wZgEbHtjOkacTfw+BaVAtYkyGn2tpw==", - "dependencies": { - "@peculiar/webcrypto": "^1.1.6", - "@transmute/ld-key-pair": "^0.6.1-unstable.37", - "big-integer": "^1.6.48" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@trust/keyto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@trust/keyto/-/keyto-1.0.1.tgz", - "integrity": "sha512-OXTmKkrnkwktCX86XA7eWs1TQ6u64enm0syzAfNhjigbuGLy5aLhbhRYWtjt4zzdG/irWudluheRZ9Ic9pCwsA==", - "dependencies": { - "asn1.js": "^5.2.0", - "base64url": "^3.0.1", - "elliptic": "^6.5.2" - } - }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/accepts/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@types/asn1js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", - "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" - }, - "node_modules/@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/body-parser/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" - }, - "node_modules/@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", - "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cookies/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==" - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/express-serve-static-core/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@types/faker": { - "version": "5.5.9", - "resolved": "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz", - "integrity": "sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA==", - "dev": true - }, - "node_modules/@types/fs-capacitor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", - "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/fs-capacitor/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" - }, - "node_modules/@types/http-errors": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.2.tgz", - "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", - "dependencies": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/jest/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@types/jest/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@types/jest/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@types/jest/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/@types/js-yaml": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", - "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", - "dev": true - }, - "node_modules/@types/json-stable-stringify": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz", - "integrity": "sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw==" - }, - "node_modules/@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" - }, - "node_modules/@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", - "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "node_modules/@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "dependencies": { - "@types/koa": "*" - } - }, - "node_modules/@types/koa/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@types/lodash": { - "version": "4.14.178", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", - "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==", - "dev": true - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/lowdb": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@types/lowdb/-/lowdb-1.0.11.tgz", - "integrity": "sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg==", - "dev": true, - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/node": { - "version": "14.18.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.9.tgz", - "integrity": "sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q==" - }, - "node_modules/@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/prettier": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz", - "integrity": "sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@types/sha256": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@types/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha512-QYMr6HuxTQunFWRLZpGopbkgQFoFWOmKTBGgNSYiWMqU/CWnQSTo3edyHvgsRXsOWtOSOG/cmDptPzgCeOsQGw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "node_modules/@types/zen-observable": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", - "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" - }, - "node_modules/@vascosantos/moving-average": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", - "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" - }, - "node_modules/@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/equality": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", - "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", - "dependencies": { - "tslib": "^1.9.3" - } - }, - "node_modules/@wry/equality/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@wry/trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", - "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abortable-iterator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", - "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/abstract-leveldown/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/abstract-logging": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "optional": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ansi-escape-sequences/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/any-signal": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", - "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.3" - } - }, - "node_modules/apollo-cache-control": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz", - "integrity": "sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==", - "deprecated": "The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details.", - "dependencies": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-datasource": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz", - "integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==", - "dependencies": { - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/apollo-graphql": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.5.tgz", - "integrity": "sha512-RGt5k2JeBqrmnwRM0VOgWFiGKlGJMfmiif/4JvdaEqhMJ+xqe/9cfDYzXfn33ke2eWixsAbjEbRfy8XbaN9nTw==", - "dependencies": { - "core-js-pure": "^3.10.2", - "lodash.sortby": "^4.7.0", - "sha.js": "^2.4.11" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0" - } - }, - "node_modules/apollo-link": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz", - "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==", - "dependencies": { - "apollo-utilities": "^1.3.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3", - "zen-observable-ts": "^0.8.21" - }, - "peerDependencies": { - "graphql": "^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-link/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/apollo-reporting-protobuf": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz", - "integrity": "sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==", - "dependencies": { - "@apollo/protobufjs": "1.2.2" - } - }, - "node_modules/apollo-server": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.3.tgz", - "integrity": "sha512-+eUY2//DLkU7RkJLn6CTl1P89/ZMHuUQnWqv8La2iJ2hLT7Me+nMx+hgHl3LqlT/qDstQ8qA45T85FuCayplmQ==", - "dependencies": { - "apollo-server-core": "^2.25.3", - "apollo-server-express": "^2.25.3", - "express": "^4.0.0", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "stoppable": "^1.1.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-caching": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz", - "integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/apollo-server-core": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.3.tgz", - "integrity": "sha512-Midow3uZoJ9TjFNeCNSiWElTVZlvmB7G7tG6PPoxIR9Px90/v16Q6EzunDIO0rTJHRC3+yCwZkwtf8w2AcP0sA==", - "dependencies": { - "@apollographql/apollo-tools": "^0.5.0", - "@apollographql/graphql-playground-html": "1.6.27", - "@apollographql/graphql-upload-8-fork": "^8.1.3", - "@josephg/resolvable": "^1.0.0", - "@types/ws": "^7.0.0", - "apollo-cache-control": "^0.14.0", - "apollo-datasource": "^0.9.0", - "apollo-graphql": "^0.9.0", - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0", - "apollo-server-errors": "^2.5.0", - "apollo-server-plugin-base": "^0.13.0", - "apollo-server-types": "^0.9.0", - "apollo-tracing": "^0.15.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "^0.15.0", - "graphql-tag": "^2.11.0", - "graphql-tools": "^4.0.8", - "loglevel": "^1.6.7", - "lru-cache": "^6.0.0", - "sha.js": "^2.4.11", - "subscriptions-transport-ws": "^0.9.19", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-env": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz", - "integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==", - "dependencies": { - "node-fetch": "^2.6.1", - "util.promisify": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/apollo-server-errors": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz", - "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.3.tgz", - "integrity": "sha512-tTFYn0oKH2qqLwVj7Ez2+MiKleXACODiGh5IxsB7VuYCPMAi9Yl8iUSlwTjQUvgCWfReZjnf0vFL2k5YhDlrtQ==", - "dependencies": { - "@apollographql/graphql-playground-html": "1.6.27", - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.0", - "@types/cors": "2.8.10", - "@types/express": "^4.17.12", - "@types/express-serve-static-core": "^4.17.21", - "accepts": "^1.3.5", - "apollo-server-core": "^2.25.3", - "apollo-server-types": "^0.9.0", - "body-parser": "^1.18.3", - "cors": "^2.8.5", - "express": "^4.17.1", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "parseurl": "^1.3.2", - "subscriptions-transport-ws": "^0.9.19", - "type-is": "^1.6.16" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-express/node_modules/@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/apollo-server-express/node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "node_modules/apollo-server-plugin-base": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz", - "integrity": "sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==", - "dependencies": { - "apollo-server-types": "^0.9.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz", - "integrity": "sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==", - "dependencies": { - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-tracing": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz", - "integrity": "sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==", - "deprecated": "The `apollo-tracing` package is no longer part of Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#tracing for details", - "dependencies": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-utilities": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz", - "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==", - "dependencies": { - "@wry/equality": "^0.1.2", - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.10.0" - }, - "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/apollo-utilities/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", - "dependencies": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/args/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/args/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/args/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "optional": true, - "dependencies": { - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/array-shuffle": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-2.0.0.tgz", - "integrity": "sha512-rJTchCppiO6QsQnN51KDH1cgMYm13B+ybxFS5GgdBdTTHpZcrq3M7SOBgzp+L9fqqnjkFDiwdEVcX1wINgl9DQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.2.0.tgz", - "integrity": "sha512-oagLNqpfNv7CvmyMoexMDNyVDSiq1rya0AEUgcLlNHdHgNl6U/hi8xY370n5y+ZIFEXOx0J4B1qF2NDjMRxklA==", - "dependencies": { - "pvutils": "latest" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/babel-jest": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.6.tgz", - "integrity": "sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.4.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-jest/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/babel-jest/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/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==", - "dev": true - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", - "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", - "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.4.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/base64url": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", - "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=", - "optional": true - }, - "node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/blob-to-it": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", - "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", - "dependencies": { - "browser-readablestream-to-it": "^1.0.3" - } - }, - "node_modules/blockstore-core": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-1.0.5.tgz", - "integrity": "sha512-i/9CUMMvBALVbtSqUIuiWB3tk//a4Q2I2CEWiBuYNnhJvk/DWplXjLt8Sqc5VGkRVXVPSsEuH8fUtqJt5UFYcA==", - "dependencies": { - "err-code": "^3.0.1", - "interface-blockstore": "^2.0.2", - "interface-store": "^2.0.1", - "it-all": "^1.0.4", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.4.7" - } - }, - "node_modules/blockstore-datastore-adapter": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-2.0.3.tgz", - "integrity": "sha512-s6j6ay+qLu7sOx5DanHJlg2dBX61B9Yrbg6qo8oP3oiWnj6ZFCad4CKVb8do1f4u/Q4r2XPuSM4JYCe684USrQ==", - "dependencies": { - "blockstore-core": "^1.0.0", - "err-code": "^3.0.1", - "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.0.2", - "it-drain": "^1.0.1", - "it-pushable": "^1.4.2", - "multiformats": "^9.1.0" - } - }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "dependencies": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/borc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", - "dependencies": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/boxen/node_modules/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==" - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "node_modules/browser-readablestream-to-it": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", - "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" - }, - "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "devOptional": true - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true, - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "optional": true - }, - "node_modules/busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", - "dependencies": { - "dicer": "0.3.0" - }, - "engines": { - "node": ">=4.5.0" - } - }, - "node_modules/byteman": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/byteman/-/byteman-1.3.5.tgz", - "integrity": "sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA==" - }, - "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "optional": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001301", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", - "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/canonicalize": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", - "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" - }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/cborg": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.6.1.tgz", - "integrity": "sha512-dOGlTG610S6t3j7EYFxPBH7KiF1OlSAdWtMI4Iv1dabcId/L/nUvkfOEPge+vDp9YoPerEMiDoy5+Vm2oEqmQw==", - "bin": { - "cborg": "cli.js" - } - }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", - "devOptional": true, - "dependencies": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "optional": true - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "optional": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "optional": true - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/coercer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/coercer/-/coercer-1.1.2.tgz", - "integrity": "sha1-6upEWVEfc/nzat4EqYEHznWCS3A=" - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - }, - "bin": { - "command-line-args": "bin/cli.js" - } - }, - "node_modules/command-line-commands": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz", - "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "optional": true, - "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "optional": true, - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-hex": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", - "integrity": "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/convert-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", - "integrity": "sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo=" - }, - "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/core-js-pure": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", - "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "devOptional": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "optional": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/data-urls/node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/data-urls/node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/datastore-core": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-6.0.7.tgz", - "integrity": "sha512-y+RfRV3FXZK2kpHTwuoyIod3mHtleW/tDx5ilsn9cdIflxQb5rWrRc3GzRwPOnq2oEtN1W019BZOwC5h6p6g6Q==", - "dependencies": { - "debug": "^4.1.1", - "err-code": "^3.0.1", - "interface-datastore": "^6.0.2", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-map": "^1.0.5", - "it-merge": "^1.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "it-take": "^1.0.1", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/datastore-core/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/datastore-core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/datastore-fs": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-6.0.1.tgz", - "integrity": "sha512-A0JTQx6LV91ddCdnFLFES5k4stJahfz8GwpnXdMSuZLcrP1Fwa/vcnKAdRlvXpJY83Gl3+skbjh0nV5LNy1w1w==", - "dependencies": { - "datastore-core": "^6.0.5", - "fast-write-atomic": "^0.2.0", - "interface-datastore": "^6.0.2", - "it-glob": "^1.0.1", - "it-map": "^1.0.5", - "it-parallel-batch": "^1.0.9", - "mkdirp": "^1.0.4" - } - }, - "node_modules/datastore-fs/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/datastore-level": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-7.0.1.tgz", - "integrity": "sha512-UCLOwKloaLYrcWVewSCOqVWEHUxz1PijsWHrI0dPZd3kODSWLSpW5CYylkWKPTX+JM7S1wENbiaz3i1188JXig==", - "dependencies": { - "datastore-core": "^6.0.5", - "interface-datastore": "^6.0.2", - "it-filter": "^1.0.2", - "it-map": "^1.0.5", - "it-sort": "^1.0.0", - "it-take": "^1.0.1", - "level": "^7.0.0" - } - }, - "node_modules/datastore-pubsub": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/datastore-pubsub/-/datastore-pubsub-1.0.0.tgz", - "integrity": "sha512-L2S3avrrOJUsApahmObTxUgepe+BcZzqo4svKDqcRZ8zZZj+RH/q9iJnr89kKs/6Rpidg/FLyV58jxQ8DiZ5Pg==", - "dependencies": { - "datastore-core": "^6.0.7", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "interface-datastore": "^6.0.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/datastore-pubsub/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/datastore-pubsub/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "node_modules/deferred-leveldown": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-7.0.0.tgz", - "integrity": "sha512-QKN8NtuS3BC6m0B8vAnBls44tX1WXAFATUsJlruyAYbZpysWV3siH6o/i3g9DCHauzodksO60bdj5NazNbjCmg==", - "dependencies": { - "abstract-leveldown": "^7.2.0", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "node_modules/delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" - }, - "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/deprecated-decorator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", - "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", - "dependencies": { - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=4.5.0" - } - }, - "node_modules/diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" - }, - "node_modules/diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, - "node_modules/dns-over-http-resolver/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dns-over-http-resolver/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/dns-packet": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", - "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "optional": true, - "dependencies": { - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "optional": true - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ecc-jsbn/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "dependencies": { - "jake": "^10.6.1" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-1.8.8.tgz", - "integrity": "sha512-1f9zJehcTTGjrkb06o6ds+gsRq6SYhZJyxOk6zIWjRH8hVy03y/RzUDELzNas71f5vcvXmfGVvyjeEsadDI8tg==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@types/node": "^8.0.24", - "electron-download": "^3.0.1", - "extract-zip": "^1.0.3" - }, - "bin": { - "electron": "cli.js" - } - }, - "node_modules/electron-download": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", - "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", - "optional": true, - "dependencies": { - "debug": "^2.2.0", - "fs-extra": "^0.30.0", - "home-path": "^1.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.0", - "path-exists": "^2.1.0", - "rc": "^1.1.2", - "semver": "^5.3.0", - "sumchecker": "^1.2.0" - }, - "bin": { - "electron-download": "build/cli.js" - } - }, - "node_modules/electron-download/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/electron-download/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/electron-download/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "node_modules/electron-eval": { - "version": "0.9.10", - "resolved": "https://registry.npmjs.org/electron-eval/-/electron-eval-0.9.10.tgz", - "integrity": "sha512-VrAw2MrAjCwM8EGQsY+n48/f9P4W+AH56adERtDEb9bl5Hw9aN+ectmuK9QIi2XA11g+owQlyj2N4AzvdT363A==", - "optional": true, - "dependencies": { - "cross-spawn": "^5.1.0", - "electron": "^1.6.11", - "ndjson": "^1.5.0" - }, - "optionalDependencies": { - "headless": "https://github.com/paulkernfeld/node-headless/tarball/master" - } - }, - "node_modules/electron-eval/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "optional": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/electron-eval/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "optional": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/electron-eval/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "optional": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-eval/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-eval/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/electron-eval/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "optional": true - }, - "node_modules/electron-fetch": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz", - "integrity": "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==", - "dependencies": { - "encoding": "^0.1.13" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.50", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.50.tgz", - "integrity": "sha512-g5X/6oVoqLyzKfsZ1HsJvxKoUAToFMCuq1USbmp/GPIwJDRYV1IEcv+plYTdh6h11hg140hycCBId0vf7rL0+Q==", - "dev": true - }, - "node_modules/electron-webrtc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/electron-webrtc/-/electron-webrtc-0.3.0.tgz", - "integrity": "sha1-VG0cqBpEU0jDIGLLnaXnpKasrc8=", - "optional": true, - "dependencies": { - "debug": "^2.2.0", - "electron-eval": "^0.9.0", - "get-browser-rtc": "^1.0.2", - "hat": "^0.0.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/electron-webrtc/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/electron-webrtc/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "node_modules/electron/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "optional": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding-down": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-7.1.0.tgz", - "integrity": "sha512-ky47X5jP84ryk5EQmvedQzELwVJPjCgXDQZGeb9F6r4PdChByCGHTBrVcF3h8ynKVJ1wVbkxTsDC8zBROPypgQ==", - "dependencies": { - "abstract-leveldown": "^7.2.0", - "inherits": "^2.0.3", - "level-codec": "^10.0.0", - "level-errors": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io-client": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.1.1.tgz", - "integrity": "sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g==", - "dependencies": { - "@socket.io/component-emitter": "~3.0.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~8.2.3", - "xmlhttprequest-ssl": "~2.0.0", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/engine.io-parser": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", - "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", - "dependencies": { - "@socket.io/base64-arraybuffer": "~1.0.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "optional": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "optional": true - }, - "node_modules/es6-promisify": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz", - "integrity": "sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/execa/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.6.tgz", - "integrity": "sha512-1M/0kAALIaj5LaG66sFJTbRsWTADnylly82cu4bspI0nl+pgP4E6Bh/aqdHlTUjul06K7xQnnrAoqfxVU0+/ag==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-matcher-utils": "^27.4.6", - "jest-message-util": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/expect/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/expect/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/expect/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/expect/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/expect/node_modules/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==", - "dev": true - }, - "node_modules/expect/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/expect/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/expect/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/expect/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/expect/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "optional": true, - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "optional": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "optional": true, - "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - } - }, - "node_modules/extract-zip/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/faker": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-fifo": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz", - "integrity": "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-redact": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.0.tgz", - "integrity": "sha512-dir8LOnvialLxiXDPESMDHGp82CHi6ZEYTVkcvdn5d7psdv9ZkkButXrOeXST4aqreIRR+N7CYlsrwFuorurVg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fast-write-atomic": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", - "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "optional": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-type": { - "version": "16.5.3", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", - "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", - "optional": true, - "dependencies": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-replace/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "optional": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "node_modules/fnv1a": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.0.1.tgz", - "integrity": "sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU=" - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/formidable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", - "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", - "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-capacitor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", - "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==", - "engines": { - "node": ">=8.5" - } - }, - "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-extra/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/fs-extra/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/gar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz", - "integrity": "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==" - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-browser-rtc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz", - "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-folder-size": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz", - "integrity": "sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==", - "dependencies": { - "gar": "^1.0.4", - "tiny-each-async": "2.0.3" - }, - "bin": { - "get-folder-size": "bin/get-folder-size" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/git-config": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", - "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", - "optional": true, - "dependencies": { - "iniparser": "~1.0.5" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/got/node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-extensions": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz", - "integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==", - "deprecated": "The `graphql-extensions` API has been removed from Apollo Server 3. Use the plugin API instead: https://www.apollographql.com/docs/apollo-server/integrations/plugins/", - "dependencies": { - "@apollographql/apollo-tools": "^0.5.0", - "apollo-server-env": "^3.1.0", - "apollo-server-types": "^0.9.0" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", - "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", - "dependencies": { - "iterall": "^1.3.0" - }, - "peerDependencies": { - "graphql": "^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/graphql-tools": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", - "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", - "deprecated": "This package has been deprecated and now it only exports makeExecutableSchema.\\nAnd it will no longer receive updates.\\nWe recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.\\nCheck out https://www.graphql-tools.com to learn what package you should use instead", - "dependencies": { - "apollo-link": "^1.2.14", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" - }, - "peerDependencies": { - "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-tools/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/hamt-sharding": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-2.0.1.tgz", - "integrity": "sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA==", - "dependencies": { - "sparse-array": "^1.3.1", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "optional": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hapi-pino": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.5.0.tgz", - "integrity": "sha512-p0phuePalD8965r6mboCBLIMWRO2vQAx+VSnXhTKxnF/4Sf+dk8Uze7109w9QfhlvGMqvBTEF6SxGStObBB/Lw==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "abstract-logging": "^2.0.0", - "pino": "^6.0.0", - "pino-pretty": "^4.0.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hashlru": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" - }, - "node_modules/hat": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", - "integrity": "sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/headless": { - "version": "1.1.0", - "resolved": "https://github.com/paulkernfeld/node-headless/tarball/master", - "integrity": "sha512-Y+OAUntNS8dvU9cX0NHuTegMu7sDbd9KbPHF/pe9YO64UvuSE14AEKmMqzRqywQx83a3Y23inqC6iDvAd6PIYA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/home-path": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.7.tgz", - "integrity": "sha512-tM1pVa+u3ZqQwIkXcWfhUlY3HWS3TsnKsfi2OHHvnhkX52s9etyktPyy1rQotkr0euWimChDq+QkQuDe8ngUlQ==", - "optional": true - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "optional": true - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "optional": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/iniparser": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", - "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "optional": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "node_modules/interface-blockstore": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-2.0.3.tgz", - "integrity": "sha512-OwVUnlNcx7H5HloK0Myv6c/C1q9cNG11HX6afdeU6q6kbuNj8jKCwVnmJHhC94LZaJ+9hvVOk4IUstb3Esg81w==", - "dependencies": { - "interface-store": "^2.0.2", - "multiformats": "^9.0.4" - } - }, - "node_modules/interface-datastore": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.0.tgz", - "integrity": "sha512-oNHdsrWBsI/kDwUtEgt+aaZtQFKtQYN0TGZzc3SGiIA6m+plZ6malhmsygtbmDpfpIsNNC7ce9Gyaj+Tki+gVw==", - "dependencies": { - "interface-store": "^2.0.1", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/interface-store": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", - "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip-address": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz", - "integrity": "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipfs": { - "version": "0.61.0", - "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.61.0.tgz", - "integrity": "sha512-BNr1uR4TVbTEA2k0sdIKKikmEZ9SqW+qPyBmXKykgQ7aCS6gy6XcuheINd+7O2lqwtVMAR9dnCv0hQbm4FIZxQ==", - "dependencies": { - "debug": "^4.1.1", - "ipfs-cli": "^0.11.0", - "ipfs-core": "^0.13.0", - "semver": "^7.3.2", - "update-notifier": "^5.0.0" - }, - "bin": { - "jsipfs": "src/cli.js" - }, - "engines": { - "node": ">=14.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-bitswap": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-9.0.0.tgz", - "integrity": "sha512-NtqLTr5+a0moZ+Hw9Px9Z+pXHR7Lt/48oQaphA0n2POFOb3//sViJR/7pe/IFHqFkgpL+iygYsE/uIhNateQ4g==", - "dependencies": { - "@vascosantos/moving-average": "^1.1.0", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "blockstore-core": "^1.0.2", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "interface-blockstore": "^2.0.2", - "it-length-prefixed": "^5.0.2", - "it-pipe": "^1.1.0", - "just-debounce-it": "^1.1.0", - "libp2p-interfaces": "^2.0.1", - "multiaddr": "^10.0.0", - "multiformats": "^9.0.4", - "native-abort-controller": "^1.0.3", - "protobufjs": "^6.10.2", - "readable-stream": "^3.6.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0", - "varint-decoder": "^1.0.0" - } - }, - "node_modules/ipfs-bitswap/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-bitswap/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-cli": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.11.0.tgz", - "integrity": "sha512-hvQFRfyuZP0JelNgoQIutQBp8szHY8OkDrCRyvPWI68NARSidwlKfxgtsdI0rMAn/q3anR8yKl+JEvDaWbRxoA==", - "dependencies": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "byteman": "^1.3.5", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "execa": "^5.0.0", - "get-folder-size": "^2.0.1", - "ipfs-core": "^0.13.0", - "ipfs-core-types": "^0.9.0", - "ipfs-core-utils": "^0.13.0", - "ipfs-daemon": "^0.11.0", - "ipfs-http-client": "^55.0.0", - "ipfs-repo": "^13.0.6", - "ipfs-utils": "^9.0.2", - "it-all": "^1.0.4", - "it-concat": "^2.0.0", - "it-first": "^1.0.4", - "it-glob": "^1.0.0", - "it-map": "^1.0.5", - "it-merge": "^1.0.3", - "it-pipe": "^1.1.0", - "it-split": "^1.0.0", - "it-tar": "^4.0.0", - "jsondiffpatch": "^0.4.1", - "libp2p-crypto": "^0.21.0", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.4.13", - "parse-duration": "^1.0.0", - "pretty-bytes": "^5.4.1", - "progress": "^2.0.3", - "stream-to-it": "^0.2.2", - "uint8arrays": "^3.0.0", - "yargs": "^16.0.3" - } - }, - "node_modules/ipfs-cli/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-cli/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.13.0.tgz", - "integrity": "sha512-25spsvgiRYle1QCC5Fzw4or/Rt1hAy7oZapL+mxXbweYL7JCX5AVYQZ8ypZbME0NQq8M6NDZ+IISwmr/wmAetQ==", - "dependencies": { - "@chainsafe/libp2p-noise": "^5.0.0", - "@ipld/car": "^3.1.0", - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "@multiformats/murmur3": "^1.0.1", - "any-signal": "^2.1.2", - "array-shuffle": "^2.0.0", - "blockstore-core": "^1.0.2", - "blockstore-datastore-adapter": "^2.0.2", - "datastore-core": "^6.0.7", - "datastore-pubsub": "^1.0.0", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^3.0.1", - "hamt-sharding": "^2.0.0", - "hashlru": "^2.3.0", - "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.0.2", - "ipfs-bitswap": "^9.0.0", - "ipfs-core-config": "^0.2.0", - "ipfs-core-types": "^0.9.0", - "ipfs-core-utils": "^0.13.0", - "ipfs-http-client": "^55.0.0", - "ipfs-repo": "^13.0.6", - "ipfs-unixfs": "^6.0.3", - "ipfs-unixfs-exporter": "^7.0.3", - "ipfs-unixfs-importer": "^9.0.3", - "ipfs-utils": "^9.0.2", - "ipns": "^0.16.0", - "is-domain-name": "^1.0.1", - "is-ipfs": "^6.0.1", - "it-all": "^1.0.4", - "it-drain": "^1.0.3", - "it-filter": "^1.0.2", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-merge": "^1.0.2", - "it-parallel": "^2.0.1", - "it-peekable": "^1.0.2", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "it-tar": "^4.0.0", - "it-to-buffer": "^2.0.0", - "just-safe-set": "^2.2.1", - "libp2p": "^0.35.4", - "libp2p-bootstrap": "^0.14.0", - "libp2p-crypto": "^0.21.0", - "libp2p-delegated-content-routing": "^0.11.1", - "libp2p-delegated-peer-routing": "^0.11.0", - "libp2p-record": "^0.10.3", - "mafmt": "^10.0.0", - "merge-options": "^3.0.4", - "mortice": "^2.0.0", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.4.13", - "native-abort-controller": "^1.0.3", - "pako": "^1.0.2", - "parse-duration": "^1.0.0", - "peer-id": "^0.16.0", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/ipfs-core-config": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ipfs-core-config/-/ipfs-core-config-0.2.0.tgz", - "integrity": "sha512-vfVfubpwGq71teJ135Tv1IZuhDxypsv1ETOFTGYzEqH3VzpRaYoAil3UIJHTg0LV4gs3QOTfZKFfyNhY642FNw==", - "dependencies": { - "@chainsafe/libp2p-noise": "^5.0.0", - "blockstore-datastore-adapter": "^2.0.2", - "datastore-core": "^6.0.7", - "datastore-fs": "^6.0.1", - "datastore-level": "^7.0.1", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "hashlru": "^2.3.0", - "ipfs-repo": "^13.0.6", - "ipfs-utils": "^9.0.2", - "ipns": "^0.16.0", - "is-ipfs": "^6.0.1", - "it-all": "^1.0.4", - "it-drain": "^1.0.3", - "libp2p-floodsub": "^0.28.0", - "libp2p-gossipsub": "^0.12.0", - "libp2p-kad-dht": "^0.27.4", - "libp2p-mdns": "^0.18.0", - "libp2p-mplex": "^0.10.2", - "libp2p-tcp": "^0.17.1", - "libp2p-webrtc-star": "^0.25.0", - "libp2p-websockets": "^0.16.2", - "p-queue": "^6.6.1", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/ipfs-core-config/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-core-config/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-core-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz", - "integrity": "sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg==", - "dependencies": { - "interface-datastore": "^6.0.2", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.13" - } - }, - "node_modules/ipfs-core-utils": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz", - "integrity": "sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw==", - "dependencies": { - "any-signal": "^2.1.2", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.9.0", - "ipfs-unixfs": "^6.0.3", - "ipfs-utils": "^9.0.2", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.2", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.4.13", - "nanoid": "^3.1.23", - "parse-duration": "^1.0.0", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/ipfs-core-utils/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-core-utils/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-core/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-daemon": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.11.0.tgz", - "integrity": "sha512-WqrDSGfodBpDMTPGJz6xTYFNuADxKfp2jc37f3jZJK6gZSi9JeKK9eI6BwbTwWj9MtrnmB+eaja7JjqoGYkeDg==", - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.5", - "debug": "^4.1.1", - "ipfs-core": "^0.13.0", - "ipfs-core-types": "^0.9.0", - "ipfs-grpc-server": "^0.8.0", - "ipfs-http-gateway": "^0.8.0", - "ipfs-http-server": "^0.10.0", - "ipfs-utils": "^9.0.2", - "just-safe-set": "^2.2.1", - "libp2p": "^0.35.4", - "libp2p-webrtc-star": "^0.25.0" - }, - "optionalDependencies": { - "electron-webrtc": "^0.3.0", - "prom-client": "^14.0.1", - "wrtc": "^0.4.6" - } - }, - "node_modules/ipfs-daemon/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-daemon/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-grpc-protocol": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.5.5.tgz", - "integrity": "sha512-zoJ+xwcYwzJ03GWJdz3e2k1NqJMfI9+M/VyPImhqPowVmTZ0+f9JGR+M8MetJAHMeQILLCTXmIMsiFzAFObZJg==" - }, - "node_modules/ipfs-grpc-server": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.8.2.tgz", - "integrity": "sha512-rW7FV7PjpkmOTkPRpHoHrZ4/85MtoSLLaWmaEbJm7KEwqbvnYcHHkMfcAvhbWYP1sz0XJCzttfeRWV8KsSOi+w==", - "dependencies": { - "@grpc/grpc-js": "^1.1.8", - "change-case": "^4.1.1", - "coercer": "^1.1.2", - "debug": "^4.1.1", - "ipfs-core-types": "^0.10.1", - "ipfs-grpc-protocol": "^0.5.5", - "it-first": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.2", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "multiaddr": "^10.0.0", - "nanoid": "^3.1.23", - "protobufjs": "^6.10.2", - "ws": "^7.3.1" - } - }, - "node_modules/ipfs-grpc-server/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-grpc-server/node_modules/ipfs-core-types": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz", - "integrity": "sha512-s5+kXXcjkIdWPHblrE0TyiKxROQdL7zfkVI7FpEEwv5rtHCjpI0I4vKSzziZLLzLXf3a2F1qtscOnlaT0ruWBw==", - "dependencies": { - "interface-datastore": "^6.0.2", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1" - } - }, - "node_modules/ipfs-grpc-server/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-client": { - "version": "55.0.0", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz", - "integrity": "sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ==", - "dependencies": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.9.0", - "ipfs-core-utils": "^0.13.0", - "ipfs-utils": "^9.0.2", - "it-first": "^1.0.6", - "it-last": "^1.0.4", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.13", - "native-abort-controller": "^1.0.3", - "parse-duration": "^1.0.0", - "stream-to-it": "^0.2.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=14.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-http-client/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-gateway": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.8.0.tgz", - "integrity": "sha512-vL8Yt4hSPGTrY0jUQYHFkRs/VGqsvdgdeZkCr+ffqkCiEud78LayVgtD1UlT+QA6luowjFXQ2dFqpozOwnlr2w==", - "dependencies": { - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/hapi": "^20.0.0", - "debug": "^4.1.1", - "hapi-pino": "^8.3.0", - "ipfs-core-types": "^0.9.0", - "ipfs-http-response": "^1.0.6", - "is-ipfs": "^6.0.1", - "it-last": "^1.0.4", - "it-to-stream": "^1.0.0", - "joi": "^17.2.1", - "multiformats": "^9.4.13", - "uint8arrays": "^3.0.0", - "uri-to-multiaddr": "^6.0.0" - } - }, - "node_modules/ipfs-http-gateway/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-gateway/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-response": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-1.0.6.tgz", - "integrity": "sha512-aMC+kO06ue7Rv8bPdX7te7k4Ss6qLiWSp8ffyVe4zA90XKZV3zo0FOI6UmjgCG5qZ1H0P1zXYq94JCkczagO8A==", - "dependencies": { - "debug": "^4.3.1", - "ejs": "^3.1.6", - "file-type": "^16.0.0", - "filesize": "^8.0.0", - "it-buffer": "^0.1.1", - "it-concat": "^2.0.0", - "it-reader": "^3.0.0", - "it-to-stream": "^1.0.0", - "mime-types": "^2.1.30", - "p-try-each": "^1.0.1" - } - }, - "node_modules/ipfs-http-response/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-response/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-http-server": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.10.0.tgz", - "integrity": "sha512-zb6pCTk0mHtn1nOPqJRe7aDgPzU9T9+U0eCotw0Nc2Gw3iJoF7AvFboPIpmGeTv4JDMhgYzNIAiiXIo69+r8Sg==", - "dependencies": { - "@hapi/boom": "^9.1.0", - "@hapi/content": "^5.0.2", - "@hapi/hapi": "^20.0.0", - "@ipld/dag-pb": "^2.1.3", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^3.0.1", - "hapi-pino": "^8.3.0", - "ipfs-core-types": "^0.9.0", - "ipfs-core-utils": "^0.13.0", - "ipfs-http-gateway": "^0.8.0", - "ipfs-unixfs": "^6.0.3", - "it-all": "^1.0.4", - "it-drain": "^1.0.3", - "it-filter": "^1.0.2", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-merge": "^1.0.2", - "it-multipart": "^2.0.0", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "it-reduce": "^1.0.5", - "joi": "^17.2.1", - "just-safe-set": "^2.2.1", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.13", - "native-abort-controller": "^1.0.3", - "parse-duration": "^1.0.0", - "stream-to-it": "^0.2.2", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0", - "uri-to-multiaddr": "^6.0.0" - }, - "optionalDependencies": { - "prom-client": "^14.0.1" - } - }, - "node_modules/ipfs-http-server/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-http-server/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-repo": { - "version": "13.0.7", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-13.0.7.tgz", - "integrity": "sha512-0z3iApJMew2XM8ZeAPDUnEOII10s+LNThd/jmiLvkRPcMVAkzsyRXpWnRQ2hPuDGxw91QCcQHG+GS4xW2eVCdQ==", - "dependencies": { - "@ipld/dag-pb": "^2.1.0", - "bytes": "^3.1.0", - "cborg": "^1.3.4", - "datastore-core": "^6.0.7", - "debug": "^4.1.0", - "err-code": "^3.0.1", - "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.0.2", - "ipfs-repo-migrations": "^11.0.2", - "it-drain": "^1.0.1", - "it-filter": "^1.0.2", - "it-first": "^1.0.2", - "it-map": "^1.0.5", - "it-merge": "^1.0.2", - "it-parallel-batch": "^1.0.9", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.0", - "just-safe-get": "^2.0.0", - "just-safe-set": "^2.1.0", - "merge-options": "^3.0.4", - "mortice": "^2.0.1", - "multiformats": "^9.0.4", - "p-queue": "^6.0.0", - "proper-lockfile": "^4.0.0", - "sort-keys": "^4.2.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/ipfs-repo-migrations": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-11.0.2.tgz", - "integrity": "sha512-0+O1q3X06jObIKYIEyUDNH1078PrQ7qg4i3Ufv4U0+R4MlF1LOYyQGwW6AK87V94Pta0bHeicYeY3dGpGgzv4g==", - "dependencies": { - "@ipld/dag-pb": "^2.0.0", - "cborg": "^1.3.1", - "datastore-core": "^6.0.7", - "debug": "^4.1.0", - "fnv1a": "^1.0.1", - "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.0.2", - "it-length": "^1.0.1", - "multiformats": "^9.0.0", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-repo-migrations/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-repo/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs-repo/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs-unixfs": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.6.tgz", - "integrity": "sha512-gTkjYKXuHnqIf6EFfS+ESaYEl3I3aaQQ0UX8MhpNzreMLEuMnuqpoI/uLLllTZa31WRplKixabbpRTSmTYRNwA==", - "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - }, - "engines": { - "node": ">=14.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-unixfs-exporter": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-7.0.6.tgz", - "integrity": "sha512-PkKB+hTbHhKLqgj0PqSNQ/n7dKsu/lC29jLK8nUXOX4EM6c+RnedohdCY7khT10/hfC7oADbpFs/QJfuH2DaAg==", - "dependencies": { - "@ipld/dag-cbor": "^6.0.4", - "@ipld/dag-pb": "^2.0.2", - "@multiformats/murmur3": "^1.0.3", - "err-code": "^3.0.1", - "hamt-sharding": "^2.0.0", - "interface-blockstore": "^1.0.0", - "ipfs-unixfs": "^6.0.6", - "it-last": "^1.0.5", - "multiformats": "^9.4.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=14.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/@ipld/dag-cbor": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz", - "integrity": "sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA==", - "dependencies": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/interface-blockstore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-1.0.2.tgz", - "integrity": "sha512-e8rHqaBSOsBPpSaB+wwVa9mR5ntU+t1yzXpOFC16cSKCNsV+h6n8SjekPQcdODVBN2h8t45CsOqRAnUfm1guEw==", - "dependencies": { - "err-code": "^3.0.1", - "interface-store": "^1.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.0.4" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/interface-store": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", - "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" - }, - "node_modules/ipfs-unixfs-importer": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-9.0.6.tgz", - "integrity": "sha512-FgzODqg4pvToEMZ88mFkHcU0s25CljmnqX2VX7K/VQDckiZIxhIiUTQRqQg/C7Em4uCzVp8YCxKUvl++w6kvNg==", - "dependencies": { - "@ipld/dag-pb": "^2.0.2", - "@multiformats/murmur3": "^1.0.3", - "bl": "^5.0.0", - "err-code": "^3.0.1", - "hamt-sharding": "^2.0.0", - "interface-blockstore": "^1.0.0", - "ipfs-unixfs": "^6.0.6", - "it-all": "^1.0.5", - "it-batch": "^1.0.8", - "it-first": "^1.0.6", - "it-parallel-batch": "^1.0.9", - "merge-options": "^3.0.4", - "multiformats": "^9.4.2", - "rabin-wasm": "^0.1.4", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=14.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/interface-blockstore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-1.0.2.tgz", - "integrity": "sha512-e8rHqaBSOsBPpSaB+wwVa9mR5ntU+t1yzXpOFC16cSKCNsV+h6n8SjekPQcdODVBN2h8t45CsOqRAnUfm1guEw==", - "dependencies": { - "err-code": "^3.0.1", - "interface-store": "^1.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.0.4" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/interface-store": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", - "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" - }, - "node_modules/ipfs-utils": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz", - "integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==", - "dependencies": { - "any-signal": "^3.0.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "^1.0.1", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - } - }, - "node_modules/ipfs-utils/node_modules/any-signal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.0.tgz", - "integrity": "sha512-l1H1GEkGGIXVGfCtvq8N68YI7gHajmfzRdKhmb8sGyAQpLCblirLa8eB09j4uKaiwe7vodAChocUf7AT3mYq5g==" - }, - "node_modules/ipfs-utils/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ipfs-utils/node_modules/iso-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", - "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", - "engines": { - "node": ">=12" - } - }, - "node_modules/ipfs-utils/node_modules/node-fetch": { - "name": "@achingbrain/node-fetch", - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==", - "license": "MIT", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/ipfs/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipfs/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipfs/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ipns": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/ipns/-/ipns-0.16.0.tgz", - "integrity": "sha512-fBYkRjN3/fc6IQujUF4WBEyOXegK715w+wx9IErV6H2B5JXsMnHOBceUKn3L90dj+wJfHs6T+hM/OZiTT6mQCw==", - "dependencies": { - "cborg": "^1.3.3", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "interface-datastore": "^6.0.2", - "libp2p-crypto": "^0.21.0", - "long": "^4.0.0", - "multiformats": "^9.4.5", - "peer-id": "^0.16.0", - "protobufjs": "^6.10.2", - "timestamp-nano": "^1.0.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/ipns/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ipns/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "optional": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "devOptional": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-domain-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz", - "integrity": "sha1-9uszsUpJdUHcpYM1E31EZuDCDaE=" - }, - "node_modules/is-electron": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.1.tgz", - "integrity": "sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw==" - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "optional": true, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dependencies": { - "ip-regex": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ipfs": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-6.0.2.tgz", - "integrity": "sha512-RinUnsggL4hlLoHlZcvs2+92OE46Uflg/YVU1m5fXhyDBS/zh3bq+i6Aw7IbzJZ9oZXJx26TgxpqCuCr+LH/DA==", - "dependencies": { - "iso-url": "^1.1.3", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "multiformats": "^9.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=14.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/is-ipfs/node_modules/iso-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", - "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", - "engines": { - "node": ">=12" - } - }, - "node_modules/is-loopback-addr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", - "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "optional": true - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "devOptional": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/iso-constants": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", - "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==", - "hasInstallScript": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/iso-random-stream": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz", - "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==", - "dependencies": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", - "engines": { - "node": ">=10" - } - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/istanbul-reports": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/it-all": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" - }, - "node_modules/it-batch": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz", - "integrity": "sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA==" - }, - "node_modules/it-buffer": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", - "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3" - } - }, - "node_modules/it-buffer/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-concat": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", - "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", - "dependencies": { - "bl": "^5.0.0" - } - }, - "node_modules/it-drain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", - "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" - }, - "node_modules/it-filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", - "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" - }, - "node_modules/it-first": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", - "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" - }, - "node_modules/it-glob": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", - "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", - "dependencies": { - "@types/minimatch": "^3.0.4", - "minimatch": "^3.0.4" - } - }, - "node_modules/it-handshake": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", - "dependencies": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/it-last": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", - "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" - }, - "node_modules/it-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.4.tgz", - "integrity": "sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA==" - }, - "node_modules/it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/it-length-prefixed/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-map": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", - "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" - }, - "node_modules/it-merge": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.4.tgz", - "integrity": "sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw==", - "dependencies": { - "it-pushable": "^1.4.0" - } - }, - "node_modules/it-multipart": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-multipart/-/it-multipart-2.0.2.tgz", - "integrity": "sha512-/naGjA8GatqYshP9V0aN4AufMPEa0My2iYzLaprQHOZiuXBynOYTVjRHFCzcMg8K8JHWb88PqO8nqeJxCm5CJw==", - "dependencies": { - "formidable": "^1.2.2", - "it-pushable": "^1.4.2" - } - }, - "node_modules/it-pair": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", - "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/it-parallel": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-2.0.1.tgz", - "integrity": "sha512-VnHs9UJXSr8jmPnquS76qhLU+tE3WvLJqBUKMjAD2/Z1O5JsjpHMqq8yvVByyuwuFnh1OG9faJVGc5c9t+T6Kg==", - "dependencies": { - "p-defer": "^3.0.0" - } - }, - "node_modules/it-parallel-batch": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.10.tgz", - "integrity": "sha512-3+4gW15xdf/BOx9zij0QVnB1bDGSLOTABlaVm7ebHH1S9gDUgd5aLNb0WsFXPTfKe104iC6lxdzfbMGh1B07rg==", - "dependencies": { - "it-batch": "^1.0.9" - } - }, - "node_modules/it-pb-rpc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.2.0.tgz", - "integrity": "sha512-Rojodsa6yxSTZDqVVF9HXKsISoHtlLNOL0P6b/7oCswiscbjCpt1IB78BxRDHpFL3tg8jFPMNDTP3v6ZjrMf9w==", - "dependencies": { - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.3" - } - }, - "node_modules/it-peekable": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", - "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" - }, - "node_modules/it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "node_modules/it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "dependencies": { - "fast-fifo": "^1.0.0" - } - }, - "node_modules/it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "dependencies": { - "bl": "^5.0.0" - } - }, - "node_modules/it-reduce": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-reduce/-/it-reduce-1.0.6.tgz", - "integrity": "sha512-YyAhA52Xv+05PUaz0FwjanG7tqxD0CrP7dgGgxN42YDG6oswztbH8K6Ca8+AjH8VxSI0lvq4pD9i17MQqJUFuA==" - }, - "node_modules/it-sort": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-1.0.1.tgz", - "integrity": "sha512-c+C48cP7XMMebB9irLrJs2EmpLILId8NYSojqAqN8etE8ienx0azBgaKvZHYH1DkerqIul0Fl2FqISu2BZgTEQ==", - "dependencies": { - "it-all": "^1.0.6" - } - }, - "node_modules/it-split": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-split/-/it-split-1.0.2.tgz", - "integrity": "sha512-CTr10HhgK5LYgGCrPVorfliiW4bBl10K7earFLII4yoxWsKaAf8swCYgXXEe/W2Fou/YMOZGyTk6cmVKGyienw==", - "dependencies": { - "bl": "^5.0.0" - } - }, - "node_modules/it-take": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", - "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" - }, - "node_modules/it-tar": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-4.0.0.tgz", - "integrity": "sha512-t7NJKNVs0p3aJT2cyycs8FkXkvLTKOVtcEuYEdZDrfxHGEIW8gHJt2zbDOILt5erywEPRRws2oz0FqH3LiDGtA==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "iso-constants": "^0.1.2", - "it-concat": "^2.0.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/it-tar/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-to-buffer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-2.0.2.tgz", - "integrity": "sha512-Frbv1sphcNFvD807Qw5fXpK4L7iuqShYSI7k30PfpJiy5IxdqMyaulWpLyl1hIJVVpkG+1UrJafFCnatzmZf5g==", - "dependencies": { - "uint8arrays": "^3.0.0" - } - }, - "node_modules/it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/it-to-stream/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz", - "integrity": "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==", - "dependencies": { - "buffer": "^6.0.3", - "event-iterator": "^2.0.0", - "iso-url": "^1.1.2", - "ws": "^7.3.1" - } - }, - "node_modules/it-ws/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-ws/node_modules/iso-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", - "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", - "engines": { - "node": ">=12" - } - }, - "node_modules/iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "dependencies": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jest": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz", - "integrity": "sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg==", - "dev": true, - "dependencies": { - "@jest/core": "^27.4.7", - "import-local": "^3.0.2", - "jest-cli": "^27.4.7" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", - "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-changed-files/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-changed-files/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-changed-files/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-changed-files/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-changed-files/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-changed-files/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-changed-files/node_modules/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==", - "dev": true - }, - "node_modules/jest-changed-files/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/jest-circus": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.6.tgz", - "integrity": "sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.4.6", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.6", - "jest-matcher-utils": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-runtime": "^27.4.6", - "jest-snapshot": "^27.4.6", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-circus/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/jest-circus/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-circus/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-circus/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/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==", - "dev": true - }, - "node_modules/jest-circus/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-circus/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-circus/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-circus/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/jest-circus/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-config": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.7.tgz", - "integrity": "sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.4.6", - "@jest/types": "^27.4.2", - "babel-jest": "^27.4.6", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.4.6", - "jest-environment-jsdom": "^27.4.6", - "jest-environment-node": "^27.4.6", - "jest-get-type": "^27.4.0", - "jest-jasmine2": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.6", - "jest-runner": "^27.4.6", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-config/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-config/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-config/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/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==", - "dev": true - }, - "node_modules/jest-config/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-config/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/jest-config/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-config/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-diff": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz", - "integrity": "sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/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==" - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/jest-diff/node_modules/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", - "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.6.tgz", - "integrity": "sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-each/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-each/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-each/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/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==", - "dev": true - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-each/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz", - "integrity": "sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.6", - "@jest/fake-timers": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@jest/fake-timers": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz", - "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/jest-environment-jsdom/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-environment-jsdom/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-environment-jsdom/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-environment-jsdom/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-environment-jsdom/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/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==", - "dev": true - }, - "node_modules/jest-environment-jsdom/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/jest-mock": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz", - "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-environment-jsdom/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-environment-jsdom/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-environment-jsdom/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-environment-jsdom/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.6.tgz", - "integrity": "sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.6", - "@jest/fake-timers": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/@jest/fake-timers": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz", - "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-environment-node/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/jest-environment-node/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-environment-node/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-environment-node/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-environment-node/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-environment-node/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/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==", - "dev": true - }, - "node_modules/jest-environment-node/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-environment-node/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/jest-mock": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz", - "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-environment-node/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-environment-node/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-environment-node/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-environment-node/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz", - "integrity": "sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.6", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.4.6", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.6", - "jest-matcher-utils": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-runtime": "^27.4.6", - "jest-snapshot": "^27.4.6", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-jasmine2/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/jest-jasmine2/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-jasmine2/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/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==", - "dev": true - }, - "node_modules/jest-jasmine2/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-jasmine2/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-jasmine2/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-jasmine2/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-jasmine2/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/jest-jasmine2/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz", - "integrity": "sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-matcher-utils": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz", - "integrity": "sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.4.6", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/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==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz", - "integrity": "sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz", - "integrity": "sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-snapshot": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/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==", - "dev": true - }, - "node_modules/jest-resolve-dependencies/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-resolve/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-resolve/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-resolve/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-resolve/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/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==", - "dev": true - }, - "node_modules/jest-resolve/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-resolve/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-resolve/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-resolve/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/jest-resolve/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-resolve/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-resolve/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-resolve/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-runner": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.6.tgz", - "integrity": "sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/environment": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.4.0", - "jest-environment-jsdom": "^27.4.6", - "jest-environment-node": "^27.4.6", - "jest-haste-map": "^27.4.6", - "jest-leak-detector": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-resolve": "^27.4.6", - "jest-runtime": "^27.4.6", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-runner/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/jest-runner/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-runner/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-runner/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-runner/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/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==", - "dev": true - }, - "node_modules/jest-runner/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-runner/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-runner/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-runner/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-runner/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-runner/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-runner/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-runner/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/jest-runner/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz", - "integrity": "sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.6", - "@jest/fake-timers": "^27.4.6", - "@jest/globals": "^27.4.6", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.6", - "jest-snapshot": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/@jest/fake-timers": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz", - "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-runtime/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-runtime/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-runtime/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/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==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-runtime/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-runtime/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/jest-mock": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz", - "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-runtime/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-runtime/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-runtime/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-runtime/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.6.tgz", - "integrity": "sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.6", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.6", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.6", - "jest-matcher-utils": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.6", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-snapshot/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-snapshot/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/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==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-snapshot/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-snapshot/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-watcher": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.6.tgz", - "integrity": "sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.4.2", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-watcher/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-watcher/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/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==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-watcher/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-watcher/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-watcher/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jest-watcher/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest/node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/jest/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/jest/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest/node_modules/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==", - "dev": true - }, - "node_modules/jest/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest/node_modules/jest-cli": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.7.tgz", - "integrity": "sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw==", - "dev": true, - "dependencies": { - "@jest/core": "^27.4.7", - "@jest/test-result": "^27.4.6", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.4.7", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/jest/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/joycon": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", - "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jsdom/node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jsdom/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jsdom/node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsdom/node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jsdom/node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/jsdom/node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dependencies": { - "delimit-stream": "0.1.0" - } - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsondiffpatch": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", - "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", - "dependencies": { - "chalk": "^2.3.0", - "diff-match-patch": "^1.0.0" - }, - "bin": { - "jsondiffpatch": "bin/jsondiffpatch" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/jsondiffpatch/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsondiffpatch/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/jsondiffpatch/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "optional": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "engines": { - "node": "*" - } - }, - "node_modules/jsonschema": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", - "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/just-debounce-it": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.5.0.tgz", - "integrity": "sha512-itSWJS5d2DTSCizVJ2Z0Djx/dGmUGfZe7WNfUfVP23+htGcIcPHbEjL4eB8ljojTs/+oYwLexImRRCP0A2WXjA==" - }, - "node_modules/just-safe-get": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-2.1.2.tgz", - "integrity": "sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ==" - }, - "node_modules/just-safe-set": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz", - "integrity": "sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w==" - }, - "node_modules/k-bucket": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "optional": true, - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/level": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-7.0.1.tgz", - "integrity": "sha512-w3E64+ALx2eZf8RV5JL4kIcE0BFAvQscRYd1yU4YVqZN9RGTQxXSvH202xvK15yZwFFxRXe60f13LJjcJ//I4Q==", - "dependencies": { - "level-js": "^6.1.0", - "level-packager": "^6.0.1", - "leveldown": "^6.1.0" - }, - "engines": { - "node": ">=10.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" - } - }, - "node_modules/level-codec": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-10.0.0.tgz", - "integrity": "sha512-QW3VteVNAp6c/LuV6nDjg7XDXx9XHK4abmQarxZmlRSDyXYk20UdaJTSX6yzVvQ4i0JyWSB7jert0DsyD/kk6g==", - "dependencies": { - "buffer": "^6.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/level-codec/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "dependencies": { - "catering": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/level-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-3.0.1.tgz", - "integrity": "sha512-tqTL2DxzPDzpwl0iV5+rBCv65HWbHp6eutluHNcVIftKZlQN//b6GEnZDM2CvGZvzGYMwyPtYppYnydBQd2SMQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/level-iterator-stream": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-5.0.0.tgz", - "integrity": "sha512-wnb1+o+CVFUDdiSMR/ZymE2prPs3cjVLlXuDeSq9Zb8o032XrabGEXcTCsBxprAtseO3qvFeGzh6406z9sOTRA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/level-js": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-6.1.0.tgz", - "integrity": "sha512-i7mPtkZm68aewfv0FnIUWvFUFfoyzIvVKnUmuQGrelEkP72vSPTaA1SGneWWoCV5KZJG4wlzbJLp1WxVNGuc6A==", - "dependencies": { - "abstract-leveldown": "^7.2.0", - "buffer": "^6.0.3", - "inherits": "^2.0.3", - "ltgt": "^2.1.2", - "run-parallel-limit": "^1.1.0" - } - }, - "node_modules/level-js/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/level-packager": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-6.0.1.tgz", - "integrity": "sha512-8Ezr0XM6hmAwqX9uu8IGzGNkWz/9doyPA8Oo9/D7qcMI6meJC+XhIbNYHukJhIn8OGdlzQs/JPcL9B8lA2F6EQ==", - "dependencies": { - "encoding-down": "^7.1.0", - "levelup": "^5.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/leveldown": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", - "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", - "hasInstallScript": true, - "dependencies": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/levelup": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-5.1.1.tgz", - "integrity": "sha512-0mFCcHcEebOwsQuk00WJwjLI6oCjbBuEYdh/RaRqhjnyVlzqf41T1NnDtCedumZ56qyIh8euLFDqV1KfzTAVhg==", - "dependencies": { - "catering": "^2.0.0", - "deferred-leveldown": "^7.0.0", - "level-errors": "^3.0.1", - "level-iterator-stream": "^5.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/libp2p": { - "version": "0.35.8", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.35.8.tgz", - "integrity": "sha512-1Vkm7+v6bXwjlBeuiKNLtRxPIDBWFe+dt17tye0XF1BeMOY8UFUN0QeEAYrOBs6Ses+sO4oZ6OwPtcNr3zrkMw==", - "dependencies": { - "@vascosantos/moving-average": "^1.1.0", - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "aggregate-error": "^3.1.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.1", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.0", - "es6-promisify": "^7.0.0", - "events": "^3.3.0", - "hashlru": "^2.3.0", - "interface-datastore": "^6.0.2", - "it-all": "^1.0.4", - "it-buffer": "^0.1.2", - "it-drain": "^1.0.3", - "it-filter": "^1.0.1", - "it-first": "^1.0.4", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2", - "it-map": "^1.0.4", - "it-merge": "^1.0.0", - "it-pipe": "^1.1.0", - "it-take": "^1.0.0", - "libp2p-crypto": "^0.21.0", - "libp2p-interfaces": "^2.0.1", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.0.0", - "multistream-select": "^2.0.0", - "mutable-proxy": "^1.0.0", - "nat-api": "^0.3.1", - "node-forge": "^0.10.0", - "p-any": "^3.0.0", - "p-fifo": "^1.0.0", - "p-retry": "^4.4.0", - "p-settle": "^4.1.1", - "peer-id": "^0.16.0", - "private-ip": "^2.1.0", - "protobufjs": "^6.10.2", - "retimer": "^3.0.0", - "sanitize-filename": "^1.6.3", - "set-delayed-interval": "^1.0.0", - "streaming-iterables": "^6.0.0", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0", - "wherearewe": "^1.0.0", - "xsalsa20": "^1.1.0" - }, - "engines": { - "node": ">=15.0.0" - } - }, - "node_modules/libp2p-bootstrap": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.14.0.tgz", - "integrity": "sha512-j3slZo5nOdA8wVlav8dRZeAXutZ7psz/f10DLoIEX/EFif7uU5oZfIYvjbVGo3ZDl+VQLo2tR0m1lV0westQ3g==", - "dependencies": { - "debug": "^4.3.1", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "peer-id": "^0.16.0" - }, - "engines": { - "node": ">=15.0.0" - } - }, - "node_modules/libp2p-bootstrap/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-bootstrap/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-crypto": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz", - "integrity": "sha512-EXFrhSpiHtJ+/L8xXDvQNK5VjUMG51u878jzZcaT5XhuN/zFg6PWJFnl/qB2Y2j7eMWnvCRP7Kp+ua2H36cG4g==", - "dependencies": { - "@noble/ed25519": "^1.5.1", - "@noble/secp256k1": "^1.3.0", - "err-code": "^3.0.1", - "iso-random-stream": "^2.0.0", - "multiformats": "^9.4.5", - "node-forge": "^1.2.1", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/libp2p-crypto/node_modules/node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/libp2p-delegated-content-routing": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.11.2.tgz", - "integrity": "sha512-O7bqOPGlvePsP4ld6AU4uDuHjTQ9lVfsTFkYqhwPVUw1rxR0UiGiU5eyq6ADlgrY3lHtz3Sc3yNVFN1FNDn1iA==", - "dependencies": { - "debug": "^4.1.1", - "it-drain": "^1.0.3", - "multiaddr": "^10.0.0", - "p-defer": "^3.0.0", - "p-queue": "^6.2.1", - "peer-id": "^0.16.0" - } - }, - "node_modules/libp2p-delegated-content-routing/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-delegated-content-routing/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-delegated-peer-routing": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.11.1.tgz", - "integrity": "sha512-NwdRS0a6plfzVcdSqHV4hQnv872zjt7dUtsfRXmPZkXoaPjWck3Y0EDFxDYHlCMPH9w7PvrgttBlO1EwWqFGFw==", - "dependencies": { - "debug": "^4.3.1", - "multiformats": "^9.0.2", - "p-defer": "^3.0.0", - "p-queue": "^6.3.0", - "peer-id": "^0.16.0" - } - }, - "node_modules/libp2p-delegated-peer-routing/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-delegated-peer-routing/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-floodsub": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.28.0.tgz", - "integrity": "sha512-I9qR7j79HbRgmIq/UkLauzAIcPbM/uJCk2bJNKobgyJMs7nt8KSwQS2I5JEf4Jc9j9toCh5MKQ6/ynyLoSjIig==", - "dependencies": { - "debug": "^4.2.0", - "libp2p-interfaces": "^2.0.1", - "time-cache": "^0.3.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/libp2p-floodsub/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-floodsub/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-gossipsub": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.12.3.tgz", - "integrity": "sha512-Oyjt1jGoQm4t/L6t+NUToQPP5kwTailzFrzTnNTVSfKi8WCUty2ua2ttnq3ZEG4rUxlGDgqmOQoI6bfmjdvRNw==", - "dependencies": { - "@types/debug": "^4.1.5", - "debug": "^4.3.1", - "denque": "^1.5.0", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "libp2p-interfaces": "^2.0.1", - "peer-id": "^0.16.0", - "protobufjs": "^6.11.2", - "time-cache": "^0.3.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/libp2p-gossipsub/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-gossipsub/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-interfaces": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-2.0.9.tgz", - "integrity": "sha512-KYPYBy7dprcc9cy9PdoJyljs//Gb7A1448jNl/egfxIETKZl4uvYK66l4lzLtKB3AblIxATB8BFWEY/ph86QIA==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-length-prefixed": "^5.0.2", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "libp2p-crypto": "^0.21.0", - "multiaddr": "^10.0.0", - "multiformats": "^9.1.2", - "p-queue": "^6.6.2", - "peer-id": "^0.16.0", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/libp2p-interfaces/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-interfaces/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-kad-dht": { - "version": "0.27.6", - "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.27.6.tgz", - "integrity": "sha512-mynm9yQyz3UnuGCCj54iT6irHu7Dt0Yv1vvJfdtXolU9U7uNdoNxVxBftb8NC3O9aj9Almt3QYmhCR8lOuww8Q==", - "dependencies": { - "any-signal": "^2.1.2", - "datastore-core": "^6.0.7", - "debug": "^4.3.1", - "err-code": "^3.0.0", - "hashlru": "^2.3.0", - "interface-datastore": "^6.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-first": "^1.0.4", - "it-length": "^1.0.3", - "it-length-prefixed": "^5.0.2", - "it-map": "^1.0.5", - "it-merge": "^1.0.3", - "it-parallel": "^2.0.1", - "it-pipe": "^1.1.0", - "it-take": "^1.0.2", - "k-bucket": "^5.1.0", - "libp2p-crypto": "^0.21.0", - "libp2p-interfaces": "^2.0.1", - "libp2p-record": "^0.10.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.5", - "native-abort-controller": "^1.0.4", - "p-defer": "^3.0.0", - "p-map": "^4.0.0", - "p-queue": "^6.6.2", - "peer-id": "^0.16.0", - "private-ip": "^2.3.3", - "protobufjs": "^6.10.2", - "streaming-iterables": "^6.0.0", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=15.0.0" - } - }, - "node_modules/libp2p-kad-dht/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-kad-dht/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-mdns": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.18.0.tgz", - "integrity": "sha512-IBCKRuNc5USlli9QF/gOq2loCssE4ZKkVRhUNuAVBRXJ8ueqFEquc5R5C1sWy7AOgbycTgeNcxzSa1kuNb6nbg==", - "dependencies": { - "debug": "^4.3.1", - "multiaddr": "^10.0.0", - "multicast-dns": "^7.2.0", - "peer-id": "^0.16.0" - } - }, - "node_modules/libp2p-mdns/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-mdns/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-mplex": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz", - "integrity": "sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg==", - "dependencies": { - "abortable-iterator": "^3.0.2", - "bl": "^5.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.1", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-mplex/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-mplex/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-record": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.10.6.tgz", - "integrity": "sha512-CbdO2P9DQn/DKll6R/J4nIw6Qt8xbUTfxYgJjpP9oz3izHKkpGQo0mPTe0NyuFTGIQ4OprrxqWqG5v8ZCGBqqw==", - "dependencies": { - "err-code": "^3.0.1", - "multiformats": "^9.4.5", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/libp2p-tcp": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.17.2.tgz", - "integrity": "sha512-SAdgDB4Rm0olPbyvanKP5JBaiRwbIOo0Nt++WYe1U2B6akg2uatsDOtulfpnc1gsL1B5vamnOpOzKaDj4kkt8g==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "stream-to-it": "^0.2.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/libp2p-tcp/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-tcp/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-utils": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz", - "integrity": "sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^8.0.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^10.0.0", - "private-ip": "^2.1.1" - } - }, - "node_modules/libp2p-utils/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-utils/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-webrtc-peer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-peer/-/libp2p-webrtc-peer-10.0.1.tgz", - "integrity": "sha512-Qi/YVrSI5sjU+iBvr1iAjGrakIEvzCS8S76v4q43jjlDb6Wj+S4OnFLH/uRlt7eLXcx4vlaI6huMzYrUAoopMg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "debug": "^4.0.1", - "err-code": "^2.0.3", - "get-browser-rtc": "^1.0.0", - "queue-microtask": "^1.1.0", - "randombytes": "^2.0.3", - "readable-stream": "^3.4.0" - } - }, - "node_modules/libp2p-webrtc-peer/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-webrtc-peer/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/libp2p-webrtc-peer/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-webrtc-star": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-star/-/libp2p-webrtc-star-0.25.0.tgz", - "integrity": "sha512-SyXjHDrm+qlKQE5HIddrUCSwkxCIJ30PAH4ZVNNADkC0F5IVQY9EoVJ+/rrzZuDDqccnS15TgxW13vmybX96bQ==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "ipfs-utils": "^9.0.1", - "it-pipe": "^1.1.0", - "libp2p-utils": "^0.4.0", - "libp2p-webrtc-peer": "^10.0.1", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "p-defer": "^3.0.0", - "peer-id": "^0.16.0", - "socket.io-client": "^4.1.2", - "stream-to-it": "^0.2.2" - } - }, - "node_modules/libp2p-webrtc-star/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-webrtc-star/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p-websockets": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.2.tgz", - "integrity": "sha512-QGfo8jX1Ks16yi8C67CCyMW7k9cfCYiQ0lzKVJBud0fV3ymbMO2L8gzU6iXUUZTHILo8ka26zKhwQ4lmUMI+nA==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "ipfs-utils": "^9.0.1", - "it-ws": "^4.0.0", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "p-defer": "^3.0.0", - "p-timeout": "^4.1.0" - } - }, - "node_modules/libp2p-websockets/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p-websockets/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/libp2p/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/libp2p/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "optional": true - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "node_modules/loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "optional": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lowdb": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", - "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", - "dependencies": { - "graceful-fs": "^4.1.3", - "is-promise": "^2.1.0", - "lodash": "4", - "pify": "^3.0.0", - "steno": "^0.4.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lowdb/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-cache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" - }, - "node_modules/mafmt": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz", - "integrity": "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==", - "dependencies": { - "multiaddr": "^10.0.0" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "optional": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "dependencies": { - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "devOptional": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mortice": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-2.0.1.tgz", - "integrity": "sha512-9gsXmjq+5LZmXDIoyC/crf2i/7CUwDGSBEwSEsr1i/WfKmJ6DVt38B5kg6BE/WF/1/yfGJYiB1Wyiu423iI3nQ==", - "dependencies": { - "nanoid": "^3.1.20", - "observable-webworkers": "^1.0.0", - "p-queue": "^6.0.0", - "promise-timeout": "^1.3.0" - } - }, - "node_modules/mri": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", - "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/multiaddr": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", - "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", - "dependencies": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "node_modules/multiaddr-to-uri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", - "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", - "dependencies": { - "multiaddr": "^10.0.0" - } - }, - "node_modules/multicast-dns": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", - "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multiformats": { - "version": "9.6.4", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz", - "integrity": "sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg==" - }, - "node_modules/multistream-select": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz", - "integrity": "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==", - "dependencies": { - "bl": "^5.0.0", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "it-first": "^1.0.6", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.0", - "it-pipe": "^1.0.1", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/multistream-select/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/multistream-select/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/murmurhash3js-revisited": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", - "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/mutable-proxy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", - "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==", - "engines": { - "node": ">=6.X.X", - "npm": ">=3.X.X" - } - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "optional": true - }, - "node_modules/nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" - }, - "node_modules/nat-api": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/nat-api/-/nat-api-0.3.1.tgz", - "integrity": "sha512-5cyLugEkXnKSKSvVjKjxxPMLDnkwY3boZLbATWwiGJ4T/3UvIpiQmzb2RqtxxEFcVo/7PwsHPGN0MosopONO8Q==", - "dependencies": { - "async": "^3.2.0", - "debug": "^4.2.0", - "default-gateway": "^6.0.2", - "request": "^2.88.2", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.1.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/nat-api/node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "node_modules/nat-api/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/nat-api/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/native-abort-controller": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", - "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/ndjson": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz", - "integrity": "sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg=", - "optional": true, - "dependencies": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.0", - "split2": "^2.1.0", - "through2": "^2.0.3" - }, - "bin": { - "ndjson": "cli.js" - } - }, - "node_modules/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "optional": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "optional": true - }, - "node_modules/neon-cli": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.4.0.tgz", - "integrity": "sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w==", - "optional": true, - "dependencies": { - "chalk": "~2.1.0", - "command-line-args": "^4.0.2", - "command-line-commands": "^2.0.0", - "command-line-usage": "^4.0.0", - "git-config": "0.0.7", - "handlebars": "^4.1.0", - "inquirer": "^3.0.6", - "mkdirp": "^0.5.1", - "quickly-copy-file": "^1.0.0", - "rimraf": "^2.6.1", - "rsvp": "^4.6.1", - "semver": "^5.1.0", - "toml": "^2.3.0", - "ts-typed-json": "^0.2.2", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - }, - "bin": { - "neon": "bin/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node_modules/node-pre-gyp": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/node-wget-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-wget-js/-/node-wget-js-1.0.1.tgz", - "integrity": "sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw==", - "dev": true, - "dependencies": { - "request": "^2.88.0" - }, - "bin": { - "wget": "cli.js" - } - }, - "node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "optional": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "optional": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "optional": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "optional": true - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "optional": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nugget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", - "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", - "optional": true, - "dependencies": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "bin": { - "nugget": "bin.js" - } - }, - "node_modules/nugget/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/nugget/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "node_modules/nugget/node_modules/pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "optional": true, - "dependencies": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - }, - "bin": { - "pretty-bytes": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/observable-webworkers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-1.0.0.tgz", - "integrity": "sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ==" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "optional": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "dependencies": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-any": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", - "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", - "dependencies": { - "p-cancelable": "^2.0.0", - "p-some": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", - "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", - "dependencies": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue/node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/p-queue/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-reflect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", - "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "dependencies": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-settle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", - "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", - "dependencies": { - "p-limit": "^2.2.2", - "p-reflect": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-some": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", - "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", - "dependencies": { - "aggregate-error": "^3.0.0", - "p-cancelable": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/p-try-each/-/p-try-each-1.0.1.tgz", - "integrity": "sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A==" - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parse-duration": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", - "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==" - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "optional": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" - }, - "node_modules/parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "optional": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "devOptional": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/peer-id": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.16.0.tgz", - "integrity": "sha512-EmL7FurFUduU9m1PS9cfJ5TAuCvxKQ7DKpfx3Yj6IKWyBRtosriFuOag/l3ni/dtPgPLwiA4R9IvpL7hsDLJuQ==", - "dependencies": { - "class-is": "^1.1.0", - "libp2p-crypto": "^0.21.0", - "multiformats": "^9.4.5", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=15.0.0" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "optional": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "optional": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pino": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", - "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", - "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-pretty": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-4.8.0.tgz", - "integrity": "sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw==", - "dependencies": { - "@hapi/bourne": "^2.0.0", - "args": "^5.0.1", - "chalk": "^4.0.0", - "dateformat": "^4.5.1", - "fast-safe-stringify": "^2.0.7", - "jmespath": "^0.15.0", - "joycon": "^2.2.5", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "rfdc": "^1.3.0", - "split2": "^3.1.1", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, - "node_modules/pino-pretty/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pino-pretty/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/pino-pretty/node_modules/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/pino-pretty/node_modules/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==" - }, - "node_modules/pino-pretty/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/pino-pretty/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/pino-pretty/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pino-pretty/node_modules/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, - "node_modules/pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/private-ip": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.3.3.tgz", - "integrity": "sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw==", - "dependencies": { - "ip-regex": "^4.3.0", - "ipaddr.js": "^2.0.1", - "is-ip": "^3.1.0", - "netmask": "^2.0.2" - } - }, - "node_modules/private-ip/node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "devOptional": true - }, - "node_modules/process-warning": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", - "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", - "optional": true, - "dependencies": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - } - }, - "node_modules/progress-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "optional": true - }, - "node_modules/progress-stream/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "optional": true - }, - "node_modules/progress-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/progress-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "optional": true - }, - "node_modules/progress-stream/node_modules/through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", - "optional": true, - "dependencies": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - } - }, - "node_modules/progress-stream/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "optional": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/prom-client": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz", - "integrity": "sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==", - "optional": true, - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/promise-timeout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/promise-timeout/-/promise-timeout-1.3.0.tgz", - "integrity": "sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg==" - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, - "node_modules/proper-lockfile/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "optional": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pvtsutils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.1.tgz", - "integrity": "sha512-Q867jEr30lBR2YSFFLZ0/XsEvpweqH6Kj096wmlRAFXrdRGPCNq2iz9B5Tk085EZ+OBZyYAVA5UhPkjSHGrUzQ==", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/pvutils": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", - "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" - }, - "node_modules/quickly-copy-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", - "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.0" - } - }, - "node_modules/rabin-wasm": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz", - "integrity": "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==", - "dependencies": { - "@assemblyscript/loader": "^0.9.4", - "bl": "^5.0.0", - "debug": "^4.3.1", - "minimist": "^1.2.5", - "node-fetch": "^2.6.1", - "readable-stream": "^3.6.0" - }, - "bin": { - "rabin-wasm": "cli/bin.js" - } - }, - "node_modules/rabin-wasm/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/rabin-wasm/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "dependencies": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-native-fetch-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", - "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", - "dependencies": { - "p-defer": "^3.0.0" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "optional": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "optional": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "optional": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "optional": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "optional": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz", - "integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==", - "devOptional": true, - "dependencies": { - "is-core-module": "^2.8.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "optional": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/retimer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", - "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/rfc4648": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz", - "integrity": "sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg==" - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "optional": true, - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "optional": true - }, - "node_modules/rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "optional": true, - "dependencies": { - "rx-lite": "*" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-delayed-interval": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", - "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/sha256": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU=", - "dependencies": { - "convert-hex": "~0.1.0", - "convert-string": "~0.1.0" - } - }, - "node_modules/sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "dependencies": { - "buffer": "6.0.3" - } - }, - "node_modules/sha3/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" - }, - "node_modules/single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", - "optional": true, - "dependencies": { - "string-width": "^1.0.1" - } - }, - "node_modules/single-line-log/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/single-line-log/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/single-line-log/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/single-line-log/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/socket.io-client": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.4.1.tgz", - "integrity": "sha512-N5C/L5fLNha5Ojd7Yeb/puKcPWWcoB/A09fEjjNsg91EDVr5twk/OEyO6VT9dlLSUNY85NpW6KBhVMvaLKQ3vQ==", - "dependencies": { - "@socket.io/component-emitter": "~3.0.0", - "backo2": "~1.0.2", - "debug": "~4.3.2", - "engine.io-client": "~6.1.1", - "parseuri": "0.0.6", - "socket.io-parser": "~4.1.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/socket.io-parser": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.1.1.tgz", - "integrity": "sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA==", - "dependencies": { - "@socket.io/component-emitter": "~3.0.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io-parser/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "node_modules/sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sparse-array": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", - "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "optional": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "optional": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "optional": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "optional": true - }, - "node_modules/speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "optional": true - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "optional": true, - "dependencies": { - "through2": "^2.0.2" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/steno": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", - "integrity": "sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs=", - "dependencies": { - "graceful-fs": "^4.1.3" - } - }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "engines": { - "node": ">=4", - "npm": ">=6" - } - }, - "node_modules/stream-to-it": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", - "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/streaming-iterables": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz", - "integrity": "sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-length/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-length/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "optional": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "optional": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/subscriptions-transport-ws": { - "version": "0.9.19", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", - "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", - "dependencies": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependencies": { - "graphql": ">=0.10.0" - } - }, - "node_modules/sumchecker": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", - "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", - "optional": true, - "dependencies": { - "debug": "^2.2.0", - "es6-promise": "^4.0.5" - } - }, - "node_modules/sumchecker/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/sumchecker/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "node_modules/supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "devOptional": true, - "dependencies": { - "has-flag": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "devOptional": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swipl-stdio": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/swipl-stdio/-/swipl-stdio-1.0.4.tgz", - "integrity": "sha512-/6272/LlR0efkqE7Y8ZhjioHR5Vx0qyHWk5nuS9WaPk51dO21nx/sMkHGnd9zYBUN2RYx+dZqHc9UUm1YRRb5Q==", - "dependencies": { - "debug": "^2.6.4", - "split": "^1.0.0" - }, - "engines": { - "node": ">=7.6.0" - } - }, - "node_modules/swipl-stdio/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/swipl-stdio/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "optional": true, - "dependencies": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "optional": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tdigest": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", - "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", - "optional": true, - "dependencies": { - "bintrees": "1.0.1" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "optional": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-value/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "optional": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "optional": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/time-cache": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/time-cache/-/time-cache-0.3.0.tgz", - "integrity": "sha1-7Q388P2kXNyV+9YB/agw6/G9XYs=", - "dependencies": { - "lodash.throttle": "^4.1.1" - } - }, - "node_modules/timeout-abort-controller": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz", - "integrity": "sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA==", - "dependencies": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.4", - "retimer": "^3.0.0" - } - }, - "node_modules/timestamp-nano": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.0.tgz", - "integrity": "sha512-NO/1CZigzlCWQiWdIGv8ebXt6Uk77zdLz2NE7KcZRU5Egj2+947lzUpk30xQUQlq5dRY25j7ZulG4RfA2DHYfA==", - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/tiny-each-async": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", - "integrity": "sha1-jru/1tYpXxNwAD+7NxYq/loKUdE=" - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", - "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/toml": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", - "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", - "optional": true - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, - "node_modules/ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "dependencies": { - "tslib": "^1.9.3" - } - }, - "node_modules/ts-invariant/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/ts-jest": { - "version": "27.1.3", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz", - "integrity": "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "esbuild": "~0.14.0", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/ts-jest/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/ts-jest/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/ts-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-jest/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/ts-jest/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-jest/node_modules/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==", - "dev": true - }, - "node_modules/ts-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-jest/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-typed-json": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", - "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", - "optional": true, - "dependencies": { - "rsvp": "^3.5.0" - } - }, - "node_modules/ts-typed-json/node_modules/rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "optional": true, - "engines": { - "node": "0.12.* || 4.* || 6.* || >= 7.*" - } - }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "optional": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "node_modules/uglify-js": { - "version": "3.14.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz", - "integrity": "sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unordered-array-remove": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", - "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/update-notifier/node_modules/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==" - }, - "node_modules/update-notifier/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/update-notifier/node_modules/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-to-multiaddr": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/uri-to-multiaddr/-/uri-to-multiaddr-6.0.0.tgz", - "integrity": "sha512-vGHLrfvWQwoMv1YiHWU5ZOK2M/TV0qheXIanuW6jAL6VFD1vMK7xqL/zOxc32tKhlJgSt6vTJI4yALS+vFZKEA==", - "dependencies": { - "is-ip": "^3.1.0", - "multiaddr": "^10.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util.promisify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", - "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "optional": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "optional": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/varint-decoder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz", - "integrity": "sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ==", - "dependencies": { - "varint": "^5.0.0" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/varint-decoder/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webcrypto-core": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.4.0.tgz", - "integrity": "sha512-HY3Zo0GcRIQUUDnlZ/shGjN+4f7LVMkdJZoGPog+oHhJsJdMz6iM8Za5xZ0t6qg7Fx/JXXz+oBv2J2p982hGTQ==", - "dependencies": { - "@peculiar/asn1-schema": "^2.0.44", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.0", - "tslib": "^2.3.1" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/wherearewe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.0.tgz", - "integrity": "sha512-oQnRsAfMCqNAC7U4JrBdmFXAhBRLOkPGOfU5+nw9fs2D3g8O6EV7hn7BhpXtt0yno4pxFiRD55rMyt0fsLMqlw==", - "dependencies": { - "is-electron": "^2.2.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "optional": true - }, - "node_modules/wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", - "optional": true, - "dependencies": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/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==" - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/wrtc": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/wrtc/-/wrtc-0.4.7.tgz", - "integrity": "sha512-P6Hn7VT4lfSH49HxLHcHhDq+aFf/jd9dPY7lDHeFhZ22N3858EKuwm2jmnlPzpsRGEPaoF6XwkcxY5SYnt4f/g==", - "bundleDependencies": [ - "node-pre-gyp" - ], - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-pre-gyp": "^0.13.0" - }, - "engines": { - "node": "^8.11.2 || >=10.0.0" - }, - "optionalDependencies": { - "domexception": "^1.0.1" - } - }, - "node_modules/ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xml2js": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.1.14.tgz", - "integrity": "sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw=", - "dependencies": { - "sax": ">=0.1.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xsalsa20": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", - "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" - }, - "node_modules/xss": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz", - "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "optional": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "optional": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "node_modules/zen-observable-ts": { - "version": "0.8.21", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", - "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", - "dependencies": { - "tslib": "^1.9.3", - "zen-observable": "^0.8.0" - } - }, - "node_modules/zen-observable-ts/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - }, - "dependencies": { - "@apollo/client": { - "version": "3.3.20", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", - "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", - "requires": { - "@graphql-typed-document-node/core": "^3.0.0", - "@types/zen-observable": "^0.8.0", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "fast-json-stable-stringify": "^2.0.0", - "graphql-tag": "^2.12.0", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.0", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.7.0", - "tslib": "^1.10.0", - "zen-observable": "^0.8.14" - }, - "dependencies": { - "@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" - }, - "ts-invariant": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", - "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@apollo/protobufjs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz", - "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - } - } - }, - "@apollographql/apollo-tools": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz", - "integrity": "sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw==" - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.27", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz", - "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==", - "requires": { - "xss": "^1.0.8" - } - }, - "@apollographql/graphql-upload-8-fork": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", - "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", - "requires": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "busboy": "^0.3.1", - "fs-capacitor": "^2.0.4", - "http-errors": "^1.7.3", - "object-path": "^0.11.4" - } - }, - "@assemblyscript/loader": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", - "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" - }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", - "dev": true - }, - "@babel/core": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz", - "integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true - }, - "@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", - "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@chainsafe/libp2p-noise": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-5.0.2.tgz", - "integrity": "sha512-hpxHl3bxHN2fgpmjP2zkC2Lq3ajA349WxI7U2aBuskkq3Pd+aUmSlVjM8pyN+5Dr5+yHuayqCgMUxq3AeOM7Zw==", - "requires": { - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/hkdf": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.1", - "bl": "^5.0.0", - "debug": "^4.3.1", - "it-buffer": "^0.1.3", - "it-length-prefixed": "^5.0.3", - "it-pair": "^1.0.0", - "it-pb-rpc": "^0.2.0", - "it-pipe": "^1.1.0", - "peer-id": "^0.16.0", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "requires": {} - }, - "@grpc/grpc-js": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz", - "integrity": "sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@hapi/accept": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", - "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/ammo": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", - "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/b64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", - "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/boom": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", - "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/bounce": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", - "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/call": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", - "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/catbox": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", - "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/podium": "4.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/catbox-memory": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", - "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/content": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", - "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", - "requires": { - "@hapi/boom": "9.x.x" - } - }, - "@hapi/cryptiles": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", - "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", - "requires": { - "@hapi/boom": "9.x.x" - } - }, - "@hapi/file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", - "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" - }, - "@hapi/hapi": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.2.1.tgz", - "integrity": "sha512-OXAU+yWLwkMfPFic+KITo+XPp6Oxpgc9WUH+pxXWcTIuvWbgco5TC/jS8UDvz+NFF5IzRgF2CL6UV/KLdQYUSQ==", - "requires": { - "@hapi/accept": "^5.0.1", - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/bounce": "^2.0.0", - "@hapi/call": "^8.0.0", - "@hapi/catbox": "^11.1.1", - "@hapi/catbox-memory": "^5.0.0", - "@hapi/heavy": "^7.0.1", - "@hapi/hoek": "^9.0.4", - "@hapi/mimos": "^6.0.0", - "@hapi/podium": "^4.1.1", - "@hapi/shot": "^5.0.5", - "@hapi/somever": "^3.0.0", - "@hapi/statehood": "^7.0.3", - "@hapi/subtext": "^7.0.3", - "@hapi/teamwork": "^5.1.0", - "@hapi/topo": "^5.0.0", - "@hapi/validate": "^1.1.1" - } - }, - "@hapi/heavy": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", - "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" - }, - "@hapi/iron": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", - "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", - "requires": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/mimos": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz", - "integrity": "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==", - "requires": { - "@hapi/hoek": "9.x.x", - "mime-db": "1.x.x" - } - }, - "@hapi/nigel": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", - "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", - "requires": { - "@hapi/hoek": "^9.0.4", - "@hapi/vise": "^4.0.0" - } - }, - "@hapi/pez": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", - "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", - "requires": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/content": "^5.0.2", - "@hapi/hoek": "9.x.x", - "@hapi/nigel": "4.x.x" - } - }, - "@hapi/podium": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", - "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", - "requires": { - "@hapi/hoek": "9.x.x", - "@hapi/teamwork": "5.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/shot": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", - "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", - "requires": { - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/somever": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz", - "integrity": "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==", - "requires": { - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/statehood": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", - "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/iron": "6.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/subtext": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", - "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/content": "^5.0.2", - "@hapi/file": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/pez": "^5.0.1", - "@hapi/wreck": "17.x.x" - } - }, - "@hapi/teamwork": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", - "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==" - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@hapi/validate": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", - "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0" - } - }, - "@hapi/vise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", - "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/wreck": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz", - "integrity": "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@holochain/client": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@holochain/client/-/client-0.3.2.tgz", - "integrity": "sha512-tBmfgRMcHn/yujiQ4ugolAEbE4WMznIGRt+F8gpPNNAzC263xt+CLa6G3KslcfUc4tKD+XCr5c9z3wkZP/MMzw==", - "requires": { - "@msgpack/msgpack": "^2.7.1", - "cross-fetch": "^3.1.4", - "isomorphic-ws": "^4.0.1" - }, - "dependencies": { - "@msgpack/msgpack": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz", - "integrity": "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==" - } - } - }, - "@ipld/car": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@ipld/car/-/car-3.2.3.tgz", - "integrity": "sha512-pXE5mFJlXzJVaBwqAJKGlKqMmxq8H2SLEWBJgkeBDPBIN8ZbscPc3I9itkSQSlS/s6Fgx35Ri3LDTDtodQjCCQ==", - "requires": { - "@ipld/dag-cbor": "^7.0.0", - "multiformats": "^9.5.4", - "varint": "^6.0.0" - } - }, - "@ipld/dag-cbor": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.0.tgz", - "integrity": "sha512-us/dagGvfQ+acO8uyAfozUQ21xxvI6ZrCWwfbOuk+o+cSpCIKY30lUYRuN3kzWLvTJHvbuCVPVEH38ynM1ZBgw==", - "requires": { - "cborg": "^1.6.0", - "multiformats": "^9.5.4" - } - }, - "@ipld/dag-json": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.7.tgz", - "integrity": "sha512-nG4hdl1V4GDKZ6Mumu2tL8zSpem/lRSVpQOd1uEovF+qPRkVnb06hsETy97J3kR0EjbZgge8m5AYtrab3DSREg==", - "requires": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" - } - }, - "@ipld/dag-pb": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.15.tgz", - "integrity": "sha512-qkoUIiuQDx2ZN+YmYFdSNNHRt15p1XTYbqsseb8DgA0ACcqCUurbiNVd0jt5GuiBm76t2mOV2cZsNu6rykRFBQ==", - "requires": { - "multiformats": "^9.5.4" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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==", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/core": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.7.tgz", - "integrity": "sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/reporters": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.4.2", - "jest-config": "^27.4.7", - "jest-haste-map": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.6", - "jest-resolve-dependencies": "^27.4.6", - "jest-runner": "^27.4.6", - "jest-runtime": "^27.4.6", - "jest-snapshot": "^27.4.6", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "jest-watcher": "^27.4.6", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "@jest/environment": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.6.tgz", - "integrity": "sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.6" - }, - "dependencies": { - "@jest/fake-timers": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz", - "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz", - "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@jest/globals": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.6.tgz", - "integrity": "sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.6", - "@jest/types": "^27.4.2", - "expect": "^27.4.6" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/reporters": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz", - "integrity": "sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.4.6", - "jest-resolve": "^27.4.6", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@jest/test-sequencer": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz", - "integrity": "sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw==", - "dev": true, - "requires": { - "@jest/test-result": "^27.4.6", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-runtime": "^27.4.6" - }, - "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@jest/transform": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz", - "integrity": "sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz", - "integrity": "sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==", - "requires": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.5", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { - "abbrev": "1" - } - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "@mattrglobal/bbs-signatures": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz", - "integrity": "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==", - "requires": { - "@mattrglobal/node-bbs-signatures": "0.11.0" - } - }, - "@mattrglobal/bls12381-key-pair": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz", - "integrity": "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==", - "requires": { - "@mattrglobal/bbs-signatures": "0.5.0", - "bs58": "4.0.1", - "rfc4648": "1.4.0" - } - }, - "@mattrglobal/node-bbs-signatures": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz", - "integrity": "sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw==", - "optional": true, - "requires": { - "neon-cli": "0.4.0", - "node-pre-gyp": "0.14.0" - } - }, - "@multiformats/murmur3": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-1.1.1.tgz", - "integrity": "sha512-TPIBMPX4DX7T4291bPUAn/AMW6H6mnYoI4Bza1DeX1I59dpTWBbOgxaqc+139Ph+NEgb/PNd3sFS8VFoOXzNlw==", - "requires": { - "multiformats": "^9.5.4", - "murmurhash3js-revisited": "^3.0.0" - } - }, - "@noble/ed25519": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.6.0.tgz", - "integrity": "sha512-UKju89WV37IUALIMfKhKW3psO8AqmrE/GvH6QbPKjzolQ98zM7WmGUeY+xdIgSf5tqPFf75ZCYMgym6E9Jsw3Q==" - }, - "@noble/secp256k1": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.5.3.tgz", - "integrity": "sha512-v11x6HReQymMELBq2fnwVthQMOPB5911fwem9515TLiNlitdOuS2qEMa1BzTcDgB563ql0238JGrpJJA1IaJ8Q==" - }, - "@peculiar/asn1-schema": { - "version": "2.0.44", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.44.tgz", - "integrity": "sha512-uaCnjQ9A9WwQSMuDJcNOCYEPXTahgKbFMvI7eMOMd8lXgx0J1eU7F3BoMsK5PFxa3dVUxjSQbaOjfgGoeHGgoQ==", - "requires": { - "@types/asn1js": "^2.0.2", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.1", - "tslib": "^2.3.0" - } - }, - "@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "requires": { - "tslib": "^2.0.0" - } - }, - "@peculiar/webcrypto": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.2.3.tgz", - "integrity": "sha512-q7wDfZy3k/tpnsYB23/MyyDkjn6IdHh8w+xwoVMS5cu6CjVoFzngXDZEOOuSE4zus2yO6ciQhhHxd4XkLpwVnQ==", - "requires": { - "@peculiar/asn1-schema": "^2.0.44", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.2.1", - "tslib": "^2.3.1", - "webcrypto-core": "^1.4.0" - } - }, - "@perspect3vism/ad4m": { - "version": "0.1.25", - "resolved": "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.1.25.tgz", - "integrity": "sha512-l9+K+6WgtnIOILoQex0IB6dnuDbHrZzDPkl2vUftoS12xb8kYJGmkpsovSN9dHw5IJOU4YY7AEJEzXRwdtEcZQ==", - "requires": { - "@apollo/client": "3.3.20", - "@holochain/client": "0.3.2", - "@types/jest": "^27.0.1", - "class-validator": "^0.13.1", - "graphql": "^15.5.0", - "react": "^17.0.2", - "reflect-metadata": "^0.1.13", - "type-graphql": "^1.1.1" - }, - "dependencies": { - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - }, - "@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" - }, - "class-validator": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz", - "integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==", - "requires": { - "libphonenumber-js": "^1.9.43", - "validator": "^13.7.0" - } - }, - "graphql-query-complexity": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", - "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", - "requires": { - "lodash.get": "^4.4.2" - } - }, - "libphonenumber-js": { - "version": "1.9.44", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.44.tgz", - "integrity": "sha512-zhw8nUMJuQf7jG1dZfEOKKOS6M3QYIv3HnvB/vGohNd0QfxIQcObH3a6Y6s350H+9xgBeOXClOJkS0hJ0yvS3g==" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "type-graphql": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz", - "integrity": "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==", - "requires": { - "@types/glob": "^7.1.3", - "@types/node": "*", - "@types/semver": "^7.3.3", - "glob": "^7.1.6", - "graphql-query-complexity": "^0.7.0", - "graphql-subscriptions": "^1.1.0", - "semver": "^7.3.2", - "tslib": "^2.0.1" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" - } - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@sideway/address": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@socket.io/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==" - }, - "@socket.io/component-emitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz", - "integrity": "sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q==" - }, - "@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "@stablelib/aes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz", - "integrity": "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/aes-kw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz", - "integrity": "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==", - "requires": { - "@stablelib/aes": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/blockcipher": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "requires": { - "@stablelib/int": "^1.0.1" - } - }, - "@stablelib/blockcipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz", - "integrity": "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" - }, - "@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "requires": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "@stablelib/ed25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz", - "integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==", - "requires": { - "@stablelib/random": "^1.0.1", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "@stablelib/hkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", - "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", - "requires": { - "@stablelib/hash": "^1.0.1", - "@stablelib/hmac": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/hmac": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", - "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", - "requires": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "requires": { - "@stablelib/bytes": "^1.0.1" - } - }, - "@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "requires": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/sha256": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", - "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/sha512": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", - "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "@stablelib/x25519": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz", - "integrity": "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==", - "requires": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/xchacha20": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz", - "integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/xchacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz", - "integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==", - "requires": { - "@stablelib/aead": "^1.0.1", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1", - "@stablelib/xchacha20": "^1.0.1" - } - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@transmute/did-key-bls12381": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz", - "integrity": "sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ==", - "requires": { - "@mattrglobal/bbs-signatures": "^0.5.0", - "@mattrglobal/bls12381-key-pair": "^0.5.0", - "base64url": "^3.0.1", - "bs58": "^4.0.1" - } - }, - "@transmute/did-key-cipher": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz", - "integrity": "sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw==", - "requires": { - "@peculiar/webcrypto": "^1.1.3", - "@stablelib/aes-kw": "^1.0.0", - "@stablelib/xchacha20poly1305": "^1.0.0", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "web-streams-polyfill": "^3.0.0" - } - }, - "@transmute/did-key-common": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz", - "integrity": "sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A==", - "requires": { - "base64url": "^3.0.1", - "borc": "^2.1.2", - "canonicalize": "^1.0.3", - "cbor": "^5.1.0" - } - }, - "@transmute/did-key-ed25519": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz", - "integrity": "sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw==", - "requires": { - "@stablelib/ed25519": "^1.0.1", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@transmute/did-key-x25519": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1" - } - }, - "@transmute/did-key-secp256k1": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz", - "integrity": "sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ==", - "requires": { - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1", - "secp256k1": "^4.0.1" - } - }, - "@transmute/did-key-web-crypto": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-web-crypto/-/did-key-web-crypto-0.2.1-unstable.42.tgz", - "integrity": "sha512-GaD320cZxPJAVdQtSrxgTn91T1M/2qwSMQgowVdnY5HKEik2BS3o1kU7DYAJpUPdU2WNKg9W3Rr+C/dRY0Q0rQ==", - "requires": { - "@transmute/web-crypto-key-pair": "^0.6.1-unstable.18" - } - }, - "@transmute/did-key-x25519": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key-x25519/-/did-key-x25519-0.2.1-unstable.42.tgz", - "integrity": "sha512-pInHZaepvjmfym1fBDrdbL5isUVbYHR1nYBsH3uD9EPn7SwZfEBe0Vg9hUop81b4x/6+VVWuGm2dIhpVBxsRPQ==", - "requires": { - "@stablelib/ed25519": "^1.0.1", - "@stablelib/x25519": "^1.0.0", - "@transmute/did-key-cipher": "^0.2.1-unstable.42", - "@transmute/did-key-common": "^0.2.1-unstable.42", - "@trust/keyto": "^1.0.1", - "base64url": "^3.0.1", - "bs58": "^4.0.1", - "canonicalize": "^1.0.1" - } - }, - "@transmute/did-key.js": { - "version": "0.2.1-unstable.42", - "resolved": "https://registry.npmjs.org/@transmute/did-key.js/-/did-key.js-0.2.1-unstable.42.tgz", - "integrity": "sha512-vqwkJeAIkpekSCszKztIOVGFuWZMF8GJfiSHMv+vsS0cgLqzHer8WCUCudWt76rc2s90uK7FdlkvdwoZgGRl6g==", - "requires": { - "@transmute/did-key-bls12381": "^0.2.1-unstable.42", - "@transmute/did-key-ed25519": "^0.2.1-unstable.42", - "@transmute/did-key-secp256k1": "^0.2.1-unstable.42", - "@transmute/did-key-web-crypto": "^0.2.1-unstable.42", - "@transmute/did-key-x25519": "^0.2.1-unstable.42" - } - }, - "@transmute/did-wallet": { - "version": "git+ssh://git@github.com/lucksus/did-wallet.git#cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2", - "integrity": "sha512-iya0qxEe2xkeDIZ8StHWGS7kH81nw8YZ4EzwGPkW/SaGlEB2UExcYAlJdfHM5ErqDDOqp7Ke3Lla3VywMtRhIA==", - "from": "@transmute/did-wallet@lucksus/did-wallet", - "requires": { - "base64url": "^3.0.1", - "jsonschema": "^1.2.4", - "lodash": "^4.17.11" - } - }, - "@transmute/ld-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" - }, - "@transmute/web-crypto-key-pair": { - "version": "0.6.1-unstable.37", - "resolved": "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.6.1-unstable.37.tgz", - "integrity": "sha512-BVN5ECm3t5ldJiyixsdoXaptr14p2PxOOGWvyBm5eqWlVy/kiWQiVh43wZgEbHtjOkacTfw+BaVAtYkyGn2tpw==", - "requires": { - "@peculiar/webcrypto": "^1.1.6", - "@transmute/ld-key-pair": "^0.6.1-unstable.37", - "big-integer": "^1.6.48" - } - }, - "@trust/keyto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@trust/keyto/-/keyto-1.0.1.tgz", - "integrity": "sha512-OXTmKkrnkwktCX86XA7eWs1TQ6u64enm0syzAfNhjigbuGLy5aLhbhRYWtjt4zzdG/irWudluheRZ9Ic9pCwsA==", - "requires": { - "asn1.js": "^5.2.0", - "base64url": "^3.0.1", - "elliptic": "^6.5.2" - } - }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "requires": { - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "@types/asn1js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", - "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" - }, - "@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" - }, - "@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", - "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==" - }, - "@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "requires": { - "@types/ms": "*" - } - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "@types/faker": { - "version": "5.5.9", - "resolved": "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz", - "integrity": "sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA==", - "dev": true - }, - "@types/fs-capacitor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", - "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", - "requires": { - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" - }, - "@types/http-errors": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.2.tgz", - "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } - } - }, - "@types/js-yaml": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", - "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", - "dev": true - }, - "@types/json-stable-stringify": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz", - "integrity": "sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw==" - }, - "@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" - }, - "@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", - "requires": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "requires": { - "@types/koa": "*" - } - }, - "@types/lodash": { - "version": "4.14.178", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", - "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==", - "dev": true - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/lowdb": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@types/lowdb/-/lowdb-1.0.11.tgz", - "integrity": "sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "@types/node": { - "version": "14.18.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.9.tgz", - "integrity": "sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q==" - }, - "@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/prettier": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz", - "integrity": "sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "requires": { - "@types/mime": "^1", - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "@types/sha256": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@types/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha512-QYMr6HuxTQunFWRLZpGopbkgQFoFWOmKTBGgNSYiWMqU/CWnQSTo3edyHvgsRXsOWtOSOG/cmDptPzgCeOsQGw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "dev": true - }, - "@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "requires": { - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "@types/zen-observable": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", - "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" - }, - "@vascosantos/moving-average": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", - "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" - }, - "@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@wry/equality": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", - "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", - "requires": { - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@wry/trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", - "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", - "requires": { - "tslib": "^2.3.0" - } - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "abortable-iterator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", - "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", - "requires": { - "get-iterator": "^1.0.2" - } - }, - "abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "requires": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "abstract-logging": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "requires": { - "string-width": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "optional": true, - "requires": { - "array-back": "^3.0.1" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "optional": true - } - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "optional": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "any-signal": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", - "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", - "requires": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.3" - } - }, - "apollo-cache-control": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz", - "integrity": "sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==", - "requires": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - } - }, - "apollo-datasource": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz", - "integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==", - "requires": { - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - } - }, - "apollo-graphql": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.5.tgz", - "integrity": "sha512-RGt5k2JeBqrmnwRM0VOgWFiGKlGJMfmiif/4JvdaEqhMJ+xqe/9cfDYzXfn33ke2eWixsAbjEbRfy8XbaN9nTw==", - "requires": { - "core-js-pure": "^3.10.2", - "lodash.sortby": "^4.7.0", - "sha.js": "^2.4.11" - } - }, - "apollo-link": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz", - "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==", - "requires": { - "apollo-utilities": "^1.3.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3", - "zen-observable-ts": "^0.8.21" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "apollo-reporting-protobuf": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz", - "integrity": "sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==", - "requires": { - "@apollo/protobufjs": "1.2.2" - } - }, - "apollo-server": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.3.tgz", - "integrity": "sha512-+eUY2//DLkU7RkJLn6CTl1P89/ZMHuUQnWqv8La2iJ2hLT7Me+nMx+hgHl3LqlT/qDstQ8qA45T85FuCayplmQ==", - "requires": { - "apollo-server-core": "^2.25.3", - "apollo-server-express": "^2.25.3", - "express": "^4.0.0", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "stoppable": "^1.1.0" - } - }, - "apollo-server-caching": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz", - "integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "apollo-server-core": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.3.tgz", - "integrity": "sha512-Midow3uZoJ9TjFNeCNSiWElTVZlvmB7G7tG6PPoxIR9Px90/v16Q6EzunDIO0rTJHRC3+yCwZkwtf8w2AcP0sA==", - "requires": { - "@apollographql/apollo-tools": "^0.5.0", - "@apollographql/graphql-playground-html": "1.6.27", - "@apollographql/graphql-upload-8-fork": "^8.1.3", - "@josephg/resolvable": "^1.0.0", - "@types/ws": "^7.0.0", - "apollo-cache-control": "^0.14.0", - "apollo-datasource": "^0.9.0", - "apollo-graphql": "^0.9.0", - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0", - "apollo-server-errors": "^2.5.0", - "apollo-server-plugin-base": "^0.13.0", - "apollo-server-types": "^0.9.0", - "apollo-tracing": "^0.15.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "^0.15.0", - "graphql-tag": "^2.11.0", - "graphql-tools": "^4.0.8", - "loglevel": "^1.6.7", - "lru-cache": "^6.0.0", - "sha.js": "^2.4.11", - "subscriptions-transport-ws": "^0.9.19", - "uuid": "^8.0.0" - } - }, - "apollo-server-env": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz", - "integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==", - "requires": { - "node-fetch": "^2.6.1", - "util.promisify": "^1.0.0" - } - }, - "apollo-server-errors": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz", - "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==", - "requires": {} - }, - "apollo-server-express": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.3.tgz", - "integrity": "sha512-tTFYn0oKH2qqLwVj7Ez2+MiKleXACODiGh5IxsB7VuYCPMAi9Yl8iUSlwTjQUvgCWfReZjnf0vFL2k5YhDlrtQ==", - "requires": { - "@apollographql/graphql-playground-html": "1.6.27", - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.0", - "@types/cors": "2.8.10", - "@types/express": "^4.17.12", - "@types/express-serve-static-core": "^4.17.21", - "accepts": "^1.3.5", - "apollo-server-core": "^2.25.3", - "apollo-server-types": "^0.9.0", - "body-parser": "^1.18.3", - "cors": "^2.8.5", - "express": "^4.17.1", - "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.8", - "parseurl": "^1.3.2", - "subscriptions-transport-ws": "^0.9.19", - "type-is": "^1.6.16" - }, - "dependencies": { - "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" - } - } - }, - "apollo-server-plugin-base": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz", - "integrity": "sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==", - "requires": { - "apollo-server-types": "^0.9.0" - } - }, - "apollo-server-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz", - "integrity": "sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==", - "requires": { - "apollo-reporting-protobuf": "^0.8.0", - "apollo-server-caching": "^0.7.0", - "apollo-server-env": "^3.1.0" - } - }, - "apollo-tracing": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz", - "integrity": "sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==", - "requires": { - "apollo-server-env": "^3.1.0", - "apollo-server-plugin-base": "^0.13.0" - } - }, - "apollo-utilities": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz", - "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==", - "requires": { - "@wry/equality": "^0.1.2", - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", - "requires": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "optional": true, - "requires": { - "typical": "^2.6.1" - } - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "optional": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "array-shuffle": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-2.0.0.tgz", - "integrity": "sha512-rJTchCppiO6QsQnN51KDH1cgMYm13B+ybxFS5GgdBdTTHpZcrq3M7SOBgzp+L9fqqnjkFDiwdEVcX1wINgl9DQ==" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "asn1js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.2.0.tgz", - "integrity": "sha512-oagLNqpfNv7CvmyMoexMDNyVDSiq1rya0AEUgcLlNHdHgNl6U/hi8xY370n5y+ZIFEXOx0J4B1qF2NDjMRxklA==", - "requires": { - "pvutils": "latest" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - }, - "async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "requires": { - "retry": "0.13.1" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "babel-jest": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.6.tgz", - "integrity": "sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg==", - "dev": true, - "requires": { - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.4.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", - "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", - "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.4.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "base64url": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", - "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, - "bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=", - "optional": true - }, - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "blob-to-it": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", - "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", - "requires": { - "browser-readablestream-to-it": "^1.0.3" - } - }, - "blockstore-core": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-1.0.5.tgz", - "integrity": "sha512-i/9CUMMvBALVbtSqUIuiWB3tk//a4Q2I2CEWiBuYNnhJvk/DWplXjLt8Sqc5VGkRVXVPSsEuH8fUtqJt5UFYcA==", - "requires": { - "err-code": "^3.0.1", - "interface-blockstore": "^2.0.2", - "interface-store": "^2.0.1", - "it-all": "^1.0.4", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.4.7" - } - }, - "blockstore-datastore-adapter": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-2.0.3.tgz", - "integrity": "sha512-s6j6ay+qLu7sOx5DanHJlg2dBX61B9Yrbg6qo8oP3oiWnj6ZFCad4CKVb8do1f4u/Q4r2XPuSM4JYCe684USrQ==", - "requires": { - "blockstore-core": "^1.0.0", - "err-code": "^3.0.1", - "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.0.2", - "it-drain": "^1.0.1", - "it-pushable": "^1.4.2", - "multiformats": "^9.1.0" - } - }, - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "requires": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "borc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", - "requires": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - } - }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "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.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browser-readablestream-to-it": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", - "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "optional": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "devOptional": true - }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "optional": true - }, - "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", - "requires": { - "dicer": "0.3.0" - } - }, - "byteman": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/byteman/-/byteman-1.3.5.tgz", - "integrity": "sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA==" - }, - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "optional": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "optional": true - } - } - }, - "caniuse-lite": { - "version": "1.0.30001301", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", - "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", - "dev": true - }, - "canonicalize": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", - "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" - }, - "capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==" - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "cborg": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.6.1.tgz", - "integrity": "sha512-dOGlTG610S6t3j7EYFxPBH7KiF1OlSAdWtMI4Iv1dabcId/L/nUvkfOEPge+vDp9YoPerEMiDoy5+Vm2oEqmQw==" - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, - "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", - "devOptional": true, - "requires": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - } - }, - "change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "requires": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "optional": true - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "optional": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "optional": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true - }, - "coercer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/coercer/-/coercer-1.1.2.tgz", - "integrity": "sha1-6upEWVEfc/nzat4EqYEHznWCS3A=" - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "optional": true, - "requires": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - } - }, - "command-line-commands": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz", - "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==", - "optional": true, - "requires": { - "array-back": "^2.0.0" - } - }, - "command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "optional": true, - "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "optional": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-hex": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", - "integrity": "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "convert-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", - "integrity": "sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo=" - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-js-pure": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", - "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "devOptional": true - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "optional": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "dependencies": { - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - } - } - }, - "datastore-core": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-6.0.7.tgz", - "integrity": "sha512-y+RfRV3FXZK2kpHTwuoyIod3mHtleW/tDx5ilsn9cdIflxQb5rWrRc3GzRwPOnq2oEtN1W019BZOwC5h6p6g6Q==", - "requires": { - "debug": "^4.1.1", - "err-code": "^3.0.1", - "interface-datastore": "^6.0.2", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-map": "^1.0.5", - "it-merge": "^1.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "it-take": "^1.0.1", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "datastore-fs": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-6.0.1.tgz", - "integrity": "sha512-A0JTQx6LV91ddCdnFLFES5k4stJahfz8GwpnXdMSuZLcrP1Fwa/vcnKAdRlvXpJY83Gl3+skbjh0nV5LNy1w1w==", - "requires": { - "datastore-core": "^6.0.5", - "fast-write-atomic": "^0.2.0", - "interface-datastore": "^6.0.2", - "it-glob": "^1.0.1", - "it-map": "^1.0.5", - "it-parallel-batch": "^1.0.9", - "mkdirp": "^1.0.4" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } - } - }, - "datastore-level": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-7.0.1.tgz", - "integrity": "sha512-UCLOwKloaLYrcWVewSCOqVWEHUxz1PijsWHrI0dPZd3kODSWLSpW5CYylkWKPTX+JM7S1wENbiaz3i1188JXig==", - "requires": { - "datastore-core": "^6.0.5", - "interface-datastore": "^6.0.2", - "it-filter": "^1.0.2", - "it-map": "^1.0.5", - "it-sort": "^1.0.0", - "it-take": "^1.0.1", - "level": "^7.0.0" - } - }, - "datastore-pubsub": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/datastore-pubsub/-/datastore-pubsub-1.0.0.tgz", - "integrity": "sha512-L2S3avrrOJUsApahmObTxUgepe+BcZzqo4svKDqcRZ8zZZj+RH/q9iJnr89kKs/6Rpidg/FLyV58jxQ8DiZ5Pg==", - "requires": { - "datastore-core": "^6.0.7", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "interface-datastore": "^6.0.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==" - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "optional": true - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "requires": { - "execa": "^5.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "deferred-leveldown": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-7.0.0.tgz", - "integrity": "sha512-QKN8NtuS3BC6m0B8vAnBls44tX1WXAFATUsJlruyAYbZpysWV3siH6o/i3g9DCHauzodksO60bdj5NazNbjCmg==", - "requires": { - "abstract-leveldown": "^7.2.0", - "inherits": "^2.0.3" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" - }, - "denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "deprecated-decorator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", - "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", - "requires": { - "streamsearch": "0.1.2" - } - }, - "diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" - }, - "diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==" - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", - "requires": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "dns-packet": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", - "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", - "requires": { - "@leichtgewicht/ip-codec": "^2.0.1" - } - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "optional": true, - "requires": { - "webidl-conversions": "^4.0.2" - }, - "dependencies": { - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "optional": true - } - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "requires": { - "jake": "^10.6.1" - } - }, - "electron": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-1.8.8.tgz", - "integrity": "sha512-1f9zJehcTTGjrkb06o6ds+gsRq6SYhZJyxOk6zIWjRH8hVy03y/RzUDELzNas71f5vcvXmfGVvyjeEsadDI8tg==", - "optional": true, - "requires": { - "@types/node": "^8.0.24", - "electron-download": "^3.0.1", - "extract-zip": "^1.0.3" - }, - "dependencies": { - "@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "optional": true - } - } - }, - "electron-download": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", - "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", - "optional": true, - "requires": { - "debug": "^2.2.0", - "fs-extra": "^0.30.0", - "home-path": "^1.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.0", - "path-exists": "^2.1.0", - "rc": "^1.1.2", - "semver": "^5.3.0", - "sumchecker": "^1.2.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - } - } - }, - "electron-eval": { - "version": "0.9.10", - "resolved": "https://registry.npmjs.org/electron-eval/-/electron-eval-0.9.10.tgz", - "integrity": "sha512-VrAw2MrAjCwM8EGQsY+n48/f9P4W+AH56adERtDEb9bl5Hw9aN+ectmuK9QIi2XA11g+owQlyj2N4AzvdT363A==", - "optional": true, - "requires": { - "cross-spawn": "^5.1.0", - "electron": "^1.6.11", - "headless": "https://github.com/paulkernfeld/node-headless/tarball/master", - "ndjson": "^1.5.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "optional": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "optional": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "optional": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "optional": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "optional": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "optional": true - } - } - }, - "electron-fetch": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz", - "integrity": "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==", - "requires": { - "encoding": "^0.1.13" - } - }, - "electron-to-chromium": { - "version": "1.4.50", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.50.tgz", - "integrity": "sha512-g5X/6oVoqLyzKfsZ1HsJvxKoUAToFMCuq1USbmp/GPIwJDRYV1IEcv+plYTdh6h11hg140hycCBId0vf7rL0+Q==", - "dev": true - }, - "electron-webrtc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/electron-webrtc/-/electron-webrtc-0.3.0.tgz", - "integrity": "sha1-VG0cqBpEU0jDIGLLnaXnpKasrc8=", - "optional": true, - "requires": { - "debug": "^2.2.0", - "electron-eval": "^0.9.0", - "get-browser-rtc": "^1.0.2", - "hat": "^0.0.3" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - } - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "encoding-down": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-7.1.0.tgz", - "integrity": "sha512-ky47X5jP84ryk5EQmvedQzELwVJPjCgXDQZGeb9F6r4PdChByCGHTBrVcF3h8ynKVJ1wVbkxTsDC8zBROPypgQ==", - "requires": { - "abstract-leveldown": "^7.2.0", - "inherits": "^2.0.3", - "level-codec": "^10.0.0", - "level-errors": "^3.0.0" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "engine.io-client": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.1.1.tgz", - "integrity": "sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g==", - "requires": { - "@socket.io/component-emitter": "~3.0.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~8.2.3", - "xmlhttprequest-ssl": "~2.0.0", - "yeast": "0.1.2" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "requires": {} - } - } - }, - "engine.io-parser": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", - "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", - "requires": { - "@socket.io/base64-arraybuffer": "~1.0.2" - } - }, - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "optional": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "optional": true - }, - "es6-promisify": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz", - "integrity": "sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expect": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.6.tgz", - "integrity": "sha512-1M/0kAALIaj5LaG66sFJTbRsWTADnylly82cu4bspI0nl+pgP4E6Bh/aqdHlTUjul06K7xQnnrAoqfxVU0+/ag==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-matcher-utils": "^27.4.6", - "jest-message-util": "^27.4.6" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "optional": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "dependencies": { - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "optional": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - } - } - }, - "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "optional": true, - "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "faker": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-fifo": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz", - "integrity": "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-redact": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.0.tgz", - "integrity": "sha512-dir8LOnvialLxiXDPESMDHGp82CHi6ZEYTVkcvdn5d7psdv9ZkkButXrOeXST4aqreIRR+N7CYlsrwFuorurVg==" - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "fast-write-atomic": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", - "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "optional": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "optional": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-type": { - "version": "16.5.3", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", - "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", - "requires": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - } - }, - "filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", - "optional": true, - "requires": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "requires": { - "typical": "^2.6.0" - } - } - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "optional": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "fnv1a": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.0.1.tgz", - "integrity": "sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU=" - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "formidable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", - "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==" - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-capacitor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", - "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==" - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "dependencies": { - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz", - "integrity": "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "generic-names": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", - "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0" - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-browser-rtc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz", - "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-folder-size": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz", - "integrity": "sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==", - "requires": { - "gar": "^1.0.4", - "tiny-each-async": "2.0.3" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==" - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "optional": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "git-config": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", - "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=", - "optional": true, - "requires": { - "iniparser": "~1.0.5" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "requires": { - "ini": "2.0.0" - }, - "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globule": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", - "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "dependencies": { - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - } - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" - }, - "graphql-extensions": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz", - "integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==", - "requires": { - "@apollographql/apollo-tools": "^0.5.0", - "apollo-server-env": "^3.1.0", - "apollo-server-types": "^0.9.0" - } - }, - "graphql-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", - "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", - "requires": { - "iterall": "^1.3.0" - } - }, - "graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "graphql-tools": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", - "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", - "requires": { - "apollo-link": "^1.2.14", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, - "hamt-sharding": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-2.0.1.tgz", - "integrity": "sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA==", - "requires": { - "sparse-array": "^1.3.1", - "uint8arrays": "^3.0.0" - } - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "optional": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "hapi-pino": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.5.0.tgz", - "integrity": "sha512-p0phuePalD8965r6mboCBLIMWRO2vQAx+VSnXhTKxnF/4Sf+dk8Uze7109w9QfhlvGMqvBTEF6SxGStObBB/Lw==", - "requires": { - "@hapi/hoek": "^9.0.0", - "abstract-logging": "^2.0.0", - "pino": "^6.0.0", - "pino-pretty": "^4.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "devOptional": true - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hashlru": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" - }, - "hat": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", - "integrity": "sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=", - "optional": true - }, - "header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "requires": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "headless": { - "version": "https://github.com/paulkernfeld/node-headless/tarball/master", - "integrity": "sha512-Y+OAUntNS8dvU9cX0NHuTegMu7sDbd9KbPHF/pe9YO64UvuSE14AEKmMqzRqywQx83a3Y23inqC6iDvAd6PIYA==", - "optional": true - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "home-path": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.7.tgz", - "integrity": "sha512-tM1pVa+u3ZqQwIkXcWfhUlY3HWS3TsnKsfi2OHHvnhkX52s9etyktPyy1rQotkr0euWimChDq+QkQuDe8ngUlQ==", - "optional": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "optional": true - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "iniparser": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz", - "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=", - "optional": true - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "optional": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "interface-blockstore": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-2.0.3.tgz", - "integrity": "sha512-OwVUnlNcx7H5HloK0Myv6c/C1q9cNG11HX6afdeU6q6kbuNj8jKCwVnmJHhC94LZaJ+9hvVOk4IUstb3Esg81w==", - "requires": { - "interface-store": "^2.0.2", - "multiformats": "^9.0.4" - } - }, - "interface-datastore": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.0.tgz", - "integrity": "sha512-oNHdsrWBsI/kDwUtEgt+aaZtQFKtQYN0TGZzc3SGiIA6m+plZ6malhmsygtbmDpfpIsNNC7ce9Gyaj+Tki+gVw==", - "requires": { - "interface-store": "^2.0.1", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - } - }, - "interface-store": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", - "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ip-address": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz", - "integrity": "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==", - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - } - }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "ipfs": { - "version": "0.61.0", - "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.61.0.tgz", - "integrity": "sha512-BNr1uR4TVbTEA2k0sdIKKikmEZ9SqW+qPyBmXKykgQ7aCS6gy6XcuheINd+7O2lqwtVMAR9dnCv0hQbm4FIZxQ==", - "requires": { - "debug": "^4.1.1", - "ipfs-cli": "^0.11.0", - "ipfs-core": "^0.13.0", - "semver": "^7.3.2", - "update-notifier": "^5.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "ipfs-bitswap": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-9.0.0.tgz", - "integrity": "sha512-NtqLTr5+a0moZ+Hw9Px9Z+pXHR7Lt/48oQaphA0n2POFOb3//sViJR/7pe/IFHqFkgpL+iygYsE/uIhNateQ4g==", - "requires": { - "@vascosantos/moving-average": "^1.1.0", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "blockstore-core": "^1.0.2", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "interface-blockstore": "^2.0.2", - "it-length-prefixed": "^5.0.2", - "it-pipe": "^1.1.0", - "just-debounce-it": "^1.1.0", - "libp2p-interfaces": "^2.0.1", - "multiaddr": "^10.0.0", - "multiformats": "^9.0.4", - "native-abort-controller": "^1.0.3", - "protobufjs": "^6.10.2", - "readable-stream": "^3.6.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0", - "varint-decoder": "^1.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-cli": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.11.0.tgz", - "integrity": "sha512-hvQFRfyuZP0JelNgoQIutQBp8szHY8OkDrCRyvPWI68NARSidwlKfxgtsdI0rMAn/q3anR8yKl+JEvDaWbRxoA==", - "requires": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "byteman": "^1.3.5", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "execa": "^5.0.0", - "get-folder-size": "^2.0.1", - "ipfs-core": "^0.13.0", - "ipfs-core-types": "^0.9.0", - "ipfs-core-utils": "^0.13.0", - "ipfs-daemon": "^0.11.0", - "ipfs-http-client": "^55.0.0", - "ipfs-repo": "^13.0.6", - "ipfs-utils": "^9.0.2", - "it-all": "^1.0.4", - "it-concat": "^2.0.0", - "it-first": "^1.0.4", - "it-glob": "^1.0.0", - "it-map": "^1.0.5", - "it-merge": "^1.0.3", - "it-pipe": "^1.1.0", - "it-split": "^1.0.0", - "it-tar": "^4.0.0", - "jsondiffpatch": "^0.4.1", - "libp2p-crypto": "^0.21.0", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.4.13", - "parse-duration": "^1.0.0", - "pretty-bytes": "^5.4.1", - "progress": "^2.0.3", - "stream-to-it": "^0.2.2", - "uint8arrays": "^3.0.0", - "yargs": "^16.0.3" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.13.0.tgz", - "integrity": "sha512-25spsvgiRYle1QCC5Fzw4or/Rt1hAy7oZapL+mxXbweYL7JCX5AVYQZ8ypZbME0NQq8M6NDZ+IISwmr/wmAetQ==", - "requires": { - "@chainsafe/libp2p-noise": "^5.0.0", - "@ipld/car": "^3.1.0", - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "@multiformats/murmur3": "^1.0.1", - "any-signal": "^2.1.2", - "array-shuffle": "^2.0.0", - "blockstore-core": "^1.0.2", - "blockstore-datastore-adapter": "^2.0.2", - "datastore-core": "^6.0.7", - "datastore-pubsub": "^1.0.0", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^3.0.1", - "hamt-sharding": "^2.0.0", - "hashlru": "^2.3.0", - "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.0.2", - "ipfs-bitswap": "^9.0.0", - "ipfs-core-config": "^0.2.0", - "ipfs-core-types": "^0.9.0", - "ipfs-core-utils": "^0.13.0", - "ipfs-http-client": "^55.0.0", - "ipfs-repo": "^13.0.6", - "ipfs-unixfs": "^6.0.3", - "ipfs-unixfs-exporter": "^7.0.3", - "ipfs-unixfs-importer": "^9.0.3", - "ipfs-utils": "^9.0.2", - "ipns": "^0.16.0", - "is-domain-name": "^1.0.1", - "is-ipfs": "^6.0.1", - "it-all": "^1.0.4", - "it-drain": "^1.0.3", - "it-filter": "^1.0.2", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-merge": "^1.0.2", - "it-parallel": "^2.0.1", - "it-peekable": "^1.0.2", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "it-tar": "^4.0.0", - "it-to-buffer": "^2.0.0", - "just-safe-set": "^2.2.1", - "libp2p": "^0.35.4", - "libp2p-bootstrap": "^0.14.0", - "libp2p-crypto": "^0.21.0", - "libp2p-delegated-content-routing": "^0.11.1", - "libp2p-delegated-peer-routing": "^0.11.0", - "libp2p-record": "^0.10.3", - "mafmt": "^10.0.0", - "merge-options": "^3.0.4", - "mortice": "^2.0.0", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.4.13", - "native-abort-controller": "^1.0.3", - "pako": "^1.0.2", - "parse-duration": "^1.0.0", - "peer-id": "^0.16.0", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-core-config": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ipfs-core-config/-/ipfs-core-config-0.2.0.tgz", - "integrity": "sha512-vfVfubpwGq71teJ135Tv1IZuhDxypsv1ETOFTGYzEqH3VzpRaYoAil3UIJHTg0LV4gs3QOTfZKFfyNhY642FNw==", - "requires": { - "@chainsafe/libp2p-noise": "^5.0.0", - "blockstore-datastore-adapter": "^2.0.2", - "datastore-core": "^6.0.7", - "datastore-fs": "^6.0.1", - "datastore-level": "^7.0.1", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "hashlru": "^2.3.0", - "ipfs-repo": "^13.0.6", - "ipfs-utils": "^9.0.2", - "ipns": "^0.16.0", - "is-ipfs": "^6.0.1", - "it-all": "^1.0.4", - "it-drain": "^1.0.3", - "libp2p-floodsub": "^0.28.0", - "libp2p-gossipsub": "^0.12.0", - "libp2p-kad-dht": "^0.27.4", - "libp2p-mdns": "^0.18.0", - "libp2p-mplex": "^0.10.2", - "libp2p-tcp": "^0.17.1", - "libp2p-webrtc-star": "^0.25.0", - "libp2p-websockets": "^0.16.2", - "p-queue": "^6.6.1", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-core-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz", - "integrity": "sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg==", - "requires": { - "interface-datastore": "^6.0.2", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.13" - } - }, - "ipfs-core-utils": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz", - "integrity": "sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw==", - "requires": { - "any-signal": "^2.1.2", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.9.0", - "ipfs-unixfs": "^6.0.3", - "ipfs-utils": "^9.0.2", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.2", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.4.13", - "nanoid": "^3.1.23", - "parse-duration": "^1.0.0", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-daemon": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.11.0.tgz", - "integrity": "sha512-WqrDSGfodBpDMTPGJz6xTYFNuADxKfp2jc37f3jZJK6gZSi9JeKK9eI6BwbTwWj9MtrnmB+eaja7JjqoGYkeDg==", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.5", - "debug": "^4.1.1", - "electron-webrtc": "^0.3.0", - "ipfs-core": "^0.13.0", - "ipfs-core-types": "^0.9.0", - "ipfs-grpc-server": "^0.8.0", - "ipfs-http-gateway": "^0.8.0", - "ipfs-http-server": "^0.10.0", - "ipfs-utils": "^9.0.2", - "just-safe-set": "^2.2.1", - "libp2p": "^0.35.4", - "libp2p-webrtc-star": "^0.25.0", - "prom-client": "^14.0.1", - "wrtc": "^0.4.6" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "prom-client": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz", - "integrity": "sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ==", - "optional": true, - "requires": { - "tdigest": "^0.1.1" - } - } - } - }, - "ipfs-grpc-protocol": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.5.5.tgz", - "integrity": "sha512-zoJ+xwcYwzJ03GWJdz3e2k1NqJMfI9+M/VyPImhqPowVmTZ0+f9JGR+M8MetJAHMeQILLCTXmIMsiFzAFObZJg==" - }, - "ipfs-grpc-server": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.8.2.tgz", - "integrity": "sha512-rW7FV7PjpkmOTkPRpHoHrZ4/85MtoSLLaWmaEbJm7KEwqbvnYcHHkMfcAvhbWYP1sz0XJCzttfeRWV8KsSOi+w==", - "requires": { - "@grpc/grpc-js": "^1.1.8", - "change-case": "^4.1.1", - "coercer": "^1.1.2", - "debug": "^4.1.1", - "ipfs-core-types": "^0.10.1", - "ipfs-grpc-protocol": "^0.5.5", - "it-first": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.2", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "multiaddr": "^10.0.0", - "nanoid": "^3.1.23", - "protobufjs": "^6.10.2", - "ws": "^7.3.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ipfs-core-types": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz", - "integrity": "sha512-s5+kXXcjkIdWPHblrE0TyiKxROQdL7zfkVI7FpEEwv5rtHCjpI0I4vKSzziZLLzLXf3a2F1qtscOnlaT0ruWBw==", - "requires": { - "interface-datastore": "^6.0.2", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-http-client": { - "version": "55.0.0", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz", - "integrity": "sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ==", - "requires": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.9.0", - "ipfs-core-utils": "^0.13.0", - "ipfs-utils": "^9.0.2", - "it-first": "^1.0.6", - "it-last": "^1.0.4", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.13", - "native-abort-controller": "^1.0.3", - "parse-duration": "^1.0.0", - "stream-to-it": "^0.2.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "it-to-stream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", - "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", - "requires": { - "buffer": "^5.6.0", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-http-gateway": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.8.0.tgz", - "integrity": "sha512-vL8Yt4hSPGTrY0jUQYHFkRs/VGqsvdgdeZkCr+ffqkCiEud78LayVgtD1UlT+QA6luowjFXQ2dFqpozOwnlr2w==", - "requires": { - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/hapi": "^20.0.0", - "debug": "^4.1.1", - "hapi-pino": "^8.3.0", - "ipfs-core-types": "^0.9.0", - "ipfs-http-response": "^1.0.6", - "is-ipfs": "^6.0.1", - "it-last": "^1.0.4", - "it-to-stream": "^1.0.0", - "joi": "^17.2.1", - "multiformats": "^9.4.13", - "uint8arrays": "^3.0.0", - "uri-to-multiaddr": "^6.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-http-response": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-1.0.6.tgz", - "integrity": "sha512-aMC+kO06ue7Rv8bPdX7te7k4Ss6qLiWSp8ffyVe4zA90XKZV3zo0FOI6UmjgCG5qZ1H0P1zXYq94JCkczagO8A==", - "requires": { - "debug": "^4.3.1", - "ejs": "^3.1.6", - "file-type": "^16.0.0", - "filesize": "^8.0.0", - "it-buffer": "^0.1.1", - "it-concat": "^2.0.0", - "it-reader": "^3.0.0", - "it-to-stream": "^1.0.0", - "mime-types": "^2.1.30", - "p-try-each": "^1.0.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-http-server": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.10.0.tgz", - "integrity": "sha512-zb6pCTk0mHtn1nOPqJRe7aDgPzU9T9+U0eCotw0Nc2Gw3iJoF7AvFboPIpmGeTv4JDMhgYzNIAiiXIo69+r8Sg==", - "requires": { - "@hapi/boom": "^9.1.0", - "@hapi/content": "^5.0.2", - "@hapi/hapi": "^20.0.0", - "@ipld/dag-pb": "^2.1.3", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "debug": "^4.1.1", - "dlv": "^1.1.3", - "err-code": "^3.0.1", - "hapi-pino": "^8.3.0", - "ipfs-core-types": "^0.9.0", - "ipfs-core-utils": "^0.13.0", - "ipfs-http-gateway": "^0.8.0", - "ipfs-unixfs": "^6.0.3", - "it-all": "^1.0.4", - "it-drain": "^1.0.3", - "it-filter": "^1.0.2", - "it-first": "^1.0.4", - "it-last": "^1.0.4", - "it-map": "^1.0.4", - "it-merge": "^1.0.2", - "it-multipart": "^2.0.0", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "it-reduce": "^1.0.5", - "joi": "^17.2.1", - "just-safe-set": "^2.2.1", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.13", - "native-abort-controller": "^1.0.3", - "parse-duration": "^1.0.0", - "prom-client": "^14.0.1", - "stream-to-it": "^0.2.2", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0", - "uri-to-multiaddr": "^6.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "it-to-stream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", - "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", - "requires": { - "buffer": "^5.6.0", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "prom-client": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz", - "integrity": "sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ==", - "optional": true, - "requires": { - "tdigest": "^0.1.1" - } - } - } - }, - "ipfs-repo": { - "version": "13.0.7", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-13.0.7.tgz", - "integrity": "sha512-0z3iApJMew2XM8ZeAPDUnEOII10s+LNThd/jmiLvkRPcMVAkzsyRXpWnRQ2hPuDGxw91QCcQHG+GS4xW2eVCdQ==", - "requires": { - "@ipld/dag-pb": "^2.1.0", - "bytes": "^3.1.0", - "cborg": "^1.3.4", - "datastore-core": "^6.0.7", - "debug": "^4.1.0", - "err-code": "^3.0.1", - "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.0.2", - "ipfs-repo-migrations": "^11.0.2", - "it-drain": "^1.0.1", - "it-filter": "^1.0.2", - "it-first": "^1.0.2", - "it-map": "^1.0.5", - "it-merge": "^1.0.2", - "it-parallel-batch": "^1.0.9", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.0", - "just-safe-get": "^2.0.0", - "just-safe-set": "^2.1.0", - "merge-options": "^3.0.4", - "mortice": "^2.0.1", - "multiformats": "^9.0.4", - "p-queue": "^6.0.0", - "proper-lockfile": "^4.0.0", - "sort-keys": "^4.2.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-repo-migrations": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-11.0.2.tgz", - "integrity": "sha512-0+O1q3X06jObIKYIEyUDNH1078PrQ7qg4i3Ufv4U0+R4MlF1LOYyQGwW6AK87V94Pta0bHeicYeY3dGpGgzv4g==", - "requires": { - "@ipld/dag-pb": "^2.0.0", - "cborg": "^1.3.1", - "datastore-core": "^6.0.7", - "debug": "^4.1.0", - "fnv1a": "^1.0.1", - "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.0.2", - "it-length": "^1.0.1", - "multiformats": "^9.0.0", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ipfs-unixfs": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.6.tgz", - "integrity": "sha512-gTkjYKXuHnqIf6EFfS+ESaYEl3I3aaQQ0UX8MhpNzreMLEuMnuqpoI/uLLllTZa31WRplKixabbpRTSmTYRNwA==", - "requires": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - } - }, - "ipfs-unixfs-exporter": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-7.0.6.tgz", - "integrity": "sha512-PkKB+hTbHhKLqgj0PqSNQ/n7dKsu/lC29jLK8nUXOX4EM6c+RnedohdCY7khT10/hfC7oADbpFs/QJfuH2DaAg==", - "requires": { - "@ipld/dag-cbor": "^6.0.4", - "@ipld/dag-pb": "^2.0.2", - "@multiformats/murmur3": "^1.0.3", - "err-code": "^3.0.1", - "hamt-sharding": "^2.0.0", - "interface-blockstore": "^1.0.0", - "ipfs-unixfs": "^6.0.6", - "it-last": "^1.0.5", - "multiformats": "^9.4.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "@ipld/dag-cbor": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz", - "integrity": "sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA==", - "requires": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" - } - }, - "interface-blockstore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-1.0.2.tgz", - "integrity": "sha512-e8rHqaBSOsBPpSaB+wwVa9mR5ntU+t1yzXpOFC16cSKCNsV+h6n8SjekPQcdODVBN2h8t45CsOqRAnUfm1guEw==", - "requires": { - "err-code": "^3.0.1", - "interface-store": "^1.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.0.4" - } - }, - "interface-store": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", - "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" - } - } - }, - "ipfs-unixfs-importer": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-9.0.6.tgz", - "integrity": "sha512-FgzODqg4pvToEMZ88mFkHcU0s25CljmnqX2VX7K/VQDckiZIxhIiUTQRqQg/C7Em4uCzVp8YCxKUvl++w6kvNg==", - "requires": { - "@ipld/dag-pb": "^2.0.2", - "@multiformats/murmur3": "^1.0.3", - "bl": "^5.0.0", - "err-code": "^3.0.1", - "hamt-sharding": "^2.0.0", - "interface-blockstore": "^1.0.0", - "ipfs-unixfs": "^6.0.6", - "it-all": "^1.0.5", - "it-batch": "^1.0.8", - "it-first": "^1.0.6", - "it-parallel-batch": "^1.0.9", - "merge-options": "^3.0.4", - "multiformats": "^9.4.2", - "rabin-wasm": "^0.1.4", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "interface-blockstore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-1.0.2.tgz", - "integrity": "sha512-e8rHqaBSOsBPpSaB+wwVa9mR5ntU+t1yzXpOFC16cSKCNsV+h6n8SjekPQcdODVBN2h8t45CsOqRAnUfm1guEw==", - "requires": { - "err-code": "^3.0.1", - "interface-store": "^1.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.0.4" - } - }, - "interface-store": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", - "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" - } - } - }, - "ipfs-utils": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz", - "integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==", - "requires": { - "any-signal": "^3.0.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "^1.0.1", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - }, - "dependencies": { - "any-signal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.0.tgz", - "integrity": "sha512-l1H1GEkGGIXVGfCtvq8N68YI7gHajmfzRdKhmb8sGyAQpLCblirLa8eB09j4uKaiwe7vodAChocUf7AT3mYq5g==" - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "iso-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", - "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" - }, - "node-fetch": { - "version": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" - } - } - }, - "ipns": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/ipns/-/ipns-0.16.0.tgz", - "integrity": "sha512-fBYkRjN3/fc6IQujUF4WBEyOXegK715w+wx9IErV6H2B5JXsMnHOBceUKn3L90dj+wJfHs6T+hM/OZiTT6mQCw==", - "requires": { - "cborg": "^1.3.3", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "interface-datastore": "^6.0.2", - "libp2p-crypto": "^0.21.0", - "long": "^4.0.0", - "multiformats": "^9.4.5", - "peer-id": "^0.16.0", - "protobufjs": "^6.10.2", - "timestamp-nano": "^1.0.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "optional": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "devOptional": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-domain-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz", - "integrity": "sha1-9uszsUpJdUHcpYM1E31EZuDCDaE=" - }, - "is-electron": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.1.tgz", - "integrity": "sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw==" - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "requires": { - "ip-regex": "^4.0.0" - } - }, - "is-ipfs": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-6.0.2.tgz", - "integrity": "sha512-RinUnsggL4hlLoHlZcvs2+92OE46Uflg/YVU1m5fXhyDBS/zh3bq+i6Aw7IbzJZ9oZXJx26TgxpqCuCr+LH/DA==", - "requires": { - "iso-url": "^1.1.3", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "multiformats": "^9.0.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "iso-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", - "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" - } - } - }, - "is-loopback-addr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", - "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - }, - "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-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "optional": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "devOptional": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "iso-constants": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", - "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==" - }, - "iso-random-stream": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz", - "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==", - "requires": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" - } - }, - "iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" - }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "it-all": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" - }, - "it-batch": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz", - "integrity": "sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA==" - }, - "it-buffer": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", - "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3" - }, - "dependencies": { - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "it-concat": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-1.0.3.tgz", - "integrity": "sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA==", - "requires": { - "bl": "^4.0.0" - } - }, - "it-drain": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.4.tgz", - "integrity": "sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==" - }, - "it-filter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.2.tgz", - "integrity": "sha512-rxFUyPCrhk7WrNxD8msU10iEPhQmROoqwuyWmQUYY1PtopwUGBYyra9EYG2nRZADYeuT83cohKWmKCWPzpeyiw==" - }, - "it-first": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.6.tgz", - "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" - }, - "it-glob": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.11.tgz", - "integrity": "sha512-p02iVYsvOPU7cW4sV9BC62Kz6Mz2aUTJz/cKWDeFqc05kzB3WgSq8OobZabVA/K4boSm6q+s0xOZ8xiArLSoXQ==", - "requires": { - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4" - } - }, - "it-goodbye": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-goodbye/-/it-goodbye-2.0.2.tgz", - "integrity": "sha512-k56lqArpxkIU0yyhnPhvnyOBpzRQn+4VEyd+dUBWhN5kvCgPBeC0XMuHiA71iU98sDpCrJrT/X+81ajT0AOQtQ==", - "requires": { - "buffer": "^5.6.0" - } - }, - "it-handshake": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-1.0.2.tgz", - "integrity": "sha512-uutOim5xF1eyDQD3u8qd3TxbWKwxqGMlbvacZsRsPdjO1BD9lnPTVci0jSMGsvMOu+5Y3W/QQ4hPQb87qPmPVQ==", - "requires": { - "it-pushable": "^1.4.0", - "it-reader": "^2.0.0", - "p-defer": "^3.0.0" - } - }, - "it-last": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.5.tgz", - "integrity": "sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q==" - }, - "it-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.3.tgz", - "integrity": "sha512-iZduLNprLW2OJCa1LtFvogh4DVhInt2jbqgvCgWQIX6v1z3IJpKvfkDutslKIgztEuhqm3QRLn16dhspVsaayw==" - }, - "it-length-prefixed": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.1.0.tgz", - "integrity": "sha512-E5GwT6qfZEwh3/XThyYwgjKJ4/hxvTC9kdbj3gxXDeUDKtC7+K2T647sPeX7xDEWqunsnoQyvOrjoHPegaT3uw==", - "requires": { - "@types/bl": "^2.1.0", - "bl": "^4.0.2", - "buffer": "^5.5.0", - "varint": "^5.0.0" - }, - "dependencies": { - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - } - } - }, - "it-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", - "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" - }, - "it-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.0.tgz", - "integrity": "sha512-bs40LMjG/9JMOcJ7pgyGLoOeWBpw28ZoMmZIk/1NCa5SUxd4elXCuadAr2qSjPiHz2GxrqoWGFAP7SePGddatw==", - "requires": { - "it-pushable": "^1.4.0" - } - }, - "it-multipart": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-multipart/-/it-multipart-1.0.9.tgz", - "integrity": "sha512-EGavbE/ohpP3DESwmjRSz6U3iBtgj2yVgCvqF3EkFO93WxndDg0vDnA2zeSbgyglIINXE93Kvk5Vl8ub6es5Jw==", - "requires": { - "buffer": "^6.0.3", - "buffer-indexof": "^1.1.1", - "parse-headers": "^2.0.2" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "it-pair": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", - "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", - "requires": { - "get-iterator": "^1.0.2" - } - }, - "it-parallel-batch": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.9.tgz", - "integrity": "sha512-lfCxXsHoEtgyWj5HLrEQXlZF0p3c0hfYeVJAbxQIHIzHLq4lkYplUIe3UGxYl4n1Sjpcs6YL/87352399aVeIA==", - "requires": { - "it-batch": "^1.0.8" - } - }, - "it-pb-rpc": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.11.tgz", - "integrity": "sha512-1Yvae7LNHNM/WzxWT7OyHqwpA7DZoGos22JioMZ5H6i9iExQf71NHE0phHKEfkJdWLo7SRqPLLbqs2zaeKCwPA==", - "requires": { - "is-buffer": "^2.0.5", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "it-handshake": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", - "requires": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "requires": { - "bl": "^5.0.0" - } - } - } - }, - "it-concat": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", - "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", - "requires": { - "bl": "^5.0.0" - } - }, - "it-drain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", - "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" - }, - "it-filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", - "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" - }, - "it-first": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", - "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" - }, - "it-glob": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", - "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", - "requires": { - "@types/minimatch": "^3.0.4", - "minimatch": "^3.0.4" - } - }, - "it-handshake": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", - "requires": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "it-last": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", - "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" - }, - "it-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.4.tgz", - "integrity": "sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA==" - }, - "it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "it-map": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", - "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" - }, - "it-merge": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.4.tgz", - "integrity": "sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw==", - "requires": { - "it-pushable": "^1.4.0" - } - }, - "it-multipart": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-multipart/-/it-multipart-2.0.2.tgz", - "integrity": "sha512-/naGjA8GatqYshP9V0aN4AufMPEa0My2iYzLaprQHOZiuXBynOYTVjRHFCzcMg8K8JHWb88PqO8nqeJxCm5CJw==", - "requires": { - "formidable": "^1.2.2", - "it-pushable": "^1.4.2" - } - }, - "it-pair": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", - "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", - "requires": { - "get-iterator": "^1.0.2" - } - }, - "it-parallel": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-2.0.1.tgz", - "integrity": "sha512-VnHs9UJXSr8jmPnquS76qhLU+tE3WvLJqBUKMjAD2/Z1O5JsjpHMqq8yvVByyuwuFnh1OG9faJVGc5c9t+T6Kg==", - "requires": { - "p-defer": "^3.0.0" - } - }, - "it-parallel-batch": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.10.tgz", - "integrity": "sha512-3+4gW15xdf/BOx9zij0QVnB1bDGSLOTABlaVm7ebHH1S9gDUgd5aLNb0WsFXPTfKe104iC6lxdzfbMGh1B07rg==", - "requires": { - "it-batch": "^1.0.9" - } - }, - "it-pb-rpc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.2.0.tgz", - "integrity": "sha512-Rojodsa6yxSTZDqVVF9HXKsISoHtlLNOL0P6b/7oCswiscbjCpt1IB78BxRDHpFL3tg8jFPMNDTP3v6ZjrMf9w==", - "requires": { - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.3" - } - }, - "it-peekable": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", - "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" - }, - "it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "requires": { - "fast-fifo": "^1.0.0" - } - }, - "it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "requires": { - "bl": "^5.0.0" - } - }, - "it-reduce": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-reduce/-/it-reduce-1.0.6.tgz", - "integrity": "sha512-YyAhA52Xv+05PUaz0FwjanG7tqxD0CrP7dgGgxN42YDG6oswztbH8K6Ca8+AjH8VxSI0lvq4pD9i17MQqJUFuA==" - }, - "it-sort": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-1.0.1.tgz", - "integrity": "sha512-c+C48cP7XMMebB9irLrJs2EmpLILId8NYSojqAqN8etE8ienx0azBgaKvZHYH1DkerqIul0Fl2FqISu2BZgTEQ==", - "requires": { - "it-all": "^1.0.6" - } - }, - "it-split": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-split/-/it-split-1.0.2.tgz", - "integrity": "sha512-CTr10HhgK5LYgGCrPVorfliiW4bBl10K7earFLII4yoxWsKaAf8swCYgXXEe/W2Fou/YMOZGyTk6cmVKGyienw==", - "requires": { - "bl": "^5.0.0" - } - }, - "it-take": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", - "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" - }, - "it-tar": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-4.0.0.tgz", - "integrity": "sha512-t7NJKNVs0p3aJT2cyycs8FkXkvLTKOVtcEuYEdZDrfxHGEIW8gHJt2zbDOILt5erywEPRRws2oz0FqH3LiDGtA==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "iso-constants": "^0.1.2", - "it-concat": "^2.0.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "it-to-buffer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-2.0.2.tgz", - "integrity": "sha512-Frbv1sphcNFvD807Qw5fXpK4L7iuqShYSI7k30PfpJiy5IxdqMyaulWpLyl1hIJVVpkG+1UrJafFCnatzmZf5g==", - "requires": { - "uint8arrays": "^3.0.0" - } - }, - "it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "requires": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "it-ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz", - "integrity": "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==", - "requires": { - "buffer": "^6.0.3", - "event-iterator": "^2.0.0", - "iso-url": "^1.1.2", - "ws": "^7.3.1" - }, - "dependencies": { - "@jest/console": { - "version": "27.2.4", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.4.tgz", - "integrity": "sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==", - "dev": true, - "requires": { - "@jest/types": "^27.2.4", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.4", - "jest-util": "^27.2.4", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.2.4", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.4.tgz", - "integrity": "sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==", - "dev": true, - "requires": { - "@jest/console": "^27.2.4", - "@jest/types": "^27.2.4", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.2.4", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", - "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.4", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.4", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.2.4", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.4.tgz", - "integrity": "sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==", - "dev": true, - "requires": { - "@jest/types": "^27.2.4", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "iso-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", - "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" - } - } - }, - "iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz", - "integrity": "sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg==", - "dev": true, - "requires": { - "@jest/core": "^27.4.7", - "import-local": "^3.0.2", - "jest-cli": "^27.4.7" - }, - "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-cli": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.7.tgz", - "integrity": "sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw==", - "dev": true, - "requires": { - "@jest/core": "^27.4.7", - "@jest/test-result": "^27.4.6", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.4.7", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-changed-files": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", - "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - } - } - }, - "jest-circus": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.6.tgz", - "integrity": "sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.4.6", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.6", - "jest-matcher-utils": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-runtime": "^27.4.6", - "jest-snapshot": "^27.4.6", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-config": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.7.tgz", - "integrity": "sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw==", - "dev": true, - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.4.6", - "@jest/types": "^27.4.2", - "babel-jest": "^27.4.6", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.4.6", - "jest-environment-jsdom": "^27.4.6", - "jest-environment-node": "^27.4.6", - "jest-get-type": "^27.4.0", - "jest-jasmine2": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.6", - "jest-runner": "^27.4.6", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-diff": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz", - "integrity": "sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==" - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "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" - } - } - } - }, - "jest-docblock": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", - "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.6.tgz", - "integrity": "sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.6" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz", - "integrity": "sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.6", - "@jest/fake-timers": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2", - "jsdom": "^16.6.0" - }, - "dependencies": { - "@jest/fake-timers": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz", - "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz", - "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-environment-node": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.6.tgz", - "integrity": "sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.6", - "@jest/fake-timers": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - }, - "dependencies": { - "@jest/fake-timers": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz", - "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz", - "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-jasmine2": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz", - "integrity": "sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.6", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.4.6", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.6", - "jest-matcher-utils": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-runtime": "^27.4.6", - "jest-snapshot": "^27.4.6", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.6", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz", - "integrity": "sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA==", - "dev": true, - "requires": { - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-matcher-utils": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz", - "integrity": "sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.4.6", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true - }, - "jest-resolve": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz", - "integrity": "sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz", - "integrity": "sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-snapshot": "^27.4.6" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.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" - } - } - } - }, - "jest-runner": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.6.tgz", - "integrity": "sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/environment": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.4.0", - "jest-environment-jsdom": "^27.4.6", - "jest-environment-node": "^27.4.6", - "jest-haste-map": "^27.4.6", - "jest-leak-detector": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-resolve": "^27.4.6", - "jest-runtime": "^27.4.6", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-runtime": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz", - "integrity": "sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.6", - "@jest/fake-timers": "^27.4.6", - "@jest/globals": "^27.4.6", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.6", - "jest-snapshot": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/fake-timers": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz", - "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.6", - "jest-mock": "^27.4.6", - "jest-util": "^27.4.2" - } - }, - "@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz", - "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-snapshot": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.6.tgz", - "integrity": "sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.6", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.6", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.6", - "jest-matcher-utils": "^27.4.6", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.6", - "semver": "^7.3.2" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-watcher": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.6.tgz", - "integrity": "sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw==", - "dev": true, - "requires": { - "@jest/test-result": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.4.2", - "string-length": "^4.0.1" - }, - "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" - }, - "joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "joycon": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", - "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "requires": { - "delimit-stream": "0.1.0" - } - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsondiffpatch": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", - "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", - "requires": { - "chalk": "^2.3.0", - "diff-match-patch": "^1.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - } - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonschema": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", - "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==" - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "just-debounce-it": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.5.0.tgz", - "integrity": "sha512-itSWJS5d2DTSCizVJ2Z0Djx/dGmUGfZe7WNfUfVP23+htGcIcPHbEjL4eB8ljojTs/+oYwLexImRRCP0A2WXjA==" - }, - "just-safe-get": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-2.1.2.tgz", - "integrity": "sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ==" - }, - "just-safe-set": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz", - "integrity": "sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w==" - }, - "k-bucket": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } - }, - "level": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-7.0.1.tgz", - "integrity": "sha512-w3E64+ALx2eZf8RV5JL4kIcE0BFAvQscRYd1yU4YVqZN9RGTQxXSvH202xvK15yZwFFxRXe60f13LJjcJ//I4Q==", - "requires": { - "level-js": "^6.1.0", - "level-packager": "^6.0.1", - "leveldown": "^6.1.0" - } - }, - "level-codec": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-10.0.0.tgz", - "integrity": "sha512-QW3VteVNAp6c/LuV6nDjg7XDXx9XHK4abmQarxZmlRSDyXYk20UdaJTSX6yzVvQ4i0JyWSB7jert0DsyD/kk6g==", - "requires": { - "buffer": "^6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "requires": { - "catering": "^2.1.0" - } - }, - "level-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-3.0.1.tgz", - "integrity": "sha512-tqTL2DxzPDzpwl0iV5+rBCv65HWbHp6eutluHNcVIftKZlQN//b6GEnZDM2CvGZvzGYMwyPtYppYnydBQd2SMQ==" - }, - "level-iterator-stream": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-5.0.0.tgz", - "integrity": "sha512-wnb1+o+CVFUDdiSMR/ZymE2prPs3cjVLlXuDeSq9Zb8o032XrabGEXcTCsBxprAtseO3qvFeGzh6406z9sOTRA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "level-js": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-6.1.0.tgz", - "integrity": "sha512-i7mPtkZm68aewfv0FnIUWvFUFfoyzIvVKnUmuQGrelEkP72vSPTaA1SGneWWoCV5KZJG4wlzbJLp1WxVNGuc6A==", - "requires": { - "abstract-leveldown": "^7.2.0", - "buffer": "^6.0.3", - "inherits": "^2.0.3", - "ltgt": "^2.1.2", - "run-parallel-limit": "^1.1.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "level-packager": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-6.0.1.tgz", - "integrity": "sha512-8Ezr0XM6hmAwqX9uu8IGzGNkWz/9doyPA8Oo9/D7qcMI6meJC+XhIbNYHukJhIn8OGdlzQs/JPcL9B8lA2F6EQ==", - "requires": { - "encoding-down": "^7.1.0", - "levelup": "^5.1.1" - } - }, - "level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==" - }, - "leveldown": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", - "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", - "requires": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" - } - }, - "levelup": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-5.1.1.tgz", - "integrity": "sha512-0mFCcHcEebOwsQuk00WJwjLI6oCjbBuEYdh/RaRqhjnyVlzqf41T1NnDtCedumZ56qyIh8euLFDqV1KfzTAVhg==", - "requires": { - "catering": "^2.0.0", - "deferred-leveldown": "^7.0.0", - "level-errors": "^3.0.1", - "level-iterator-stream": "^5.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - } - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "libp2p": { - "version": "0.35.8", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.35.8.tgz", - "integrity": "sha512-1Vkm7+v6bXwjlBeuiKNLtRxPIDBWFe+dt17tye0XF1BeMOY8UFUN0QeEAYrOBs6Ses+sO4oZ6OwPtcNr3zrkMw==", - "requires": { - "@vascosantos/moving-average": "^1.1.0", - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "aggregate-error": "^3.1.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.1", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.0", - "es6-promisify": "^7.0.0", - "events": "^3.3.0", - "hashlru": "^2.3.0", - "interface-datastore": "^6.0.2", - "it-all": "^1.0.4", - "it-buffer": "^0.1.2", - "it-drain": "^1.0.3", - "it-filter": "^1.0.1", - "it-first": "^1.0.4", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2", - "it-map": "^1.0.4", - "it-merge": "^1.0.0", - "it-pipe": "^1.1.0", - "it-take": "^1.0.0", - "libp2p-crypto": "^0.21.0", - "libp2p-interfaces": "^2.0.1", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.0.0", - "multistream-select": "^2.0.0", - "mutable-proxy": "^1.0.0", - "nat-api": "^0.3.1", - "node-forge": "^0.10.0", - "p-any": "^3.0.0", - "p-fifo": "^1.0.0", - "p-retry": "^4.4.0", - "p-settle": "^4.1.1", - "peer-id": "^0.16.0", - "private-ip": "^2.1.0", - "protobufjs": "^6.10.2", - "retimer": "^3.0.0", - "sanitize-filename": "^1.6.3", - "set-delayed-interval": "^1.0.0", - "streaming-iterables": "^6.0.0", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0", - "wherearewe": "^1.0.0", - "xsalsa20": "^1.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-bootstrap": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.14.0.tgz", - "integrity": "sha512-j3slZo5nOdA8wVlav8dRZeAXutZ7psz/f10DLoIEX/EFif7uU5oZfIYvjbVGo3ZDl+VQLo2tR0m1lV0westQ3g==", - "requires": { - "debug": "^4.3.1", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "peer-id": "^0.16.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-crypto": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz", - "integrity": "sha512-EXFrhSpiHtJ+/L8xXDvQNK5VjUMG51u878jzZcaT5XhuN/zFg6PWJFnl/qB2Y2j7eMWnvCRP7Kp+ua2H36cG4g==", - "requires": { - "@noble/ed25519": "^1.5.1", - "@noble/secp256k1": "^1.3.0", - "err-code": "^3.0.1", - "iso-random-stream": "^2.0.0", - "multiformats": "^9.4.5", - "node-forge": "^1.2.1", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==" - } - } - }, - "libp2p-delegated-content-routing": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.11.2.tgz", - "integrity": "sha512-O7bqOPGlvePsP4ld6AU4uDuHjTQ9lVfsTFkYqhwPVUw1rxR0UiGiU5eyq6ADlgrY3lHtz3Sc3yNVFN1FNDn1iA==", - "requires": { - "debug": "^4.1.1", - "it-drain": "^1.0.3", - "multiaddr": "^10.0.0", - "p-defer": "^3.0.0", - "p-queue": "^6.2.1", - "peer-id": "^0.16.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-delegated-peer-routing": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.11.1.tgz", - "integrity": "sha512-NwdRS0a6plfzVcdSqHV4hQnv872zjt7dUtsfRXmPZkXoaPjWck3Y0EDFxDYHlCMPH9w7PvrgttBlO1EwWqFGFw==", - "requires": { - "debug": "^4.3.1", - "multiformats": "^9.0.2", - "p-defer": "^3.0.0", - "p-queue": "^6.3.0", - "peer-id": "^0.16.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-floodsub": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.28.0.tgz", - "integrity": "sha512-I9qR7j79HbRgmIq/UkLauzAIcPbM/uJCk2bJNKobgyJMs7nt8KSwQS2I5JEf4Jc9j9toCh5MKQ6/ynyLoSjIig==", - "requires": { - "debug": "^4.2.0", - "libp2p-interfaces": "^2.0.1", - "time-cache": "^0.3.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-gossipsub": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.12.3.tgz", - "integrity": "sha512-Oyjt1jGoQm4t/L6t+NUToQPP5kwTailzFrzTnNTVSfKi8WCUty2ua2ttnq3ZEG4rUxlGDgqmOQoI6bfmjdvRNw==", - "requires": { - "@types/debug": "^4.1.5", - "debug": "^4.3.1", - "denque": "^1.5.0", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "libp2p-interfaces": "^2.0.1", - "peer-id": "^0.16.0", - "protobufjs": "^6.11.2", - "time-cache": "^0.3.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-interfaces": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-2.0.9.tgz", - "integrity": "sha512-KYPYBy7dprcc9cy9PdoJyljs//Gb7A1448jNl/egfxIETKZl4uvYK66l4lzLtKB3AblIxATB8BFWEY/ph86QIA==", - "requires": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-length-prefixed": "^5.0.2", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "libp2p-crypto": "^0.21.0", - "multiaddr": "^10.0.0", - "multiformats": "^9.1.2", - "p-queue": "^6.6.2", - "peer-id": "^0.16.0", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-kad-dht": { - "version": "0.27.6", - "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.27.6.tgz", - "integrity": "sha512-mynm9yQyz3UnuGCCj54iT6irHu7Dt0Yv1vvJfdtXolU9U7uNdoNxVxBftb8NC3O9aj9Almt3QYmhCR8lOuww8Q==", - "requires": { - "any-signal": "^2.1.2", - "datastore-core": "^6.0.7", - "debug": "^4.3.1", - "err-code": "^3.0.0", - "hashlru": "^2.3.0", - "interface-datastore": "^6.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-first": "^1.0.4", - "it-length": "^1.0.3", - "it-length-prefixed": "^5.0.2", - "it-map": "^1.0.5", - "it-merge": "^1.0.3", - "it-parallel": "^2.0.1", - "it-pipe": "^1.1.0", - "it-take": "^1.0.2", - "k-bucket": "^5.1.0", - "libp2p-crypto": "^0.21.0", - "libp2p-interfaces": "^2.0.1", - "libp2p-record": "^0.10.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.5", - "native-abort-controller": "^1.0.4", - "p-defer": "^3.0.0", - "p-map": "^4.0.0", - "p-queue": "^6.6.2", - "peer-id": "^0.16.0", - "private-ip": "^2.3.3", - "protobufjs": "^6.10.2", - "streaming-iterables": "^6.0.0", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-mdns": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.18.0.tgz", - "integrity": "sha512-IBCKRuNc5USlli9QF/gOq2loCssE4ZKkVRhUNuAVBRXJ8ueqFEquc5R5C1sWy7AOgbycTgeNcxzSa1kuNb6nbg==", - "requires": { - "debug": "^4.3.1", - "multiaddr": "^10.0.0", - "multicast-dns": "^7.2.0", - "peer-id": "^0.16.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-mplex": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz", - "integrity": "sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg==", - "requires": { - "abortable-iterator": "^3.0.2", - "bl": "^5.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.1", - "varint": "^6.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-record": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.10.6.tgz", - "integrity": "sha512-CbdO2P9DQn/DKll6R/J4nIw6Qt8xbUTfxYgJjpP9oz3izHKkpGQo0mPTe0NyuFTGIQ4OprrxqWqG5v8ZCGBqqw==", - "requires": { - "err-code": "^3.0.1", - "multiformats": "^9.4.5", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" - } - }, - "libp2p-tcp": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.17.2.tgz", - "integrity": "sha512-SAdgDB4Rm0olPbyvanKP5JBaiRwbIOo0Nt++WYe1U2B6akg2uatsDOtulfpnc1gsL1B5vamnOpOzKaDj4kkt8g==", - "requires": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "stream-to-it": "^0.2.2" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-utils": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz", - "integrity": "sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ==", - "requires": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^8.0.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^10.0.0", - "private-ip": "^2.1.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-webrtc-peer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-peer/-/libp2p-webrtc-peer-10.0.1.tgz", - "integrity": "sha512-Qi/YVrSI5sjU+iBvr1iAjGrakIEvzCS8S76v4q43jjlDb6Wj+S4OnFLH/uRlt7eLXcx4vlaI6huMzYrUAoopMg==", - "requires": { - "debug": "^4.0.1", - "err-code": "^2.0.3", - "get-browser-rtc": "^1.0.0", - "queue-microtask": "^1.1.0", - "randombytes": "^2.0.3", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-webrtc-star": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/libp2p-webrtc-star/-/libp2p-webrtc-star-0.25.0.tgz", - "integrity": "sha512-SyXjHDrm+qlKQE5HIddrUCSwkxCIJ30PAH4ZVNNADkC0F5IVQY9EoVJ+/rrzZuDDqccnS15TgxW13vmybX96bQ==", - "requires": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.2.0", - "err-code": "^3.0.1", - "ipfs-utils": "^9.0.1", - "it-pipe": "^1.1.0", - "libp2p-utils": "^0.4.0", - "libp2p-webrtc-peer": "^10.0.1", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "p-defer": "^3.0.0", - "peer-id": "^0.16.0", - "socket.io-client": "^4.1.2", - "stream-to-it": "^0.2.2" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "libp2p-websockets": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.2.tgz", - "integrity": "sha512-QGfo8jX1Ks16yi8C67CCyMW7k9cfCYiQ0lzKVJBud0fV3ymbMO2L8gzU6iXUUZTHILo8ka26zKhwQ4lmUMI+nA==", - "requires": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "ipfs-utils": "^9.0.1", - "it-ws": "^4.0.0", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "p-defer": "^3.0.0", - "p-timeout": "^4.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "optional": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "optional": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lowdb": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", - "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", - "requires": { - "graceful-fs": "^4.1.3", - "is-promise": "^2.1.0", - "lodash": "4", - "pify": "^3.0.0", - "steno": "^0.4.1" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" - }, - "mafmt": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz", - "integrity": "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==", - "requires": { - "multiaddr": "^10.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "optional": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "optional": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "requires": { - "is-plain-obj": "^2.1.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "optional": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" - }, - "node-pre-gyp": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "devOptional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "node-wget-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-wget-js/-/node-wget-js-1.0.1.tgz", - "integrity": "sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw==", - "dev": true, - "requires": { - "request": "^2.88.0" - } - }, - "mri": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", - "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "multiaddr": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", - "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", - "requires": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "multiaddr-to-uri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", - "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", - "requires": { - "multiaddr": "^10.0.0" - } - }, - "multicast-dns": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", - "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "multiformats": { - "version": "9.6.4", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz", - "integrity": "sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg==" - }, - "multistream-select": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz", - "integrity": "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==", - "requires": { - "bl": "^5.0.0", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "it-first": "^1.0.6", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.0", - "it-pipe": "^1.0.1", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==" - }, - "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "nat-api": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/nat-api/-/nat-api-0.3.1.tgz", - "integrity": "sha512-5cyLugEkXnKSKSvVjKjxxPMLDnkwY3boZLbATWwiGJ4T/3UvIpiQmzb2RqtxxEFcVo/7PwsHPGN0MosopONO8Q==", - "requires": { - "async": "^3.2.0", - "debug": "^4.2.0", - "default-gateway": "^6.0.2", - "request": "^2.88.2", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.1.0" - }, - "dependencies": { - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "native-abort-controller": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", - "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", - "requires": {} - }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", - "requires": { - "http-https": "^1.0.0" - } - }, - "observable-webworkers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-1.0.0.tgz", - "integrity": "sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "ndjson": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz", - "integrity": "sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg=", - "optional": true, - "requires": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.0", - "split2": "^2.1.0", - "through2": "^2.0.3" - } - }, - "needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "requires": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" - } - }, - "optional": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz", - "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==", - "optional": true - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "chalk": "~2.1.0", - "command-line-args": "^4.0.2", - "command-line-commands": "^2.0.0", - "command-line-usage": "^4.0.0", - "git-config": "0.0.7", - "handlebars": "^4.1.0", - "inquirer": "^3.0.6", - "mkdirp": "^0.5.1", - "quickly-copy-file": "^1.0.0", - "rimraf": "^2.6.1", - "rsvp": "^4.6.1", - "semver": "^5.1.0", - "toml": "^2.3.0", - "ts-typed-json": "^0.2.2", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - } - }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==" - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "optional": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, - "npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "optional": true, - "requires": { - "asn1.js": "^5.0.1" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pino": { - "version": "6.13.3", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.13.3.tgz", - "integrity": "sha512-tJy6qVgkh9MwNgqX1/oYi3ehfl2Y9H0uHyEEMsBe74KinESIjdMrMQDWpcZPpPicg3VV35d/GLQZmo4QgU2Xkg==", - "requires": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "fastify-warning": "^0.2.0", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - } - }, - "nugget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", - "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", - "optional": true, - "requires": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "optional": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - } - } - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "optional": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "p-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", - "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "p-limit": "^2.2.2", - "p-reflect": "^2.1.0" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "p-try-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/p-try-each/-/p-try-each-1.0.1.tgz", - "integrity": "sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parse-duration": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", - "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "optional": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "optional": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "devOptional": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" - }, - "peer-id": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.16.0.tgz", - "integrity": "sha512-EmL7FurFUduU9m1PS9cfJ5TAuCvxKQ7DKpfx3Yj6IKWyBRtosriFuOag/l3ni/dtPgPLwiA4R9IvpL7hsDLJuQ==", - "requires": { - "class-is": "^1.1.0", - "libp2p-crypto": "^0.21.0", - "multiformats": "^9.4.5", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "optional": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "optional": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "optional": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "optional": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pino": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", - "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", - "requires": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", - "dev": true, - "requires": { - "@hapi/bourne": "^2.0.0", - "args": "^5.0.1", - "chalk": "^4.0.0", - "dateformat": "^4.5.1", - "fast-safe-stringify": "^2.0.7", - "jmespath": "^0.15.0", - "joycon": "^2.2.5", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "rfdc": "^1.3.0", - "split2": "^3.1.1", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "requires": { - "readable-stream": "^3.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "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" - } - } - } - }, - "pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, - "pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" - }, - "private-ip": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.3.3.tgz", - "integrity": "sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw==", - "requires": { - "ip-regex": "^4.3.0", - "ipaddr.js": "^2.0.1", - "is-ip": "^3.1.0", - "netmask": "^2.0.2" - }, - "dependencies": { - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - } - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "devOptional": true - }, - "process-warning": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", - "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", - "optional": true, - "requires": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "optional": true - }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "optional": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "optional": true - }, - "through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", - "optional": true, - "requires": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - } - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "optional": true, - "requires": { - "object-keys": "~0.4.0" - } - } - } - }, - "prom-client": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz", - "integrity": "sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==", - "optional": true, - "requires": { - "tdigest": "^0.1.1" - } - }, - "promise-timeout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/promise-timeout/-/promise-timeout-1.3.0.tgz", - "integrity": "sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg==" - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "requires": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - } - } - }, - "protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "16.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", - "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" - } - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "optional": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "requires": { - "escape-goat": "^2.0.0" - } - }, - "pvtsutils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.1.tgz", - "integrity": "sha512-Q867jEr30lBR2YSFFLZ0/XsEvpweqH6Kj096wmlRAFXrdRGPCNq2iz9B5Tk085EZ+OBZyYAVA5UhPkjSHGrUzQ==", - "requires": { - "tslib": "^2.3.1" - } - }, - "pvutils": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", - "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" - }, - "quickly-copy-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz", - "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=", - "optional": true, - "requires": { - "mkdirp": "~0.5.0" - } - }, - "rabin-wasm": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz", - "integrity": "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==", - "requires": { - "@assemblyscript/loader": "^0.9.4", - "bl": "^5.0.0", - "debug": "^4.3.1", - "minimist": "^1.2.5", - "node-fetch": "^2.6.1", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "react-native-fetch-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", - "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", - "requires": { - "p-defer": "^3.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "optional": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "optional": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "requires": { - "readable-stream": "^3.6.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "requires": { - "ms": "^2.1.1" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "optional": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "dependencies": { - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "optional": true, - "requires": { - "repeating": "^2.0.0" - } - } - } - }, - "reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", - "optional": true - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "^1.2.8" - } - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "optional": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "resolve": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz", - "integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==", - "devOptional": true, - "requires": { - "is-core-module": "^2.8.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "optional": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "retimer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", - "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" - }, - "rfc4648": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz", - "integrity": "sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg==" - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "optional": true - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "optional": true - }, - "run-parallel-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "optional": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "optional": true, - "requires": { - "rx-lite": "*" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "requires": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "sass": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.42.1.tgz", - "integrity": "sha512-/zvGoN8B7dspKc5mC6HlaygyCBRvnyzzgD5khiaCfglWztY99cYoiTUksVx11NlnemrcfH5CEaCpsUKoW0cQqg==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0" - } - }, - "sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "semiver": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", - "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-delayed-interval": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", - "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "sha256": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU=", - "requires": { - "convert-hex": "~0.1.0", - "convert-string": "~0.1.0" - } - }, - "sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "requires": { - "buffer": "6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" - }, - "single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", - "optional": true, - "requires": { - "string-width": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "socket.io-client": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.4.1.tgz", - "integrity": "sha512-N5C/L5fLNha5Ojd7Yeb/puKcPWWcoB/A09fEjjNsg91EDVr5twk/OEyO6VT9dlLSUNY85NpW6KBhVMvaLKQ3vQ==", - "requires": { - "@socket.io/component-emitter": "~3.0.0", - "backo2": "~1.0.2", - "debug": "~4.3.2", - "engine.io-client": "~6.1.1", - "parseuri": "0.0.6", - "socket.io-parser": "~4.1.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "socket.io-client-next": { - "version": "npm:socket.io-client@3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.3.tgz", - "integrity": "sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw==", - "requires": { - "@types/component-emitter": "^1.2.10", - "backo2": "~1.0.2", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-client": "~4.1.0", - "parseuri": "0.0.6", - "socket.io-parser": "~4.0.4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "engine.io-client": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.4.tgz", - "integrity": "sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==", - "requires": { - "base64-arraybuffer": "0.1.4", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.1", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "engine.io-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", - "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", - "requires": { - "base64-arraybuffer": "0.1.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" - } - } - }, - "socket.io-next": { - "version": "npm:socket.io@3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", - "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - }, - "dependencies": { - "@types/node": { - "version": "16.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", - "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==" - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" - } - }, - "engine.io-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", - "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", - "requires": { - "base64-arraybuffer": "0.1.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" - } - } - }, - "socket.io-parser": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.1.1.tgz", - "integrity": "sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA==", - "requires": { - "@socket.io/component-emitter": "~3.0.0", - "debug": "~4.3.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "requires": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", - "requires": { - "is-plain-obj": "^2.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sparse-array": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", - "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "optional": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "optional": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "optional": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "optional": true - }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "optional": true - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { - "through": "2" - } - }, - "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "optional": true, - "requires": { - "through2": "^2.0.2" - } - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "steno": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", - "integrity": "sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs=", - "requires": { - "graceful-fs": "^4.1.3" - } - }, - "stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==" - }, - "stream-to-it": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", - "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", - "requires": { - "get-iterator": "^1.0.2" - } - }, - "streaming-iterables": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz", - "integrity": "sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA==" - }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "optional": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "optional": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "requires": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - } - }, - "style-inject": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", - "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", - "dev": true - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "subscriptions-transport-ws": { - "version": "0.9.19", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", - "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", - "requires": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" - } - }, - "sumchecker": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", - "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", - "optional": true, - "requires": { - "debug": "^2.2.0", - "es6-promise": "^4.0.5" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - } - } - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "devOptional": true, - "requires": { - "has-flag": "^2.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "devOptional": true - }, - "swipl-stdio": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/swipl-stdio/-/swipl-stdio-1.0.4.tgz", - "integrity": "sha512-/6272/LlR0efkqE7Y8ZhjioHR5Vx0qyHWk5nuS9WaPk51dO21nx/sMkHGnd9zYBUN2RYx+dZqHc9UUm1YRRb5Q==", - "requires": { - "debug": "^2.6.4", - "split": "^1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "optional": true, - "requires": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - } - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "tdigest": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", - "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", - "optional": true, - "requires": { - "bintrees": "1.0.1" - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "optional": true, - "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "optional": true, - "requires": { - "typical": "^2.6.0" - } - } - } - }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "optional": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "optional": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "time-cache": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/time-cache/-/time-cache-0.3.0.tgz", - "integrity": "sha1-7Q388P2kXNyV+9YB/agw6/G9XYs=", - "requires": { - "lodash.throttle": "^4.1.1" - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "timeout-abort-controller": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz", - "integrity": "sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA==", - "requires": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.4", - "retimer": "^3.0.0" - } - }, - "timestamp-nano": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.0.tgz", - "integrity": "sha512-NO/1CZigzlCWQiWdIGv8ebXt6Uk77zdLz2NE7KcZRU5Egj2+947lzUpk30xQUQlq5dRY25j7ZulG4RfA2DHYfA==" - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "tiny-each-async": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", - "integrity": "sha1-jru/1tYpXxNwAD+7NxYq/loKUdE=" - }, - "tinydate": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", - "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==" - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "token-types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", - "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", - "requires": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - } - }, - "toml": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", - "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", - "optional": true - }, - "totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "optional": true - }, - "truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "requires": { - "utf8-byte-length": "^1.0.1" - } - }, - "ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "requires": { - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "ts-jest": { - "version": "27.1.3", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz", - "integrity": "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "ts-typed-json": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz", - "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=", - "optional": true, - "requires": { - "rsvp": "^3.5.0" - }, - "dependencies": { - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "optional": true - } - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "optional": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "dev": true - }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "optional": true - }, - "uglify-js": { - "version": "3.14.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz", - "integrity": "sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==", - "optional": true - }, - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unordered-array-remove": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", - "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dev": true, - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.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" - } - } - } - }, - "upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "uri-to-multiaddr": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/uri-to-multiaddr/-/uri-to-multiaddr-6.0.0.tgz", - "integrity": "sha512-vGHLrfvWQwoMv1YiHWU5ZOK2M/TV0qheXIanuW6jAL6VFD1vMK7xqL/zOxc32tKhlJgSt6vTJI4yALS+vFZKEA==", - "requires": { - "is-ip": "^3.1.0", - "multiaddr": "^10.0.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", - "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "optional": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "optional": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "varint-decoder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz", - "integrity": "sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ==", - "requires": { - "varint": "^5.0.0" - }, - "dependencies": { - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - } - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - } - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" - }, - "web3": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.6.0.tgz", - "integrity": "sha512-rWpXnO88MiVX5yTRqMBCVKASxc7QDkXZZUl1D48sKlbX4dt3BAV+nVMVUKCBKiluZ5Bp8pDrVCUdPx/jIYai5Q==", - "requires": { - "web3-bzz": "1.6.0", - "web3-core": "1.6.0", - "web3-eth": "1.6.0", - "web3-eth-personal": "1.6.0", - "web3-net": "1.6.0", - "web3-shh": "1.6.0", - "web3-utils": "1.6.0" - } - }, - "web3-bzz": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.6.0.tgz", - "integrity": "sha512-ugYV6BsinwhIi0CsLWINBz4mqN9wR9vNG0WmyEbdECjxcPyr6vkaWt4qi0zqlUxEnYAwGj4EJXNrbjPILntQTQ==", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.28.tgz", - "integrity": "sha512-cBw8gzxUPYX+/5lugXIPksioBSbE42k0fZ39p+4yRzfYjN6++eq9kAPdlY9qm+MXyfbk9EmvCYAYRn380sF46w==" - } - } - }, - "web3-core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.6.0.tgz", - "integrity": "sha512-o0WsLrJ2yD+HAAc29lGMWJef/MutTyuzpJC0UzLJtIAQJqtpDalzWINEu4j8XYXGk34N/V6vudtzRPo23QEE6g==", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.6.0", - "web3-core-method": "1.6.0", - "web3-core-requestmanager": "1.6.0", - "web3-utils": "1.6.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.28.tgz", - "integrity": "sha512-cBw8gzxUPYX+/5lugXIPksioBSbE42k0fZ39p+4yRzfYjN6++eq9kAPdlY9qm+MXyfbk9EmvCYAYRn380sF46w==" - } - } - }, - "web3-core-helpers": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.6.0.tgz", - "integrity": "sha512-H/IAH/0mrgvad/oxVKiAMC7qDzMrPPe/nRKmJOoIsupRg9/frvL62kZZiHhqVD1HMyyswbQFC69QRl7JqWzvxg==", - "requires": { - "web3-eth-iban": "1.6.0", - "web3-utils": "1.6.0" - } - }, - "web3-core-method": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.6.0.tgz", - "integrity": "sha512-cHekyEil4mtcCOk6Q1Zh4y+2o5pTwsLIxP6Bpt4BRtZgdsyPiadYJpkLAVT/quch5xN7Qs5ZwG5AvRCS3VwD2g==", - "requires": { - "@ethereumjs/common": "^2.4.0", - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.6.0", - "web3-core-promievent": "1.6.0", - "web3-core-subscriptions": "1.6.0", - "web3-utils": "1.6.0" - } - }, - "web3-core-promievent": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.6.0.tgz", - "integrity": "sha512-ZzsevjMXWkhqW9dnVfTfb1OUcK7jKcKPvPIbQ4boJccNgvNZPZKlo8xB4pkAX38n4c59O5mC7Lt/z2QL/M5CeQ==", - "requires": { - "eventemitter3": "4.0.4" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - } - } - }, - "web3-core-requestmanager": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.6.0.tgz", - "integrity": "sha512-CY5paPdiDXKTXPWaEUZekDfUXSuoE2vPxolwqzsvKwFWH5+H1NaXgrc+D5HpufgSvTXawTw0fy7IAicg8+PWqA==", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.6.0", - "web3-providers-http": "1.6.0", - "web3-providers-ipc": "1.6.0", - "web3-providers-ws": "1.6.0" - } - }, - "web3-core-subscriptions": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.6.0.tgz", - "integrity": "sha512-kY9WZUY/m1URSOv3uTLshoZD9ZDiFKReIzHuPUkxFpD5oYNmr1/aPQNPCrrMxKODR7UVX/D90FxWwCYqHhLaxQ==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.6.0" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - } - } - }, - "web3-eth": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.6.0.tgz", - "integrity": "sha512-qJMvai//r0be6I9ghU24/152f0zgJfYC23TMszN3Y6jse1JtjCBP2TlTibFcvkUN1RRdIUY5giqO7ZqAYAmp7w==", - "requires": { - "web3-core": "1.6.0", - "web3-core-helpers": "1.6.0", - "web3-core-method": "1.6.0", - "web3-core-subscriptions": "1.6.0", - "web3-eth-abi": "1.6.0", - "web3-eth-accounts": "1.6.0", - "web3-eth-contract": "1.6.0", - "web3-eth-ens": "1.6.0", - "web3-eth-iban": "1.6.0", - "web3-eth-personal": "1.6.0", - "web3-net": "1.6.0", - "web3-utils": "1.6.0" - } - }, - "web3-eth-abi": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.6.0.tgz", - "integrity": "sha512-fImomGE9McuTMJLwK8Tp0lTUzXqCkWeMm00qPVIwpJ/h7lCw9UFYV9+4m29wSqW6FF+FIZKwc6UBEf9dlx3orA==", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.6.0" - } - }, - "web3-eth-accounts": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.6.0.tgz", - "integrity": "sha512-2f6HS4KIH4laAsNCOfbNX3dRiQosqSY2TRK86C8jtAA/QKGdx+5qlPfYzbI2RjG81iayb2+mVbHIaEaBGZ8sGw==", - "requires": { - "@ethereumjs/common": "^2.3.0", - "@ethereumjs/tx": "^3.2.1", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.6.0", - "web3-core-helpers": "1.6.0", - "web3-core-method": "1.6.0", - "web3-utils": "1.6.0" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - } - } - }, - "web3-eth-contract": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.6.0.tgz", - "integrity": "sha512-ZUtO77zFnxuFtrc+D+iJ3AzNgFXAVcKnhEYN7f1PNz/mFjbtE6dJ+ujO0mvMbxIZF02t9IZv0CIXRpK0rDvZAw==", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.6.0", - "web3-core-helpers": "1.6.0", - "web3-core-method": "1.6.0", - "web3-core-promievent": "1.6.0", - "web3-core-subscriptions": "1.6.0", - "web3-eth-abi": "1.6.0", - "web3-utils": "1.6.0" - } - }, - "web3-eth-ens": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.6.0.tgz", - "integrity": "sha512-AG24PNv9qbYHSpjHcU2pViOII0jvIR7TeojJ2bxXSDqfcgHuRp3NZGKv6xFvT4uNI4LEQHUhSC7bzHoNF5t8CA==", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.6.0", - "web3-core-helpers": "1.6.0", - "web3-core-promievent": "1.6.0", - "web3-eth-abi": "1.6.0", - "web3-eth-contract": "1.6.0", - "web3-utils": "1.6.0" - } - }, - "web3-eth-iban": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.6.0.tgz", - "integrity": "sha512-HM/bKBS/e8qg0+Eh7B8C/JVG+GkR4AJty17DKRuwMtrh78YsonPj7GKt99zS4n5sDLFww1Imu/ZIk3+K5uJCjw==", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.6.0" - } - }, - "web3-eth-personal": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.6.0.tgz", - "integrity": "sha512-8ohf4qAwbShf4RwES2tLHVqa+pHZnS5Q6tV80sU//bivmlZeyO1W4UWyNn59vu9KPpEYvLseOOC6Muxuvr8mFQ==", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.6.0", - "web3-core-helpers": "1.6.0", - "web3-core-method": "1.6.0", - "web3-net": "1.6.0", - "web3-utils": "1.6.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.28.tgz", - "integrity": "sha512-cBw8gzxUPYX+/5lugXIPksioBSbE42k0fZ39p+4yRzfYjN6++eq9kAPdlY9qm+MXyfbk9EmvCYAYRn380sF46w==" - } - } - }, - "web3-net": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.6.0.tgz", - "integrity": "sha512-LFfG95ovTT2sNHkO1TEfsaKpYcxOSUtbuwHQ0K3G0e5nevKDJkPEFIqIcob40yiwcWoqEjENJP9Bjk8CRrZ99Q==", - "requires": { - "web3-core": "1.6.0", - "web3-core-method": "1.6.0", - "web3-utils": "1.6.0" - } - }, - "web3-providers-http": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.6.0.tgz", - "integrity": "sha512-sNxHFNv3lnxpmULt34AS6M36IYB/Hzm2Et4yPNzdP1XE644D8sQBZQZaJQdTaza5HfrlwoqU6AOK935armqGuA==", - "requires": { - "web3-core-helpers": "1.6.0", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.6.0.tgz", - "integrity": "sha512-ETYdfhpGiGoWpmmSJnONvnPfd3TPivHEGjXyuX+L5FUsbMOVZj9MFLNIS19Cx/YGL8UWJ/8alLJoTcWSIdz/aA==", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.6.0" - } - }, - "web3-providers-ws": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.6.0.tgz", - "integrity": "sha512-eNRmlhOPCpuVYwBrKBBQRLGPFb4U1Uo44r9EWV69Cpo4gP6XeBTl6nkawhLz6DS0fq79apyPfItJVuSfAy77pA==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.6.0", - "websocket": "^1.0.32" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - } - } - }, - "web3-shh": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.6.0.tgz", - "integrity": "sha512-ymN0OFL81WtEeSyb+PFpuUv39fR3frGwsZnIg5EVPZvrOIdaDSFcGSLDmafUt0vKSubvLMVYIBOCskRD6YdtEQ==", - "requires": { - "web3-core": "1.6.0", - "web3-core-method": "1.6.0", - "web3-core-subscriptions": "1.6.0", - "web3-net": "1.6.0" - } - }, - "web3-utils": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz", - "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "webcrypto": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/webcrypto/-/webcrypto-0.1.1.tgz", - "integrity": "sha512-BAvoatS38TbHdyt42ECLroi27NmDh5iea5l5rHC6nZTZjlbJlndrT0FoIiEq7fmPHpmNtP0lMFKVMEKZQFIrGA==", - "requires": { - "crypto-browserify": "^3.10.0", - "detect-node": "^2.0.3" - } - }, - "webcrypto-core": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.4.0.tgz", - "integrity": "sha512-HY3Zo0GcRIQUUDnlZ/shGjN+4f7LVMkdJZoGPog+oHhJsJdMz6iM8Za5xZ0t6qg7Fx/JXXz+oBv2J2p982hGTQ==", - "requires": { - "@peculiar/asn1-schema": "^2.0.44", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^2.1.1", - "pvtsutils": "^1.2.0", - "tslib": "^2.3.1" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "wherearewe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.0.tgz", - "integrity": "sha512-oQnRsAfMCqNAC7U4JrBdmFXAhBRLOkPGOfU5+nw9fs2D3g8O6EV7hn7BhpXtt0yno4pxFiRD55rMyt0fsLMqlw==", - "requires": { - "is-electron": "^2.2.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" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "optional": true - }, - "wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", - "optional": true, - "requires": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "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" - } - }, - "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==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "wrtc": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/wrtc/-/wrtc-0.4.7.tgz", - "integrity": "sha512-P6Hn7VT4lfSH49HxLHcHhDq+aFf/jd9dPY7lDHeFhZ22N3858EKuwm2jmnlPzpsRGEPaoF6XwkcxY5SYnt4f/g==", - "optional": true, - "requires": { - "domexception": "^1.0.1", - "node-pre-gyp": "^0.13.0" - } - }, - "ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "requires": {} - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xml2js": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.1.14.tgz", - "integrity": "sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw=", - "requires": { - "sax": ">=0.1.1" - } - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" - }, - "xsalsa20": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", - "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" - }, - "xss": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz", - "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", - "requires": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "optional": true - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "optional": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - }, - "zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "zen-observable-ts": { - "version": "0.8.21", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", - "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", - "requires": { - "tslib": "^1.9.3", - "zen-observable": "^0.8.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - } - } -} From bd8d36692c2b4efb568e9e8a14f9421a1420f0bf Mon Sep 17 00:00:00 2001 From: jdeepee Date: Mon, 7 Mar 2022 17:15:04 +0000 Subject: [PATCH 037/722] cleanup dependencies --- package.json | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 83602c288..96f3f2ab4 100644 --- a/package.json +++ b/package.json @@ -78,13 +78,14 @@ "sass": "^1.26.11", "ts-jest": "^27.0.3", "typescript": "^4.2.4", - "unzipper": "^0.10.11" + "unzipper": "^0.10.11", + "@peculiar/webcrypto": "^1.3.1", + "web3": "^1.7.1", + "@metamask/detect-provider": "1.2.0", + "sirv-cli": "^1.0.0", + "svelte": "^3.0.0" }, "dependencies": { - "@peculiar/webcrypto": "^1.1.7", - "@rollup/plugin-commonjs": "^17.1.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.2.0", "fs-extra": "^10.0.0", "@holochain/client": "0.3.2", "@perspect3vism/ad4m": "0.1.25", @@ -100,12 +101,7 @@ "js-yaml": "^4.1.0", "json-stable-stringify": "^1.0.1", "lowdb": "^1.0.0", - "multihashing": "^0.3.3", "node-fetch": "^2.6.1", - "svelte": "^3.0.0", - "sirv-cli": "^1.0.0", - "@metamask/detect-provider": "1.2.0", - "web3": "^1.5.2", "sha256": "^0.2.0", "sha3": "^2.1.3", "swipl-stdio": "^1.0.4", From cfef9fdbbdbc6e64339402653e864f9f4bdcf990 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Mon, 7 Mar 2022 17:15:21 +0000 Subject: [PATCH 038/722] cleanup svelte dapp app --- dapp/App.svelte | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/dapp/App.svelte b/dapp/App.svelte index 74ff5aca6..affc371f2 100644 --- a/dapp/App.svelte +++ b/dapp/App.svelte @@ -132,13 +132,6 @@ max-width: none; } - h1 { - color: #ff3e00; - text-transform: uppercase; - font-size: 4em; - font-weight: 100; - } - @media (min-width: 640px) { main { max-width: none; @@ -150,14 +143,4 @@ text-align: center; } } - - .spinner { - float: right; - width: 200px; - } - - .input-icon { - position: relative; - margin: 10px - } \ No newline at end of file From b10ff2fc3be99095806499b0c790545d159cd4c5 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Mon, 7 Mar 2022 17:15:57 +0000 Subject: [PATCH 039/722] improve ipfs init console log & use consistent structure when getting pub keys for languages --- src/core/PerspectivismCore.ts | 2 +- src/core/storage-services/Holochain/HolochainService.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/PerspectivismCore.ts b/src/core/PerspectivismCore.ts index 3f49c6ee0..6bdccc888 100644 --- a/src/core/PerspectivismCore.ts +++ b/src/core/PerspectivismCore.ts @@ -151,7 +151,7 @@ export default class PerspectivismCore { } async initIPFS(params: InitIPFSParams) { - console.log("Init IPFS service with port ", params.ipfsSwarmPort, " at path: ", params.ipfsRepoPath); + console.log("Init IPFS service with optional swarm port ", params.ipfsSwarmPort, " at optional repo path: ", params.ipfsRepoPath); let ipfs = await IPFS.init(params.ipfsSwarmPort, params.ipfsRepoPath); this.#IPFS = ipfs; diff --git a/src/core/storage-services/Holochain/HolochainService.ts b/src/core/storage-services/Holochain/HolochainService.ts index fedf00f2a..31dfb6539 100644 --- a/src/core/storage-services/Holochain/HolochainService.ts +++ b/src/core/storage-services/Holochain/HolochainService.ts @@ -304,7 +304,7 @@ export default class HolochainService { if (this.#didResolveError) { console.error("HolochainService.ensureInstallDNAforLanguage: Warning attempting to install holochain DNA when conductor did not start error free...") } - const pubKey = await this.pubKeyForLanguage("main"); + const pubKey = await this.pubKeyForLanguage(lang); const activeApps = await this.#adminWebsocket!.listApps({status_filter: AppStatusFilter.Enabled}); // console.log("HolochainService: Found running apps:", activeApps); if(!activeApps.map(value => value.installed_app_id).includes(lang)) { From d6c68b51ca6038eb099db783f2496f088d897ea5 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Tue, 8 Mar 2022 18:39:16 +0000 Subject: [PATCH 040/722] yarn lock --- yarn.lock | 20095 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 12097 insertions(+), 7998 deletions(-) diff --git a/yarn.lock b/yarn.lock index 85fbe75e0..5d2dbb24b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,28 +3,28 @@ "@apollo/client@3.3.20": - "integrity" "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==" - "resolved" "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz" - "version" "3.3.20" + version "3.3.20" + resolved "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz" + integrity sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw== dependencies: "@graphql-typed-document-node/core" "^3.0.0" "@types/zen-observable" "^0.8.0" "@wry/context" "^0.6.0" "@wry/equality" "^0.5.0" - "fast-json-stable-stringify" "^2.0.0" - "graphql-tag" "^2.12.0" - "hoist-non-react-statics" "^3.3.2" - "optimism" "^0.16.0" - "prop-types" "^15.7.2" - "symbol-observable" "^4.0.0" - "ts-invariant" "^0.7.0" - "tslib" "^1.10.0" - "zen-observable" "^0.8.14" + fast-json-stable-stringify "^2.0.0" + graphql-tag "^2.12.0" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.0" + prop-types "^15.7.2" + symbol-observable "^4.0.0" + ts-invariant "^0.7.0" + tslib "^1.10.0" + zen-observable "^0.8.14" "@apollo/protobufjs@1.2.2": - "integrity" "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==" - "resolved" "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz" - "version" "1.2.2" + version "1.2.2" + resolved "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz" + integrity sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -38,54 +38,54 @@ "@protobufjs/utf8" "^1.1.0" "@types/long" "^4.0.0" "@types/node" "^10.1.0" - "long" "^4.0.0" + long "^4.0.0" "@apollographql/apollo-tools@^0.5.0": - "integrity" "sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw==" - "resolved" "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz" - "version" "0.5.2" + version "0.5.2" + resolved "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz" + integrity sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw== "@apollographql/graphql-playground-html@1.6.27": - "integrity" "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==" - "resolved" "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz" - "version" "1.6.27" + version "1.6.27" + resolved "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz" + integrity sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw== dependencies: - "xss" "^1.0.8" + xss "^1.0.8" "@apollographql/graphql-upload-8-fork@^8.1.3": - "integrity" "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==" - "resolved" "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz" - "version" "8.1.3" + version "8.1.3" + resolved "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz" + integrity sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g== dependencies: "@types/express" "*" "@types/fs-capacitor" "*" "@types/koa" "*" - "busboy" "^0.3.1" - "fs-capacitor" "^2.0.4" - "http-errors" "^1.7.3" - "object-path" "^0.11.4" + busboy "^0.3.1" + fs-capacitor "^2.0.4" + http-errors "^1.7.3" + object-path "^0.11.4" "@assemblyscript/loader@^0.9.4": - "integrity" "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" - "resolved" "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz" - "version" "0.9.4" + version "0.9.4" + resolved "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz" + integrity sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA== -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": - "integrity" "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==" - "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" - "version" "7.16.7" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: "@babel/highlight" "^7.16.7" "@babel/compat-data@^7.16.4": - "integrity" "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==" - "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz" - "version" "7.16.8" + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz" + integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": - "integrity" "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==" - "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz" - "version" "7.16.10" +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.16.10" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz" + integrity sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA== dependencies: "@babel/code-frame" "^7.16.7" "@babel/generator" "^7.16.8" @@ -96,73 +96,73 @@ "@babel/template" "^7.16.7" "@babel/traverse" "^7.16.10" "@babel/types" "^7.16.8" - "convert-source-map" "^1.7.0" - "debug" "^4.1.0" - "gensync" "^1.0.0-beta.2" - "json5" "^2.1.2" - "semver" "^6.3.0" - "source-map" "^0.5.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" "@babel/generator@^7.16.8", "@babel/generator@^7.7.2": - "integrity" "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==" - "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz" - "version" "7.16.8" + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz" + integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== dependencies: "@babel/types" "^7.16.8" - "jsesc" "^2.5.1" - "source-map" "^0.5.0" + jsesc "^2.5.1" + source-map "^0.5.0" "@babel/helper-compilation-targets@^7.16.7": - "integrity" "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==" - "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz" + integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== dependencies: "@babel/compat-data" "^7.16.4" "@babel/helper-validator-option" "^7.16.7" - "browserslist" "^4.17.5" - "semver" "^6.3.0" + browserslist "^4.17.5" + semver "^6.3.0" "@babel/helper-environment-visitor@^7.16.7": - "integrity" "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==" - "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== dependencies: "@babel/types" "^7.16.7" "@babel/helper-function-name@^7.16.7": - "integrity" "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==" - "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== dependencies: "@babel/helper-get-function-arity" "^7.16.7" "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" "@babel/helper-get-function-arity@^7.16.7": - "integrity" "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==" - "resolved" "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== dependencies: "@babel/types" "^7.16.7" "@babel/helper-hoist-variables@^7.16.7": - "integrity" "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==" - "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== dependencies: "@babel/types" "^7.16.7" "@babel/helper-module-imports@^7.16.7": - "integrity" "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==" - "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== dependencies: "@babel/types" "^7.16.7" "@babel/helper-module-transforms@^7.16.7": - "integrity" "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==" - "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz" + integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" @@ -174,161 +174,161 @@ "@babel/types" "^7.16.7" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0": - "integrity" "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== "@babel/helper-simple-access@^7.16.7": - "integrity" "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==" - "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz" + integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== dependencies: "@babel/types" "^7.16.7" "@babel/helper-split-export-declaration@^7.16.7": - "integrity" "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==" - "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== dependencies: "@babel/types" "^7.16.7" "@babel/helper-validator-identifier@^7.16.7": - "integrity" "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== "@babel/helper-validator-option@^7.16.7": - "integrity" "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== "@babel/helpers@^7.16.7": - "integrity" "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==" - "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz" + integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== dependencies: "@babel/template" "^7.16.7" "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" "@babel/highlight@^7.16.7": - "integrity" "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==" - "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" - "version" "7.16.10" + version "7.16.10" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" - "chalk" "^2.0.0" - "js-tokens" "^4.0.0" + chalk "^2.0.0" + js-tokens "^4.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.10", "@babel/parser@^7.16.7": - "integrity" "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==" - "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz" - "version" "7.16.10" + version "7.16.10" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz" + integrity sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ== "@babel/plugin-syntax-async-generators@^7.8.4": - "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - "version" "7.8.4" + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-bigint@^7.8.3": - "integrity" "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.8.3": - "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - "version" "7.12.13" + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-import-meta@^7.8.3": - "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - "version" "7.10.4" + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": - "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - "version" "7.10.4" + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.8.3": - "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - "version" "7.10.4" + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": - "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": - "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": - "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-top-level-await@^7.8.3": - "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - "integrity" "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz" + integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/template@^7.16.7", "@babel/template@^7.3.3": - "integrity" "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==" - "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== dependencies: "@babel/code-frame" "^7.16.7" "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.7.2": - "integrity" "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==" - "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz" - "version" "7.16.10" + version "7.16.10" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz" + integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== dependencies: "@babel/code-frame" "^7.16.7" "@babel/generator" "^7.16.8" @@ -338,128 +338,325 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@babel/parser" "^7.16.10" "@babel/types" "^7.16.8" - "debug" "^4.1.0" - "globals" "^11.1.0" + debug "^4.1.0" + globals "^11.1.0" "@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - "integrity" "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==" - "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz" - "version" "7.16.8" + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz" + integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" - "to-fast-properties" "^2.0.0" + to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": - "integrity" "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - "resolved" "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" - "version" "0.2.3" + version "0.2.3" + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@beyonk/svelte-notifications@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@beyonk/svelte-notifications/-/svelte-notifications-4.1.1.tgz#4e90bd8871d5d61cbd2b16da061679ea4cf10059" + integrity sha512-UMfc5K6pfAkPrtp6OL2/ZbnSBzsQaG6qYBHJVnBdoEXdH+jlL4mx0FZ6wsS90aSz9akZGRyVzsIB0e9zaWLiGw== "@chainsafe/libp2p-noise@^5.0.0": - "integrity" "sha512-hpxHl3bxHN2fgpmjP2zkC2Lq3ajA349WxI7U2aBuskkq3Pd+aUmSlVjM8pyN+5Dr5+yHuayqCgMUxq3AeOM7Zw==" - "resolved" "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-5.0.2.tgz" - "version" "5.0.2" + version "5.0.2" + resolved "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-5.0.2.tgz" + integrity sha512-hpxHl3bxHN2fgpmjP2zkC2Lq3ajA349WxI7U2aBuskkq3Pd+aUmSlVjM8pyN+5Dr5+yHuayqCgMUxq3AeOM7Zw== dependencies: "@stablelib/chacha20poly1305" "^1.0.1" "@stablelib/hkdf" "^1.0.1" "@stablelib/sha256" "^1.0.1" "@stablelib/x25519" "^1.0.1" - "bl" "^5.0.0" - "debug" "^4.3.1" - "it-buffer" "^0.1.3" - "it-length-prefixed" "^5.0.3" - "it-pair" "^1.0.0" - "it-pb-rpc" "^0.2.0" - "it-pipe" "^1.1.0" - "peer-id" "^0.16.0" - "protobufjs" "^6.11.2" - "uint8arrays" "^3.0.0" + bl "^5.0.0" + debug "^4.3.1" + it-buffer "^0.1.3" + it-length-prefixed "^5.0.3" + it-pair "^1.0.0" + it-pb-rpc "^0.2.0" + it-pipe "^1.1.0" + peer-id "^0.16.0" + protobufjs "^6.11.2" + uint8arrays "^3.0.0" + +"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.1": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.2.tgz#eb006c9329c75c80f634f340dc1719a5258244df" + integrity sha512-vDwye5v0SVeuDky4MtKsu+ogkH2oFUV8pBKzH/eNBzT8oI91pKa8WyzDuYuxOQsgNgv5R34LfFDh2aaw3H4HbQ== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.4" + +"@ethereumjs/tx@^3.3.2": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.0.tgz#783b0aeb08518b9991b23f5155763bbaf930a037" + integrity sha512-/+ZNbnJhQhXC83Xuvy6I9k4jT5sXiV0tMR9C+AzSSpcCV64+NB8dTE1m3x98RYMqb8+TLYWA+HML4F5lfXTlJw== + dependencies: + "@ethereumjs/common" "^2.6.1" + ethereumjs-util "^7.1.4" + +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + +"@ethersproject/abstract-provider@^5.5.0": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" + integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/web" "^5.5.0" + +"@ethersproject/abstract-signer@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" + integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + +"@ethersproject/address@^5.0.4", "@ethersproject/address@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" + integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + +"@ethersproject/base64@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" + integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + +"@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" + integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + bn.js "^4.11.9" + +"@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" + integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== + dependencies: + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" + integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + +"@ethersproject/hash@^5.0.4": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" + integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" + integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" + integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== + +"@ethersproject/networks@^5.5.0": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.2.tgz#784c8b1283cd2a931114ab428dae1bd00c07630b" + integrity sha512-NEqPxbGBfy6O3x4ZTISb90SjEDkWYDUbEeIFhJly0F7sZjoQMnj5KYzMSkMkLKZ+1fGpx00EDpHQCy6PrDupkQ== + dependencies: + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" + integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== + dependencies: + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/rlp@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" + integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/signing-key@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" + integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" + integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" + integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== + dependencies: + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + +"@ethersproject/web@^5.5.0": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.1.tgz#cfcc4a074a6936c657878ac58917a61341681316" + integrity sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg== + dependencies: + "@ethersproject/base64" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" "@graphql-typed-document-node/core@^3.0.0": - "integrity" "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==" - "resolved" "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz" - "version" "3.1.1" + version "3.1.1" + resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz" + integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== "@grpc/grpc-js@^1.1.8": - "integrity" "sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ==" - "resolved" "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz" - "version" "1.5.5" + version "1.5.5" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz" + integrity sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ== dependencies: "@grpc/proto-loader" "^0.6.4" "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.6.4": - "integrity" "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==" - "resolved" "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz" - "version" "0.6.9" + version "0.6.9" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz" + integrity sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg== dependencies: "@types/long" "^4.0.1" - "lodash.camelcase" "^4.3.0" - "long" "^4.0.0" - "protobufjs" "^6.10.0" - "yargs" "^16.2.0" + lodash.camelcase "^4.3.0" + long "^4.0.0" + protobufjs "^6.10.0" + yargs "^16.2.0" "@hapi/accept@^5.0.1": - "integrity" "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==" - "resolved" "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz" - "version" "5.0.2" + version "5.0.2" + resolved "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz" + integrity sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw== dependencies: "@hapi/boom" "9.x.x" "@hapi/hoek" "9.x.x" "@hapi/ammo@^5.0.1": - "integrity" "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==" - "resolved" "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz" - "version" "5.0.1" + version "5.0.1" + resolved "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz" + integrity sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA== dependencies: "@hapi/hoek" "9.x.x" "@hapi/b64@5.x.x": - "integrity" "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==" - "resolved" "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz" - "version" "5.0.0" + version "5.0.0" + resolved "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz" + integrity sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw== dependencies: "@hapi/hoek" "9.x.x" -"@hapi/boom@^9.1.0", "@hapi/boom@9.x.x": - "integrity" "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==" - "resolved" "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz" - "version" "9.1.4" +"@hapi/boom@9.x.x", "@hapi/boom@^9.1.0": + version "9.1.4" + resolved "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz" + integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== dependencies: "@hapi/hoek" "9.x.x" -"@hapi/bounce@^2.0.0", "@hapi/bounce@2.x.x": - "integrity" "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==" - "resolved" "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz" - "version" "2.0.0" +"@hapi/bounce@2.x.x", "@hapi/bounce@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz" + integrity sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A== dependencies: "@hapi/boom" "9.x.x" "@hapi/hoek" "9.x.x" -"@hapi/bourne@^2.0.0", "@hapi/bourne@2.x.x": - "integrity" "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - "resolved" "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz" - "version" "2.0.0" +"@hapi/bourne@2.x.x", "@hapi/bourne@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz" + integrity sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg== "@hapi/call@^8.0.0": - "integrity" "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==" - "resolved" "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz" - "version" "8.0.1" + version "8.0.1" + resolved "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz" + integrity sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g== dependencies: "@hapi/boom" "9.x.x" "@hapi/hoek" "9.x.x" "@hapi/catbox-memory@^5.0.0": - "integrity" "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==" - "resolved" "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz" - "version" "5.0.1" + version "5.0.1" + resolved "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz" + integrity sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ== dependencies: "@hapi/boom" "9.x.x" "@hapi/hoek" "9.x.x" "@hapi/catbox@^11.1.1": - "integrity" "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==" - "resolved" "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz" - "version" "11.1.1" + version "11.1.1" + resolved "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz" + integrity sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ== dependencies: "@hapi/boom" "9.x.x" "@hapi/hoek" "9.x.x" @@ -467,28 +664,28 @@ "@hapi/validate" "1.x.x" "@hapi/content@^5.0.2": - "integrity" "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==" - "resolved" "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz" - "version" "5.0.2" + version "5.0.2" + resolved "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz" + integrity sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw== dependencies: "@hapi/boom" "9.x.x" "@hapi/cryptiles@5.x.x": - "integrity" "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==" - "resolved" "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz" - "version" "5.1.0" + version "5.1.0" + resolved "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz" + integrity sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA== dependencies: "@hapi/boom" "9.x.x" "@hapi/file@2.x.x": - "integrity" "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" - "resolved" "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz" - "version" "2.0.0" + version "2.0.0" + resolved "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz" + integrity sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ== "@hapi/hapi@^20.0.0": - "integrity" "sha512-OXAU+yWLwkMfPFic+KITo+XPp6Oxpgc9WUH+pxXWcTIuvWbgco5TC/jS8UDvz+NFF5IzRgF2CL6UV/KLdQYUSQ==" - "resolved" "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.2.1.tgz" - "version" "20.2.1" + version "20.2.1" + resolved "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.2.1.tgz" + integrity sha512-OXAU+yWLwkMfPFic+KITo+XPp6Oxpgc9WUH+pxXWcTIuvWbgco5TC/jS8UDvz+NFF5IzRgF2CL6UV/KLdQYUSQ== dependencies: "@hapi/accept" "^5.0.1" "@hapi/ammo" "^5.0.1" @@ -510,23 +707,23 @@ "@hapi/validate" "^1.1.1" "@hapi/heavy@^7.0.1": - "integrity" "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==" - "resolved" "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz" - "version" "7.0.1" + version "7.0.1" + resolved "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz" + integrity sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA== dependencies: "@hapi/boom" "9.x.x" "@hapi/hoek" "9.x.x" "@hapi/validate" "1.x.x" -"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.0.4", "@hapi/hoek@9.x.x": - "integrity" "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" - "resolved" "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz" - "version" "9.2.1" +"@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.0.4": + version "9.2.1" + resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz" + integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== "@hapi/iron@6.x.x": - "integrity" "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==" - "resolved" "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz" - "version" "6.0.0" + version "6.0.0" + resolved "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz" + integrity sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw== dependencies: "@hapi/b64" "5.x.x" "@hapi/boom" "9.x.x" @@ -535,25 +732,25 @@ "@hapi/hoek" "9.x.x" "@hapi/mimos@^6.0.0": - "integrity" "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==" - "resolved" "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz" - "version" "6.0.0" + version "6.0.0" + resolved "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz" + integrity sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg== dependencies: "@hapi/hoek" "9.x.x" - "mime-db" "1.x.x" + mime-db "1.x.x" "@hapi/nigel@4.x.x": - "integrity" "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==" - "resolved" "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz" - "version" "4.0.2" + version "4.0.2" + resolved "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz" + integrity sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw== dependencies: "@hapi/hoek" "^9.0.4" "@hapi/vise" "^4.0.0" "@hapi/pez@^5.0.1": - "integrity" "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==" - "resolved" "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz" - "version" "5.0.3" + version "5.0.3" + resolved "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz" + integrity sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA== dependencies: "@hapi/b64" "5.x.x" "@hapi/boom" "9.x.x" @@ -561,35 +758,35 @@ "@hapi/hoek" "9.x.x" "@hapi/nigel" "4.x.x" -"@hapi/podium@^4.1.1", "@hapi/podium@4.x.x": - "integrity" "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==" - "resolved" "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz" - "version" "4.1.3" +"@hapi/podium@4.x.x", "@hapi/podium@^4.1.1": + version "4.1.3" + resolved "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz" + integrity sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g== dependencies: "@hapi/hoek" "9.x.x" "@hapi/teamwork" "5.x.x" "@hapi/validate" "1.x.x" "@hapi/shot@^5.0.5": - "integrity" "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==" - "resolved" "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz" - "version" "5.0.5" + version "5.0.5" + resolved "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz" + integrity sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A== dependencies: "@hapi/hoek" "9.x.x" "@hapi/validate" "1.x.x" "@hapi/somever@^3.0.0": - "integrity" "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==" - "resolved" "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz" - "version" "3.0.1" + version "3.0.1" + resolved "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz" + integrity sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w== dependencies: "@hapi/bounce" "2.x.x" "@hapi/hoek" "9.x.x" "@hapi/statehood@^7.0.3": - "integrity" "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==" - "resolved" "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz" - "version" "7.0.3" + version "7.0.3" + resolved "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz" + integrity sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w== dependencies: "@hapi/boom" "9.x.x" "@hapi/bounce" "2.x.x" @@ -600,9 +797,9 @@ "@hapi/validate" "1.x.x" "@hapi/subtext@^7.0.3": - "integrity" "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==" - "resolved" "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz" - "version" "7.0.3" + version "7.0.3" + resolved "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz" + integrity sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A== dependencies: "@hapi/boom" "9.x.x" "@hapi/bourne" "2.x.x" @@ -612,123 +809,123 @@ "@hapi/pez" "^5.0.1" "@hapi/wreck" "17.x.x" -"@hapi/teamwork@^5.1.0", "@hapi/teamwork@5.x.x": - "integrity" "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==" - "resolved" "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz" - "version" "5.1.0" +"@hapi/teamwork@5.x.x", "@hapi/teamwork@^5.1.0": + version "5.1.0" + resolved "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz" + integrity sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg== "@hapi/topo@^5.0.0": - "integrity" "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==" - "resolved" "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" - "version" "5.1.0" + version "5.1.0" + resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== dependencies: "@hapi/hoek" "^9.0.0" -"@hapi/validate@^1.1.1", "@hapi/validate@1.x.x": - "integrity" "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==" - "resolved" "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz" - "version" "1.1.3" +"@hapi/validate@1.x.x", "@hapi/validate@^1.1.1": + version "1.1.3" + resolved "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz" + integrity sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" "@hapi/vise@^4.0.0": - "integrity" "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==" - "resolved" "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz" - "version" "4.0.0" + version "4.0.0" + resolved "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz" + integrity sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg== dependencies: "@hapi/hoek" "9.x.x" "@hapi/wreck@17.x.x": - "integrity" "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==" - "resolved" "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz" - "version" "17.1.0" + version "17.1.0" + resolved "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz" + integrity sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw== dependencies: "@hapi/boom" "9.x.x" "@hapi/bourne" "2.x.x" "@hapi/hoek" "9.x.x" "@holochain/client@0.3.2": - "integrity" "sha512-tBmfgRMcHn/yujiQ4ugolAEbE4WMznIGRt+F8gpPNNAzC263xt+CLa6G3KslcfUc4tKD+XCr5c9z3wkZP/MMzw==" - "resolved" "https://registry.npmjs.org/@holochain/client/-/client-0.3.2.tgz" - "version" "0.3.2" + version "0.3.2" + resolved "https://registry.npmjs.org/@holochain/client/-/client-0.3.2.tgz" + integrity sha512-tBmfgRMcHn/yujiQ4ugolAEbE4WMznIGRt+F8gpPNNAzC263xt+CLa6G3KslcfUc4tKD+XCr5c9z3wkZP/MMzw== dependencies: "@msgpack/msgpack" "^2.7.1" - "cross-fetch" "^3.1.4" - "isomorphic-ws" "^4.0.1" + cross-fetch "^3.1.4" + isomorphic-ws "^4.0.1" "@ipld/car@^3.1.0": - "integrity" "sha512-pXE5mFJlXzJVaBwqAJKGlKqMmxq8H2SLEWBJgkeBDPBIN8ZbscPc3I9itkSQSlS/s6Fgx35Ri3LDTDtodQjCCQ==" - "resolved" "https://registry.npmjs.org/@ipld/car/-/car-3.2.3.tgz" - "version" "3.2.3" + version "3.2.3" + resolved "https://registry.npmjs.org/@ipld/car/-/car-3.2.3.tgz" + integrity sha512-pXE5mFJlXzJVaBwqAJKGlKqMmxq8H2SLEWBJgkeBDPBIN8ZbscPc3I9itkSQSlS/s6Fgx35Ri3LDTDtodQjCCQ== dependencies: "@ipld/dag-cbor" "^7.0.0" - "multiformats" "^9.5.4" - "varint" "^6.0.0" + multiformats "^9.5.4" + varint "^6.0.0" "@ipld/dag-cbor@^6.0.4": - "integrity" "sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA==" - "resolved" "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz" - "version" "6.0.15" + version "6.0.15" + resolved "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz" + integrity sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA== dependencies: - "cborg" "^1.5.4" - "multiformats" "^9.5.4" + cborg "^1.5.4" + multiformats "^9.5.4" "@ipld/dag-cbor@^7.0.0": - "integrity" "sha512-us/dagGvfQ+acO8uyAfozUQ21xxvI6ZrCWwfbOuk+o+cSpCIKY30lUYRuN3kzWLvTJHvbuCVPVEH38ynM1ZBgw==" - "resolved" "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.0.tgz" - "version" "7.0.0" + version "7.0.0" + resolved "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.0.tgz" + integrity sha512-us/dagGvfQ+acO8uyAfozUQ21xxvI6ZrCWwfbOuk+o+cSpCIKY30lUYRuN3kzWLvTJHvbuCVPVEH38ynM1ZBgw== dependencies: - "cborg" "^1.6.0" - "multiformats" "^9.5.4" + cborg "^1.6.0" + multiformats "^9.5.4" "@ipld/dag-json@^8.0.1": - "integrity" "sha512-nG4hdl1V4GDKZ6Mumu2tL8zSpem/lRSVpQOd1uEovF+qPRkVnb06hsETy97J3kR0EjbZgge8m5AYtrab3DSREg==" - "resolved" "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.7.tgz" - "version" "8.0.7" + version "8.0.7" + resolved "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.7.tgz" + integrity sha512-nG4hdl1V4GDKZ6Mumu2tL8zSpem/lRSVpQOd1uEovF+qPRkVnb06hsETy97J3kR0EjbZgge8m5AYtrab3DSREg== dependencies: - "cborg" "^1.5.4" - "multiformats" "^9.5.4" + cborg "^1.5.4" + multiformats "^9.5.4" "@ipld/dag-pb@^2.0.0", "@ipld/dag-pb@^2.0.2", "@ipld/dag-pb@^2.1.0", "@ipld/dag-pb@^2.1.3": - "integrity" "sha512-qkoUIiuQDx2ZN+YmYFdSNNHRt15p1XTYbqsseb8DgA0ACcqCUurbiNVd0jt5GuiBm76t2mOV2cZsNu6rykRFBQ==" - "resolved" "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.15.tgz" - "version" "2.1.15" + version "2.1.15" + resolved "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.15.tgz" + integrity sha512-qkoUIiuQDx2ZN+YmYFdSNNHRt15p1XTYbqsseb8DgA0ACcqCUurbiNVd0jt5GuiBm76t2mOV2cZsNu6rykRFBQ== dependencies: - "multiformats" "^9.5.4" + multiformats "^9.5.4" "@istanbuljs/load-nyc-config@^1.0.0": - "integrity" "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==" - "resolved" "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - "version" "1.1.0" + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: - "camelcase" "^5.3.1" - "find-up" "^4.1.0" - "get-package-type" "^0.1.0" - "js-yaml" "^3.13.1" - "resolve-from" "^5.0.0" + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" "@istanbuljs/schema@^0.1.2": - "integrity" "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - "resolved" "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - "version" "0.1.3" + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== "@jest/console@^27.4.6": - "integrity" "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==" - "resolved" "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz" - "version" "27.4.6" + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz" + integrity sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA== dependencies: "@jest/types" "^27.4.2" "@types/node" "*" - "chalk" "^4.0.0" - "jest-message-util" "^27.4.6" - "jest-util" "^27.4.2" - "slash" "^3.0.0" + chalk "^4.0.0" + jest-message-util "^27.4.6" + jest-util "^27.4.2" + slash "^3.0.0" "@jest/core@^27.4.7": - "integrity" "sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg==" - "resolved" "https://registry.npmjs.org/@jest/core/-/core-27.4.7.tgz" - "version" "27.4.7" + version "27.4.7" + resolved "https://registry.npmjs.org/@jest/core/-/core-27.4.7.tgz" + integrity sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg== dependencies: "@jest/console" "^27.4.6" "@jest/reporters" "^27.4.6" @@ -736,64 +933,64 @@ "@jest/transform" "^27.4.6" "@jest/types" "^27.4.2" "@types/node" "*" - "ansi-escapes" "^4.2.1" - "chalk" "^4.0.0" - "emittery" "^0.8.1" - "exit" "^0.1.2" - "graceful-fs" "^4.2.4" - "jest-changed-files" "^27.4.2" - "jest-config" "^27.4.7" - "jest-haste-map" "^27.4.6" - "jest-message-util" "^27.4.6" - "jest-regex-util" "^27.4.0" - "jest-resolve" "^27.4.6" - "jest-resolve-dependencies" "^27.4.6" - "jest-runner" "^27.4.6" - "jest-runtime" "^27.4.6" - "jest-snapshot" "^27.4.6" - "jest-util" "^27.4.2" - "jest-validate" "^27.4.6" - "jest-watcher" "^27.4.6" - "micromatch" "^4.0.4" - "rimraf" "^3.0.0" - "slash" "^3.0.0" - "strip-ansi" "^6.0.0" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^27.4.2" + jest-config "^27.4.7" + jest-haste-map "^27.4.6" + jest-message-util "^27.4.6" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.6" + jest-resolve-dependencies "^27.4.6" + jest-runner "^27.4.6" + jest-runtime "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + jest-validate "^27.4.6" + jest-watcher "^27.4.6" + micromatch "^4.0.4" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" "@jest/environment@^27.4.6": - "integrity" "sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg==" - "resolved" "https://registry.npmjs.org/@jest/environment/-/environment-27.4.6.tgz" - "version" "27.4.6" + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.4.6.tgz" + integrity sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg== dependencies: "@jest/fake-timers" "^27.4.6" "@jest/types" "^27.4.2" "@types/node" "*" - "jest-mock" "^27.4.6" + jest-mock "^27.4.6" "@jest/fake-timers@^27.4.6": - "integrity" "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==" - "resolved" "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz" - "version" "27.4.6" + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz" + integrity sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A== dependencies: "@jest/types" "^27.4.2" "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - "jest-message-util" "^27.4.6" - "jest-mock" "^27.4.6" - "jest-util" "^27.4.2" + jest-message-util "^27.4.6" + jest-mock "^27.4.6" + jest-util "^27.4.2" "@jest/globals@^27.4.6": - "integrity" "sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw==" - "resolved" "https://registry.npmjs.org/@jest/globals/-/globals-27.4.6.tgz" - "version" "27.4.6" + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.4.6.tgz" + integrity sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw== dependencies: "@jest/environment" "^27.4.6" "@jest/types" "^27.4.2" - "expect" "^27.4.6" + expect "^27.4.6" "@jest/reporters@^27.4.6": - "integrity" "sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ==" - "resolved" "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz" - "version" "27.4.6" + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz" + integrity sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^27.4.6" @@ -801,301 +998,638 @@ "@jest/transform" "^27.4.6" "@jest/types" "^27.4.2" "@types/node" "*" - "chalk" "^4.0.0" - "collect-v8-coverage" "^1.0.0" - "exit" "^0.1.2" - "glob" "^7.1.2" - "graceful-fs" "^4.2.4" - "istanbul-lib-coverage" "^3.0.0" - "istanbul-lib-instrument" "^5.1.0" - "istanbul-lib-report" "^3.0.0" - "istanbul-lib-source-maps" "^4.0.0" - "istanbul-reports" "^3.1.3" - "jest-haste-map" "^27.4.6" - "jest-resolve" "^27.4.6" - "jest-util" "^27.4.2" - "jest-worker" "^27.4.6" - "slash" "^3.0.0" - "source-map" "^0.6.0" - "string-length" "^4.0.1" - "terminal-link" "^2.0.0" - "v8-to-istanbul" "^8.1.0" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-haste-map "^27.4.6" + jest-resolve "^27.4.6" + jest-util "^27.4.2" + jest-worker "^27.4.6" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.1.0" "@jest/source-map@^27.4.0": - "integrity" "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==" - "resolved" "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz" - "version" "27.4.0" + version "27.4.0" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz" + integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== dependencies: - "callsites" "^3.0.0" - "graceful-fs" "^4.2.4" - "source-map" "^0.6.0" + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" "@jest/test-result@^27.4.6": - "integrity" "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==" - "resolved" "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz" - "version" "27.4.6" + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz" + integrity sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ== dependencies: "@jest/console" "^27.4.6" "@jest/types" "^27.4.2" "@types/istanbul-lib-coverage" "^2.0.0" - "collect-v8-coverage" "^1.0.0" + collect-v8-coverage "^1.0.0" "@jest/test-sequencer@^27.4.6": - "integrity" "sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw==" - "resolved" "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz" - "version" "27.4.6" + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz" + integrity sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw== dependencies: "@jest/test-result" "^27.4.6" - "graceful-fs" "^4.2.4" - "jest-haste-map" "^27.4.6" - "jest-runtime" "^27.4.6" + graceful-fs "^4.2.4" + jest-haste-map "^27.4.6" + jest-runtime "^27.4.6" "@jest/transform@^27.4.6": - "integrity" "sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==" - "resolved" "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz" - "version" "27.4.6" + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz" + integrity sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw== dependencies: "@babel/core" "^7.1.0" "@jest/types" "^27.4.2" - "babel-plugin-istanbul" "^6.1.1" - "chalk" "^4.0.0" - "convert-source-map" "^1.4.0" - "fast-json-stable-stringify" "^2.0.0" - "graceful-fs" "^4.2.4" - "jest-haste-map" "^27.4.6" - "jest-regex-util" "^27.4.0" - "jest-util" "^27.4.2" - "micromatch" "^4.0.4" - "pirates" "^4.0.4" - "slash" "^3.0.0" - "source-map" "^0.6.1" - "write-file-atomic" "^3.0.0" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^27.4.6" + jest-regex-util "^27.4.0" + jest-util "^27.4.2" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" "@jest/types@^27.4.2": - "integrity" "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==" - "resolved" "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz" - "version" "27.4.2" + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz" + integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^16.0.0" - "chalk" "^4.0.0" + chalk "^4.0.0" "@josephg/resolvable@^1.0.0": - "integrity" "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - "resolved" "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz" + integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== "@leichtgewicht/ip-codec@^2.0.1": - "integrity" "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" - "resolved" "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz" - "version" "2.0.3" + version "2.0.3" + resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz" + integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== "@mapbox/node-pre-gyp@^1.0.5": - "integrity" "sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==" - "resolved" "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz" - "version" "1.0.8" - dependencies: - "detect-libc" "^1.0.3" - "https-proxy-agent" "^5.0.0" - "make-dir" "^3.1.0" - "node-fetch" "^2.6.5" - "nopt" "^5.0.0" - "npmlog" "^5.0.1" - "rimraf" "^3.0.2" - "semver" "^7.3.5" - "tar" "^6.1.11" - -"@mattrglobal/bbs-signatures@^0.5.0", "@mattrglobal/bbs-signatures@0.5.0": - "integrity" "sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ==" - "resolved" "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz" - "version" "0.5.0" + version "1.0.8" + resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz" + integrity sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg== + dependencies: + detect-libc "^1.0.3" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.5" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + +"@material/animation@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/animation/-/animation-11.0.0.tgz#d17935fc2d29f8d10f3f884783e35426de8a6adc" + integrity sha512-pAJRl0ySvfOzqyGUme27tPf1LbqrjSTK4g5kngpXOPAIQdYYx89QLAfcqHONSpvXO7/WP+Kc9zJ3WWxbUaG8Wg== + dependencies: + tslib "^2.1.0" + +"@material/base@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/base/-/base-11.0.0.tgz#e8819a10946d8d7755d7111071adbe59ec998bdf" + integrity sha512-GTybYdiWBoEyYQ3he8cEeuXe5mPq2peFX41rBsMrs516TGDxrVJrEAKNedydhtpfRBsZRreTXMLZtbGrZzfIFQ== + dependencies: + tslib "^2.1.0" + +"@material/button@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/button/-/button-11.0.0.tgz#dd9099ccea2bc095ac146ddec14ebcd21a22278c" + integrity sha512-KqqxEcsj8jBkV1yNEiPoHiB1AJBa/1OGm7H+hF+C3RUTIrRLew8IuRL1ZY38ukdHvhno1/qmVMKOs6ui0mxjlg== + dependencies: + "@material/density" "^11.0.0" + "@material/dom" "^11.0.0" + "@material/elevation" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/ripple" "^11.0.0" + "@material/rtl" "^11.0.0" + "@material/shape" "^11.0.0" + "@material/theme" "^11.0.0" + "@material/touch-target" "^11.0.0" + "@material/typography" "^11.0.0" + tslib "^2.1.0" + +"@material/density@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/density/-/density-11.0.0.tgz#862b345007f218ab856ba39f2cb8c59712f18270" + integrity sha512-FuSx0UukH7p9cIAxEg78zwL5iYuoa/YovyHuuEEudyhWsRH+u0KBSQlYWr+ykg//qZF6urlDrVmu7WAKi1SiCw== + dependencies: + tslib "^2.1.0" + +"@material/dom@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/dom/-/dom-11.0.0.tgz#ea74b0719b9b51515c085ddc30708b5aefdb31da" + integrity sha512-LZdg6VmYnMXc/Ct/GdQ22o4m3UgjhZYQIrwu9Iebqchx0Vd2OTmcFN5nArHSCSgUEhpjpPlkbZmjOpeOAwiKZg== + dependencies: + "@material/feature-targeting" "^11.0.0" + tslib "^2.1.0" + +"@material/elevation@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-11.0.0.tgz#d6f3a1ff22b12a80c0d0b1e86b3fa8d43d916667" + integrity sha512-mgrUSBAdXJ1+VS/SWnu/gr9/nq7P1q5X3aDmoom2EPKauEeKhuAHjABI5duxHOrliZM3mK9VLO56D/tszb7spw== + dependencies: + "@material/animation" "^11.0.0" + "@material/base" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/theme" "^11.0.0" + tslib "^2.1.0" + +"@material/feature-targeting@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-11.0.0.tgz#fa04d955c1374fe92cbee95fa86784fac8673fd7" + integrity sha512-7/jdaHm7C16Eq02tDQ1iI+giWKgk+QRNWFrmGKzHfXbU604XwY/eSLSiVS8QI01vx9QZ0aO9K84m0yhQQNQQtg== + dependencies: + tslib "^2.1.0" + +"@material/floating-label@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/floating-label/-/floating-label-11.0.0.tgz#54f8d9a24e2385c543ab1d9ce30ff922a6d091ee" + integrity sha512-sY/ijV06cU0y9+1OB122d6z2AuxLzjQgQGVq9dFLoVRL6jhV2HgOxGF/3cvZsgGGsv2liXagkmQ02jBV1ypvgA== + dependencies: + "@material/animation" "^11.0.0" + "@material/base" "^11.0.0" + "@material/dom" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/rtl" "^11.0.0" + "@material/theme" "^11.0.0" + "@material/typography" "^11.0.0" + tslib "^2.1.0" + +"@material/line-ripple@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/line-ripple/-/line-ripple-11.0.0.tgz#b13557e620ad6c6a64221d675d18df7390a32e2b" + integrity sha512-ws0p28hfG5P7RuCJZhHBDhPd/pYusszwRWMa1xkATxCjdCDc9hC9RIsUb6eIG9/iwpYnLNRvIoR5iF+01rVhow== + dependencies: + "@material/animation" "^11.0.0" + "@material/base" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/theme" "^11.0.0" + tslib "^2.1.0" + +"@material/notched-outline@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/notched-outline/-/notched-outline-11.0.0.tgz#8ea1c23203a4247d68e6588a3c80b88665860e2d" + integrity sha512-GwYFIRA6raFljNARmEpIcIjHztjKD8wcDf+6xl1WezsprGd/Qdzq59/VX76y1et8ZkkL0+fE+4dEaVpCHq/e8A== + dependencies: + "@material/base" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/floating-label" "^11.0.0" + "@material/rtl" "^11.0.0" + "@material/shape" "^11.0.0" + "@material/theme" "^11.0.0" + tslib "^2.1.0" + +"@material/ripple@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-11.0.0.tgz#a4eb7cd1627b30ac929fbece345076adc4b82805" + integrity sha512-672zAsYaL8aS861VgfEPL4sFMkFe0psiSc+4DfUTq7Nanl4e1gcarzzHZAn5IExUNk3/5QybDiXV+dbaL/0NjQ== + dependencies: + "@material/animation" "^11.0.0" + "@material/base" "^11.0.0" + "@material/dom" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/theme" "^11.0.0" + tslib "^2.1.0" + +"@material/rtl@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-11.0.0.tgz#69e0ff54e723996730916e56b2a11b50275ecd15" + integrity sha512-FcS8+N9MhnC0Wdd34O2yCC/5ylIwkfHjV5pbmHyEtb4YXoWngnPIxgpOr5PsUv95WSQBmeqWCRJDwS+sGZHoKQ== + dependencies: + "@material/theme" "^11.0.0" + tslib "^2.1.0" + +"@material/shape@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/shape/-/shape-11.0.0.tgz#0a1da3855d58c9261f0658932265bc54804e2377" + integrity sha512-O9/Dt/9Nbum1IvxRd4u8gCF4ghk9E55UNp2TGe+RN43zpTUbChh2raOFr3sQeRwLIzlb4wstUG9AxmdktrkDUQ== + dependencies: + "@material/feature-targeting" "^11.0.0" + "@material/rtl" "^11.0.0" + "@material/theme" "^11.0.0" + tslib "^2.1.0" + +"@material/textfield@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/textfield/-/textfield-11.0.0.tgz#8b937bddfa1268206b62b924e3bf7f3bae1d313d" + integrity sha512-7GwZCJplxQpdExNO8K3IOPH/SniCd4bcvOuKGYWjW1irOLYVX2Om0e7X2q70XWvD/B85Rb8ZaPXqx3EJiwNrvQ== + dependencies: + "@material/animation" "^11.0.0" + "@material/base" "^11.0.0" + "@material/density" "^11.0.0" + "@material/dom" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/floating-label" "^11.0.0" + "@material/line-ripple" "^11.0.0" + "@material/notched-outline" "^11.0.0" + "@material/ripple" "^11.0.0" + "@material/rtl" "^11.0.0" + "@material/shape" "^11.0.0" + "@material/theme" "^11.0.0" + "@material/typography" "^11.0.0" + tslib "^2.1.0" + +"@material/theme@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/theme/-/theme-11.0.0.tgz#179df345034213c5ae1e8dcaf47f67f7bf6b71dd" + integrity sha512-GnQI8sd2wHFD3AvmhpyRaH5o9D5Shobs1xDH4FdRU9+c+FNNqouZMDzyM6UpCX4700DzqvE7l0/1LjzB7ve7Lg== + dependencies: + "@material/feature-targeting" "^11.0.0" + tslib "^2.1.0" + +"@material/touch-target@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-11.0.0.tgz#4f0cc0b928c90114f8b9b4538688215a1769e629" + integrity sha512-S1XPYj3Bnkw26nFdYRZ0BHcNLfizF8HBeX9+OR7KuJUKaFB6CN01CtyEmDU3XNI0n140KjMtJnsZykWZommolQ== + dependencies: + "@material/base" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + tslib "^2.1.0" + +"@material/typography@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@material/typography/-/typography-11.0.0.tgz#23175cfe2e2409c79c8b1061709bc29dc0fecdc3" + integrity sha512-i9IGO/ZsF+YnqC2+PpJapt/8hSXOKFXaqv6B9uUr+iQ8GD4bEFpxm5kChzH918wJpCHvxbTYbnR6buaF9nkjCQ== + dependencies: + "@material/feature-targeting" "^11.0.0" + "@material/theme" "^11.0.0" + tslib "^2.1.0" + +"@mattrglobal/bbs-signatures@0.5.0", "@mattrglobal/bbs-signatures@^0.5.0": + version "0.5.0" + resolved "https://registry.npmjs.org/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz" + integrity sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ== optionalDependencies: "@mattrglobal/node-bbs-signatures" "0.11.0" "@mattrglobal/bls12381-key-pair@^0.5.0": - "integrity" "sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg==" - "resolved" "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz" - "version" "0.5.0" + version "0.5.0" + resolved "https://registry.npmjs.org/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz" + integrity sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg== dependencies: "@mattrglobal/bbs-signatures" "0.5.0" - "bs58" "4.0.1" - "rfc4648" "1.4.0" + bs58 "4.0.1" + rfc4648 "1.4.0" + +"@mattrglobal/node-bbs-signatures@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz#c63ab8648a529cfe1dd855cc78a93f78ee27a9f4" + integrity sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw== + dependencies: + neon-cli "0.4.0" + node-pre-gyp "0.14.0" + +"@metamask/detect-provider@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@metamask/detect-provider/-/detect-provider-1.2.0.tgz#3667a7531f2a682e3c3a43eaf3a1958bdb42a696" + integrity sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ== "@msgpack/msgpack@^2.7.1": - "integrity" "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==" - "resolved" "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz" - "version" "2.7.2" + version "2.7.2" + resolved "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz" + integrity sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw== "@multiformats/murmur3@^1.0.1", "@multiformats/murmur3@^1.0.3": - "integrity" "sha512-TPIBMPX4DX7T4291bPUAn/AMW6H6mnYoI4Bza1DeX1I59dpTWBbOgxaqc+139Ph+NEgb/PNd3sFS8VFoOXzNlw==" - "resolved" "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-1.1.1.tgz" - "version" "1.1.1" + version "1.1.1" + resolved "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-1.1.1.tgz" + integrity sha512-TPIBMPX4DX7T4291bPUAn/AMW6H6mnYoI4Bza1DeX1I59dpTWBbOgxaqc+139Ph+NEgb/PNd3sFS8VFoOXzNlw== dependencies: - "multiformats" "^9.5.4" - "murmurhash3js-revisited" "^3.0.0" + multiformats "^9.5.4" + murmurhash3js-revisited "^3.0.0" "@noble/ed25519@^1.5.1": - "integrity" "sha512-UKju89WV37IUALIMfKhKW3psO8AqmrE/GvH6QbPKjzolQ98zM7WmGUeY+xdIgSf5tqPFf75ZCYMgym6E9Jsw3Q==" - "resolved" "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.6.0.tgz" - "version" "1.6.0" + version "1.6.0" + resolved "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.6.0.tgz" + integrity sha512-UKju89WV37IUALIMfKhKW3psO8AqmrE/GvH6QbPKjzolQ98zM7WmGUeY+xdIgSf5tqPFf75ZCYMgym6E9Jsw3Q== "@noble/secp256k1@^1.3.0": - "integrity" "sha512-v11x6HReQymMELBq2fnwVthQMOPB5911fwem9515TLiNlitdOuS2qEMa1BzTcDgB563ql0238JGrpJJA1IaJ8Q==" - "resolved" "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.5.3.tgz" - "version" "1.5.3" + version "1.5.3" + resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.5.3.tgz" + integrity sha512-v11x6HReQymMELBq2fnwVthQMOPB5911fwem9515TLiNlitdOuS2qEMa1BzTcDgB563ql0238JGrpJJA1IaJ8Q== "@peculiar/asn1-schema@^2.0.44": - "integrity" "sha512-uaCnjQ9A9WwQSMuDJcNOCYEPXTahgKbFMvI7eMOMd8lXgx0J1eU7F3BoMsK5PFxa3dVUxjSQbaOjfgGoeHGgoQ==" - "resolved" "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.44.tgz" - "version" "2.0.44" + version "2.0.44" + resolved "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.44.tgz" + integrity sha512-uaCnjQ9A9WwQSMuDJcNOCYEPXTahgKbFMvI7eMOMd8lXgx0J1eU7F3BoMsK5PFxa3dVUxjSQbaOjfgGoeHGgoQ== dependencies: "@types/asn1js" "^2.0.2" - "asn1js" "^2.1.1" - "pvtsutils" "^1.2.1" - "tslib" "^2.3.0" + asn1js "^2.1.1" + pvtsutils "^1.2.1" + tslib "^2.3.0" "@peculiar/json-schema@^1.1.12": - "integrity" "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==" - "resolved" "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz" - "version" "1.1.12" + version "1.1.12" + resolved "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== dependencies: - "tslib" "^2.0.0" + tslib "^2.0.0" -"@peculiar/webcrypto@^1.1.3", "@peculiar/webcrypto@^1.1.6", "@peculiar/webcrypto@^1.1.7": - "integrity" "sha512-q7wDfZy3k/tpnsYB23/MyyDkjn6IdHh8w+xwoVMS5cu6CjVoFzngXDZEOOuSE4zus2yO6ciQhhHxd4XkLpwVnQ==" - "resolved" "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.2.3.tgz" - "version" "1.2.3" +"@peculiar/webcrypto@^1.1.3", "@peculiar/webcrypto@^1.1.6": + version "1.2.3" + resolved "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.2.3.tgz" + integrity sha512-q7wDfZy3k/tpnsYB23/MyyDkjn6IdHh8w+xwoVMS5cu6CjVoFzngXDZEOOuSE4zus2yO6ciQhhHxd4XkLpwVnQ== dependencies: "@peculiar/asn1-schema" "^2.0.44" "@peculiar/json-schema" "^1.1.12" - "pvtsutils" "^1.2.1" - "tslib" "^2.3.1" - "webcrypto-core" "^1.4.0" + pvtsutils "^1.2.1" + tslib "^2.3.1" + webcrypto-core "^1.4.0" + +"@peculiar/webcrypto@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.3.1.tgz#cd152b5d41841b4296983425fbeb9defb085bb0a" + integrity sha512-BdzqCnzquMaoPYsFqWP/Q8SNslweb6A+oVaVbt9JBuXuvb528CEDUGVA0NSEZrgXj8jt++2kx3anChiKhOV3Nw== + dependencies: + "@peculiar/asn1-schema" "^2.0.44" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.2.2" + tslib "^2.3.1" + webcrypto-core "^1.6.0" "@perspect3vism/ad4m@0.1.25": - "integrity" "sha512-l9+K+6WgtnIOILoQex0IB6dnuDbHrZzDPkl2vUftoS12xb8kYJGmkpsovSN9dHw5IJOU4YY7AEJEzXRwdtEcZQ==" - "resolved" "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.1.25.tgz" - "version" "0.1.25" + version "0.1.25" + resolved "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.1.25.tgz" + integrity sha512-l9+K+6WgtnIOILoQex0IB6dnuDbHrZzDPkl2vUftoS12xb8kYJGmkpsovSN9dHw5IJOU4YY7AEJEzXRwdtEcZQ== dependencies: "@apollo/client" "3.3.20" "@holochain/client" "0.3.2" "@types/jest" "^27.0.1" - "class-validator" "^0.13.1" - "graphql" "^15.5.0" - "react" "^17.0.2" - "reflect-metadata" "^0.1.13" - "type-graphql" "^1.1.1" + class-validator "^0.13.1" + graphql "^15.5.0" + react "^17.0.2" + reflect-metadata "^0.1.13" + type-graphql "^1.1.1" + +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - "integrity" "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - "resolved" "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" - "version" "1.1.2" + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= "@protobufjs/base64@^1.1.2": - "integrity" "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - "resolved" "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" - "version" "1.1.2" + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== "@protobufjs/codegen@^2.0.4": - "integrity" "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - "resolved" "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" - "version" "2.0.4" + version "2.0.4" + resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== "@protobufjs/eventemitter@^1.1.0": - "integrity" "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - "resolved" "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" - "version" "1.1.0" + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= "@protobufjs/fetch@^1.1.0": - "integrity" "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=" - "resolved" "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" - "version" "1.1.0" + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= dependencies: "@protobufjs/aspromise" "^1.1.1" "@protobufjs/inquire" "^1.1.0" "@protobufjs/float@^1.0.2": - "integrity" "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - "resolved" "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" - "version" "1.0.2" + version "1.0.2" + resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= "@protobufjs/inquire@^1.1.0": - "integrity" "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - "resolved" "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" - "version" "1.1.0" + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= "@protobufjs/path@^1.1.2": - "integrity" "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - "resolved" "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" - "version" "1.1.2" + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= "@protobufjs/pool@^1.1.0": - "integrity" "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - "resolved" "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" - "version" "1.1.0" + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= "@protobufjs/utf8@^1.1.0": - "integrity" "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - "resolved" "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" - "version" "1.1.0" + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + +"@rollup/plugin-commonjs@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" + integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-json@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" + integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + +"@rollup/plugin-node-resolve@^11.2.0": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" + integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^4.1.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.0.tgz#a14bbd058fdbba0a5647143b16ed0d86fb60bd08" + integrity sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" "@sideway/address@^4.1.3": - "integrity" "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==" - "resolved" "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz" - "version" "4.1.3" + version "4.1.3" + resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz" + integrity sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ== dependencies: "@hapi/hoek" "^9.0.0" "@sideway/formula@^3.0.0": - "integrity" "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - "resolved" "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz" - "version" "3.0.0" + version "3.0.0" + resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== "@sideway/pinpoint@^2.0.0": - "integrity" "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - "resolved" "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" - "version" "2.0.0" + version "2.0.0" + resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== "@sindresorhus/is@^0.14.0": - "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" - "version" "0.14.0" + version "0.14.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@sinonjs/commons@^1.7.0": - "integrity" "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==" - "resolved" "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" - "version" "1.8.3" + version "1.8.3" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== dependencies: - "type-detect" "4.0.8" + type-detect "4.0.8" "@sinonjs/fake-timers@^8.0.1": - "integrity" "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==" - "resolved" "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" - "version" "8.1.0" + version "8.1.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== dependencies: "@sinonjs/commons" "^1.7.0" +"@smui/button@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smui/button/-/button-4.2.0.tgz#d9c0a9527bd3fb9b318c69eaad188eb23b18e301" + integrity sha512-impnVMXWHLqBXUyjo+GKRuLOgICv2bX//JVKKV3oba8msIimdOi0BR1Ds7ecti6248eXuFlwrE4GM/oc/57G1A== + dependencies: + "@material/button" "^11.0.0" + "@material/elevation" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/ripple" "^11.0.0" + "@material/theme" "^11.0.0" + "@smui/common" "^4.2.0" + "@smui/ripple" "^4.2.0" + +"@smui/common@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smui/common/-/common-4.2.0.tgz#81ddb9d5b9a39cc814188fa18834301261b9ea9e" + integrity sha512-ersYpoqvb0hGP2lFdOtNlue5m74H/eOEtpbb5r4Sk8lmwaDh+Gj8xbX93AAE2Jfq/p6XcEmHB6CsGoATi5JHOQ== + dependencies: + "@material/dom" "^11.0.0" + svelte "^3.35.0" + +"@smui/floating-label@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smui/floating-label/-/floating-label-4.2.0.tgz#08e18d19f61967a6613be68e90028622913ef97c" + integrity sha512-EQhJkzt0AMqbBj/bxY9TmovsPVPxVcfQCZZrpfbJ0V2PqyZGOVXEjggGpa638PcRHPX44NjSSCnJNiKa6SCGEQ== + dependencies: + "@material/floating-label" "^11.0.0" + "@smui/common" "^4.2.0" + +"@smui/line-ripple@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smui/line-ripple/-/line-ripple-4.2.0.tgz#51aac1b1695d87d2331f00a0cd5626e0f48dbf0f" + integrity sha512-FA/btw+A97pUGYejkdZmSSQ2V6pnAVcgY4W7qNagRlfuyxfHf7a+rFQjgj8eN4hRBSihh8hcV+Tyfo+2oCOYog== + dependencies: + "@material/line-ripple" "^11.0.0" + "@smui/common" "^4.2.0" + +"@smui/notched-outline@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smui/notched-outline/-/notched-outline-4.2.0.tgz#3e5e382a24135fa2020e80f3cba3e8dc04342be1" + integrity sha512-6HY/N2e8jFZgtrM1xBpniYrZGhBRuM26PpFAHce6BjHB2IUDd+hdQbGmsiQnoQ6CsXhTuDyHL8c2RMfuSRbAJg== + dependencies: + "@material/notched-outline" "^11.0.0" + "@smui/common" "^4.2.0" + +"@smui/paper@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smui/paper/-/paper-4.2.0.tgz#0d4d8fa50c4029d69829944ad4f45d00c806c610" + integrity sha512-szeOAYwB6pyppGy5md3CdNZW59IDnwD/mw+H6vJdHuxEEe6OXvQ2rPi9ojOrHEiBz8dN8ryTKQxTrXDbrJWeNA== + dependencies: + "@material/elevation" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/shape" "^11.0.0" + "@material/theme" "^11.0.0" + "@material/typography" "^11.0.0" + "@smui/common" "^4.2.0" + +"@smui/ripple@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smui/ripple/-/ripple-4.2.0.tgz#cde00f50393094658b32965569c6758274b24154" + integrity sha512-oTaPC/6FAYwifth9AvkUuIC5SenMPITg1yZSdD9B1Wcgi2NRAWuMDV2j6Kc+yYgv6iUCKlQ26fCxK2xmYwqhug== + dependencies: + "@material/dom" "^11.0.0" + "@material/ripple" "^11.0.0" + +"@smui/textfield@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smui/textfield/-/textfield-4.2.0.tgz#55d357fd1819540525533ce8c46364748e753308" + integrity sha512-4RxvxcabtPrlYiHddsF/uFjOZhA3qA/W17HyiccTKxfHpZWOxxnZvCE4CDs8LyckEvz73fSUTQOb4pqd2Of02g== + dependencies: + "@material/dom" "^11.0.0" + "@material/feature-targeting" "^11.0.0" + "@material/ripple" "^11.0.0" + "@material/rtl" "^11.0.0" + "@material/textfield" "^11.0.0" + "@smui/common" "^4.2.0" + "@smui/floating-label" "^4.2.0" + "@smui/line-ripple" "^4.2.0" + "@smui/notched-outline" "^4.2.0" + "@smui/ripple" "^4.2.0" + "@socket.io/base64-arraybuffer@~1.0.2": - "integrity" "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==" - "resolved" "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz" - "version" "1.0.2" + version "1.0.2" + resolved "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz" + integrity sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ== "@socket.io/component-emitter@~3.0.0": - "integrity" "sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q==" - "resolved" "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz" - "version" "3.0.0" + version "3.0.0" + resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz" + integrity sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q== "@stablelib/aead@^1.0.1": - "integrity" "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - "resolved" "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz" + integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== "@stablelib/aes-kw@^1.0.0": - "integrity" "sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w==" - "resolved" "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz" + integrity sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w== dependencies: "@stablelib/aes" "^1.0.1" "@stablelib/binary" "^1.0.1" @@ -1104,43 +1638,35 @@ "@stablelib/wipe" "^1.0.1" "@stablelib/aes@^1.0.1": - "integrity" "sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw==" - "resolved" "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/aes/-/aes-1.0.1.tgz" + integrity sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw== dependencies: "@stablelib/binary" "^1.0.1" "@stablelib/blockcipher" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/binary@^1.0.1": - "integrity" "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==" - "resolved" "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== dependencies: "@stablelib/int" "^1.0.1" "@stablelib/blockcipher@^1.0.1": - "integrity" "sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew==" - "resolved" "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz" + integrity sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew== "@stablelib/bytes@^1.0.1": - "integrity" "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - "resolved" "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz" - "version" "1.0.1" - -"@stablelib/chacha@^1.0.1": - "integrity" "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==" - "resolved" "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/wipe" "^1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz" + integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== "@stablelib/chacha20poly1305@^1.0.1": - "integrity" "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==" - "resolved" "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz" + integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== dependencies: "@stablelib/aead" "^1.0.1" "@stablelib/binary" "^1.0.1" @@ -1149,116 +1675,124 @@ "@stablelib/poly1305" "^1.0.1" "@stablelib/wipe" "^1.0.1" +"@stablelib/chacha@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz" + integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + "@stablelib/constant-time@^1.0.1": - "integrity" "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - "resolved" "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz" + integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== "@stablelib/ed25519@^1.0.1": - "integrity" "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==" - "resolved" "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz" - "version" "1.0.2" + version "1.0.2" + resolved "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz" + integrity sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ== dependencies: "@stablelib/random" "^1.0.1" "@stablelib/sha512" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/hash@^1.0.1": - "integrity" "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - "resolved" "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== "@stablelib/hkdf@^1.0.1": - "integrity" "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==" - "resolved" "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz" + integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== dependencies: "@stablelib/hash" "^1.0.1" "@stablelib/hmac" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/hmac@^1.0.1": - "integrity" "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==" - "resolved" "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz" + integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== dependencies: "@stablelib/constant-time" "^1.0.1" "@stablelib/hash" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/int@^1.0.1": - "integrity" "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - "resolved" "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== "@stablelib/keyagreement@^1.0.1": - "integrity" "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==" - "resolved" "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz" + integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== dependencies: "@stablelib/bytes" "^1.0.1" "@stablelib/poly1305@^1.0.1": - "integrity" "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==" - "resolved" "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz" + integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== dependencies: "@stablelib/constant-time" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/random@^1.0.1": - "integrity" "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==" - "resolved" "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz" + integrity sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ== dependencies: "@stablelib/binary" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/sha256@^1.0.1": - "integrity" "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==" - "resolved" "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz" + integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== dependencies: "@stablelib/binary" "^1.0.1" "@stablelib/hash" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/sha512@^1.0.1": - "integrity" "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==" - "resolved" "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz" + integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== dependencies: "@stablelib/binary" "^1.0.1" "@stablelib/hash" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/wipe@^1.0.1": - "integrity" "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - "resolved" "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== "@stablelib/x25519@^1.0.0", "@stablelib/x25519@^1.0.1": - "integrity" "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==" - "resolved" "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz" + integrity sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q== dependencies: "@stablelib/keyagreement" "^1.0.1" "@stablelib/random" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/xchacha20@^1.0.1": - "integrity" "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==" - "resolved" "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz" + integrity sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw== dependencies: "@stablelib/binary" "^1.0.1" "@stablelib/chacha" "^1.0.1" "@stablelib/wipe" "^1.0.1" "@stablelib/xchacha20poly1305@^1.0.0": - "integrity" "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==" - "resolved" "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz" + integrity sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg== dependencies: "@stablelib/aead" "^1.0.1" "@stablelib/chacha20poly1305" "^1.0.1" @@ -1267,103 +1801,103 @@ "@stablelib/xchacha20" "^1.0.1" "@szmarczak/http-timer@^1.1.2": - "integrity" "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==" - "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" - "version" "1.1.2" + version "1.1.2" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: - "defer-to-connect" "^1.0.1" + defer-to-connect "^1.0.1" "@tokenizer/token@^0.3.0": - "integrity" "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - "resolved" "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" - "version" "0.3.0" + version "0.3.0" + resolved "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== "@tootallnate/once@1": - "integrity" "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - "resolved" "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" - "version" "1.1.2" + version "1.1.2" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@transmute/did-key-bls12381@^0.2.1-unstable.42": - "integrity" "sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ==" - "resolved" "https://registry.npmjs.org/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz" - "version" "0.2.1-unstable.42" + version "0.2.1-unstable.42" + resolved "https://registry.npmjs.org/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz" + integrity sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ== dependencies: "@mattrglobal/bbs-signatures" "^0.5.0" "@mattrglobal/bls12381-key-pair" "^0.5.0" - "base64url" "^3.0.1" - "bs58" "^4.0.1" + base64url "^3.0.1" + bs58 "^4.0.1" "@transmute/did-key-cipher@^0.2.1-unstable.42": - "integrity" "sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw==" - "resolved" "https://registry.npmjs.org/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz" - "version" "0.2.1-unstable.42" + version "0.2.1-unstable.42" + resolved "https://registry.npmjs.org/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz" + integrity sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw== dependencies: "@peculiar/webcrypto" "^1.1.3" "@stablelib/aes-kw" "^1.0.0" "@stablelib/xchacha20poly1305" "^1.0.0" "@transmute/did-key-common" "^0.2.1-unstable.42" - "web-streams-polyfill" "^3.0.0" + web-streams-polyfill "^3.0.0" "@transmute/did-key-common@^0.2.1-unstable.42": - "integrity" "sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A==" - "resolved" "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz" - "version" "0.2.1-unstable.42" + version "0.2.1-unstable.42" + resolved "https://registry.npmjs.org/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz" + integrity sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A== dependencies: - "base64url" "^3.0.1" - "borc" "^2.1.2" - "canonicalize" "^1.0.3" - "cbor" "^5.1.0" + base64url "^3.0.1" + borc "^2.1.2" + canonicalize "^1.0.3" + cbor "^5.1.0" "@transmute/did-key-ed25519@^0.2.1-unstable.29", "@transmute/did-key-ed25519@^0.2.1-unstable.42": - "integrity" "sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw==" - "resolved" "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz" - "version" "0.2.1-unstable.42" + version "0.2.1-unstable.42" + resolved "https://registry.npmjs.org/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz" + integrity sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw== dependencies: "@stablelib/ed25519" "^1.0.1" "@transmute/did-key-common" "^0.2.1-unstable.42" "@transmute/did-key-x25519" "^0.2.1-unstable.42" "@trust/keyto" "^1.0.1" - "base64url" "^3.0.1" - "bs58" "^4.0.1" - "canonicalize" "^1.0.1" + base64url "^3.0.1" + bs58 "^4.0.1" + canonicalize "^1.0.1" "@transmute/did-key-secp256k1@^0.2.1-unstable.29", "@transmute/did-key-secp256k1@^0.2.1-unstable.42": - "integrity" "sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ==" - "resolved" "https://registry.npmjs.org/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz" - "version" "0.2.1-unstable.42" + version "0.2.1-unstable.42" + resolved "https://registry.npmjs.org/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz" + integrity sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ== dependencies: "@transmute/did-key-common" "^0.2.1-unstable.42" "@trust/keyto" "^1.0.1" - "base64url" "^3.0.1" - "bs58" "^4.0.1" - "canonicalize" "^1.0.1" - "secp256k1" "^4.0.1" + base64url "^3.0.1" + bs58 "^4.0.1" + canonicalize "^1.0.1" + secp256k1 "^4.0.1" "@transmute/did-key-web-crypto@^0.2.1-unstable.42": - "integrity" "sha512-GaD320cZxPJAVdQtSrxgTn91T1M/2qwSMQgowVdnY5HKEik2BS3o1kU7DYAJpUPdU2WNKg9W3Rr+C/dRY0Q0rQ==" - "resolved" "https://registry.npmjs.org/@transmute/did-key-web-crypto/-/did-key-web-crypto-0.2.1-unstable.42.tgz" - "version" "0.2.1-unstable.42" + version "0.2.1-unstable.42" + resolved "https://registry.npmjs.org/@transmute/did-key-web-crypto/-/did-key-web-crypto-0.2.1-unstable.42.tgz" + integrity sha512-GaD320cZxPJAVdQtSrxgTn91T1M/2qwSMQgowVdnY5HKEik2BS3o1kU7DYAJpUPdU2WNKg9W3Rr+C/dRY0Q0rQ== dependencies: "@transmute/web-crypto-key-pair" "^0.6.1-unstable.18" "@transmute/did-key-x25519@^0.2.1-unstable.42": - "integrity" "sha512-pInHZaepvjmfym1fBDrdbL5isUVbYHR1nYBsH3uD9EPn7SwZfEBe0Vg9hUop81b4x/6+VVWuGm2dIhpVBxsRPQ==" - "resolved" "https://registry.npmjs.org/@transmute/did-key-x25519/-/did-key-x25519-0.2.1-unstable.42.tgz" - "version" "0.2.1-unstable.42" + version "0.2.1-unstable.42" + resolved "https://registry.npmjs.org/@transmute/did-key-x25519/-/did-key-x25519-0.2.1-unstable.42.tgz" + integrity sha512-pInHZaepvjmfym1fBDrdbL5isUVbYHR1nYBsH3uD9EPn7SwZfEBe0Vg9hUop81b4x/6+VVWuGm2dIhpVBxsRPQ== dependencies: "@stablelib/ed25519" "^1.0.1" "@stablelib/x25519" "^1.0.0" "@transmute/did-key-cipher" "^0.2.1-unstable.42" "@transmute/did-key-common" "^0.2.1-unstable.42" "@trust/keyto" "^1.0.1" - "base64url" "^3.0.1" - "bs58" "^4.0.1" - "canonicalize" "^1.0.1" + base64url "^3.0.1" + bs58 "^4.0.1" + canonicalize "^1.0.1" "@transmute/did-key.js@^0.2.1-unstable.29": - "integrity" "sha512-vqwkJeAIkpekSCszKztIOVGFuWZMF8GJfiSHMv+vsS0cgLqzHer8WCUCudWt76rc2s90uK7FdlkvdwoZgGRl6g==" - "resolved" "https://registry.npmjs.org/@transmute/did-key.js/-/did-key.js-0.2.1-unstable.42.tgz" - "version" "0.2.1-unstable.42" + version "0.2.1-unstable.42" + resolved "https://registry.npmjs.org/@transmute/did-key.js/-/did-key.js-0.2.1-unstable.42.tgz" + integrity sha512-vqwkJeAIkpekSCszKztIOVGFuWZMF8GJfiSHMv+vsS0cgLqzHer8WCUCudWt76rc2s90uK7FdlkvdwoZgGRl6g== dependencies: "@transmute/did-key-bls12381" "^0.2.1-unstable.42" "@transmute/did-key-ed25519" "^0.2.1-unstable.42" @@ -1372,53 +1906,53 @@ "@transmute/did-key-x25519" "^0.2.1-unstable.42" "@transmute/did-wallet@lucksus/did-wallet": - "integrity" "sha512-iya0qxEe2xkeDIZ8StHWGS7kH81nw8YZ4EzwGPkW/SaGlEB2UExcYAlJdfHM5ErqDDOqp7Ke3Lla3VywMtRhIA==" - "resolved" "git+ssh://git@github.com/lucksus/did-wallet.git#cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2" - "version" "0.0.0-6" + version "0.0.0-6" + resolved "git+ssh://git@github.com/lucksus/did-wallet.git#cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2" + integrity sha512-iya0qxEe2xkeDIZ8StHWGS7kH81nw8YZ4EzwGPkW/SaGlEB2UExcYAlJdfHM5ErqDDOqp7Ke3Lla3VywMtRhIA== dependencies: - "base64url" "^3.0.1" - "jsonschema" "^1.2.4" - "lodash" "^4.17.11" + base64url "^3.0.1" + jsonschema "^1.2.4" + lodash "^4.17.11" "@transmute/ld-key-pair@^0.6.1-unstable.37": - "integrity" "sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ==" - "resolved" "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz" - "version" "0.6.1-unstable.37" + version "0.6.1-unstable.37" + resolved "https://registry.npmjs.org/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz" + integrity sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ== "@transmute/web-crypto-key-pair@^0.6.1-unstable.18": - "integrity" "sha512-BVN5ECm3t5ldJiyixsdoXaptr14p2PxOOGWvyBm5eqWlVy/kiWQiVh43wZgEbHtjOkacTfw+BaVAtYkyGn2tpw==" - "resolved" "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.6.1-unstable.37.tgz" - "version" "0.6.1-unstable.37" + version "0.6.1-unstable.37" + resolved "https://registry.npmjs.org/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.6.1-unstable.37.tgz" + integrity sha512-BVN5ECm3t5ldJiyixsdoXaptr14p2PxOOGWvyBm5eqWlVy/kiWQiVh43wZgEbHtjOkacTfw+BaVAtYkyGn2tpw== dependencies: "@peculiar/webcrypto" "^1.1.6" "@transmute/ld-key-pair" "^0.6.1-unstable.37" - "big-integer" "^1.6.48" + big-integer "^1.6.48" "@trust/keyto@^1.0.1": - "integrity" "sha512-OXTmKkrnkwktCX86XA7eWs1TQ6u64enm0syzAfNhjigbuGLy5aLhbhRYWtjt4zzdG/irWudluheRZ9Ic9pCwsA==" - "resolved" "https://registry.npmjs.org/@trust/keyto/-/keyto-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@trust/keyto/-/keyto-1.0.1.tgz" + integrity sha512-OXTmKkrnkwktCX86XA7eWs1TQ6u64enm0syzAfNhjigbuGLy5aLhbhRYWtjt4zzdG/irWudluheRZ9Ic9pCwsA== dependencies: - "asn1.js" "^5.2.0" - "base64url" "^3.0.1" - "elliptic" "^6.5.2" + asn1.js "^5.2.0" + base64url "^3.0.1" + elliptic "^6.5.2" "@types/accepts@*", "@types/accepts@^1.3.5": - "integrity" "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==" - "resolved" "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz" - "version" "1.3.5" + version "1.3.5" + resolved "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz" + integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== dependencies: "@types/node" "*" "@types/asn1js@^2.0.2": - "integrity" "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" - "resolved" "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz" - "version" "2.0.2" + version "2.0.2" + resolved "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz" + integrity sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - "integrity" "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==" - "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz" - "version" "7.1.18" + version "7.1.18" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz" + integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1427,59 +1961,73 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - "integrity" "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==" - "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" - "version" "7.6.4" + version "7.6.4" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - "integrity" "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==" - "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" - "version" "7.4.1" + version "7.4.1" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - "integrity" "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==" - "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz" - "version" "7.14.2" + version "7.14.2" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== dependencies: "@babel/types" "^7.3.0" +"@types/bn.js@^4.11.5": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/bn.js@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" + integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + dependencies: + "@types/node" "*" + "@types/body-parser@*": - "integrity" "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==" - "resolved" "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" - "version" "1.19.2" + version "1.19.2" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== dependencies: "@types/connect" "*" "@types/node" "*" "@types/body-parser@1.19.0": - "integrity" "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==" - "resolved" "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz" - "version" "1.19.0" + version "1.19.0" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz" + integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== dependencies: "@types/connect" "*" "@types/node" "*" "@types/connect@*": - "integrity" "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==" - "resolved" "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" - "version" "3.4.35" + version "3.4.35" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" "@types/content-disposition@*": - "integrity" "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" - "resolved" "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz" - "version" "0.5.4" + version "0.5.4" + resolved "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ== "@types/cookies@*": - "integrity" "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==" - "resolved" "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz" - "version" "0.7.7" + version "0.7.7" + resolved "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz" + integrity sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA== dependencies: "@types/connect" "*" "@types/express" "*" @@ -1487,30 +2035,40 @@ "@types/node" "*" "@types/cors@2.8.10": - "integrity" "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==" - "resolved" "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz" - "version" "2.8.10" + version "2.8.10" + resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz" + integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== "@types/debug@^4.1.5": - "integrity" "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==" - "resolved" "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" - "version" "4.1.7" + version "4.1.7" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== dependencies: "@types/ms" "*" +"@types/estree@*": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.21": - "integrity" "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==" - "resolved" "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz" - "version" "4.17.28" + version "4.17.28" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*", "@types/express@^4.17.12": - "integrity" "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==" - "resolved" "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" - "version" "4.17.13" + version "4.17.13" + resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" @@ -1518,102 +2076,102 @@ "@types/serve-static" "*" "@types/faker@^5.5.7": - "integrity" "sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA==" - "resolved" "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz" - "version" "5.5.9" + version "5.5.9" + resolved "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== "@types/fs-capacitor@*": - "integrity" "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==" - "resolved" "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz" - "version" "2.0.0" + version "2.0.0" + resolved "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz" + integrity sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== dependencies: "@types/node" "*" "@types/fs-extra@^9.0.12": - "integrity" "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==" - "resolved" "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" - "version" "9.0.13" + version "9.0.13" + resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== dependencies: "@types/node" "*" "@types/glob@^7.1.3": - "integrity" "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==" - "resolved" "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" - "version" "7.2.0" + version "7.2.0" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/graceful-fs@^4.1.2": - "integrity" "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==" - "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" - "version" "4.1.5" + version "4.1.5" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== dependencies: "@types/node" "*" "@types/http-assert@*": - "integrity" "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" - "resolved" "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz" - "version" "1.5.3" + version "1.5.3" + resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz" + integrity sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA== "@types/http-errors@*": - "integrity" "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==" - "resolved" "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.2.tgz" - "version" "1.8.2" + version "1.8.2" + resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.2.tgz" + integrity sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w== "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - "integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - "version" "2.0.4" + version "2.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== "@types/istanbul-lib-report@*": - "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - "version" "3.0.0" + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" - "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - "version" "3.0.1" + version "3.0.1" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== dependencies: "@types/istanbul-lib-report" "*" "@types/jest@^27.0.0", "@types/jest@^27.0.1": - "integrity" "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==" - "resolved" "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz" - "version" "27.4.0" + version "27.4.0" + resolved "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz" + integrity sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ== dependencies: - "jest-diff" "^27.0.0" - "pretty-format" "^27.0.0" + jest-diff "^27.0.0" + pretty-format "^27.0.0" "@types/js-yaml@^4.0.2": - "integrity" "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==" - "resolved" "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz" - "version" "4.0.5" + version "4.0.5" + resolved "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz" + integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== "@types/json-stable-stringify@^1.0.33": - "integrity" "sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw==" - "resolved" "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz" - "version" "1.0.33" + version "1.0.33" + resolved "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz" + integrity sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw== "@types/keygrip@*": - "integrity" "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" - "resolved" "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz" - "version" "1.0.2" + version "1.0.2" + resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz" + integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== "@types/koa-compose@*": - "integrity" "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==" - "resolved" "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz" - "version" "3.2.5" + version "3.2.5" + resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz" + integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== dependencies: "@types/koa" "*" "@types/koa@*": - "integrity" "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==" - "resolved" "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz" - "version" "2.13.4" + version "2.13.4" + resolved "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz" + integrity sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw== dependencies: "@types/accepts" "*" "@types/content-disposition" "*" @@ -1625,439 +2183,516 @@ "@types/node" "*" "@types/lodash@*": - "integrity" "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==" - "resolved" "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz" - "version" "4.14.178" + version "4.14.178" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz" + integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw== "@types/long@^4.0.0", "@types/long@^4.0.1": - "integrity" "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - "resolved" "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz" - "version" "4.0.1" + version "4.0.1" + resolved "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== "@types/lowdb@^1.0.11": - "integrity" "sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg==" - "resolved" "https://registry.npmjs.org/@types/lowdb/-/lowdb-1.0.11.tgz" - "version" "1.0.11" + version "1.0.11" + resolved "https://registry.npmjs.org/@types/lowdb/-/lowdb-1.0.11.tgz" + integrity sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg== dependencies: "@types/lodash" "*" "@types/mime@^1": - "integrity" "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - "resolved" "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" - "version" "1.3.2" + version "1.3.2" + resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/minimatch@*", "@types/minimatch@^3.0.4": - "integrity" "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" - "version" "3.0.5" + version "3.0.5" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/ms@*": - "integrity" "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - "resolved" "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" - "version" "0.7.31" + version "0.7.31" + resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node-fetch@^2.5.11": - "integrity" "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==" - "resolved" "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz" - "version" "2.5.12" + version "2.5.12" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz" + integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== dependencies: "@types/node" "*" - "form-data" "^3.0.0" + form-data "^3.0.0" -"@types/node@*", "@types/node@^14.14.22", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - "integrity" "sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-14.18.9.tgz" - "version" "14.18.9" +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^14.14.22": + version "14.18.9" + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.9.tgz" + integrity sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q== "@types/node@^10.1.0": - "integrity" "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" - "version" "10.17.60" + version "10.17.60" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^12.12.6": + version "12.20.46" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.46.tgz#7e49dee4c54fd19584e6a9e0da5f3dc2e9136bc7" + integrity sha512-cPjLXj8d6anFPzFvOPxS3fvly3Shm5nTfl6g8X5smexixbuGUf7hfr21J5tX9JW+UPStp/5P5R8qrKL5IyVJ+A== + +"@types/node@^8.0.24": + version "8.10.66" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" + integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" "@types/prettier@^2.1.5": - "integrity" "sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w==" - "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz" - "version" "2.4.3" + version "2.4.3" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz" + integrity sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w== + +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== "@types/qs@*": - "integrity" "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - "resolved" "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" - "version" "6.9.7" + version "6.9.7" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== "@types/range-parser@*": - "integrity" "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - "resolved" "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" - "version" "1.2.4" + version "1.2.4" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" "@types/retry@^0.12.0": - "integrity" "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - "resolved" "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz" - "version" "0.12.1" + version "0.12.1" + resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz" + integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== -"@types/secp256k1@^4.0.3": - "integrity" "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==" - "resolved" "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz" - "version" "4.0.3" +"@types/secp256k1@^4.0.1", "@types/secp256k1@^4.0.3": + version "4.0.3" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== dependencies: "@types/node" "*" "@types/semver@^7.3.3": - "integrity" "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" - "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz" - "version" "7.3.9" + version "7.3.9" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz" + integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== "@types/serve-static@*": - "integrity" "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==" - "resolved" "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" - "version" "1.13.10" + version "1.13.10" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/sha256@^0.2.0": - "integrity" "sha512-QYMr6HuxTQunFWRLZpGopbkgQFoFWOmKTBGgNSYiWMqU/CWnQSTo3edyHvgsRXsOWtOSOG/cmDptPzgCeOsQGw==" - "resolved" "https://registry.npmjs.org/@types/sha256/-/sha256-0.2.0.tgz" - "version" "0.2.0" + version "0.2.0" + resolved "https://registry.npmjs.org/@types/sha256/-/sha256-0.2.0.tgz" + integrity sha512-QYMr6HuxTQunFWRLZpGopbkgQFoFWOmKTBGgNSYiWMqU/CWnQSTo3edyHvgsRXsOWtOSOG/cmDptPzgCeOsQGw== dependencies: "@types/node" "*" "@types/stack-utils@^2.0.0": - "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - "version" "2.0.1" + version "2.0.1" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/uuid@^8.3.1": - "integrity" "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" - "resolved" "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz" + integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== "@types/ws@^7.0.0": - "integrity" "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==" - "resolved" "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" - "version" "7.4.7" + version "7.4.7" + resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== dependencies: "@types/node" "*" "@types/yargs-parser@*": - "integrity" "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" - "version" "20.2.1" + version "20.2.1" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== "@types/yargs@^16.0.0": - "integrity" "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==" - "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" - "version" "16.0.4" + version "16.0.4" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== dependencies: "@types/yargs-parser" "*" "@types/zen-observable@^0.8.0": - "integrity" "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" - "resolved" "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz" - "version" "0.8.3" + version "0.8.3" + resolved "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz" + integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== + +"@typescript/lib-dom@npm:@types/web": + version "0.0.55" + resolved "https://registry.yarnpkg.com/@types/web/-/web-0.0.55.tgz#0677cd86c6a4dd8c3592bd5f36435aa7e1b99028" + integrity sha512-YMH9aZrSJIMRMioCUwrgauI3iS/w2wRFN45Xxm0FE9Tt3hqaqkvOzjDFGsNjyKZzz7GJC0ilb+0tv59ytSUbrQ== "@vascosantos/moving-average@^1.1.0": - "integrity" "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" - "resolved" "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz" - "version" "1.1.0" + version "1.1.0" + resolved "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz" + integrity sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w== "@wry/context@^0.6.0": - "integrity" "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==" - "resolved" "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz" - "version" "0.6.1" + version "0.6.1" + resolved "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz" + integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== dependencies: - "tslib" "^2.3.0" + tslib "^2.3.0" "@wry/equality@^0.1.2": - "integrity" "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==" - "resolved" "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz" - "version" "0.1.11" + version "0.1.11" + resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz" + integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== dependencies: - "tslib" "^1.9.3" + tslib "^1.9.3" "@wry/equality@^0.5.0": - "integrity" "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==" - "resolved" "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz" - "version" "0.5.2" + version "0.5.2" + resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz" + integrity sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA== dependencies: - "tslib" "^2.3.0" + tslib "^2.3.0" "@wry/trie@^0.3.0": - "integrity" "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==" - "resolved" "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz" - "version" "0.3.1" - dependencies: - "tslib" "^2.3.0" - -"abab@^2.0.3", "abab@^2.0.5": - "integrity" "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" - "resolved" "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz" - "version" "2.0.5" - -"abbrev@1": - "integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - "version" "1.1.1" - -"abort-controller@*", "abort-controller@^3.0.0": - "integrity" "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==" - "resolved" "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "event-target-shim" "^5.0.0" - -"abortable-iterator@^3.0.0", "abortable-iterator@^3.0.2": - "integrity" "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==" - "resolved" "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "get-iterator" "^1.0.2" - -"abstract-leveldown@^7.2.0": - "integrity" "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==" - "resolved" "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "buffer" "^6.0.3" - "catering" "^2.0.0" - "is-buffer" "^2.0.5" - "level-concat-iterator" "^3.0.0" - "level-supports" "^2.0.1" - "queue-microtask" "^1.2.3" - -"abstract-logging@^2.0.0": - "integrity" "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" - "resolved" "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz" - "version" "2.0.1" - -"accepts@^1.3.5", "accepts@~1.3.7": - "integrity" "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==" - "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" - "version" "1.3.7" - dependencies: - "mime-types" "~2.1.24" - "negotiator" "0.6.2" - -"acorn-globals@^6.0.0": - "integrity" "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==" - "resolved" "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "acorn" "^7.1.1" - "acorn-walk" "^7.1.1" - -"acorn-walk@^7.1.1": - "integrity" "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" - "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" - "version" "7.2.0" - -"acorn@^7.1.1": - "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - "version" "7.4.1" - -"acorn@^8.2.4": - "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - "version" "8.7.0" - -"agent-base@6": - "integrity" "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==" - "resolved" "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - "version" "6.0.2" - dependencies: - "debug" "4" - -"aggregate-error@^3.0.0", "aggregate-error@^3.1.0": - "integrity" "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==" - "resolved" "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "clean-stack" "^2.0.0" - "indent-string" "^4.0.0" - -"ajv@^6.12.3": - "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" - "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - "version" "6.12.6" - dependencies: - "fast-deep-equal" "^3.1.1" - "fast-json-stable-stringify" "^2.0.0" - "json-schema-traverse" "^0.4.1" - "uri-js" "^4.2.2" - -"ansi-align@^3.0.0": - "integrity" "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==" - "resolved" "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "string-width" "^4.1.0" - -"ansi-escapes@^4.2.1": - "integrity" "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" - "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - "version" "4.3.2" - dependencies: - "type-fest" "^0.21.3" - -"ansi-regex@^2.0.0": - "integrity" "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - "version" "2.1.1" - -"ansi-regex@^3.0.0": - "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" - "version" "3.0.0" - -"ansi-regex@^5.0.1": - "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - "version" "5.0.1" - -"ansi-styles@^3.1.0", "ansi-styles@^3.2.1": - "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "color-convert" "^1.9.0" - -"ansi-styles@^4.0.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "color-convert" "^2.0.1" - -"ansi-styles@^4.1.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "color-convert" "^2.0.1" - -"ansi-styles@^5.0.0": - "integrity" "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - "version" "5.2.0" - -"any-signal@^2.1.1", "any-signal@^2.1.2": - "integrity" "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==" - "resolved" "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz" - "version" "2.1.2" - dependencies: - "abort-controller" "^3.0.0" - "native-abort-controller" "^1.0.3" - -"any-signal@^3.0.0": - "integrity" "sha512-l1H1GEkGGIXVGfCtvq8N68YI7gHajmfzRdKhmb8sGyAQpLCblirLa8eB09j4uKaiwe7vodAChocUf7AT3mYq5g==" - "resolved" "https://registry.npmjs.org/any-signal/-/any-signal-3.0.0.tgz" - "version" "3.0.0" - -"anymatch@^3.0.3": - "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" - "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - "version" "3.1.2" - dependencies: - "normalize-path" "^3.0.0" - "picomatch" "^2.0.4" - -"apollo-cache-control@^0.14.0": - "integrity" "sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==" - "resolved" "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz" - "version" "0.14.0" - dependencies: - "apollo-server-env" "^3.1.0" - "apollo-server-plugin-base" "^0.13.0" - -"apollo-datasource@^0.9.0": - "integrity" "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==" - "resolved" "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz" - "version" "0.9.0" - dependencies: - "apollo-server-caching" "^0.7.0" - "apollo-server-env" "^3.1.0" - -"apollo-graphql@^0.9.0": - "integrity" "sha512-RGt5k2JeBqrmnwRM0VOgWFiGKlGJMfmiif/4JvdaEqhMJ+xqe/9cfDYzXfn33ke2eWixsAbjEbRfy8XbaN9nTw==" - "resolved" "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.5.tgz" - "version" "0.9.5" - dependencies: - "core-js-pure" "^3.10.2" - "lodash.sortby" "^4.7.0" - "sha.js" "^2.4.11" - -"apollo-link@^1.2.14": - "integrity" "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==" - "resolved" "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz" - "version" "1.2.14" - dependencies: - "apollo-utilities" "^1.3.0" - "ts-invariant" "^0.4.0" - "tslib" "^1.9.3" - "zen-observable-ts" "^0.8.21" - -"apollo-reporting-protobuf@^0.8.0": - "integrity" "sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==" - "resolved" "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz" - "version" "0.8.0" + version "0.3.1" + resolved "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz" + integrity sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw== + dependencies: + tslib "^2.3.0" + +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +abortable-iterator@^3.0.0, abortable-iterator@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz" + integrity sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw== + dependencies: + get-iterator "^1.0.2" + +abstract-leveldown@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz" + integrity sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ== + dependencies: + buffer "^6.0.3" + catering "^2.0.0" + is-buffer "^2.0.5" + level-concat-iterator "^3.0.0" + level-supports "^2.0.1" + queue-microtask "^1.2.3" + +abstract-logging@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz" + integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== + +accepts@^1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.2.4, acorn@^8.5.0: + version "8.7.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +agent-base@6: + version "6.0.2" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0, aggregate-error@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-escape-sequences@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz#2483c8773f50dd9174dd9557e92b1718f1816097" + integrity sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw== + dependencies: + array-back "^3.0.1" + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.1.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +any-signal@^2.1.1, any-signal@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz" + integrity sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ== + dependencies: + abort-controller "^3.0.0" + native-abort-controller "^1.0.3" + +any-signal@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/any-signal/-/any-signal-3.0.0.tgz" + integrity sha512-l1H1GEkGGIXVGfCtvq8N68YI7gHajmfzRdKhmb8sGyAQpLCblirLa8eB09j4uKaiwe7vodAChocUf7AT3mYq5g== + +anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apollo-cache-control@^0.14.0: + version "0.14.0" + resolved "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz" + integrity sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w== + dependencies: + apollo-server-env "^3.1.0" + apollo-server-plugin-base "^0.13.0" + +apollo-datasource@^0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz" + integrity sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA== + dependencies: + apollo-server-caching "^0.7.0" + apollo-server-env "^3.1.0" + +apollo-graphql@^0.9.0: + version "0.9.5" + resolved "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.5.tgz" + integrity sha512-RGt5k2JeBqrmnwRM0VOgWFiGKlGJMfmiif/4JvdaEqhMJ+xqe/9cfDYzXfn33ke2eWixsAbjEbRfy8XbaN9nTw== + dependencies: + core-js-pure "^3.10.2" + lodash.sortby "^4.7.0" + sha.js "^2.4.11" + +apollo-link@^1.2.14: + version "1.2.14" + resolved "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz" + integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== + dependencies: + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" + zen-observable-ts "^0.8.21" + +apollo-reporting-protobuf@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz" + integrity sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg== dependencies: "@apollo/protobufjs" "1.2.2" -"apollo-server-caching@^0.7.0": - "integrity" "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==" - "resolved" "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz" - "version" "0.7.0" +apollo-server-caching@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz" + integrity sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw== dependencies: - "lru-cache" "^6.0.0" + lru-cache "^6.0.0" -"apollo-server-core@^2.25.3": - "integrity" "sha512-Midow3uZoJ9TjFNeCNSiWElTVZlvmB7G7tG6PPoxIR9Px90/v16Q6EzunDIO0rTJHRC3+yCwZkwtf8w2AcP0sA==" - "resolved" "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.3.tgz" - "version" "2.25.3" +apollo-server-core@^2.25.3: + version "2.25.3" + resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.3.tgz" + integrity sha512-Midow3uZoJ9TjFNeCNSiWElTVZlvmB7G7tG6PPoxIR9Px90/v16Q6EzunDIO0rTJHRC3+yCwZkwtf8w2AcP0sA== dependencies: "@apollographql/apollo-tools" "^0.5.0" "@apollographql/graphql-playground-html" "1.6.27" "@apollographql/graphql-upload-8-fork" "^8.1.3" "@josephg/resolvable" "^1.0.0" "@types/ws" "^7.0.0" - "apollo-cache-control" "^0.14.0" - "apollo-datasource" "^0.9.0" - "apollo-graphql" "^0.9.0" - "apollo-reporting-protobuf" "^0.8.0" - "apollo-server-caching" "^0.7.0" - "apollo-server-env" "^3.1.0" - "apollo-server-errors" "^2.5.0" - "apollo-server-plugin-base" "^0.13.0" - "apollo-server-types" "^0.9.0" - "apollo-tracing" "^0.15.0" - "async-retry" "^1.2.1" - "fast-json-stable-stringify" "^2.0.0" - "graphql-extensions" "^0.15.0" - "graphql-tag" "^2.11.0" - "graphql-tools" "^4.0.8" - "loglevel" "^1.6.7" - "lru-cache" "^6.0.0" - "sha.js" "^2.4.11" - "subscriptions-transport-ws" "^0.9.19" - "uuid" "^8.0.0" - -"apollo-server-env@^3.1.0": - "integrity" "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==" - "resolved" "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "node-fetch" "^2.6.1" - "util.promisify" "^1.0.0" - -"apollo-server-errors@^2.5.0": - "integrity" "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==" - "resolved" "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz" - "version" "2.5.0" - -"apollo-server-express@^2.25.3": - "integrity" "sha512-tTFYn0oKH2qqLwVj7Ez2+MiKleXACODiGh5IxsB7VuYCPMAi9Yl8iUSlwTjQUvgCWfReZjnf0vFL2k5YhDlrtQ==" - "resolved" "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.3.tgz" - "version" "2.25.3" + apollo-cache-control "^0.14.0" + apollo-datasource "^0.9.0" + apollo-graphql "^0.9.0" + apollo-reporting-protobuf "^0.8.0" + apollo-server-caching "^0.7.0" + apollo-server-env "^3.1.0" + apollo-server-errors "^2.5.0" + apollo-server-plugin-base "^0.13.0" + apollo-server-types "^0.9.0" + apollo-tracing "^0.15.0" + async-retry "^1.2.1" + fast-json-stable-stringify "^2.0.0" + graphql-extensions "^0.15.0" + graphql-tag "^2.11.0" + graphql-tools "^4.0.8" + loglevel "^1.6.7" + lru-cache "^6.0.0" + sha.js "^2.4.11" + subscriptions-transport-ws "^0.9.19" + uuid "^8.0.0" + +apollo-server-env@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz" + integrity sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ== + dependencies: + node-fetch "^2.6.1" + util.promisify "^1.0.0" + +apollo-server-errors@^2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz" + integrity sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA== + +apollo-server-express@^2.25.3: + version "2.25.3" + resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.3.tgz" + integrity sha512-tTFYn0oKH2qqLwVj7Ez2+MiKleXACODiGh5IxsB7VuYCPMAi9Yl8iUSlwTjQUvgCWfReZjnf0vFL2k5YhDlrtQ== dependencies: "@apollographql/graphql-playground-html" "1.6.27" "@types/accepts" "^1.3.5" @@ -2065,222 +2700,261 @@ "@types/cors" "2.8.10" "@types/express" "^4.17.12" "@types/express-serve-static-core" "^4.17.21" - "accepts" "^1.3.5" - "apollo-server-core" "^2.25.3" - "apollo-server-types" "^0.9.0" - "body-parser" "^1.18.3" - "cors" "^2.8.5" - "express" "^4.17.1" - "graphql-subscriptions" "^1.0.0" - "graphql-tools" "^4.0.8" - "parseurl" "^1.3.2" - "subscriptions-transport-ws" "^0.9.19" - "type-is" "^1.6.16" - -"apollo-server-plugin-base@^0.13.0": - "integrity" "sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==" - "resolved" "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz" - "version" "0.13.0" - dependencies: - "apollo-server-types" "^0.9.0" - -"apollo-server-types@^0.9.0": - "integrity" "sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==" - "resolved" "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz" - "version" "0.9.0" - dependencies: - "apollo-reporting-protobuf" "^0.8.0" - "apollo-server-caching" "^0.7.0" - "apollo-server-env" "^3.1.0" - -"apollo-server@^2.18.2": - "integrity" "sha512-+eUY2//DLkU7RkJLn6CTl1P89/ZMHuUQnWqv8La2iJ2hLT7Me+nMx+hgHl3LqlT/qDstQ8qA45T85FuCayplmQ==" - "resolved" "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.3.tgz" - "version" "2.25.3" - dependencies: - "apollo-server-core" "^2.25.3" - "apollo-server-express" "^2.25.3" - "express" "^4.0.0" - "graphql-subscriptions" "^1.0.0" - "graphql-tools" "^4.0.8" - "stoppable" "^1.1.0" - -"apollo-tracing@^0.15.0": - "integrity" "sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==" - "resolved" "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz" - "version" "0.15.0" - dependencies: - "apollo-server-env" "^3.1.0" - "apollo-server-plugin-base" "^0.13.0" - -"apollo-utilities@^1.0.1", "apollo-utilities@^1.3.0": - "integrity" "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==" - "resolved" "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz" - "version" "1.3.4" + accepts "^1.3.5" + apollo-server-core "^2.25.3" + apollo-server-types "^0.9.0" + body-parser "^1.18.3" + cors "^2.8.5" + express "^4.17.1" + graphql-subscriptions "^1.0.0" + graphql-tools "^4.0.8" + parseurl "^1.3.2" + subscriptions-transport-ws "^0.9.19" + type-is "^1.6.16" + +apollo-server-plugin-base@^0.13.0: + version "0.13.0" + resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz" + integrity sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg== + dependencies: + apollo-server-types "^0.9.0" + +apollo-server-types@^0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz" + integrity sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg== + dependencies: + apollo-reporting-protobuf "^0.8.0" + apollo-server-caching "^0.7.0" + apollo-server-env "^3.1.0" + +apollo-server@^2.18.2: + version "2.25.3" + resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.3.tgz" + integrity sha512-+eUY2//DLkU7RkJLn6CTl1P89/ZMHuUQnWqv8La2iJ2hLT7Me+nMx+hgHl3LqlT/qDstQ8qA45T85FuCayplmQ== + dependencies: + apollo-server-core "^2.25.3" + apollo-server-express "^2.25.3" + express "^4.0.0" + graphql-subscriptions "^1.0.0" + graphql-tools "^4.0.8" + stoppable "^1.1.0" + +apollo-tracing@^0.15.0: + version "0.15.0" + resolved "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz" + integrity sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA== + dependencies: + apollo-server-env "^3.1.0" + apollo-server-plugin-base "^0.13.0" + +apollo-utilities@^1.0.1, apollo-utilities@^1.3.0: + version "1.3.4" + resolved "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz" + integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== dependencies: "@wry/equality" "^0.1.2" - "fast-json-stable-stringify" "^2.0.0" - "ts-invariant" "^0.4.0" - "tslib" "^1.10.0" - -"aproba@^1.0.3", "aproba@^1.0.3 || ^2.0.0": - "integrity" "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - "resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" - "version" "1.2.0" - -"are-we-there-yet@^2.0.0": - "integrity" "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==" - "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "delegates" "^1.0.0" - "readable-stream" "^3.6.0" - -"are-we-there-yet@~1.1.2": - "integrity" "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==" - "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz" - "version" "1.1.7" - dependencies: - "delegates" "^1.0.0" - "readable-stream" "^2.0.6" - -"argparse@^1.0.7": - "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" - "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - "version" "1.0.10" - dependencies: - "sprintf-js" "~1.0.2" - -"argparse@^2.0.1": - "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - "version" "2.0.1" - -"args@^5.0.1": - "integrity" "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==" - "resolved" "https://registry.npmjs.org/args/-/args-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "camelcase" "5.0.0" - "chalk" "2.4.2" - "leven" "2.1.0" - "mri" "1.1.4" - -"array-flatten@1.1.1": - "integrity" "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - "version" "1.1.1" - -"array-shuffle@^2.0.0": - "integrity" "sha512-rJTchCppiO6QsQnN51KDH1cgMYm13B+ybxFS5GgdBdTTHpZcrq3M7SOBgzp+L9fqqnjkFDiwdEVcX1wINgl9DQ==" - "resolved" "https://registry.npmjs.org/array-shuffle/-/array-shuffle-2.0.0.tgz" - "version" "2.0.0" - -"asn1.js@^5.2.0": - "integrity" "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==" - "resolved" "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" - "version" "5.4.1" - dependencies: - "bn.js" "^4.0.0" - "inherits" "^2.0.1" - "minimalistic-assert" "^1.0.0" - "safer-buffer" "^2.1.0" - -"asn1@~0.2.3": - "integrity" "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==" - "resolved" "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" - "version" "0.2.6" - dependencies: - "safer-buffer" "~2.1.0" - -"asn1js@^2.1.1": - "integrity" "sha512-oagLNqpfNv7CvmyMoexMDNyVDSiq1rya0AEUgcLlNHdHgNl6U/hi8xY370n5y+ZIFEXOx0J4B1qF2NDjMRxklA==" - "resolved" "https://registry.npmjs.org/asn1js/-/asn1js-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "pvutils" "latest" - -"assert-plus@^1.0.0", "assert-plus@1.0.0": - "integrity" "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - "version" "1.0.0" - -"async-retry@^1.2.1": - "integrity" "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==" - "resolved" "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" - "version" "1.3.3" - dependencies: - "retry" "0.13.1" - -"async@^3.2.0": - "integrity" "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - "resolved" "https://registry.npmjs.org/async/-/async-3.2.3.tgz" - "version" "3.2.3" - -"async@0.9.x": - "integrity" "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - "resolved" "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - "version" "0.9.2" - -"asynckit@^0.4.0": - "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - "version" "0.4.0" - -"atomic-sleep@^1.0.0": - "integrity" "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" - "resolved" "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" - "version" "1.0.0" - -"aws-sign2@~0.7.0": - "integrity" "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - "resolved" "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" - "version" "0.7.0" - -"aws4@^1.8.0": - "integrity" "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - "resolved" "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" - "version" "1.11.0" - -"babel-jest@^27.4.6", "babel-jest@>=27.0.0 <28": - "integrity" "sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg==" - "resolved" "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.6.tgz" - "version" "27.4.6" + fast-json-stable-stringify "^2.0.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + +aproba@^1.0.3, "aproba@^1.0.3 || ^2.0.0": + version "1.2.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +are-we-there-yet@~1.1.2: + version "1.1.7" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +args@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/args/-/args-5.0.1.tgz" + integrity sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ== + dependencies: + camelcase "5.0.0" + chalk "2.4.2" + leven "2.1.0" + mri "1.1.4" + +array-back@^1.0.3, array-back@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" + integrity sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs= + dependencies: + typical "^2.6.0" + +array-back@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" + integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== + dependencies: + typical "^2.6.1" + +array-back@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-shuffle@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/array-shuffle/-/array-shuffle-2.0.0.tgz" + integrity sha512-rJTchCppiO6QsQnN51KDH1cgMYm13B+ybxFS5GgdBdTTHpZcrq3M7SOBgzp+L9fqqnjkFDiwdEVcX1wINgl9DQ== + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +asn1js@^2.1.1, asn1js@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/asn1js/-/asn1js-2.2.0.tgz" + integrity sha512-oagLNqpfNv7CvmyMoexMDNyVDSiq1rya0AEUgcLlNHdHgNl6U/hi8xY370n5y+ZIFEXOx0J4B1qF2NDjMRxklA== + dependencies: + pvutils latest + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-retry@^1.2.1: + version "1.3.3" + resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + +async@0.9.x: + version "0.9.2" + resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +async@^3.2.0: + version "3.2.3" + resolved "https://registry.npmjs.org/async/-/async-3.2.3.tgz" + integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +babel-jest@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.6.tgz" + integrity sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg== dependencies: "@jest/transform" "^27.4.6" "@jest/types" "^27.4.2" "@types/babel__core" "^7.1.14" - "babel-plugin-istanbul" "^6.1.1" - "babel-preset-jest" "^27.4.0" - "chalk" "^4.0.0" - "graceful-fs" "^4.2.4" - "slash" "^3.0.0" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.4.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" -"babel-plugin-istanbul@^6.1.1": - "integrity" "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==" - "resolved" "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - "version" "6.1.1" +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" - "istanbul-lib-instrument" "^5.0.4" - "test-exclude" "^6.0.0" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" -"babel-plugin-jest-hoist@^27.4.0": - "integrity" "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==" - "resolved" "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz" - "version" "27.4.0" +babel-plugin-jest-hoist@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz" + integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -"babel-preset-current-node-syntax@^1.0.0": - "integrity" "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==" - "resolved" "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - "version" "1.0.1" +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" @@ -2295,2265 +2969,3457 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -"babel-preset-jest@^27.4.0": - "integrity" "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==" - "resolved" "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz" - "version" "27.4.0" - dependencies: - "babel-plugin-jest-hoist" "^27.4.0" - "babel-preset-current-node-syntax" "^1.0.0" - -"backo2@^1.0.2", "backo2@~1.0.2": - "integrity" "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - "resolved" "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" - "version" "1.0.2" - -"balanced-match@^1.0.0": - "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - "version" "1.0.2" - -"base-x@^3.0.2": - "integrity" "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==" - "resolved" "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" - "version" "3.0.9" - dependencies: - "safe-buffer" "^5.0.1" - -"base64-js@^1.3.1": - "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - "version" "1.5.1" - -"base64url@^3.0.1": - "integrity" "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==" - "resolved" "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz" - "version" "3.0.1" - -"bcrypt-pbkdf@^1.0.0": - "integrity" "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=" - "resolved" "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "tweetnacl" "^0.14.3" - -"big-integer@^1.6.17", "big-integer@^1.6.48": - "integrity" "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - "resolved" "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz" - "version" "1.6.51" - -"bignumber.js@^9.0.0", "bignumber.js@^9.0.1": - "integrity" "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - "resolved" "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" - "version" "9.0.2" - -"binary@~0.3.0": - "integrity" "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=" - "resolved" "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz" - "version" "0.3.0" - dependencies: - "buffers" "~0.1.1" - "chainsaw" "~0.1.0" - -"bintrees@1.0.1": - "integrity" "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" - "resolved" "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz" - "version" "1.0.1" - -"bl@^5.0.0": - "integrity" "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==" - "resolved" "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "buffer" "^6.0.3" - "inherits" "^2.0.4" - "readable-stream" "^3.4.0" - -"blob-to-it@^1.0.1": - "integrity" "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==" - "resolved" "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "browser-readablestream-to-it" "^1.0.3" - -"blockstore-core@^1.0.0", "blockstore-core@^1.0.2": - "integrity" "sha512-i/9CUMMvBALVbtSqUIuiWB3tk//a4Q2I2CEWiBuYNnhJvk/DWplXjLt8Sqc5VGkRVXVPSsEuH8fUtqJt5UFYcA==" - "resolved" "https://registry.npmjs.org/blockstore-core/-/blockstore-core-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "err-code" "^3.0.1" - "interface-blockstore" "^2.0.2" - "interface-store" "^2.0.1" - "it-all" "^1.0.4" - "it-drain" "^1.0.4" - "it-filter" "^1.0.2" - "it-take" "^1.0.1" - "multiformats" "^9.4.7" - -"blockstore-datastore-adapter@^2.0.2": - "integrity" "sha512-s6j6ay+qLu7sOx5DanHJlg2dBX61B9Yrbg6qo8oP3oiWnj6ZFCad4CKVb8do1f4u/Q4r2XPuSM4JYCe684USrQ==" - "resolved" "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-2.0.3.tgz" - "version" "2.0.3" - dependencies: - "blockstore-core" "^1.0.0" - "err-code" "^3.0.1" - "interface-blockstore" "^2.0.2" - "interface-datastore" "^6.0.2" - "it-drain" "^1.0.1" - "it-pushable" "^1.4.2" - "multiformats" "^9.1.0" - -"bluebird@~3.4.1": - "integrity" "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=" - "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz" - "version" "3.4.7" - -"bn.js@^4.0.0", "bn.js@^4.11.9": - "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - "version" "4.12.0" - -"body-parser@^1.18.3", "body-parser@1.19.1": - "integrity" "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==" - "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz" - "version" "1.19.1" - dependencies: - "bytes" "3.1.1" - "content-type" "~1.0.4" - "debug" "2.6.9" - "depd" "~1.1.2" - "http-errors" "1.8.1" - "iconv-lite" "0.4.24" - "on-finished" "~2.3.0" - "qs" "6.9.6" - "raw-body" "2.4.2" - "type-is" "~1.6.18" - -"borc@^2.1.2": - "integrity" "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==" - "resolved" "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz" - "version" "2.1.2" - dependencies: - "bignumber.js" "^9.0.0" - "buffer" "^5.5.0" - "commander" "^2.15.0" - "ieee754" "^1.1.13" - "iso-url" "~0.4.7" - "json-text-sequence" "~0.1.0" - "readable-stream" "^3.6.0" - -"boxen@^5.0.0": - "integrity" "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==" - "resolved" "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "ansi-align" "^3.0.0" - "camelcase" "^6.2.0" - "chalk" "^4.1.0" - "cli-boxes" "^2.2.1" - "string-width" "^4.2.2" - "type-fest" "^0.20.2" - "widest-line" "^3.1.0" - "wrap-ansi" "^7.0.0" - -"brace-expansion@^1.1.7": - "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - "version" "1.1.11" - dependencies: - "balanced-match" "^1.0.0" - "concat-map" "0.0.1" - -"braces@^3.0.1": - "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" - "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "fill-range" "^7.0.1" - -"brorand@^1.1.0": - "integrity" "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - "resolved" "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - "version" "1.1.0" - -"browser-process-hrtime@^1.0.0": - "integrity" "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - "resolved" "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" - "version" "1.0.0" - -"browser-readablestream-to-it@^1.0.1", "browser-readablestream-to-it@^1.0.3": - "integrity" "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" - "resolved" "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz" - "version" "1.0.3" - -"browserslist@^4.17.5": - "integrity" "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==" - "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz" - "version" "4.19.1" - dependencies: - "caniuse-lite" "^1.0.30001286" - "electron-to-chromium" "^1.4.17" - "escalade" "^3.1.1" - "node-releases" "^2.0.1" - "picocolors" "^1.0.0" - -"bs-logger@0.x": - "integrity" "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==" - "resolved" "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" - "version" "0.2.6" - dependencies: - "fast-json-stable-stringify" "2.x" - -"bs58@^4.0.1", "bs58@4.0.1": - "integrity" "sha1-vhYedsNU9veIrkBx9j806MTwpCo=" - "resolved" "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" - "version" "4.0.1" - dependencies: - "base-x" "^3.0.2" - -"bser@2.1.1": - "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==" - "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "node-int64" "^0.4.0" - -"buffer-from@^1.0.0": - "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - "version" "1.1.2" - -"buffer-indexof-polyfill@~1.0.0": - "integrity" "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" - "resolved" "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz" - "version" "1.0.2" - -"buffer@^5.5.0": - "integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - "version" "5.7.1" - dependencies: - "base64-js" "^1.3.1" - "ieee754" "^1.1.13" - -"buffer@^6.0.1": - "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - "version" "6.0.3" - dependencies: - "base64-js" "^1.3.1" - "ieee754" "^1.2.1" - -"buffer@^6.0.3": - "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - "version" "6.0.3" - dependencies: - "base64-js" "^1.3.1" - "ieee754" "^1.2.1" - -"buffer@6.0.3": - "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - "version" "6.0.3" - dependencies: - "base64-js" "^1.3.1" - "ieee754" "^1.2.1" - -"buffers@~0.1.1": - "integrity" "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" - "resolved" "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz" - "version" "0.1.1" - -"busboy@^0.3.1": - "integrity" "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==" - "resolved" "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz" - "version" "0.3.1" - dependencies: - "dicer" "0.3.0" - -"byteman@^1.3.5": - "integrity" "sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA==" - "resolved" "https://registry.npmjs.org/byteman/-/byteman-1.3.5.tgz" - "version" "1.3.5" - -"bytes@^3.1.0", "bytes@3.1.1": - "integrity" "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz" - "version" "3.1.1" - -"cacheable-request@^6.0.0": - "integrity" "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==" - "resolved" "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" - "version" "6.1.0" - dependencies: - "clone-response" "^1.0.2" - "get-stream" "^5.1.0" - "http-cache-semantics" "^4.0.0" - "keyv" "^3.0.0" - "lowercase-keys" "^2.0.0" - "normalize-url" "^4.1.0" - "responselike" "^1.0.2" - -"call-bind@^1.0.0", "call-bind@^1.0.2": - "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" - "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "function-bind" "^1.1.1" - "get-intrinsic" "^1.0.2" - -"callsites@^3.0.0": - "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - "version" "3.1.0" - -"camel-case@^4.1.2": - "integrity" "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==" - "resolved" "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "pascal-case" "^3.1.2" - "tslib" "^2.0.3" - -"camelcase@^5.3.1": - "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - "version" "5.3.1" - -"camelcase@^6.2.0": - "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" - "version" "6.3.0" - -"camelcase@5.0.0": - "integrity" "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz" - "version" "5.0.0" - -"caniuse-lite@^1.0.30001286": - "integrity" "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==" - "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz" - "version" "1.0.30001301" - -"canonicalize@^1.0.1", "canonicalize@^1.0.3": - "integrity" "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" - "resolved" "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz" - "version" "1.0.8" - -"capital-case@^1.0.4": - "integrity" "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==" - "resolved" "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "no-case" "^3.0.4" - "tslib" "^2.0.3" - "upper-case-first" "^2.0.2" - -"caseless@~0.12.0": - "integrity" "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - "version" "0.12.0" - -"catering@^2.0.0", "catering@^2.1.0": - "integrity" "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==" - "resolved" "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" - "version" "2.1.1" - -"cbor@^5.1.0": - "integrity" "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==" - "resolved" "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" - "version" "5.2.0" - dependencies: - "bignumber.js" "^9.0.1" - "nofilter" "^1.0.4" - -"cborg@^1.3.1", "cborg@^1.3.3", "cborg@^1.3.4", "cborg@^1.5.4", "cborg@^1.6.0": - "integrity" "sha512-dOGlTG610S6t3j7EYFxPBH7KiF1OlSAdWtMI4Iv1dabcId/L/nUvkfOEPge+vDp9YoPerEMiDoy5+Vm2oEqmQw==" - "resolved" "https://registry.npmjs.org/cborg/-/cborg-1.6.1.tgz" - "version" "1.6.1" - -"chainsaw@~0.1.0": - "integrity" "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=" - "resolved" "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz" - "version" "0.1.0" - dependencies: - "traverse" ">=0.3.0 <0.4" - -"chalk@^2.0.0": - "integrity" "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "ansi-styles" "^3.1.0" - "escape-string-regexp" "^1.0.5" - "supports-color" "^4.0.0" - -"chalk@^2.3.0": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" - -"chalk@^2.4.2": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" - -"chalk@^4.0.0": - "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"chalk@^4.1.0": - "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"chalk@2.4.2": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" - -"change-case@^4.1.1": - "integrity" "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==" - "resolved" "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "camel-case" "^4.1.2" - "capital-case" "^1.0.4" - "constant-case" "^3.0.4" - "dot-case" "^3.0.4" - "header-case" "^2.0.4" - "no-case" "^3.0.4" - "param-case" "^3.0.4" - "pascal-case" "^3.1.2" - "path-case" "^3.0.4" - "sentence-case" "^3.0.4" - "snake-case" "^3.0.4" - "tslib" "^2.0.3" - -"char-regex@^1.0.2": - "integrity" "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" - "resolved" "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" - "version" "1.0.2" - -"chownr@^1.1.4": - "integrity" "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" - "version" "1.1.4" - -"chownr@^2.0.0": - "integrity" "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - "resolved" "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" - "version" "2.0.0" - -"ci-info@^2.0.0": - "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - "version" "2.0.0" - -"ci-info@^3.2.0": - "integrity" "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" - "version" "3.3.0" - -"cjs-module-lexer@^1.0.0": - "integrity" "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" - "resolved" "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" - "version" "1.2.2" - -"class-is@^1.1.0": - "integrity" "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - "resolved" "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" - "version" "1.1.0" - -"class-validator@^0.13.1", "class-validator@>=0.12.0": - "integrity" "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==" - "resolved" "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz" - "version" "0.13.2" - dependencies: - "libphonenumber-js" "^1.9.43" - "validator" "^13.7.0" - -"clean-stack@^2.0.0": - "integrity" "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - "resolved" "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" - "version" "2.2.0" - -"cli-boxes@^2.2.1": - "integrity" "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - "resolved" "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" - "version" "2.2.1" - -"cliui@^7.0.2": - "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" - "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - "version" "7.0.4" - dependencies: - "string-width" "^4.2.0" - "strip-ansi" "^6.0.0" - "wrap-ansi" "^7.0.0" - -"clone-response@^1.0.2": - "integrity" "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=" - "resolved" "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "mimic-response" "^1.0.0" - -"co@^4.6.0": - "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - "version" "4.6.0" - -"code-point-at@^1.0.0": - "integrity" "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" - "version" "1.1.0" - -"coercer@^1.1.2": - "integrity" "sha1-6upEWVEfc/nzat4EqYEHznWCS3A=" - "resolved" "https://registry.npmjs.org/coercer/-/coercer-1.1.2.tgz" - "version" "1.1.2" - -"collect-v8-coverage@^1.0.0": - "integrity" "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" - "version" "1.0.1" - -"color-convert@^1.9.0": - "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - "version" "1.9.3" - dependencies: - "color-name" "1.1.3" - -"color-convert@^2.0.1": - "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "color-name" "~1.1.4" - -"color-name@~1.1.4": - "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - "version" "1.1.4" - -"color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"color-support@^1.1.2": - "integrity" "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - "resolved" "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" - "version" "1.1.3" - -"combined-stream@^1.0.6", "combined-stream@^1.0.8", "combined-stream@~1.0.6": - "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" - "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - "version" "1.0.8" - dependencies: - "delayed-stream" "~1.0.0" - -"commander@^2.15.0", "commander@^2.20.3": - "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - "version" "2.20.3" - -"concat-map@0.0.1": - "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - "version" "0.0.1" - -"configstore@^5.0.1": - "integrity" "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==" - "resolved" "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "dot-prop" "^5.2.0" - "graceful-fs" "^4.1.2" - "make-dir" "^3.0.0" - "unique-string" "^2.0.0" - "write-file-atomic" "^3.0.0" - "xdg-basedir" "^4.0.0" - -"console-control-strings@^1.0.0", "console-control-strings@^1.1.0", "console-control-strings@~1.1.0": - "integrity" "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - "resolved" "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" - "version" "1.1.0" - -"constant-case@^3.0.4": - "integrity" "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==" - "resolved" "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "no-case" "^3.0.4" - "tslib" "^2.0.3" - "upper-case" "^2.0.2" - -"content-disposition@0.5.4": - "integrity" "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" - "resolved" "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - "version" "0.5.4" - dependencies: - "safe-buffer" "5.2.1" - -"content-type@~1.0.4": - "integrity" "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - "resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - "version" "1.0.4" - -"convert-hex@~0.1.0": - "integrity" "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" - "resolved" "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz" - "version" "0.1.0" - -"convert-source-map@^1.4.0", "convert-source-map@^1.6.0", "convert-source-map@^1.7.0": - "integrity" "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==" - "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" - "version" "1.8.0" - dependencies: - "safe-buffer" "~5.1.1" - -"convert-string@~0.1.0": - "integrity" "sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo=" - "resolved" "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz" - "version" "0.1.0" - -"cookie-signature@1.0.6": - "integrity" "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - "version" "1.0.6" - -"cookie@0.4.1": - "integrity" "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" - "version" "0.4.1" - -"core-js-pure@^3.10.2": - "integrity" "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==" - "resolved" "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz" - "version" "3.20.3" - -"core-util-is@~1.0.0": - "integrity" "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - "version" "1.0.3" - -"core-util-is@1.0.2": - "integrity" "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - "version" "1.0.2" - -"cors@^2.8.5": - "integrity" "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==" - "resolved" "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" - "version" "2.8.5" - dependencies: - "object-assign" "^4" - "vary" "^1" - -"cross-fetch@^3.1.4": - "integrity" "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==" - "resolved" "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" - "version" "3.1.5" - dependencies: - "node-fetch" "2.6.7" - -"cross-spawn@^7.0.3": - "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" - "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - "version" "7.0.3" - dependencies: - "path-key" "^3.1.0" - "shebang-command" "^2.0.0" - "which" "^2.0.1" - -"crypto-random-string@^2.0.0": - "integrity" "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - "resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" - "version" "2.0.0" - -"cssfilter@0.0.10": - "integrity" "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" - "resolved" "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz" - "version" "0.0.10" - -"cssom@^0.4.4": - "integrity" "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - "resolved" "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" - "version" "0.4.4" - -"cssom@~0.3.6": - "integrity" "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - "resolved" "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" - "version" "0.3.8" - -"cssstyle@^2.3.0": - "integrity" "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==" - "resolved" "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" - "version" "2.3.0" - dependencies: - "cssom" "~0.3.6" - -"dashdash@^1.12.0": - "integrity" "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=" - "resolved" "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - "version" "1.14.1" - dependencies: - "assert-plus" "^1.0.0" - -"data-urls@^2.0.0": - "integrity" "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==" - "resolved" "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "abab" "^2.0.3" - "whatwg-mimetype" "^2.3.0" - "whatwg-url" "^8.0.0" - -"datastore-core@^6.0.5", "datastore-core@^6.0.7": - "integrity" "sha512-y+RfRV3FXZK2kpHTwuoyIod3mHtleW/tDx5ilsn9cdIflxQb5rWrRc3GzRwPOnq2oEtN1W019BZOwC5h6p6g6Q==" - "resolved" "https://registry.npmjs.org/datastore-core/-/datastore-core-6.0.7.tgz" - "version" "6.0.7" - dependencies: - "debug" "^4.1.1" - "err-code" "^3.0.1" - "interface-datastore" "^6.0.2" - "it-drain" "^1.0.4" - "it-filter" "^1.0.2" - "it-map" "^1.0.5" - "it-merge" "^1.0.1" - "it-pipe" "^1.1.0" - "it-pushable" "^1.4.2" - "it-take" "^1.0.1" - "uint8arrays" "^3.0.0" - -"datastore-fs@^6.0.1": - "integrity" "sha512-A0JTQx6LV91ddCdnFLFES5k4stJahfz8GwpnXdMSuZLcrP1Fwa/vcnKAdRlvXpJY83Gl3+skbjh0nV5LNy1w1w==" - "resolved" "https://registry.npmjs.org/datastore-fs/-/datastore-fs-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "datastore-core" "^6.0.5" - "fast-write-atomic" "^0.2.0" - "interface-datastore" "^6.0.2" - "it-glob" "^1.0.1" - "it-map" "^1.0.5" - "it-parallel-batch" "^1.0.9" - "mkdirp" "^1.0.4" - -"datastore-level@^7.0.1": - "integrity" "sha512-UCLOwKloaLYrcWVewSCOqVWEHUxz1PijsWHrI0dPZd3kODSWLSpW5CYylkWKPTX+JM7S1wENbiaz3i1188JXig==" - "resolved" "https://registry.npmjs.org/datastore-level/-/datastore-level-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "datastore-core" "^6.0.5" - "interface-datastore" "^6.0.2" - "it-filter" "^1.0.2" - "it-map" "^1.0.5" - "it-sort" "^1.0.0" - "it-take" "^1.0.1" - "level" "^7.0.0" - -"datastore-pubsub@^1.0.0": - "integrity" "sha512-L2S3avrrOJUsApahmObTxUgepe+BcZzqo4svKDqcRZ8zZZj+RH/q9iJnr89kKs/6Rpidg/FLyV58jxQ8DiZ5Pg==" - "resolved" "https://registry.npmjs.org/datastore-pubsub/-/datastore-pubsub-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "datastore-core" "^6.0.7" - "debug" "^4.2.0" - "err-code" "^3.0.1" - "interface-datastore" "^6.0.2" - "uint8arrays" "^3.0.0" - -"dateformat@^4.5.1": - "integrity" "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==" - "resolved" "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" - "version" "4.6.3" - -"debug@^2.6.4": - "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" - "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - "version" "2.6.9" - dependencies: - "ms" "2.0.0" - -"debug@^3.2.6": - "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" - "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - "version" "3.2.7" - dependencies: - "ms" "^2.1.1" - -"debug@^4.0.1": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"debug@^4.1.0": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"debug@^4.1.1": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"debug@^4.2.0": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"debug@^4.3.0": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"debug@^4.3.1": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"debug@~4.3.1": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"debug@~4.3.2": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"debug@2.6.9": - "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" - "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - "version" "2.6.9" - dependencies: - "ms" "2.0.0" - -"debug@4": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"decimal.js@^10.2.1": - "integrity" "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - "resolved" "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" - "version" "10.3.1" - -"decompress-response@^3.3.0": - "integrity" "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=" - "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - "version" "3.3.0" - dependencies: - "mimic-response" "^1.0.0" - -"dedent@^0.7.0": - "integrity" "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" - "version" "0.7.0" - -"deep-extend@^0.6.0": - "integrity" "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - "resolved" "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" - "version" "0.6.0" - -"deep-is@~0.1.3": - "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - "version" "0.1.4" - -"deepmerge@^4.2.2": - "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" - "version" "4.2.2" - -"default-gateway@^6.0.2": - "integrity" "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==" - "resolved" "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" - "version" "6.0.3" - dependencies: - "execa" "^5.0.0" - -"defer-to-connect@^1.0.1": - "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" - "version" "1.1.3" - -"deferred-leveldown@^7.0.0": - "integrity" "sha512-QKN8NtuS3BC6m0B8vAnBls44tX1WXAFATUsJlruyAYbZpysWV3siH6o/i3g9DCHauzodksO60bdj5NazNbjCmg==" - "resolved" "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-7.0.0.tgz" - "version" "7.0.0" - dependencies: - "abstract-leveldown" "^7.2.0" - "inherits" "^2.0.3" - -"define-properties@^1.1.3": - "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" - "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" - "version" "1.1.3" - dependencies: - "object-keys" "^1.0.12" - -"delayed-stream@~1.0.0": - "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - "version" "1.0.0" - -"delegates@^1.0.0": - "integrity" "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - "resolved" "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - "version" "1.0.0" - -"delimit-stream@0.1.0": - "integrity" "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" - "resolved" "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz" - "version" "0.1.0" - -"denque@^1.5.0": - "integrity" "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" - "resolved" "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz" - "version" "1.5.1" - -"depd@~1.1.2": - "integrity" "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - "resolved" "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - "version" "1.1.2" - -"deprecated-decorator@^0.1.6": - "integrity" "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" - "resolved" "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz" - "version" "0.1.6" - -"destroy@~1.0.4": - "integrity" "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - "version" "1.0.4" - -"detect-libc@^1.0.2", "detect-libc@^1.0.3": - "integrity" "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - "resolved" "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" - "version" "1.0.3" - -"detect-newline@^3.0.0": - "integrity" "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" - "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - "version" "3.1.0" - -"dicer@0.3.0": - "integrity" "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==" - "resolved" "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz" - "version" "0.3.0" - dependencies: - "streamsearch" "0.1.2" - -"diff-match-patch@^1.0.0": - "integrity" "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" - "resolved" "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz" - "version" "1.0.5" - -"diff-sequences@^27.4.0": - "integrity" "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==" - "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz" - "version" "27.4.0" - -"dlv@^1.1.3": - "integrity" "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - "resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" - "version" "1.1.3" - -"dns-over-http-resolver@^1.2.3": - "integrity" "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==" - "resolved" "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz" - "version" "1.2.3" - dependencies: - "debug" "^4.3.1" - "native-fetch" "^3.0.0" - "receptacle" "^1.3.2" - -"dns-packet@^5.2.2": - "integrity" "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==" - "resolved" "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz" - "version" "5.3.1" +babel-preset-jest@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz" + integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== + dependencies: + babel-plugin-jest-hoist "^27.4.0" + babel-preset-current-node-syntax "^1.0.0" + +backo2@^1.0.2, backo2@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2, base-x@^3.0.8: + version "3.0.9" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64url@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz" + integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +big-integer@^1.6.17, big-integer@^1.6.48: + version "1.6.51" + resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bignumber.js@^9.0.0, bignumber.js@^9.0.1: + version "9.0.2" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" + integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +binary@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz" + integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= + dependencies: + buffers "~0.1.1" + chainsaw "~0.1.0" + +bintrees@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz" + integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ= + +bl@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz" + integrity sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blakejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" + integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== + +blob-to-it@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz" + integrity sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA== + dependencies: + browser-readablestream-to-it "^1.0.3" + +blockstore-core@^1.0.0, blockstore-core@^1.0.2: + version "1.0.5" + resolved "https://registry.npmjs.org/blockstore-core/-/blockstore-core-1.0.5.tgz" + integrity sha512-i/9CUMMvBALVbtSqUIuiWB3tk//a4Q2I2CEWiBuYNnhJvk/DWplXjLt8Sqc5VGkRVXVPSsEuH8fUtqJt5UFYcA== + dependencies: + err-code "^3.0.1" + interface-blockstore "^2.0.2" + interface-store "^2.0.1" + it-all "^1.0.4" + it-drain "^1.0.4" + it-filter "^1.0.2" + it-take "^1.0.1" + multiformats "^9.4.7" + +blockstore-datastore-adapter@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-2.0.3.tgz" + integrity sha512-s6j6ay+qLu7sOx5DanHJlg2dBX61B9Yrbg6qo8oP3oiWnj6ZFCad4CKVb8do1f4u/Q4r2XPuSM4JYCe684USrQ== + dependencies: + blockstore-core "^1.0.0" + err-code "^3.0.1" + interface-blockstore "^2.0.2" + interface-datastore "^6.0.2" + it-drain "^1.0.1" + it-pushable "^1.4.2" + multiformats "^9.1.0" + +bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bluebird@~3.4.1: + version "3.4.7" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz" + integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= + +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.19.1, body-parser@^1.18.3: + version "1.19.1" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz" + integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== + dependencies: + bytes "3.1.1" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.9.6" + raw-body "2.4.2" + type-is "~1.6.18" + +body-parser@1.19.2, body-parser@^1.16.0: + version "1.19.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" + integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.9.7" + raw-body "2.4.3" + type-is "~1.6.18" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +borc@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz" + integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== + dependencies: + bignumber.js "^9.0.0" + buffer "^5.5.0" + commander "^2.15.0" + ieee754 "^1.1.13" + iso-url "~0.4.7" + json-text-sequence "~0.1.0" + readable-stream "^3.6.0" + +boxen@^5.0.0: + version "5.1.2" + resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz" + integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserslist@^4.0.0: + version "4.20.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" + integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== + dependencies: + caniuse-lite "^1.0.30001313" + electron-to-chromium "^1.4.76" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + +browserslist@^4.17.5: + version "4.19.1" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== + dependencies: + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bs58@4.0.1, bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof-polyfill@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz" + integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== + +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffers@~0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz" + integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= + +bufferutil@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" + integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== + dependencies: + node-gyp-build "^4.3.0" + +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + +busboy@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz" + integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== + dependencies: + dicer "0.3.0" + +byteman@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/byteman/-/byteman-1.3.5.tgz" + integrity sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA== + +bytes@3.1.1, bytes@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz" + integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz" + integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001313: + version "1.0.30001313" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz#a380b079db91621e1b7120895874e2fd62ed2e2f" + integrity sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q== + +caniuse-lite@^1.0.30001286: + version "1.0.30001301" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz" + integrity sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA== + +canonicalize@^1.0.1, canonicalize@^1.0.3: + version "1.0.8" + resolved "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz" + integrity sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A== + +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +catering@^2.0.0, catering@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" + integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== + +cbor@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" + integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== + dependencies: + bignumber.js "^9.0.1" + nofilter "^1.0.4" + +cborg@^1.3.1, cborg@^1.3.3, cborg@^1.3.4, cborg@^1.5.4, cborg@^1.6.0: + version "1.6.1" + resolved "https://registry.npmjs.org/cborg/-/cborg-1.6.1.tgz" + integrity sha512-dOGlTG610S6t3j7EYFxPBH7KiF1OlSAdWtMI4Iv1dabcId/L/nUvkfOEPge+vDp9YoPerEMiDoy5+Vm2oEqmQw== + +chainsaw@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz" + integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= + dependencies: + traverse ">=0.3.0 <0.4" + +chalk@2.4.2, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz" + integrity sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ== + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +change-case@^4.1.1: + version "4.1.2" + resolved "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" + integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== + +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +class-validator@^0.13.1: + version "0.13.2" + resolved "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz" + integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== + dependencies: + libphonenumber-js "^1.9.43" + validator "^13.7.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +coercer@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/coercer/-/coercer-1.1.2.tgz" + integrity sha1-6upEWVEfc/nzat4EqYEHznWCS3A= + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" + integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +color@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +command-line-args@^4.0.2: + version "4.0.7" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" + integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== + dependencies: + array-back "^2.0.0" + find-replace "^1.0.3" + typical "^2.6.1" + +command-line-commands@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/command-line-commands/-/command-line-commands-2.0.1.tgz#c58aa13dc78c06038ed67077e57ad09a6f858f46" + integrity sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ== + dependencies: + array-back "^2.0.0" + +command-line-usage@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-4.1.0.tgz#a6b3b2e2703b4dcf8bd46ae19e118a9a52972882" + integrity sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g== + dependencies: + ansi-escape-sequences "^4.0.0" + array-back "^2.0.0" + table-layout "^0.4.2" + typical "^2.6.1" + +commander@^2.15.0, commander@^2.20.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-with-sourcemaps@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== + dependencies: + source-map "^0.6.1" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +console-clear@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/console-clear/-/console-clear-1.1.1.tgz#995e20cbfbf14dd792b672cde387bd128d674bf7" + integrity sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ== + +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-hex@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz" + integrity sha1-CMBFaJIsJ3drii6BqV05M2LqC2U= + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +convert-string@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz" + integrity sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo= + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +cookie@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +cookiejar@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" + integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== + +core-js-pure@^3.10.2: + version "3.20.3" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz" + integrity sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@^2.8.1, cors@^2.8.5: + version "2.8.5" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +crc-32@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.1.tgz#436d2bcaad27bcb6bd073a2587139d3024a16460" + integrity sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.3.1" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-fetch@^3.1.4: + version "3.1.5" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-modules-loader-core@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" + integrity sha1-WQhmgpShvs0mGuCkziGwtVHyHRY= + dependencies: + icss-replace-symbols "1.1.0" + postcss "6.0.1" + postcss-modules-extract-imports "1.1.0" + postcss-modules-local-by-default "1.2.0" + postcss-modules-scope "1.1.0" + postcss-modules-values "1.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-selector-tokenizer@^0.7.0: + version "0.7.3" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" + integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz" + integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= + +cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.3" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +datastore-core@^6.0.5, datastore-core@^6.0.7: + version "6.0.7" + resolved "https://registry.npmjs.org/datastore-core/-/datastore-core-6.0.7.tgz" + integrity sha512-y+RfRV3FXZK2kpHTwuoyIod3mHtleW/tDx5ilsn9cdIflxQb5rWrRc3GzRwPOnq2oEtN1W019BZOwC5h6p6g6Q== + dependencies: + debug "^4.1.1" + err-code "^3.0.1" + interface-datastore "^6.0.2" + it-drain "^1.0.4" + it-filter "^1.0.2" + it-map "^1.0.5" + it-merge "^1.0.1" + it-pipe "^1.1.0" + it-pushable "^1.4.2" + it-take "^1.0.1" + uint8arrays "^3.0.0" + +datastore-fs@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/datastore-fs/-/datastore-fs-6.0.1.tgz" + integrity sha512-A0JTQx6LV91ddCdnFLFES5k4stJahfz8GwpnXdMSuZLcrP1Fwa/vcnKAdRlvXpJY83Gl3+skbjh0nV5LNy1w1w== + dependencies: + datastore-core "^6.0.5" + fast-write-atomic "^0.2.0" + interface-datastore "^6.0.2" + it-glob "^1.0.1" + it-map "^1.0.5" + it-parallel-batch "^1.0.9" + mkdirp "^1.0.4" + +datastore-level@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/datastore-level/-/datastore-level-7.0.1.tgz" + integrity sha512-UCLOwKloaLYrcWVewSCOqVWEHUxz1PijsWHrI0dPZd3kODSWLSpW5CYylkWKPTX+JM7S1wENbiaz3i1188JXig== + dependencies: + datastore-core "^6.0.5" + interface-datastore "^6.0.2" + it-filter "^1.0.2" + it-map "^1.0.5" + it-sort "^1.0.0" + it-take "^1.0.1" + level "^7.0.0" + +datastore-pubsub@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/datastore-pubsub/-/datastore-pubsub-1.0.0.tgz" + integrity sha512-L2S3avrrOJUsApahmObTxUgepe+BcZzqo4svKDqcRZ8zZZj+RH/q9iJnr89kKs/6Rpidg/FLyV58jxQ8DiZ5Pg== + dependencies: + datastore-core "^6.0.7" + debug "^4.2.0" + err-code "^3.0.1" + interface-datastore "^6.0.2" + uint8arrays "^3.0.0" + +dateformat@^4.5.1: + version "4.6.3" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + +debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.6.4, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.0, debug@^4.3.1, debug@~4.3.1, debug@~4.3.2: + version "4.3.3" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-extend@^0.6.0, deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +deferred-leveldown@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-7.0.0.tgz" + integrity sha512-QKN8NtuS3BC6m0B8vAnBls44tX1WXAFATUsJlruyAYbZpysWV3siH6o/i3g9DCHauzodksO60bdj5NazNbjCmg== + dependencies: + abstract-leveldown "^7.2.0" + inherits "^2.0.3" + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +delimit-stream@0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz" + integrity sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs= + +denque@^1.5.0: + version "1.5.1" + resolved "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz" + integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +deprecated-decorator@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz" + integrity sha1-AJZjF7ehL+kvPMgx91g68ym4bDc= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-libc@^1.0.2, detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +dicer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz" + integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== + dependencies: + streamsearch "0.1.2" + +diff-match-patch@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz" + integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== + +diff-sequences@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz" + integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dns-over-http-resolver@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz" + integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== + dependencies: + debug "^4.3.1" + native-fetch "^3.0.0" + receptacle "^1.3.2" + +dns-packet@^5.2.2: + version "5.3.1" + resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz" + integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" -"domexception@^2.0.1": - "integrity" "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==" - "resolved" "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "webidl-conversions" "^5.0.0" - -"dot-case@^3.0.4": - "integrity" "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==" - "resolved" "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "no-case" "^3.0.4" - "tslib" "^2.0.3" - -"dot-prop@^5.2.0": - "integrity" "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==" - "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" - "version" "5.3.0" - dependencies: - "is-obj" "^2.0.0" - -"duplexer2@~0.1.4": - "integrity" "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=" - "resolved" "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz" - "version" "0.1.4" - dependencies: - "readable-stream" "^2.0.2" - -"duplexer3@^0.1.4": - "integrity" "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - "resolved" "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" - "version" "0.1.4" - -"ecc-jsbn@~0.1.1": - "integrity" "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=" - "resolved" "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" - "version" "0.1.2" - dependencies: - "jsbn" "~0.1.0" - "safer-buffer" "^2.1.0" - -"ee-first@1.1.1": - "integrity" "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - "version" "1.1.1" - -"ejs@^3.1.6": - "integrity" "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==" - "resolved" "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz" - "version" "3.1.6" - dependencies: - "jake" "^10.6.1" - -"electron-fetch@^1.7.2": - "integrity" "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==" - "resolved" "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz" - "version" "1.7.4" - dependencies: - "encoding" "^0.1.13" - -"electron-to-chromium@^1.4.17": - "integrity" "sha512-g5X/6oVoqLyzKfsZ1HsJvxKoUAToFMCuq1USbmp/GPIwJDRYV1IEcv+plYTdh6h11hg140hycCBId0vf7rL0+Q==" - "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.50.tgz" - "version" "1.4.50" - -"elliptic@^6.5.2", "elliptic@^6.5.4": - "integrity" "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==" - "resolved" "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - "version" "6.5.4" - dependencies: - "bn.js" "^4.11.9" - "brorand" "^1.1.0" - "hash.js" "^1.0.0" - "hmac-drbg" "^1.0.1" - "inherits" "^2.0.4" - "minimalistic-assert" "^1.0.1" - "minimalistic-crypto-utils" "^1.0.1" - -"emittery@^0.8.1": - "integrity" "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" - "resolved" "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" - "version" "0.8.1" - -"emoji-regex@^8.0.0": - "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - "version" "8.0.0" - -"encodeurl@~1.0.2": - "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - "version" "1.0.2" - -"encoding-down@^7.1.0": - "integrity" "sha512-ky47X5jP84ryk5EQmvedQzELwVJPjCgXDQZGeb9F6r4PdChByCGHTBrVcF3h8ynKVJ1wVbkxTsDC8zBROPypgQ==" - "resolved" "https://registry.npmjs.org/encoding-down/-/encoding-down-7.1.0.tgz" - "version" "7.1.0" - dependencies: - "abstract-leveldown" "^7.2.0" - "inherits" "^2.0.3" - "level-codec" "^10.0.0" - "level-errors" "^3.0.0" - -"encoding@^0.1.0", "encoding@^0.1.13": - "integrity" "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==" - "resolved" "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" - "version" "0.1.13" - dependencies: - "iconv-lite" "^0.6.2" - -"end-of-stream@^1.1.0": - "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" - "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - "version" "1.4.4" - dependencies: - "once" "^1.4.0" - -"engine.io-client@~6.1.1": - "integrity" "sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g==" - "resolved" "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.1.1.tgz" - "version" "6.1.1" +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +duplexer2@~0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + dependencies: + readable-stream "^2.0.2" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^3.1.6: + version "3.1.6" + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz" + integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== + dependencies: + jake "^10.6.1" + +electron-download@^3.0.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8" + integrity sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg= + dependencies: + debug "^2.2.0" + fs-extra "^0.30.0" + home-path "^1.0.1" + minimist "^1.2.0" + nugget "^2.0.0" + path-exists "^2.1.0" + rc "^1.1.2" + semver "^5.3.0" + sumchecker "^1.2.0" + +electron-eval@^0.9.0: + version "0.9.10" + resolved "https://registry.yarnpkg.com/electron-eval/-/electron-eval-0.9.10.tgz#9f97818b0d711ae8ae103fd186eeb0e9588a2921" + integrity sha512-VrAw2MrAjCwM8EGQsY+n48/f9P4W+AH56adERtDEb9bl5Hw9aN+ectmuK9QIi2XA11g+owQlyj2N4AzvdT363A== + dependencies: + cross-spawn "^5.1.0" + electron "^1.6.11" + ndjson "^1.5.0" + optionalDependencies: + headless "https://github.com/paulkernfeld/node-headless/tarball/master" + +electron-fetch@^1.7.2: + version "1.7.4" + resolved "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz" + integrity sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw== + dependencies: + encoding "^0.1.13" + +electron-to-chromium@^1.4.17: + version "1.4.50" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.50.tgz" + integrity sha512-g5X/6oVoqLyzKfsZ1HsJvxKoUAToFMCuq1USbmp/GPIwJDRYV1IEcv+plYTdh6h11hg140hycCBId0vf7rL0+Q== + +electron-to-chromium@^1.4.76: + version "1.4.76" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz#a0494baedaf51094b1c172999919becd9975a934" + integrity sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA== + +electron-webrtc@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/electron-webrtc/-/electron-webrtc-0.3.0.tgz#546d1ca81a445348c32062cb9da5e7a4a6acadcf" + integrity sha1-VG0cqBpEU0jDIGLLnaXnpKasrc8= + dependencies: + debug "^2.2.0" + electron-eval "^0.9.0" + get-browser-rtc "^1.0.2" + hat "^0.0.3" + +electron@^1.6.11: + version "1.8.8" + resolved "https://registry.yarnpkg.com/electron/-/electron-1.8.8.tgz#a90cddb075291f49576993e6f5c8bb4439301cae" + integrity sha512-1f9zJehcTTGjrkb06o6ds+gsRq6SYhZJyxOk6zIWjRH8hVy03y/RzUDELzNas71f5vcvXmfGVvyjeEsadDI8tg== + dependencies: + "@types/node" "^8.0.24" + electron-download "^3.0.1" + extract-zip "^1.0.3" + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding-down@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/encoding-down/-/encoding-down-7.1.0.tgz" + integrity sha512-ky47X5jP84ryk5EQmvedQzELwVJPjCgXDQZGeb9F6r4PdChByCGHTBrVcF3h8ynKVJ1wVbkxTsDC8zBROPypgQ== + dependencies: + abstract-leveldown "^7.2.0" + inherits "^2.0.3" + level-codec "^10.0.0" + level-errors "^3.0.0" + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.1.1.tgz" + integrity sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g== dependencies: "@socket.io/component-emitter" "~3.0.0" - "debug" "~4.3.1" - "engine.io-parser" "~5.0.0" - "has-cors" "1.1.0" - "parseqs" "0.0.6" - "parseuri" "0.0.6" - "ws" "~8.2.3" - "xmlhttprequest-ssl" "~2.0.0" - "yeast" "0.1.2" - -"engine.io-parser@~5.0.0": - "integrity" "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==" - "resolved" "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz" - "version" "5.0.3" + debug "~4.3.1" + engine.io-parser "~5.0.0" + has-cors "1.1.0" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~8.2.3" + xmlhttprequest-ssl "~2.0.0" + yeast "0.1.2" + +engine.io-parser@~5.0.0: + version "5.0.3" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz" + integrity sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg== dependencies: "@socket.io/base64-arraybuffer" "~1.0.2" -"err-code@^2.0.3": - "integrity" "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - "resolved" "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" - "version" "2.0.3" - -"err-code@^3.0.0", "err-code@^3.0.1": - "integrity" "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - "resolved" "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz" - "version" "3.0.1" - -"es-abstract@^1.19.1": - "integrity" "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==" - "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" - "version" "1.19.1" - dependencies: - "call-bind" "^1.0.2" - "es-to-primitive" "^1.2.1" - "function-bind" "^1.1.1" - "get-intrinsic" "^1.1.1" - "get-symbol-description" "^1.0.0" - "has" "^1.0.3" - "has-symbols" "^1.0.2" - "internal-slot" "^1.0.3" - "is-callable" "^1.2.4" - "is-negative-zero" "^2.0.1" - "is-regex" "^1.1.4" - "is-shared-array-buffer" "^1.0.1" - "is-string" "^1.0.7" - "is-weakref" "^1.0.1" - "object-inspect" "^1.11.0" - "object-keys" "^1.1.1" - "object.assign" "^4.1.2" - "string.prototype.trimend" "^1.0.4" - "string.prototype.trimstart" "^1.0.4" - "unbox-primitive" "^1.0.1" - -"es-to-primitive@^1.2.1": - "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" - "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - "version" "1.2.1" - dependencies: - "is-callable" "^1.1.4" - "is-date-object" "^1.0.1" - "is-symbol" "^1.0.2" - -"es6-promisify@^7.0.0": - "integrity" "sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==" - "resolved" "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz" - "version" "7.0.0" - -"escalade@^3.1.1": - "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - "version" "3.1.1" - -"escape-goat@^2.0.0": - "integrity" "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - "resolved" "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" - "version" "2.1.1" - -"escape-html@~1.0.3": - "integrity" "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - "version" "1.0.3" - -"escape-string-regexp@^1.0.5": - "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - "version" "1.0.5" - -"escape-string-regexp@^2.0.0": - "integrity" "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - "version" "2.0.0" - -"escodegen@^2.0.0": - "integrity" "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==" - "resolved" "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "esprima" "^4.0.1" - "estraverse" "^5.2.0" - "esutils" "^2.0.2" - "optionator" "^0.8.1" +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +err-code@^3.0.0, err-code@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz" + integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.2, es-abstract@^1.18.5, es-abstract@^1.19.1: + version "1.19.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" + integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.1" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.1" + is-string "^1.0.7" + is-weakref "^1.0.1" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@^4.0.5: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz" + integrity sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q== + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" optionalDependencies: - "source-map" "~0.6.1" - -"esprima@^4.0.0", "esprima@^4.0.1": - "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - "version" "4.0.1" - -"estraverse@^5.2.0": - "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - "version" "5.3.0" - -"esutils@^2.0.2": - "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - "version" "2.0.3" - -"etag@~1.8.1": - "integrity" "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - "version" "1.8.1" - -"event-iterator@^2.0.0": - "integrity" "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - "resolved" "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz" - "version" "2.0.0" - -"event-target-shim@^5.0.0": - "integrity" "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - "resolved" "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" - "version" "5.0.1" - -"eventemitter3@^3.1.0": - "integrity" "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz" - "version" "3.1.2" - -"eventemitter3@^4.0.4": - "integrity" "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" - "version" "4.0.7" - -"events@^3.3.0": - "integrity" "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - "resolved" "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - "version" "3.3.0" - -"execa@^5.0.0": - "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" - "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - "version" "5.1.1" - dependencies: - "cross-spawn" "^7.0.3" - "get-stream" "^6.0.0" - "human-signals" "^2.1.0" - "is-stream" "^2.0.0" - "merge-stream" "^2.0.0" - "npm-run-path" "^4.0.1" - "onetime" "^5.1.2" - "signal-exit" "^3.0.3" - "strip-final-newline" "^2.0.0" - -"exit@^0.1.2": - "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - "version" "0.1.2" - -"expect@^27.4.6": - "integrity" "sha512-1M/0kAALIaj5LaG66sFJTbRsWTADnylly82cu4bspI0nl+pgP4E6Bh/aqdHlTUjul06K7xQnnrAoqfxVU0+/ag==" - "resolved" "https://registry.npmjs.org/expect/-/expect-27.4.6.tgz" - "version" "27.4.6" + source-map "~0.6.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eth-ens-namehash@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@^0.1.26: + version "0.1.29" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + nano-json-stream-parser "^0.1.2" + servify "^0.1.12" + ws "^3.0.0" + xhr-request-promise "^0.1.2" + +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== + dependencies: + js-sha3 "^0.8.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@types/pbkdf2" "^3.0.0" + "@types/secp256k1" "^4.0.1" + blakejs "^1.1.0" + browserify-aes "^1.2.0" + bs58check "^2.1.2" + create-hash "^1.2.0" + create-hmac "^1.1.7" + hash.js "^1.1.7" + keccak "^3.0.0" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + safe-buffer "^5.1.2" + scrypt-js "^3.0.0" + secp256k1 "^4.0.1" + setimmediate "^1.0.5" + +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz#a6885bcdd92045b06f596c7626c3e89ab3312458" + integrity sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + +event-iterator@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz" + integrity sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expect@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/expect/-/expect-27.4.6.tgz" + integrity sha512-1M/0kAALIaj5LaG66sFJTbRsWTADnylly82cu4bspI0nl+pgP4E6Bh/aqdHlTUjul06K7xQnnrAoqfxVU0+/ag== dependencies: "@jest/types" "^27.4.2" - "jest-get-type" "^27.4.0" - "jest-matcher-utils" "^27.4.6" - "jest-message-util" "^27.4.6" - -"express@^4.0.0", "express@^4.17.1": - "integrity" "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==" - "resolved" "https://registry.npmjs.org/express/-/express-4.17.2.tgz" - "version" "4.17.2" - dependencies: - "accepts" "~1.3.7" - "array-flatten" "1.1.1" - "body-parser" "1.19.1" - "content-disposition" "0.5.4" - "content-type" "~1.0.4" - "cookie" "0.4.1" - "cookie-signature" "1.0.6" - "debug" "2.6.9" - "depd" "~1.1.2" - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "etag" "~1.8.1" - "finalhandler" "~1.1.2" - "fresh" "0.5.2" - "merge-descriptors" "1.0.1" - "methods" "~1.1.2" - "on-finished" "~2.3.0" - "parseurl" "~1.3.3" - "path-to-regexp" "0.1.7" - "proxy-addr" "~2.0.7" - "qs" "6.9.6" - "range-parser" "~1.2.1" - "safe-buffer" "5.2.1" - "send" "0.17.2" - "serve-static" "1.14.2" - "setprototypeof" "1.2.0" - "statuses" "~1.5.0" - "type-is" "~1.6.18" - "utils-merge" "1.0.1" - "vary" "~1.1.2" - -"extend@~3.0.2": - "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - "version" "3.0.2" - -"extsprintf@^1.2.0", "extsprintf@1.3.0": - "integrity" "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - "version" "1.3.0" - -"faker@^5.1.0": - "integrity" "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==" - "resolved" "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz" - "version" "5.5.3" - -"fast-deep-equal@^3.1.1": - "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - "version" "3.1.3" - -"fast-fifo@^1.0.0": - "integrity" "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==" - "resolved" "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz" - "version" "1.1.0" - -"fast-json-stable-stringify@^2.0.0", "fast-json-stable-stringify@2.x": - "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - "version" "2.1.0" - -"fast-levenshtein@~2.0.6": - "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - "version" "2.0.6" - -"fast-redact@^3.0.0": - "integrity" "sha512-dir8LOnvialLxiXDPESMDHGp82CHi6ZEYTVkcvdn5d7psdv9ZkkButXrOeXST4aqreIRR+N7CYlsrwFuorurVg==" - "resolved" "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.0.tgz" - "version" "3.1.0" - -"fast-safe-stringify@^2.0.7", "fast-safe-stringify@^2.0.8": - "integrity" "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - "resolved" "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" - "version" "2.1.1" - -"fast-write-atomic@^0.2.0": - "integrity" "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" - "resolved" "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz" - "version" "0.2.1" - -"fb-watchman@^2.0.0": - "integrity" "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==" - "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "bser" "2.1.1" - -"file-type@^16.0.0": - "integrity" "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==" - "resolved" "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz" - "version" "16.5.3" - dependencies: - "readable-web-to-node-stream" "^3.0.0" - "strtok3" "^6.2.4" - "token-types" "^4.1.1" - -"filelist@^1.0.1": - "integrity" "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==" - "resolved" "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "minimatch" "^3.0.4" - -"filesize@^8.0.0": - "integrity" "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" - "resolved" "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz" - "version" "8.0.7" - -"fill-range@^7.0.1": - "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" - "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "to-regex-range" "^5.0.1" - -"finalhandler@~1.1.2": - "integrity" "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==" - "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "debug" "2.6.9" - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "on-finished" "~2.3.0" - "parseurl" "~1.3.3" - "statuses" "~1.5.0" - "unpipe" "~1.0.0" - -"find-up@^4.0.0": - "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "locate-path" "^5.0.0" - "path-exists" "^4.0.0" - -"find-up@^4.1.0": - "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "locate-path" "^5.0.0" - "path-exists" "^4.0.0" - -"flatstr@^1.0.12": - "integrity" "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - "resolved" "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz" - "version" "1.0.12" - -"fnv1a@^1.0.1": - "integrity" "sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU=" - "resolved" "https://registry.npmjs.org/fnv1a/-/fnv1a-1.0.1.tgz" - "version" "1.0.1" - -"for-each@^0.3.3": - "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" - "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - "version" "0.3.3" - dependencies: - "is-callable" "^1.1.3" - -"forever-agent@~0.6.1": - "integrity" "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - "resolved" "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - "version" "0.6.1" - -"form-data@^3.0.0": - "integrity" "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==" - "resolved" "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "asynckit" "^0.4.0" - "combined-stream" "^1.0.8" - "mime-types" "^2.1.12" - -"form-data@~2.3.2": - "integrity" "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==" - "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" - "version" "2.3.3" - dependencies: - "asynckit" "^0.4.0" - "combined-stream" "^1.0.6" - "mime-types" "^2.1.12" - -"formidable@^1.2.2": - "integrity" "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==" - "resolved" "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz" - "version" "1.2.6" - -"forwarded@0.2.0": - "integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - "version" "0.2.0" - -"fresh@0.5.2": - "integrity" "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - "version" "0.5.2" - -"fs-capacitor@^2.0.4": - "integrity" "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==" - "resolved" "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz" - "version" "2.0.4" - -"fs-extra@^10.0.0": - "integrity" "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==" - "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" - "version" "10.0.0" - dependencies: - "graceful-fs" "^4.2.0" - "jsonfile" "^6.0.1" - "universalify" "^2.0.0" - -"fs-minipass@^1.2.7": - "integrity" "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==" - "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" - "version" "1.2.7" - dependencies: - "minipass" "^2.6.0" - -"fs-minipass@^2.0.0": - "integrity" "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==" - "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "minipass" "^3.0.0" - -"fs.realpath@^1.0.0": - "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - "version" "1.0.0" - -"fsevents@^2.3.2": - "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" - "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - "version" "2.3.2" - -"fstream@^1.0.12": - "integrity" "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==" - "resolved" "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz" - "version" "1.0.12" - dependencies: - "graceful-fs" "^4.1.2" - "inherits" "~2.0.0" - "mkdirp" ">=0.5 0" - "rimraf" "2" - -"function-bind@^1.1.1": - "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - "version" "1.1.1" - -"gar@^1.0.4": - "integrity" "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==" - "resolved" "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz" - "version" "1.0.4" - -"gauge@^3.0.0": - "integrity" "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==" - "resolved" "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "aproba" "^1.0.3 || ^2.0.0" - "color-support" "^1.1.2" - "console-control-strings" "^1.0.0" - "has-unicode" "^2.0.1" - "object-assign" "^4.1.1" - "signal-exit" "^3.0.0" - "string-width" "^4.2.3" - "strip-ansi" "^6.0.1" - "wide-align" "^1.1.2" - -"gauge@~2.7.3": - "integrity" "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" - "resolved" "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" - "version" "2.7.4" - dependencies: - "aproba" "^1.0.3" - "console-control-strings" "^1.0.0" - "has-unicode" "^2.0.0" - "object-assign" "^4.1.0" - "signal-exit" "^3.0.0" - "string-width" "^1.0.1" - "strip-ansi" "^3.0.1" - "wide-align" "^1.1.0" - -"gensync@^1.0.0-beta.2": - "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - "version" "1.0.0-beta.2" - -"get-browser-rtc@^1.0.0": - "integrity" "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==" - "resolved" "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz" - "version" "1.1.0" - -"get-caller-file@^2.0.5": - "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - "version" "2.0.5" - -"get-folder-size@^2.0.1": - "integrity" "sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==" - "resolved" "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "gar" "^1.0.4" - "tiny-each-async" "2.0.3" - -"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1": - "integrity" "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" - "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - "version" "1.1.1" - dependencies: - "function-bind" "^1.1.1" - "has" "^1.0.3" - "has-symbols" "^1.0.1" - -"get-iterator@^1.0.2": - "integrity" "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - "resolved" "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz" - "version" "1.0.2" - -"get-package-type@^0.1.0": - "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - "resolved" "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - "version" "0.1.0" - -"get-port@5.1.1": - "integrity" "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==" - "resolved" "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz" - "version" "5.1.1" - -"get-stream@^4.1.0": - "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" - "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "pump" "^3.0.0" - -"get-stream@^5.1.0": - "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" - "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" - "version" "5.2.0" - dependencies: - "pump" "^3.0.0" - -"get-stream@^6.0.0": - "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - "version" "6.0.1" - -"get-symbol-description@^1.0.0": - "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" - "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.1" - -"getpass@^0.1.1": - "integrity" "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=" - "resolved" "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - "version" "0.1.7" - dependencies: - "assert-plus" "^1.0.0" - -"glob@^7.1.1", "glob@^7.1.2", "glob@^7.1.3", "glob@^7.1.4", "glob@^7.1.6": - "integrity" "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.0.4" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"global-dirs@^3.0.0": - "integrity" "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==" - "resolved" "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "ini" "2.0.0" - -"globals@^11.1.0": - "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - "version" "11.12.0" - -"got@^9.6.0": - "integrity" "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==" - "resolved" "https://registry.npmjs.org/got/-/got-9.6.0.tgz" - "version" "9.6.0" + jest-get-type "^27.4.0" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + +express@^4.0.0, express@^4.17.1: + version "4.17.2" + resolved "https://registry.npmjs.org/express/-/express-4.17.2.tgz" + integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.4.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.9.6" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.17.2" + serve-static "1.14.2" + setprototypeof "1.2.0" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +express@^4.14.0: + version "4.17.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" + integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.19.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.4.2" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.9.7" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.17.2" + serve-static "1.14.2" + setprototypeof "1.2.0" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" + integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== + dependencies: + type "^2.5.0" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +extract-zip@^1.0.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +faker@^5.1.0: + version "5.5.3" + resolved "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz" + integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-fifo@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz" + integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-redact@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.0.tgz" + integrity sha512-dir8LOnvialLxiXDPESMDHGp82CHi6ZEYTVkcvdn5d7psdv9ZkkButXrOeXST4aqreIRR+N7CYlsrwFuorurVg== + +fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8: + version "2.1.1" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-write-atomic@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz" + integrity sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw== + +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +file-type@^16.0.0: + version "16.5.3" + resolved "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz" + integrity sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.2.4" + token-types "^4.1.1" + +filelist@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz" + integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== + dependencies: + minimatch "^3.0.4" + +filesize@^8.0.0: + version "8.0.7" + resolved "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-replace@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" + integrity sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A= + dependencies: + array-back "^1.0.4" + test-value "^2.1.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flatstr@^1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz" + integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== + +fnv1a@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/fnv1a/-/fnv1a-1.0.1.tgz" + integrity sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU= + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +formidable@^1.2.2: + version "1.2.6" + resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz" + integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-capacitor@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz" + integrity sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== + +fs-extra@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gar@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz" + integrity sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w== + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== + dependencies: + loader-utils "^1.1.0" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-browser-rtc@^1.0.0, get-browser-rtc@^1.0.2: + version "1.1.0" + resolved "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz" + integrity sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-folder-size@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz" + integrity sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA== + dependencies: + gar "^1.0.4" + tiny-each-async "2.0.3" + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-iterator@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz" + integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-port@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +git-config@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/git-config/-/git-config-0.0.7.tgz#a9c8a3ef07a776c3d72261356d8b727b62202b28" + integrity sha1-qcij7wendsPXImE1bYtye2IgKyg= + dependencies: + iniparser "~1.0.5" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.0" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~7.1.1: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globule@^1.0.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.3.tgz#811919eeac1ab7344e905f2e3be80a13447973c2" + integrity sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +got@9.6.0, got@^9.6.0: + version "9.6.0" + resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== dependencies: "@sindresorhus/is" "^0.14.0" "@szmarczak/http-timer" "^1.1.2" - "cacheable-request" "^6.0.0" - "decompress-response" "^3.3.0" - "duplexer3" "^0.1.4" - "get-stream" "^4.1.0" - "lowercase-keys" "^1.0.1" - "mimic-response" "^1.0.1" - "p-cancelable" "^1.0.0" - "to-readable-stream" "^1.0.0" - "url-parse-lax" "^3.0.0" - -"graceful-fs@^4.1.2", "graceful-fs@^4.1.3", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.2", "graceful-fs@^4.2.4": - "integrity" "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" - "version" "4.2.9" - -"graphql-extensions@^0.15.0": - "integrity" "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==" - "resolved" "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz" - "version" "0.15.0" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +got@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: + version "4.2.9" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + +graphql-extensions@^0.15.0: + version "0.15.0" + resolved "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz" + integrity sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA== dependencies: "@apollographql/apollo-tools" "^0.5.0" - "apollo-server-env" "^3.1.0" - "apollo-server-types" "^0.9.0" + apollo-server-env "^3.1.0" + apollo-server-types "^0.9.0" + +graphql-query-complexity@^0.7.0: + version "0.7.2" + resolved "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz" + integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== + dependencies: + lodash.get "^4.4.2" + +graphql-subscriptions@^1.0.0, graphql-subscriptions@^1.1.0: + version "1.2.1" + resolved "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz" + integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== + dependencies: + iterall "^1.3.0" + +graphql-tag@^2.11.0, graphql-tag@^2.12.0: + version "2.12.6" + resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql-tools@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz" + integrity sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg== + dependencies: + apollo-link "^1.2.14" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.0" + +graphql@^15.3.0, graphql@^15.5.0: + version "15.8.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" + integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== + +hamt-sharding@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-2.0.1.tgz" + integrity sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA== + dependencies: + sparse-array "^1.3.1" + uint8arrays "^3.0.0" + +handlebars@^4.1.0: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" -"graphql-query-complexity@^0.7.0": - "integrity" "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==" - "resolved" "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz" - "version" "0.7.2" +hapi-pino@^8.3.0: + version "8.5.0" + resolved "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.5.0.tgz" + integrity sha512-p0phuePalD8965r6mboCBLIMWRO2vQAx+VSnXhTKxnF/4Sf+dk8Uze7109w9QfhlvGMqvBTEF6SxGStObBB/Lw== dependencies: - "lodash.get" "^4.4.2" - -"graphql-subscriptions@^1.0.0", "graphql-subscriptions@^1.1.0": - "integrity" "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==" - "resolved" "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz" - "version" "1.2.1" + "@hapi/hoek" "^9.0.0" + abstract-logging "^2.0.0" + pino "^6.0.0" + pino-pretty "^4.0.0" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.0, has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hashlru@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz" + integrity sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A== + +hat@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" + integrity sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo= + +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + +"headless@https://github.com/paulkernfeld/node-headless/tarball/master": + version "1.1.0" + resolved "https://github.com/paulkernfeld/node-headless/tarball/master#0ded78103ce64e40d1ca65a57b95faebaa664dd1" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +home-path@^1.0.1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.7.tgz#cf77d7339ff3ddc3347a23c52612b1f5e7e56313" + integrity sha512-tM1pVa+u3ZqQwIkXcWfhUlY3HWS3TsnKsfi2OHHvnhkX52s9etyktPyy1rQotkr0euWimChDq+QkQuDe8ngUlQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@1.8.1, http-errors@^1.7.3: + version "1.8.1" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: - "iterall" "^1.3.0" + "@tootallnate/once" "1" + agent-base "6" + debug "4" -"graphql-tag@^2.11.0", "graphql-tag@^2.12.0": - "integrity" "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==" - "resolved" "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz" - "version" "2.12.6" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: - "tslib" "^2.1.0" + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" -"graphql-tools@^4.0.8": - "integrity" "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==" - "resolved" "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz" - "version" "4.0.8" +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== dependencies: - "apollo-link" "^1.2.14" - "apollo-utilities" "^1.0.1" - "deprecated-decorator" "^0.1.6" - "iterall" "^1.1.3" - "uuid" "^3.1.0" + agent-base "6" + debug "4" -"graphql@^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^14.0.0 || ^15.0.0", "graphql@^14.2.1 || ^15.0.0", "graphql@^15.3.0", "graphql@^15.5.0", "graphql@>=0.10.0", "graphql@0.13.1 - 15": - "integrity" "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" - "resolved" "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" - "version" "15.8.0" +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -"hamt-sharding@^2.0.0": - "integrity" "sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA==" - "resolved" "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-2.0.1.tgz" - "version" "2.0.1" +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: - "sparse-array" "^1.3.1" - "uint8arrays" "^3.0.0" + safer-buffer ">= 2.1.2 < 3" -"hapi-pino@^8.3.0": - "integrity" "sha512-p0phuePalD8965r6mboCBLIMWRO2vQAx+VSnXhTKxnF/4Sf+dk8Uze7109w9QfhlvGMqvBTEF6SxGStObBB/Lw==" - "resolved" "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.5.0.tgz" - "version" "8.5.0" - dependencies: - "@hapi/hoek" "^9.0.0" - "abstract-logging" "^2.0.0" - "pino" "^6.0.0" - "pino-pretty" "^4.0.0" - -"har-schema@^2.0.0": - "integrity" "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - "resolved" "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - "version" "2.0.0" - -"har-validator@~5.1.3": - "integrity" "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==" - "resolved" "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" - "version" "5.1.5" - dependencies: - "ajv" "^6.12.3" - "har-schema" "^2.0.0" - -"has-bigints@^1.0.1": - "integrity" "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" - "version" "1.0.1" - -"has-cors@1.1.0": - "integrity" "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - "resolved" "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" - "version" "1.1.0" - -"has-flag@^2.0.0": - "integrity" "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" - "version" "2.0.0" - -"has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - "version" "3.0.0" - -"has-flag@^4.0.0": - "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - "version" "4.0.0" - -"has-symbols@^1.0.1", "has-symbols@^1.0.2": - "integrity" "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" - "version" "1.0.2" - -"has-tostringtag@^1.0.0": - "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" - "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "has-symbols" "^1.0.2" - -"has-unicode@^2.0.0", "has-unicode@^2.0.1": - "integrity" "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - "resolved" "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" - "version" "2.0.1" - -"has-yarn@^2.1.0": - "integrity" "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - "resolved" "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" - "version" "2.1.0" - -"has@^1.0.3": - "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" - "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "function-bind" "^1.1.1" - -"hash.js@^1.0.0", "hash.js@^1.0.3": - "integrity" "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==" - "resolved" "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - "version" "1.1.7" - dependencies: - "inherits" "^2.0.3" - "minimalistic-assert" "^1.0.1" - -"hashlru@^2.3.0": - "integrity" "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" - "resolved" "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz" - "version" "2.3.0" - -"header-case@^2.0.4": - "integrity" "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==" - "resolved" "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz" - "version" "2.0.4" - dependencies: - "capital-case" "^1.0.4" - "tslib" "^2.0.3" - -"hmac-drbg@^1.0.1": - "integrity" "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" - "resolved" "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "hash.js" "^1.0.3" - "minimalistic-assert" "^1.0.0" - "minimalistic-crypto-utils" "^1.0.1" - -"hoist-non-react-statics@^3.3.2": - "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==" - "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" - "version" "3.3.2" - dependencies: - "react-is" "^16.7.0" - -"html-encoding-sniffer@^2.0.1": - "integrity" "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==" - "resolved" "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "whatwg-encoding" "^1.0.5" - -"html-escaper@^2.0.0": - "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - "resolved" "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - "version" "2.0.2" - -"http-cache-semantics@^4.0.0": - "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" - "version" "4.1.0" - -"http-errors@^1.7.3", "http-errors@1.8.1": - "integrity" "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==" - "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" - "version" "1.8.1" - dependencies: - "depd" "~1.1.2" - "inherits" "2.0.4" - "setprototypeof" "1.2.0" - "statuses" ">= 1.5.0 < 2" - "toidentifier" "1.0.1" - -"http-proxy-agent@^4.0.1": - "integrity" "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==" - "resolved" "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" - "version" "4.0.1" +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: - "@tootallnate/once" "1" - "agent-base" "6" - "debug" "4" - -"http-signature@~1.2.0": - "integrity" "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" - "resolved" "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" - "version" "1.2.0" - dependencies: - "assert-plus" "^1.0.0" - "jsprim" "^1.2.2" - "sshpk" "^1.7.0" - -"https-proxy-agent@^5.0.0": - "integrity" "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==" - "resolved" "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "agent-base" "6" - "debug" "4" - -"human-signals@^2.1.0": - "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - "version" "2.1.0" - -"iconv-lite@^0.4.4", "iconv-lite@0.4.24": - "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" - "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - "version" "0.4.24" - dependencies: - "safer-buffer" ">= 2.1.2 < 3" - -"iconv-lite@^0.6.2": - "integrity" "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==" - "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" - "version" "0.6.3" - dependencies: - "safer-buffer" ">= 2.1.2 < 3.0.0" - -"ieee754@^1.1.13", "ieee754@^1.2.1": - "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - "version" "1.2.1" - -"ignore-walk@^3.0.1": - "integrity" "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==" - "resolved" "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "minimatch" "^3.0.4" - -"import-lazy@^2.1.0": - "integrity" "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - "resolved" "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" - "version" "2.1.0" - -"import-local@^3.0.2": - "integrity" "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==" - "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "pkg-dir" "^4.2.0" - "resolve-cwd" "^3.0.0" - -"imurmurhash@^0.1.4": - "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - "version" "0.1.4" - -"indent-string@^4.0.0": - "integrity" "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - "version" "4.0.0" - -"inflight@^1.0.4": - "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" - "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "once" "^1.3.0" - "wrappy" "1" - -"inherits@^2.0.1", "inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.0", "inherits@~2.0.3", "inherits@2", "inherits@2.0.4": - "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - "version" "2.0.4" - -"ini@~1.3.0": - "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - "version" "1.3.8" - -"ini@2.0.0": - "integrity" "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - "resolved" "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" - "version" "2.0.0" - -"interface-blockstore@^1.0.0": - "integrity" "sha512-e8rHqaBSOsBPpSaB+wwVa9mR5ntU+t1yzXpOFC16cSKCNsV+h6n8SjekPQcdODVBN2h8t45CsOqRAnUfm1guEw==" - "resolved" "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "err-code" "^3.0.1" - "interface-store" "^1.0.2" - "it-all" "^1.0.5" - "it-drain" "^1.0.4" - "it-filter" "^1.0.2" - "it-take" "^1.0.1" - "multiformats" "^9.0.4" - -"interface-blockstore@^2.0.2": - "integrity" "sha512-OwVUnlNcx7H5HloK0Myv6c/C1q9cNG11HX6afdeU6q6kbuNj8jKCwVnmJHhC94LZaJ+9hvVOk4IUstb3Esg81w==" - "resolved" "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-2.0.3.tgz" - "version" "2.0.3" - dependencies: - "interface-store" "^2.0.2" - "multiformats" "^9.0.4" - -"interface-datastore@^6.0.2": - "integrity" "sha512-oNHdsrWBsI/kDwUtEgt+aaZtQFKtQYN0TGZzc3SGiIA6m+plZ6malhmsygtbmDpfpIsNNC7ce9Gyaj+Tki+gVw==" - "resolved" "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.0.tgz" - "version" "6.1.0" - dependencies: - "interface-store" "^2.0.1" - "nanoid" "^3.0.2" - "uint8arrays" "^3.0.0" - -"interface-store@^1.0.2": - "integrity" "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" - "resolved" "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz" - "version" "1.0.2" - -"interface-store@^2.0.1", "interface-store@^2.0.2": - "integrity" "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" - "resolved" "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz" - "version" "2.0.2" - -"internal-slot@^1.0.3": - "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==" - "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "get-intrinsic" "^1.1.0" - "has" "^1.0.3" - "side-channel" "^1.0.4" - -"ip-address@^8.0.0": - "integrity" "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==" - "resolved" "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz" - "version" "8.1.0" - dependencies: - "jsbn" "1.1.0" - "sprintf-js" "1.1.2" - -"ip-regex@^4.0.0", "ip-regex@^4.3.0": - "integrity" "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" - "resolved" "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" - "version" "4.3.0" - -"ipaddr.js@^2.0.1": - "integrity" "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz" - "version" "2.0.1" - -"ipaddr.js@1.9.1": - "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - "version" "1.9.1" - -"ipfs-bitswap@^9.0.0": - "integrity" "sha512-NtqLTr5+a0moZ+Hw9Px9Z+pXHR7Lt/48oQaphA0n2POFOb3//sViJR/7pe/IFHqFkgpL+iygYsE/uIhNateQ4g==" - "resolved" "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-9.0.0.tgz" - "version" "9.0.0" + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +idna-uts46-hx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== + dependencies: + punycode "2.1.0" + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^3.0.1: + version "3.0.4" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== + dependencies: + minimatch "^3.0.4" + +immutable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" + integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== + dependencies: + import-from "^3.0.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== + dependencies: + resolve-from "^5.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +iniparser@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/iniparser/-/iniparser-1.0.5.tgz#836d6befe6dfbfcee0bccf1cf9f2acc7027f783d" + integrity sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0= + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +interface-blockstore@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-1.0.2.tgz" + integrity sha512-e8rHqaBSOsBPpSaB+wwVa9mR5ntU+t1yzXpOFC16cSKCNsV+h6n8SjekPQcdODVBN2h8t45CsOqRAnUfm1guEw== + dependencies: + err-code "^3.0.1" + interface-store "^1.0.2" + it-all "^1.0.5" + it-drain "^1.0.4" + it-filter "^1.0.2" + it-take "^1.0.1" + multiformats "^9.0.4" + +interface-blockstore@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-2.0.3.tgz" + integrity sha512-OwVUnlNcx7H5HloK0Myv6c/C1q9cNG11HX6afdeU6q6kbuNj8jKCwVnmJHhC94LZaJ+9hvVOk4IUstb3Esg81w== + dependencies: + interface-store "^2.0.2" + multiformats "^9.0.4" + +interface-datastore@^6.0.2: + version "6.1.0" + resolved "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.0.tgz" + integrity sha512-oNHdsrWBsI/kDwUtEgt+aaZtQFKtQYN0TGZzc3SGiIA6m+plZ6malhmsygtbmDpfpIsNNC7ce9Gyaj+Tki+gVw== + dependencies: + interface-store "^2.0.1" + nanoid "^3.0.2" + uint8arrays "^3.0.0" + +interface-store@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz" + integrity sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ== + +interface-store@^2.0.1, interface-store@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz" + integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +ip-address@^8.0.0: + version "8.1.0" + resolved "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz" + integrity sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA== + dependencies: + jsbn "1.1.0" + sprintf-js "1.1.2" + +ip-regex@^4.0.0, ip-regex@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +ipfs-bitswap@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-9.0.0.tgz" + integrity sha512-NtqLTr5+a0moZ+Hw9Px9Z+pXHR7Lt/48oQaphA0n2POFOb3//sViJR/7pe/IFHqFkgpL+iygYsE/uIhNateQ4g== dependencies: "@vascosantos/moving-average" "^1.1.0" - "abort-controller" "^3.0.0" - "any-signal" "^2.1.2" - "blockstore-core" "^1.0.2" - "debug" "^4.2.0" - "err-code" "^3.0.1" - "interface-blockstore" "^2.0.2" - "it-length-prefixed" "^5.0.2" - "it-pipe" "^1.1.0" - "just-debounce-it" "^1.1.0" - "libp2p-interfaces" "^2.0.1" - "multiaddr" "^10.0.0" - "multiformats" "^9.0.4" - "native-abort-controller" "^1.0.3" - "protobufjs" "^6.10.2" - "readable-stream" "^3.6.0" - "uint8arrays" "^3.0.0" - "varint" "^6.0.0" - "varint-decoder" "^1.0.0" - -"ipfs-cli@^0.11.0": - "integrity" "sha512-hvQFRfyuZP0JelNgoQIutQBp8szHY8OkDrCRyvPWI68NARSidwlKfxgtsdI0rMAn/q3anR8yKl+JEvDaWbRxoA==" - "resolved" "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.11.0.tgz" - "version" "0.11.0" + abort-controller "^3.0.0" + any-signal "^2.1.2" + blockstore-core "^1.0.2" + debug "^4.2.0" + err-code "^3.0.1" + interface-blockstore "^2.0.2" + it-length-prefixed "^5.0.2" + it-pipe "^1.1.0" + just-debounce-it "^1.1.0" + libp2p-interfaces "^2.0.1" + multiaddr "^10.0.0" + multiformats "^9.0.4" + native-abort-controller "^1.0.3" + protobufjs "^6.10.2" + readable-stream "^3.6.0" + uint8arrays "^3.0.0" + varint "^6.0.0" + varint-decoder "^1.0.0" + +ipfs-cli@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.11.0.tgz" + integrity sha512-hvQFRfyuZP0JelNgoQIutQBp8szHY8OkDrCRyvPWI68NARSidwlKfxgtsdI0rMAn/q3anR8yKl+JEvDaWbRxoA== dependencies: "@ipld/dag-cbor" "^7.0.0" "@ipld/dag-json" "^8.0.1" "@ipld/dag-pb" "^2.1.3" - "byteman" "^1.3.5" - "debug" "^4.1.1" - "err-code" "^3.0.1" - "execa" "^5.0.0" - "get-folder-size" "^2.0.1" - "ipfs-core" "^0.13.0" - "ipfs-core-types" "^0.9.0" - "ipfs-core-utils" "^0.13.0" - "ipfs-daemon" "^0.11.0" - "ipfs-http-client" "^55.0.0" - "ipfs-repo" "^13.0.6" - "ipfs-utils" "^9.0.2" - "it-all" "^1.0.4" - "it-concat" "^2.0.0" - "it-first" "^1.0.4" - "it-glob" "^1.0.0" - "it-map" "^1.0.5" - "it-merge" "^1.0.3" - "it-pipe" "^1.1.0" - "it-split" "^1.0.0" - "it-tar" "^4.0.0" - "jsondiffpatch" "^0.4.1" - "libp2p-crypto" "^0.21.0" - "mafmt" "^10.0.0" - "multiaddr" "^10.0.0" - "multiaddr-to-uri" "^8.0.0" - "multiformats" "^9.4.13" - "parse-duration" "^1.0.0" - "pretty-bytes" "^5.4.1" - "progress" "^2.0.3" - "stream-to-it" "^0.2.2" - "uint8arrays" "^3.0.0" - "yargs" "^16.0.3" - -"ipfs-core-config@^0.2.0": - "integrity" "sha512-vfVfubpwGq71teJ135Tv1IZuhDxypsv1ETOFTGYzEqH3VzpRaYoAil3UIJHTg0LV4gs3QOTfZKFfyNhY642FNw==" - "resolved" "https://registry.npmjs.org/ipfs-core-config/-/ipfs-core-config-0.2.0.tgz" - "version" "0.2.0" + byteman "^1.3.5" + debug "^4.1.1" + err-code "^3.0.1" + execa "^5.0.0" + get-folder-size "^2.0.1" + ipfs-core "^0.13.0" + ipfs-core-types "^0.9.0" + ipfs-core-utils "^0.13.0" + ipfs-daemon "^0.11.0" + ipfs-http-client "^55.0.0" + ipfs-repo "^13.0.6" + ipfs-utils "^9.0.2" + it-all "^1.0.4" + it-concat "^2.0.0" + it-first "^1.0.4" + it-glob "^1.0.0" + it-map "^1.0.5" + it-merge "^1.0.3" + it-pipe "^1.1.0" + it-split "^1.0.0" + it-tar "^4.0.0" + jsondiffpatch "^0.4.1" + libp2p-crypto "^0.21.0" + mafmt "^10.0.0" + multiaddr "^10.0.0" + multiaddr-to-uri "^8.0.0" + multiformats "^9.4.13" + parse-duration "^1.0.0" + pretty-bytes "^5.4.1" + progress "^2.0.3" + stream-to-it "^0.2.2" + uint8arrays "^3.0.0" + yargs "^16.0.3" + +ipfs-core-config@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/ipfs-core-config/-/ipfs-core-config-0.2.0.tgz" + integrity sha512-vfVfubpwGq71teJ135Tv1IZuhDxypsv1ETOFTGYzEqH3VzpRaYoAil3UIJHTg0LV4gs3QOTfZKFfyNhY642FNw== dependencies: "@chainsafe/libp2p-noise" "^5.0.0" - "blockstore-datastore-adapter" "^2.0.2" - "datastore-core" "^6.0.7" - "datastore-fs" "^6.0.1" - "datastore-level" "^7.0.1" - "debug" "^4.1.1" - "err-code" "^3.0.1" - "hashlru" "^2.3.0" - "ipfs-repo" "^13.0.6" - "ipfs-utils" "^9.0.2" - "ipns" "^0.16.0" - "is-ipfs" "^6.0.1" - "it-all" "^1.0.4" - "it-drain" "^1.0.3" - "libp2p-floodsub" "^0.28.0" - "libp2p-gossipsub" "^0.12.0" - "libp2p-kad-dht" "^0.27.4" - "libp2p-mdns" "^0.18.0" - "libp2p-mplex" "^0.10.2" - "libp2p-tcp" "^0.17.1" - "libp2p-webrtc-star" "^0.25.0" - "libp2p-websockets" "^0.16.2" - "p-queue" "^6.6.1" - "uint8arrays" "^3.0.0" - -"ipfs-core-types@^0.10.1": - "integrity" "sha512-s5+kXXcjkIdWPHblrE0TyiKxROQdL7zfkVI7FpEEwv5rtHCjpI0I4vKSzziZLLzLXf3a2F1qtscOnlaT0ruWBw==" - "resolved" "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz" - "version" "0.10.1" - dependencies: - "interface-datastore" "^6.0.2" - "multiaddr" "^10.0.0" - "multiformats" "^9.5.1" - -"ipfs-core-types@^0.9.0": - "integrity" "sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg==" - "resolved" "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz" - "version" "0.9.0" - dependencies: - "interface-datastore" "^6.0.2" - "multiaddr" "^10.0.0" - "multiformats" "^9.4.13" - -"ipfs-core-utils@^0.13.0": - "integrity" "sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw==" - "resolved" "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz" - "version" "0.13.0" - dependencies: - "any-signal" "^2.1.2" - "blob-to-it" "^1.0.1" - "browser-readablestream-to-it" "^1.0.1" - "debug" "^4.1.1" - "err-code" "^3.0.1" - "ipfs-core-types" "^0.9.0" - "ipfs-unixfs" "^6.0.3" - "ipfs-utils" "^9.0.2" - "it-all" "^1.0.4" - "it-map" "^1.0.4" - "it-peekable" "^1.0.2" - "it-to-stream" "^1.0.0" - "merge-options" "^3.0.4" - "multiaddr" "^10.0.0" - "multiaddr-to-uri" "^8.0.0" - "multiformats" "^9.4.13" - "nanoid" "^3.1.23" - "parse-duration" "^1.0.0" - "timeout-abort-controller" "^2.0.0" - "uint8arrays" "^3.0.0" - -"ipfs-core@^0.13.0": - "integrity" "sha512-25spsvgiRYle1QCC5Fzw4or/Rt1hAy7oZapL+mxXbweYL7JCX5AVYQZ8ypZbME0NQq8M6NDZ+IISwmr/wmAetQ==" - "resolved" "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.13.0.tgz" - "version" "0.13.0" + blockstore-datastore-adapter "^2.0.2" + datastore-core "^6.0.7" + datastore-fs "^6.0.1" + datastore-level "^7.0.1" + debug "^4.1.1" + err-code "^3.0.1" + hashlru "^2.3.0" + ipfs-repo "^13.0.6" + ipfs-utils "^9.0.2" + ipns "^0.16.0" + is-ipfs "^6.0.1" + it-all "^1.0.4" + it-drain "^1.0.3" + libp2p-floodsub "^0.28.0" + libp2p-gossipsub "^0.12.0" + libp2p-kad-dht "^0.27.4" + libp2p-mdns "^0.18.0" + libp2p-mplex "^0.10.2" + libp2p-tcp "^0.17.1" + libp2p-webrtc-star "^0.25.0" + libp2p-websockets "^0.16.2" + p-queue "^6.6.1" + uint8arrays "^3.0.0" + +ipfs-core-types@^0.10.1: + version "0.10.1" + resolved "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz" + integrity sha512-s5+kXXcjkIdWPHblrE0TyiKxROQdL7zfkVI7FpEEwv5rtHCjpI0I4vKSzziZLLzLXf3a2F1qtscOnlaT0ruWBw== + dependencies: + interface-datastore "^6.0.2" + multiaddr "^10.0.0" + multiformats "^9.5.1" + +ipfs-core-types@^0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz" + integrity sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg== + dependencies: + interface-datastore "^6.0.2" + multiaddr "^10.0.0" + multiformats "^9.4.13" + +ipfs-core-utils@^0.13.0: + version "0.13.0" + resolved "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz" + integrity sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw== + dependencies: + any-signal "^2.1.2" + blob-to-it "^1.0.1" + browser-readablestream-to-it "^1.0.1" + debug "^4.1.1" + err-code "^3.0.1" + ipfs-core-types "^0.9.0" + ipfs-unixfs "^6.0.3" + ipfs-utils "^9.0.2" + it-all "^1.0.4" + it-map "^1.0.4" + it-peekable "^1.0.2" + it-to-stream "^1.0.0" + merge-options "^3.0.4" + multiaddr "^10.0.0" + multiaddr-to-uri "^8.0.0" + multiformats "^9.4.13" + nanoid "^3.1.23" + parse-duration "^1.0.0" + timeout-abort-controller "^2.0.0" + uint8arrays "^3.0.0" + +ipfs-core@^0.13.0: + version "0.13.0" + resolved "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.13.0.tgz" + integrity sha512-25spsvgiRYle1QCC5Fzw4or/Rt1hAy7oZapL+mxXbweYL7JCX5AVYQZ8ypZbME0NQq8M6NDZ+IISwmr/wmAetQ== dependencies: "@chainsafe/libp2p-noise" "^5.0.0" "@ipld/car" "^3.1.0" @@ -4561,1149 +6427,1276 @@ "@ipld/dag-json" "^8.0.1" "@ipld/dag-pb" "^2.1.3" "@multiformats/murmur3" "^1.0.1" - "any-signal" "^2.1.2" - "array-shuffle" "^2.0.0" - "blockstore-core" "^1.0.2" - "blockstore-datastore-adapter" "^2.0.2" - "datastore-core" "^6.0.7" - "datastore-pubsub" "^1.0.0" - "debug" "^4.1.1" - "dlv" "^1.1.3" - "err-code" "^3.0.1" - "hamt-sharding" "^2.0.0" - "hashlru" "^2.3.0" - "interface-blockstore" "^2.0.2" - "interface-datastore" "^6.0.2" - "ipfs-bitswap" "^9.0.0" - "ipfs-core-config" "^0.2.0" - "ipfs-core-types" "^0.9.0" - "ipfs-core-utils" "^0.13.0" - "ipfs-http-client" "^55.0.0" - "ipfs-repo" "^13.0.6" - "ipfs-unixfs" "^6.0.3" - "ipfs-unixfs-exporter" "^7.0.3" - "ipfs-unixfs-importer" "^9.0.3" - "ipfs-utils" "^9.0.2" - "ipns" "^0.16.0" - "is-domain-name" "^1.0.1" - "is-ipfs" "^6.0.1" - "it-all" "^1.0.4" - "it-drain" "^1.0.3" - "it-filter" "^1.0.2" - "it-first" "^1.0.4" - "it-last" "^1.0.4" - "it-map" "^1.0.4" - "it-merge" "^1.0.2" - "it-parallel" "^2.0.1" - "it-peekable" "^1.0.2" - "it-pipe" "^1.1.0" - "it-pushable" "^1.4.2" - "it-tar" "^4.0.0" - "it-to-buffer" "^2.0.0" - "just-safe-set" "^2.2.1" - "libp2p" "^0.35.4" - "libp2p-bootstrap" "^0.14.0" - "libp2p-crypto" "^0.21.0" - "libp2p-delegated-content-routing" "^0.11.1" - "libp2p-delegated-peer-routing" "^0.11.0" - "libp2p-record" "^0.10.3" - "mafmt" "^10.0.0" - "merge-options" "^3.0.4" - "mortice" "^2.0.0" - "multiaddr" "^10.0.0" - "multiaddr-to-uri" "^8.0.0" - "multiformats" "^9.4.13" - "native-abort-controller" "^1.0.3" - "pako" "^1.0.2" - "parse-duration" "^1.0.0" - "peer-id" "^0.16.0" - "timeout-abort-controller" "^2.0.0" - "uint8arrays" "^3.0.0" - -"ipfs-daemon@^0.11.0": - "integrity" "sha512-WqrDSGfodBpDMTPGJz6xTYFNuADxKfp2jc37f3jZJK6gZSi9JeKK9eI6BwbTwWj9MtrnmB+eaja7JjqoGYkeDg==" - "resolved" "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.11.0.tgz" - "version" "0.11.0" + any-signal "^2.1.2" + array-shuffle "^2.0.0" + blockstore-core "^1.0.2" + blockstore-datastore-adapter "^2.0.2" + datastore-core "^6.0.7" + datastore-pubsub "^1.0.0" + debug "^4.1.1" + dlv "^1.1.3" + err-code "^3.0.1" + hamt-sharding "^2.0.0" + hashlru "^2.3.0" + interface-blockstore "^2.0.2" + interface-datastore "^6.0.2" + ipfs-bitswap "^9.0.0" + ipfs-core-config "^0.2.0" + ipfs-core-types "^0.9.0" + ipfs-core-utils "^0.13.0" + ipfs-http-client "^55.0.0" + ipfs-repo "^13.0.6" + ipfs-unixfs "^6.0.3" + ipfs-unixfs-exporter "^7.0.3" + ipfs-unixfs-importer "^9.0.3" + ipfs-utils "^9.0.2" + ipns "^0.16.0" + is-domain-name "^1.0.1" + is-ipfs "^6.0.1" + it-all "^1.0.4" + it-drain "^1.0.3" + it-filter "^1.0.2" + it-first "^1.0.4" + it-last "^1.0.4" + it-map "^1.0.4" + it-merge "^1.0.2" + it-parallel "^2.0.1" + it-peekable "^1.0.2" + it-pipe "^1.1.0" + it-pushable "^1.4.2" + it-tar "^4.0.0" + it-to-buffer "^2.0.0" + just-safe-set "^2.2.1" + libp2p "^0.35.4" + libp2p-bootstrap "^0.14.0" + libp2p-crypto "^0.21.0" + libp2p-delegated-content-routing "^0.11.1" + libp2p-delegated-peer-routing "^0.11.0" + libp2p-record "^0.10.3" + mafmt "^10.0.0" + merge-options "^3.0.4" + mortice "^2.0.0" + multiaddr "^10.0.0" + multiaddr-to-uri "^8.0.0" + multiformats "^9.4.13" + native-abort-controller "^1.0.3" + pako "^1.0.2" + parse-duration "^1.0.0" + peer-id "^0.16.0" + timeout-abort-controller "^2.0.0" + uint8arrays "^3.0.0" + +ipfs-daemon@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.11.0.tgz" + integrity sha512-WqrDSGfodBpDMTPGJz6xTYFNuADxKfp2jc37f3jZJK6gZSi9JeKK9eI6BwbTwWj9MtrnmB+eaja7JjqoGYkeDg== dependencies: "@mapbox/node-pre-gyp" "^1.0.5" - "debug" "^4.1.1" - "ipfs-core" "^0.13.0" - "ipfs-core-types" "^0.9.0" - "ipfs-grpc-server" "^0.8.0" - "ipfs-http-gateway" "^0.8.0" - "ipfs-http-server" "^0.10.0" - "ipfs-utils" "^9.0.2" - "just-safe-set" "^2.2.1" - "libp2p" "^0.35.4" - "libp2p-webrtc-star" "^0.25.0" + debug "^4.1.1" + ipfs-core "^0.13.0" + ipfs-core-types "^0.9.0" + ipfs-grpc-server "^0.8.0" + ipfs-http-gateway "^0.8.0" + ipfs-http-server "^0.10.0" + ipfs-utils "^9.0.2" + just-safe-set "^2.2.1" + libp2p "^0.35.4" + libp2p-webrtc-star "^0.25.0" optionalDependencies: - "electron-webrtc" "^0.3.0" - "prom-client" "^14.0.1" - "wrtc" "^0.4.6" + electron-webrtc "^0.3.0" + prom-client "^14.0.1" + wrtc "^0.4.6" -"ipfs-grpc-protocol@^0.5.5": - "integrity" "sha512-zoJ+xwcYwzJ03GWJdz3e2k1NqJMfI9+M/VyPImhqPowVmTZ0+f9JGR+M8MetJAHMeQILLCTXmIMsiFzAFObZJg==" - "resolved" "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.5.5.tgz" - "version" "0.5.5" +ipfs-grpc-protocol@^0.5.5: + version "0.5.5" + resolved "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.5.5.tgz" + integrity sha512-zoJ+xwcYwzJ03GWJdz3e2k1NqJMfI9+M/VyPImhqPowVmTZ0+f9JGR+M8MetJAHMeQILLCTXmIMsiFzAFObZJg== -"ipfs-grpc-server@^0.8.0": - "integrity" "sha512-rW7FV7PjpkmOTkPRpHoHrZ4/85MtoSLLaWmaEbJm7KEwqbvnYcHHkMfcAvhbWYP1sz0XJCzttfeRWV8KsSOi+w==" - "resolved" "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.8.2.tgz" - "version" "0.8.2" +ipfs-grpc-server@^0.8.0: + version "0.8.2" + resolved "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.8.2.tgz" + integrity sha512-rW7FV7PjpkmOTkPRpHoHrZ4/85MtoSLLaWmaEbJm7KEwqbvnYcHHkMfcAvhbWYP1sz0XJCzttfeRWV8KsSOi+w== dependencies: "@grpc/grpc-js" "^1.1.8" - "change-case" "^4.1.1" - "coercer" "^1.1.2" - "debug" "^4.1.1" - "ipfs-core-types" "^0.10.1" - "ipfs-grpc-protocol" "^0.5.5" - "it-first" "^1.0.4" - "it-map" "^1.0.4" - "it-peekable" "^1.0.2" - "it-pipe" "^1.1.0" - "it-pushable" "^1.4.2" - "multiaddr" "^10.0.0" - "nanoid" "^3.1.23" - "protobufjs" "^6.10.2" - "ws" "^7.3.1" - -"ipfs-http-client@^55.0.0": - "integrity" "sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ==" - "resolved" "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz" - "version" "55.0.0" + change-case "^4.1.1" + coercer "^1.1.2" + debug "^4.1.1" + ipfs-core-types "^0.10.1" + ipfs-grpc-protocol "^0.5.5" + it-first "^1.0.4" + it-map "^1.0.4" + it-peekable "^1.0.2" + it-pipe "^1.1.0" + it-pushable "^1.4.2" + multiaddr "^10.0.0" + nanoid "^3.1.23" + protobufjs "^6.10.2" + ws "^7.3.1" + +ipfs-http-client@^55.0.0: + version "55.0.0" + resolved "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz" + integrity sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ== dependencies: "@ipld/dag-cbor" "^7.0.0" "@ipld/dag-json" "^8.0.1" "@ipld/dag-pb" "^2.1.3" - "abort-controller" "^3.0.0" - "any-signal" "^2.1.2" - "debug" "^4.1.1" - "err-code" "^3.0.1" - "ipfs-core-types" "^0.9.0" - "ipfs-core-utils" "^0.13.0" - "ipfs-utils" "^9.0.2" - "it-first" "^1.0.6" - "it-last" "^1.0.4" - "merge-options" "^3.0.4" - "multiaddr" "^10.0.0" - "multiformats" "^9.4.13" - "native-abort-controller" "^1.0.3" - "parse-duration" "^1.0.0" - "stream-to-it" "^0.2.2" - "uint8arrays" "^3.0.0" - -"ipfs-http-gateway@^0.8.0": - "integrity" "sha512-vL8Yt4hSPGTrY0jUQYHFkRs/VGqsvdgdeZkCr+ffqkCiEud78LayVgtD1UlT+QA6luowjFXQ2dFqpozOwnlr2w==" - "resolved" "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.8.0.tgz" - "version" "0.8.0" + abort-controller "^3.0.0" + any-signal "^2.1.2" + debug "^4.1.1" + err-code "^3.0.1" + ipfs-core-types "^0.9.0" + ipfs-core-utils "^0.13.0" + ipfs-utils "^9.0.2" + it-first "^1.0.6" + it-last "^1.0.4" + merge-options "^3.0.4" + multiaddr "^10.0.0" + multiformats "^9.4.13" + native-abort-controller "^1.0.3" + parse-duration "^1.0.0" + stream-to-it "^0.2.2" + uint8arrays "^3.0.0" + +ipfs-http-gateway@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.8.0.tgz" + integrity sha512-vL8Yt4hSPGTrY0jUQYHFkRs/VGqsvdgdeZkCr+ffqkCiEud78LayVgtD1UlT+QA6luowjFXQ2dFqpozOwnlr2w== dependencies: "@hapi/ammo" "^5.0.1" "@hapi/boom" "^9.1.0" "@hapi/hapi" "^20.0.0" - "debug" "^4.1.1" - "hapi-pino" "^8.3.0" - "ipfs-core-types" "^0.9.0" - "ipfs-http-response" "^1.0.6" - "is-ipfs" "^6.0.1" - "it-last" "^1.0.4" - "it-to-stream" "^1.0.0" - "joi" "^17.2.1" - "multiformats" "^9.4.13" - "uint8arrays" "^3.0.0" - "uri-to-multiaddr" "^6.0.0" - -"ipfs-http-response@^1.0.6": - "integrity" "sha512-aMC+kO06ue7Rv8bPdX7te7k4Ss6qLiWSp8ffyVe4zA90XKZV3zo0FOI6UmjgCG5qZ1H0P1zXYq94JCkczagO8A==" - "resolved" "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "debug" "^4.3.1" - "ejs" "^3.1.6" - "file-type" "^16.0.0" - "filesize" "^8.0.0" - "it-buffer" "^0.1.1" - "it-concat" "^2.0.0" - "it-reader" "^3.0.0" - "it-to-stream" "^1.0.0" - "mime-types" "^2.1.30" - "p-try-each" "^1.0.1" - -"ipfs-http-server@^0.10.0": - "integrity" "sha512-zb6pCTk0mHtn1nOPqJRe7aDgPzU9T9+U0eCotw0Nc2Gw3iJoF7AvFboPIpmGeTv4JDMhgYzNIAiiXIo69+r8Sg==" - "resolved" "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.10.0.tgz" - "version" "0.10.0" + debug "^4.1.1" + hapi-pino "^8.3.0" + ipfs-core-types "^0.9.0" + ipfs-http-response "^1.0.6" + is-ipfs "^6.0.1" + it-last "^1.0.4" + it-to-stream "^1.0.0" + joi "^17.2.1" + multiformats "^9.4.13" + uint8arrays "^3.0.0" + uri-to-multiaddr "^6.0.0" + +ipfs-http-response@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-1.0.6.tgz" + integrity sha512-aMC+kO06ue7Rv8bPdX7te7k4Ss6qLiWSp8ffyVe4zA90XKZV3zo0FOI6UmjgCG5qZ1H0P1zXYq94JCkczagO8A== + dependencies: + debug "^4.3.1" + ejs "^3.1.6" + file-type "^16.0.0" + filesize "^8.0.0" + it-buffer "^0.1.1" + it-concat "^2.0.0" + it-reader "^3.0.0" + it-to-stream "^1.0.0" + mime-types "^2.1.30" + p-try-each "^1.0.1" + +ipfs-http-server@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.10.0.tgz" + integrity sha512-zb6pCTk0mHtn1nOPqJRe7aDgPzU9T9+U0eCotw0Nc2Gw3iJoF7AvFboPIpmGeTv4JDMhgYzNIAiiXIo69+r8Sg== dependencies: "@hapi/boom" "^9.1.0" "@hapi/content" "^5.0.2" "@hapi/hapi" "^20.0.0" "@ipld/dag-pb" "^2.1.3" - "abort-controller" "^3.0.0" - "any-signal" "^2.1.2" - "debug" "^4.1.1" - "dlv" "^1.1.3" - "err-code" "^3.0.1" - "hapi-pino" "^8.3.0" - "ipfs-core-types" "^0.9.0" - "ipfs-core-utils" "^0.13.0" - "ipfs-http-gateway" "^0.8.0" - "ipfs-unixfs" "^6.0.3" - "it-all" "^1.0.4" - "it-drain" "^1.0.3" - "it-filter" "^1.0.2" - "it-first" "^1.0.4" - "it-last" "^1.0.4" - "it-map" "^1.0.4" - "it-merge" "^1.0.2" - "it-multipart" "^2.0.0" - "it-pipe" "^1.1.0" - "it-pushable" "^1.4.2" - "it-reduce" "^1.0.5" - "joi" "^17.2.1" - "just-safe-set" "^2.2.1" - "multiaddr" "^10.0.0" - "multiformats" "^9.4.13" - "native-abort-controller" "^1.0.3" - "parse-duration" "^1.0.0" - "stream-to-it" "^0.2.2" - "timeout-abort-controller" "^2.0.0" - "uint8arrays" "^3.0.0" - "uri-to-multiaddr" "^6.0.0" + abort-controller "^3.0.0" + any-signal "^2.1.2" + debug "^4.1.1" + dlv "^1.1.3" + err-code "^3.0.1" + hapi-pino "^8.3.0" + ipfs-core-types "^0.9.0" + ipfs-core-utils "^0.13.0" + ipfs-http-gateway "^0.8.0" + ipfs-unixfs "^6.0.3" + it-all "^1.0.4" + it-drain "^1.0.3" + it-filter "^1.0.2" + it-first "^1.0.4" + it-last "^1.0.4" + it-map "^1.0.4" + it-merge "^1.0.2" + it-multipart "^2.0.0" + it-pipe "^1.1.0" + it-pushable "^1.4.2" + it-reduce "^1.0.5" + joi "^17.2.1" + just-safe-set "^2.2.1" + multiaddr "^10.0.0" + multiformats "^9.4.13" + native-abort-controller "^1.0.3" + parse-duration "^1.0.0" + stream-to-it "^0.2.2" + timeout-abort-controller "^2.0.0" + uint8arrays "^3.0.0" + uri-to-multiaddr "^6.0.0" optionalDependencies: - "prom-client" "^14.0.1" + prom-client "^14.0.1" -"ipfs-repo-migrations@^11.0.2": - "integrity" "sha512-0+O1q3X06jObIKYIEyUDNH1078PrQ7qg4i3Ufv4U0+R4MlF1LOYyQGwW6AK87V94Pta0bHeicYeY3dGpGgzv4g==" - "resolved" "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-11.0.2.tgz" - "version" "11.0.2" +ipfs-repo-migrations@^11.0.2: + version "11.0.2" + resolved "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-11.0.2.tgz" + integrity sha512-0+O1q3X06jObIKYIEyUDNH1078PrQ7qg4i3Ufv4U0+R4MlF1LOYyQGwW6AK87V94Pta0bHeicYeY3dGpGgzv4g== dependencies: "@ipld/dag-pb" "^2.0.0" - "cborg" "^1.3.1" - "datastore-core" "^6.0.7" - "debug" "^4.1.0" - "fnv1a" "^1.0.1" - "interface-blockstore" "^2.0.2" - "interface-datastore" "^6.0.2" - "it-length" "^1.0.1" - "multiformats" "^9.0.0" - "protobufjs" "^6.10.2" - "uint8arrays" "^3.0.0" - "varint" "^6.0.0" - -"ipfs-repo@^13.0.6": - "integrity" "sha512-0z3iApJMew2XM8ZeAPDUnEOII10s+LNThd/jmiLvkRPcMVAkzsyRXpWnRQ2hPuDGxw91QCcQHG+GS4xW2eVCdQ==" - "resolved" "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-13.0.7.tgz" - "version" "13.0.7" + cborg "^1.3.1" + datastore-core "^6.0.7" + debug "^4.1.0" + fnv1a "^1.0.1" + interface-blockstore "^2.0.2" + interface-datastore "^6.0.2" + it-length "^1.0.1" + multiformats "^9.0.0" + protobufjs "^6.10.2" + uint8arrays "^3.0.0" + varint "^6.0.0" + +ipfs-repo@^13.0.6: + version "13.0.7" + resolved "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-13.0.7.tgz" + integrity sha512-0z3iApJMew2XM8ZeAPDUnEOII10s+LNThd/jmiLvkRPcMVAkzsyRXpWnRQ2hPuDGxw91QCcQHG+GS4xW2eVCdQ== dependencies: "@ipld/dag-pb" "^2.1.0" - "bytes" "^3.1.0" - "cborg" "^1.3.4" - "datastore-core" "^6.0.7" - "debug" "^4.1.0" - "err-code" "^3.0.1" - "interface-blockstore" "^2.0.2" - "interface-datastore" "^6.0.2" - "ipfs-repo-migrations" "^11.0.2" - "it-drain" "^1.0.1" - "it-filter" "^1.0.2" - "it-first" "^1.0.2" - "it-map" "^1.0.5" - "it-merge" "^1.0.2" - "it-parallel-batch" "^1.0.9" - "it-pipe" "^1.1.0" - "it-pushable" "^1.4.0" - "just-safe-get" "^2.0.0" - "just-safe-set" "^2.1.0" - "merge-options" "^3.0.4" - "mortice" "^2.0.1" - "multiformats" "^9.0.4" - "p-queue" "^6.0.0" - "proper-lockfile" "^4.0.0" - "sort-keys" "^4.2.0" - "uint8arrays" "^3.0.0" - -"ipfs-unixfs-exporter@^7.0.3": - "integrity" "sha512-PkKB+hTbHhKLqgj0PqSNQ/n7dKsu/lC29jLK8nUXOX4EM6c+RnedohdCY7khT10/hfC7oADbpFs/QJfuH2DaAg==" - "resolved" "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-7.0.6.tgz" - "version" "7.0.6" + bytes "^3.1.0" + cborg "^1.3.4" + datastore-core "^6.0.7" + debug "^4.1.0" + err-code "^3.0.1" + interface-blockstore "^2.0.2" + interface-datastore "^6.0.2" + ipfs-repo-migrations "^11.0.2" + it-drain "^1.0.1" + it-filter "^1.0.2" + it-first "^1.0.2" + it-map "^1.0.5" + it-merge "^1.0.2" + it-parallel-batch "^1.0.9" + it-pipe "^1.1.0" + it-pushable "^1.4.0" + just-safe-get "^2.0.0" + just-safe-set "^2.1.0" + merge-options "^3.0.4" + mortice "^2.0.1" + multiformats "^9.0.4" + p-queue "^6.0.0" + proper-lockfile "^4.0.0" + sort-keys "^4.2.0" + uint8arrays "^3.0.0" + +ipfs-unixfs-exporter@^7.0.3: + version "7.0.6" + resolved "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-7.0.6.tgz" + integrity sha512-PkKB+hTbHhKLqgj0PqSNQ/n7dKsu/lC29jLK8nUXOX4EM6c+RnedohdCY7khT10/hfC7oADbpFs/QJfuH2DaAg== dependencies: "@ipld/dag-cbor" "^6.0.4" "@ipld/dag-pb" "^2.0.2" "@multiformats/murmur3" "^1.0.3" - "err-code" "^3.0.1" - "hamt-sharding" "^2.0.0" - "interface-blockstore" "^1.0.0" - "ipfs-unixfs" "^6.0.6" - "it-last" "^1.0.5" - "multiformats" "^9.4.2" - "uint8arrays" "^3.0.0" - -"ipfs-unixfs-importer@^9.0.3": - "integrity" "sha512-FgzODqg4pvToEMZ88mFkHcU0s25CljmnqX2VX7K/VQDckiZIxhIiUTQRqQg/C7Em4uCzVp8YCxKUvl++w6kvNg==" - "resolved" "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-9.0.6.tgz" - "version" "9.0.6" + err-code "^3.0.1" + hamt-sharding "^2.0.0" + interface-blockstore "^1.0.0" + ipfs-unixfs "^6.0.6" + it-last "^1.0.5" + multiformats "^9.4.2" + uint8arrays "^3.0.0" + +ipfs-unixfs-importer@^9.0.3: + version "9.0.6" + resolved "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-9.0.6.tgz" + integrity sha512-FgzODqg4pvToEMZ88mFkHcU0s25CljmnqX2VX7K/VQDckiZIxhIiUTQRqQg/C7Em4uCzVp8YCxKUvl++w6kvNg== dependencies: "@ipld/dag-pb" "^2.0.2" "@multiformats/murmur3" "^1.0.3" - "bl" "^5.0.0" - "err-code" "^3.0.1" - "hamt-sharding" "^2.0.0" - "interface-blockstore" "^1.0.0" - "ipfs-unixfs" "^6.0.6" - "it-all" "^1.0.5" - "it-batch" "^1.0.8" - "it-first" "^1.0.6" - "it-parallel-batch" "^1.0.9" - "merge-options" "^3.0.4" - "multiformats" "^9.4.2" - "rabin-wasm" "^0.1.4" - "uint8arrays" "^3.0.0" - -"ipfs-unixfs@^6.0.3", "ipfs-unixfs@^6.0.6": - "integrity" "sha512-gTkjYKXuHnqIf6EFfS+ESaYEl3I3aaQQ0UX8MhpNzreMLEuMnuqpoI/uLLllTZa31WRplKixabbpRTSmTYRNwA==" - "resolved" "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.6.tgz" - "version" "6.0.6" - dependencies: - "err-code" "^3.0.1" - "protobufjs" "^6.10.2" - -"ipfs-utils@^9.0.1", "ipfs-utils@^9.0.2": - "integrity" "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==" - "resolved" "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz" - "version" "9.0.4" - dependencies: - "any-signal" "^3.0.0" - "buffer" "^6.0.1" - "electron-fetch" "^1.7.2" - "err-code" "^3.0.1" - "is-electron" "^2.2.0" - "iso-url" "^1.1.5" - "it-glob" "^1.0.1" - "it-to-stream" "^1.0.0" - "merge-options" "^3.0.4" - "nanoid" "^3.1.20" - "native-fetch" "^3.0.0" - "node-fetch" "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" - "react-native-fetch-api" "^2.0.0" - "stream-to-it" "^0.2.2" - -"ipfs@0.61.0": - "integrity" "sha512-BNr1uR4TVbTEA2k0sdIKKikmEZ9SqW+qPyBmXKykgQ7aCS6gy6XcuheINd+7O2lqwtVMAR9dnCv0hQbm4FIZxQ==" - "resolved" "https://registry.npmjs.org/ipfs/-/ipfs-0.61.0.tgz" - "version" "0.61.0" - dependencies: - "debug" "^4.1.1" - "ipfs-cli" "^0.11.0" - "ipfs-core" "^0.13.0" - "semver" "^7.3.2" - "update-notifier" "^5.0.0" - -"ipns@^0.16.0": - "integrity" "sha512-fBYkRjN3/fc6IQujUF4WBEyOXegK715w+wx9IErV6H2B5JXsMnHOBceUKn3L90dj+wJfHs6T+hM/OZiTT6mQCw==" - "resolved" "https://registry.npmjs.org/ipns/-/ipns-0.16.0.tgz" - "version" "0.16.0" - dependencies: - "cborg" "^1.3.3" - "debug" "^4.2.0" - "err-code" "^3.0.1" - "interface-datastore" "^6.0.2" - "libp2p-crypto" "^0.21.0" - "long" "^4.0.0" - "multiformats" "^9.4.5" - "peer-id" "^0.16.0" - "protobufjs" "^6.10.2" - "timestamp-nano" "^1.0.0" - "uint8arrays" "^3.0.0" - -"is-bigint@^1.0.1": - "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" - "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "has-bigints" "^1.0.1" - -"is-boolean-object@^1.1.0": - "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" - "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" - -"is-buffer@^2.0.5": - "integrity" "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" - "version" "2.0.5" - -"is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.4": - "integrity" "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" - "version" "1.2.4" - -"is-ci@^2.0.0": - "integrity" "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==" - "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "ci-info" "^2.0.0" - -"is-core-module@^2.8.0": - "integrity" "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==" - "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz" - "version" "2.8.1" - dependencies: - "has" "^1.0.3" - -"is-date-object@^1.0.1": - "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" - "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-domain-name@^1.0.1": - "integrity" "sha1-9uszsUpJdUHcpYM1E31EZuDCDaE=" - "resolved" "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz" - "version" "1.0.1" - -"is-electron@^2.2.0": - "integrity" "sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw==" - "resolved" "https://registry.npmjs.org/is-electron/-/is-electron-2.2.1.tgz" - "version" "2.2.1" - -"is-fullwidth-code-point@^1.0.0": - "integrity" "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "number-is-nan" "^1.0.0" - -"is-fullwidth-code-point@^2.0.0": - "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - "version" "2.0.0" - -"is-fullwidth-code-point@^3.0.0": - "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - "version" "3.0.0" - -"is-generator-fn@^2.0.0": - "integrity" "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - "version" "2.1.0" - -"is-installed-globally@^0.4.0": - "integrity" "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==" - "resolved" "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" - "version" "0.4.0" - dependencies: - "global-dirs" "^3.0.0" - "is-path-inside" "^3.0.2" - -"is-ip@^3.1.0": - "integrity" "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==" - "resolved" "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "ip-regex" "^4.0.0" - -"is-ipfs@^6.0.1": - "integrity" "sha512-RinUnsggL4hlLoHlZcvs2+92OE46Uflg/YVU1m5fXhyDBS/zh3bq+i6Aw7IbzJZ9oZXJx26TgxpqCuCr+LH/DA==" - "resolved" "https://registry.npmjs.org/is-ipfs/-/is-ipfs-6.0.2.tgz" - "version" "6.0.2" - dependencies: - "iso-url" "^1.1.3" - "mafmt" "^10.0.0" - "multiaddr" "^10.0.0" - "multiformats" "^9.0.0" - "uint8arrays" "^3.0.0" - -"is-loopback-addr@^1.0.0": - "integrity" "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" - "resolved" "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz" - "version" "1.0.1" - -"is-negative-zero@^2.0.1": - "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - "version" "2.0.2" - -"is-npm@^5.0.0": - "integrity" "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" - "resolved" "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz" - "version" "5.0.0" - -"is-number-object@^1.0.4": - "integrity" "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==" - "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-number@^7.0.0": - "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - "version" "7.0.0" - -"is-obj@^2.0.0": - "integrity" "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" - "version" "2.0.0" - -"is-path-inside@^3.0.2": - "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - "version" "3.0.3" - -"is-plain-obj@^2.0.0", "is-plain-obj@^2.1.0": - "integrity" "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" - "version" "2.1.0" - -"is-potential-custom-element-name@^1.0.1": - "integrity" "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - "resolved" "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" - "version" "1.0.1" - -"is-promise@^2.1.0": - "integrity" "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - "resolved" "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" - "version" "2.2.2" - -"is-regex@^1.1.4": - "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" - "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - "version" "1.1.4" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" - -"is-shared-array-buffer@^1.0.1": - "integrity" "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" - "version" "1.0.1" - -"is-stream@^2.0.0": - "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - "version" "2.0.1" - -"is-string@^1.0.5", "is-string@^1.0.7": - "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" - "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - "version" "1.0.7" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-symbol@^1.0.2", "is-symbol@^1.0.3": - "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" - "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "has-symbols" "^1.0.2" - -"is-typedarray@^1.0.0", "is-typedarray@~1.0.0": - "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - "version" "1.0.0" - -"is-weakref@^1.0.1": - "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==" - "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "call-bind" "^1.0.2" - -"is-yarn-global@^0.3.0": - "integrity" "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - "resolved" "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" - "version" "0.3.0" - -"isarray@~1.0.0": - "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - "version" "1.0.0" - -"isexe@^2.0.0": - "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - "version" "2.0.0" - -"iso-constants@^0.1.2": - "integrity" "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==" - "resolved" "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz" - "version" "0.1.2" - -"iso-random-stream@^2.0.0": - "integrity" "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==" - "resolved" "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "events" "^3.3.0" - "readable-stream" "^3.4.0" - -"iso-url@^1.1.2": - "integrity" "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" - "resolved" "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz" - "version" "1.2.1" - -"iso-url@^1.1.3": - "integrity" "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" - "resolved" "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz" - "version" "1.2.1" - -"iso-url@^1.1.5": - "integrity" "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" - "resolved" "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz" - "version" "1.2.1" - -"iso-url@~0.4.7": - "integrity" "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" - "resolved" "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz" - "version" "0.4.7" - -"isomorphic-ws@^4.0.1": - "integrity" "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" - "resolved" "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" - "version" "4.0.1" - -"isstream@~0.1.2": - "integrity" "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - "resolved" "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - "version" "0.1.2" - -"istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0": - "integrity" "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" - "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - "version" "3.2.0" - -"istanbul-lib-instrument@^5.0.4", "istanbul-lib-instrument@^5.1.0": - "integrity" "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==" - "resolved" "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz" - "version" "5.1.0" + bl "^5.0.0" + err-code "^3.0.1" + hamt-sharding "^2.0.0" + interface-blockstore "^1.0.0" + ipfs-unixfs "^6.0.6" + it-all "^1.0.5" + it-batch "^1.0.8" + it-first "^1.0.6" + it-parallel-batch "^1.0.9" + merge-options "^3.0.4" + multiformats "^9.4.2" + rabin-wasm "^0.1.4" + uint8arrays "^3.0.0" + +ipfs-unixfs@^6.0.3, ipfs-unixfs@^6.0.6: + version "6.0.6" + resolved "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.6.tgz" + integrity sha512-gTkjYKXuHnqIf6EFfS+ESaYEl3I3aaQQ0UX8MhpNzreMLEuMnuqpoI/uLLllTZa31WRplKixabbpRTSmTYRNwA== + dependencies: + err-code "^3.0.1" + protobufjs "^6.10.2" + +ipfs-utils@^9.0.1, ipfs-utils@^9.0.2: + version "9.0.4" + resolved "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz" + integrity sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g== + dependencies: + any-signal "^3.0.0" + buffer "^6.0.1" + electron-fetch "^1.7.2" + err-code "^3.0.1" + is-electron "^2.2.0" + iso-url "^1.1.5" + it-glob "^1.0.1" + it-to-stream "^1.0.0" + merge-options "^3.0.4" + nanoid "^3.1.20" + native-fetch "^3.0.0" + node-fetch "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" + react-native-fetch-api "^2.0.0" + stream-to-it "^0.2.2" + +ipfs@0.61.0: + version "0.61.0" + resolved "https://registry.npmjs.org/ipfs/-/ipfs-0.61.0.tgz" + integrity sha512-BNr1uR4TVbTEA2k0sdIKKikmEZ9SqW+qPyBmXKykgQ7aCS6gy6XcuheINd+7O2lqwtVMAR9dnCv0hQbm4FIZxQ== + dependencies: + debug "^4.1.1" + ipfs-cli "^0.11.0" + ipfs-core "^0.13.0" + semver "^7.3.2" + update-notifier "^5.0.0" + +ipns@^0.16.0: + version "0.16.0" + resolved "https://registry.npmjs.org/ipns/-/ipns-0.16.0.tgz" + integrity sha512-fBYkRjN3/fc6IQujUF4WBEyOXegK715w+wx9IErV6H2B5JXsMnHOBceUKn3L90dj+wJfHs6T+hM/OZiTT6mQCw== + dependencies: + cborg "^1.3.3" + debug "^4.2.0" + err-code "^3.0.1" + interface-datastore "^6.0.2" + libp2p-crypto "^0.21.0" + long "^4.0.0" + multiformats "^9.4.5" + peer-id "^0.16.0" + protobufjs "^6.10.2" + timestamp-nano "^1.0.0" + uint8arrays "^3.0.0" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-domain-name@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz" + integrity sha1-9uszsUpJdUHcpYM1E31EZuDCDaE= + +is-electron@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/is-electron/-/is-electron-2.2.1.tgz" + integrity sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + +is-ipfs@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/is-ipfs/-/is-ipfs-6.0.2.tgz" + integrity sha512-RinUnsggL4hlLoHlZcvs2+92OE46Uflg/YVU1m5fXhyDBS/zh3bq+i6Aw7IbzJZ9oZXJx26TgxpqCuCr+LH/DA== + dependencies: + iso-url "^1.1.3" + mafmt "^10.0.0" + multiaddr "^10.0.0" + multiformats "^9.0.0" + uint8arrays "^3.0.0" + +is-loopback-addr@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz" + integrity sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-negative-zero@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: + 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-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-shared-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" + integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== + +is-stream@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.3, is-typed-array@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" + integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-weakref@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +iso-constants@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz" + integrity sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ== + +iso-random-stream@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz" + integrity sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ== + dependencies: + events "^3.3.0" + readable-stream "^3.4.0" + +iso-url@^1.1.2, iso-url@^1.1.3, iso-url@^1.1.5: + version "1.2.1" + resolved "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz" + integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== + +iso-url@~0.4.7: + version "0.4.7" + resolved "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz" + integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== + +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" "@istanbuljs/schema" "^0.1.2" - "istanbul-lib-coverage" "^3.2.0" - "semver" "^6.3.0" - -"istanbul-lib-report@^3.0.0": - "integrity" "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==" - "resolved" "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "istanbul-lib-coverage" "^3.0.0" - "make-dir" "^3.0.0" - "supports-color" "^7.1.0" - -"istanbul-lib-source-maps@^4.0.0": - "integrity" "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==" - "resolved" "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" - "version" "4.0.1" - dependencies: - "debug" "^4.1.1" - "istanbul-lib-coverage" "^3.0.0" - "source-map" "^0.6.1" - -"istanbul-reports@^3.1.3": - "integrity" "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==" - "resolved" "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz" - "version" "3.1.3" - dependencies: - "html-escaper" "^2.0.0" - "istanbul-lib-report" "^3.0.0" - -"it-all@^1.0.4", "it-all@^1.0.5", "it-all@^1.0.6": - "integrity" "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" - "resolved" "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz" - "version" "1.0.6" - -"it-batch@^1.0.8", "it-batch@^1.0.9": - "integrity" "sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA==" - "resolved" "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz" - "version" "1.0.9" - -"it-buffer@^0.1.1", "it-buffer@^0.1.2", "it-buffer@^0.1.3": - "integrity" "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==" - "resolved" "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz" - "version" "0.1.3" - dependencies: - "bl" "^5.0.0" - "buffer" "^6.0.3" - -"it-concat@^2.0.0": - "integrity" "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==" - "resolved" "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "bl" "^5.0.0" - -"it-drain@^1.0.1", "it-drain@^1.0.3", "it-drain@^1.0.4": - "integrity" "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" - "resolved" "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz" - "version" "1.0.5" - -"it-filter@^1.0.1", "it-filter@^1.0.2": - "integrity" "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" - "resolved" "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz" - "version" "1.0.3" - -"it-first@^1.0.2", "it-first@^1.0.4", "it-first@^1.0.6": - "integrity" "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" - "resolved" "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz" - "version" "1.0.7" - -"it-glob@^1.0.0", "it-glob@^1.0.1": - "integrity" "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==" - "resolved" "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz" - "version" "1.0.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz" + integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +it-all@^1.0.4, it-all@^1.0.5, it-all@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz" + integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== + +it-batch@^1.0.8, it-batch@^1.0.9: + version "1.0.9" + resolved "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz" + integrity sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA== + +it-buffer@^0.1.1, it-buffer@^0.1.2, it-buffer@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz" + integrity sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ== + dependencies: + bl "^5.0.0" + buffer "^6.0.3" + +it-concat@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz" + integrity sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw== + dependencies: + bl "^5.0.0" + +it-drain@^1.0.1, it-drain@^1.0.3, it-drain@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz" + integrity sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg== + +it-filter@^1.0.1, it-filter@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz" + integrity sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w== + +it-first@^1.0.2, it-first@^1.0.4, it-first@^1.0.6: + version "1.0.7" + resolved "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz" + integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g== + +it-glob@^1.0.0, it-glob@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz" + integrity sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q== dependencies: "@types/minimatch" "^3.0.4" - "minimatch" "^3.0.4" + minimatch "^3.0.4" -"it-handshake@^2.0.0": - "integrity" "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==" - "resolved" "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz" - "version" "2.0.0" +it-handshake@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz" + integrity sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w== dependencies: - "it-pushable" "^1.4.0" - "it-reader" "^3.0.0" - "p-defer" "^3.0.0" + it-pushable "^1.4.0" + it-reader "^3.0.0" + p-defer "^3.0.0" -"it-last@^1.0.4", "it-last@^1.0.5": - "integrity" "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" - "resolved" "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz" - "version" "1.0.6" +it-last@^1.0.4, it-last@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz" + integrity sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q== -"it-length-prefixed@^5.0.0", "it-length-prefixed@^5.0.2", "it-length-prefixed@^5.0.3": - "integrity" "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==" - "resolved" "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz" - "version" "5.0.3" +it-length-prefixed@^5.0.0, it-length-prefixed@^5.0.2, it-length-prefixed@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz" + integrity sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg== dependencies: - "bl" "^5.0.0" - "buffer" "^6.0.3" - "varint" "^6.0.0" + bl "^5.0.0" + buffer "^6.0.3" + varint "^6.0.0" -"it-length@^1.0.1", "it-length@^1.0.3": - "integrity" "sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA==" - "resolved" "https://registry.npmjs.org/it-length/-/it-length-1.0.4.tgz" - "version" "1.0.4" +it-length@^1.0.1, it-length@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/it-length/-/it-length-1.0.4.tgz" + integrity sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA== -"it-map@^1.0.4", "it-map@^1.0.5": - "integrity" "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" - "resolved" "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz" - "version" "1.0.6" +it-map@^1.0.4, it-map@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz" + integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== -"it-merge@^1.0.0", "it-merge@^1.0.1", "it-merge@^1.0.2", "it-merge@^1.0.3": - "integrity" "sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw==" - "resolved" "https://registry.npmjs.org/it-merge/-/it-merge-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "it-pushable" "^1.4.0" - -"it-multipart@^2.0.0": - "integrity" "sha512-/naGjA8GatqYshP9V0aN4AufMPEa0My2iYzLaprQHOZiuXBynOYTVjRHFCzcMg8K8JHWb88PqO8nqeJxCm5CJw==" - "resolved" "https://registry.npmjs.org/it-multipart/-/it-multipart-2.0.2.tgz" - "version" "2.0.2" +it-merge@^1.0.0, it-merge@^1.0.1, it-merge@^1.0.2, it-merge@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/it-merge/-/it-merge-1.0.4.tgz" + integrity sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw== + dependencies: + it-pushable "^1.4.0" + +it-multipart@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/it-multipart/-/it-multipart-2.0.2.tgz" + integrity sha512-/naGjA8GatqYshP9V0aN4AufMPEa0My2iYzLaprQHOZiuXBynOYTVjRHFCzcMg8K8JHWb88PqO8nqeJxCm5CJw== dependencies: - "formidable" "^1.2.2" - "it-pushable" "^1.4.2" - -"it-pair@^1.0.0": - "integrity" "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==" - "resolved" "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "get-iterator" "^1.0.2" - -"it-parallel-batch@^1.0.9": - "integrity" "sha512-3+4gW15xdf/BOx9zij0QVnB1bDGSLOTABlaVm7ebHH1S9gDUgd5aLNb0WsFXPTfKe104iC6lxdzfbMGh1B07rg==" - "resolved" "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.10.tgz" - "version" "1.0.10" - dependencies: - "it-batch" "^1.0.9" - -"it-parallel@^2.0.1": - "integrity" "sha512-VnHs9UJXSr8jmPnquS76qhLU+tE3WvLJqBUKMjAD2/Z1O5JsjpHMqq8yvVByyuwuFnh1OG9faJVGc5c9t+T6Kg==" - "resolved" "https://registry.npmjs.org/it-parallel/-/it-parallel-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "p-defer" "^3.0.0" - -"it-pb-rpc@^0.2.0": - "integrity" "sha512-Rojodsa6yxSTZDqVVF9HXKsISoHtlLNOL0P6b/7oCswiscbjCpt1IB78BxRDHpFL3tg8jFPMNDTP3v6ZjrMf9w==" - "resolved" "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.2.0.tgz" - "version" "0.2.0" - dependencies: - "it-handshake" "^2.0.0" - "it-length-prefixed" "^5.0.3" - -"it-peekable@^1.0.2": - "integrity" "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" - "resolved" "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz" - "version" "1.0.3" - -"it-pipe@^1.0.1", "it-pipe@^1.1.0": - "integrity" "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - "resolved" "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz" - "version" "1.1.0" - -"it-pushable@^1.4.0", "it-pushable@^1.4.1", "it-pushable@^1.4.2": - "integrity" "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==" - "resolved" "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz" - "version" "1.4.2" - dependencies: - "fast-fifo" "^1.0.0" - -"it-reader@^3.0.0": - "integrity" "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==" - "resolved" "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "bl" "^5.0.0" - -"it-reduce@^1.0.5": - "integrity" "sha512-YyAhA52Xv+05PUaz0FwjanG7tqxD0CrP7dgGgxN42YDG6oswztbH8K6Ca8+AjH8VxSI0lvq4pD9i17MQqJUFuA==" - "resolved" "https://registry.npmjs.org/it-reduce/-/it-reduce-1.0.6.tgz" - "version" "1.0.6" - -"it-sort@^1.0.0": - "integrity" "sha512-c+C48cP7XMMebB9irLrJs2EmpLILId8NYSojqAqN8etE8ienx0azBgaKvZHYH1DkerqIul0Fl2FqISu2BZgTEQ==" - "resolved" "https://registry.npmjs.org/it-sort/-/it-sort-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "it-all" "^1.0.6" - -"it-split@^1.0.0": - "integrity" "sha512-CTr10HhgK5LYgGCrPVorfliiW4bBl10K7earFLII4yoxWsKaAf8swCYgXXEe/W2Fou/YMOZGyTk6cmVKGyienw==" - "resolved" "https://registry.npmjs.org/it-split/-/it-split-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "bl" "^5.0.0" - -"it-take@^1.0.0", "it-take@^1.0.1", "it-take@^1.0.2": - "integrity" "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" - "resolved" "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz" - "version" "1.0.2" - -"it-tar@^4.0.0": - "integrity" "sha512-t7NJKNVs0p3aJT2cyycs8FkXkvLTKOVtcEuYEdZDrfxHGEIW8gHJt2zbDOILt5erywEPRRws2oz0FqH3LiDGtA==" - "resolved" "https://registry.npmjs.org/it-tar/-/it-tar-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "bl" "^5.0.0" - "buffer" "^6.0.3" - "iso-constants" "^0.1.2" - "it-concat" "^2.0.0" - "it-reader" "^3.0.0" - "p-defer" "^3.0.0" - -"it-to-buffer@^2.0.0": - "integrity" "sha512-Frbv1sphcNFvD807Qw5fXpK4L7iuqShYSI7k30PfpJiy5IxdqMyaulWpLyl1hIJVVpkG+1UrJafFCnatzmZf5g==" - "resolved" "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "uint8arrays" "^3.0.0" - -"it-to-stream@^1.0.0": - "integrity" "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==" - "resolved" "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "buffer" "^6.0.3" - "fast-fifo" "^1.0.0" - "get-iterator" "^1.0.2" - "p-defer" "^3.0.0" - "p-fifo" "^1.0.0" - "readable-stream" "^3.6.0" - -"it-ws@^4.0.0": - "integrity" "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==" - "resolved" "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "buffer" "^6.0.3" - "event-iterator" "^2.0.0" - "iso-url" "^1.1.2" - "ws" "^7.3.1" - -"iterall@^1.1.3", "iterall@^1.2.1", "iterall@^1.3.0": - "integrity" "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - "resolved" "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz" - "version" "1.3.0" - -"jake@^10.6.1": - "integrity" "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==" - "resolved" "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz" - "version" "10.8.2" - dependencies: - "async" "0.9.x" - "chalk" "^2.4.2" - "filelist" "^1.0.1" - "minimatch" "^3.0.4" - -"jest-changed-files@^27.4.2": - "integrity" "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==" - "resolved" "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz" - "version" "27.4.2" + formidable "^1.2.2" + it-pushable "^1.4.2" + +it-pair@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz" + integrity sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww== + dependencies: + get-iterator "^1.0.2" + +it-parallel-batch@^1.0.9: + version "1.0.10" + resolved "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.10.tgz" + integrity sha512-3+4gW15xdf/BOx9zij0QVnB1bDGSLOTABlaVm7ebHH1S9gDUgd5aLNb0WsFXPTfKe104iC6lxdzfbMGh1B07rg== + dependencies: + it-batch "^1.0.9" + +it-parallel@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/it-parallel/-/it-parallel-2.0.1.tgz" + integrity sha512-VnHs9UJXSr8jmPnquS76qhLU+tE3WvLJqBUKMjAD2/Z1O5JsjpHMqq8yvVByyuwuFnh1OG9faJVGc5c9t+T6Kg== + dependencies: + p-defer "^3.0.0" + +it-pb-rpc@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.2.0.tgz" + integrity sha512-Rojodsa6yxSTZDqVVF9HXKsISoHtlLNOL0P6b/7oCswiscbjCpt1IB78BxRDHpFL3tg8jFPMNDTP3v6ZjrMf9w== + dependencies: + it-handshake "^2.0.0" + it-length-prefixed "^5.0.3" + +it-peekable@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz" + integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ== + +it-pipe@^1.0.1, it-pipe@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz" + integrity sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg== + +it-pushable@^1.4.0, it-pushable@^1.4.1, it-pushable@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz" + integrity sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg== + dependencies: + fast-fifo "^1.0.0" + +it-reader@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz" + integrity sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ== + dependencies: + bl "^5.0.0" + +it-reduce@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/it-reduce/-/it-reduce-1.0.6.tgz" + integrity sha512-YyAhA52Xv+05PUaz0FwjanG7tqxD0CrP7dgGgxN42YDG6oswztbH8K6Ca8+AjH8VxSI0lvq4pD9i17MQqJUFuA== + +it-sort@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/it-sort/-/it-sort-1.0.1.tgz" + integrity sha512-c+C48cP7XMMebB9irLrJs2EmpLILId8NYSojqAqN8etE8ienx0azBgaKvZHYH1DkerqIul0Fl2FqISu2BZgTEQ== + dependencies: + it-all "^1.0.6" + +it-split@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/it-split/-/it-split-1.0.2.tgz" + integrity sha512-CTr10HhgK5LYgGCrPVorfliiW4bBl10K7earFLII4yoxWsKaAf8swCYgXXEe/W2Fou/YMOZGyTk6cmVKGyienw== + dependencies: + bl "^5.0.0" + +it-take@^1.0.0, it-take@^1.0.1, it-take@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz" + integrity sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw== + +it-tar@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/it-tar/-/it-tar-4.0.0.tgz" + integrity sha512-t7NJKNVs0p3aJT2cyycs8FkXkvLTKOVtcEuYEdZDrfxHGEIW8gHJt2zbDOILt5erywEPRRws2oz0FqH3LiDGtA== + dependencies: + bl "^5.0.0" + buffer "^6.0.3" + iso-constants "^0.1.2" + it-concat "^2.0.0" + it-reader "^3.0.0" + p-defer "^3.0.0" + +it-to-buffer@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-2.0.2.tgz" + integrity sha512-Frbv1sphcNFvD807Qw5fXpK4L7iuqShYSI7k30PfpJiy5IxdqMyaulWpLyl1hIJVVpkG+1UrJafFCnatzmZf5g== + dependencies: + uint8arrays "^3.0.0" + +it-to-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz" + integrity sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA== + dependencies: + buffer "^6.0.3" + fast-fifo "^1.0.0" + get-iterator "^1.0.2" + p-defer "^3.0.0" + p-fifo "^1.0.0" + readable-stream "^3.6.0" + +it-ws@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz" + integrity sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA== + dependencies: + buffer "^6.0.3" + event-iterator "^2.0.0" + iso-url "^1.1.2" + ws "^7.3.1" + +iterall@^1.1.3, iterall@^1.2.1, iterall@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + +jake@^10.6.1: + version "10.8.2" + resolved "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz" + integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== + dependencies: + async "0.9.x" + chalk "^2.4.2" + filelist "^1.0.1" + minimatch "^3.0.4" + +jest-changed-files@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz" + integrity sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A== dependencies: "@jest/types" "^27.4.2" - "execa" "^5.0.0" - "throat" "^6.0.1" + execa "^5.0.0" + throat "^6.0.1" -"jest-circus@^27.4.6": - "integrity" "sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ==" - "resolved" "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.6.tgz" - "version" "27.4.6" +jest-circus@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.6.tgz" + integrity sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ== dependencies: "@jest/environment" "^27.4.6" "@jest/test-result" "^27.4.6" "@jest/types" "^27.4.2" "@types/node" "*" - "chalk" "^4.0.0" - "co" "^4.6.0" - "dedent" "^0.7.0" - "expect" "^27.4.6" - "is-generator-fn" "^2.0.0" - "jest-each" "^27.4.6" - "jest-matcher-utils" "^27.4.6" - "jest-message-util" "^27.4.6" - "jest-runtime" "^27.4.6" - "jest-snapshot" "^27.4.6" - "jest-util" "^27.4.2" - "pretty-format" "^27.4.6" - "slash" "^3.0.0" - "stack-utils" "^2.0.3" - "throat" "^6.0.1" - -"jest-cli@^27.4.7": - "integrity" "sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw==" - "resolved" "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.7.tgz" - "version" "27.4.7" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.4.6" + is-generator-fn "^2.0.0" + jest-each "^27.4.6" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + jest-runtime "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + pretty-format "^27.4.6" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.4.7: + version "27.4.7" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.7.tgz" + integrity sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw== dependencies: "@jest/core" "^27.4.7" "@jest/test-result" "^27.4.6" "@jest/types" "^27.4.2" - "chalk" "^4.0.0" - "exit" "^0.1.2" - "graceful-fs" "^4.2.4" - "import-local" "^3.0.2" - "jest-config" "^27.4.7" - "jest-util" "^27.4.2" - "jest-validate" "^27.4.6" - "prompts" "^2.0.1" - "yargs" "^16.2.0" - -"jest-config@^27.4.7": - "integrity" "sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw==" - "resolved" "https://registry.npmjs.org/jest-config/-/jest-config-27.4.7.tgz" - "version" "27.4.7" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + jest-config "^27.4.7" + jest-util "^27.4.2" + jest-validate "^27.4.6" + prompts "^2.0.1" + yargs "^16.2.0" + +jest-config@^27.4.7: + version "27.4.7" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.4.7.tgz" + integrity sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw== dependencies: "@babel/core" "^7.8.0" "@jest/test-sequencer" "^27.4.6" "@jest/types" "^27.4.2" - "babel-jest" "^27.4.6" - "chalk" "^4.0.0" - "ci-info" "^3.2.0" - "deepmerge" "^4.2.2" - "glob" "^7.1.1" - "graceful-fs" "^4.2.4" - "jest-circus" "^27.4.6" - "jest-environment-jsdom" "^27.4.6" - "jest-environment-node" "^27.4.6" - "jest-get-type" "^27.4.0" - "jest-jasmine2" "^27.4.6" - "jest-regex-util" "^27.4.0" - "jest-resolve" "^27.4.6" - "jest-runner" "^27.4.6" - "jest-util" "^27.4.2" - "jest-validate" "^27.4.6" - "micromatch" "^4.0.4" - "pretty-format" "^27.4.6" - "slash" "^3.0.0" - -"jest-diff@^27.0.0", "jest-diff@^27.4.6": - "integrity" "sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==" - "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz" - "version" "27.4.6" - dependencies: - "chalk" "^4.0.0" - "diff-sequences" "^27.4.0" - "jest-get-type" "^27.4.0" - "pretty-format" "^27.4.6" - -"jest-docblock@^27.4.0": - "integrity" "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==" - "resolved" "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz" - "version" "27.4.0" - dependencies: - "detect-newline" "^3.0.0" - -"jest-each@^27.4.6": - "integrity" "sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA==" - "resolved" "https://registry.npmjs.org/jest-each/-/jest-each-27.4.6.tgz" - "version" "27.4.6" + babel-jest "^27.4.6" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-circus "^27.4.6" + jest-environment-jsdom "^27.4.6" + jest-environment-node "^27.4.6" + jest-get-type "^27.4.0" + jest-jasmine2 "^27.4.6" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.6" + jest-runner "^27.4.6" + jest-util "^27.4.2" + jest-validate "^27.4.6" + micromatch "^4.0.4" + pretty-format "^27.4.6" + slash "^3.0.0" + +jest-diff@^27.0.0, jest-diff@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz" + integrity sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.4.0" + jest-get-type "^27.4.0" + pretty-format "^27.4.6" + +jest-docblock@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz" + integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.4.6.tgz" + integrity sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA== dependencies: "@jest/types" "^27.4.2" - "chalk" "^4.0.0" - "jest-get-type" "^27.4.0" - "jest-util" "^27.4.2" - "pretty-format" "^27.4.6" + chalk "^4.0.0" + jest-get-type "^27.4.0" + jest-util "^27.4.2" + pretty-format "^27.4.6" -"jest-environment-jsdom@^27.4.6": - "integrity" "sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA==" - "resolved" "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz" - "version" "27.4.6" +jest-environment-jsdom@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz" + integrity sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA== dependencies: "@jest/environment" "^27.4.6" "@jest/fake-timers" "^27.4.6" "@jest/types" "^27.4.2" "@types/node" "*" - "jest-mock" "^27.4.6" - "jest-util" "^27.4.2" - "jsdom" "^16.6.0" + jest-mock "^27.4.6" + jest-util "^27.4.2" + jsdom "^16.6.0" -"jest-environment-node@^27.4.6": - "integrity" "sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ==" - "resolved" "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.6.tgz" - "version" "27.4.6" +jest-environment-node@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.6.tgz" + integrity sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ== dependencies: "@jest/environment" "^27.4.6" "@jest/fake-timers" "^27.4.6" "@jest/types" "^27.4.2" "@types/node" "*" - "jest-mock" "^27.4.6" - "jest-util" "^27.4.2" + jest-mock "^27.4.6" + jest-util "^27.4.2" -"jest-get-type@^27.4.0": - "integrity" "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==" - "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz" - "version" "27.4.0" +jest-get-type@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz" + integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== -"jest-haste-map@^27.4.6": - "integrity" "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==" - "resolved" "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz" - "version" "27.4.6" +jest-haste-map@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz" + integrity sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ== dependencies: "@jest/types" "^27.4.2" "@types/graceful-fs" "^4.1.2" "@types/node" "*" - "anymatch" "^3.0.3" - "fb-watchman" "^2.0.0" - "graceful-fs" "^4.2.4" - "jest-regex-util" "^27.4.0" - "jest-serializer" "^27.4.0" - "jest-util" "^27.4.2" - "jest-worker" "^27.4.6" - "micromatch" "^4.0.4" - "walker" "^1.0.7" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^27.4.0" + jest-serializer "^27.4.0" + jest-util "^27.4.2" + jest-worker "^27.4.6" + micromatch "^4.0.4" + walker "^1.0.7" optionalDependencies: - "fsevents" "^2.3.2" + fsevents "^2.3.2" -"jest-jasmine2@^27.4.6": - "integrity" "sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw==" - "resolved" "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz" - "version" "27.4.6" +jest-jasmine2@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz" + integrity sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw== dependencies: "@jest/environment" "^27.4.6" "@jest/source-map" "^27.4.0" "@jest/test-result" "^27.4.6" "@jest/types" "^27.4.2" "@types/node" "*" - "chalk" "^4.0.0" - "co" "^4.6.0" - "expect" "^27.4.6" - "is-generator-fn" "^2.0.0" - "jest-each" "^27.4.6" - "jest-matcher-utils" "^27.4.6" - "jest-message-util" "^27.4.6" - "jest-runtime" "^27.4.6" - "jest-snapshot" "^27.4.6" - "jest-util" "^27.4.2" - "pretty-format" "^27.4.6" - "throat" "^6.0.1" - -"jest-leak-detector@^27.4.6": - "integrity" "sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA==" - "resolved" "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz" - "version" "27.4.6" - dependencies: - "jest-get-type" "^27.4.0" - "pretty-format" "^27.4.6" - -"jest-matcher-utils@^27.4.6": - "integrity" "sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA==" - "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz" - "version" "27.4.6" - dependencies: - "chalk" "^4.0.0" - "jest-diff" "^27.4.6" - "jest-get-type" "^27.4.0" - "pretty-format" "^27.4.6" - -"jest-message-util@^27.4.6": - "integrity" "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==" - "resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz" - "version" "27.4.6" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.4.6" + is-generator-fn "^2.0.0" + jest-each "^27.4.6" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + jest-runtime "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + pretty-format "^27.4.6" + throat "^6.0.1" + +jest-leak-detector@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz" + integrity sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA== + dependencies: + jest-get-type "^27.4.0" + pretty-format "^27.4.6" + +jest-matcher-utils@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz" + integrity sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA== + dependencies: + chalk "^4.0.0" + jest-diff "^27.4.6" + jest-get-type "^27.4.0" + pretty-format "^27.4.6" + +jest-message-util@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz" + integrity sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA== dependencies: "@babel/code-frame" "^7.12.13" "@jest/types" "^27.4.2" "@types/stack-utils" "^2.0.0" - "chalk" "^4.0.0" - "graceful-fs" "^4.2.4" - "micromatch" "^4.0.4" - "pretty-format" "^27.4.6" - "slash" "^3.0.0" - "stack-utils" "^2.0.3" - -"jest-mock@^27.4.6": - "integrity" "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==" - "resolved" "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz" - "version" "27.4.6" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + pretty-format "^27.4.6" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz" + integrity sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw== dependencies: "@jest/types" "^27.4.2" "@types/node" "*" -"jest-pnp-resolver@^1.2.2": - "integrity" "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" - "resolved" "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" - "version" "1.2.2" +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -"jest-regex-util@^27.4.0": - "integrity" "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==" - "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz" - "version" "27.4.0" +jest-regex-util@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz" + integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== -"jest-resolve-dependencies@^27.4.6": - "integrity" "sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw==" - "resolved" "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz" - "version" "27.4.6" +jest-resolve-dependencies@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz" + integrity sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw== dependencies: "@jest/types" "^27.4.2" - "jest-regex-util" "^27.4.0" - "jest-snapshot" "^27.4.6" + jest-regex-util "^27.4.0" + jest-snapshot "^27.4.6" -"jest-resolve@*", "jest-resolve@^27.4.6": - "integrity" "sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw==" - "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz" - "version" "27.4.6" +jest-resolve@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz" + integrity sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw== dependencies: "@jest/types" "^27.4.2" - "chalk" "^4.0.0" - "graceful-fs" "^4.2.4" - "jest-haste-map" "^27.4.6" - "jest-pnp-resolver" "^1.2.2" - "jest-util" "^27.4.2" - "jest-validate" "^27.4.6" - "resolve" "^1.20.0" - "resolve.exports" "^1.1.0" - "slash" "^3.0.0" - -"jest-runner@^27.4.6": - "integrity" "sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg==" - "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.6.tgz" - "version" "27.4.6" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^27.4.6" + jest-pnp-resolver "^1.2.2" + jest-util "^27.4.2" + jest-validate "^27.4.6" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.6.tgz" + integrity sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg== dependencies: "@jest/console" "^27.4.6" "@jest/environment" "^27.4.6" @@ -5711,27 +7704,27 @@ "@jest/transform" "^27.4.6" "@jest/types" "^27.4.2" "@types/node" "*" - "chalk" "^4.0.0" - "emittery" "^0.8.1" - "exit" "^0.1.2" - "graceful-fs" "^4.2.4" - "jest-docblock" "^27.4.0" - "jest-environment-jsdom" "^27.4.6" - "jest-environment-node" "^27.4.6" - "jest-haste-map" "^27.4.6" - "jest-leak-detector" "^27.4.6" - "jest-message-util" "^27.4.6" - "jest-resolve" "^27.4.6" - "jest-runtime" "^27.4.6" - "jest-util" "^27.4.2" - "jest-worker" "^27.4.6" - "source-map-support" "^0.5.6" - "throat" "^6.0.1" - -"jest-runtime@^27.4.6": - "integrity" "sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ==" - "resolved" "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz" - "version" "27.4.6" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-docblock "^27.4.0" + jest-environment-jsdom "^27.4.6" + jest-environment-node "^27.4.6" + jest-haste-map "^27.4.6" + jest-leak-detector "^27.4.6" + jest-message-util "^27.4.6" + jest-resolve "^27.4.6" + jest-runtime "^27.4.6" + jest-util "^27.4.2" + jest-worker "^27.4.6" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz" + integrity sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ== dependencies: "@jest/environment" "^27.4.6" "@jest/fake-timers" "^27.4.6" @@ -5740,34 +7733,34 @@ "@jest/test-result" "^27.4.6" "@jest/transform" "^27.4.6" "@jest/types" "^27.4.2" - "chalk" "^4.0.0" - "cjs-module-lexer" "^1.0.0" - "collect-v8-coverage" "^1.0.0" - "execa" "^5.0.0" - "glob" "^7.1.3" - "graceful-fs" "^4.2.4" - "jest-haste-map" "^27.4.6" - "jest-message-util" "^27.4.6" - "jest-mock" "^27.4.6" - "jest-regex-util" "^27.4.0" - "jest-resolve" "^27.4.6" - "jest-snapshot" "^27.4.6" - "jest-util" "^27.4.2" - "slash" "^3.0.0" - "strip-bom" "^4.0.0" - -"jest-serializer@^27.4.0": - "integrity" "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==" - "resolved" "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz" - "version" "27.4.0" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-haste-map "^27.4.6" + jest-message-util "^27.4.6" + jest-mock "^27.4.6" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-serializer@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz" + integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== dependencies: "@types/node" "*" - "graceful-fs" "^4.2.4" + graceful-fs "^4.2.4" -"jest-snapshot@^27.4.6": - "integrity" "sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ==" - "resolved" "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.6.tgz" - "version" "27.4.6" +jest-snapshot@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.6.tgz" + integrity sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" @@ -5778,96 +7771,93 @@ "@jest/types" "^27.4.2" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" - "babel-preset-current-node-syntax" "^1.0.0" - "chalk" "^4.0.0" - "expect" "^27.4.6" - "graceful-fs" "^4.2.4" - "jest-diff" "^27.4.6" - "jest-get-type" "^27.4.0" - "jest-haste-map" "^27.4.6" - "jest-matcher-utils" "^27.4.6" - "jest-message-util" "^27.4.6" - "jest-util" "^27.4.2" - "natural-compare" "^1.4.0" - "pretty-format" "^27.4.6" - "semver" "^7.3.2" - -"jest-util@^27.0.0": - "integrity" "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==" - "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz" - "version" "27.4.2" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.4.6" + graceful-fs "^4.2.4" + jest-diff "^27.4.6" + jest-get-type "^27.4.0" + jest-haste-map "^27.4.6" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + jest-util "^27.4.2" + natural-compare "^1.4.0" + pretty-format "^27.4.6" + semver "^7.3.2" + +jest-util@^27.0.0, jest-util@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz" + integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== dependencies: "@jest/types" "^27.4.2" "@types/node" "*" - "chalk" "^4.0.0" - "ci-info" "^3.2.0" - "graceful-fs" "^4.2.4" - "picomatch" "^2.2.3" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.4" + picomatch "^2.2.3" -"jest-util@^27.4.2": - "integrity" "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==" - "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz" - "version" "27.4.2" +jest-validate@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz" + integrity sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ== dependencies: "@jest/types" "^27.4.2" - "@types/node" "*" - "chalk" "^4.0.0" - "ci-info" "^3.2.0" - "graceful-fs" "^4.2.4" - "picomatch" "^2.2.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.4.0" + leven "^3.1.0" + pretty-format "^27.4.6" -"jest-validate@^27.4.6": - "integrity" "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==" - "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz" - "version" "27.4.6" +jest-watcher@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.6.tgz" + integrity sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw== dependencies: + "@jest/test-result" "^27.4.6" "@jest/types" "^27.4.2" - "camelcase" "^6.2.0" - "chalk" "^4.0.0" - "jest-get-type" "^27.4.0" - "leven" "^3.1.0" - "pretty-format" "^27.4.6" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.4.2" + string-length "^4.0.1" -"jest-watcher@^27.4.6": - "integrity" "sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw==" - "resolved" "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.6.tgz" - "version" "27.4.6" +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: - "@jest/test-result" "^27.4.6" - "@jest/types" "^27.4.2" "@types/node" "*" - "ansi-escapes" "^4.2.1" - "chalk" "^4.0.0" - "jest-util" "^27.4.2" - "string-length" "^4.0.1" + merge-stream "^2.0.0" + supports-color "^7.0.0" -"jest-worker@^27.4.6": - "integrity" "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==" - "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz" - "version" "27.4.6" +jest-worker@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz" + integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== dependencies: "@types/node" "*" - "merge-stream" "^2.0.0" - "supports-color" "^8.0.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" -"jest@^27.0.0", "jest@^27.2.5": - "integrity" "sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg==" - "resolved" "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz" - "version" "27.4.7" +jest@^27.2.5: + version "27.4.7" + resolved "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz" + integrity sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg== dependencies: "@jest/core" "^27.4.7" - "import-local" "^3.0.2" - "jest-cli" "^27.4.7" + import-local "^3.0.2" + jest-cli "^27.4.7" -"jmespath@^0.15.0": - "integrity" "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" - "resolved" "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz" - "version" "0.15.0" +jmespath@^0.15.0: + version "0.15.0" + resolved "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz" + integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= -"joi@^17.2.1": - "integrity" "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==" - "resolved" "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz" - "version" "17.6.0" +joi@^17.2.1: + version "17.6.0" + resolved "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz" + integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" @@ -5875,1642 +7865,2619 @@ "@sideway/formula" "^3.0.0" "@sideway/pinpoint" "^2.0.0" -"joycon@^2.2.5": - "integrity" "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==" - "resolved" "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz" - "version" "2.2.5" - -"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0": - "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - "version" "4.0.0" - -"js-yaml@^3.13.1": - "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - "version" "3.14.1" - dependencies: - "argparse" "^1.0.7" - "esprima" "^4.0.0" - -"js-yaml@^4.1.0": - "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "argparse" "^2.0.1" - -"jsbn@~0.1.0": - "integrity" "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - "resolved" "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - "version" "0.1.1" - -"jsbn@1.1.0": - "integrity" "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" - "resolved" "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" - "version" "1.1.0" - -"jsdom@^16.6.0": - "integrity" "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==" - "resolved" "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" - "version" "16.7.0" - dependencies: - "abab" "^2.0.5" - "acorn" "^8.2.4" - "acorn-globals" "^6.0.0" - "cssom" "^0.4.4" - "cssstyle" "^2.3.0" - "data-urls" "^2.0.0" - "decimal.js" "^10.2.1" - "domexception" "^2.0.1" - "escodegen" "^2.0.0" - "form-data" "^3.0.0" - "html-encoding-sniffer" "^2.0.1" - "http-proxy-agent" "^4.0.1" - "https-proxy-agent" "^5.0.0" - "is-potential-custom-element-name" "^1.0.1" - "nwsapi" "^2.2.0" - "parse5" "6.0.1" - "saxes" "^5.0.1" - "symbol-tree" "^3.2.4" - "tough-cookie" "^4.0.0" - "w3c-hr-time" "^1.0.2" - "w3c-xmlserializer" "^2.0.0" - "webidl-conversions" "^6.1.0" - "whatwg-encoding" "^1.0.5" - "whatwg-mimetype" "^2.3.0" - "whatwg-url" "^8.5.0" - "ws" "^7.4.6" - "xml-name-validator" "^3.0.0" - -"jsesc@^2.5.1": - "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - "version" "2.5.2" - -"json-buffer@3.0.0": - "integrity" "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" - "version" "3.0.0" - -"json-schema-traverse@^0.4.1": - "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - "version" "0.4.1" - -"json-schema@0.4.0": - "integrity" "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - "resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" - "version" "0.4.0" - -"json-stable-stringify@^1.0.1": - "integrity" "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" - "resolved" "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "jsonify" "~0.0.0" - -"json-stringify-safe@~5.0.1": - "integrity" "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - "version" "5.0.1" - -"json-text-sequence@~0.1.0": - "integrity" "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=" - "resolved" "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz" - "version" "0.1.1" - dependencies: - "delimit-stream" "0.1.0" - -"json5@^2.1.2", "json5@2.x": - "integrity" "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" - "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "minimist" "^1.2.5" - -"jsondiffpatch@^0.4.1": - "integrity" "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==" - "resolved" "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz" - "version" "0.4.1" - dependencies: - "chalk" "^2.3.0" - "diff-match-patch" "^1.0.0" - -"jsonfile@^6.0.1": - "integrity" "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==" - "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" - "version" "6.1.0" - dependencies: - "universalify" "^2.0.0" +joycon@^2.2.5: + version "2.2.5" + resolved "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz" + integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== + +js-base64@^2.1.8: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +js-sha3@0.8.0, js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-sha3@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" + integrity sha1-sBMHyym2GKHtJux56RH4A8TaAEA= + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json-text-sequence@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz" + integrity sha1-py8hfcSvxGKf/1/rME3BvVGi89I= + dependencies: + delimit-stream "0.1.0" + +json5@2.x, json5@^2.1.2: + version "2.2.0" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsondiffpatch@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz" + integrity sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw== + dependencies: + chalk "^2.3.0" + diff-match-patch "^1.0.0" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsonschema@^1.2.4: + version "1.4.0" + resolved "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz" + integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +just-debounce-it@^1.1.0: + version "1.5.0" + resolved "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.5.0.tgz" + integrity sha512-itSWJS5d2DTSCizVJ2Z0Djx/dGmUGfZe7WNfUfVP23+htGcIcPHbEjL4eB8ljojTs/+oYwLexImRRCP0A2WXjA== + +just-safe-get@^2.0.0: + version "2.1.2" + resolved "https://registry.npmjs.org/just-safe-get/-/just-safe-get-2.1.2.tgz" + integrity sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ== + +just-safe-set@^2.1.0, just-safe-set@^2.2.1: + version "2.2.3" + resolved "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz" + integrity sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w== + +k-bucket@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz" + integrity sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg== + dependencies: + randombytes "^2.1.0" + +keccak@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" + integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= optionalDependencies: - "graceful-fs" "^4.1.6" - -"jsonify@~0.0.0": - "integrity" "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - "resolved" "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" - "version" "0.0.0" - -"jsonschema@^1.2.4": - "integrity" "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==" - "resolved" "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz" - "version" "1.4.0" - -"jsprim@^1.2.2": - "integrity" "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==" - "resolved" "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" - "version" "1.4.2" - dependencies: - "assert-plus" "1.0.0" - "extsprintf" "1.3.0" - "json-schema" "0.4.0" - "verror" "1.10.0" - -"just-debounce-it@^1.1.0": - "integrity" "sha512-itSWJS5d2DTSCizVJ2Z0Djx/dGmUGfZe7WNfUfVP23+htGcIcPHbEjL4eB8ljojTs/+oYwLexImRRCP0A2WXjA==" - "resolved" "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.5.0.tgz" - "version" "1.5.0" - -"just-safe-get@^2.0.0": - "integrity" "sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ==" - "resolved" "https://registry.npmjs.org/just-safe-get/-/just-safe-get-2.1.2.tgz" - "version" "2.1.2" - -"just-safe-set@^2.1.0", "just-safe-set@^2.2.1": - "integrity" "sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w==" - "resolved" "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz" - "version" "2.2.3" - -"k-bucket@^5.1.0": - "integrity" "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==" - "resolved" "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz" - "version" "5.1.0" - dependencies: - "randombytes" "^2.1.0" - -"keyv@^3.0.0": - "integrity" "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==" - "resolved" "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "json-buffer" "3.0.0" - -"kleur@^3.0.3": - "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - "version" "3.0.3" - -"latest-version@^5.1.0": - "integrity" "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==" - "resolved" "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" - "version" "5.1.0" - dependencies: - "package-json" "^6.3.0" - -"level-codec@^10.0.0": - "integrity" "sha512-QW3VteVNAp6c/LuV6nDjg7XDXx9XHK4abmQarxZmlRSDyXYk20UdaJTSX6yzVvQ4i0JyWSB7jert0DsyD/kk6g==" - "resolved" "https://registry.npmjs.org/level-codec/-/level-codec-10.0.0.tgz" - "version" "10.0.0" - dependencies: - "buffer" "^6.0.3" - -"level-concat-iterator@^3.0.0": - "integrity" "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==" - "resolved" "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "catering" "^2.1.0" - -"level-errors@^3.0.0", "level-errors@^3.0.1": - "integrity" "sha512-tqTL2DxzPDzpwl0iV5+rBCv65HWbHp6eutluHNcVIftKZlQN//b6GEnZDM2CvGZvzGYMwyPtYppYnydBQd2SMQ==" - "resolved" "https://registry.npmjs.org/level-errors/-/level-errors-3.0.1.tgz" - "version" "3.0.1" - -"level-iterator-stream@^5.0.0": - "integrity" "sha512-wnb1+o+CVFUDdiSMR/ZymE2prPs3cjVLlXuDeSq9Zb8o032XrabGEXcTCsBxprAtseO3qvFeGzh6406z9sOTRA==" - "resolved" "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "inherits" "^2.0.4" - "readable-stream" "^3.4.0" - -"level-js@^6.1.0": - "integrity" "sha512-i7mPtkZm68aewfv0FnIUWvFUFfoyzIvVKnUmuQGrelEkP72vSPTaA1SGneWWoCV5KZJG4wlzbJLp1WxVNGuc6A==" - "resolved" "https://registry.npmjs.org/level-js/-/level-js-6.1.0.tgz" - "version" "6.1.0" - dependencies: - "abstract-leveldown" "^7.2.0" - "buffer" "^6.0.3" - "inherits" "^2.0.3" - "ltgt" "^2.1.2" - "run-parallel-limit" "^1.1.0" - -"level-packager@^6.0.1": - "integrity" "sha512-8Ezr0XM6hmAwqX9uu8IGzGNkWz/9doyPA8Oo9/D7qcMI6meJC+XhIbNYHukJhIn8OGdlzQs/JPcL9B8lA2F6EQ==" - "resolved" "https://registry.npmjs.org/level-packager/-/level-packager-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "encoding-down" "^7.1.0" - "levelup" "^5.1.1" - -"level-supports@^2.0.1": - "integrity" "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==" - "resolved" "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz" - "version" "2.1.0" - -"level@^7.0.0": - "integrity" "sha512-w3E64+ALx2eZf8RV5JL4kIcE0BFAvQscRYd1yU4YVqZN9RGTQxXSvH202xvK15yZwFFxRXe60f13LJjcJ//I4Q==" - "resolved" "https://registry.npmjs.org/level/-/level-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "level-js" "^6.1.0" - "level-packager" "^6.0.1" - "leveldown" "^6.1.0" - -"leveldown@^6.1.0": - "integrity" "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==" - "resolved" "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz" - "version" "6.1.0" - dependencies: - "abstract-leveldown" "^7.2.0" - "napi-macros" "~2.0.0" - "node-gyp-build" "^4.3.0" - -"levelup@^5.1.1": - "integrity" "sha512-0mFCcHcEebOwsQuk00WJwjLI6oCjbBuEYdh/RaRqhjnyVlzqf41T1NnDtCedumZ56qyIh8euLFDqV1KfzTAVhg==" - "resolved" "https://registry.npmjs.org/levelup/-/levelup-5.1.1.tgz" - "version" "5.1.1" - dependencies: - "catering" "^2.0.0" - "deferred-leveldown" "^7.0.0" - "level-errors" "^3.0.1" - "level-iterator-stream" "^5.0.0" - "level-supports" "^2.0.1" - "queue-microtask" "^1.2.3" - -"leven@^3.1.0": - "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - "version" "3.1.0" - -"leven@2.1.0": - "integrity" "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" - "resolved" "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz" - "version" "2.1.0" - -"levn@~0.3.0": - "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" - "resolved" "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - "version" "0.3.0" - dependencies: - "prelude-ls" "~1.1.2" - "type-check" "~0.3.2" - -"libp2p-bootstrap@^0.14.0": - "integrity" "sha512-j3slZo5nOdA8wVlav8dRZeAXutZ7psz/f10DLoIEX/EFif7uU5oZfIYvjbVGo3ZDl+VQLo2tR0m1lV0westQ3g==" - "resolved" "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.14.0.tgz" - "version" "0.14.0" - dependencies: - "debug" "^4.3.1" - "mafmt" "^10.0.0" - "multiaddr" "^10.0.0" - "peer-id" "^0.16.0" - -"libp2p-crypto@^0.21.0": - "integrity" "sha512-EXFrhSpiHtJ+/L8xXDvQNK5VjUMG51u878jzZcaT5XhuN/zFg6PWJFnl/qB2Y2j7eMWnvCRP7Kp+ua2H36cG4g==" - "resolved" "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz" - "version" "0.21.2" + graceful-fs "^4.1.9" + +kleur@^3.0.0, kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +level-codec@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/level-codec/-/level-codec-10.0.0.tgz" + integrity sha512-QW3VteVNAp6c/LuV6nDjg7XDXx9XHK4abmQarxZmlRSDyXYk20UdaJTSX6yzVvQ4i0JyWSB7jert0DsyD/kk6g== + dependencies: + buffer "^6.0.3" + +level-concat-iterator@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz" + integrity sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ== + dependencies: + catering "^2.1.0" + +level-errors@^3.0.0, level-errors@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/level-errors/-/level-errors-3.0.1.tgz" + integrity sha512-tqTL2DxzPDzpwl0iV5+rBCv65HWbHp6eutluHNcVIftKZlQN//b6GEnZDM2CvGZvzGYMwyPtYppYnydBQd2SMQ== + +level-iterator-stream@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-5.0.0.tgz" + integrity sha512-wnb1+o+CVFUDdiSMR/ZymE2prPs3cjVLlXuDeSq9Zb8o032XrabGEXcTCsBxprAtseO3qvFeGzh6406z9sOTRA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.4.0" + +level-js@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/level-js/-/level-js-6.1.0.tgz" + integrity sha512-i7mPtkZm68aewfv0FnIUWvFUFfoyzIvVKnUmuQGrelEkP72vSPTaA1SGneWWoCV5KZJG4wlzbJLp1WxVNGuc6A== + dependencies: + abstract-leveldown "^7.2.0" + buffer "^6.0.3" + inherits "^2.0.3" + ltgt "^2.1.2" + run-parallel-limit "^1.1.0" + +level-packager@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/level-packager/-/level-packager-6.0.1.tgz" + integrity sha512-8Ezr0XM6hmAwqX9uu8IGzGNkWz/9doyPA8Oo9/D7qcMI6meJC+XhIbNYHukJhIn8OGdlzQs/JPcL9B8lA2F6EQ== + dependencies: + encoding-down "^7.1.0" + levelup "^5.1.1" + +level-supports@^2.0.1: + version "2.1.0" + resolved "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz" + integrity sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA== + +level@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/level/-/level-7.0.1.tgz" + integrity sha512-w3E64+ALx2eZf8RV5JL4kIcE0BFAvQscRYd1yU4YVqZN9RGTQxXSvH202xvK15yZwFFxRXe60f13LJjcJ//I4Q== + dependencies: + level-js "^6.1.0" + level-packager "^6.0.1" + leveldown "^6.1.0" + +leveldown@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz" + integrity sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w== + dependencies: + abstract-leveldown "^7.2.0" + napi-macros "~2.0.0" + node-gyp-build "^4.3.0" + +levelup@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/levelup/-/levelup-5.1.1.tgz" + integrity sha512-0mFCcHcEebOwsQuk00WJwjLI6oCjbBuEYdh/RaRqhjnyVlzqf41T1NnDtCedumZ56qyIh8euLFDqV1KfzTAVhg== + dependencies: + catering "^2.0.0" + deferred-leveldown "^7.0.0" + level-errors "^3.0.1" + level-iterator-stream "^5.0.0" + level-supports "^2.0.1" + queue-microtask "^1.2.3" + +leven@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +libp2p-bootstrap@^0.14.0: + version "0.14.0" + resolved "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.14.0.tgz" + integrity sha512-j3slZo5nOdA8wVlav8dRZeAXutZ7psz/f10DLoIEX/EFif7uU5oZfIYvjbVGo3ZDl+VQLo2tR0m1lV0westQ3g== + dependencies: + debug "^4.3.1" + mafmt "^10.0.0" + multiaddr "^10.0.0" + peer-id "^0.16.0" + +libp2p-crypto@^0.21.0: + version "0.21.2" + resolved "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz" + integrity sha512-EXFrhSpiHtJ+/L8xXDvQNK5VjUMG51u878jzZcaT5XhuN/zFg6PWJFnl/qB2Y2j7eMWnvCRP7Kp+ua2H36cG4g== dependencies: "@noble/ed25519" "^1.5.1" "@noble/secp256k1" "^1.3.0" - "err-code" "^3.0.1" - "iso-random-stream" "^2.0.0" - "multiformats" "^9.4.5" - "node-forge" "^1.2.1" - "protobufjs" "^6.11.2" - "uint8arrays" "^3.0.0" - -"libp2p-delegated-content-routing@^0.11.1": - "integrity" "sha512-O7bqOPGlvePsP4ld6AU4uDuHjTQ9lVfsTFkYqhwPVUw1rxR0UiGiU5eyq6ADlgrY3lHtz3Sc3yNVFN1FNDn1iA==" - "resolved" "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.11.2.tgz" - "version" "0.11.2" - dependencies: - "debug" "^4.1.1" - "it-drain" "^1.0.3" - "multiaddr" "^10.0.0" - "p-defer" "^3.0.0" - "p-queue" "^6.2.1" - "peer-id" "^0.16.0" - -"libp2p-delegated-peer-routing@^0.11.0": - "integrity" "sha512-NwdRS0a6plfzVcdSqHV4hQnv872zjt7dUtsfRXmPZkXoaPjWck3Y0EDFxDYHlCMPH9w7PvrgttBlO1EwWqFGFw==" - "resolved" "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.11.1.tgz" - "version" "0.11.1" - dependencies: - "debug" "^4.3.1" - "multiformats" "^9.0.2" - "p-defer" "^3.0.0" - "p-queue" "^6.3.0" - "peer-id" "^0.16.0" - -"libp2p-floodsub@^0.28.0": - "integrity" "sha512-I9qR7j79HbRgmIq/UkLauzAIcPbM/uJCk2bJNKobgyJMs7nt8KSwQS2I5JEf4Jc9j9toCh5MKQ6/ynyLoSjIig==" - "resolved" "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.28.0.tgz" - "version" "0.28.0" - dependencies: - "debug" "^4.2.0" - "libp2p-interfaces" "^2.0.1" - "time-cache" "^0.3.0" - "uint8arrays" "^3.0.0" - -"libp2p-gossipsub@^0.12.0": - "integrity" "sha512-Oyjt1jGoQm4t/L6t+NUToQPP5kwTailzFrzTnNTVSfKi8WCUty2ua2ttnq3ZEG4rUxlGDgqmOQoI6bfmjdvRNw==" - "resolved" "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.12.3.tgz" - "version" "0.12.3" + err-code "^3.0.1" + iso-random-stream "^2.0.0" + multiformats "^9.4.5" + node-forge "^1.2.1" + protobufjs "^6.11.2" + uint8arrays "^3.0.0" + +libp2p-delegated-content-routing@^0.11.1: + version "0.11.2" + resolved "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.11.2.tgz" + integrity sha512-O7bqOPGlvePsP4ld6AU4uDuHjTQ9lVfsTFkYqhwPVUw1rxR0UiGiU5eyq6ADlgrY3lHtz3Sc3yNVFN1FNDn1iA== + dependencies: + debug "^4.1.1" + it-drain "^1.0.3" + multiaddr "^10.0.0" + p-defer "^3.0.0" + p-queue "^6.2.1" + peer-id "^0.16.0" + +libp2p-delegated-peer-routing@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.11.1.tgz" + integrity sha512-NwdRS0a6plfzVcdSqHV4hQnv872zjt7dUtsfRXmPZkXoaPjWck3Y0EDFxDYHlCMPH9w7PvrgttBlO1EwWqFGFw== + dependencies: + debug "^4.3.1" + multiformats "^9.0.2" + p-defer "^3.0.0" + p-queue "^6.3.0" + peer-id "^0.16.0" + +libp2p-floodsub@^0.28.0: + version "0.28.0" + resolved "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.28.0.tgz" + integrity sha512-I9qR7j79HbRgmIq/UkLauzAIcPbM/uJCk2bJNKobgyJMs7nt8KSwQS2I5JEf4Jc9j9toCh5MKQ6/ynyLoSjIig== + dependencies: + debug "^4.2.0" + libp2p-interfaces "^2.0.1" + time-cache "^0.3.0" + uint8arrays "^3.0.0" + +libp2p-gossipsub@^0.12.0: + version "0.12.3" + resolved "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.12.3.tgz" + integrity sha512-Oyjt1jGoQm4t/L6t+NUToQPP5kwTailzFrzTnNTVSfKi8WCUty2ua2ttnq3ZEG4rUxlGDgqmOQoI6bfmjdvRNw== dependencies: "@types/debug" "^4.1.5" - "debug" "^4.3.1" - "denque" "^1.5.0" - "err-code" "^3.0.1" - "it-pipe" "^1.1.0" - "libp2p-interfaces" "^2.0.1" - "peer-id" "^0.16.0" - "protobufjs" "^6.11.2" - "time-cache" "^0.3.0" - "uint8arrays" "^3.0.0" - -"libp2p-interfaces@^2.0.1": - "integrity" "sha512-KYPYBy7dprcc9cy9PdoJyljs//Gb7A1448jNl/egfxIETKZl4uvYK66l4lzLtKB3AblIxATB8BFWEY/ph86QIA==" - "resolved" "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-2.0.9.tgz" - "version" "2.0.9" - dependencies: - "abortable-iterator" "^3.0.0" - "debug" "^4.3.1" - "err-code" "^3.0.1" - "it-length-prefixed" "^5.0.2" - "it-pipe" "^1.1.0" - "it-pushable" "^1.4.2" - "libp2p-crypto" "^0.21.0" - "multiaddr" "^10.0.0" - "multiformats" "^9.1.2" - "p-queue" "^6.6.2" - "peer-id" "^0.16.0" - "protobufjs" "^6.10.2" - "uint8arrays" "^3.0.0" - -"libp2p-kad-dht@^0.27.4": - "integrity" "sha512-mynm9yQyz3UnuGCCj54iT6irHu7Dt0Yv1vvJfdtXolU9U7uNdoNxVxBftb8NC3O9aj9Almt3QYmhCR8lOuww8Q==" - "resolved" "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.27.6.tgz" - "version" "0.27.6" - dependencies: - "any-signal" "^2.1.2" - "datastore-core" "^6.0.7" - "debug" "^4.3.1" - "err-code" "^3.0.0" - "hashlru" "^2.3.0" - "interface-datastore" "^6.0.2" - "it-all" "^1.0.5" - "it-drain" "^1.0.4" - "it-first" "^1.0.4" - "it-length" "^1.0.3" - "it-length-prefixed" "^5.0.2" - "it-map" "^1.0.5" - "it-merge" "^1.0.3" - "it-parallel" "^2.0.1" - "it-pipe" "^1.1.0" - "it-take" "^1.0.2" - "k-bucket" "^5.1.0" - "libp2p-crypto" "^0.21.0" - "libp2p-interfaces" "^2.0.1" - "libp2p-record" "^0.10.4" - "multiaddr" "^10.0.0" - "multiformats" "^9.4.5" - "native-abort-controller" "^1.0.4" - "p-defer" "^3.0.0" - "p-map" "^4.0.0" - "p-queue" "^6.6.2" - "peer-id" "^0.16.0" - "private-ip" "^2.3.3" - "protobufjs" "^6.10.2" - "streaming-iterables" "^6.0.0" - "timeout-abort-controller" "^2.0.0" - "uint8arrays" "^3.0.0" - "varint" "^6.0.0" - -"libp2p-mdns@^0.18.0": - "integrity" "sha512-IBCKRuNc5USlli9QF/gOq2loCssE4ZKkVRhUNuAVBRXJ8ueqFEquc5R5C1sWy7AOgbycTgeNcxzSa1kuNb6nbg==" - "resolved" "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.18.0.tgz" - "version" "0.18.0" - dependencies: - "debug" "^4.3.1" - "multiaddr" "^10.0.0" - "multicast-dns" "^7.2.0" - "peer-id" "^0.16.0" - -"libp2p-mplex@^0.10.2": - "integrity" "sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg==" - "resolved" "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz" - "version" "0.10.7" - dependencies: - "abortable-iterator" "^3.0.2" - "bl" "^5.0.0" - "debug" "^4.3.1" - "err-code" "^3.0.1" - "it-pipe" "^1.1.0" - "it-pushable" "^1.4.1" - "varint" "^6.0.0" - -"libp2p-record@^0.10.3", "libp2p-record@^0.10.4": - "integrity" "sha512-CbdO2P9DQn/DKll6R/J4nIw6Qt8xbUTfxYgJjpP9oz3izHKkpGQo0mPTe0NyuFTGIQ4OprrxqWqG5v8ZCGBqqw==" - "resolved" "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.10.6.tgz" - "version" "0.10.6" - dependencies: - "err-code" "^3.0.1" - "multiformats" "^9.4.5" - "protobufjs" "^6.11.2" - "uint8arrays" "^3.0.0" - -"libp2p-tcp@^0.17.1": - "integrity" "sha512-SAdgDB4Rm0olPbyvanKP5JBaiRwbIOo0Nt++WYe1U2B6akg2uatsDOtulfpnc1gsL1B5vamnOpOzKaDj4kkt8g==" - "resolved" "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.17.2.tgz" - "version" "0.17.2" - dependencies: - "abortable-iterator" "^3.0.0" - "class-is" "^1.1.0" - "debug" "^4.3.1" - "err-code" "^3.0.1" - "libp2p-utils" "^0.4.0" - "mafmt" "^10.0.0" - "multiaddr" "^10.0.0" - "stream-to-it" "^0.2.2" - -"libp2p-utils@^0.4.0": - "integrity" "sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ==" - "resolved" "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz" - "version" "0.4.1" - dependencies: - "abortable-iterator" "^3.0.0" - "debug" "^4.3.0" - "err-code" "^3.0.1" - "ip-address" "^8.0.0" - "is-loopback-addr" "^1.0.0" - "multiaddr" "^10.0.0" - "private-ip" "^2.1.1" - -"libp2p-webrtc-peer@^10.0.1": - "integrity" "sha512-Qi/YVrSI5sjU+iBvr1iAjGrakIEvzCS8S76v4q43jjlDb6Wj+S4OnFLH/uRlt7eLXcx4vlaI6huMzYrUAoopMg==" - "resolved" "https://registry.npmjs.org/libp2p-webrtc-peer/-/libp2p-webrtc-peer-10.0.1.tgz" - "version" "10.0.1" - dependencies: - "debug" "^4.0.1" - "err-code" "^2.0.3" - "get-browser-rtc" "^1.0.0" - "queue-microtask" "^1.1.0" - "randombytes" "^2.0.3" - "readable-stream" "^3.4.0" - -"libp2p-webrtc-star@^0.25.0": - "integrity" "sha512-SyXjHDrm+qlKQE5HIddrUCSwkxCIJ30PAH4ZVNNADkC0F5IVQY9EoVJ+/rrzZuDDqccnS15TgxW13vmybX96bQ==" - "resolved" "https://registry.npmjs.org/libp2p-webrtc-star/-/libp2p-webrtc-star-0.25.0.tgz" - "version" "0.25.0" - dependencies: - "abortable-iterator" "^3.0.0" - "class-is" "^1.1.0" - "debug" "^4.2.0" - "err-code" "^3.0.1" - "ipfs-utils" "^9.0.1" - "it-pipe" "^1.1.0" - "libp2p-utils" "^0.4.0" - "libp2p-webrtc-peer" "^10.0.1" - "mafmt" "^10.0.0" - "multiaddr" "^10.0.0" - "p-defer" "^3.0.0" - "peer-id" "^0.16.0" - "socket.io-client" "^4.1.2" - "stream-to-it" "^0.2.2" - -"libp2p-websockets@^0.16.2": - "integrity" "sha512-QGfo8jX1Ks16yi8C67CCyMW7k9cfCYiQ0lzKVJBud0fV3ymbMO2L8gzU6iXUUZTHILo8ka26zKhwQ4lmUMI+nA==" - "resolved" "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.2.tgz" - "version" "0.16.2" - dependencies: - "abortable-iterator" "^3.0.0" - "class-is" "^1.1.0" - "debug" "^4.3.1" - "err-code" "^3.0.1" - "ipfs-utils" "^9.0.1" - "it-ws" "^4.0.0" - "libp2p-utils" "^0.4.0" - "mafmt" "^10.0.0" - "multiaddr" "^10.0.0" - "multiaddr-to-uri" "^8.0.0" - "p-defer" "^3.0.0" - "p-timeout" "^4.1.0" - -"libp2p@^0.35.4": - "integrity" "sha512-1Vkm7+v6bXwjlBeuiKNLtRxPIDBWFe+dt17tye0XF1BeMOY8UFUN0QeEAYrOBs6Ses+sO4oZ6OwPtcNr3zrkMw==" - "resolved" "https://registry.npmjs.org/libp2p/-/libp2p-0.35.8.tgz" - "version" "0.35.8" + debug "^4.3.1" + denque "^1.5.0" + err-code "^3.0.1" + it-pipe "^1.1.0" + libp2p-interfaces "^2.0.1" + peer-id "^0.16.0" + protobufjs "^6.11.2" + time-cache "^0.3.0" + uint8arrays "^3.0.0" + +libp2p-interfaces@^2.0.1: + version "2.0.9" + resolved "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-2.0.9.tgz" + integrity sha512-KYPYBy7dprcc9cy9PdoJyljs//Gb7A1448jNl/egfxIETKZl4uvYK66l4lzLtKB3AblIxATB8BFWEY/ph86QIA== + dependencies: + abortable-iterator "^3.0.0" + debug "^4.3.1" + err-code "^3.0.1" + it-length-prefixed "^5.0.2" + it-pipe "^1.1.0" + it-pushable "^1.4.2" + libp2p-crypto "^0.21.0" + multiaddr "^10.0.0" + multiformats "^9.1.2" + p-queue "^6.6.2" + peer-id "^0.16.0" + protobufjs "^6.10.2" + uint8arrays "^3.0.0" + +libp2p-kad-dht@^0.27.4: + version "0.27.6" + resolved "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.27.6.tgz" + integrity sha512-mynm9yQyz3UnuGCCj54iT6irHu7Dt0Yv1vvJfdtXolU9U7uNdoNxVxBftb8NC3O9aj9Almt3QYmhCR8lOuww8Q== + dependencies: + any-signal "^2.1.2" + datastore-core "^6.0.7" + debug "^4.3.1" + err-code "^3.0.0" + hashlru "^2.3.0" + interface-datastore "^6.0.2" + it-all "^1.0.5" + it-drain "^1.0.4" + it-first "^1.0.4" + it-length "^1.0.3" + it-length-prefixed "^5.0.2" + it-map "^1.0.5" + it-merge "^1.0.3" + it-parallel "^2.0.1" + it-pipe "^1.1.0" + it-take "^1.0.2" + k-bucket "^5.1.0" + libp2p-crypto "^0.21.0" + libp2p-interfaces "^2.0.1" + libp2p-record "^0.10.4" + multiaddr "^10.0.0" + multiformats "^9.4.5" + native-abort-controller "^1.0.4" + p-defer "^3.0.0" + p-map "^4.0.0" + p-queue "^6.6.2" + peer-id "^0.16.0" + private-ip "^2.3.3" + protobufjs "^6.10.2" + streaming-iterables "^6.0.0" + timeout-abort-controller "^2.0.0" + uint8arrays "^3.0.0" + varint "^6.0.0" + +libp2p-mdns@^0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.18.0.tgz" + integrity sha512-IBCKRuNc5USlli9QF/gOq2loCssE4ZKkVRhUNuAVBRXJ8ueqFEquc5R5C1sWy7AOgbycTgeNcxzSa1kuNb6nbg== + dependencies: + debug "^4.3.1" + multiaddr "^10.0.0" + multicast-dns "^7.2.0" + peer-id "^0.16.0" + +libp2p-mplex@^0.10.2: + version "0.10.7" + resolved "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz" + integrity sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg== + dependencies: + abortable-iterator "^3.0.2" + bl "^5.0.0" + debug "^4.3.1" + err-code "^3.0.1" + it-pipe "^1.1.0" + it-pushable "^1.4.1" + varint "^6.0.0" + +libp2p-record@^0.10.3, libp2p-record@^0.10.4: + version "0.10.6" + resolved "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.10.6.tgz" + integrity sha512-CbdO2P9DQn/DKll6R/J4nIw6Qt8xbUTfxYgJjpP9oz3izHKkpGQo0mPTe0NyuFTGIQ4OprrxqWqG5v8ZCGBqqw== + dependencies: + err-code "^3.0.1" + multiformats "^9.4.5" + protobufjs "^6.11.2" + uint8arrays "^3.0.0" + +libp2p-tcp@^0.17.1: + version "0.17.2" + resolved "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.17.2.tgz" + integrity sha512-SAdgDB4Rm0olPbyvanKP5JBaiRwbIOo0Nt++WYe1U2B6akg2uatsDOtulfpnc1gsL1B5vamnOpOzKaDj4kkt8g== + dependencies: + abortable-iterator "^3.0.0" + class-is "^1.1.0" + debug "^4.3.1" + err-code "^3.0.1" + libp2p-utils "^0.4.0" + mafmt "^10.0.0" + multiaddr "^10.0.0" + stream-to-it "^0.2.2" + +libp2p-utils@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz" + integrity sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ== + dependencies: + abortable-iterator "^3.0.0" + debug "^4.3.0" + err-code "^3.0.1" + ip-address "^8.0.0" + is-loopback-addr "^1.0.0" + multiaddr "^10.0.0" + private-ip "^2.1.1" + +libp2p-webrtc-peer@^10.0.1: + version "10.0.1" + resolved "https://registry.npmjs.org/libp2p-webrtc-peer/-/libp2p-webrtc-peer-10.0.1.tgz" + integrity sha512-Qi/YVrSI5sjU+iBvr1iAjGrakIEvzCS8S76v4q43jjlDb6Wj+S4OnFLH/uRlt7eLXcx4vlaI6huMzYrUAoopMg== + dependencies: + debug "^4.0.1" + err-code "^2.0.3" + get-browser-rtc "^1.0.0" + queue-microtask "^1.1.0" + randombytes "^2.0.3" + readable-stream "^3.4.0" + +libp2p-webrtc-star@^0.25.0: + version "0.25.0" + resolved "https://registry.npmjs.org/libp2p-webrtc-star/-/libp2p-webrtc-star-0.25.0.tgz" + integrity sha512-SyXjHDrm+qlKQE5HIddrUCSwkxCIJ30PAH4ZVNNADkC0F5IVQY9EoVJ+/rrzZuDDqccnS15TgxW13vmybX96bQ== + dependencies: + abortable-iterator "^3.0.0" + class-is "^1.1.0" + debug "^4.2.0" + err-code "^3.0.1" + ipfs-utils "^9.0.1" + it-pipe "^1.1.0" + libp2p-utils "^0.4.0" + libp2p-webrtc-peer "^10.0.1" + mafmt "^10.0.0" + multiaddr "^10.0.0" + p-defer "^3.0.0" + peer-id "^0.16.0" + socket.io-client "^4.1.2" + stream-to-it "^0.2.2" + +libp2p-websockets@^0.16.2: + version "0.16.2" + resolved "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.2.tgz" + integrity sha512-QGfo8jX1Ks16yi8C67CCyMW7k9cfCYiQ0lzKVJBud0fV3ymbMO2L8gzU6iXUUZTHILo8ka26zKhwQ4lmUMI+nA== + dependencies: + abortable-iterator "^3.0.0" + class-is "^1.1.0" + debug "^4.3.1" + err-code "^3.0.1" + ipfs-utils "^9.0.1" + it-ws "^4.0.0" + libp2p-utils "^0.4.0" + mafmt "^10.0.0" + multiaddr "^10.0.0" + multiaddr-to-uri "^8.0.0" + p-defer "^3.0.0" + p-timeout "^4.1.0" + +libp2p@^0.35.4: + version "0.35.8" + resolved "https://registry.npmjs.org/libp2p/-/libp2p-0.35.8.tgz" + integrity sha512-1Vkm7+v6bXwjlBeuiKNLtRxPIDBWFe+dt17tye0XF1BeMOY8UFUN0QeEAYrOBs6Ses+sO4oZ6OwPtcNr3zrkMw== dependencies: "@vascosantos/moving-average" "^1.1.0" - "abort-controller" "^3.0.0" - "abortable-iterator" "^3.0.0" - "aggregate-error" "^3.1.0" - "any-signal" "^2.1.1" - "bignumber.js" "^9.0.1" - "class-is" "^1.1.0" - "debug" "^4.3.1" - "err-code" "^3.0.0" - "es6-promisify" "^7.0.0" - "events" "^3.3.0" - "hashlru" "^2.3.0" - "interface-datastore" "^6.0.2" - "it-all" "^1.0.4" - "it-buffer" "^0.1.2" - "it-drain" "^1.0.3" - "it-filter" "^1.0.1" - "it-first" "^1.0.4" - "it-handshake" "^2.0.0" - "it-length-prefixed" "^5.0.2" - "it-map" "^1.0.4" - "it-merge" "^1.0.0" - "it-pipe" "^1.1.0" - "it-take" "^1.0.0" - "libp2p-crypto" "^0.21.0" - "libp2p-interfaces" "^2.0.1" - "libp2p-utils" "^0.4.0" - "mafmt" "^10.0.0" - "merge-options" "^3.0.4" - "multiaddr" "^10.0.0" - "multiformats" "^9.0.0" - "multistream-select" "^2.0.0" - "mutable-proxy" "^1.0.0" - "nat-api" "^0.3.1" - "node-forge" "^0.10.0" - "p-any" "^3.0.0" - "p-fifo" "^1.0.0" - "p-retry" "^4.4.0" - "p-settle" "^4.1.1" - "peer-id" "^0.16.0" - "private-ip" "^2.1.0" - "protobufjs" "^6.10.2" - "retimer" "^3.0.0" - "sanitize-filename" "^1.6.3" - "set-delayed-interval" "^1.0.0" - "streaming-iterables" "^6.0.0" - "timeout-abort-controller" "^2.0.0" - "uint8arrays" "^3.0.0" - "varint" "^6.0.0" - "wherearewe" "^1.0.0" - "xsalsa20" "^1.1.0" - -"libphonenumber-js@^1.9.43": - "integrity" "sha512-zhw8nUMJuQf7jG1dZfEOKKOS6M3QYIv3HnvB/vGohNd0QfxIQcObH3a6Y6s350H+9xgBeOXClOJkS0hJ0yvS3g==" - "resolved" "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.44.tgz" - "version" "1.9.44" - -"listenercount@~1.0.1": - "integrity" "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=" - "resolved" "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz" - "version" "1.0.1" - -"locate-path@^5.0.0": - "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "p-locate" "^4.1.0" - -"lodash.camelcase@^4.3.0": - "integrity" "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - "resolved" "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" - "version" "4.3.0" - -"lodash.get@^4.4.2": - "integrity" "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - "resolved" "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" - "version" "4.4.2" - -"lodash.memoize@4.x": - "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - "version" "4.1.2" - -"lodash.sortby@^4.7.0": - "integrity" "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - "resolved" "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" - "version" "4.7.0" - -"lodash.throttle@^4.1.1": - "integrity" "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - "resolved" "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" - "version" "4.1.1" - -"lodash@^4.17.11", "lodash@^4.7.0", "lodash@4": - "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - "version" "4.17.21" - -"loglevel@^1.6.7": - "integrity" "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==" - "resolved" "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz" - "version" "1.8.0" - -"long@^4.0.0": - "integrity" "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - "resolved" "https://registry.npmjs.org/long/-/long-4.0.0.tgz" - "version" "4.0.0" - -"loose-envify@^1.1.0", "loose-envify@^1.4.0": - "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" - "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "js-tokens" "^3.0.0 || ^4.0.0" - -"lowdb@^1.0.0": - "integrity" "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==" - "resolved" "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "graceful-fs" "^4.1.3" - "is-promise" "^2.1.0" - "lodash" "4" - "pify" "^3.0.0" - "steno" "^0.4.1" - -"lower-case@^2.0.2": - "integrity" "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==" - "resolved" "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "tslib" "^2.0.3" - -"lowercase-keys@^1.0.0", "lowercase-keys@^1.0.1": - "integrity" "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" - "version" "1.0.1" - -"lowercase-keys@^2.0.0": - "integrity" "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" - "version" "2.0.0" - -"lru-cache@^6.0.0": - "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" - "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "yallist" "^4.0.0" - -"ltgt@^2.1.2": - "integrity" "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" - "resolved" "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" - "version" "2.2.1" - -"mafmt@^10.0.0": - "integrity" "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==" - "resolved" "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz" - "version" "10.0.0" - dependencies: - "multiaddr" "^10.0.0" - -"make-dir@^3.0.0", "make-dir@^3.1.0": - "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" - "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "semver" "^6.0.0" - -"make-error@1.x": - "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - "version" "1.3.6" - -"makeerror@1.0.12": - "integrity" "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==" - "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - "version" "1.0.12" - dependencies: - "tmpl" "1.0.5" - -"media-typer@0.3.0": - "integrity" "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - "version" "0.3.0" - -"merge-descriptors@1.0.1": - "integrity" "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - "version" "1.0.1" - -"merge-options@^3.0.4": - "integrity" "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==" - "resolved" "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "is-plain-obj" "^2.1.0" - -"merge-stream@^2.0.0": - "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - "version" "2.0.0" - -"methods@~1.1.2": - "integrity" "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - "resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - "version" "1.1.2" - -"micromatch@^4.0.4": - "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==" - "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" - "version" "4.0.4" - dependencies: - "braces" "^3.0.1" - "picomatch" "^2.2.3" - -"mime-db@1.51.0", "mime-db@1.x.x": - "integrity" "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz" - "version" "1.51.0" - -"mime-types@^2.1.12", "mime-types@^2.1.30", "mime-types@~2.1.19", "mime-types@~2.1.24": - "integrity" "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==" - "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz" - "version" "2.1.34" - dependencies: - "mime-db" "1.51.0" - -"mime@1.6.0": - "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - "version" "1.6.0" - -"mimic-fn@^2.1.0": - "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - "version" "2.1.0" - -"mimic-response@^1.0.0", "mimic-response@^1.0.1": - "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" - "version" "1.0.1" - -"minimalistic-assert@^1.0.0", "minimalistic-assert@^1.0.1": - "integrity" "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - "resolved" "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - "version" "1.0.1" - -"minimalistic-crypto-utils@^1.0.1": - "integrity" "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - "resolved" "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - "version" "1.0.1" - -"minimatch@^3.0.4": - "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "brace-expansion" "^1.1.7" - -"minimist@^1.2.0", "minimist@^1.2.5": - "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - "version" "1.2.5" - -"minipass@^2.6.0", "minipass@^2.9.0": - "integrity" "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==" - "resolved" "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" - "version" "2.9.0" - dependencies: - "safe-buffer" "^5.1.2" - "yallist" "^3.0.0" - -"minipass@^3.0.0": - "integrity" "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==" - "resolved" "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz" - "version" "3.1.6" - dependencies: - "yallist" "^4.0.0" - -"minizlib@^1.3.3": - "integrity" "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==" - "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" - "version" "1.3.3" - dependencies: - "minipass" "^2.9.0" - -"minizlib@^2.1.1": - "integrity" "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==" - "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" - "version" "2.1.2" - dependencies: - "minipass" "^3.0.0" - "yallist" "^4.0.0" - -"mkdirp@^0.5.1", "mkdirp@^0.5.5", "mkdirp@>=0.5 0": - "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - "version" "0.5.5" - dependencies: - "minimist" "^1.2.5" - -"mkdirp@^1.0.3": - "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - "version" "1.0.4" - -"mkdirp@^1.0.4": - "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - "version" "1.0.4" - -"mortice@^2.0.0", "mortice@^2.0.1": - "integrity" "sha512-9gsXmjq+5LZmXDIoyC/crf2i/7CUwDGSBEwSEsr1i/WfKmJ6DVt38B5kg6BE/WF/1/yfGJYiB1Wyiu423iI3nQ==" - "resolved" "https://registry.npmjs.org/mortice/-/mortice-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "nanoid" "^3.1.20" - "observable-webworkers" "^1.0.0" - "p-queue" "^6.0.0" - "promise-timeout" "^1.3.0" - -"mri@1.1.4": - "integrity" "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" - "resolved" "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz" - "version" "1.1.4" - -"ms@^2.1.1", "ms@2.1.3": - "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - "version" "2.1.3" - -"ms@2.0.0": - "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - "version" "2.0.0" - -"ms@2.1.2": - "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - "version" "2.1.2" - -"multiaddr-to-uri@^8.0.0": - "integrity" "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==" - "resolved" "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz" - "version" "8.0.0" - dependencies: - "multiaddr" "^10.0.0" - -"multiaddr@^10.0.0": - "integrity" "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==" - "resolved" "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz" - "version" "10.0.1" - dependencies: - "dns-over-http-resolver" "^1.2.3" - "err-code" "^3.0.1" - "is-ip" "^3.1.0" - "multiformats" "^9.4.5" - "uint8arrays" "^3.0.0" - "varint" "^6.0.0" - -"multicast-dns@^7.2.0": - "integrity" "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==" - "resolved" "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz" - "version" "7.2.4" - dependencies: - "dns-packet" "^5.2.2" - "thunky" "^1.0.2" - -"multiformats@^9.0.0", "multiformats@^9.0.2", "multiformats@^9.0.4", "multiformats@^9.1.0", "multiformats@^9.1.2", "multiformats@^9.4.13", "multiformats@^9.4.2", "multiformats@^9.4.5", "multiformats@^9.4.7", "multiformats@^9.5.1", "multiformats@^9.5.4": - "integrity" "sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg==" - "resolved" "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz" - "version" "9.6.4" - -"multistream-select@^2.0.0": - "integrity" "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==" - "resolved" "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "bl" "^5.0.0" - "debug" "^4.1.1" - "err-code" "^3.0.1" - "it-first" "^1.0.6" - "it-handshake" "^2.0.0" - "it-length-prefixed" "^5.0.0" - "it-pipe" "^1.0.1" - "it-reader" "^3.0.0" - "p-defer" "^3.0.0" - "uint8arrays" "^3.0.0" - -"murmurhash3js-revisited@^3.0.0": - "integrity" "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==" - "resolved" "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz" - "version" "3.0.0" - -"mutable-proxy@^1.0.0": - "integrity" "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==" - "resolved" "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz" - "version" "1.0.0" - -"nanoid@^3.0.2", "nanoid@^3.1.20", "nanoid@^3.1.23": - "integrity" "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" - "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" - "version" "3.2.0" - -"napi-macros@~2.0.0": - "integrity" "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" - "resolved" "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz" - "version" "2.0.0" - -"nat-api@^0.3.1": - "integrity" "sha512-5cyLugEkXnKSKSvVjKjxxPMLDnkwY3boZLbATWwiGJ4T/3UvIpiQmzb2RqtxxEFcVo/7PwsHPGN0MosopONO8Q==" - "resolved" "https://registry.npmjs.org/nat-api/-/nat-api-0.3.1.tgz" - "version" "0.3.1" - dependencies: - "async" "^3.2.0" - "debug" "^4.2.0" - "default-gateway" "^6.0.2" - "request" "^2.88.2" - "unordered-array-remove" "^1.0.2" - "xml2js" "^0.1.0" - -"native-abort-controller@^1.0.3", "native-abort-controller@^1.0.4": - "integrity" "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==" - "resolved" "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz" - "version" "1.0.4" - -"native-fetch@^3.0.0": - "integrity" "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==" - "resolved" "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz" - "version" "3.0.0" - -"natural-compare@^1.4.0": - "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - "version" "1.4.0" - -"needle@^2.2.1": - "integrity" "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==" - "resolved" "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz" - "version" "2.9.1" - dependencies: - "debug" "^3.2.6" - "iconv-lite" "^0.4.4" - "sax" "^1.2.4" - -"negotiator@0.6.2": - "integrity" "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" - "version" "0.6.2" - -"netmask@^2.0.2": - "integrity" "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" - "resolved" "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" - "version" "2.0.2" - -"no-case@^3.0.4": - "integrity" "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==" - "resolved" "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "lower-case" "^2.0.2" - "tslib" "^2.0.3" - -"node-addon-api@^2.0.0": - "integrity" "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - "resolved" "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" - "version" "2.0.2" - -"node-fetch@*", "node-fetch@^2.6.1", "node-fetch@^2.6.5", "node-fetch@2.6.7": - "integrity" "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==" - "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" - "version" "2.6.7" - dependencies: - "whatwg-url" "^5.0.0" + abort-controller "^3.0.0" + abortable-iterator "^3.0.0" + aggregate-error "^3.1.0" + any-signal "^2.1.1" + bignumber.js "^9.0.1" + class-is "^1.1.0" + debug "^4.3.1" + err-code "^3.0.0" + es6-promisify "^7.0.0" + events "^3.3.0" + hashlru "^2.3.0" + interface-datastore "^6.0.2" + it-all "^1.0.4" + it-buffer "^0.1.2" + it-drain "^1.0.3" + it-filter "^1.0.1" + it-first "^1.0.4" + it-handshake "^2.0.0" + it-length-prefixed "^5.0.2" + it-map "^1.0.4" + it-merge "^1.0.0" + it-pipe "^1.1.0" + it-take "^1.0.0" + libp2p-crypto "^0.21.0" + libp2p-interfaces "^2.0.1" + libp2p-utils "^0.4.0" + mafmt "^10.0.0" + merge-options "^3.0.4" + multiaddr "^10.0.0" + multiformats "^9.0.0" + multistream-select "^2.0.0" + mutable-proxy "^1.0.0" + nat-api "^0.3.1" + node-forge "^0.10.0" + p-any "^3.0.0" + p-fifo "^1.0.0" + p-retry "^4.4.0" + p-settle "^4.1.1" + peer-id "^0.16.0" + private-ip "^2.1.0" + protobufjs "^6.10.2" + retimer "^3.0.0" + sanitize-filename "^1.6.3" + set-delayed-interval "^1.0.0" + streaming-iterables "^6.0.0" + timeout-abort-controller "^2.0.0" + uint8arrays "^3.0.0" + varint "^6.0.0" + wherearewe "^1.0.0" + xsalsa20 "^1.1.0" + +libphonenumber-js@^1.9.43: + version "1.9.44" + resolved "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.44.tgz" + integrity sha512-zhw8nUMJuQf7jG1dZfEOKKOS6M3QYIv3HnvB/vGohNd0QfxIQcObH3a6Y6s350H+9xgBeOXClOJkS0hJ0yvS3g== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +listenercount@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz" + integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= + +livereload-js@^3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-3.3.3.tgz#3e4f5699f741fdf8be6dc9c46c523e4fc1abbd0d" + integrity sha512-a7Jipme3XIBIryJluWP5LQrEAvhobDPyScBe+q+MYwxBiMT2Ck7msy4tAdF8TAa33FMdJqX4guP81Yhiu6BkmQ== + +livereload@^0.9.1: + version "0.9.3" + resolved "https://registry.yarnpkg.com/livereload/-/livereload-0.9.3.tgz#a714816375ed52471408bede8b49b2ee6a0c55b1" + integrity sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw== + dependencies: + chokidar "^3.5.0" + livereload-js "^3.3.1" + opts ">= 1.2.0" + ws "^7.4.3" + +loader-utils@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +local-access@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/local-access/-/local-access-1.1.0.tgz#e007c76ba2ca83d5877ba1a125fc8dfe23ba4798" + integrity sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw== + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.memoize@4.x, lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.padend@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" + integrity sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@4, lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.3.0, lodash@^4.7.0, lodash@~4.17.10: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loglevel@^1.6.7: + version "1.8.0" + resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz" + integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lowdb@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz" + integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== + dependencies: + graceful-fs "^4.1.3" + is-promise "^2.1.0" + lodash "4" + pify "^3.0.0" + steno "^0.4.1" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +ltgt@^2.1.2: + version "2.2.1" + resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" + integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= + +mafmt@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz" + integrity sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw== + dependencies: + multiaddr "^10.0.0" + +magic-string@^0.25.3, magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +meow@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" + integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize "^1.2.0" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-options@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz" + integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== + dependencies: + is-plain-obj "^2.1.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.51.0, mime-db@1.x.x: + version "1.51.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@^2.1.30, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.34" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@~3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" + integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== + dependencies: + brace-expansion "^1.1.7" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minipass@^3.0.0: + version "3.1.6" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz" + integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + dependencies: + yallist "^4.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mock-fs@^4.1.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== + +mortice@^2.0.0, mortice@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/mortice/-/mortice-2.0.1.tgz" + integrity sha512-9gsXmjq+5LZmXDIoyC/crf2i/7CUwDGSBEwSEsr1i/WfKmJ6DVt38B5kg6BE/WF/1/yfGJYiB1Wyiu423iI3nQ== + dependencies: + nanoid "^3.1.20" + observable-webworkers "^1.0.0" + p-queue "^6.0.0" + promise-timeout "^1.3.0" + +mri@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz" + integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +mrmime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b" + integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multiaddr-to-uri@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz" + integrity sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA== + dependencies: + multiaddr "^10.0.0" + +multiaddr@^10.0.0: + version "10.0.1" + resolved "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz" + integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg== + dependencies: + dns-over-http-resolver "^1.2.3" + err-code "^3.0.1" + is-ip "^3.1.0" + multiformats "^9.4.5" + uint8arrays "^3.0.0" + varint "^6.0.0" + +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicast-dns@^7.2.0: + version "7.2.4" + resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz" + integrity sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multiformats@^9.0.0, multiformats@^9.0.2, multiformats@^9.0.4, multiformats@^9.1.0, multiformats@^9.1.2, multiformats@^9.4.13, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.4.7, multiformats@^9.5.1, multiformats@^9.5.4: + version "9.6.4" + resolved "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz" + integrity sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg== + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +multistream-select@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz" + integrity sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA== + dependencies: + bl "^5.0.0" + debug "^4.1.1" + err-code "^3.0.1" + it-first "^1.0.6" + it-handshake "^2.0.0" + it-length-prefixed "^5.0.0" + it-pipe "^1.0.1" + it-reader "^3.0.0" + p-defer "^3.0.0" + uint8arrays "^3.0.0" + +murmurhash3js-revisited@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz" + integrity sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g== + +mutable-proxy@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz" + integrity sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +nan@^2.13.2: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +nano-json-stream-parser@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= + +nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23: + version "3.2.0" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" + integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== + +napi-macros@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== + +nat-api@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/nat-api/-/nat-api-0.3.1.tgz" + integrity sha512-5cyLugEkXnKSKSvVjKjxxPMLDnkwY3boZLbATWwiGJ4T/3UvIpiQmzb2RqtxxEFcVo/7PwsHPGN0MosopONO8Q== + dependencies: + async "^3.2.0" + debug "^4.2.0" + default-gateway "^6.0.2" + request "^2.88.2" + unordered-array-remove "^1.0.2" + xml2js "^0.1.0" + +native-abort-controller@^1.0.3, native-abort-controller@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz" + integrity sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ== + +native-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz" + integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +ndjson@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-1.5.0.tgz#ae603b36b134bcec347b452422b0bf98d5832ec8" + integrity sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg= + dependencies: + json-stringify-safe "^5.0.1" + minimist "^1.2.0" + split2 "^2.1.0" + through2 "^2.0.3" + +needle@^2.2.1: + version "2.9.1" + resolved "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +neon-cli@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/neon-cli/-/neon-cli-0.4.0.tgz#d89e0a55b8db577324af70470e2b4e67157205f6" + integrity sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w== + dependencies: + chalk "~2.1.0" + command-line-args "^4.0.2" + command-line-commands "^2.0.0" + command-line-usage "^4.0.0" + git-config "0.0.7" + handlebars "^4.1.0" + inquirer "^3.0.6" + mkdirp "^0.5.1" + quickly-copy-file "^1.0.0" + rimraf "^2.6.1" + rsvp "^4.6.1" + semver "^5.1.0" + toml "^2.3.0" + ts-typed-json "^0.2.2" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +netmask@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.5: + version "2.6.7" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" "node-fetch@https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz": - "integrity" "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" - "resolved" "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" - "version" "2.6.7" - -"node-forge@^0.10.0": - "integrity" "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - "resolved" "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" - "version" "0.10.0" - -"node-forge@^1.2.1": - "integrity" "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==" - "resolved" "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz" - "version" "1.2.1" - -"node-gyp-build@^4.2.0", "node-gyp-build@^4.3.0": - "integrity" "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" - "resolved" "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" - "version" "4.3.0" - -"node-int64@^0.4.0": - "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - "version" "0.4.0" - -"node-releases@^2.0.1": - "integrity" "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" - "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz" - "version" "2.0.1" - -"node-wget-js@^1.0.1": - "integrity" "sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw==" - "resolved" "https://registry.npmjs.org/node-wget-js/-/node-wget-js-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "request" "^2.88.0" - -"nofilter@^1.0.4": - "integrity" "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==" - "resolved" "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz" - "version" "1.0.4" - -"nopt@^4.0.1": - "integrity" "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==" - "resolved" "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" - "version" "4.0.3" - dependencies: - "abbrev" "1" - "osenv" "^0.1.4" - -"nopt@^5.0.0": - "integrity" "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==" - "resolved" "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "abbrev" "1" - -"normalize-path@^3.0.0": - "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - "version" "3.0.0" - -"normalize-url@^4.1.0": - "integrity" "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" - "version" "4.5.1" - -"npm-bundled@^1.0.1": - "integrity" "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==" - "resolved" "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "npm-normalize-package-bin" "^1.0.1" - -"npm-normalize-package-bin@^1.0.1": - "integrity" "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - "resolved" "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz" - "version" "1.0.1" - -"npm-packlist@^1.1.6": - "integrity" "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==" - "resolved" "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz" - "version" "1.4.8" - dependencies: - "ignore-walk" "^3.0.1" - "npm-bundled" "^1.0.1" - "npm-normalize-package-bin" "^1.0.1" - -"npm-run-path@^4.0.1": - "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" - "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - "version" "4.0.1" - dependencies: - "path-key" "^3.0.0" - -"npmlog@^4.0.2": - "integrity" "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" - "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "are-we-there-yet" "~1.1.2" - "console-control-strings" "~1.1.0" - "gauge" "~2.7.3" - "set-blocking" "~2.0.0" - -"npmlog@^5.0.1": - "integrity" "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==" - "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "are-we-there-yet" "^2.0.0" - "console-control-strings" "^1.1.0" - "gauge" "^3.0.0" - "set-blocking" "^2.0.0" - -"number-is-nan@^1.0.0": - "integrity" "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - "resolved" "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" - "version" "1.0.1" - -"nwsapi@^2.2.0": - "integrity" "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - "resolved" "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" - "version" "2.2.0" - -"oauth-sign@~0.9.0": - "integrity" "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" - "version" "0.9.0" - -"object-assign@^4", "object-assign@^4.1.0", "object-assign@^4.1.1": - "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - "version" "4.1.1" - -"object-inspect@^1.11.0", "object-inspect@^1.9.0": - "integrity" "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" - "version" "1.12.0" - -"object-keys@^1.0.12", "object-keys@^1.1.1": - "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - "version" "1.1.1" - -"object-path@^0.11.4": - "integrity" "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==" - "resolved" "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz" - "version" "0.11.8" - -"object.assign@^4.1.2": - "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" - "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "call-bind" "^1.0.0" - "define-properties" "^1.1.3" - "has-symbols" "^1.0.1" - "object-keys" "^1.1.1" - -"object.getownpropertydescriptors@^2.1.1": - "integrity" "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==" - "resolved" "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz" - "version" "2.1.3" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - "es-abstract" "^1.19.1" - -"observable-webworkers@^1.0.0": - "integrity" "sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ==" - "resolved" "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-1.0.0.tgz" - "version" "1.0.0" - -"on-finished@~2.3.0": - "integrity" "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" - "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - "version" "2.3.0" - dependencies: - "ee-first" "1.1.1" - -"once@^1.3.0", "once@^1.3.1", "once@^1.4.0": - "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" - "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "wrappy" "1" - -"onetime@^5.1.2": - "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" - "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "mimic-fn" "^2.1.0" - -"optimism@^0.16.0": - "integrity" "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==" - "resolved" "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz" - "version" "0.16.1" + version "2.6.7" + resolved "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz" + integrity sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g== + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-forge@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz" + integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w== + +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" + integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== + +node-gyp@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" + integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.3" + nopt "^5.0.0" + npmlog "^4.1.2" + request "^2.88.2" + rimraf "^3.0.2" + semver "^7.3.2" + tar "^6.0.2" + which "^2.0.2" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-pre-gyp@0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4.4.2" + +node-pre-gyp@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz#df9ab7b68dd6498137717838e4f92a33fc9daa42" + integrity sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-releases@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== + +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + +node-sass@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-6.0.1.tgz#cad1ccd0ce63e35c7181f545d8b986f3a9a887fe" + integrity sha512-f+Rbqt92Ful9gX0cGtdYwjTrWAaGURgaK5rZCWOgCNyGWusFYHhbqCCBoFBeat+HKETOU02AyTxNhJV0YZf2jQ== + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^7.0.3" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + lodash "^4.17.15" + meow "^9.0.0" + nan "^2.13.2" + node-gyp "^7.1.0" + npmlog "^4.0.0" + request "^2.88.0" + sass-graph "2.2.5" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +node-wget-js@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/node-wget-js/-/node-wget-js-1.0.1.tgz" + integrity sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw== + dependencies: + request "^2.88.0" + +nofilter@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz" + integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== + +nopt@^4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +npm-bundled@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-packlist@^1.1.6: + version "1.4.8" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nugget@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.2.tgz#398b591377b740b3dd308fabecd5ea09cf3443da" + integrity sha512-A8A8+PtlH937KWXJnfct6ubGPfgHOe3lwFkkmrT5xW8+aRBnDWqSiW5NRuiVuh/k/auLGsZdu+WrIU2epL/FHg== + dependencies: + debug "^2.1.3" + minimist "^1.1.0" + pretty-bytes "^4.0.2" + progress-stream "^1.1.0" + request "^2.45.0" + single-line-log "^1.1.2" + throttleit "0.0.2" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.12.0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= + +object-path@^0.11.4: + version "0.11.8" + resolved "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz" + integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz" + integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.values@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= + dependencies: + http-https "^1.0.0" + +observable-webworkers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-1.0.0.tgz" + integrity sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +optimism@^0.16.0: + version "0.16.1" + resolved "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz" + integrity sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg== dependencies: "@wry/context" "^0.6.0" "@wry/trie" "^0.3.0" -"optionator@^0.8.1": - "integrity" "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==" - "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" - "version" "0.8.3" - dependencies: - "deep-is" "~0.1.3" - "fast-levenshtein" "~2.0.6" - "levn" "~0.3.0" - "prelude-ls" "~1.1.2" - "type-check" "~0.3.2" - "word-wrap" "~1.2.3" - -"os-homedir@^1.0.0": - "integrity" "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - "resolved" "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" - "version" "1.0.2" - -"os-tmpdir@^1.0.0": - "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - "version" "1.0.2" - -"osenv@^0.1.4": - "integrity" "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==" - "resolved" "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" - "version" "0.1.5" - dependencies: - "os-homedir" "^1.0.0" - "os-tmpdir" "^1.0.0" - -"p-any@^3.0.0": - "integrity" "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==" - "resolved" "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "p-cancelable" "^2.0.0" - "p-some" "^5.0.0" - -"p-cancelable@^1.0.0": - "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" - "version" "1.1.0" - -"p-cancelable@^2.0.0": - "integrity" "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" - "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" - "version" "2.1.1" - -"p-defer@^3.0.0": - "integrity" "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" - "resolved" "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz" - "version" "3.0.0" - -"p-fifo@^1.0.0": - "integrity" "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==" - "resolved" "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "fast-fifo" "^1.0.0" - "p-defer" "^3.0.0" - -"p-finally@^1.0.0": - "integrity" "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - "version" "1.0.0" - -"p-limit@^2.2.0", "p-limit@^2.2.2": - "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - "version" "2.3.0" - dependencies: - "p-try" "^2.0.0" - -"p-locate@^4.1.0": - "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "p-limit" "^2.2.0" - -"p-map@^4.0.0": - "integrity" "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==" - "resolved" "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "aggregate-error" "^3.0.0" - -"p-queue@^6.0.0", "p-queue@^6.2.1", "p-queue@^6.3.0", "p-queue@^6.6.1", "p-queue@^6.6.2": - "integrity" "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==" - "resolved" "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz" - "version" "6.6.2" - dependencies: - "eventemitter3" "^4.0.4" - "p-timeout" "^3.2.0" - -"p-reflect@^2.1.0": - "integrity" "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==" - "resolved" "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz" - "version" "2.1.0" - -"p-retry@^4.4.0": - "integrity" "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==" - "resolved" "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz" - "version" "4.6.1" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +"opts@>= 1.2.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/opts/-/opts-2.0.2.tgz#a17e189fbbfee171da559edd8a42423bc5993ce1" + integrity sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg== + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-any@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz" + integrity sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w== + dependencies: + p-cancelable "^2.0.0" + p-some "^5.0.0" + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-defer@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz" + integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== + +p-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz" + integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== + dependencies: + fast-fifo "^1.0.0" + p-defer "^3.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-queue@^6.0.0, p-queue@^6.2.1, p-queue@^6.3.0, p-queue@^6.6.1, p-queue@^6.6.2: + version "6.6.2" + resolved "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-reflect@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz" + integrity sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg== + +p-retry@^4.4.0: + version "4.6.1" + resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz" + integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== dependencies: "@types/retry" "^0.12.0" - "retry" "^0.13.1" - -"p-settle@^4.1.1": - "integrity" "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==" - "resolved" "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz" - "version" "4.1.1" - dependencies: - "p-limit" "^2.2.2" - "p-reflect" "^2.1.0" - -"p-some@^5.0.0": - "integrity" "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==" - "resolved" "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "aggregate-error" "^3.0.0" - "p-cancelable" "^2.0.0" - -"p-timeout@^3.2.0": - "integrity" "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==" - "resolved" "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz" - "version" "3.2.0" - dependencies: - "p-finally" "^1.0.0" - -"p-timeout@^4.1.0": - "integrity" "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" - "resolved" "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz" - "version" "4.1.0" - -"p-try-each@^1.0.1": - "integrity" "sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A==" - "resolved" "https://registry.npmjs.org/p-try-each/-/p-try-each-1.0.1.tgz" - "version" "1.0.1" - -"p-try@^2.0.0": - "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - "version" "2.2.0" - -"package-json@^6.3.0": - "integrity" "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==" - "resolved" "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" - "version" "6.5.0" - dependencies: - "got" "^9.6.0" - "registry-auth-token" "^4.0.0" - "registry-url" "^5.0.0" - "semver" "^6.2.0" - -"pako@^1.0.2": - "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - "version" "1.0.11" - -"param-case@^3.0.4": - "integrity" "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==" - "resolved" "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "dot-case" "^3.0.4" - "tslib" "^2.0.3" - -"parse-duration@^1.0.0": - "integrity" "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==" - "resolved" "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz" - "version" "1.0.2" - -"parse5@6.0.1": - "integrity" "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - "resolved" "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" - "version" "6.0.1" - -"parseqs@0.0.6": - "integrity" "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" - "resolved" "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz" - "version" "0.0.6" - -"parseuri@0.0.6": - "integrity" "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" - "resolved" "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz" - "version" "0.0.6" - -"parseurl@^1.3.2", "parseurl@~1.3.3": - "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - "version" "1.3.3" - -"pascal-case@^3.1.2": - "integrity" "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==" - "resolved" "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" - "version" "3.1.2" - dependencies: - "no-case" "^3.0.4" - "tslib" "^2.0.3" - -"path-case@^3.0.4": - "integrity" "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==" - "resolved" "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "dot-case" "^3.0.4" - "tslib" "^2.0.3" - -"path-exists@^4.0.0": - "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - "version" "4.0.0" - -"path-is-absolute@^1.0.0": - "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - "version" "1.0.1" - -"path-key@^3.0.0", "path-key@^3.1.0": - "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - "version" "3.1.1" - -"path-parse@^1.0.7": - "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - "version" "1.0.7" - -"path-to-regexp@0.1.7": - "integrity" "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - "version" "0.1.7" - -"peek-readable@^4.1.0": - "integrity" "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" - "resolved" "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz" - "version" "4.1.0" - -"peer-id@^0.16.0": - "integrity" "sha512-EmL7FurFUduU9m1PS9cfJ5TAuCvxKQ7DKpfx3Yj6IKWyBRtosriFuOag/l3ni/dtPgPLwiA4R9IvpL7hsDLJuQ==" - "resolved" "https://registry.npmjs.org/peer-id/-/peer-id-0.16.0.tgz" - "version" "0.16.0" - dependencies: - "class-is" "^1.1.0" - "libp2p-crypto" "^0.21.0" - "multiformats" "^9.4.5" - "protobufjs" "^6.10.2" - "uint8arrays" "^3.0.0" - -"performance-now@^2.1.0": - "integrity" "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - "resolved" "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" - "version" "2.1.0" - -"picocolors@^1.0.0": - "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - "version" "1.0.0" - -"picomatch@^2.0.4", "picomatch@^2.2.3": - "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - "version" "2.3.1" - -"pify@^3.0.0": - "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - "version" "3.0.0" - -"pino-pretty@^4.0.0": - "integrity" "sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw==" - "resolved" "https://registry.npmjs.org/pino-pretty/-/pino-pretty-4.8.0.tgz" - "version" "4.8.0" + retry "^0.13.1" + +p-settle@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz" + integrity sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ== + dependencies: + p-limit "^2.2.2" + p-reflect "^2.1.0" + +p-some@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz" + integrity sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig== + dependencies: + aggregate-error "^3.0.0" + p-cancelable "^2.0.0" + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-timeout@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz" + integrity sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw== + +p-try-each@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/p-try-each/-/p-try-each-1.0.1.tgz" + integrity sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +pako@^1.0.2: + version "1.0.11" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-duration@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz" + integrity sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg== + +parse-headers@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" + integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseqs@0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz" + integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== + +parseuri@0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz" + integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== + +parseurl@^1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6, path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +pbkdf2@^3.0.17, pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== + +peer-id@^0.16.0: + version "0.16.0" + resolved "https://registry.npmjs.org/peer-id/-/peer-id-0.16.0.tgz" + integrity sha512-EmL7FurFUduU9m1PS9cfJ5TAuCvxKQ7DKpfx3Yj6IKWyBRtosriFuOag/l3ni/dtPgPLwiA4R9IvpL7hsDLJuQ== + dependencies: + class-is "^1.1.0" + libp2p-crypto "^0.21.0" + multiformats "^9.4.5" + protobufjs "^6.10.2" + uint8arrays "^3.0.0" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pino-pretty@^4.0.0: + version "4.8.0" + resolved "https://registry.npmjs.org/pino-pretty/-/pino-pretty-4.8.0.tgz" + integrity sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw== dependencies: "@hapi/bourne" "^2.0.0" - "args" "^5.0.1" - "chalk" "^4.0.0" - "dateformat" "^4.5.1" - "fast-safe-stringify" "^2.0.7" - "jmespath" "^0.15.0" - "joycon" "^2.2.5" - "pump" "^3.0.0" - "readable-stream" "^3.6.0" - "rfdc" "^1.3.0" - "split2" "^3.1.1" - "strip-json-comments" "^3.1.1" - -"pino-std-serializers@^3.1.0": - "integrity" "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - "resolved" "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz" - "version" "3.2.0" - -"pino@^6.0.0": - "integrity" "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==" - "resolved" "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz" - "version" "6.14.0" - dependencies: - "fast-redact" "^3.0.0" - "fast-safe-stringify" "^2.0.8" - "flatstr" "^1.0.12" - "pino-std-serializers" "^3.1.0" - "process-warning" "^1.0.0" - "quick-format-unescaped" "^4.0.3" - "sonic-boom" "^1.0.2" - -"pirates@^4.0.4": - "integrity" "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==" - "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz" - "version" "4.0.4" - -"pkg-dir@^4.2.0": - "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" - "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - "version" "4.2.0" - dependencies: - "find-up" "^4.0.0" - -"prelude-ls@~1.1.2": - "integrity" "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - "version" "1.1.2" - -"prepend-http@^2.0.0": - "integrity" "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - "resolved" "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" - "version" "2.0.0" - -"pretty-bytes@^5.4.1": - "integrity" "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" - "resolved" "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" - "version" "5.6.0" - -"pretty-format@^27.0.0": - "integrity" "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==" - "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz" - "version" "27.4.6" - dependencies: - "ansi-regex" "^5.0.1" - "ansi-styles" "^5.0.0" - "react-is" "^17.0.1" - -"pretty-format@^27.4.6": - "integrity" "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==" - "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz" - "version" "27.4.6" - dependencies: - "ansi-regex" "^5.0.1" - "ansi-styles" "^5.0.0" - "react-is" "^17.0.1" - -"private-ip@^2.1.0", "private-ip@^2.1.1", "private-ip@^2.3.3": - "integrity" "sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw==" - "resolved" "https://registry.npmjs.org/private-ip/-/private-ip-2.3.3.tgz" - "version" "2.3.3" - dependencies: - "ip-regex" "^4.3.0" - "ipaddr.js" "^2.0.1" - "is-ip" "^3.1.0" - "netmask" "^2.0.2" - -"process-nextick-args@~2.0.0": - "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - "version" "2.0.1" - -"process-warning@^1.0.0": - "integrity" "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" - "resolved" "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz" - "version" "1.0.0" - -"progress@^2.0.3": - "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" - "version" "2.0.3" - -"prom-client@^14.0.1": - "integrity" "sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==" - "resolved" "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz" - "version" "14.0.1" - dependencies: - "tdigest" "^0.1.1" - -"promise-timeout@^1.3.0": - "integrity" "sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg==" - "resolved" "https://registry.npmjs.org/promise-timeout/-/promise-timeout-1.3.0.tgz" - "version" "1.3.0" - -"prompts@^2.0.1": - "integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==" - "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "kleur" "^3.0.3" - "sisteransi" "^1.0.5" - -"prop-types@^15.7.2": - "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" - "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" - "version" "15.8.1" - dependencies: - "loose-envify" "^1.4.0" - "object-assign" "^4.1.1" - "react-is" "^16.13.1" - -"proper-lockfile@^4.0.0": - "integrity" "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==" - "resolved" "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "graceful-fs" "^4.2.4" - "retry" "^0.12.0" - "signal-exit" "^3.0.2" - -"protobufjs@^6.10.0", "protobufjs@^6.10.2", "protobufjs@^6.11.2": - "integrity" "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==" - "resolved" "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz" - "version" "6.11.2" + args "^5.0.1" + chalk "^4.0.0" + dateformat "^4.5.1" + fast-safe-stringify "^2.0.7" + jmespath "^0.15.0" + joycon "^2.2.5" + pump "^3.0.0" + readable-stream "^3.6.0" + rfdc "^1.3.0" + split2 "^3.1.1" + strip-json-comments "^3.1.1" + +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino@^6.0.0: + version "6.14.0" + resolved "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz" + integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + +pirates@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz" + integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-load-config@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + integrity sha1-thTJcgvmgW6u41+zpfqh26agXds= + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-2.0.0.tgz#473d0d7326651d8408585c2a154115d5cb36cce0" + integrity sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw== + dependencies: + css-modules-loader-core "^1.1.0" + generic-names "^2.0.1" + lodash.camelcase "^4.3.0" + postcss "^7.0.1" + string-hash "^1.1.1" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2: + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" + integrity sha1-AA29H47vIXqjaLmiEsX8QLKo8/I= + dependencies: + chalk "^1.1.3" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +pretty-bytes@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" + integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk= + +pretty-bytes@^5.4.1: + version "5.6.0" + resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-format@^27.0.0, pretty-format@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz" + integrity sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +printj@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.3.1.tgz#9af6b1d55647a1587ac44f4c1654a4b95b8e12cb" + integrity sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg== + +private-ip@^2.1.0, private-ip@^2.1.1, private-ip@^2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/private-ip/-/private-ip-2.3.3.tgz" + integrity sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw== + dependencies: + ip-regex "^4.3.0" + ipaddr.js "^2.0.1" + is-ip "^3.1.0" + netmask "^2.0.2" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress-stream@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" + integrity sha1-LNPP6jO6OonJwSHsM0er6asSX3c= + dependencies: + speedometer "~0.1.2" + through2 "~0.2.3" + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prom-client@^14.0.1: + version "14.0.1" + resolved "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz" + integrity sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w== + dependencies: + tdigest "^0.1.1" + +promise-timeout@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/promise-timeout/-/promise-timeout-1.3.0.tgz" + integrity sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg== + +promise.series@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" + integrity sha1-LMfr6Vn8OmYZwEq029yeRS2GS70= + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proper-lockfile@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz" + integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== + dependencies: + graceful-fs "^4.2.4" + retry "^0.12.0" + signal-exit "^3.0.2" + +protobufjs@^6.10.0, protobufjs@^6.10.2, protobufjs@^6.11.2: + version "6.11.2" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz" + integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -7524,1714 +10491,2846 @@ "@protobufjs/utf8" "^1.1.0" "@types/long" "^4.0.1" "@types/node" ">=13.7.0" - "long" "^4.0.0" - -"proxy-addr@~2.0.7": - "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" - "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - "version" "2.0.7" - dependencies: - "forwarded" "0.2.0" - "ipaddr.js" "1.9.1" - -"psl@^1.1.28", "psl@^1.1.33": - "integrity" "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - "resolved" "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - "version" "1.8.0" - -"pump@^3.0.0": - "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" - "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "end-of-stream" "^1.1.0" - "once" "^1.3.1" - -"punycode@^2.1.0", "punycode@^2.1.1": - "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - "version" "2.1.1" - -"pupa@^2.1.1": - "integrity" "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==" - "resolved" "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "escape-goat" "^2.0.0" - -"pvtsutils@^1.2.0", "pvtsutils@^1.2.1": - "integrity" "sha512-Q867jEr30lBR2YSFFLZ0/XsEvpweqH6Kj096wmlRAFXrdRGPCNq2iz9B5Tk085EZ+OBZyYAVA5UhPkjSHGrUzQ==" - "resolved" "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.1.tgz" - "version" "1.2.1" - dependencies: - "tslib" "^2.3.1" - -"pvutils@latest": - "integrity" "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" - "resolved" "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz" - "version" "1.0.17" - -"qs@~6.5.2": - "integrity" "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" - "version" "6.5.3" - -"qs@6.9.6": - "integrity" "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - "resolved" "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz" - "version" "6.9.6" - -"queue-microtask@^1.1.0", "queue-microtask@^1.2.2", "queue-microtask@^1.2.3": - "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - "version" "1.2.3" - -"quick-format-unescaped@^4.0.3": - "integrity" "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" - "resolved" "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" - "version" "4.0.4" - -"rabin-wasm@^0.1.4": - "integrity" "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==" - "resolved" "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz" - "version" "0.1.5" + long "^4.0.0" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28, psl@^1.1.33: + version "1.8.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +pvtsutils@^1.2.0, pvtsutils@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.1.tgz" + integrity sha512-Q867jEr30lBR2YSFFLZ0/XsEvpweqH6Kj096wmlRAFXrdRGPCNq2iz9B5Tk085EZ+OBZyYAVA5UhPkjSHGrUzQ== + dependencies: + tslib "^2.3.1" + +pvtsutils@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.2.2.tgz#62ef6bc0513cbc255ee02574dedeaa41272d6101" + integrity sha512-OALo5ZEdqiI127i64+CXwkCOyFHUA+tCQgaUO/MvRDFXWPr53f2sx28ECNztUEzuyu5xvuuD1EB/szg9mwJoGA== + dependencies: + tslib "^2.3.1" + +pvutils@latest: + version "1.0.17" + resolved "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz" + integrity sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.9.6: + version "6.9.6" + resolved "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz" + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== + +qs@6.9.7: + version "6.9.7" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +queue-microtask@^1.1.0, queue-microtask@^1.2.2, queue-microtask@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +quickly-copy-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz#9f8ff066230510ee7422b0121472b093a8690859" + integrity sha1-n4/wZiMFEO50IrASFHKwk6hpCFk= + dependencies: + mkdirp "~0.5.0" + +rabin-wasm@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz" + integrity sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA== dependencies: "@assemblyscript/loader" "^0.9.4" - "bl" "^5.0.0" - "debug" "^4.3.1" - "minimist" "^1.2.5" - "node-fetch" "^2.6.1" - "readable-stream" "^3.6.0" - -"randombytes@^2.0.3", "randombytes@^2.1.0": - "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" - "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "safe-buffer" "^5.1.0" - -"range-parser@~1.2.1": - "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - "version" "1.2.1" - -"raw-body@2.4.2": - "integrity" "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==" - "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "bytes" "3.1.1" - "http-errors" "1.8.1" - "iconv-lite" "0.4.24" - "unpipe" "1.0.0" - -"rc@^1.2.7", "rc@^1.2.8": - "integrity" "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==" - "resolved" "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" - "version" "1.2.8" - dependencies: - "deep-extend" "^0.6.0" - "ini" "~1.3.0" - "minimist" "^1.2.0" - "strip-json-comments" "~2.0.1" - -"react-is@^16.13.1", "react-is@^16.7.0": - "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - "version" "16.13.1" - -"react-is@^17.0.1": - "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - "version" "17.0.2" - -"react-native-fetch-api@^2.0.0": - "integrity" "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==" - "resolved" "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "p-defer" "^3.0.0" - -"react@^16.8.0 || ^17.0.0", "react@^17.0.1", "react@^17.0.2": - "integrity" "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==" - "resolved" "https://registry.npmjs.org/react/-/react-17.0.2.tgz" - "version" "17.0.2" - dependencies: - "loose-envify" "^1.1.0" - "object-assign" "^4.1.1" - -"readable-stream@^2.0.2": - "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - "version" "2.3.7" - dependencies: - "core-util-is" "~1.0.0" - "inherits" "~2.0.3" - "isarray" "~1.0.0" - "process-nextick-args" "~2.0.0" - "safe-buffer" "~5.1.1" - "string_decoder" "~1.1.1" - "util-deprecate" "~1.0.1" - -"readable-stream@^2.0.6": - "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - "version" "2.3.7" - dependencies: - "core-util-is" "~1.0.0" - "inherits" "~2.0.3" - "isarray" "~1.0.0" - "process-nextick-args" "~2.0.0" - "safe-buffer" "~5.1.1" - "string_decoder" "~1.1.1" - "util-deprecate" "~1.0.1" - -"readable-stream@^3.0.0", "readable-stream@^3.4.0", "readable-stream@^3.6.0": - "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - "version" "3.6.0" - dependencies: - "inherits" "^2.0.3" - "string_decoder" "^1.1.1" - "util-deprecate" "^1.0.1" - -"readable-stream@~2.3.6": - "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - "version" "2.3.7" - dependencies: - "core-util-is" "~1.0.0" - "inherits" "~2.0.3" - "isarray" "~1.0.0" - "process-nextick-args" "~2.0.0" - "safe-buffer" "~5.1.1" - "string_decoder" "~1.1.1" - "util-deprecate" "~1.0.1" - -"readable-web-to-node-stream@^3.0.0": - "integrity" "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==" - "resolved" "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "readable-stream" "^3.6.0" - -"receptacle@^1.3.2": - "integrity" "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==" - "resolved" "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz" - "version" "1.3.2" - dependencies: - "ms" "^2.1.1" - -"reflect-metadata@^0.1.13": - "integrity" "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - "resolved" "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" - "version" "0.1.13" - -"registry-auth-token@^4.0.0": - "integrity" "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==" - "resolved" "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" - "version" "4.2.1" - dependencies: - "rc" "^1.2.8" - -"registry-url@^5.0.0": - "integrity" "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==" - "resolved" "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" - "version" "5.1.0" - dependencies: - "rc" "^1.2.8" - -"request@^2.88.0", "request@^2.88.2": - "integrity" "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==" - "resolved" "https://registry.npmjs.org/request/-/request-2.88.2.tgz" - "version" "2.88.2" - dependencies: - "aws-sign2" "~0.7.0" - "aws4" "^1.8.0" - "caseless" "~0.12.0" - "combined-stream" "~1.0.6" - "extend" "~3.0.2" - "forever-agent" "~0.6.1" - "form-data" "~2.3.2" - "har-validator" "~5.1.3" - "http-signature" "~1.2.0" - "is-typedarray" "~1.0.0" - "isstream" "~0.1.2" - "json-stringify-safe" "~5.0.1" - "mime-types" "~2.1.19" - "oauth-sign" "~0.9.0" - "performance-now" "^2.1.0" - "qs" "~6.5.2" - "safe-buffer" "^5.1.2" - "tough-cookie" "~2.5.0" - "tunnel-agent" "^0.6.0" - "uuid" "^3.3.2" - -"require-directory@^2.1.1": - "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - "version" "2.1.1" - -"resolve-cwd@^3.0.0": - "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" - "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "resolve-from" "^5.0.0" - -"resolve-from@^5.0.0": - "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - "version" "5.0.0" - -"resolve.exports@^1.1.0": - "integrity" "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" - "resolved" "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" - "version" "1.1.0" - -"resolve@^1.20.0": - "integrity" "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==" - "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz" - "version" "1.21.1" - dependencies: - "is-core-module" "^2.8.0" - "path-parse" "^1.0.7" - "supports-preserve-symlinks-flag" "^1.0.0" - -"responselike@^1.0.2": - "integrity" "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=" - "resolved" "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "lowercase-keys" "^1.0.0" - -"retimer@^3.0.0": - "integrity" "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" - "resolved" "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz" - "version" "3.0.0" - -"retry@^0.12.0": - "integrity" "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - "resolved" "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" - "version" "0.12.0" - -"retry@^0.13.1", "retry@0.13.1": - "integrity" "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" - "resolved" "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" - "version" "0.13.1" - -"rfc4648@1.4.0": - "integrity" "sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg==" - "resolved" "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz" - "version" "1.4.0" - -"rfdc@^1.3.0": - "integrity" "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" - "resolved" "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" - "version" "1.3.0" - -"rimraf@^2.6.1", "rimraf@2": - "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" - "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - "version" "2.7.1" - dependencies: - "glob" "^7.1.3" - -"rimraf@^3.0.0": - "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" - "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "glob" "^7.1.3" - -"rimraf@^3.0.2": - "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" - "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "glob" "^7.1.3" - -"run-parallel-limit@^1.1.0": - "integrity" "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==" - "resolved" "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz" - "version" "1.1.0" - dependencies: - "queue-microtask" "^1.2.2" - -"safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.2", "safe-buffer@^5.2.1", "safe-buffer@~5.2.0", "safe-buffer@5.2.1": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" - -"safe-buffer@~5.1.0", "safe-buffer@~5.1.1": - "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - "version" "5.1.2" - -"safer-buffer@^2.0.2", "safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", "safer-buffer@~2.1.0": - "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - "version" "2.1.2" - -"sanitize-filename@^1.6.3": - "integrity" "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==" - "resolved" "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" - "version" "1.6.3" - dependencies: - "truncate-utf8-bytes" "^1.0.0" - -"sax@^1.2.4", "sax@>=0.1.1": - "integrity" "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - "version" "1.2.4" - -"saxes@^5.0.1": - "integrity" "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==" - "resolved" "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "xmlchars" "^2.2.0" - -"secp256k1@^4.0.1": - "integrity" "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==" - "resolved" "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" - "version" "4.0.3" - dependencies: - "elliptic" "^6.5.4" - "node-addon-api" "^2.0.0" - "node-gyp-build" "^4.2.0" - -"semver-diff@^3.1.1": - "integrity" "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==" - "resolved" "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" - "version" "3.1.1" - dependencies: - "semver" "^6.3.0" - -"semver@^5.3.0": - "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - "version" "5.7.1" - -"semver@^6.0.0": - "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - "version" "6.3.0" - -"semver@^6.2.0": - "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - "version" "6.3.0" - -"semver@^6.3.0": - "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - "version" "6.3.0" - -"semver@^7.3.2": - "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - "version" "7.3.5" - dependencies: - "lru-cache" "^6.0.0" - -"semver@^7.3.4": - "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - "version" "7.3.5" - dependencies: - "lru-cache" "^6.0.0" - -"semver@^7.3.5": - "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - "version" "7.3.5" - dependencies: - "lru-cache" "^6.0.0" - -"semver@7.x": - "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - "version" "7.3.5" - dependencies: - "lru-cache" "^6.0.0" - -"send@0.17.2": - "integrity" "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==" - "resolved" "https://registry.npmjs.org/send/-/send-0.17.2.tgz" - "version" "0.17.2" - dependencies: - "debug" "2.6.9" - "depd" "~1.1.2" - "destroy" "~1.0.4" - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "etag" "~1.8.1" - "fresh" "0.5.2" - "http-errors" "1.8.1" - "mime" "1.6.0" - "ms" "2.1.3" - "on-finished" "~2.3.0" - "range-parser" "~1.2.1" - "statuses" "~1.5.0" - -"sentence-case@^3.0.4": - "integrity" "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==" - "resolved" "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "no-case" "^3.0.4" - "tslib" "^2.0.3" - "upper-case-first" "^2.0.2" - -"serve-static@1.14.2": - "integrity" "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==" - "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz" - "version" "1.14.2" - dependencies: - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "parseurl" "~1.3.3" - "send" "0.17.2" - -"set-blocking@^2.0.0", "set-blocking@~2.0.0": - "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - "version" "2.0.0" - -"set-delayed-interval@^1.0.0": - "integrity" "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" - "resolved" "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz" - "version" "1.0.0" - -"setimmediate@~1.0.4": - "integrity" "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - "resolved" "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - "version" "1.0.5" - -"setprototypeof@1.2.0": - "integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - "version" "1.2.0" - -"sha.js@^2.4.11": - "integrity" "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==" - "resolved" "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - "version" "2.4.11" - dependencies: - "inherits" "^2.0.1" - "safe-buffer" "^5.0.1" - -"sha256@^0.2.0": - "integrity" "sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU=" - "resolved" "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz" - "version" "0.2.0" - dependencies: - "convert-hex" "~0.1.0" - "convert-string" "~0.1.0" - -"sha3@^2.1.3": - "integrity" "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==" - "resolved" "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz" - "version" "2.1.4" - dependencies: - "buffer" "6.0.3" - -"shebang-command@^2.0.0": - "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" - "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "shebang-regex" "^3.0.0" - -"shebang-regex@^3.0.0": - "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - "version" "3.0.0" - -"side-channel@^1.0.4": - "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" - "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "call-bind" "^1.0.0" - "get-intrinsic" "^1.0.2" - "object-inspect" "^1.9.0" - -"signal-exit@^3.0.0", "signal-exit@^3.0.2", "signal-exit@^3.0.3": - "integrity" "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" - "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz" - "version" "3.0.6" - -"sisteransi@^1.0.5": - "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - "version" "1.0.5" - -"slash@^3.0.0": - "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - "version" "3.0.0" - -"snake-case@^3.0.4": - "integrity" "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==" - "resolved" "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "dot-case" "^3.0.4" - "tslib" "^2.0.3" - -"socket.io-client@^4.1.2": - "integrity" "sha512-N5C/L5fLNha5Ojd7Yeb/puKcPWWcoB/A09fEjjNsg91EDVr5twk/OEyO6VT9dlLSUNY85NpW6KBhVMvaLKQ3vQ==" - "resolved" "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.4.1.tgz" - "version" "4.4.1" + bl "^5.0.0" + debug "^4.3.1" + minimist "^1.2.5" + node-fetch "^2.6.1" + readable-stream "^3.6.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.3, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz" + integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== + dependencies: + bytes "3.1.1" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" + integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== + dependencies: + bytes "3.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.1.2, rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-native-fetch-api@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz" + integrity sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw== + dependencies: + p-defer "^3.0.0" + +react@^17.0.1, react@^17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.0, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-web-to-node-stream@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +receptacle@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz" + integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== + dependencies: + ms "^2.1.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +reduce-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-1.0.1.tgz#258c78efd153ddf93cb561237f61184f3696e327" + integrity sha1-JYx479FT3fk8tWEjf2EYTzaW4yc= + +reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +request@^2.45.0, request@^2.79.0, request@^2.88.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve.exports@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + +resolve@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +resolve@^1.10.0, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.19.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.20.0: + version "1.21.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz" + integrity sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ== + dependencies: + is-core-module "^2.8.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +retimer@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz" + integrity sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA== + +retry@0.13.1, retry@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rfc4648@1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz" + integrity sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg== + +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@2, rimraf@^2.2.8, rimraf@^2.6.1: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + +rollup-plugin-inject-process-env@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-inject-process-env/-/rollup-plugin-inject-process-env-1.3.1.tgz#2d7660fe76f2b221b976cb35597763ffcaad3db3" + integrity sha512-kKDoL30IZr0wxbNVJjq+OS92RJSKRbKV6B5eNW4q3mZTFqoWDh6lHy+mPDYuuGuERFNKXkG+AKxvYqC9+DRpKQ== + dependencies: + magic-string "^0.25.7" + +rollup-plugin-inject@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" + integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== + dependencies: + estree-walker "^0.6.1" + magic-string "^0.25.3" + rollup-pluginutils "^2.8.1" + +rollup-plugin-livereload@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz#4747fa292a2cceb0c972c573d71b3d66b4252b37" + integrity sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA== + dependencies: + livereload "^0.9.1" + +rollup-plugin-node-polyfills@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" + integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== + dependencies: + rollup-plugin-inject "^3.0.0" + +rollup-plugin-postcss@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz#d1bcaf8eb0fcb0936e3684c22dd8628d13a82fd1" + integrity sha512-JHnGfW8quNc6ePxEkZ05HEZ1YiRxDgY9RKEetMfsrwxR2kh/d90OVScTc6b1c2Q17Cs/5TRYL+1uddG21lQe3w== + dependencies: + chalk "^4.0.0" + concat-with-sourcemaps "^1.1.0" + cssnano "^4.1.10" + import-cwd "^3.0.0" + p-queue "^6.3.0" + pify "^5.0.0" + postcss "^7.0.27" + postcss-load-config "^2.1.0" + postcss-modules "^2.0.0" + promise.series "^0.2.0" + resolve "^1.16.1" + rollup-pluginutils "^2.8.2" + safe-identifier "^0.4.1" + style-inject "^0.3.0" + +rollup-plugin-svelte@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz#66362cf0500fb7a848283ebcf19d289a60ef0871" + integrity sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow== + dependencies: + require-relative "^0.8.7" + rollup-pluginutils "^2.8.2" + sourcemap-codec "^1.4.8" + +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup-plugin-typescript2@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz#1cc99ac2309bf4b9d0a3ebdbc2002aecd56083d3" + integrity sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ== + dependencies: + "@rollup/pluginutils" "^4.1.0" + find-cache-dir "^3.3.1" + fs-extra "8.1.0" + resolve "1.20.0" + tslib "2.1.0" + +rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@2.52.7: + version "2.52.7" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.52.7.tgz#e15a8bf734f6e4c204b7cdf33521151310250cb2" + integrity sha512-55cSH4CCU6MaPr9TAOyrIC+7qFCHscL7tkNsm1MBfIJRRqRbCEY0mmeFn4Wg8FKsHtEH8r389Fz38r/o+kgXLg== + optionalDependencies: + fsevents "~2.3.2" + +rsvp@^3.5.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== + +rsvp@^4.6.1: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz" + integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== + dependencies: + queue-microtask "^1.2.2" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= + +sade@^1.6.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-identifier@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" + integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^13.3.2" + +sass@^1.26.11: + version "1.49.9" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.9.tgz#b15a189ecb0ca9e24634bae5d1ebc191809712f9" + integrity sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@>=0.1.1, sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scrypt-js@^3.0.0, scrypt-js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + +secp256k1@^4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +semiver@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semiver/-/semiver-1.1.0.tgz#9c97fb02c21c7ce4fcf1b73e2c7a24324bdddd5f" + integrity sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg== + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.2: + version "0.17.2" + resolved "https://registry.npmjs.org/send/-/send-0.17.2.tgz" + integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "1.8.1" + mime "1.6.0" + ms "2.1.3" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serve-static@1.14.2: + version "1.14.2" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz" + integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.2" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== + dependencies: + body-parser "^1.16.0" + cors "^2.8.1" + express "^4.14.0" + request "^2.79.0" + xhr "^2.3.3" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-delayed-interval@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz" + integrity sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw== + +setimmediate@^1.0.5, setimmediate@~1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha256@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz" + integrity sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU= + dependencies: + convert-hex "~0.1.0" + convert-string "~0.1.0" + +sha3@^2.1.3: + version "2.1.4" + resolved "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz" + integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg== + dependencies: + buffer "6.0.3" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.6" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz" + integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^2.7.0: + version "2.8.2" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" + integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +single-line-log@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" + integrity sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q= + dependencies: + string-width "^1.0.1" + +sirv-cli@^1.0.0: + version "1.0.14" + resolved "https://registry.yarnpkg.com/sirv-cli/-/sirv-cli-1.0.14.tgz#4bc60421b3de9caea80ccd292b5004aca4ce3c81" + integrity sha512-yyUTNr984ANKDloqepkYbBSqvx3buwYg2sQKPWjSU+IBia5loaoka2If8N9CMwt8AfP179cdEl7kYJ//iWJHjQ== + dependencies: + console-clear "^1.1.0" + get-port "^3.2.0" + kleur "^3.0.0" + local-access "^1.0.1" + sade "^1.6.0" + semiver "^1.0.0" + sirv "^1.0.13" + tinydate "^1.0.0" + +sirv@^1.0.13: + version "1.0.19" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" + integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^1.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +socket.io-client@^4.1.2: + version "4.4.1" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.4.1.tgz" + integrity sha512-N5C/L5fLNha5Ojd7Yeb/puKcPWWcoB/A09fEjjNsg91EDVr5twk/OEyO6VT9dlLSUNY85NpW6KBhVMvaLKQ3vQ== dependencies: "@socket.io/component-emitter" "~3.0.0" - "backo2" "~1.0.2" - "debug" "~4.3.2" - "engine.io-client" "~6.1.1" - "parseuri" "0.0.6" - "socket.io-parser" "~4.1.1" + backo2 "~1.0.2" + debug "~4.3.2" + engine.io-client "~6.1.1" + parseuri "0.0.6" + socket.io-parser "~4.1.1" -"socket.io-parser@~4.1.1": - "integrity" "sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA==" - "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.1.1.tgz" - "version" "4.1.1" +socket.io-parser@~4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.1.1.tgz" + integrity sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA== dependencies: "@socket.io/component-emitter" "~3.0.0" - "debug" "~4.3.1" - -"sonic-boom@^1.0.2": - "integrity" "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==" - "resolved" "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz" - "version" "1.4.1" - dependencies: - "atomic-sleep" "^1.0.0" - "flatstr" "^1.0.12" - -"sort-keys@^4.2.0": - "integrity" "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==" - "resolved" "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz" - "version" "4.2.0" - dependencies: - "is-plain-obj" "^2.0.0" - -"source-map-support@^0.5.6": - "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==" - "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - "version" "0.5.21" - dependencies: - "buffer-from" "^1.0.0" - "source-map" "^0.6.0" - -"source-map@^0.5.0": - "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - "version" "0.5.7" - -"source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.1": - "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - "version" "0.6.1" - -"source-map@^0.7.3": - "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - "version" "0.7.3" - -"sparse-array@^1.3.1": - "integrity" "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" - "resolved" "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz" - "version" "1.3.2" - -"spdx-correct@^3.0.0": - "integrity" "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==" - "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" - "version" "3.1.1" - dependencies: - "spdx-expression-parse" "^3.0.0" - "spdx-license-ids" "^3.0.0" - -"spdx-exceptions@^2.1.0": - "integrity" "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - "resolved" "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - "version" "2.3.0" - -"spdx-expression-parse@^3.0.0": - "integrity" "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==" - "resolved" "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "spdx-exceptions" "^2.1.0" - "spdx-license-ids" "^3.0.0" - -"spdx-license-ids@^3.0.0": - "integrity" "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz" - "version" "3.0.11" - -"split@^1.0.0": - "integrity" "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==" - "resolved" "https://registry.npmjs.org/split/-/split-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "through" "2" - -"split2@^3.1.1": - "integrity" "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==" - "resolved" "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" - "version" "3.2.2" - dependencies: - "readable-stream" "^3.0.0" - -"sprintf-js@~1.0.2": - "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - "version" "1.0.3" - -"sprintf-js@1.1.2": - "integrity" "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" - "version" "1.1.2" - -"sshpk@^1.7.0": - "integrity" "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==" - "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" - "version" "1.17.0" - dependencies: - "asn1" "~0.2.3" - "assert-plus" "^1.0.0" - "bcrypt-pbkdf" "^1.0.0" - "dashdash" "^1.12.0" - "ecc-jsbn" "~0.1.1" - "getpass" "^0.1.1" - "jsbn" "~0.1.0" - "safer-buffer" "^2.0.2" - "tweetnacl" "~0.14.0" - -"stack-utils@^2.0.3": - "integrity" "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==" - "resolved" "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" - "version" "2.0.5" - dependencies: - "escape-string-regexp" "^2.0.0" - -"statuses@>= 1.5.0 < 2", "statuses@~1.5.0": - "integrity" "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - "version" "1.5.0" - -"steno@^0.4.1": - "integrity" "sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs=" - "resolved" "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz" - "version" "0.4.4" - dependencies: - "graceful-fs" "^4.1.3" - -"stoppable@^1.1.0": - "integrity" "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==" - "resolved" "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz" - "version" "1.1.0" - -"stream-to-it@^0.2.2": - "integrity" "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==" - "resolved" "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz" - "version" "0.2.4" - dependencies: - "get-iterator" "^1.0.2" - -"streaming-iterables@^6.0.0": - "integrity" "sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA==" - "resolved" "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz" - "version" "6.2.0" - -"streamsearch@0.1.2": - "integrity" "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - "resolved" "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz" - "version" "0.1.2" - -"string_decoder@^1.1.1": - "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" - "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - "version" "1.3.0" - dependencies: - "safe-buffer" "~5.2.0" - -"string_decoder@~1.1.1": - "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" - "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - "version" "1.1.1" - dependencies: - "safe-buffer" "~5.1.0" - -"string-length@^4.0.1": - "integrity" "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==" - "resolved" "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" - "version" "4.0.2" - dependencies: - "char-regex" "^1.0.2" - "strip-ansi" "^6.0.0" - -"string-width@^1.0.1": - "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "code-point-at" "^1.0.0" - "is-fullwidth-code-point" "^1.0.0" - "strip-ansi" "^3.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4": - "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "is-fullwidth-code-point" "^2.0.0" - "strip-ansi" "^4.0.0" - -"string-width@^4.0.0": - "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - "version" "4.2.3" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.1" - -"string-width@^4.1.0": - "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - "version" "4.2.3" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.1" - -"string-width@^4.2.0": - "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - "version" "4.2.3" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.1" - -"string-width@^4.2.2": - "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - "version" "4.2.3" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.1" - -"string-width@^4.2.3": - "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - "version" "4.2.3" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.1" - -"string.prototype.trimend@^1.0.4": - "integrity" "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==" - "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - -"string.prototype.trimstart@^1.0.4": - "integrity" "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==" - "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - -"strip-ansi@^3.0.0", "strip-ansi@^3.0.1": - "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - "version" "3.0.1" + debug "~4.3.1" + +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== + dependencies: + atomic-sleep "^1.0.0" + flatstr "^1.0.12" + +sort-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz" + integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== dependencies: - "ansi-regex" "^2.0.0" - -"strip-ansi@^4.0.0": - "integrity" "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" - "version" "4.0.0" + is-plain-obj "^2.0.0" + +"source-map-js@>=0.6.2 <2.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@^0.5.6, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +sparse-array@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz" + integrity sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.11" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + +speedometer@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" + integrity sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0= + +split2@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + dependencies: + through2 "^2.0.2" + +split2@^3.1.1: + version "3.2.2" + resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sprintf-js@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stdout-stream@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + dependencies: + readable-stream "^2.0.1" + +steno@^0.4.1: + version "0.4.4" + resolved "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz" + integrity sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs= + dependencies: + graceful-fs "^4.1.3" + +stoppable@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== + +stream-to-it@^0.2.2: + version "0.2.4" + resolved "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz" + integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== + dependencies: + get-iterator "^1.0.2" + +streaming-iterables@^6.0.0: + version "6.2.0" + resolved "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz" + integrity sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA== + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: - "ansi-regex" "^3.0.0" - -"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": - "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "ansi-regex" "^5.0.1" - -"strip-bom@^4.0.0": - "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" - "version" "4.0.0" - -"strip-final-newline@^2.0.0": - "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - "version" "2.0.0" - -"strip-json-comments@^3.1.1": - "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - "version" "3.1.1" + call-bind "^1.0.2" + define-properties "^1.1.3" -"strip-json-comments@~2.0.1": - "integrity" "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - "version" "2.0.1" - -"strtok3@^6.2.4": - "integrity" "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==" - "resolved" "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz" - "version" "6.3.0" +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: - "@tokenizer/token" "^0.3.0" - "peek-readable" "^4.1.0" - -"subscriptions-transport-ws@^0.9.0", "subscriptions-transport-ws@^0.9.19": - "integrity" "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==" - "resolved" "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz" - "version" "0.9.19" - dependencies: - "backo2" "^1.0.2" - "eventemitter3" "^3.1.0" - "iterall" "^1.2.1" - "symbol-observable" "^1.0.4" - "ws" "^5.2.0 || ^6.0.0 || ^7.0.0" - -"supports-color@^4.0.0": - "integrity" "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz" - "version" "4.5.0" - dependencies: - "has-flag" "^2.0.0" - -"supports-color@^5.3.0": - "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - "version" "5.5.0" - dependencies: - "has-flag" "^3.0.0" - -"supports-color@^7.0.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "has-flag" "^4.0.0" - -"supports-color@^7.1.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "has-flag" "^4.0.0" - -"supports-color@^8.0.0": - "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - "version" "8.1.1" - dependencies: - "has-flag" "^4.0.0" - -"supports-hyperlinks@^2.0.0": - "integrity" "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==" - "resolved" "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "has-flag" "^4.0.0" - "supports-color" "^7.0.0" - -"supports-preserve-symlinks-flag@^1.0.0": - "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - "version" "1.0.0" - -"swipl-stdio@^1.0.4": - "integrity" "sha512-/6272/LlR0efkqE7Y8ZhjioHR5Vx0qyHWk5nuS9WaPk51dO21nx/sMkHGnd9zYBUN2RYx+dZqHc9UUm1YRRb5Q==" - "resolved" "https://registry.npmjs.org/swipl-stdio/-/swipl-stdio-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "debug" "^2.6.4" - "split" "^1.0.0" - -"symbol-observable@^1.0.4": - "integrity" "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - "resolved" "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz" - "version" "1.2.0" - -"symbol-observable@^4.0.0": - "integrity" "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" - "resolved" "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz" - "version" "4.0.0" - -"symbol-tree@^3.2.4": - "integrity" "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - "resolved" "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" - "version" "3.2.4" - -"tar@^4.4.2": - "integrity" "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==" - "resolved" "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" - "version" "4.4.19" - dependencies: - "chownr" "^1.1.4" - "fs-minipass" "^1.2.7" - "minipass" "^2.9.0" - "minizlib" "^1.3.3" - "mkdirp" "^0.5.5" - "safe-buffer" "^5.2.1" - "yallist" "^3.1.1" - -"tar@^6.1.11": - "integrity" "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==" - "resolved" "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" - "version" "6.1.11" - dependencies: - "chownr" "^2.0.0" - "fs-minipass" "^2.0.0" - "minipass" "^3.0.0" - "minizlib" "^2.1.1" - "mkdirp" "^1.0.3" - "yallist" "^4.0.0" - -"tdigest@^0.1.1": - "integrity" "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=" - "resolved" "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz" - "version" "0.1.1" - dependencies: - "bintrees" "1.0.1" - -"terminal-link@^2.0.0": - "integrity" "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==" - "resolved" "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "ansi-escapes" "^4.2.1" - "supports-hyperlinks" "^2.0.0" - -"test-exclude@^6.0.0": - "integrity" "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==" - "resolved" "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - "version" "6.0.0" + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: - "@istanbuljs/schema" "^0.1.2" - "glob" "^7.1.4" - "minimatch" "^3.0.4" - -"throat@^6.0.1": - "integrity" "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - "resolved" "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" - "version" "6.0.1" - -"through@2": - "integrity" "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - "resolved" "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - "version" "2.3.8" - -"thunky@^1.0.2": - "integrity" "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - "resolved" "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" - "version" "1.1.0" - -"time-cache@^0.3.0": - "integrity" "sha1-7Q388P2kXNyV+9YB/agw6/G9XYs=" - "resolved" "https://registry.npmjs.org/time-cache/-/time-cache-0.3.0.tgz" - "version" "0.3.0" - dependencies: - "lodash.throttle" "^4.1.1" - -"timeout-abort-controller@^2.0.0": - "integrity" "sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA==" - "resolved" "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "abort-controller" "^3.0.0" - "native-abort-controller" "^1.0.4" - "retimer" "^3.0.0" - -"timestamp-nano@^1.0.0": - "integrity" "sha512-NO/1CZigzlCWQiWdIGv8ebXt6Uk77zdLz2NE7KcZRU5Egj2+947lzUpk30xQUQlq5dRY25j7ZulG4RfA2DHYfA==" - "resolved" "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.0.tgz" - "version" "1.0.0" - -"tiny-each-async@2.0.3": - "integrity" "sha1-jru/1tYpXxNwAD+7NxYq/loKUdE=" - "resolved" "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz" - "version" "2.0.3" - -"tmp@^0.2.1": - "integrity" "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==" - "resolved" "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" - "version" "0.2.1" - dependencies: - "rimraf" "^3.0.0" - -"tmpl@1.0.5": - "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - "version" "1.0.5" - -"to-fast-properties@^2.0.0": - "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - "version" "2.0.0" - -"to-readable-stream@^1.0.0": - "integrity" "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - "resolved" "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" - "version" "1.0.0" - -"to-regex-range@^5.0.1": - "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" - "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "is-number" "^7.0.0" - -"toidentifier@1.0.1": - "integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - "version" "1.0.1" - -"token-types@^4.1.1": - "integrity" "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==" - "resolved" "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz" - "version" "4.1.1" + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: - "@tokenizer/token" "^0.3.0" - "ieee754" "^1.2.1" + safe-buffer "~5.1.0" -"tough-cookie@^4.0.0": - "integrity" "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==" - "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" - "version" "4.0.0" +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: - "psl" "^1.1.33" - "punycode" "^2.1.1" - "universalify" "^0.1.2" + ansi-regex "^2.0.0" -"tough-cookie@~2.5.0": - "integrity" "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==" - "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - "version" "2.5.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: - "psl" "^1.1.28" - "punycode" "^2.1.1" + ansi-regex "^3.0.0" -"tr46@^2.1.0": - "integrity" "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==" - "resolved" "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" - "version" "2.1.0" +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: - "punycode" "^2.1.1" + ansi-regex "^4.1.0" -"tr46@~0.0.3": - "integrity" "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - "version" "0.0.3" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" -"traverse@>=0.3.0 <0.4": - "integrity" "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" - "resolved" "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz" - "version" "0.3.9" - -"truncate-utf8-bytes@^1.0.0": - "integrity" "sha1-QFkjkJWS1W94pYGENLC3hInKXys=" - "resolved" "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "utf8-byte-length" "^1.0.1" - -"ts-invariant@^0.4.0": - "integrity" "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==" - "resolved" "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz" - "version" "0.4.4" - dependencies: - "tslib" "^1.9.3" - -"ts-invariant@^0.7.0": - "integrity" "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==" - "resolved" "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz" - "version" "0.7.5" - dependencies: - "tslib" "^2.1.0" - -"ts-jest@^27.0.3": - "integrity" "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==" - "resolved" "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz" - "version" "27.1.3" - dependencies: - "bs-logger" "0.x" - "fast-json-stable-stringify" "2.x" - "jest-util" "^27.0.0" - "json5" "2.x" - "lodash.memoize" "4.x" - "make-error" "1.x" - "semver" "7.x" - "yargs-parser" "20.x" - -"tslib@^1.10.0": - "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - "version" "1.14.1" - -"tslib@^1.9.3": - "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - "version" "1.14.1" - -"tslib@^2.0.0", "tslib@^2.0.3", "tslib@^2.1.0", "tslib@^2.3.0", "tslib@^2.3.1": - "integrity" "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" - "version" "2.3.1" - -"tslib@^2.0.1": - "integrity" "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" - "version" "2.3.1" - -"tunnel-agent@^0.6.0": - "integrity" "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" - "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - "version" "0.6.0" - dependencies: - "safe-buffer" "^5.0.1" - -"tweetnacl@^0.14.3", "tweetnacl@~0.14.0": - "integrity" "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - "version" "0.14.5" - -"type-check@~0.3.2": - "integrity" "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=" - "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - "version" "0.3.2" - dependencies: - "prelude-ls" "~1.1.2" - -"type-detect@4.0.8": - "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - "version" "4.0.8" - -"type-fest@^0.20.2": - "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - "version" "0.20.2" - -"type-fest@^0.21.3": - "integrity" "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - "version" "0.21.3" - -"type-graphql@^1.1.1": - "integrity" "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==" - "resolved" "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz" - "version" "1.1.1" +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= dependencies: - "@types/glob" "^7.1.3" - "@types/node" "*" - "@types/semver" "^7.3.3" - "glob" "^7.1.6" - "graphql-query-complexity" "^0.7.0" - "graphql-subscriptions" "^1.1.0" - "semver" "^7.3.2" - "tslib" "^2.0.1" - -"type-is@^1.6.16", "type-is@~1.6.18": - "integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" - "resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - "version" "1.6.18" - dependencies: - "media-typer" "0.3.0" - "mime-types" "~2.1.24" - -"typedarray-to-buffer@^3.1.5": - "integrity" "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==" - "resolved" "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - "version" "3.1.5" - dependencies: - "is-typedarray" "^1.0.0" - -"typescript@^4.2.4", "typescript@>=3.8 <5.0": - "integrity" "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" - "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz" - "version" "4.5.5" - -"uint8arrays@^3.0.0": - "integrity" "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==" - "resolved" "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "multiformats" "^9.4.2" - -"unbox-primitive@^1.0.1": - "integrity" "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==" - "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "function-bind" "^1.1.1" - "has-bigints" "^1.0.1" - "has-symbols" "^1.0.2" - "which-boxed-primitive" "^1.0.2" - -"unique-string@^2.0.0": - "integrity" "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==" - "resolved" "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "crypto-random-string" "^2.0.0" - -"universalify@^0.1.2": - "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - "version" "0.1.2" - -"universalify@^2.0.0": - "integrity" "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - "version" "2.0.0" - -"unordered-array-remove@^1.0.2": - "integrity" "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" - "resolved" "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz" - "version" "1.0.2" - -"unpipe@~1.0.0", "unpipe@1.0.0": - "integrity" "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - "version" "1.0.0" - -"unzipper@^0.10.11": - "integrity" "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==" - "resolved" "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz" - "version" "0.10.11" - dependencies: - "big-integer" "^1.6.17" - "binary" "~0.3.0" - "bluebird" "~3.4.1" - "buffer-indexof-polyfill" "~1.0.0" - "duplexer2" "~0.1.4" - "fstream" "^1.0.12" - "graceful-fs" "^4.2.2" - "listenercount" "~1.0.1" - "readable-stream" "~2.3.6" - "setimmediate" "~1.0.4" - -"update-notifier@^5.0.0": - "integrity" "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==" - "resolved" "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz" - "version" "5.1.0" - dependencies: - "boxen" "^5.0.0" - "chalk" "^4.1.0" - "configstore" "^5.0.1" - "has-yarn" "^2.1.0" - "import-lazy" "^2.1.0" - "is-ci" "^2.0.0" - "is-installed-globally" "^0.4.0" - "is-npm" "^5.0.0" - "is-yarn-global" "^0.3.0" - "latest-version" "^5.1.0" - "pupa" "^2.1.1" - "semver" "^7.3.4" - "semver-diff" "^3.1.1" - "xdg-basedir" "^4.0.0" - -"upper-case-first@^2.0.2": - "integrity" "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==" - "resolved" "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "tslib" "^2.0.3" - -"upper-case@^2.0.2": - "integrity" "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==" - "resolved" "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "tslib" "^2.0.3" - -"uri-js@^4.2.2": - "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" - "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - "version" "4.4.1" - dependencies: - "punycode" "^2.1.0" - -"uri-to-multiaddr@^6.0.0": - "integrity" "sha512-vGHLrfvWQwoMv1YiHWU5ZOK2M/TV0qheXIanuW6jAL6VFD1vMK7xqL/zOxc32tKhlJgSt6vTJI4yALS+vFZKEA==" - "resolved" "https://registry.npmjs.org/uri-to-multiaddr/-/uri-to-multiaddr-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "is-ip" "^3.1.0" - "multiaddr" "^10.0.0" - -"url-parse-lax@^3.0.0": - "integrity" "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=" - "resolved" "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "prepend-http" "^2.0.0" - -"utf8-byte-length@^1.0.1": - "integrity" "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" - "resolved" "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" - "version" "1.0.4" - -"util-deprecate@^1.0.1", "util-deprecate@~1.0.1": - "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - "version" "1.0.2" - -"util.promisify@^1.0.0": - "integrity" "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==" - "resolved" "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz" - "version" "1.1.1" - dependencies: - "call-bind" "^1.0.0" - "define-properties" "^1.1.3" - "for-each" "^0.3.3" - "has-symbols" "^1.0.1" - "object.getownpropertydescriptors" "^2.1.1" - -"utils-merge@1.0.1": - "integrity" "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - "version" "1.0.1" - -"uuid@^3.1.0": - "integrity" "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - "resolved" "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - "version" "3.4.0" - -"uuid@^3.3.2": - "integrity" "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - "resolved" "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - "version" "3.4.0" - -"uuid@^8.0.0": - "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - "version" "8.3.2" - -"v8-to-istanbul@^8.1.0": - "integrity" "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==" - "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz" - "version" "8.1.1" + is-hex-prefixed "1.0.0" + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - "convert-source-map" "^1.6.0" - "source-map" "^0.7.3" + min-indent "^1.0.0" -"validator@^13.7.0": - "integrity" "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" - "resolved" "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz" - "version" "13.7.0" +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -"varint-decoder@^1.0.0": - "integrity" "sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ==" - "resolved" "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "varint" "^5.0.0" +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -"varint@^5.0.0": - "integrity" "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - "resolved" "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz" - "version" "5.0.2" +strtok3@^6.2.4: + version "6.3.0" + resolved "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.1.0" + +style-inject@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" + integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +subscriptions-transport-ws@^0.9.19: + version "0.9.19" + resolved "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz" + integrity sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw== + dependencies: + backo2 "^1.0.2" + eventemitter3 "^3.1.0" + iterall "^1.2.1" + symbol-observable "^1.0.4" + ws "^5.2.0 || ^6.0.0 || ^7.0.0" + +sumchecker@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d" + integrity sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0= + dependencies: + debug "^2.2.0" + es6-promise "^4.0.5" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^4.0.0: + version "4.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz" + integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= + dependencies: + has-flag "^2.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svelte@^3.0.0, svelte@^3.35.0: + version "3.46.4" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.46.4.tgz#0c46bc4a3e20a2617a1b7dc43a722f9d6c084a38" + integrity sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg== + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +swarm-js@^0.1.40: + version "0.1.40" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" + integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + eth-lib "^0.1.26" + fs-extra "^4.0.2" + got "^7.1.0" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar "^4.0.2" + xhr-request "^1.0.1" + +swipl-stdio@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/swipl-stdio/-/swipl-stdio-1.0.4.tgz" + integrity sha512-/6272/LlR0efkqE7Y8ZhjioHR5Vx0qyHWk5nuS9WaPk51dO21nx/sMkHGnd9zYBUN2RYx+dZqHc9UUm1YRRb5Q== + dependencies: + debug "^2.6.4" + split "^1.0.0" + +symbol-observable@^1.0.4: + version "1.2.0" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table-layout@^0.4.2: + version "0.4.5" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-0.4.5.tgz#d906de6a25fa09c0c90d1d08ecd833ecedcb7378" + integrity sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw== + dependencies: + array-back "^2.0.0" + deep-extend "~0.6.0" + lodash.padend "^4.6.1" + typical "^2.6.1" + wordwrapjs "^3.0.0" + +tar@^4, tar@^4.0.2, tar@^4.4.2: + version "4.4.19" + resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + +tar@^6.0.2, tar@^6.1.11: + version "6.1.11" + resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tdigest@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz" + integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE= + dependencies: + bintrees "1.0.1" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser@^5.0.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a" + integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== + dependencies: + acorn "^8.5.0" + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +test-value@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" + integrity sha1-Edpv9nDzRxpztiXKTz/c97t0gpE= + dependencies: + array-back "^1.0.3" + typical "^2.6.0" + +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== + +throttleit@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" + integrity sha1-z+34jmDADdlpe2H90qg0OptoDq8= + +through2@^2.0.2, through2@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" + integrity sha1-6zKE2k6jEbbMis42U3SKUqvyWj8= + dependencies: + readable-stream "~1.1.9" + xtend "~2.1.1" + +through@2, through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +time-cache@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/time-cache/-/time-cache-0.3.0.tgz" + integrity sha1-7Q388P2kXNyV+9YB/agw6/G9XYs= + dependencies: + lodash.throttle "^4.1.1" + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timeout-abort-controller@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz" + integrity sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA== + dependencies: + abort-controller "^3.0.0" + native-abort-controller "^1.0.4" + retimer "^3.0.0" + +timestamp-nano@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.0.tgz" + integrity sha512-NO/1CZigzlCWQiWdIGv8ebXt6Uk77zdLz2NE7KcZRU5Egj2+947lzUpk30xQUQlq5dRY25j7ZulG4RfA2DHYfA== + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-each-async@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz" + integrity sha1-jru/1tYpXxNwAD+7NxYq/loKUdE= + +tinydate@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tinydate/-/tinydate-1.3.0.tgz#e6ca8e5a22b51bb4ea1c3a2a4fd1352dbd4c57fb" + integrity sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +token-types@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz" + integrity sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" -"varint@^6.0.0": - "integrity" "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - "resolved" "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz" - "version" "6.0.0" +toml@^2.3.0: + version "2.3.6" + resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" + integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== -"vary@^1", "vary@~1.1.2": - "integrity" "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - "version" "1.1.2" +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== -"verror@1.10.0": - "integrity" "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=" - "resolved" "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - "version" "1.10.0" +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== dependencies: - "assert-plus" "^1.0.0" - "core-util-is" "1.0.2" - "extsprintf" "^1.2.0" + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" -"w3c-hr-time@^1.0.2": - "integrity" "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==" - "resolved" "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" - "version" "1.0.2" +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: - "browser-process-hrtime" "^1.0.0" + psl "^1.1.28" + punycode "^2.1.1" -"w3c-xmlserializer@^2.0.0": - "integrity" "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==" - "resolved" "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" - "version" "2.0.0" +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== dependencies: - "xml-name-validator" "^3.0.0" + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -"walker@^1.0.7": - "integrity" "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==" - "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - "version" "1.0.8" +"traverse@>=0.3.0 <0.4": + version "0.3.9" + resolved "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz" + integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +"true-case-path@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== + dependencies: + glob "^7.1.2" + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" + integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= + dependencies: + utf8-byte-length "^1.0.1" + +ts-invariant@^0.4.0: + version "0.4.4" + resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz" + integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== + dependencies: + tslib "^1.9.3" + +ts-invariant@^0.7.0: + version "0.7.5" + resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz" + integrity sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg== + dependencies: + tslib "^2.1.0" + +ts-jest@^27.0.3: + version "27.1.3" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz" + integrity sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^27.0.0" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-typed-json@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/ts-typed-json/-/ts-typed-json-0.2.2.tgz#53184bee893e45991b73c8c463a38b59e27cd47e" + integrity sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4= + dependencies: + rsvp "^3.5.0" + +tslib@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + +tslib@^1.10.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-graphql@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz" + integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== dependencies: - "makeerror" "1.0.12" + "@types/glob" "^7.1.3" + "@types/node" "^14.11.2" + "@types/semver" "^7.3.3" + glob "^7.1.6" + graphql-query-complexity "^0.7.0" + graphql-subscriptions "^1.1.0" + semver "^7.3.2" + tslib "^2.0.1" + +type-is@^1.6.16, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" + integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^4.2.4: + version "4.5.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== + +typical@^2.6.0, typical@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" + integrity sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0= + +uglify-js@^3.1.4: + version "3.15.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.2.tgz#1ed2c976f448063b1f87adb68c741be79959f951" + integrity sha512-peeoTk3hSwYdoc9nrdiEJk+gx1ALCtTjdYuKSXMTDqq7n1W7dHPqWDdSi+BPL0ni2YMeHD7hKUSdbj3TZauY2A== + +uint8arrays@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz" + integrity sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA== + dependencies: + multiformats "^9.4.2" + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^0.1.0, universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unordered-array-remove@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz" + integrity sha1-xUbo+I4xegzyZEyX7LV9umbSUO8= + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unzipper@^0.10.11: + version "0.10.11" + resolved "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz" + integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== + dependencies: + big-integer "^1.6.17" + binary "~0.3.0" + bluebird "~3.4.1" + buffer-indexof-polyfill "~1.0.0" + duplexer2 "~0.1.4" + fstream "^1.0.12" + graceful-fs "^4.2.2" + listenercount "~1.0.1" + readable-stream "~2.3.6" + setimmediate "~1.0.4" + +update-notifier@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +uri-to-multiaddr@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/uri-to-multiaddr/-/uri-to-multiaddr-6.0.0.tgz" + integrity sha512-vGHLrfvWQwoMv1YiHWU5ZOK2M/TV0qheXIanuW6jAL6VFD1vMK7xqL/zOxc32tKhlJgSt6vTJI4yALS+vFZKEA== + dependencies: + is-ip "^3.1.0" + multiaddr "^10.0.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + +utf-8-validate@^5.0.2: + version "5.0.8" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.8.tgz#4a735a61661dbb1c59a0868c397d2fe263f14e58" + integrity sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA== + dependencies: + node-gyp-build "^4.3.0" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" + integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= + +utf8@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz" + integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + for-each "^0.3.3" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.1" + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@^0.12.0: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@^3.1.0, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.0.0: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" -"web-streams-polyfill@^3.0.0": - "integrity" "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" - "resolved" "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz" - "version" "3.2.0" +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +validator@^13.7.0: + version "13.7.0" + resolved "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz" + integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + +varint-decoder@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz" + integrity sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ== + dependencies: + varint "^5.0.0" + +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +varint@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz" + integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7: + version "1.0.8" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +web-streams-polyfill@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz" + integrity sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA== + +web3-bzz@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.1.tgz#ea1e7d27050eca089bc5d71b7f7688d20b68a25d" + integrity sha512-sVeUSINx4a4pfdnT+3ahdRdpDPvZDf4ZT/eBF5XtqGWq1mhGTl8XaQAk15zafKVm6Onq28vN8abgB/l+TrG8kA== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + +web3-core-helpers@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.1.tgz#6dc34eff6ad31149db6c7cc2babbf574a09970cd" + integrity sha512-xn7Sx+s4CyukOJdlW8bBBDnUCWndr+OCJAlUe/dN2wXiyaGRiCWRhuQZrFjbxLeBt1fYFH7uWyYHhYU6muOHgw== + dependencies: + web3-eth-iban "1.7.1" + web3-utils "1.7.1" + +web3-core-method@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.1.tgz#912c87d0f107d3f823932cf8a716852e3250e557" + integrity sha512-383wu5FMcEphBFl5jCjk502JnEg3ugHj7MQrsX7DY76pg5N5/dEzxeEMIJFCN6kr5Iq32NINOG3VuJIyjxpsEg== + dependencies: + "@ethersproject/transactions" "^5.0.0-beta.135" + web3-core-helpers "1.7.1" + web3-core-promievent "1.7.1" + web3-core-subscriptions "1.7.1" + web3-utils "1.7.1" + +web3-core-promievent@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.1.tgz#7f78ec100a696954d0c882dac619fec28b2efc96" + integrity sha512-Vd+CVnpPejrnevIdxhCkzMEywqgVbhHk/AmXXceYpmwA6sX41c5a65TqXv1i3FWRJAz/dW7oKz9NAzRIBAO/kA== + dependencies: + eventemitter3 "4.0.4" + +web3-core-requestmanager@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.1.tgz#5cd7507276ca449538fe11cb4f363de8507502e5" + integrity sha512-/EHVTiMShpZKiq0Jka0Vgguxi3vxq1DAHKxg42miqHdUsz4/cDWay2wGALDR2x3ofDB9kqp7pb66HsvQImQeag== + dependencies: + util "^0.12.0" + web3-core-helpers "1.7.1" + web3-providers-http "1.7.1" + web3-providers-ipc "1.7.1" + web3-providers-ws "1.7.1" + +web3-core-subscriptions@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.1.tgz#f7c834ee3544f4a5641a989304f61fde6a523e0b" + integrity sha512-NZBsvSe4J+Wt16xCf4KEtBbxA9TOwSVr8KWfUQ0tC2KMdDYdzNswl0Q9P58xaVuNlJ3/BH+uDFZJJ5E61BSA1Q== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.7.1" + +web3-core@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.1.tgz#ef9b7f03909387b9ab783f34cdc5ebcb50248368" + integrity sha512-HOyDPj+4cNyeNPwgSeUkhtS0F+Pxc2obcm4oRYPW5ku6jnTO34pjaij0us+zoY3QEusR8FfAKVK1kFPZnS7Dzw== + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.7.1" + web3-core-method "1.7.1" + web3-core-requestmanager "1.7.1" + web3-utils "1.7.1" + +web3-eth-abi@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.1.tgz#6632003220a4defee4de8215dc703e43147382ea" + integrity sha512-8BVBOoFX1oheXk+t+uERBibDaVZ5dxdcefpbFTWcBs7cdm0tP8CD1ZTCLi5Xo+1bolVHNH2dMSf/nEAssq5pUA== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.7.1" + +web3-eth-accounts@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.1.tgz#f938060d08f4b641bebe743809b0018fd4e4ba51" + integrity sha512-3xGQ2bkTQc7LFoqGWxp5cQDrKndlX05s7m0rAFVoyZZODMqrdSGjMPMqmWqHzJRUswNEMc+oelqSnGBubqhguQ== + dependencies: + "@ethereumjs/common" "^2.5.0" + "@ethereumjs/tx" "^3.3.2" + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-util "^7.0.10" + scrypt-js "^3.0.1" + uuid "3.3.2" + web3-core "1.7.1" + web3-core-helpers "1.7.1" + web3-core-method "1.7.1" + web3-utils "1.7.1" + +web3-eth-contract@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.1.tgz#3f5147e5f1441ae388c985ba95023d02503378ae" + integrity sha512-HpnbkPYkVK3lOyos2SaUjCleKfbF0SP3yjw7l551rAAi5sIz/vwlEzdPWd0IHL7ouxXbO0tDn7jzWBRcD3sTbA== + dependencies: + "@types/bn.js" "^4.11.5" + web3-core "1.7.1" + web3-core-helpers "1.7.1" + web3-core-method "1.7.1" + web3-core-promievent "1.7.1" + web3-core-subscriptions "1.7.1" + web3-eth-abi "1.7.1" + web3-utils "1.7.1" + +web3-eth-ens@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.1.tgz#18ddb22e14e50108f9515c9d17f14560d69ff397" + integrity sha512-DVCF76i9wM93DrPQwLrYiCw/UzxFuofBsuxTVugrnbm0SzucajLLNftp3ITK0c4/lV3x9oo5ER/wD6RRMHQnvw== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.7.1" + web3-core-helpers "1.7.1" + web3-core-promievent "1.7.1" + web3-eth-abi "1.7.1" + web3-eth-contract "1.7.1" + web3-utils "1.7.1" + +web3-eth-iban@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.1.tgz#2148dff256392491df36b175e393b03c6874cd31" + integrity sha512-XG4I3QXuKB/udRwZdNEhdYdGKjkhfb/uH477oFVMLBqNimU/Cw8yXUI5qwFKvBHM+hMQWfzPDuSDEDKC2uuiMg== + dependencies: + bn.js "^4.11.9" + web3-utils "1.7.1" + +web3-eth-personal@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.1.tgz#38635f94223f951422105e5fcb7f7ba767a3ee9f" + integrity sha512-02H6nFBNfNmFjMGZL6xcDi0r7tUhxrUP91FTFdoLyR94eIJDadPp4rpXfG7MVES873i1PReh4ep5pSCHbc3+Pg== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.7.1" + web3-core-helpers "1.7.1" + web3-core-method "1.7.1" + web3-net "1.7.1" + web3-utils "1.7.1" + +web3-eth@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.1.tgz#721599865f675b43877f5a18babfb7ae087449f7" + integrity sha512-Uz3gO4CjTJ+hMyJZAd2eiv2Ur1uurpN7sTMATWKXYR/SgG+SZgncnk/9d8t23hyu4lyi2GiVL1AqVqptpRElxg== + dependencies: + web3-core "1.7.1" + web3-core-helpers "1.7.1" + web3-core-method "1.7.1" + web3-core-subscriptions "1.7.1" + web3-eth-abi "1.7.1" + web3-eth-accounts "1.7.1" + web3-eth-contract "1.7.1" + web3-eth-ens "1.7.1" + web3-eth-iban "1.7.1" + web3-eth-personal "1.7.1" + web3-net "1.7.1" + web3-utils "1.7.1" + +web3-net@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.1.tgz#c75ff7ccabb949cf15e9098505516eb1ed8e37de" + integrity sha512-8yPNp2gvjInWnU7DCoj4pIPNhxzUjrxKlODsyyXF8j0q3Z2VZuQp+c63gL++r2Prg4fS8t141/HcJw4aMu5sVA== + dependencies: + web3-core "1.7.1" + web3-core-method "1.7.1" + web3-utils "1.7.1" + +web3-providers-http@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.1.tgz#3e00e013f013766aade28da29247daa1a937e759" + integrity sha512-dmiO6G4dgAa3yv+2VD5TduKNckgfR97VI9YKXVleWdcpBoKXe2jofhdvtafd42fpIoaKiYsErxQNcOC5gI/7Vg== + dependencies: + web3-core-helpers "1.7.1" + xhr2-cookies "1.1.0" + +web3-providers-ipc@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.1.tgz#cde879a2ba57b1deac2e1030de90d185b793dd50" + integrity sha512-uNgLIFynwnd5M9ZC0lBvRQU5iLtU75hgaPpc7ZYYR+kjSk2jr2BkEAQhFVJ8dlqisrVmmqoAPXOEU0flYZZgNQ== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.7.1" + +web3-providers-ws@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.1.tgz#b6b3919ce155eff29b21bc3f205a098299a8c1b2" + integrity sha512-Uj0n5hdrh0ESkMnTQBsEUS2u6Unqdc7Pe4Zl+iZFb7Yn9cIGsPJBl7/YOP4137EtD5ueXAv+MKwzcelpVhFiFg== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.7.1" + websocket "^1.0.32" + +web3-shh@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.1.tgz#c6a0fc67321dd585085e3e3be8f2c1c8d61636ef" + integrity sha512-NO+jpEjo8kYX6c7GiaAm57Sx93PLYkWYUCWlZmUOW7URdUcux8VVluvTWklGPvdM9H1WfDrol91DjuSW+ykyqg== + dependencies: + web3-core "1.7.1" + web3-core-method "1.7.1" + web3-core-subscriptions "1.7.1" + web3-net "1.7.1" + +web3-utils@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.1.tgz#77d8bacaf426c66027d8aa4864d77f0ed211aacd" + integrity sha512-fef0EsqMGJUgiHPdX+KN9okVWshbIumyJPmR+btnD1HgvoXijKEkuKBv0OmUqjbeqmLKP2/N9EiXKJel5+E1Dw== + dependencies: + bn.js "^4.11.9" + ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + +web3@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.1.tgz#4d01371a2c0c07dba089f8009dabd2b11821c5e8" + integrity sha512-RKVdyZ5FuVEykj62C1o2tc0teJciSOh61jpVB9yb344dBHO3ZV4XPPP24s/PPqIMXmVFN00g2GD9M/v1SoHO/A== + dependencies: + web3-bzz "1.7.1" + web3-core "1.7.1" + web3-eth "1.7.1" + web3-eth-personal "1.7.1" + web3-net "1.7.1" + web3-shh "1.7.1" + web3-utils "1.7.1" + +webcrypto-core@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.4.0.tgz" + integrity sha512-HY3Zo0GcRIQUUDnlZ/shGjN+4f7LVMkdJZoGPog+oHhJsJdMz6iM8Za5xZ0t6qg7Fx/JXXz+oBv2J2p982hGTQ== + dependencies: + "@peculiar/asn1-schema" "^2.0.44" + "@peculiar/json-schema" "^1.1.12" + asn1js "^2.1.1" + pvtsutils "^1.2.0" + tslib "^2.3.1" -"webcrypto-core@^1.4.0": - "integrity" "sha512-HY3Zo0GcRIQUUDnlZ/shGjN+4f7LVMkdJZoGPog+oHhJsJdMz6iM8Za5xZ0t6qg7Fx/JXXz+oBv2J2p982hGTQ==" - "resolved" "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.4.0.tgz" - "version" "1.4.0" +webcrypto-core@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.0.tgz#7c1a7e65253d874e081c6d5fbcc48f59bd840137" + integrity sha512-7d2yeX62KSjpy8wM6/aJsuKDQjYRlTobxFxh/UM9VPS5usePpsjy5j2Y9Mv0k7dSuUxMo0BaIVmnRRcindi2sA== dependencies: "@peculiar/asn1-schema" "^2.0.44" "@peculiar/json-schema" "^1.1.12" - "asn1js" "^2.1.1" - "pvtsutils" "^1.2.0" - "tslib" "^2.3.1" - -"webidl-conversions@^3.0.0": - "integrity" "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - "version" "3.0.1" - -"webidl-conversions@^4.0.2": - "integrity" "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" - "version" "4.0.2" - -"webidl-conversions@^5.0.0": - "integrity" "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" - "version" "5.0.0" - -"webidl-conversions@^6.1.0": - "integrity" "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" - "version" "6.1.0" - -"whatwg-encoding@^1.0.5": - "integrity" "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==" - "resolved" "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "iconv-lite" "0.4.24" - -"whatwg-mimetype@^2.3.0": - "integrity" "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - "resolved" "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" - "version" "2.3.0" - -"whatwg-url@^5.0.0": - "integrity" "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=" - "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "tr46" "~0.0.3" - "webidl-conversions" "^3.0.0" - -"whatwg-url@^8.0.0": - "integrity" "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==" - "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" - "version" "8.7.0" - dependencies: - "lodash" "^4.7.0" - "tr46" "^2.1.0" - "webidl-conversions" "^6.1.0" - -"whatwg-url@^8.5.0": - "integrity" "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==" - "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" - "version" "8.7.0" - dependencies: - "lodash" "^4.7.0" - "tr46" "^2.1.0" - "webidl-conversions" "^6.1.0" - -"wherearewe@^1.0.0": - "integrity" "sha512-oQnRsAfMCqNAC7U4JrBdmFXAhBRLOkPGOfU5+nw9fs2D3g8O6EV7hn7BhpXtt0yno4pxFiRD55rMyt0fsLMqlw==" - "resolved" "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "is-electron" "^2.2.0" - -"which-boxed-primitive@^1.0.2": - "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" - "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "is-bigint" "^1.0.1" - "is-boolean-object" "^1.1.0" - "is-number-object" "^1.0.4" - "is-string" "^1.0.5" - "is-symbol" "^1.0.3" - -"which@^2.0.1": - "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" - "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "isexe" "^2.0.0" - -"wide-align@^1.1.0", "wide-align@^1.1.2": - "integrity" "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==" - "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" - "version" "1.1.5" - dependencies: - "string-width" "^1.0.2 || 2 || 3 || 4" - -"widest-line@^3.1.0": - "integrity" "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==" - "resolved" "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "string-width" "^4.0.0" - -"word-wrap@~1.2.3": - "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - "version" "1.2.3" - -"wrap-ansi@^7.0.0": - "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" - "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - "version" "7.0.0" - dependencies: - "ansi-styles" "^4.0.0" - "string-width" "^4.1.0" - "strip-ansi" "^6.0.0" - -"wrappy@1": - "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - "version" "1.0.2" - -"write-file-atomic@^3.0.0": - "integrity" "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==" - "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - "version" "3.0.3" - dependencies: - "imurmurhash" "^0.1.4" - "is-typedarray" "^1.0.0" - "signal-exit" "^3.0.2" - "typedarray-to-buffer" "^3.1.5" - -"ws@*", "ws@^5.2.0 || ^6.0.0 || ^7.0.0", "ws@^7.3.1", "ws@^7.4.6": - "integrity" "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==" - "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz" - "version" "7.5.6" - -"ws@~8.2.3": - "integrity" "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==" - "resolved" "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz" - "version" "8.2.3" - -"xdg-basedir@^4.0.0": - "integrity" "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - "resolved" "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" - "version" "4.0.0" - -"xml-name-validator@^3.0.0": - "integrity" "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - "resolved" "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" - "version" "3.0.0" - -"xml2js@^0.1.0": - "integrity" "sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw=" - "resolved" "https://registry.npmjs.org/xml2js/-/xml2js-0.1.14.tgz" - "version" "0.1.14" - dependencies: - "sax" ">=0.1.1" - -"xmlchars@^2.2.0": - "integrity" "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - "resolved" "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" - "version" "2.2.0" - -"xmlhttprequest-ssl@~2.0.0": - "integrity" "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" - "resolved" "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz" - "version" "2.0.0" - -"xsalsa20@^1.1.0": - "integrity" "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" - "resolved" "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz" - "version" "1.2.0" - -"xss@^1.0.8": - "integrity" "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==" - "resolved" "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz" - "version" "1.0.10" - dependencies: - "commander" "^2.20.3" - "cssfilter" "0.0.10" - -"y18n@^5.0.5": - "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - "version" "5.0.8" - -"yallist@^3.0.0", "yallist@^3.1.1": - "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - "version" "3.1.1" - -"yallist@^4.0.0": - "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - "version" "4.0.0" - -"yargs-parser@^20.2.2", "yargs-parser@20.x": - "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - "version" "20.2.9" - -"yargs@^16.0.3", "yargs@^16.2.0": - "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" - "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - "version" "16.2.0" - dependencies: - "cliui" "^7.0.2" - "escalade" "^3.1.1" - "get-caller-file" "^2.0.5" - "require-directory" "^2.1.1" - "string-width" "^4.2.0" - "y18n" "^5.0.5" - "yargs-parser" "^20.2.2" - -"yeast@0.1.2": - "integrity" "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - "resolved" "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" - "version" "0.1.2" - -"zen-observable-ts@^0.8.21": - "integrity" "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==" - "resolved" "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz" - "version" "0.8.21" - dependencies: - "tslib" "^1.9.3" - "zen-observable" "^0.8.0" - -"zen-observable@^0.8.0", "zen-observable@^0.8.14": - "integrity" "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - "resolved" "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz" - "version" "0.8.15" + "@typescript/lib-dom" "npm:@types/web" + asn1js "^2.2.0" + pvtsutils "^1.2.2" + tslib "^2.3.1" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +websocket@^1.0.32: + version "1.0.34" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +wherearewe@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.0.tgz" + integrity sha512-oQnRsAfMCqNAC7U4JrBdmFXAhBRLOkPGOfU5+nw9fs2D3g8O6EV7hn7BhpXtt0yno4pxFiRD55rMyt0fsLMqlw== + dependencies: + is-electron "^2.2.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-typed-array@^1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" + integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.7" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0, wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wordwrapjs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-3.0.0.tgz#c94c372894cadc6feb1a66bff64e1d9af92c5d1e" + integrity sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw== + dependencies: + reduce-flatten "^1.0.1" + typical "^2.6.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +wrtc@^0.4.6: + version "0.4.7" + resolved "https://registry.yarnpkg.com/wrtc/-/wrtc-0.4.7.tgz#c61530cd662713e50bffe64b7a78673ce070426c" + integrity sha512-P6Hn7VT4lfSH49HxLHcHhDq+aFf/jd9dPY7lDHeFhZ22N3858EKuwm2jmnlPzpsRGEPaoF6XwkcxY5SYnt4f/g== + dependencies: + node-pre-gyp "^0.13.0" + optionalDependencies: + domexception "^1.0.1" + +ws@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1, ws@^7.4.6: + version "7.5.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz" + integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== + +ws@^7.4.3: + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + +ws@~8.2.3: + version "8.2.3" + resolved "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xhr-request-promise@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== + dependencies: + xhr-request "^1.1.0" + +xhr-request@^1.0.1, xhr-request@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr2-cookies@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" + integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= + dependencies: + cookiejar "^2.1.1" + +xhr@^2.0.4, xhr@^2.3.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml2js@^0.1.0: + version "0.1.14" + resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.1.14.tgz" + integrity sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw= + dependencies: + sax ">=0.1.1" + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + +xsalsa20@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz" + integrity sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w== + +xss@^1.0.8: + version "1.0.10" + resolved "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz" + integrity sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= + dependencies: + object-keys "~0.4.0" + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^16.0.3, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +zen-observable-ts@^0.8.21: + version "0.8.21" + resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz" + integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== + dependencies: + tslib "^1.9.3" + zen-observable "^0.8.0" + +zen-observable@^0.8.0, zen-observable@^0.8.14: + version "0.8.15" + resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== From 95b77dbc580bf789b4db85ccfde88d842600fdfa Mon Sep 17 00:00:00 2001 From: jdeepee Date: Wed, 9 Mar 2022 16:42:04 +0000 Subject: [PATCH 041/722] bump ad4m version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 96f3f2ab4..fa90f7f88 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "dependencies": { "fs-extra": "^10.0.0", "@holochain/client": "0.3.2", - "@perspect3vism/ad4m": "0.1.25", + "@perspect3vism/ad4m": "0.1.26", "@transmute/did-key-ed25519": "^0.2.1-unstable.29", "@transmute/did-key-secp256k1": "^0.2.1-unstable.29", "@transmute/did-key.js": "^0.2.1-unstable.29", From f0be4127bbb3a269cb72168eb593bdf820ad8737 Mon Sep 17 00:00:00 2001 From: jdeepee Date: Fri, 11 Mar 2022 11:42:41 +0000 Subject: [PATCH 042/722] use ws as graphql client connection method --- src/tests/integration.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/integration.test.ts b/src/tests/integration.test.ts index f1a5da8e6..cdbaccb18 100644 --- a/src/tests/integration.test.ts +++ b/src/tests/integration.test.ts @@ -36,7 +36,7 @@ let core: PerspectivismCore | null = null function apolloClient(port: number): ApolloClient { return new ApolloClient({ link: new WebSocketLink({ - uri: `http://localhost:${port}/graphql`, + uri: `ws://localhost:${port}/graphql`, options: { reconnect: true }, webSocketImpl: ws, }), From 8384437aae0ece9ee529d5f44a4e4f6cc437602b Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Mon, 7 Mar 2022 14:50:12 +0100 Subject: [PATCH 043/722] Revert "Merge pull request #58 from perspect3vism/holochain-127" This reverts commit d5bcd62de69ff603a4a72f157ae0d3fae4519e83. --- default.nix | 2 +- scripts/get-builtin-test-langs.js | 8 ++++---- src/core/RuntimeService.ts | 2 +- src/tests/language.ts | 8 ++++---- src/tests/runtime.ts | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/default.nix b/default.nix index 051f572e9..f2ab76ce0 100644 --- a/default.nix +++ b/default.nix @@ -1,5 +1,5 @@ { - holonixPath ? builtins.fetchTarball { url = "https://github.com/holochain/holonix/archive/52158409f9b76b442e592e8f06632b0e57a6c365.tar.gz"; } + holonixPath ? builtins.fetchTarball { url = "https://github.com/holochain/holonix/archive/2f7b8047d6314f64fca34394a52d465c18b2f4d5.tar.gz"; } }: let diff --git a/scripts/get-builtin-test-langs.js b/scripts/get-builtin-test-langs.js index 5fb701d63..2136d90db 100644 --- a/scripts/get-builtin-test-langs.js +++ b/scripts/get-builtin-test-langs.js @@ -6,9 +6,9 @@ const path = require("path"); const languages = { "agent-expression-store": { targetDnaName: "agent-store", - dna: "https://github.com/perspect3vism/agent-language/releases/download/0.0.10/agent-store.dna", + dna: "https://github.com/perspect3vism/agent-language/releases/download/0.0.9/agent-store.dna", bundle: - "https://github.com/perspect3vism/agent-language/releases/download/0.0.10/bundle.js", + "https://github.com/perspect3vism/agent-language/releases/download/0.0.9/bundle.js", }, languages: { targetDnaName: "languages", @@ -23,13 +23,13 @@ const languages = { zipped: true, targetDnaName: "social-context", resource: - "https://github.com/juntofoundation/Social-Context/releases/download/0.0.22/full_features.zip", + "https://github.com/juntofoundation/Social-Context/releases/download/0.0.21/full_features.zip", }, "note-ipfs": { bundle: "https://github.com/perspect3vism/lang-note-ipfs/releases/download/0.0.4/bundle.js", }, "direct-message-language": { - bundle: "https://github.com/perspect3vism/direct-message-language/releases/download/0.0.4/bundle.js" + bundle: "https://github.com/perspect3vism/direct-message-language/releases/download/0.0.3/bundle.js" } }; diff --git a/src/core/RuntimeService.ts b/src/core/RuntimeService.ts index 64d9822ae..86e26a674 100644 --- a/src/core/RuntimeService.ts +++ b/src/core/RuntimeService.ts @@ -8,7 +8,7 @@ const FRIENDS_FILE = "friends.json" const OUTBOX_FILE = "outbox.json" const PERSPECT3VISM_AGENT = "did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n" -const SOCIAL_CONTEXT_OFFICIAL = "QmUvSpKxCnychotba2pVCufCNFSmr5Tj8e9qqdZkpuuxWt" +const SOCIAL_CONTEXT_OFFICIAL = "QmfDoeJgiG5Hs4DJcwPqDWbwU2Ks8zLSJjv7bR8is84Qt5" function _add(items: string[], file: string): void { let all: string[]; diff --git a/src/tests/language.ts b/src/tests/language.ts index f5e4f3dc3..7600e42bc 100644 --- a/src/tests/language.ts +++ b/src/tests/language.ts @@ -22,7 +22,7 @@ export default function languageTests(testContext: TestContext) { ) expect(sourceLanguage.name).toBe("Newly published social-context"); //TODO/NOTE: this will break if the social-context language version is changed - expect(sourceLanguage.address).toBe("QmUvSpKxCnychotba2pVCufCNFSmr5Tj8e9qqdZkpuuxWt"); + expect(sourceLanguage.address).toBe("QmfDoeJgiG5Hs4DJcwPqDWbwU2Ks8zLSJjv7bR8is84Qt5"); }) it('Alice can get the source of her own templated language', async () => { @@ -51,7 +51,7 @@ export default function languageTests(testContext: TestContext) { const sourceLanguageMetaData = JSON.parse(sourceLanguageMeta.data); expect(sourceLanguageMetaData.name).toBe("Newly published social-context") expect(sourceLanguageMetaData.description).toBe("..here for you template") - expect(sourceLanguageMetaData.address).toBe("QmUvSpKxCnychotba2pVCufCNFSmr5Tj8e9qqdZkpuuxWt") + expect(sourceLanguageMetaData.address).toBe("QmfDoeJgiG5Hs4DJcwPqDWbwU2Ks8zLSJjv7bR8is84Qt5") }) it('can publish and template a non-Holochain language and provide correct meta data', async() => { @@ -108,7 +108,7 @@ export default function languageTests(testContext: TestContext) { //Apply template on above holochain language applyTemplateFromSource = await bobAd4mClient.languages.applyTemplateAndPublish(sourceLanguage.address, JSON.stringify({uid: "2eebb82b-9db1-401b-ba04-1e8eb78ac84c", name: "Bob's templated social-context"})) expect(applyTemplateFromSource.name).toBe("Bob's templated social-context"); - expect(applyTemplateFromSource.address).toBe("QmWGSeNRZqNfpmrbuWUvRHZ4yp2BWLg4jkaG4Pc8TvLWdP"); + expect(applyTemplateFromSource.address).toBe("QmUosE5MEVAfV48TFwfrXNoRRy4GNeB2eopfBFBGqrmB3f"); //Get language meta for above language and make sure it is correct const langExpr = await bobAd4mClient.expression.get(`lang://${applyTemplateFromSource.address}`); @@ -121,7 +121,7 @@ export default function languageTests(testContext: TestContext) { "name": "Bob's templated social-context", "uid":"2eebb82b-9db1-401b-ba04-1e8eb78ac84c" })) - expect(meta.address).toBe("QmWGSeNRZqNfpmrbuWUvRHZ4yp2BWLg4jkaG4Pc8TvLWdP") + expect(meta.address).toBe("QmUosE5MEVAfV48TFwfrXNoRRy4GNeB2eopfBFBGqrmB3f") expect(meta.templateSourceLanguageAddress).toBe(sourceLanguage.address) await ad4mClient.runtime.addTrustedAgents([(await ad4mClient.agent.me()).did]); diff --git a/src/tests/runtime.ts b/src/tests/runtime.ts index 712d971a3..f060c8864 100644 --- a/src/tests/runtime.ts +++ b/src/tests/runtime.ts @@ -1,7 +1,7 @@ import { TestContext } from './integration.test' const PERSPECT3VISM_AGENT = "did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n" -const SOCIAL_CONTEXT_OFFICIAL = "QmUvSpKxCnychotba2pVCufCNFSmr5Tj8e9qqdZkpuuxWt" +const SOCIAL_CONTEXT_OFFICIAL = "QmfDoeJgiG5Hs4DJcwPqDWbwU2Ks8zLSJjv7bR8is84Qt5" export default function runtimeTests(testContext: TestContext) { return () => { From 53e2647e3ae1982d4da5f249c1f3fcbd8bc93134 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Mon, 6 Mar 2023 13:52:02 +0530 Subject: [PATCH 044/722] Added install update option in the profile menu --- ui/src/components/Profile.tsx | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/ui/src/components/Profile.tsx b/ui/src/components/Profile.tsx index 96b380742..2ed30a31e 100644 --- a/ui/src/components/Profile.tsx +++ b/ui/src/components/Profile.tsx @@ -16,6 +16,8 @@ import QRCode from "react-qr-code"; import { buildAd4mClient } from "../util"; import { fetchProfile } from "./Settings"; import CardItems from "./CardItems"; +import { checkUpdate, installUpdate } from '@tauri-apps/api/updater' +import { relaunch } from '@tauri-apps/api/process' const useStyles = createStyles((theme) => ({ label: { @@ -38,6 +40,7 @@ function Profile() { const [password, setPassword] = useState(""); const [showProfileInfo, setShowProfileInfo] = useState(false); const [lockAgentModalOpen, setLockAgentModalOpen] = useState(false); + const [installUpdateModelOpen, setInstallUpdateModelOpen] = useState(false); const [showPassword, setShowPassword] = useState(false); const [profile, setProfile] = useState({ firstName: "", @@ -75,6 +78,27 @@ function Profile() { setPassword(value); }; + const onCheckUpdate = async () => { + try { + const { shouldUpdate, manifest } = await checkUpdate() + if (shouldUpdate) { + setInstallUpdateModelOpen(true) + } + } catch (error) { + console.log(error) + } + } + + const onInstallUpdate = async () => { + try { + await installUpdate(); + + await relaunch(); + } catch (error) { + console.log(error) + } + } + return (
@@ -90,6 +114,10 @@ function Profile() { Lock Agent + onCheckUpdate()}> + Check updates + + setShowProfileInfo(true)}> Profile details @@ -187,6 +215,32 @@ function Profile() { )} + {installUpdateModelOpen && ( + setInstallUpdateModelOpen(e.target.open)} + > + + + + Install Update + + + Warning: App will restart once the update is installed. + + + + onInstallUpdate()} + loading={loading} + > + Install + + + + )}
); } From 11188872b3ee5168a4e3286716b6caaeba756311 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 7 Mar 2023 11:16:24 +0530 Subject: [PATCH 045/722] Updated publish action --- .github/workflows/publish.yml | 72 +++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 799d470f7..043dc8e34 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -102,6 +102,30 @@ jobs: asset_name: ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb asset_content_type: application/octet-stream + - name: Upload Release Deb update Asset + id: upload-release-deb-asset-update + if: matrix.platform == 'ubuntu-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz + asset_name: ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz + asset_content_type: application/octet-stream + + - name: Upload Release Deb update sig Asset + id: upload-release-deb-asset-update-sig + if: matrix.platform == 'ubuntu-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig + asset_name: ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig + asset_content_type: application/octet-stream + - name: Upload Release AD4M Host Linux Binary id: upload-release-linux-ad4m-host-binary if: matrix.platform == 'ubuntu-latest' @@ -126,6 +150,30 @@ jobs: asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg asset_content_type: application/octet-stream + - name: Upload Release Macos update Asset + id: upload-release-macos-asset-update + if: matrix.platform == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz + asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64.tar.gz + asset_content_type: application/octet-stream + + - name: Upload Release Macos update sig Asset + id: upload-release-macos-asset-update-sig + if: matrix.platform == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/AD4M_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig + asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz.sig + asset_content_type: application/octet-stream + - name: Upload Release AD4M Host Macos Binary id: upload-release-macos-ad4m-host-binary if: matrix.platform == 'macos-latest' @@ -150,6 +198,30 @@ jobs: asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi asset_content_type: application/octet-stream + - name: Upload Release MSI update Asset + id: upload-release-msi-asset-update + if: matrix.platform == 'windows-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip + asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip + asset_content_type: application/octet-stream + + - name: Upload Release MSI update sig Asset + id: upload-release-msi-asset-update-sig + if: matrix.platform == 'windows-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig + asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig + asset_content_type: application/octet-stream + - name: Upload Release AD4M Host Windows Binary id: upload-release-windows-ad4m-host-binary if: matrix.platform == 'windows-latest' From 06d1bc87c89fdeb9fbdef8b6b8f4802a6d817168 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 7 Mar 2023 15:08:00 +0530 Subject: [PATCH 046/722] Added worker for updates --- ui/worker/package-lock.json | 3050 +++++++++++++++++++++++++++++++++++ ui/worker/package.json | 18 + ui/worker/src/index.ts | 103 ++ ui/worker/tsconfig.json | 106 ++ ui/worker/wrangler.toml | 4 + ui/worker/yarn.lock | 1818 +++++++++++++++++++++ 6 files changed, 5099 insertions(+) create mode 100644 ui/worker/package-lock.json create mode 100644 ui/worker/package.json create mode 100644 ui/worker/src/index.ts create mode 100644 ui/worker/tsconfig.json create mode 100644 ui/worker/wrangler.toml create mode 100644 ui/worker/yarn.lock diff --git a/ui/worker/package-lock.json b/ui/worker/package-lock.json new file mode 100644 index 000000000..b667b31f7 --- /dev/null +++ b/ui/worker/package-lock.json @@ -0,0 +1,3050 @@ +{ + "name": "worker", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "worker", + "version": "0.0.0", + "dependencies": { + "@octokit/rest": "^19.0.7" + }, + "devDependencies": { + "@cloudflare/workers-types": "^4.20230228.0", + "@types/node": "^18.14.6", + "typescript": "^4.9.5", + "wrangler": "2.12.0" + } + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", + "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", + "dev": true, + "dependencies": { + "mime": "^3.0.0" + } + }, + "node_modules/@cloudflare/workers-types": { + "version": "4.20230228.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230228.0.tgz", + "integrity": "sha512-tDaqH3DrKmDoe/YrCnzVSqjNH6GnUOOajv2Ztj2h7BPLFyYTb81iCkARgb+G4bpxhn7y4f1KxxDT2+Yp4rt7Hg==", + "dev": true + }, + "node_modules/@esbuild-plugins/node-globals-polyfill": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz", + "integrity": "sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==", + "dev": true, + "peerDependencies": { + "esbuild": "*" + } + }, + "node_modules/@esbuild-plugins/node-modules-polyfill": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz", + "integrity": "sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^4.0.0", + "rollup-plugin-node-polyfills": "^0.2.1" + }, + "peerDependencies": { + "esbuild": "*" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.3.tgz", + "integrity": "sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz", + "integrity": "sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.3.tgz", + "integrity": "sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz", + "integrity": "sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz", + "integrity": "sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz", + "integrity": "sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz", + "integrity": "sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz", + "integrity": "sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz", + "integrity": "sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz", + "integrity": "sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz", + "integrity": "sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz", + "integrity": "sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz", + "integrity": "sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz", + "integrity": "sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz", + "integrity": "sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz", + "integrity": "sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz", + "integrity": "sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz", + "integrity": "sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz", + "integrity": "sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz", + "integrity": "sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz", + "integrity": "sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz", + "integrity": "sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "node_modules/@miniflare/cache": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.12.1.tgz", + "integrity": "sha512-6Pj5avy53qULTa13gWxGTDBuwX0yAzr4Zkzb0ZBh40bcbHp4vRkOk7PvHBoxV0M76JxQDHotGaW+ik510z5Xrg==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "http-cache-semantics": "^4.1.0", + "undici": "5.20.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/cli-parser": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.12.1.tgz", + "integrity": "sha512-iCh4wEyQow8Dha+zpKhjCCXEp6QWbsvE18H5CgeUFT1pX4B+akYIHzdn47Cr5zpuYyjenoL78bAz0IIHIeyeWw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1", + "kleur": "^4.1.4" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/core": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.12.1.tgz", + "integrity": "sha512-729xXL6uoMgtja5J7B2WdWAjFfxb74Pk2QqM3VqkWqY3XNlKWI7+ofvb8S6kI6uFEPGj4ma263uYkEAgsvzBWg==", + "dev": true, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@miniflare/queues": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/watcher": "2.12.1", + "busboy": "^1.6.0", + "dotenv": "^10.0.0", + "kleur": "^4.1.4", + "set-cookie-parser": "^2.4.8", + "undici": "5.20.0", + "urlpattern-polyfill": "^4.0.3" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/d1": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/d1/-/d1-2.12.1.tgz", + "integrity": "sha512-2ldT7xEC7KxoaEJ7nCY9/AB/xwPjbm3mrmpiIspT0b5OgS640Pe9EU4c5bSmzGoUbLvwF+jb+LhLE1QaEbWkBw==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/durable-objects": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.12.1.tgz", + "integrity": "sha512-/n9WIxvHavVUgT+Nf280wNOcmJQBG+eZuqOlORWW9RmXXbAzqzS2Mk2lmRDCzbq3xTXAcsndx6cdarQLNRUzBg==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/storage-memory": "2.12.1", + "undici": "5.20.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/html-rewriter": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.12.1.tgz", + "integrity": "sha512-yezYzGRBxy7d/oomAUEftdnL4fq6YIek82LtQlXgzcdcbBDnkYADj8WqGV41tAI+V2+rjrFEc1RuCXx/I1yISw==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "html-rewriter-wasm": "^0.4.1", + "undici": "5.20.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/http-server": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.12.1.tgz", + "integrity": "sha512-nC6POgDKFHxnyXbKCdR9FGZSsu5frXQUETvSVcoETd5RP+Iws0xZ+XkzVMqiiIZk3ifUC9LzdGUOD0J2PlhHJw==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/web-sockets": "2.12.1", + "kleur": "^4.1.4", + "selfsigned": "^2.0.0", + "undici": "5.20.0", + "ws": "^8.2.2", + "youch": "^2.2.2" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/kv": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.12.1.tgz", + "integrity": "sha512-8h8wLDMEaWaKAqYTwrckOcNjAz52bzDyLmU4t/lh1/AQOE9eSg/T+H6xQCv0fPGrWPeHmG8iXaFI1JQ+CtkcHw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/queues": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/queues/-/queues-2.12.1.tgz", + "integrity": "sha512-L/YJkWWvg1RS3sCB5DLZOsf/kAmkwhvshpl+LmGQT7z/PYXlplbBmuhPwVBXaHqZdYE7063XfTzgAIhVPoo72Q==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/r2": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/r2/-/r2-2.12.1.tgz", + "integrity": "sha512-xp8fSSap6o5xSAWp9BtOGgZ4tuf5iHTqrfbAH66LF151j8y69eQtQJ5pxpSvrDJok/F1VOLGc4ihSLmUqxyXhw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1", + "undici": "5.20.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/runner-vm": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.12.1.tgz", + "integrity": "sha512-pGY/aoQzbvyXOGR6/d3hv5/QsyUXGGbOxAyXdvjlz8h7ZiKOX4dBRS5TUAPS0kb/ofUWCyoYJi8dCVwRGdTYRw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/scheduler": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.12.1.tgz", + "integrity": "sha512-AbOP8YpWNqR/t7zMuTmn6q27USCDBQaYaULRVaNNfCsxMTXAUjYfM85iFvnV9mshw+K0HIEU4zR4Xjd2FeJubg==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "cron-schedule": "^3.0.4" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/shared": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.12.1.tgz", + "integrity": "sha512-N8sHNM5vcvjvO+znQ7Mbqf0FChRlWxy/svUpQf1GGpii9aTXzOTWB+WkFvJrJNx44SUReEGxUAzxpdeWnHahmA==", + "dev": true, + "dependencies": { + "@types/better-sqlite3": "^7.6.0", + "kleur": "^4.1.4", + "npx-import": "^1.1.4", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/sites": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.12.1.tgz", + "integrity": "sha512-LW4r82cfGJvmJFwoBdXfsRcdDggVf8ppjMZGU3zk7xo+u5yD1uHzO2Arf3XbKNiOp7f9WyC/mXxs4zxF605iLA==", + "dev": true, + "dependencies": { + "@miniflare/kv": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/storage-file": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/storage-file": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.12.1.tgz", + "integrity": "sha512-eq5wzBwxQC5GVxBfji9svb9FRdSOlA8D8DTgzL29DDjuOYtG9j8ydOlo0J7/2MB/Gq0HYFUHYWHhrklzzwdKQQ==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1", + "@miniflare/storage-memory": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/storage-memory": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.12.1.tgz", + "integrity": "sha512-E9jbrX0L9N7YIHXj2G4td1EKboVLBdHkwh7RvKEZBwOhxDze5h+jMOou57NIbfC5kLOZPOC1fGXjzpp7xUUE6w==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/watcher": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.12.1.tgz", + "integrity": "sha512-3IG/6g38id5ppbZHB/gMfEvoIEFYdmTTLRsHaPNyWIk/r3LMhHLluVsMcs+Lr/fphkPk6Diou4cBLD2GeeoP7A==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.12.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/web-sockets": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.12.1.tgz", + "integrity": "sha512-Z+zqZqhVdrbmTQf+ETP5H1TPdXC2tUiYPiHRLWTHUks6VVkuwnUtIKxNPBEBXjCjKYYEm8VLclUAt+0yTucLWA==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "undici": "5.20.0", + "ws": "^8.2.2" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@octokit/auth-token": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", + "dependencies": { + "@octokit/types": "^9.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/core": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", + "dependencies": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/endpoint": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/graphql": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", + "dependencies": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", + "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", + "dependencies": { + "@octokit/types": "^9.0.0" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=4" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", + "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.3.1" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/request": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/rest": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", + "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", + "dependencies": { + "@octokit/core": "^4.1.0", + "@octokit/plugin-paginate-rest": "^6.0.0", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^7.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/types": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", + "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", + "dependencies": { + "@octokit/openapi-types": "^16.0.0" + } + }, + "node_modules/@types/better-sqlite3": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz", + "integrity": "sha512-YS64N9SNDT/NAvou3QNdzAu3E2om/W/0dhORimtPGLef+zSK5l1vDzfsWb4xgXOgfhtOI5ZDTRxnvRPb22AIVQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", + "dev": true + }, + "node_modules/@types/stack-trace": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz", + "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blake3-wasm": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cron-schedule": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz", + "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/esbuild": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz", + "integrity": "sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.3", + "@esbuild/android-arm64": "0.16.3", + "@esbuild/android-x64": "0.16.3", + "@esbuild/darwin-arm64": "0.16.3", + "@esbuild/darwin-x64": "0.16.3", + "@esbuild/freebsd-arm64": "0.16.3", + "@esbuild/freebsd-x64": "0.16.3", + "@esbuild/linux-arm": "0.16.3", + "@esbuild/linux-arm64": "0.16.3", + "@esbuild/linux-ia32": "0.16.3", + "@esbuild/linux-loong64": "0.16.3", + "@esbuild/linux-mips64el": "0.16.3", + "@esbuild/linux-ppc64": "0.16.3", + "@esbuild/linux-riscv64": "0.16.3", + "@esbuild/linux-s390x": "0.16.3", + "@esbuild/linux-x64": "0.16.3", + "@esbuild/netbsd-x64": "0.16.3", + "@esbuild/openbsd-x64": "0.16.3", + "@esbuild/sunos-x64": "0.16.3", + "@esbuild/win32-arm64": "0.16.3", + "@esbuild/win32-ia32": "0.16.3", + "@esbuild/win32-x64": "0.16.3" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-rewriter-wasm": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz", + "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/miniflare": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.12.1.tgz", + "integrity": "sha512-pym6gzg8AQZ1NRChRV1hC4K55N49wndoaDEVRMvZPJrFsmGkNnXkWmlvmZ7SB3BN5UkP5MZwKhLqiJ49Ry8tFA==", + "dev": true, + "dependencies": { + "@miniflare/cache": "2.12.1", + "@miniflare/cli-parser": "2.12.1", + "@miniflare/core": "2.12.1", + "@miniflare/d1": "2.12.1", + "@miniflare/durable-objects": "2.12.1", + "@miniflare/html-rewriter": "2.12.1", + "@miniflare/http-server": "2.12.1", + "@miniflare/kv": "2.12.1", + "@miniflare/queues": "2.12.1", + "@miniflare/r2": "2.12.1", + "@miniflare/runner-vm": "2.12.1", + "@miniflare/scheduler": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/sites": "2.12.1", + "@miniflare/storage-file": "2.12.1", + "@miniflare/storage-memory": "2.12.1", + "@miniflare/web-sockets": "2.12.1", + "kleur": "^4.1.4", + "semiver": "^1.1.0", + "source-map-support": "^0.5.20", + "undici": "5.20.0" + }, + "bin": { + "miniflare": "bootstrap.js" + }, + "engines": { + "node": ">=16.13" + }, + "peerDependencies": { + "@miniflare/storage-redis": "2.12.1", + "cron-schedule": "^3.0.4", + "ioredis": "^4.27.9" + }, + "peerDependenciesMeta": { + "@miniflare/storage-redis": { + "optional": true + }, + "cron-schedule": { + "optional": true + }, + "ioredis": { + "optional": true + } + } + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npx-import": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz", + "integrity": "sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==", + "dev": true, + "dependencies": { + "execa": "^6.1.0", + "parse-package-name": "^1.0.0", + "semver": "^7.3.7", + "validate-npm-package-name": "^4.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-package-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz", + "integrity": "sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup-plugin-inject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", + "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1", + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + } + }, + "node_modules/rollup-plugin-node-polyfills": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", + "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", + "dev": true, + "dependencies": { + "rollup-plugin-inject": "^3.0.0" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semiver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undici": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", + "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", + "dev": true, + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=12.18" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "node_modules/urlpattern-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz", + "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==", + "dev": true + }, + "node_modules/validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrangler": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.12.0.tgz", + "integrity": "sha512-yAqv3JbJqkB1oaciI2CGEiEscQ98BXaFN+Z7VbWuepMqVL2UV2wUjA2mJLjWuoZOwSmC74MsDzZ+5hzDs/2Nkg==", + "dev": true, + "dependencies": { + "@cloudflare/kv-asset-handler": "^0.2.0", + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", + "@esbuild-plugins/node-modules-polyfill": "^0.1.4", + "@miniflare/core": "2.12.1", + "@miniflare/d1": "2.12.1", + "@miniflare/durable-objects": "2.12.1", + "blake3-wasm": "^2.1.5", + "chokidar": "^3.5.3", + "esbuild": "0.16.3", + "miniflare": "2.12.1", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.2.0", + "selfsigned": "^2.0.1", + "source-map": "^0.7.4", + "xxhash-wasm": "^1.0.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" + }, + "engines": { + "node": ">=16.13.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xxhash-wasm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", + "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/youch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz", + "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==", + "dev": true, + "dependencies": { + "@types/stack-trace": "0.0.29", + "cookie": "^0.4.1", + "mustache": "^4.2.0", + "stack-trace": "0.0.10" + } + } + }, + "dependencies": { + "@cloudflare/kv-asset-handler": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", + "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", + "dev": true, + "requires": { + "mime": "^3.0.0" + } + }, + "@cloudflare/workers-types": { + "version": "4.20230228.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230228.0.tgz", + "integrity": "sha512-tDaqH3DrKmDoe/YrCnzVSqjNH6GnUOOajv2Ztj2h7BPLFyYTb81iCkARgb+G4bpxhn7y4f1KxxDT2+Yp4rt7Hg==", + "dev": true + }, + "@esbuild-plugins/node-globals-polyfill": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz", + "integrity": "sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==", + "dev": true, + "requires": {} + }, + "@esbuild-plugins/node-modules-polyfill": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz", + "integrity": "sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==", + "dev": true, + "requires": { + "escape-string-regexp": "^4.0.0", + "rollup-plugin-node-polyfills": "^0.2.1" + } + }, + "@esbuild/android-arm": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.3.tgz", + "integrity": "sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz", + "integrity": "sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.3.tgz", + "integrity": "sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz", + "integrity": "sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz", + "integrity": "sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz", + "integrity": "sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz", + "integrity": "sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz", + "integrity": "sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz", + "integrity": "sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz", + "integrity": "sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz", + "integrity": "sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz", + "integrity": "sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz", + "integrity": "sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz", + "integrity": "sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz", + "integrity": "sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz", + "integrity": "sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz", + "integrity": "sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz", + "integrity": "sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz", + "integrity": "sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz", + "integrity": "sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz", + "integrity": "sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz", + "integrity": "sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==", + "dev": true, + "optional": true + }, + "@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "@miniflare/cache": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.12.1.tgz", + "integrity": "sha512-6Pj5avy53qULTa13gWxGTDBuwX0yAzr4Zkzb0ZBh40bcbHp4vRkOk7PvHBoxV0M76JxQDHotGaW+ik510z5Xrg==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "http-cache-semantics": "^4.1.0", + "undici": "5.20.0" + } + }, + "@miniflare/cli-parser": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.12.1.tgz", + "integrity": "sha512-iCh4wEyQow8Dha+zpKhjCCXEp6QWbsvE18H5CgeUFT1pX4B+akYIHzdn47Cr5zpuYyjenoL78bAz0IIHIeyeWw==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1", + "kleur": "^4.1.4" + } + }, + "@miniflare/core": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.12.1.tgz", + "integrity": "sha512-729xXL6uoMgtja5J7B2WdWAjFfxb74Pk2QqM3VqkWqY3XNlKWI7+ofvb8S6kI6uFEPGj4ma263uYkEAgsvzBWg==", + "dev": true, + "requires": { + "@iarna/toml": "^2.2.5", + "@miniflare/queues": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/watcher": "2.12.1", + "busboy": "^1.6.0", + "dotenv": "^10.0.0", + "kleur": "^4.1.4", + "set-cookie-parser": "^2.4.8", + "undici": "5.20.0", + "urlpattern-polyfill": "^4.0.3" + } + }, + "@miniflare/d1": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/d1/-/d1-2.12.1.tgz", + "integrity": "sha512-2ldT7xEC7KxoaEJ7nCY9/AB/xwPjbm3mrmpiIspT0b5OgS640Pe9EU4c5bSmzGoUbLvwF+jb+LhLE1QaEbWkBw==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/durable-objects": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.12.1.tgz", + "integrity": "sha512-/n9WIxvHavVUgT+Nf280wNOcmJQBG+eZuqOlORWW9RmXXbAzqzS2Mk2lmRDCzbq3xTXAcsndx6cdarQLNRUzBg==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/storage-memory": "2.12.1", + "undici": "5.20.0" + } + }, + "@miniflare/html-rewriter": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.12.1.tgz", + "integrity": "sha512-yezYzGRBxy7d/oomAUEftdnL4fq6YIek82LtQlXgzcdcbBDnkYADj8WqGV41tAI+V2+rjrFEc1RuCXx/I1yISw==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "html-rewriter-wasm": "^0.4.1", + "undici": "5.20.0" + } + }, + "@miniflare/http-server": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.12.1.tgz", + "integrity": "sha512-nC6POgDKFHxnyXbKCdR9FGZSsu5frXQUETvSVcoETd5RP+Iws0xZ+XkzVMqiiIZk3ifUC9LzdGUOD0J2PlhHJw==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/web-sockets": "2.12.1", + "kleur": "^4.1.4", + "selfsigned": "^2.0.0", + "undici": "5.20.0", + "ws": "^8.2.2", + "youch": "^2.2.2" + } + }, + "@miniflare/kv": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.12.1.tgz", + "integrity": "sha512-8h8wLDMEaWaKAqYTwrckOcNjAz52bzDyLmU4t/lh1/AQOE9eSg/T+H6xQCv0fPGrWPeHmG8iXaFI1JQ+CtkcHw==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/queues": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/queues/-/queues-2.12.1.tgz", + "integrity": "sha512-L/YJkWWvg1RS3sCB5DLZOsf/kAmkwhvshpl+LmGQT7z/PYXlplbBmuhPwVBXaHqZdYE7063XfTzgAIhVPoo72Q==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/r2": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/r2/-/r2-2.12.1.tgz", + "integrity": "sha512-xp8fSSap6o5xSAWp9BtOGgZ4tuf5iHTqrfbAH66LF151j8y69eQtQJ5pxpSvrDJok/F1VOLGc4ihSLmUqxyXhw==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1", + "undici": "5.20.0" + } + }, + "@miniflare/runner-vm": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.12.1.tgz", + "integrity": "sha512-pGY/aoQzbvyXOGR6/d3hv5/QsyUXGGbOxAyXdvjlz8h7ZiKOX4dBRS5TUAPS0kb/ofUWCyoYJi8dCVwRGdTYRw==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/scheduler": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.12.1.tgz", + "integrity": "sha512-AbOP8YpWNqR/t7zMuTmn6q27USCDBQaYaULRVaNNfCsxMTXAUjYfM85iFvnV9mshw+K0HIEU4zR4Xjd2FeJubg==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "cron-schedule": "^3.0.4" + } + }, + "@miniflare/shared": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.12.1.tgz", + "integrity": "sha512-N8sHNM5vcvjvO+znQ7Mbqf0FChRlWxy/svUpQf1GGpii9aTXzOTWB+WkFvJrJNx44SUReEGxUAzxpdeWnHahmA==", + "dev": true, + "requires": { + "@types/better-sqlite3": "^7.6.0", + "kleur": "^4.1.4", + "npx-import": "^1.1.4", + "picomatch": "^2.3.1" + } + }, + "@miniflare/sites": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.12.1.tgz", + "integrity": "sha512-LW4r82cfGJvmJFwoBdXfsRcdDggVf8ppjMZGU3zk7xo+u5yD1uHzO2Arf3XbKNiOp7f9WyC/mXxs4zxF605iLA==", + "dev": true, + "requires": { + "@miniflare/kv": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/storage-file": "2.12.1" + } + }, + "@miniflare/storage-file": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.12.1.tgz", + "integrity": "sha512-eq5wzBwxQC5GVxBfji9svb9FRdSOlA8D8DTgzL29DDjuOYtG9j8ydOlo0J7/2MB/Gq0HYFUHYWHhrklzzwdKQQ==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1", + "@miniflare/storage-memory": "2.12.1" + } + }, + "@miniflare/storage-memory": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.12.1.tgz", + "integrity": "sha512-E9jbrX0L9N7YIHXj2G4td1EKboVLBdHkwh7RvKEZBwOhxDze5h+jMOou57NIbfC5kLOZPOC1fGXjzpp7xUUE6w==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/watcher": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.12.1.tgz", + "integrity": "sha512-3IG/6g38id5ppbZHB/gMfEvoIEFYdmTTLRsHaPNyWIk/r3LMhHLluVsMcs+Lr/fphkPk6Diou4cBLD2GeeoP7A==", + "dev": true, + "requires": { + "@miniflare/shared": "2.12.1" + } + }, + "@miniflare/web-sockets": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.12.1.tgz", + "integrity": "sha512-Z+zqZqhVdrbmTQf+ETP5H1TPdXC2tUiYPiHRLWTHUks6VVkuwnUtIKxNPBEBXjCjKYYEm8VLclUAt+0yTucLWA==", + "dev": true, + "requires": { + "@miniflare/core": "2.12.1", + "@miniflare/shared": "2.12.1", + "undici": "5.20.0", + "ws": "^8.2.2" + } + }, + "@octokit/auth-token": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", + "requires": { + "@octokit/types": "^9.0.0" + } + }, + "@octokit/core": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", + "requires": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/endpoint": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", + "requires": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/graphql": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", + "requires": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==" + }, + "@octokit/plugin-paginate-rest": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", + "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", + "requires": { + "@octokit/types": "^9.0.0" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "requires": {} + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", + "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.3.1" + } + }, + "@octokit/request": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", + "requires": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/rest": { + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", + "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", + "requires": { + "@octokit/core": "^4.1.0", + "@octokit/plugin-paginate-rest": "^6.0.0", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^7.0.0" + } + }, + "@octokit/types": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", + "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", + "requires": { + "@octokit/openapi-types": "^16.0.0" + } + }, + "@types/better-sqlite3": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz", + "integrity": "sha512-YS64N9SNDT/NAvou3QNdzAu3E2om/W/0dhORimtPGLef+zSK5l1vDzfsWb4xgXOgfhtOI5ZDTRxnvRPb22AIVQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", + "dev": true + }, + "@types/stack-trace": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz", + "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "blake3-wasm": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "requires": { + "semver": "^7.0.0" + } + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "requires": { + "streamsearch": "^1.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "cron-schedule": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz", + "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, + "esbuild": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz", + "integrity": "sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.16.3", + "@esbuild/android-arm64": "0.16.3", + "@esbuild/android-x64": "0.16.3", + "@esbuild/darwin-arm64": "0.16.3", + "@esbuild/darwin-x64": "0.16.3", + "@esbuild/freebsd-arm64": "0.16.3", + "@esbuild/freebsd-x64": "0.16.3", + "@esbuild/linux-arm": "0.16.3", + "@esbuild/linux-arm64": "0.16.3", + "@esbuild/linux-ia32": "0.16.3", + "@esbuild/linux-loong64": "0.16.3", + "@esbuild/linux-mips64el": "0.16.3", + "@esbuild/linux-ppc64": "0.16.3", + "@esbuild/linux-riscv64": "0.16.3", + "@esbuild/linux-s390x": "0.16.3", + "@esbuild/linux-x64": "0.16.3", + "@esbuild/netbsd-x64": "0.16.3", + "@esbuild/openbsd-x64": "0.16.3", + "@esbuild/sunos-x64": "0.16.3", + "@esbuild/win32-arm64": "0.16.3", + "@esbuild/win32-ia32": "0.16.3", + "@esbuild/win32-x64": "0.16.3" + } + }, + "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==", + "dev": true + }, + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "html-rewriter-wasm": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz", + "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "miniflare": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.12.1.tgz", + "integrity": "sha512-pym6gzg8AQZ1NRChRV1hC4K55N49wndoaDEVRMvZPJrFsmGkNnXkWmlvmZ7SB3BN5UkP5MZwKhLqiJ49Ry8tFA==", + "dev": true, + "requires": { + "@miniflare/cache": "2.12.1", + "@miniflare/cli-parser": "2.12.1", + "@miniflare/core": "2.12.1", + "@miniflare/d1": "2.12.1", + "@miniflare/durable-objects": "2.12.1", + "@miniflare/html-rewriter": "2.12.1", + "@miniflare/http-server": "2.12.1", + "@miniflare/kv": "2.12.1", + "@miniflare/queues": "2.12.1", + "@miniflare/r2": "2.12.1", + "@miniflare/runner-vm": "2.12.1", + "@miniflare/scheduler": "2.12.1", + "@miniflare/shared": "2.12.1", + "@miniflare/sites": "2.12.1", + "@miniflare/storage-file": "2.12.1", + "@miniflare/storage-memory": "2.12.1", + "@miniflare/web-sockets": "2.12.1", + "kleur": "^4.1.4", + "semiver": "^1.1.0", + "source-map-support": "^0.5.20", + "undici": "5.20.0" + } + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + } + } + }, + "npx-import": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz", + "integrity": "sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==", + "dev": true, + "requires": { + "execa": "^6.1.0", + "parse-package-name": "^1.0.0", + "semver": "^7.3.7", + "validate-npm-package-name": "^4.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "parse-package-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz", + "integrity": "sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rollup-plugin-inject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", + "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1", + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-node-polyfills": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", + "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", + "dev": true, + "requires": { + "rollup-plugin-inject": "^3.0.0" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + } + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "requires": { + "node-forge": "^1" + } + }, + "semiver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", + "dev": true + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "undici": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", + "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", + "dev": true, + "requires": { + "busboy": "^1.6.0" + } + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "urlpattern-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz", + "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==", + "dev": true + }, + "validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dev": true, + "requires": { + "builtins": "^5.0.0" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrangler": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.12.0.tgz", + "integrity": "sha512-yAqv3JbJqkB1oaciI2CGEiEscQ98BXaFN+Z7VbWuepMqVL2UV2wUjA2mJLjWuoZOwSmC74MsDzZ+5hzDs/2Nkg==", + "dev": true, + "requires": { + "@cloudflare/kv-asset-handler": "^0.2.0", + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", + "@esbuild-plugins/node-modules-polyfill": "^0.1.4", + "@miniflare/core": "2.12.1", + "@miniflare/d1": "2.12.1", + "@miniflare/durable-objects": "2.12.1", + "blake3-wasm": "^2.1.5", + "chokidar": "^3.5.3", + "esbuild": "0.16.3", + "fsevents": "~2.3.2", + "miniflare": "2.12.1", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.2.0", + "selfsigned": "^2.0.1", + "source-map": "^0.7.4", + "xxhash-wasm": "^1.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "requires": {} + }, + "xxhash-wasm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", + "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "youch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz", + "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==", + "dev": true, + "requires": { + "@types/stack-trace": "0.0.29", + "cookie": "^0.4.1", + "mustache": "^4.2.0", + "stack-trace": "0.0.10" + } + } + } +} diff --git a/ui/worker/package.json b/ui/worker/package.json new file mode 100644 index 000000000..004402c93 --- /dev/null +++ b/ui/worker/package.json @@ -0,0 +1,18 @@ +{ + "name": "worker", + "version": "0.0.0", + "devDependencies": { + "@cloudflare/workers-types": "^4.20230228.0", + "@types/node": "^18.14.6", + "typescript": "^4.9.5", + "wrangler": "2.12.0" + }, + "private": true, + "scripts": { + "start": "wrangler dev", + "deploy": "wrangler publish" + }, + "dependencies": { + "@octokit/rest": "^19.0.7" + } +} diff --git a/ui/worker/src/index.ts b/ui/worker/src/index.ts new file mode 100644 index 000000000..d480766c2 --- /dev/null +++ b/ui/worker/src/index.ts @@ -0,0 +1,103 @@ +/** + * Welcome to Cloudflare Workers! This is your first worker. + * + * - Run `wrangler dev src/index.ts` in your terminal to start a development server + * - Open a browser tab at http://localhost:8787/ to see your worker in action + * - Run `wrangler publish src/index.ts --name my-worker` to publish your worker + * + * Learn more at https://developers.cloudflare.com/workers/ + */ + +import { Octokit } from "@octokit/rest"; + +export interface Env { + // Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/ + // MY_KV_NAMESPACE: KVNamespace; + // + // Example binding to Durable Object. Learn more at https://developers.cloudflare.com/workers/runtime-apis/durable-objects/ + // MY_DURABLE_OBJECT: DurableObjectNamespace; + // + // Example binding to R2. Learn more at https://developers.cloudflare.com/workers/runtime-apis/r2/ + // MY_BUCKET: R2Bucket; + // + // Example binding to a Service. Learn more at https://developers.cloudflare.com/workers/runtime-apis/service-bindings/ + // MY_SERVICE: Fetcher; +} + +export default { + async fetch( + request: Request, + env: Env, + ctx: ExecutionContext + ): Promise { + try { + const octokit = new Octokit(); + + const { data } = await octokit.rest.repos.getLatestRelease({ + owner: 'perspect3vism', + repo: 'ad4m', + }); + + const [_, __, ___, ____,target, version] = request.url.split('/') + + console.log(target, version) + + if (target && version) { + if (target === 'darwin' || target === 'macos') { + const updates = data.assets.filter((asset: any) => asset.name.includes('dmg')); + const update = updates.find((asset: any) => !asset.name.includes('.sig')) + const sig = updates.find((asset: any) => asset.name.includes('.sig')) + + return Response.json({ + version: data['tag_name'], + url: update.browser_download_url, + signature: await getSignature(sig?.browser_download_url), + }) + } else if (target === 'linux') { + const updates = data.assets.filter((asset: any) => asset.name.includes('deb')); + const update = updates.find((asset: any) => !asset.name.includes('.sig')) + const sig = updates.find((asset: any) => asset.name.includes('.sig')) + + return Response.json({ + version: data['tag_name'], + url: update.browser_download_url, + signature: await getSignature(sig?.browser_download_url), + }) + } else if (target === 'windows') { + const updates = data.assets.filter((asset: any) => asset.name.includes('msi')); + const update = updates.find((asset: any) => !asset.name.includes('.sig')) + const sig = updates.find((asset: any) => asset.name.includes('.sig')) + + return Response.json({ + version: data['tag_name'], + url: update.browser_download_url, + signature: await getSignature(sig?.browser_download_url), + }) + } + + return Response.json({ + error: "invalid_platform", + message: "The specified platform is not valid" + }, { status: 500}) + } else { + return new Response("", {status: 404}) + } + } catch (e: any) { + return new Response(e.toString(), {status: 500}) + } + }, +}; + +const getSignature = async (url: string) => { + let response = await fetch(url, { redirect: 'follow' }); + + let { readable, writable } = new TransformStream(); + + await response.body!.pipeTo(writable); + + const reader = readable.getReader(); + + const uint8array = await reader.read() + + return new TextDecoder().decode(uint8array.value) +} \ No newline at end of file diff --git a/ui/worker/tsconfig.json b/ui/worker/tsconfig.json new file mode 100644 index 000000000..1a44b9b51 --- /dev/null +++ b/ui/worker/tsconfig.json @@ -0,0 +1,106 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Projects */ + // "incremental": true, /* Enable incremental compilation */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2021" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + "lib": [ + "es2021" + ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, + "jsx": "react" /* Specify what JSX code is generated. */, + // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ + // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + + /* Modules */ + "module": "es2022" /* Specify what module code is generated. */, + // "rootDir": "./", /* Specify the root folder within your source files. */ + "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + "types": [ + "@cloudflare/workers-types", + "vitest" + ] /* Specify type package names to be included without being referenced in a source file. */, + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + "resolveJsonModule": true /* Enable importing .json files */, + // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */, + "checkJs": false /* Enable error reporting in type-checked JavaScript files. */, + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + "noEmit": true /* Disable emitting files from a compilation. */, + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + "isolatedModules": true /* Ensure that each file can be safely transpiled without relying on other imports. */, + "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, + // "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + + /* Type Checking */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ + // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ + // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} diff --git a/ui/worker/wrangler.toml b/ui/worker/wrangler.toml new file mode 100644 index 000000000..6bb717a01 --- /dev/null +++ b/ui/worker/wrangler.toml @@ -0,0 +1,4 @@ +name = "worker" +main = "src/index.ts" +compatibility_date = "2023-03-06" +node_compat = true \ No newline at end of file diff --git a/ui/worker/yarn.lock b/ui/worker/yarn.lock new file mode 100644 index 000000000..b92a327a3 --- /dev/null +++ b/ui/worker/yarn.lock @@ -0,0 +1,1818 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@cloudflare/kv-asset-handler@^0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz" + integrity sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A== + dependencies: + mime "^3.0.0" + +"@cloudflare/workers-types@^4.20230228.0": + version "4.20230228.0" + resolved "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230228.0.tgz" + integrity sha512-tDaqH3DrKmDoe/YrCnzVSqjNH6GnUOOajv2Ztj2h7BPLFyYTb81iCkARgb+G4bpxhn7y4f1KxxDT2+Yp4rt7Hg== + +"@esbuild-plugins/node-globals-polyfill@^0.1.1": + version "0.1.1" + resolved "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz" + integrity sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg== + +"@esbuild-plugins/node-modules-polyfill@^0.1.4": + version "0.1.4" + resolved "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz" + integrity sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg== + dependencies: + escape-string-regexp "^4.0.0" + rollup-plugin-node-polyfills "^0.2.1" + +"@esbuild/android-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz#6af6d16be6d534d776a51fc215bfd81a68906d2c" + integrity sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg== + +"@esbuild/android-arm@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.3.tgz#2a091222f3b1928e3246fb3c5202eaca88baab67" + integrity sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA== + +"@esbuild/android-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.3.tgz#a6d749c58b022d371dc40d50ac1bb4aebd1eb953" + integrity sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ== + +"@esbuild/darwin-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz#92d1826ed2f21dcac5830b70d7215c6afbb744e2" + integrity sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw== + +"@esbuild/darwin-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz#7fc3570c2b16e9ff4fc178593a0a4adb1ae8ea57" + integrity sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ== + +"@esbuild/freebsd-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz#16735ce16f8c9a4e7289e9e259aa01a8d9874307" + integrity sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw== + +"@esbuild/freebsd-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz#f4edd1464cb072799ed6b8ab5178478e71c13459" + integrity sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug== + +"@esbuild/linux-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz#4b7ae6fe3618d9a40d6ca39c6edc991ac1447203" + integrity sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ== + +"@esbuild/linux-arm@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz#4b3e9f849822e16a76a70844c4db68075b259a58" + integrity sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ== + +"@esbuild/linux-ia32@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz#2ff3936b91bfff62f9ecf7f6411ef399b29ed22d" + integrity sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA== + +"@esbuild/linux-loong64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz#ff8aa59f49d9ccbc1ff952ba1f5cd01a534562df" + integrity sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw== + +"@esbuild/linux-mips64el@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz#5dd5e118071c3912df69beedbfd11fb117f0fe5e" + integrity sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw== + +"@esbuild/linux-ppc64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz#36c62e24eae7fa3f0d921506da8fc1e6098a1364" + integrity sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q== + +"@esbuild/linux-riscv64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz#f0fec8e7affb5bcc817fefc61a21cbb95539e393" + integrity sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ== + +"@esbuild/linux-s390x@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz#22e10edd6e91f53c2e1f60e46abd453d7794409b" + integrity sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ== + +"@esbuild/linux-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz#38388b73fd9eebe45b073d7d8099b9c2e54f7139" + integrity sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w== + +"@esbuild/netbsd-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz#e0270569567f1530b8dbe6d11d5b4930b9cc71ae" + integrity sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA== + +"@esbuild/openbsd-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz#3b16642d443848bca605f33ee3978a1890911e6d" + integrity sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg== + +"@esbuild/sunos-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz#a838f247867380f0ae25ce1936dc5ab6f57b7734" + integrity sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw== + +"@esbuild/win32-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz#bedd9bef5fb41f89ce2599f1761973cf6d6a67b6" + integrity sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg== + +"@esbuild/win32-ia32@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz#49800aa812d8cc35ceef61e8d3b01224684cc0b1" + integrity sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ== + +"@esbuild/win32-x64@0.16.3": + version "0.16.3" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz" + integrity sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow== + +"@iarna/toml@^2.2.5": + version "2.2.5" + resolved "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz" + integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== + +"@miniflare/cache@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/cache/-/cache-2.12.1.tgz" + integrity sha512-6Pj5avy53qULTa13gWxGTDBuwX0yAzr4Zkzb0ZBh40bcbHp4vRkOk7PvHBoxV0M76JxQDHotGaW+ik510z5Xrg== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + http-cache-semantics "^4.1.0" + undici "5.20.0" + +"@miniflare/cli-parser@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.12.1.tgz" + integrity sha512-iCh4wEyQow8Dha+zpKhjCCXEp6QWbsvE18H5CgeUFT1pX4B+akYIHzdn47Cr5zpuYyjenoL78bAz0IIHIeyeWw== + dependencies: + "@miniflare/shared" "2.12.1" + kleur "^4.1.4" + +"@miniflare/core@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/core/-/core-2.12.1.tgz" + integrity sha512-729xXL6uoMgtja5J7B2WdWAjFfxb74Pk2QqM3VqkWqY3XNlKWI7+ofvb8S6kI6uFEPGj4ma263uYkEAgsvzBWg== + dependencies: + "@iarna/toml" "^2.2.5" + "@miniflare/queues" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/watcher" "2.12.1" + busboy "^1.6.0" + dotenv "^10.0.0" + kleur "^4.1.4" + set-cookie-parser "^2.4.8" + undici "5.20.0" + urlpattern-polyfill "^4.0.3" + +"@miniflare/d1@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/d1/-/d1-2.12.1.tgz" + integrity sha512-2ldT7xEC7KxoaEJ7nCY9/AB/xwPjbm3mrmpiIspT0b5OgS640Pe9EU4c5bSmzGoUbLvwF+jb+LhLE1QaEbWkBw== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + +"@miniflare/durable-objects@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.12.1.tgz" + integrity sha512-/n9WIxvHavVUgT+Nf280wNOcmJQBG+eZuqOlORWW9RmXXbAzqzS2Mk2lmRDCzbq3xTXAcsndx6cdarQLNRUzBg== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/storage-memory" "2.12.1" + undici "5.20.0" + +"@miniflare/html-rewriter@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.12.1.tgz" + integrity sha512-yezYzGRBxy7d/oomAUEftdnL4fq6YIek82LtQlXgzcdcbBDnkYADj8WqGV41tAI+V2+rjrFEc1RuCXx/I1yISw== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + html-rewriter-wasm "^0.4.1" + undici "5.20.0" + +"@miniflare/http-server@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.12.1.tgz" + integrity sha512-nC6POgDKFHxnyXbKCdR9FGZSsu5frXQUETvSVcoETd5RP+Iws0xZ+XkzVMqiiIZk3ifUC9LzdGUOD0J2PlhHJw== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/web-sockets" "2.12.1" + kleur "^4.1.4" + selfsigned "^2.0.0" + undici "5.20.0" + ws "^8.2.2" + youch "^2.2.2" + +"@miniflare/kv@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/kv/-/kv-2.12.1.tgz" + integrity sha512-8h8wLDMEaWaKAqYTwrckOcNjAz52bzDyLmU4t/lh1/AQOE9eSg/T+H6xQCv0fPGrWPeHmG8iXaFI1JQ+CtkcHw== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/queues@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/queues/-/queues-2.12.1.tgz" + integrity sha512-L/YJkWWvg1RS3sCB5DLZOsf/kAmkwhvshpl+LmGQT7z/PYXlplbBmuhPwVBXaHqZdYE7063XfTzgAIhVPoo72Q== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/r2@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/r2/-/r2-2.12.1.tgz" + integrity sha512-xp8fSSap6o5xSAWp9BtOGgZ4tuf5iHTqrfbAH66LF151j8y69eQtQJ5pxpSvrDJok/F1VOLGc4ihSLmUqxyXhw== + dependencies: + "@miniflare/shared" "2.12.1" + undici "5.20.0" + +"@miniflare/runner-vm@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.12.1.tgz" + integrity sha512-pGY/aoQzbvyXOGR6/d3hv5/QsyUXGGbOxAyXdvjlz8h7ZiKOX4dBRS5TUAPS0kb/ofUWCyoYJi8dCVwRGdTYRw== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/scheduler@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.12.1.tgz" + integrity sha512-AbOP8YpWNqR/t7zMuTmn6q27USCDBQaYaULRVaNNfCsxMTXAUjYfM85iFvnV9mshw+K0HIEU4zR4Xjd2FeJubg== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + cron-schedule "^3.0.4" + +"@miniflare/shared@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/shared/-/shared-2.12.1.tgz" + integrity sha512-N8sHNM5vcvjvO+znQ7Mbqf0FChRlWxy/svUpQf1GGpii9aTXzOTWB+WkFvJrJNx44SUReEGxUAzxpdeWnHahmA== + dependencies: + "@types/better-sqlite3" "^7.6.0" + kleur "^4.1.4" + npx-import "^1.1.4" + picomatch "^2.3.1" + +"@miniflare/sites@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/sites/-/sites-2.12.1.tgz" + integrity sha512-LW4r82cfGJvmJFwoBdXfsRcdDggVf8ppjMZGU3zk7xo+u5yD1uHzO2Arf3XbKNiOp7f9WyC/mXxs4zxF605iLA== + dependencies: + "@miniflare/kv" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/storage-file" "2.12.1" + +"@miniflare/storage-file@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.12.1.tgz" + integrity sha512-eq5wzBwxQC5GVxBfji9svb9FRdSOlA8D8DTgzL29DDjuOYtG9j8ydOlo0J7/2MB/Gq0HYFUHYWHhrklzzwdKQQ== + dependencies: + "@miniflare/shared" "2.12.1" + "@miniflare/storage-memory" "2.12.1" + +"@miniflare/storage-memory@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.12.1.tgz" + integrity sha512-E9jbrX0L9N7YIHXj2G4td1EKboVLBdHkwh7RvKEZBwOhxDze5h+jMOou57NIbfC5kLOZPOC1fGXjzpp7xUUE6w== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/watcher@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.12.1.tgz" + integrity sha512-3IG/6g38id5ppbZHB/gMfEvoIEFYdmTTLRsHaPNyWIk/r3LMhHLluVsMcs+Lr/fphkPk6Diou4cBLD2GeeoP7A== + dependencies: + "@miniflare/shared" "2.12.1" + +"@miniflare/web-sockets@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.12.1.tgz" + integrity sha512-Z+zqZqhVdrbmTQf+ETP5H1TPdXC2tUiYPiHRLWTHUks6VVkuwnUtIKxNPBEBXjCjKYYEm8VLclUAt+0yTucLWA== + dependencies: + "@miniflare/core" "2.12.1" + "@miniflare/shared" "2.12.1" + undici "5.20.0" + ws "^8.2.2" + +"@netlify/functions@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.4.0.tgz#027a2e5d54df5519ccbd14cf450231e97bbbf93a" + integrity sha512-gy7ULTIRroc2/jyFVGx1djCmmBMVisIwrvkqggq5B6iDcInRSy2Tpkm+V5C63hKJVkNRskKWtLQKm9ecCaQTjA== + dependencies: + is-promise "^4.0.0" + +"@octokit/auth-token@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz" + integrity sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA== + dependencies: + "@octokit/types" "^9.0.0" + +"@octokit/core@^4.1.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz" + integrity sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^7.0.0": + version "7.0.5" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz" + integrity sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA== + dependencies: + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^5.0.0": + version "5.0.5" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz" + integrity sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ== + dependencies: + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^16.0.0": + version "16.0.0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz" + integrity sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA== + +"@octokit/plugin-paginate-rest@^6.0.0": + version "6.0.0" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz" + integrity sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw== + dependencies: + "@octokit/types" "^9.0.0" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^7.0.0": + version "7.0.1" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz" + integrity sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA== + dependencies: + "@octokit/types" "^9.0.0" + deprecation "^2.3.1" + +"@octokit/request-error@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz" + integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== + dependencies: + "@octokit/types" "^9.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^6.0.0": + version "6.2.3" + resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz" + integrity sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA== + dependencies: + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@^19.0.7": + version "19.0.7" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz" + integrity sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA== + dependencies: + "@octokit/core" "^4.1.0" + "@octokit/plugin-paginate-rest" "^6.0.0" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^7.0.0" + +"@octokit/types@^9.0.0": + version "9.0.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz" + integrity sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw== + dependencies: + "@octokit/openapi-types" "^16.0.0" + +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + +"@types/better-sqlite3@^7.6.0": + version "7.6.3" + resolved "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz" + integrity sha512-YS64N9SNDT/NAvou3QNdzAu3E2om/W/0dhORimtPGLef+zSK5l1vDzfsWb4xgXOgfhtOI5ZDTRxnvRPb22AIVQ== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@^18.14.6": + version "18.14.6" + resolved "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz" + integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== + +"@types/stack-trace@0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz" + integrity sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +archive-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" + integrity sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA== + dependencies: + file-type "^4.2.0" + +async-retry@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +blake3-wasm@^2.1.5: + version "2.1.5" + resolved "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz" + integrity sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g== + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.2.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + integrity sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ== + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +clone-response@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== + dependencies: + mimic-response "^1.0.0" + +commander@^2.8.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +content-disposition@^0.5.2: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cron-schedule@^3.0.4: + version "3.0.6" + resolved "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz" + integrity sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg== + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + integrity sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw== + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" + integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + +download@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/download/-/download-8.0.0.tgz#afc0b309730811731aae9f5371c9f46be73e51b1" + integrity sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA== + dependencies: + archive-type "^4.0.0" + content-disposition "^0.5.2" + decompress "^4.2.1" + ext-name "^5.0.0" + file-type "^11.1.0" + filenamify "^3.0.0" + get-stream "^4.1.0" + got "^8.3.1" + make-dir "^2.1.0" + p-event "^2.1.0" + pify "^4.0.1" + +downloadjs@^1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/downloadjs/-/downloadjs-1.4.7.tgz#f69f96f940e0d0553dac291139865a3cd0101e3c" + integrity sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q== + +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +esbuild@0.16.3: + version "0.16.3" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz" + integrity sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg== + optionalDependencies: + "@esbuild/android-arm" "0.16.3" + "@esbuild/android-arm64" "0.16.3" + "@esbuild/android-x64" "0.16.3" + "@esbuild/darwin-arm64" "0.16.3" + "@esbuild/darwin-x64" "0.16.3" + "@esbuild/freebsd-arm64" "0.16.3" + "@esbuild/freebsd-x64" "0.16.3" + "@esbuild/linux-arm" "0.16.3" + "@esbuild/linux-arm64" "0.16.3" + "@esbuild/linux-ia32" "0.16.3" + "@esbuild/linux-loong64" "0.16.3" + "@esbuild/linux-mips64el" "0.16.3" + "@esbuild/linux-ppc64" "0.16.3" + "@esbuild/linux-riscv64" "0.16.3" + "@esbuild/linux-s390x" "0.16.3" + "@esbuild/linux-x64" "0.16.3" + "@esbuild/netbsd-x64" "0.16.3" + "@esbuild/openbsd-x64" "0.16.3" + "@esbuild/sunos-x64" "0.16.3" + "@esbuild/win32-arm64" "0.16.3" + "@esbuild/win32-ia32" "0.16.3" + "@esbuild/win32-x64" "0.16.3" + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +execa@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +file-type@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-11.1.0.tgz#93780f3fed98b599755d846b99a1617a2ad063b8" + integrity sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g== + +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA== + +file-type@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" + integrity sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ== + +file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + integrity sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ== + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-3.0.0.tgz#9603eb688179f8c5d40d828626dcbb92c3a4672c" + integrity sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +from2@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +get-stream@3.0.0, get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA== + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +got@^8.3.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.1.10: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +html-rewriter-wasm@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz" + integrity sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q== + +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-cache-semantics@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4" + integrity sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg== + +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inherits@^2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + integrity sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ== + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + integrity sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" + integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== + +is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + +kleur@^4.1.4: + version "4.1.5" + resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + integrity sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A== + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.3: + version "0.25.9" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +mime-db@^1.28.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +miniflare@2.12.1: + version "2.12.1" + resolved "https://registry.npmjs.org/miniflare/-/miniflare-2.12.1.tgz" + integrity sha512-pym6gzg8AQZ1NRChRV1hC4K55N49wndoaDEVRMvZPJrFsmGkNnXkWmlvmZ7SB3BN5UkP5MZwKhLqiJ49Ry8tFA== + dependencies: + "@miniflare/cache" "2.12.1" + "@miniflare/cli-parser" "2.12.1" + "@miniflare/core" "2.12.1" + "@miniflare/d1" "2.12.1" + "@miniflare/durable-objects" "2.12.1" + "@miniflare/html-rewriter" "2.12.1" + "@miniflare/http-server" "2.12.1" + "@miniflare/kv" "2.12.1" + "@miniflare/queues" "2.12.1" + "@miniflare/r2" "2.12.1" + "@miniflare/runner-vm" "2.12.1" + "@miniflare/scheduler" "2.12.1" + "@miniflare/shared" "2.12.1" + "@miniflare/sites" "2.12.1" + "@miniflare/storage-file" "2.12.1" + "@miniflare/storage-memory" "2.12.1" + "@miniflare/web-sockets" "2.12.1" + kleur "^4.1.4" + semiver "^1.1.0" + source-map-support "^0.5.20" + undici "5.20.0" + +minimist@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +mustache@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + +nanoid@^3.3.3: + version "3.3.4" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@^2.6.7: + version "2.6.9" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz" + integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.0.tgz#37e71db4ecc257057af828d523a7243d651d91e4" + integrity sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + +npx-import@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz" + integrity sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA== + dependencies: + execa "^6.1.0" + parse-package-name "^1.0.0" + semver "^7.3.7" + validate-npm-package-name "^4.0.0" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + +p-event@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" + integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== + dependencies: + p-timeout "^2.0.1" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg== + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + +parse-package-name@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz" + integrity sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-to-regexp@^6.2.0: + version "6.2.1" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz" + integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise-polyfill@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-1.1.6.tgz#cd04eff46f5c95c3a7d045591d79b5e3e01f12d7" + integrity sha512-7rrONfyLkDEc7OJ5QBkqa4KI4EBhCd340xRuIUPGCfu13znS+vx+VDdrT9ODAJHlXm7w4lbxN3DRjyv58EuzDg== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +responselike@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + +retry@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +rollup-plugin-inject@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz" + integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== + dependencies: + estree-walker "^0.6.1" + magic-string "^0.25.3" + rollup-pluginutils "^2.8.1" + +rollup-plugin-node-polyfills@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz" + integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== + dependencies: + rollup-plugin-inject "^3.0.0" + +rollup-pluginutils@^2.8.1: + version "2.8.2" + resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +safe-buffer@5.2.1, safe-buffer@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +seek-bzip@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" + integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== + dependencies: + commander "^2.8.1" + +selfsigned@^2.0.0, selfsigned@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== + dependencies: + node-forge "^1" + +semiver@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz" + integrity sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg== + +semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.0.0, semver@^7.3.7: + version "7.3.8" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +set-cookie-parser@^2.4.8: + version "2.5.1" + resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz" + integrity sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== + dependencies: + sort-keys "^1.0.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + dependencies: + is-plain-obj "^1.0.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== + dependencies: + is-plain-obj "^1.0.0" + +source-map-support@^0.5.20: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.4: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +stack-trace@0.0.10: + version "0.0.10" + resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +stream-to-string@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/stream-to-string/-/stream-to-string-1.2.1.tgz#15cb325d88b33cc62accb032c7093f85eb785db2" + integrity sha512-WsvTDNF8UYs369Yko3pcdTducQtYpzEZeOV7cTuReyFvOoA9S/DLJ6sYK+xPafSPHhUMpaxiljKYnT6JSFztIA== + dependencies: + promise-polyfill "^1.1.6" + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + +tunnel@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbzip2-stream@^1.0.9: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +undici@5.20.0: + version "5.20.0" + resolved "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz" + integrity sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g== + dependencies: + busboy "^1.6.0" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== + dependencies: + prepend-http "^2.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== + +urlpattern-polyfill@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz" + integrity sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ== + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" + +web-streams-polyfill@^3.0.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +wget-improved@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/wget-improved/-/wget-improved-3.3.1.tgz#4ca99dc80db0ae388e99f4137f8deadd358630bc" + integrity sha512-OF22MM9ImbOcuB5ZV3ye0q1udaYeTP/V6LOfjNyGCNNC7bGB219ljZv6Wk5mPogeigJJ6CqheLScv17AFbsdGA== + dependencies: + minimist "1.2.6" + tunnel "0.0.6" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrangler@2.12.0: + version "2.12.0" + resolved "https://registry.npmjs.org/wrangler/-/wrangler-2.12.0.tgz" + integrity sha512-yAqv3JbJqkB1oaciI2CGEiEscQ98BXaFN+Z7VbWuepMqVL2UV2wUjA2mJLjWuoZOwSmC74MsDzZ+5hzDs/2Nkg== + dependencies: + "@cloudflare/kv-asset-handler" "^0.2.0" + "@esbuild-plugins/node-globals-polyfill" "^0.1.1" + "@esbuild-plugins/node-modules-polyfill" "^0.1.4" + "@miniflare/core" "2.12.1" + "@miniflare/d1" "2.12.1" + "@miniflare/durable-objects" "2.12.1" + blake3-wasm "^2.1.5" + chokidar "^3.5.3" + esbuild "0.16.3" + miniflare "2.12.1" + nanoid "^3.3.3" + path-to-regexp "^6.2.0" + selfsigned "^2.0.1" + source-map "^0.7.4" + xxhash-wasm "^1.0.1" + optionalDependencies: + fsevents "~2.3.2" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.2.2: + version "8.12.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz" + integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +xxhash-wasm@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz" + integrity sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yauzl@^2.4.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +youch@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz" + integrity sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ== + dependencies: + "@types/stack-trace" "0.0.29" + cookie "^0.4.1" + mustache "^4.2.0" + stack-trace "0.0.10" From ebc144b0b8e57b2fcb78a4005ffa0ecbf5ea1ad2 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 7 Mar 2023 15:13:02 +0530 Subject: [PATCH 047/722] Updated tauri config --- ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/tauri.conf.json | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 6cf8a12d3..1221f2488 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -27,7 +27,7 @@ directories = "4.0.1" opener = "0.5.0" open = "2.0.1" sysinfo = "0.23.12" -tauri = { version = "1.2.1", features = ["api-all", "system-tray"] } +tauri = { version = "1.2.1", features = ["api-all", "system-tray", "updater"] } uuid = { version = "0.8", features = ["v4"] } localtunnel-client = "0.0.12" tokio = { version = "1.19.2", features = ["full"] } diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index fde77e1f8..c87c1f489 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -57,7 +57,12 @@ } }, "updater": { - "active": false + "active": true, + "endpoints": [ + "https://launcher-update-worker.perspect3vism.workers.dev/update/{{target}}/{{current_version}}" + ], + "dialog": false, + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEZBODdBOEY3OUM3QjRCOTQKUldTVVMzdWM5NmlIK3VGNFp3SllyZWhSK0pZaWZyd0ZQUFNmUnpZZDAyNTVQaGRBWUdXQU9aWHQK" }, "allowlist": { "all": true From 96f0948314824cb11956eb2422d70f3214c5e106 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 7 Mar 2023 15:13:23 +0530 Subject: [PATCH 048/722] updated worker name --- ui/worker/wrangler.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/worker/wrangler.toml b/ui/worker/wrangler.toml index 6bb717a01..9feaea8d2 100644 --- a/ui/worker/wrangler.toml +++ b/ui/worker/wrangler.toml @@ -1,4 +1,4 @@ -name = "worker" +name = "launcher-update-worker" main = "src/index.ts" compatibility_date = "2023-03-06" node_compat = true \ No newline at end of file From e943855864682c8858ec93dfeab9f8c5536fd261 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 9 Mar 2023 20:12:24 +0530 Subject: [PATCH 049/722] Changelog updated --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 72f6cb3bb..de6143ea4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -11,6 +11,7 @@ This project _loosely_ adheres to [Semantic Versioning](https://semver.org/spec/ - Holochain DHT status logs every 60 seconds [PR#277](https://github.com/perspect3vism/ad4m/pull/277) - ad4m-connect connection settings gives you the option of connecting to local or remote [PR#278](https://github.com/perspect3vism/ad4m/pull/278) - Convience overloads for telepresence functions: `setOnlineStatusU`, `sendSignalU`, `sendBroadcastU` in `NeighbourhoodProxy`, which take new type `PerspectiveUnsignedInput` as argument. This enables sending signed signals without having to create temporary perspectives. These functions sign the whole perspective including links. [PR#296](https://github.com/perspect3vism/ad4m/pull/296) + - ad4m-launcher now has update functionality [PR#304](https://github.com/perspect3vism/ad4m/pull/304) ### Changed - Auth screens for launcher & connect will now parse out the capabilities to a human readable string [PR#278](https://github.com/perspect3vism/ad4m/pull/278) From c4a0aef1b9a41f554fda202fa1230871104e6463 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 29 Mar 2023 17:53:51 +0100 Subject: [PATCH 050/722] bridge in entanglement proof changes to core services --- executor/src/core/LanguageController.ts | 3 + executor/src/core/agent/AgentService.ts | 31 ++++++- .../src/core/graphQL-interface/GraphQL.ts | 27 ++++++ .../Holochain/HolochainService.ts | 82 ++++++++++++++++++- executor/src/main.ts | 9 +- executor/src/tests/agent.ts | 31 ++++++- 6 files changed, 178 insertions(+), 5 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index e78c61766..49b586c0e 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -209,6 +209,9 @@ export default class LanguageController { sourceFilePath = path.join(process.env.PWD!, sourceFilePath) const bundleBytes = fs.readFileSync(sourceFilePath) + if (bundleBytes.length === 0) { + throw new Error("Language to be loaded does not contain any data") + } // @ts-ignore const hash = await this.ipfsHash(bundleBytes) console.debug("LanguageController.loadLanguage: loading language at path", sourceFilePath, "with hash", hash); diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index e5ae42846..04eb5ad9e 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -8,7 +8,7 @@ import { ReadOnlyLanguage, ExceptionType, } from "@perspect3vism/ad4m"; -import { Agent, ExpressionProof, AgentSignature } from "@perspect3vism/ad4m"; +import { Agent, ExpressionProof, AgentSignature, EntanglementProof } from "@perspect3vism/ad4m"; import secp256k1 from "secp256k1"; import * as secp256k1DIDKey from "@transmute/did-key-secp256k1"; import Signatures from "./Signatures"; @@ -89,6 +89,13 @@ export default class AgentService { return this.#readyPromise; } + get signingKeyId(): string { + if (!this.#signingKeyId) { + throw new Error("No signing key id on AgentService") + } + return this.#signingKeyId! + } + createSignedExpression(data: any): Expression { if (!this.isInitialized) { throw new Error("Can't sign without keystore"); @@ -123,6 +130,28 @@ export default class AgentService { return signedExpresssion; } + signString(data: string): string { + if(!this.isInitialized){ + throw new Error("Can't sign without keystore") + } + if(!this.isUnlocked()) { + throw new Error("Can't sign with locked keystore") + } + if(!this.#signingKeyId) { + throw new Error("Can't sign without signingKeyId") + } + + const payloadBytes = Signatures.buildMessageRaw(data) + + const key = this.getSigningKey() + const privKey = Uint8Array.from(Buffer.from(key.privateKey, key.encoding)) + + const sigObj = secp256k1.ecdsaSign(payloadBytes, privKey) + const sigBuffer = Buffer.from(sigObj.signature) + const sigHex = sigBuffer.toString('hex') + return sigHex + } + async updateAgent(a: Agent) { this.#agent = a; await this.storeAgentProfile(); diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index d5d3cbeee..29dd73cc3 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -237,6 +237,10 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return core.perspectivesController.allPerspectiveHandles() }, //@ts-ignore + agentGetEntanglementProofs: (parent, args, context, info) => { + return core.entanglementProofController.getEntanglementProofs(); + }, + //@ts-ignore getTrustedAgents: (parent, args, context, info) => { checkCapability(context.capabilities, Auth.RUNTIME_TRUSTED_AGENTS_READ_CAPABILITY) return core.runtimeService.getTrustedAgents(); @@ -260,6 +264,12 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return JSON.stringify(await core.holochainRequestAgentInfos()) }, + //@ts-ignore + runtimeVerifyStringSignedByDid: async (parent, args, context, info) => { + const { did, didSigningKeyId, data, signedData } = args; + return await core.signatureService.verifyStringSignedByDid(did, didSigningKeyId, data, signedData) + }, + //@ts-ignore runtimeFriendStatus: async (parent, args, context, info) => { checkCapability(context.capabilities, Auth.RUNTIME_FRIEND_STATUS_READ_CAPABILITY) @@ -297,6 +307,23 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { } }, Mutation: { + //@ts-ignore + agentAddEntanglementProofs: (parent, args, context, info) => { + const { proofs } = args; + core.entanglementProofController.addEntanglementProofs(proofs); + return core.entanglementProofController.getEntanglementProofs(); + }, + //@ts-ignore + agentDeleteEntanglementProofs: (parent, args, context, info) => { + const { proofs } = args; + core.entanglementProofController.deleteEntanglementProofs(proofs); + return core.entanglementProofController.getEntanglementProofs(); + }, + //@ts-ignore + agentEntanglementProofPreFlight: (parent, args, context, info) => { + const { deviceKey, deviceKeyType } = args; + return core.entanglementProofController.signDeviceKey(deviceKey, deviceKeyType); + }, //@ts-ignore agentRemoveApp: async (parent, args, context, info) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 3c9dce996..2fb4f6328 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -9,10 +9,15 @@ import type { Dna } from '@perspect3vism/ad4m' import type { ChildProcess } from 'child_process' import yaml from 'js-yaml'; import { AsyncQueue } from './Queue' + import { HolochainUnlockConfiguration } from '../../PerspectivismCore' +import EntanglementProofController from '../../EntanglementProof' +import AgentService from '../../agent/AgentService' +import fetch from "node-fetch"; export const bootstrapUrl = "https://bootstrap.holo.host" export const kitsuneProxy = "kitsune-proxy://f3gH2VMkJ4qvZJOXx0ccL_Zo5n-s_CnBjSzAsEHHDCA/kitsune-quic/h/137.184.142.208/p/5788/--" +const signingServiceVersion = "0.0.2"; export interface HolochainConfiguration { conductorPath?: string, @@ -42,8 +47,11 @@ export default class HolochainService { #signalCallbacks: [CellId, AppSignalCb, string][]; #queue: Map #languageDnaHashes: Map + #agentService: AgentService + #entanglementProofController?: EntanglementProofController + #signingService?: CellId - constructor(config: HolochainConfiguration) { + constructor(config: HolochainConfiguration, agentService: AgentService, entanglementProofController?: EntanglementProofController) { let { conductorPath, dataPath, @@ -57,6 +65,8 @@ export default class HolochainService { } = config; this.#didResolveError = false; + this.#agentService = agentService; + this.#entanglementProofController = entanglementProofController; console.log("HolochainService: Creating low-db instance for holochain-serivce"); this.#dataPath = dataPath @@ -168,6 +178,45 @@ export default class HolochainService { this.#appWebsocket.on('signal', this.handleCallback.bind(this)) console.debug("HolochainService: Holochain app interface connected on port", this.#appPort) }; + + //Install signing service DNA + const activeApps = await this.#adminWebsocket!.listApps({status_filter: AppStatusFilter.Enabled}); + if (!activeApps.map(value => value.installed_app_id).includes("signing_service")) { + const pubKey = await this.pubKeyForLanguage("main"); + + const dest = path.join(this.#dataPath, "signing.dna"); + const res = await fetch(`https://github.com/perspect3vism/signing-service/releases/download/${signingServiceVersion}/signing.dna`); + const fileStream = fs.createWriteStream(dest); + await new Promise((resolve, reject) => { + res.body.pipe(fileStream); + res.body.on("error", reject); + fileStream.on("finish", resolve); + }); + + const hash = await this.#adminWebsocket!.registerDna({ + path: dest + }) + + const installedApp = await this.#adminWebsocket!.installApp({ + installed_app_id: "signing_service", agent_key: pubKey, dnas: [{hash: hash, role_id: "crypto"}] + }) + this.#signingService = installedApp.cell_data[0].cell_id; + + try { + await this.#adminWebsocket!.activateApp({installed_app_id: "signing_service"}) + } catch(e) { + console.error("HolochainService: ERROR activating app signing_service", " - ", e) + } + } else { + const { cell_data } = await this.#appWebsocket!.appInfo({installed_app_id: "signing_service"}) + const cell = cell_data.find(c => c.role_id === "crypto") + if(!cell) { + const e = new Error(`No DNA with nick signing_service found for language signing service DNA`) + throw e + } + this.#signingService = cell.cell_id; + } + resolveReady!() this.#didResolveError = false; } catch(e) { @@ -196,6 +245,22 @@ export default class HolochainService { this.#didResolveError = false; } + async callSigningService(data: string): Promise { + if (!this.#signingService) { + throw new Error("Signing service DNA is not init'd yet!") + } + const pubKey = await this.pubKeyForLanguage("main"); + const result = await this.#appWebsocket!.callZome({ + cap_secret: null, + cell_id: this.#signingService!, + zome_name: "crypto", + fn_name: "sign", + payload: data, + provenance: pubKey + }) + return result.toString("hex") + } + async stop() { await this.#ready console.log("HolochainService.stop(): Stopping holochain process"); @@ -305,10 +370,23 @@ export default class HolochainService { } } }); + + const did = this.#agentService.did; + //Did should only ever be undefined when the system DNA's get init'd before agent create occurs + //These system DNA's do not currently need EP proof's + let membraneProof; + if(did) { + const signedDid = await this.callSigningService(did); + const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(Buffer.from(pubKey).toString("base64"), signedDid); + membraneProof = {"ad4mDidEntanglement": Buffer.from(JSON.stringify(didHolochainEntanglement))}; + } else { + membraneProof = {}; + } + //console.log("HolochainService: Installing DNA:", dna, "at data path:", this.#dataPath, "\n"); //Install the app; with on the fly generated app bundle const installAppResult = await this.#adminWebsocket!.installApp({ - installed_app_id: lang, agent_key: pubKey, membrane_proofs: {}, bundle: { + installed_app_id: lang, agent_key: pubKey, membrane_proofs: membraneProof, bundle: { manifest: { manifest_version: "1", name: lang, diff --git a/executor/src/main.ts b/executor/src/main.ts index 67a7b15f1..b0b20ce57 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -25,6 +25,10 @@ export interface OuterConfig { appLangAliases?: object, //Should the graphql server be started as mocking service mocks: boolean, + //Should we start a dApp UI server to allow connecting of crypto wallets + runDappServer: boolean, + //Optional port for the dApp UI server + dAppPort?: number, //Port for graphql server gqlPort?: number, //Port for holochain admin port @@ -84,12 +88,14 @@ export interface SeedFileSchema { export async function init(config: OuterConfig): Promise { let { resourcePath, appDataPath, networkBootstrapSeed, appLangAliases, bootstrapFixtures, languageLanguageOnly, - mocks, gqlPort, ipfsSwarmPort, ipfsRepoPath, reqCredential, swiplPath, swiplHomePath + mocks, gqlPort, ipfsSwarmPort, ipfsRepoPath, reqCredential, swiplPath, swiplHomePath,runDappServer, + dAppPort } = config if(!gqlPort) gqlPort = 4000 // Check to see if PORT 2000 & 1337 are available if not returns a random PORT if(!config.hcPortAdmin) config.hcPortAdmin = await getPort({ port: 2000 }); if(!config.hcPortApp) config.hcPortApp = await getPort({ port: 1337 }); + if(!dAppPort) dAppPort = await getPort({port: 4200}) if(config.hcUseMdns === undefined) config.hcUseMdns = false if(config.hcUseProxy === undefined) config.hcUseProxy = true if(config.hcUseBootstrap === undefined) config.hcUseBootstrap = true @@ -192,6 +198,7 @@ export async function init(config: OuterConfig): Promise { console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); await core.startGraphQLServer(gqlPort, mocks, config); + if (runDappServer) { core.startDAppServer(dAppPort) }; console.log("\x1b[31m", "GraphQL server started, Unlock the agent to start holohchain", "\x1b[0m"); diff --git a/executor/src/tests/agent.ts b/executor/src/tests/agent.ts index 1f254b8b3..0af7a13ef 100644 --- a/executor/src/tests/agent.ts +++ b/executor/src/tests/agent.ts @@ -1,4 +1,4 @@ -import { Perspective, LinkExpression, Link, ExpressionProof } from "@perspect3vism/ad4m"; +import { Perspective, LinkExpression, Link, ExpressionProof, EntanglementProofInput } from "@perspect3vism/ad4m"; import { TestContext } from './integration.test' import sleep from './sleep' import { expect } from "chai"; @@ -128,6 +128,35 @@ export default function agentTests(testContext: TestContext) { expect(currentAgentPostDeletion.perspective).not.to.be.undefined; expect(currentAgentPostDeletion.perspective!.links.length).to.equal(1); }) + it('can create entanglementProofPreFlight', async () => { + const ad4mClient = testContext.ad4mClient!; + + //Check can generate a preflight key + const preFlight = await ad4mClient.agent.entanglementProofPreFlight("ethAddr", "ethereum"); + expect(preFlight.deviceKey).to.be("ethAddr"); + expect(preFlight.deviceKeyType).to.be("ethereum"); + expect(preFlight.didSignedByDeviceKey).to.be.null; + + const verify = await ad4mClient.runtime.verifyStringSignedByDid(preFlight.did, preFlight.didSigningKeyId, "ethAddr", preFlight.deviceKeySignedByDid); + expect(verify).to.be.true; + + //Check can save a entanglement proof + preFlight.didSignedByDeviceKey = "ethSignedDID"; + const addProof = await ad4mClient.agent.addEntanglementProofs([preFlight as EntanglementProofInput]); + expect(addProof[0]).to.equal(preFlight); + + //Check can get entanglment proofs + const getProofs = await ad4mClient.agent.getEntanglementProofs(); + expect(getProofs[0]).to.equal(preFlight); + + //Check can delete entanglement proofs + const deleteProofs = await ad4mClient.agent.deleteEntanglementProofs([preFlight as EntanglementProofInput]); + expect(deleteProofs.length).to.be.equal(0); + + //Check entanglement proof is deleted on get + const getProofsPostDelete = await ad4mClient.agent.getEntanglementProofs(); + expect(getProofsPostDelete.length).to.be.equal(0); + }) }) } } \ No newline at end of file From bd39a87e5a9aa0f979a9c183959cccc1844d900b Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 31 Mar 2023 14:30:51 +0100 Subject: [PATCH 051/722] update holochain service --- .../Holochain/HolochainService.ts | 67 ++++++++++++------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 2fb4f6328..95b42ab14 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -1,4 +1,4 @@ -import { AdminWebsocket, AgentPubKey, AppSignalCb, AppWebsocket, encodeHashToBase64, AppSignal, CellId, CellType, setSigningCredentials, AgentInfoResponse, SigningCredentials, generateSigningKeyPair, GrantedFunctionsType, signZomeCall, getSigningCredentials } from '@holochain/client' +import { AdminWebsocket, AgentPubKey, AppSignalCb, AppWebsocket, encodeHashToBase64, AppSignal, CellId, CellType, setSigningCredentials, AgentInfoResponse, SigningCredentials, generateSigningKeyPair, GrantedFunctionsType, signZomeCall, getSigningCredentials, CellInfo } from '@holochain/client' import low from 'lowdb' import FileSync from 'lowdb/adapters/FileSync' import path from 'path' @@ -180,10 +180,8 @@ export default class HolochainService { }; //Install signing service DNA - const activeApps = await this.#adminWebsocket!.listApps({status_filter: AppStatusFilter.Enabled}); + const activeApps = await this.#adminWebsocket!.listApps({}); if (!activeApps.map(value => value.installed_app_id).includes("signing_service")) { - const pubKey = await this.pubKeyForLanguage("main"); - const dest = path.join(this.#dataPath, "signing.dna"); const res = await fetch(`https://github.com/perspect3vism/signing-service/releases/download/${signingServiceVersion}/signing.dna`); const fileStream = fs.createWriteStream(dest); @@ -193,28 +191,44 @@ export default class HolochainService { fileStream.on("finish", resolve); }); - const hash = await this.#adminWebsocket!.registerDna({ - path: dest - }) - - const installedApp = await this.#adminWebsocket!.installApp({ - installed_app_id: "signing_service", agent_key: pubKey, dnas: [{hash: hash, role_id: "crypto"}] - }) - this.#signingService = installedApp.cell_data[0].cell_id; - - try { - await this.#adminWebsocket!.activateApp({installed_app_id: "signing_service"}) - } catch(e) { - console.error("HolochainService: ERROR activating app signing_service", " - ", e) + const dnas = [ + { + file: Buffer.from(fs.readFileSync(dest)), + nick: "signing_service", + zomeCalls: [ + ["signing_service", "sign"], + ] + } + ] as Dna[]; + const cellIds = await this.ensureInstallDNAforLanguage("signing_service", dnas, undefined); + if (cellIds.length > 0) { + this.#signingService = cellIds[0]; + } else { + throw new Error("Could not install signing service DNA"); } } else { - const { cell_data } = await this.#appWebsocket!.appInfo({installed_app_id: "signing_service"}) - const cell = cell_data.find(c => c.role_id === "crypto") - if(!cell) { - const e = new Error(`No DNA with nick signing_service found for language signing service DNA`) - throw e + const activeApps = await this.#adminWebsocket!.listApps({}); + let signingService = activeApps.find(app => app.installed_app_id === "signing_service"); + if (!signingService) { + throw new Error("Could not find signing service DNA"); } - this.#signingService = cell.cell_id; + const cellInfo = signingService.cell_info; + + Object.keys(cellInfo).forEach(async roleName => { + const cellData = cellInfo[roleName]; + + for (const innerCellData of cellData) { + const cellId = (CellType.Provisioned in innerCellData) ? innerCellData[CellType.Provisioned].cell_id : null + if (!cellId) { + throw new Error(`HolochainService: ERROR: Could not get cellId from cell_info: ${cellInfo}`); + } + if(!cellId) { + const e = new Error(`No DNA with nick signing_service found for language signing service DNA`) + throw e + } + this.#signingService = cellId; + } + }) } resolveReady!() @@ -342,7 +356,7 @@ export default class HolochainService { return signingCredentials; } - async ensureInstallDNAforLanguage(lang: string, dnas: Dna[], callback: AppSignalCb | undefined): Promise { + async ensureInstallDNAforLanguage(lang: string, dnas: Dna[], callback: AppSignalCb | undefined): Promise { await this.#ready if (this.#didResolveError) { console.error("HolochainService.ensureInstallDNAForLanguage: Warning attempting to install holochain DNA when conductor did not start error free...") @@ -352,6 +366,7 @@ export default class HolochainService { const activeApps = await this.#adminWebsocket!.listApps({}); let languageApp = activeApps.find(app => app.installed_app_id === lang); //console.warn("HolochainService: Found running apps:", activeApps); + let cellIds = [] as CellId[]; if(!languageApp) { // 1. install app @@ -400,7 +415,7 @@ export default class HolochainService { //console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); } catch(e) { console.error("HolochainService: InstallApp, got error: ", e); - return; + return []; } // 2. activate app @@ -428,6 +443,7 @@ export default class HolochainService { if (!cellId) { throw new Error(`HolochainService: ERROR: Could not get cellId from cell_info: ${cellInfo}`); } + cellIds.push(cellId); let hash = cellId[0]; if (hash) hashes.push(hash); @@ -453,6 +469,7 @@ export default class HolochainService { this.#languageDnaHashes.set(lang, hashes); } } + return cellIds; } async removeDnaForLang(lang: string) { From b9478378b1d3dcb5b4dbb3eb599cfda869f7e220 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 31 Mar 2023 18:20:03 +0100 Subject: [PATCH 052/722] bump signing service version --- .../src/core/storage-services/Holochain/HolochainService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 95b42ab14..ba8c7f2b0 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -17,7 +17,7 @@ import fetch from "node-fetch"; export const bootstrapUrl = "https://bootstrap.holo.host" export const kitsuneProxy = "kitsune-proxy://f3gH2VMkJ4qvZJOXx0ccL_Zo5n-s_CnBjSzAsEHHDCA/kitsune-quic/h/137.184.142.208/p/5788/--" -const signingServiceVersion = "0.0.2"; +const signingServiceVersion = "0.0.3"; export interface HolochainConfiguration { conductorPath?: string, From 3ff30e0e831c8f864ef3610f45f4a8ea757f0d87 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 31 Mar 2023 18:30:20 +0100 Subject: [PATCH 053/722] fix remaining typescript errors --- Cargo.lock | 6 +- executor/src/core/PerspectivismCore.ts | 2 +- .../Holochain/HolochainLanguageDelegate.ts | 3 +- executor/src/testutils/publishTestLangs.ts | 6 +- executor/src/types.d.ts | 55 ------------------- 5 files changed, 9 insertions(+), 63 deletions(-) delete mode 100644 executor/src/types.d.ts diff --git a/Cargo.lock b/Cargo.lock index 019629d99..730adf2c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" [[package]] name = "ad4m" -version = "0.3.3" +version = "0.3.4" dependencies = [ "ad4m-client", "anyhow", @@ -32,7 +32,7 @@ dependencies = [ [[package]] name = "ad4m-client" -version = "0.3.3" +version = "0.3.4" dependencies = [ "anyhow", "async-std", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "ad4m-launcher" -version = "0.3.3" +version = "0.3.4" dependencies = [ "ad4m-client", "directories", diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index a46bc2d7f..c6f032a95 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -122,7 +122,7 @@ export default class PerspectivismCore { get entanglementProofController(): EntanglementProofController { if (!this.#entanglementProofController) { - this.#entanglementProofController = new EntanglementProofController(Config.rootConfigPath, this.#agentService); + this.#entanglementProofController = new EntanglementProofController(this.#config.rootConfigPath, this.#agentService); } return this.#entanglementProofController } diff --git a/executor/src/core/storage-services/Holochain/HolochainLanguageDelegate.ts b/executor/src/core/storage-services/Holochain/HolochainLanguageDelegate.ts index 0ef8710f7..3f67183b9 100644 --- a/executor/src/core/storage-services/Holochain/HolochainLanguageDelegate.ts +++ b/executor/src/core/storage-services/Holochain/HolochainLanguageDelegate.ts @@ -15,7 +15,8 @@ export default class HolochainLanguageDelegate { } async registerDNAs(dnas: Dna[], holochainSignalCallback?: AppSignalCb): Promise { - return await this.#holochainService.ensureInstallDNAforLanguage(this.#languageHash, dnas, holochainSignalCallback) + const _cells = await this.#holochainService.ensureInstallDNAforLanguage(this.#languageHash, dnas, holochainSignalCallback); + return; } async call(dnaNick: string, zomeName: string, fnName: string, params: object|string): Promise { diff --git a/executor/src/testutils/publishTestLangs.ts b/executor/src/testutils/publishTestLangs.ts index 50fde8e1b..0a5d7325e 100644 --- a/executor/src/testutils/publishTestLangs.ts +++ b/executor/src/testutils/publishTestLangs.ts @@ -2,9 +2,8 @@ import { ApolloClient, InMemoryCache } from "@apollo/client/core"; import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; import { createClient } from "graphql-ws"; import Websocket from "ws"; -import main from "../main"; +import main, { OuterConfig } from "../main"; import path from "path"; -import { OuterConfig } from "../types"; import { Ad4mClient, LanguageMetaInput } from "@perspect3vism/ad4m"; import fs from "fs-extra"; import { exit } from "process"; @@ -110,7 +109,8 @@ async function publish() { hcUseBootstrap: false, hcUseProxy: false, hcUseLocalProxy: false, - hcUseMdns: true + hcUseMdns: true, + runDappServer: false } as OuterConfig) const ad4mClient = new Ad4mClient(apolloClient(4000)); diff --git a/executor/src/types.d.ts b/executor/src/types.d.ts deleted file mode 100644 index 51f6c7874..000000000 --- a/executor/src/types.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -import("./core/PerspectivismCore"); // Don't delete this line. -import { PerspectivismCore } from "./core/PerspectivismCore"; - -//Module types -export interface OuterConfig { - //Path to resources used by ad4m-executor such as; hc, holochain, prolog - resourcePath: string - //Path to be used for storing ad4m data - appDataPath: string - //Seed file used to load initial languages & agent configuration - networkBootstrapSeed: string - //Languages & perspectives to be bootstrapped into ad4m-executor without requirment for using language language - bootstrapFixtures?: BootstrapFixtures, - //Aliases used by application running ad4m-executor; should be in form {"alias": "language-address"} - appLangAliases?: object, - //Should the graphql server be started as mocking service - mocks: boolean, - //Port for graphql server - gqlPort?: number, - //Port for holochain admin port - hcPortAdmin?: number, - //Port for holochain application port - hcPortApp?: number, - //Port for IPFS swarm - ipfsSwarmPort?: number, - //Port for IPFS repo - ipfsRepoPath?: string - //Should holochain use a local proxy - hcUseLocalProxy?: boolean, - //Should holochain use Mdns - hcUseMdns?: boolean, - //Should holochain use a proxy - hcUseProxy?: boolean, - //Should holochain use a bootstrap server - hcUseBootstrap?: boolean, - //Should ad4m-executor connect to an existing holochain instance, or spawn its own - connectHolochain?: boolean, - //The credential used by admin client to make request - reqCredential?: string, -} - -export interface Config { - appDataPath: string - appResourcePath: string - languageLanguageBundle: string - systemLanguages: string[] - preloadLanguages: string[] - directMessageLanguage: string - languageAliases?: LanguageAlias - bootstrapFixtures?: BootstrapFixtures -} - -export function init(config: OuterConfig): Promise; - -export {PerspectivismCore}; \ No newline at end of file From d82f955a034ccfd5b756e60577e15b33dd89ab64 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 31 Mar 2023 18:31:14 +0100 Subject: [PATCH 054/722] run dapp server in ad4m-host --- host/src/commands/serve.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/host/src/commands/serve.ts b/host/src/commands/serve.ts index 96fda00b0..4d3e7c120 100644 --- a/host/src/commands/serve.ts +++ b/host/src/commands/serve.ts @@ -125,6 +125,7 @@ export const handler = async (argv: Arguments): Promise => { }, appLangAliases: JSON.parse(appLangAliases), mocks: false, + runDappServer: true, gqlPort, hcPortAdmin: hcAdminPort, hcPortApp: hcAppPort, From 263adb127d1a43cbb690a3ff98ddf66cbc3d78bb Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Apr 2023 16:23:21 +0100 Subject: [PATCH 055/722] remove un-necassary buffer.from() in HolochainService --- .../src/core/storage-services/Holochain/HolochainService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index ba8c7f2b0..6d814e36c 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -193,7 +193,7 @@ export default class HolochainService { const dnas = [ { - file: Buffer.from(fs.readFileSync(dest)), + file: fs.readFileSync(dest), nick: "signing_service", zomeCalls: [ ["signing_service", "sign"], From 96c8b6de911ed4d93f7c889465a8c6438ac3c754 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Apr 2023 16:47:29 +0100 Subject: [PATCH 056/722] fix broken imports on test --- executor/src/tests/app.test.ts | 5 +++-- executor/src/tests/authentication.test.ts | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/executor/src/tests/app.test.ts b/executor/src/tests/app.test.ts index f5719e88a..bb4583b39 100644 --- a/executor/src/tests/app.test.ts +++ b/executor/src/tests/app.test.ts @@ -2,7 +2,7 @@ import { ApolloClient, InMemoryCache } from "@apollo/client/core"; import Websocket from "ws"; import main from "../main"; import path from "path"; -import { OuterConfig } from "../types"; +import { OuterConfig } from "../main"; import { Ad4mClient, CapabilityInput, AuthInfoInput } from "@perspect3vism/ad4m"; import fs from "fs-extra"; import PerspectivismCore from "../core/PerspectivismCore"; @@ -83,7 +83,8 @@ describe("Apps integration tests", () => { hcUseProxy: false, hcUseLocalProxy: false, hcUseMdns: true, - reqCredential: "123" + reqCredential: "123", + runDappServer: false } as OuterConfig) // @ts-ignore diff --git a/executor/src/tests/authentication.test.ts b/executor/src/tests/authentication.test.ts index ed4def3f2..5ede8ca81 100644 --- a/executor/src/tests/authentication.test.ts +++ b/executor/src/tests/authentication.test.ts @@ -2,7 +2,7 @@ import { ApolloClient, InMemoryCache } from "@apollo/client/core"; import Websocket from "ws"; import main from "../main"; import path from "path"; -import { OuterConfig } from "../types"; +import { OuterConfig } from "../main"; import { Ad4mClient, AuthInfoInput, CapabilityInput } from "@perspect3vism/ad4m"; import fs from "fs-extra"; import PerspectivismCore from "../core/PerspectivismCore"; @@ -81,7 +81,8 @@ describe("Authentication integration tests", () => { hcUseBootstrap: false, hcUseProxy: false, hcUseLocalProxy: false, - hcUseMdns: true + hcUseMdns: true, + runDappServer: false } as OuterConfig) // @ts-ignore @@ -159,7 +160,8 @@ describe("Authentication integration tests", () => { hcUseProxy: false, hcUseLocalProxy: false, hcUseMdns: true, - reqCredential: "123" + reqCredential: "123", + runDappServer: false } as OuterConfig) // @ts-ignore From 026ccc70e96913e459e2b5ae63599dc3d428a2b0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Apr 2023 16:47:40 +0100 Subject: [PATCH 057/722] fix agent test assertions --- executor/src/tests/agent.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executor/src/tests/agent.ts b/executor/src/tests/agent.ts index 0af7a13ef..51de0290c 100644 --- a/executor/src/tests/agent.ts +++ b/executor/src/tests/agent.ts @@ -133,8 +133,8 @@ export default function agentTests(testContext: TestContext) { //Check can generate a preflight key const preFlight = await ad4mClient.agent.entanglementProofPreFlight("ethAddr", "ethereum"); - expect(preFlight.deviceKey).to.be("ethAddr"); - expect(preFlight.deviceKeyType).to.be("ethereum"); + expect(preFlight.deviceKey).to.equal("ethAddr"); + expect(preFlight.deviceKeyType).to.equal("ethereum"); expect(preFlight.didSignedByDeviceKey).to.be.null; const verify = await ad4mClient.runtime.verifyStringSignedByDid(preFlight.did, preFlight.didSigningKeyId, "ethAddr", preFlight.deviceKeySignedByDid); From 6d99c8d34d56f5160771a74e0bdbf3e5da21e681 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Apr 2023 16:54:17 +0100 Subject: [PATCH 058/722] fix zome name and holochain ready unlock --- .../Holochain/HolochainService.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 6d814e36c..4fa1f1349 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -179,7 +179,9 @@ export default class HolochainService { console.debug("HolochainService: Holochain app interface connected on port", this.#appPort) }; - //Install signing service DNA + resolveReady!() + + //Install signing service DNA const activeApps = await this.#adminWebsocket!.listApps({}); if (!activeApps.map(value => value.installed_app_id).includes("signing_service")) { const dest = path.join(this.#dataPath, "signing.dna"); @@ -194,9 +196,10 @@ export default class HolochainService { const dnas = [ { file: fs.readFileSync(dest), - nick: "signing_service", + nick: "signing", zomeCalls: [ - ["signing_service", "sign"], + ["signing", "sign"], + ["signing", "verify"] ] } ] as Dna[]; @@ -231,7 +234,6 @@ export default class HolochainService { }) } - resolveReady!() this.#didResolveError = false; } catch(e) { console.error("HolochainService: connect Holochain process with error:", e) @@ -267,7 +269,7 @@ export default class HolochainService { const result = await this.#appWebsocket!.callZome({ cap_secret: null, cell_id: this.#signingService!, - zome_name: "crypto", + zome_name: "crypto_signing", fn_name: "sign", payload: data, provenance: pubKey @@ -390,7 +392,7 @@ export default class HolochainService { //Did should only ever be undefined when the system DNA's get init'd before agent create occurs //These system DNA's do not currently need EP proof's let membraneProof; - if(did) { + if(did && lang != "signing_service") { const signedDid = await this.callSigningService(did); const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(Buffer.from(pubKey).toString("base64"), signedDid); membraneProof = {"ad4mDidEntanglement": Buffer.from(JSON.stringify(didHolochainEntanglement))}; @@ -412,7 +414,7 @@ export default class HolochainService { } }) - //console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); + // console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); } catch(e) { console.error("HolochainService: InstallApp, got error: ", e); return []; From 2381f5ecfe4a320daf7ff01bee0de0a114a982ea Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Apr 2023 16:54:24 +0100 Subject: [PATCH 059/722] fix agent test assertions --- executor/src/tests/agent.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executor/src/tests/agent.ts b/executor/src/tests/agent.ts index 51de0290c..57fe9ba4b 100644 --- a/executor/src/tests/agent.ts +++ b/executor/src/tests/agent.ts @@ -143,11 +143,11 @@ export default function agentTests(testContext: TestContext) { //Check can save a entanglement proof preFlight.didSignedByDeviceKey = "ethSignedDID"; const addProof = await ad4mClient.agent.addEntanglementProofs([preFlight as EntanglementProofInput]); - expect(addProof[0]).to.equal(preFlight); + expect(addProof[0]).to.deep.equal(preFlight); //Check can get entanglment proofs const getProofs = await ad4mClient.agent.getEntanglementProofs(); - expect(getProofs[0]).to.equal(preFlight); + expect(getProofs[0]).to.deep.equal(preFlight); //Check can delete entanglement proofs const deleteProofs = await ad4mClient.agent.deleteEntanglementProofs([preFlight as EntanglementProofInput]); From b9185b0ddbffa353f0ae10af4415f2b19b1ccedb Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Mon, 3 Apr 2023 18:42:36 +0100 Subject: [PATCH 060/722] Deno core with #[op] FFI from tutorial --- Cargo.lock | 373 +++++++++++++++++++++++++++-------- Cargo.toml | 1 + rust-executor/Cargo.toml | 10 + rust-executor/example.js | 23 +++ rust-executor/src/main.rs | 59 ++++++ rust-executor/src/runtime.js | 31 +++ 6 files changed, 414 insertions(+), 83 deletions(-) create mode 100644 rust-executor/Cargo.toml create mode 100644 rust-executor/example.js create mode 100644 rust-executor/src/main.rs create mode 100644 rust-executor/src/runtime.js diff --git a/Cargo.lock b/Cargo.lock index 730adf2c3..fd2ee6aff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -159,7 +159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -421,7 +421,7 @@ checksum = "7b04ce3d2372d05d1ef4ea3fdf427da6ae3c17ca06d688a107b5344836276bc3" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -514,9 +514,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.3.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" [[package]] name = "cache-padded" @@ -645,7 +645,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -922,7 +922,7 @@ dependencies = [ "proc-macro2", "quote", "smallvec", - "syn", + "syn 1.0.103", ] [[package]] @@ -932,7 +932,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" dependencies = [ "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -942,7 +942,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -975,7 +975,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn", + "syn 1.0.103", ] [[package]] @@ -992,7 +992,7 @@ checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -1021,7 +1021,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn", + "syn 1.0.103", ] [[package]] @@ -1031,7 +1031,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cabdef46a6ff3c06e337a9c0c6b7d2f71aefae4ab582ed319a0d454ea1085f9" dependencies = [ "cynic-codegen", - "syn", + "syn 1.0.103", ] [[package]] @@ -1055,7 +1055,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn", + "syn 1.0.103", ] [[package]] @@ -1066,9 +1066,15 @@ checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core", "quote", - "syn", + "syn 1.0.103", ] +[[package]] +name = "data-encoding" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" + [[package]] name = "dbus" version = "0.9.6" @@ -1080,6 +1086,46 @@ dependencies = [ "winapi", ] +[[package]] +name = "deno_core" +version = "0.174.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8077367e7e7ab2f52f1bc6285af301a1a6328b984991a3ff22236ad79862fce3" +dependencies = [ + "anyhow", + "bytes", + "deno_ops", + "futures", + "indexmap", + "libc", + "log", + "once_cell", + "parking_lot 0.12.1", + "pin-project", + "serde", + "serde_json", + "serde_v8", + "smallvec", + "sourcemap", + "url", + "v8", +] + +[[package]] +name = "deno_ops" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc9d81c9e5cd9590be6043546f4565670cb6e6a7de1986fd1c354adce04eb9d4" +dependencies = [ + "once_cell", + "pmutil", + "proc-macro-crate", + "proc-macro2", + "quote", + "regex", + "syn 1.0.103", +] + [[package]] name = "derivative" version = "2.2.0" @@ -1088,7 +1134,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -1101,7 +1147,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn", + "syn 1.0.103", ] [[package]] @@ -1288,7 +1334,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", "synstructure", ] @@ -1374,6 +1420,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fslock" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57eafdd0c16f57161105ae1b98a1238f97645f2f588438b2949c99a2af9616bf" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "futf" version = "0.1.5" @@ -1455,7 +1511,7 @@ checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -1682,7 +1738,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -1809,7 +1865,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn", + "syn 1.0.103", ] [[package]] @@ -1820,7 +1876,7 @@ checksum = "e56b093bfda71de1da99758b036f4cc811fd2511c8a76f75680e9ffbd2bb4251" dependencies = [ "graphql_client_codegen", "proc-macro2", - "syn", + "syn 1.0.103", ] [[package]] @@ -1875,7 +1931,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -1938,7 +1994,7 @@ dependencies = [ "markup5ever", "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -2074,6 +2130,12 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + [[package]] name = "ignore" version = "0.4.18" @@ -2288,9 +2350,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.137" +version = "0.2.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" +checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" [[package]] name = "libdbus-sys" @@ -2746,7 +2808,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -2799,9 +2861,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.16.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "onig" @@ -2884,7 +2946,7 @@ checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -3118,7 +3180,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -3132,7 +3194,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -3170,7 +3232,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -3205,6 +3267,17 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "pmutil" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.103", +] + [[package]] name = "png" version = "0.17.7" @@ -3272,7 +3345,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.103", "version_check", ] @@ -3295,9 +3368,9 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro2" -version = "1.0.47" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] @@ -3313,9 +3386,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.21" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] @@ -3572,12 +3645,29 @@ dependencies = [ "windows 0.37.0", ] +[[package]] +name = "rust-executor" +version = "0.1.0" +dependencies = [ + "deno_core", + "tokio", +] + [[package]] name = "rustc-demangle" version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + [[package]] name = "rustc_version" version = "0.3.3" @@ -3731,13 +3821,22 @@ dependencies = [ "thin-slice", ] +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser 0.7.0", +] + [[package]] name = "semver" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser", + "semver-parser 0.10.2", ] [[package]] @@ -3749,6 +3848,12 @@ dependencies = [ "serde", ] +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + [[package]] name = "semver-parser" version = "0.10.2" @@ -3760,9 +3865,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.147" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" dependencies = [ "serde_derive", ] @@ -3777,15 +3882,24 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_bytes" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -3794,6 +3908,7 @@ version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" dependencies = [ + "indexmap", "itoa 1.0.4", "ryu", "serde", @@ -3807,7 +3922,7 @@ checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -3822,6 +3937,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_v8" +version = "0.85.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dba78050262072324b0b1efba11db7367735251adf7ec734fd75780c598c743b" +dependencies = [ + "bytes", + "derive_more", + "serde", + "serde_bytes", + "smallvec", + "v8", +] + [[package]] name = "serde_with" version = "1.14.0" @@ -3841,7 +3970,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -3875,7 +4004,7 @@ checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -3984,9 +4113,9 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi", @@ -4020,6 +4149,21 @@ dependencies = [ "system-deps 5.0.0", ] +[[package]] +name = "sourcemap" +version = "6.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed16231c92d0a6f0388f56e0ab2be24ecff1173f8e22f0ea5e074d0525631cb" +dependencies = [ + "data-encoding", + "if_chain", + "rustc_version 0.2.3", + "serde", + "serde_json", + "unicode-id", + "url", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -4091,7 +4235,7 @@ dependencies = [ "heck 0.3.3", "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -4105,6 +4249,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -4113,7 +4268,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", "unicode-xid", ] @@ -4344,7 +4499,7 @@ dependencies = [ "heck 0.4.0", "proc-macro2", "quote", - "syn", + "syn 1.0.103", "tauri-codegen", "tauri-utils", ] @@ -4497,7 +4652,7 @@ checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -4575,14 +4730,13 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.22.0" +version = "1.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3" +checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" dependencies = [ "autocfg", "bytes", "libc", - "memchr", "mio 0.8.5", "num_cpus", "parking_lot 0.12.1", @@ -4590,18 +4744,18 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "winapi", + "windows-sys 0.45.0", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -4663,7 +4817,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -4766,6 +4920,12 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +[[package]] +name = "unicode-id" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d70b6494226b36008c8366c288d77190b3fad2eb4c10533139c1c1f461127f1a" + [[package]] name = "unicode-ident" version = "1.0.5" @@ -4865,6 +5025,18 @@ dependencies = [ "getrandom 0.2.8", ] +[[package]] +name = "v8" +version = "0.64.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2287b485fa902172da3722d7e557e083afd63921777e0c6e5c0fba28e6d59d3" +dependencies = [ + "bitflags", + "fslock", + "lazy_static", + "which", +] + [[package]] name = "valuable" version = "0.1.0" @@ -4977,7 +5149,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn", + "syn 1.0.103", "wasm-bindgen-shared", ] @@ -5011,7 +5183,7 @@ checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5099,7 +5271,7 @@ checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.103", ] [[package]] @@ -5126,6 +5298,17 @@ dependencies = [ "cc", ] +[[package]] +name = "which" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +dependencies = [ + "either", + "libc", + "once_cell", +] + [[package]] name = "winapi" version = "0.3.9" @@ -5213,7 +5396,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" dependencies = [ - "syn", + "syn 1.0.103", "windows-tokens", ] @@ -5243,12 +5426,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -5259,9 +5466,9 @@ checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_msvc" @@ -5289,9 +5496,9 @@ checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_i686_gnu" @@ -5319,9 +5526,9 @@ checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_msvc" @@ -5349,9 +5556,9 @@ checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_x86_64_gnu" @@ -5379,15 +5586,15 @@ checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_msvc" @@ -5415,9 +5622,9 @@ checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "winreg" diff --git a/Cargo.toml b/Cargo.toml index 4baf8a48e..fbcaceea9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,5 +3,6 @@ members = [ "cli", "rust-client", + "rust-executor", "ui/src-tauri" ] \ No newline at end of file diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml new file mode 100644 index 000000000..1a1091be1 --- /dev/null +++ b/rust-executor/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "rust-executor" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +deno_core = "0.174.0" +tokio = { version = "1.25.0", features = ["full"] } diff --git a/rust-executor/example.js b/rust-executor/example.js new file mode 100644 index 000000000..2bd317801 --- /dev/null +++ b/rust-executor/example.js @@ -0,0 +1,23 @@ +console.log("Hello rust executor! JS!!!"); +console.error("Fehler") + + +const path = "./log.txt"; +try { + const contents = await runjs.readFile(path); + console.log("Read from a file", contents); +} catch (err) { + console.error("Unable to read file", path, err); +} + +try{ + await runjs.writeFile(path, "I can write to a file."); +} catch(e) { + console.error("Couldn't write file:", e) +} + +const contents = await runjs.readFile(path); +console.log("Read from a file", path, "contents:", contents); +console.log("Removing file", path); +runjs.removeFile(path); +console.log("File removed"); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs new file mode 100644 index 000000000..a39daeb80 --- /dev/null +++ b/rust-executor/src/main.rs @@ -0,0 +1,59 @@ +use deno_core::include_js_files; +use deno_core::op; +use deno_core::Extension; +use std::rc::Rc; +use deno_core::error::AnyError; + +#[op] +async fn op_read_file(path: String) -> Result { + let contents = tokio::fs::read_to_string(path).await?; + Ok(contents) +} + +#[op] +async fn op_write_file(path: String, contents: String) -> Result<(), AnyError> { + tokio::fs::write(path, contents).await?; + Ok(()) +} + +#[op] +fn op_remove_file(path: String) -> Result<(), AnyError> { + std::fs::remove_file(path)?; + Ok(()) +} + +async fn run_js(file_path: &str) -> Result<(), AnyError> { + let main_module = deno_core::resolve_path(file_path)?; + let filesystem_extension = Extension::builder("runjs") + .esm(include_js_files!( + "runtime.js", + )) + .ops(vec![ + op_read_file::decl(), + op_write_file::decl(), + op_remove_file::decl(), + ]) + .build(); + let mut js_runtime = deno_core::JsRuntime::new(deno_core::RuntimeOptions { + module_loader: Some(Rc::new(deno_core::FsModuleLoader)), + extensions: vec![filesystem_extension], + ..Default::default() + }); + + js_runtime.execute_script("[runjs:runtime.js]", include_str!("./runtime.js")).unwrap(); + + let mod_id = js_runtime.load_main_module(&main_module, None).await?; + let result = js_runtime.mod_evaluate(mod_id); + js_runtime.run_event_loop(false).await?; + result.await? + } + +fn main() { + let runtime = tokio::runtime::Builder::new_current_thread() + .enable_all() + .build() + .unwrap(); + if let Err(error) = runtime.block_on(run_js("./example.js")) { + eprintln!("error: {}", error); + } +} diff --git a/rust-executor/src/runtime.js b/rust-executor/src/runtime.js new file mode 100644 index 000000000..d8ef5a9b1 --- /dev/null +++ b/rust-executor/src/runtime.js @@ -0,0 +1,31 @@ +((globalThis) => { + const core = Deno.core; + + function argsToMessage(...args) { + return args.map((arg) => JSON.stringify(arg)).join(" "); + } + + globalThis.console = { + log: (...args) => { + core.print(`[out]: ${argsToMessage(...args)}\n`, false); + }, + error: (...args) => { + core.print(`[err]: ${argsToMessage(...args)}\n`, true); + }, + }; + + globalThis.runjs = { + readFile: (path) => { + return core.opAsync("op_read_file", path); + }, + writeFile: (path, contents) => { + return core.opAsync("op_write_file", path, contents ); + }, + removeFile: (path) => { + return core.opAsync("op_remove_file", path); + }, + }; + })(globalThis); + + + \ No newline at end of file From fc41bc21c3f2dca3460ddc87ceabd869b6f0650e Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 10:19:42 +0100 Subject: [PATCH 061/722] Add bundle script to executor --- executor/package.json | 2 ++ executor/scripts/bundle.js | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 executor/scripts/bundle.js diff --git a/executor/package.json b/executor/package.json index 9afef94a2..426ea2d86 100644 --- a/executor/package.json +++ b/executor/package.json @@ -17,6 +17,7 @@ "types": "lib/main.d.ts", "scripts": { "build": "tsc", + "bundle": "node scripts/bundle.js", "run": "node --experimental-specifier-resolution=node lib/main.js", "prepare-test": "run-script-os", "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", @@ -76,6 +77,7 @@ "@types/ws": "8.5.4", "chai": "*", "chai-as-promised": "*", + "esbuild": "^0.17.15", "faker": "^5.1.0", "mocha": "*", "node-wget-js": "^1.0.1", diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js new file mode 100644 index 000000000..0701482d2 --- /dev/null +++ b/executor/scripts/bundle.js @@ -0,0 +1,16 @@ +import esbuild from 'esbuild' + +esbuild + .build({ + entryPoints: ['lib/main.js'], + outfile: 'lib/bundle.js', + bundle: true, + platform: 'node', + target: 'es2020', + format: 'esm', + plugins: [], + }) + .catch((error) => { + console.error(error); + process.exit(1); + }); \ No newline at end of file From 5ea706acfb53035f919915dd1dbb74e420aaeb52 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 11:39:30 +0100 Subject: [PATCH 062/722] Update to deno_core 0.179.0 --- Cargo.lock | 33 +++++++++++++++++++++++---------- rust-executor/Cargo.toml | 2 +- rust-executor/src/main.rs | 4 ++-- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fd2ee6aff..488f0c073 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -514,9 +514,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "cache-padded" @@ -1088,9 +1088,9 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.174.0" +version = "0.179.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8077367e7e7ab2f52f1bc6285af301a1a6328b984991a3ff22236ad79862fce3" +checksum = "8c9307ca2299cb7b0bdaa345cbdc82a252a8e4e5a4463e28f44c715d55e460fb" dependencies = [ "anyhow", "bytes", @@ -1113,9 +1113,9 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.52.0" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc9d81c9e5cd9590be6043546f4565670cb6e6a7de1986fd1c354adce04eb9d4" +checksum = "04610f07342fbb33a2b7ea7aa16a95ab71adb13a0ce858a8d1a1414660a83e3e" dependencies = [ "once_cell", "pmutil", @@ -2750,6 +2750,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", + "rand 0.8.5", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -3939,12 +3951,13 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.85.0" +version = "0.90.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba78050262072324b0b1efba11db7367735251adf7ec734fd75780c598c743b" +checksum = "916ca7852a4c5f0ba59ce4a46301bf7c7ad573c2c89a0fe67e90fe30dcbd6f7d" dependencies = [ "bytes", "derive_more", + "num-bigint", "serde", "serde_bytes", "smallvec", @@ -5027,9 +5040,9 @@ dependencies = [ [[package]] name = "v8" -version = "0.64.0" +version = "0.68.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2287b485fa902172da3722d7e557e083afd63921777e0c6e5c0fba28e6d59d3" +checksum = "81c69410b7435f1b74e82e243ba906d71e8b9bb350828291418b9311dbd77222" dependencies = [ "bitflags", "fslock", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 1a1091be1..877842d23 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -6,5 +6,5 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -deno_core = "0.174.0" +deno_core = "0.179.0" tokio = { version = "1.25.0", features = ["full"] } diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index a39daeb80..5d4807089 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -23,10 +23,10 @@ fn op_remove_file(path: String) -> Result<(), AnyError> { } async fn run_js(file_path: &str) -> Result<(), AnyError> { - let main_module = deno_core::resolve_path(file_path)?; + let main_module = deno_core::resolve_path(file_path, std::env::current_dir()?.as_ref())?; let filesystem_extension = Extension::builder("runjs") .esm(include_js_files!( - "runtime.js", + runtime "runtime.js", )) .ops(vec![ op_read_file::decl(), From 5d583918c9fabfc51ceb1eea1539c3b7d8425c3c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 12:28:40 +0100 Subject: [PATCH 063/722] WIP: include deno std lib instead of node --- executor/scripts/bundle.js | 53 +++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js index 0701482d2..52afa728b 100644 --- a/executor/scripts/bundle.js +++ b/executor/scripts/bundle.js @@ -1,4 +1,39 @@ import esbuild from 'esbuild' +import { polyfillNodeForDeno } from "esbuild-plugin-polyfill-node"; +import path from 'path' + +function denoAlias(nodeModule) { + return { + name: `${nodeModule}-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^${nodeModule}$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/${nodeModule}/mod.ts`, external: true }; + }); + }, + } +} + +function denoAliasLocal(nodeModule) { + return { + name: `${nodeModule}-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^${nodeModule}$`) }, (args) => { + return { path: path.resolve(`deno_std-0.177.0/node/${nodeModule}.ts`), external: false }; + }); + }, + } +} + +function denoAliasNode(nodeModule) { + return { + name: `${nodeModule}-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^${nodeModule}$`) }, (args) => { + return { path: `node:${nodeModule}`, external: true }; + }); + }, + } +} esbuild .build({ @@ -8,7 +43,23 @@ esbuild platform: 'node', target: 'es2020', format: 'esm', - plugins: [], + plugins: [ + ...[ + 'crypto', 'path', 'fs', 'child_process', 'net', 'dns', 'cluster', 'https', + 'dgram', 'os', 'tls', 'http', 'url', 'util', 'stream', 'events', 'tty', + 'zlib', 'assert', 'buffer', 'constants', 'querystring', 'string_decoder', + ].map(denoAliasLocal), + { + name: `dns-promisis-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^dns/promises$`) }, (args) => { + return { path: path.resolve(`deno_std-0.177.0/node/dns.ts`), external: false }; + }); + }, + }, + //polyfillNodeForDeno(), + ] + }) .catch((error) => { console.error(error); From 8840fc329a95db04663c6ff261b3b43d3030cd01 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 17:17:39 +0100 Subject: [PATCH 064/722] Working Deno worker --- rust-executor/Cargo.toml | 2 + rust-executor/src/main.rs | 113 +++++++++++++++++++++++++++++++------- 2 files changed, 96 insertions(+), 19 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 877842d23..20d8cf168 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -7,4 +7,6 @@ edition = "2021" [dependencies] deno_core = "0.179.0" +deno_runtime = "0.105.0" tokio = { version = "1.25.0", features = ["full"] } +url = "2.3.1" diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 5d4807089..963fb5fed 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,9 +1,32 @@ -use deno_core::include_js_files; -use deno_core::op; -use deno_core::Extension; + +//use deno_runtime::deno_core::include_js_files; +//use deno_runtime::deno_core::op; +//use deno_runtime::deno_core::Extension; +use deno_runtime::deno_core::resolve_path; +//use deno_core::{JsRuntime, RuntimeOptions}; +use deno_runtime::deno_core::FsModuleLoader; +use deno_runtime::deno_web::BlobStore; +use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel; use std::rc::Rc; -use deno_core::error::AnyError; +use std::sync::Arc; +use deno_runtime::deno_core::error::AnyError; +use deno_runtime::worker::MainWorker; +use deno_runtime::permissions::{PermissionsContainer}; +use deno_runtime::worker::WorkerOptions; +use deno_runtime::BootstrapOptions; + +//use deno_core::{JsRuntime, OpState, ZeroCopyBuf}; +//use std::cell::RefCell; + +/* +// Define the `op_print` op +fn op_print(state: &mut OpState, msg: ZeroCopyBuf, _: ()) -> Result<(), ()> { + let stdout = &mut state.borrow::>().borrow_mut(); + stdout.write_all(&msg).map_err(|_| ()) +} +*/ +/* #[op] async fn op_read_file(path: String) -> Result { let contents = tokio::fs::read_to_string(path).await?; @@ -21,10 +44,11 @@ fn op_remove_file(path: String) -> Result<(), AnyError> { std::fs::remove_file(path)?; Ok(()) } +*/ async fn run_js(file_path: &str) -> Result<(), AnyError> { - let main_module = deno_core::resolve_path(file_path, std::env::current_dir()?.as_ref())?; - let filesystem_extension = Extension::builder("runjs") + //let main_module = deno_core::resolve_path(file_path, std::env::current_dir()?.as_ref())?; + /*let filesystem_extension = Extension::builder("runjs") .esm(include_js_files!( runtime "runtime.js", )) @@ -34,18 +58,67 @@ async fn run_js(file_path: &str) -> Result<(), AnyError> { op_remove_file::decl(), ]) .build(); - let mut js_runtime = deno_core::JsRuntime::new(deno_core::RuntimeOptions { - module_loader: Some(Rc::new(deno_core::FsModuleLoader)), - extensions: vec![filesystem_extension], - ..Default::default() - }); - - js_runtime.execute_script("[runjs:runtime.js]", include_str!("./runtime.js")).unwrap(); - - let mod_id = js_runtime.load_main_module(&main_module, None).await?; - let result = js_runtime.mod_evaluate(mod_id); - js_runtime.run_event_loop(false).await?; - result.await? +*/ + + + let main_module = resolve_path(file_path, &std::env::current_dir().unwrap()).unwrap(); + + let options = WorkerOptions { + bootstrap: BootstrapOptions::default(), + extensions: vec![], + startup_snapshot: Some(deno_runtime::js::deno_isolate_init()), + unsafely_ignore_certificate_errors: None, + root_cert_store: None, + seed: None, + format_js_error_fn: None, + source_map_getter: None, + web_worker_preload_module_cb: Arc::new(|_| unreachable!()), + web_worker_pre_execute_module_cb: Arc::new(|_| unreachable!()), + create_web_worker_cb: Arc::new(|_| unreachable!()), + maybe_inspector_server: None, + should_break_on_first_statement: false, + should_wait_for_inspector_session: false, + module_loader: Rc::new(FsModuleLoader), + npm_resolver: None, + get_error_class_fn: None, + cache_storage_dir: None, + origin_storage_dir: None, + blob_store: BlobStore::default(), + broadcast_channel: InMemoryBroadcastChannel::default(), + shared_array_buffer_store: None, + compiled_wasm_module_store: None, + stdio: Default::default(), + }; + + let permissions = PermissionsContainer::allow_all(); + //let mut worker = MainWorker::bootstrap_from_options(main_module.clone(), permissions, options); + + let mut worker = MainWorker::from_options(main_module.clone(), permissions, options); + worker.bootstrap(&BootstrapOptions::default()); + + + //let runtime = &mut worker.js_runtime; + + // Register the `op_print` op + //runtime. register_op("op_print", op_sync(op_print)); + + + //worker.execute_script("[runjs:runtime.js]", include_str!("./runtime.js")).unwrap(); + worker.execute_main_module(&main_module).await.unwrap(); + + //let mut worker: MainWorker = create_worker(file_path); + //let mut js_runtime = worker.js_runtime; + //js_runtime.register_op("read_file", op_read_file); + + + + //let mod_id = worker.preload_main_module(&main_module, None).await?; + //let result = js_runtime.mod_evaluate(mod_id); + //js_runtime.run_event_loop(false).await?; + //result.await? + worker.run_event_loop(false).await?; + //worker.execute_main_module(&main_module).await?; + Ok(()) } fn main() { @@ -53,7 +126,9 @@ fn main() { .enable_all() .build() .unwrap(); - if let Err(error) = runtime.block_on(run_js("./example.js")) { + let run = run_js("../executor/lib/bundle.js"); + //let run = run_js("./example.js"); + if let Err(error) = runtime.block_on(run) { eprintln!("error: {}", error); } } From 87b3ad95b6cb9fb271815ae327042904a10f11a3 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 17:26:10 +0100 Subject: [PATCH 065/722] Deno compatible executor bundle --- executor/lib/deno.js | 14 ++++++++++++++ executor/scripts/bundle.js | 22 +++++++++++++++++++--- 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 executor/lib/deno.js diff --git a/executor/lib/deno.js b/executor/lib/deno.js new file mode 100644 index 000000000..028884b8e --- /dev/null +++ b/executor/lib/deno.js @@ -0,0 +1,14 @@ + +import "../deno_std-0.177.0/node/util.ts"; +import "../deno_std-0.177.0/node/global.ts"; +const process = globalThis.process; +const Buffer = globalThis.Buffer; +const setImmediate = globalThis.setImmediate; +const clearImmediate = globalThis.clearImmediate; + +console.log(process) +console.log(Buffer) +console.log(setImmediate) +console.log(clearImmediate) + +import "./main.js" diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js index 52afa728b..7e0c633cd 100644 --- a/executor/scripts/bundle.js +++ b/executor/scripts/bundle.js @@ -37,17 +37,26 @@ function denoAliasNode(nodeModule) { esbuild .build({ - entryPoints: ['lib/main.js'], + entryPoints: ['lib/deno.js'], outfile: 'lib/bundle.js', bundle: true, platform: 'node', target: 'es2020', format: 'esm', plugins: [ + { + name: `node:net`, + setup(build) { + build.onResolve({ filter: new RegExp(`^node:net$`) }, (args) => { + return { path: path.resolve(`deno_std-0.177.0/node/net.ts`), external: false }; + }); + }, + }, ...[ 'crypto', 'path', 'fs', 'child_process', 'net', 'dns', 'cluster', 'https', 'dgram', 'os', 'tls', 'http', 'url', 'util', 'stream', 'events', 'tty', 'zlib', 'assert', 'buffer', 'constants', 'querystring', 'string_decoder', + 'global' ].map(denoAliasLocal), { name: `dns-promisis-alias`, @@ -57,8 +66,15 @@ esbuild }); }, }, - //polyfillNodeForDeno(), - ] + { + name: `fs-promisis-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^fs/promises$`) }, (args) => { + return { path: path.resolve(`deno_std-0.177.0/node/fs.ts`), external: false }; + }); + }, + }, + ], }) .catch((error) => { From fa8bad1a8f4845cb60b4085b4b9f84a02b2728aa Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 4 Apr 2023 18:34:28 +0100 Subject: [PATCH 066/722] refactor integration tests to use ad4m-host instead of importing executor --- executor/package.json | 17 +- executor/scripts/build-test-language.ps1 | 3 - executor/scripts/download-languages-path | 1 - executor/scripts/install-binaries.ps1 | 29 - executor/scripts/prepareTestDirectory.sh | 18 - executor/scripts/run-all-test.ps1 | 1 - executor/src/tests/bootstrapSeed.json | 1 - executor/src/tests/integration.test.ts | 217 -- executor/src/tests/publishBootstrapSeed.json | 1 - executor/src/tests/sleep.ts | 3 - executor/src/tests/utils.ts | 23 - host/src/commands/serve.ts | 32 +- package.json | 7 +- tests/.gitignore | 9 + tests/js/.mocharc.json | 6 + tests/js/bootstrapSeed.json | 1 + tests/js/package.json | 29 +- tests/js/publishBootstrapSeed.json | 1 + tests/js/scripts/build-test-language.ps1 | 3 + .../js}/scripts/build-test-language.sh | 2 +- .../js}/scripts/cleanTestingData.js | 4 +- tests/js/scripts/download-languages-path | 1 + .../js}/scripts/get-builtin-test-langs.js | 6 +- .../scripts/injectLanguageLanguageBundle.js | 6 +- .../js}/scripts/injectPublishingAgent.js | 4 +- .../js}/scripts/prepareTestDirectory.ps1 | 6 +- tests/js/scripts/prepareTestDirectory.sh | 18 + tests/js/scripts/run-all-test.ps1 | 1 + tests/js/{ => sdna}/subject.pl | 0 {executor/src/tests => tests/js}/sdna/todo.pl | 0 .../js}/test-language/.gitignore | 0 .../tests => tests/js}/test-language/index.ts | 0 .../js}/test-language/package.json | 0 .../js}/test-language/rollup.config.js | 4 +- .../js}/test-language/tsconfig.json | 0 .../js}/test-language/yarn.lock | 0 .../src => tests/js}/tests/agent-language.ts | 4 +- {executor/src => tests/js}/tests/agent.ts | 4 +- {executor/src => tests/js}/tests/app.test.ts | 88 +- .../js}/tests/authentication.test.ts | 126 +- .../src => tests/js}/tests/direct-messages.ts | 4 +- .../src => tests/js}/tests/expression.ts | 4 +- tests/js/tests/full-integration.test.ts | 166 ++ tests/js/{ => tests}/integration.test.ts | 105 +- {executor/src => tests/js}/tests/language.ts | 12 +- .../src => tests/js}/tests/neighbourhood.ts | 4 +- .../src => tests/js}/tests/perspective.ts | 4 +- {executor/src => tests/js}/tests/runtime.ts | 4 +- tests/js/tests/simple.test.ts | 51 + .../src => tests/js}/tests/social-dna-flow.ts | 2 +- tests/js/tsconfig.json | 9 +- .../js/utils}/expression.ts | 0 .../src/testutils => tests/js/utils}/links.ts | 0 .../js/utils}/publishTestLangs.ts | 84 +- tests/js/utils/utils.ts | 116 + tests/js/yarn.lock | 2516 ----------------- turbo.json | 12 +- yarn.lock | 43 +- 58 files changed, 626 insertions(+), 3186 deletions(-) delete mode 100644 executor/scripts/build-test-language.ps1 delete mode 100644 executor/scripts/download-languages-path delete mode 100644 executor/scripts/install-binaries.ps1 delete mode 100755 executor/scripts/prepareTestDirectory.sh delete mode 100644 executor/scripts/run-all-test.ps1 delete mode 100644 executor/src/tests/bootstrapSeed.json delete mode 100644 executor/src/tests/integration.test.ts delete mode 100644 executor/src/tests/publishBootstrapSeed.json delete mode 100644 executor/src/tests/sleep.ts delete mode 100644 executor/src/tests/utils.ts create mode 100644 tests/.gitignore create mode 100644 tests/js/.mocharc.json create mode 100644 tests/js/bootstrapSeed.json create mode 100644 tests/js/publishBootstrapSeed.json create mode 100644 tests/js/scripts/build-test-language.ps1 rename {executor => tests/js}/scripts/build-test-language.sh (60%) rename {executor => tests/js}/scripts/cleanTestingData.js (88%) create mode 100644 tests/js/scripts/download-languages-path rename {executor => tests/js}/scripts/get-builtin-test-langs.js (91%) rename {executor => tests/js}/scripts/injectLanguageLanguageBundle.js (83%) rename {executor => tests/js}/scripts/injectPublishingAgent.js (84%) rename {executor => tests/js}/scripts/prepareTestDirectory.ps1 (83%) create mode 100755 tests/js/scripts/prepareTestDirectory.sh create mode 100644 tests/js/scripts/run-all-test.ps1 rename tests/js/{ => sdna}/subject.pl (100%) rename {executor/src/tests => tests/js}/sdna/todo.pl (100%) rename {executor/src/tests => tests/js}/test-language/.gitignore (100%) rename {executor/src/tests => tests/js}/test-language/index.ts (100%) rename {executor/src/tests => tests/js}/test-language/package.json (100%) rename {executor/src/tests => tests/js}/test-language/rollup.config.js (97%) rename {executor/src/tests => tests/js}/test-language/tsconfig.json (100%) rename {executor/src/tests => tests/js}/test-language/yarn.lock (100%) rename {executor/src => tests/js}/tests/agent-language.ts (90%) rename {executor/src => tests/js}/tests/agent.ts (98%) rename {executor/src => tests/js}/tests/app.test.ts (70%) rename {executor/src => tests/js}/tests/authentication.test.ts (72%) rename {executor/src => tests/js}/tests/direct-messages.ts (98%) rename {executor/src => tests/js}/tests/expression.ts (96%) create mode 100644 tests/js/tests/full-integration.test.ts rename tests/js/{ => tests}/integration.test.ts (89%) rename {executor/src => tests/js}/tests/language.ts (95%) rename {executor/src => tests/js}/tests/neighbourhood.ts (99%) rename {executor/src => tests/js}/tests/perspective.ts (99%) rename {executor/src => tests/js}/tests/runtime.ts (97%) create mode 100644 tests/js/tests/simple.test.ts rename {executor/src => tests/js}/tests/social-dna-flow.ts (99%) rename {executor/src/testutils => tests/js/utils}/expression.ts (100%) rename {executor/src/testutils => tests/js/utils}/links.ts (100%) rename {executor/src/testutils => tests/js/utils}/publishTestLangs.ts (65%) create mode 100644 tests/js/utils/utils.ts delete mode 100644 tests/js/yarn.lock diff --git a/executor/package.json b/executor/package.json index 9afef94a2..0cf5dc348 100644 --- a/executor/package.json +++ b/executor/package.json @@ -17,21 +17,8 @@ "types": "lib/main.d.ts", "scripts": { "build": "tsc", - "run": "node --experimental-specifier-resolution=node lib/main.js", - "prepare-test": "run-script-os", - "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", - "prepare-test:linux": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", - "prepare-test:windows": "powershell -ExecutionPolicy Bypass -File ./scripts/build-test-language.ps1 && powershell -ExecutionPolicy Bypass -File ./scripts/prepareTestDirectory.ps1 && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", - "inject-language-language": "node scripts/injectLanguageLanguageBundle.js", - "inject-publishing-agent": "node scripts/injectPublishingAgent.js", - "publish-test-languages": "ts-node-esm --experimental-specifier-resolution=node --files ./src/testutils/publishTestLangs.ts", - "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", - "test:windows": "yarn run prepare-test:windows && yarn run test-all:windows && node scripts/cleanTestingData.js", - "test-all": "yarn run test-perspective && yarn run test-auth-unit && yarn run test-db && yarn run test-prolog && yarn run test-swipl && yarn run test-auth && yarn run test-app && yarn run test-integration", - "test-all:windows": "yarn run test-all", - "test-integration": "ts-mocha -p tsconfig.json --timeout 50000 --exit src/tests/integration.test.ts", - "test-auth": "ts-mocha -p tsconfig.json --timeout 50000 --exit src/tests/authentication.test.ts", - "test-app": "ts-mocha -p tsconfig.json --timeout 50000 --exit src/tests/app.test.ts", + "run": "node --experimental-specifier-resolution=node lib/main.js", + "test": "yarn run test-perspective && yarn test-db && yarn run test-prolog && yarn run test-swipl && yarn run test-auth-unit", "test-perspective": "ts-mocha -p tsconfig.json --exit src/core/Perspective.test.ts", "test-db": "ts-mocha -p tsconfig.json --exit src/core/db.test.ts", "test-prolog": "ts-mocha -p tsconfig.json --exit src/core/PrologInstance.test.ts", diff --git a/executor/scripts/build-test-language.ps1 b/executor/scripts/build-test-language.ps1 deleted file mode 100644 index 433297302..000000000 --- a/executor/scripts/build-test-language.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -Set-Location src\tests\test-language -npm i -npm run build diff --git a/executor/scripts/download-languages-path b/executor/scripts/download-languages-path deleted file mode 100644 index b50d6d6d6..000000000 --- a/executor/scripts/download-languages-path +++ /dev/null @@ -1 +0,0 @@ -./src/tst-tmp/languages \ No newline at end of file diff --git a/executor/scripts/install-binaries.ps1 b/executor/scripts/install-binaries.ps1 deleted file mode 100644 index eb39777ea..000000000 --- a/executor/scripts/install-binaries.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -rustup target add wasm32-unknown-unknown - -$HoloPath = Get-Command holochain | Select-Object -ExpandProperty Definition - -if ($HoloPath -ne $null) { - if (Test-Path $HoloPath) { - $Version = Invoke-Expression "$HoloPath --version" - - if($Version -notlike '*0.1.0*') { - cargo install --locked holochain --git https://github.com/holochain/holochain.git --tag holochain-0.1.0 --force --locked - } - } -} else { - cargo install --locked holochain --git https://github.com/holochain/holochain.git --tag holochain-0.1.0 --force --locked -} - -$HcPath = Get-Command hc | Select-Object -ExpandProperty Definition - -if ($HcPath -ne $null) { - if (Test-Path $HcPath) { - $Version = Invoke-Expression "$HcPath --version" - - if($Version -notlike '*0.1.0*') { - cargo install holochain_cli --version 0.1.0 --force --locked - } - } -} else { - cargo install holochain_cli --version 0.1.0 --force --locked -} \ No newline at end of file diff --git a/executor/scripts/prepareTestDirectory.sh b/executor/scripts/prepareTestDirectory.sh deleted file mode 100755 index bcd870ef4..000000000 --- a/executor/scripts/prepareTestDirectory.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -[ -d "src/tst-tmp" ] && rm -rf src/tst-tmp -mkdir src/tst-tmp -cd src/tst-tmp -mkdir agents -mkdir languages -mkdir languages/test-language -cp -r ../tests/test-language/build languages/test-language/build - -ln -s ../../temp/binary/hc ./hc -ln -s ../../temp/binary/holochain ./holochain -#ln -s ../../temp/swipl/bin/swipl ./swipl -homedir=`echo "$(cd ../../temp/swipl/lib/swipl; pwd)"` -echo '#!/bin/bash' > ./swipl -echo 'cd ../../temp/swipl/bin' >> ./swipl -echo -n "./swipl --home=${homedir} " >> ./swipl -echo '"$@"' >> ./swipl -chmod +x ./swipl diff --git a/executor/scripts/run-all-test.ps1 b/executor/scripts/run-all-test.ps1 deleted file mode 100644 index 250ee0fd8..000000000 --- a/executor/scripts/run-all-test.ps1 +++ /dev/null @@ -1 +0,0 @@ -$env:PATH = '.\src\tst-tmp;'+ $env:PATH \ No newline at end of file diff --git a/executor/src/tests/bootstrapSeed.json b/executor/src/tests/bootstrapSeed.json deleted file mode 100644 index 019b2a207..000000000 --- a/executor/src/tests/bootstrapSeed.json +++ /dev/null @@ -1 +0,0 @@ -{"trustedAgents":["did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n"],"knownLinkLanguages":["QmSqbdE8jTubbGeZRR7U4vZjMmHuFWV4Aoh563cRAaP1di"],"directMessageLanguage":"QmeHE28cVfSBkSrgwauTpmrb3jhchammCv658oQrP41FT9","agentLanguage":"QmZ16K5HG2RgE6Q8xCC5784HG2KGyKPKtkNmGiDb9YQKZg","perspectiveLanguage":"QmUTkvPcyaUGntqfzi3iR1xomADm5yYC2j8hcPdhMHpTem","neighbourhoodLanguage":"QmT4rtTuguhfiz88Ljxt6MDuKcn1TZBpfeWb5fXGqBwMdK","languageLanguageBundle":""} \ No newline at end of file diff --git a/executor/src/tests/integration.test.ts b/executor/src/tests/integration.test.ts deleted file mode 100644 index 7d805bde8..000000000 --- a/executor/src/tests/integration.test.ts +++ /dev/null @@ -1,217 +0,0 @@ -import { ApolloClient, InMemoryCache } from "@apollo/client/core"; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; -import Websocket from "ws"; -import PerspectivismCore from '../core/PerspectivismCore' -import main from "../main"; -import fs from 'fs-extra' -import path from 'path' -import { isProcessRunning } from "./utils"; -import { Ad4mClient } from "@perspect3vism/ad4m"; -import { fileURLToPath } from 'url'; -import { expect } from "chai"; - -// Patch Reflect to have missing getOwnPropertyDescriptor() -// which should be there in any ES6 runtime but for some reason -// is missing on some machines... -import getOwnPropertyDescriptor from '../shims/getOwnPropertyDescriptor' -import perspectiveTests from "./perspective"; -import agentTests from "./agent"; -import languageTests from "./language"; -import expressionTests from "./expression"; -import neighbourhoodTests from "./neighbourhood"; -import runtimeTests from "./runtime"; -import { Crypto } from "@peculiar/webcrypto" -import directMessageTests from "./direct-messages"; -import agentLanguageTests from "./agent-language"; -import socialDNATests from "./social-dna-flow"; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -//@ts-ignore -global.crypto = new Crypto(); -Reflect.getOwnPropertyDescriptor = getOwnPropertyDescriptor - -const TEST_DIR = `${__dirname}/../tst-tmp` - -let core: PerspectivismCore | null = null - -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: token - } - } - }, - })); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); -} - - -export class TestContext { - //#ad4mClient: Ad4mClient | undefined - #alice: Ad4mClient | undefined - #bob: Ad4mClient | undefined - - #aliceCore: PerspectivismCore | undefined - #bobCore: PerspectivismCore | undefined - - get ad4mClient(): Ad4mClient { - return this.#alice! - } - - get alice(): Ad4mClient { - return this.#alice! - } - - get bob(): Ad4mClient { - return this.#bob! - } - - set alice(client: Ad4mClient) { - this.#alice = client - } - - set bob(client: Ad4mClient) { - this.#bob = client - } - - set aliceCore(aliceCore: PerspectivismCore) { - this.#aliceCore = aliceCore - } - - set bobCore(bobCore: PerspectivismCore) { - this.#bobCore = bobCore - } - - async makeAllNodesKnown() { - const aliceAgentInfo = await this.#aliceCore!.holochainRequestAgentInfos() - const bobAgentInfo = await this.#bobCore!.holochainRequestAgentInfos() - await this.#aliceCore!.holochainAddAgentInfos(bobAgentInfo) - await this.#bobCore!.holochainAddAgentInfos(aliceAgentInfo) - } -} -let testContext: TestContext = new TestContext() - -describe("Integration tests", function () { - //@ts-ignore - this.timeout(200000) - const appDataPath = path.join(TEST_DIR, 'agents', 'alice') - const ipfsRepoPath = path.join(appDataPath) - - before(async () => { - if(!fs.existsSync(TEST_DIR)) { - throw Error("Please ensure that prepare-test is run before running tests!"); - } - if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - fs.mkdirSync(path.join(TEST_DIR, 'agents')) - if(!fs.existsSync(appDataPath)) - fs.mkdirSync(appDataPath) - core = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: "./src/tests/bootstrapSeed.json", - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true, - runDappServer: false - }) - - testContext.alice = new Ad4mClient(apolloClient(4000)) - testContext.aliceCore = core - }) - - after(async () => { - expect(await isProcessRunning("holochain")).to.be.true; - expect(fs.existsSync(path.join(ipfsRepoPath, "repo.lock"))).to.be.true; - - await core!.exit(); - await new Promise((resolve)=>setTimeout(resolve, 500)) - - expect(await isProcessRunning("holochain")).to.be.false; - expect(fs.existsSync(path.join(ipfsRepoPath, "repo.lock"))).to.be.false; - }) - - describe('Agent / Agent-Setup', agentTests(testContext)) - describe('Runtime', runtimeTests(testContext)) - describe('Expression', expressionTests(testContext)) - describe('Perspective', perspectiveTests(testContext)) - describe('Social DNA', socialDNATests(testContext)) - - describe('with Alice and Bob', () => { - let bob: PerspectivismCore | null = null - before(async () => { - const appDataPath = path.join(TEST_DIR, 'agents', 'bob') - const ipfsRepoPath = path.join(appDataPath) - if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - fs.mkdirSync(path.join(TEST_DIR, 'agents')) - if(!fs.existsSync(appDataPath)) - fs.mkdirSync(appDataPath) - - bob = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: "./src/tests/bootstrapSeed.json", - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - gqlPort: 14000, - hcPortAdmin: 12000, - hcPortApp: 11337, - ipfsSwarmPort: 14002, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true, - runDappServer: false - }) - - testContext.bob = new Ad4mClient(apolloClient(14000)) - testContext.bobCore = bob - await testContext.bob.agent.generate("passphrase") - - const status = await testContext.bob.agent.status() - - expect(status.isInitialized).to.be.true; - expect(status.isUnlocked).to.be.true; - await testContext.makeAllNodesKnown() - }) - - after(async () => { - await bob!.exit(); - await new Promise((resolve)=>setTimeout(resolve, 500)) - }) - - describe('Agent Language', agentLanguageTests(testContext)) - describe('Direct Messages', directMessageTests(testContext)) - describe('Language', languageTests(testContext)) - describe('Neighbourhood', neighbourhoodTests(testContext)) - }) -}) \ No newline at end of file diff --git a/executor/src/tests/publishBootstrapSeed.json b/executor/src/tests/publishBootstrapSeed.json deleted file mode 100644 index e95599027..000000000 --- a/executor/src/tests/publishBootstrapSeed.json +++ /dev/null @@ -1 +0,0 @@ -{"trustedAgents":[],"knownLinkLanguages":[],"directMessageLanguage":"QmX7S7jqTsV4aZbsdu7s8xbU3522MiqY8TEBNydvZ8JGBP","agentLanguage":"QmUk7mtF3cNgzusjnY7Kc8C1HA1b77NqdHK1pqkiS8PMWS","perspectiveLanguage":"","neighbourhoodLanguage":"QmXvBUaLJc1zNMfrDdfwxyZv4PdbSD4Ztmg3oucYZKifkF","languageLanguageBundle":""} \ No newline at end of file diff --git a/executor/src/tests/sleep.ts b/executor/src/tests/sleep.ts deleted file mode 100644 index f4c0b38b3..000000000 --- a/executor/src/tests/sleep.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function sleep(ms: number) { - return new Promise(resolve => setTimeout(resolve, ms)); -} diff --git a/executor/src/tests/utils.ts b/executor/src/tests/utils.ts deleted file mode 100644 index 0edc353a0..000000000 --- a/executor/src/tests/utils.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {exec, ExecException} from "node:child_process"; - -export async function isProcessRunning(processName: string): Promise { - const cmd = (() => { - switch (process.platform) { - case 'win32': return `tasklist` - case 'darwin': return `ps -ax | grep ${processName}` - case 'linux': return `ps -A` - default: return false - } - })() - - if (!cmd) throw new Error("Invalid OS"); - - return new Promise((resolve, reject) => { - //@ts-ignore - exec(cmd, (err: ExecException, stdout: string, stderr: string) => { - if (err) reject(err) - - resolve(stdout.toLowerCase().indexOf(processName.toLowerCase()) > -1) - }) - }) - } \ No newline at end of file diff --git a/host/src/commands/serve.ts b/host/src/commands/serve.ts index 4d3e7c120..4920896a1 100644 --- a/host/src/commands/serve.ts +++ b/host/src/commands/serve.ts @@ -22,6 +22,10 @@ type Options = { appLangAliases?: string; dataPath?: string; reqCredential?: string; + hcUseBootrap?: boolean; + hcUseProxy?: boolean; + hcUseLocalProxy?: boolean; + hcUseMdns?: boolean; }; export const command: string = 'serve'; @@ -80,6 +84,26 @@ export const builder = (yargs: Argv) => reqCredential: { type: 'string', describe: 'The credential for an admin client to override capability checks', + }, + hcUseBootrap: { + type: 'boolean', + describe: 'Flag to use bootstrap node for holochain conductor', + default: true + }, + hcUseProxy: { + type: 'boolean', + describe: 'Flag to use proxy for holochain conductor', + default: true + }, + hcUseLocalProxy: { + type: 'boolean', + describe: 'Flag to use local proxy for holochain conductor', + default: false + }, + hcUseMdns: { + type: 'boolean', + describe: 'Flag to use mdns for holochain conductor', + default: true } }); @@ -87,7 +111,7 @@ export const handler = async (argv: Arguments): Promise => { const { port, ipfsPort, hcAdminPort, hcAppPort, connectHolochain, languageLanguageOnly, dataPath, bootstrapLanguage, bootstrapPerspective, appLangAliases, - reqCredential + reqCredential, hcUseBootrap, hcUseProxy, hcUseLocalProxy, hcUseMdns } = argv; const globalConfig = getConfig(dataPath); @@ -134,7 +158,11 @@ export const handler = async (argv: Arguments): Promise => { connectHolochain, reqCredential, swiplPath, - swiplHomePath + swiplHomePath, + hcUseBootrap, + hcUseProxy, + hcUseLocalProxy, + hcUseMdns }; await init(config); diff --git a/package.json b/package.json index 1ccaa6b67..b56284c99 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "ui", "connect", "test-runner", - "bootstrap-languages/*" + "bootstrap-languages/*", + "tests/js" ], "private": true, "scripts": { @@ -20,7 +21,9 @@ "serve": "turbo run serve", "lint": "turbo run lint", "test": "turbo run test --concurrency=1", - "test:windows": "turbo run test:windows", + "test:macos": "turbo run test:macos --concurrency=1", + "test:linux": "turbo run test:linux --concurrency=1", + "test:windows": "turbo run test:windows --concurrency=1", "fetch-binaries": "run-script-os", "fetch-binaries:macos": "./download-binaries-macos.sh", "fetch-binaries:windows": "powershell.exe -ExecutionPolicy Bypass -File download-binaries-windows.ps1", diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 000000000..0fbc5218d --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,9 @@ +js/tst-tmp + +!cleanTestingData.js +!get-builtin-test-langs.js +!injectLanguageLanguageBundle.js +!injectPublishingAgent.js + +js/scripts/note-ipfs-hash +js/scripts/perspective-diff-sync-hash \ No newline at end of file diff --git a/tests/js/.mocharc.json b/tests/js/.mocharc.json new file mode 100644 index 000000000..13f9b99ad --- /dev/null +++ b/tests/js/.mocharc.json @@ -0,0 +1,6 @@ +{ + "node-option": [ + "experimental-specifier-resolution=node", + "loader=ts-node/esm" + ] +} \ No newline at end of file diff --git a/tests/js/bootstrapSeed.json b/tests/js/bootstrapSeed.json new file mode 100644 index 000000000..cadd213f1 --- /dev/null +++ b/tests/js/bootstrapSeed.json @@ -0,0 +1 @@ +{"trustedAgents":["did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n","did:key:zQ3shnLWcp4B1yBdEqS3BFFLdTbH8aFg4cLASaM9EQfTpk9E7"],"knownLinkLanguages":["QmVwxN9tL6TtSjJKVHTt25acxWRMud9DcP9ff4mpZ1VmKW"],"directMessageLanguage":"QmeHE28cVfSBkSrgwauTpmrb3jhchammCv658oQrP41FT9","agentLanguage":"QmVYQxroapbRebjjbZnjKSTQBsqvk5sEBCcyiEKyBRXKLo","perspectiveLanguage":"QmUTkvPcyaUGntqfzi3iR1xomADm5yYC2j8hcPdhMHpTem","neighbourhoodLanguage":"QmdqhW6XkuVrFZX2y685m2yPbMuhNy5ozCZtWijEaUvHXT","languageLanguageBundle":"'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar path = require('path');\nvar fs = require('fs');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar path__default = /*#__PURE__*/_interopDefaultLegacy(path);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\n\nvar __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LangAdapter_storagePath;\nclass LangAdapter {\n constructor(context) {\n _LangAdapter_storagePath.set(this, void 0);\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet$2(this, _LangAdapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet$2(this, _LangAdapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async getLanguageSource(address) {\n const bundlePath = path__default[\"default\"].join(__classPrivateFieldGet$2(this, _LangAdapter_storagePath, \"f\"), `bundle-${address}.js`);\n if (fs__default[\"default\"].existsSync(bundlePath)) {\n const metaFile = fs__default[\"default\"].readFileSync(bundlePath).toString();\n return metaFile;\n }\n }\n}\n_LangAdapter_storagePath = new WeakMap();\n\nvar __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PutAdapter_agent, _PutAdapter_IPFS, _PutAdapter_storagePath;\nclass PutAdapter {\n constructor(context) {\n _PutAdapter_agent.set(this, void 0);\n _PutAdapter_IPFS.set(this, void 0);\n _PutAdapter_storagePath.set(this, void 0);\n __classPrivateFieldSet$1(this, _PutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet$1(this, _PutAdapter_IPFS, context.IPFS, \"f\");\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet$1(this, _PutAdapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet$1(this, _PutAdapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet$1(this, _PutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet$1(this, _PutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n const metaPath = path__default[\"default\"].join(__classPrivateFieldGet$1(this, _PutAdapter_storagePath, \"f\"), `meta-${hash}.json`);\n const bundlePath = path__default[\"default\"].join(__classPrivateFieldGet$1(this, _PutAdapter_storagePath, \"f\"), `bundle-${hash}.js`);\n console.log(\"Writing meta & bundle path: \", metaPath, bundlePath);\n fs__default[\"default\"].writeFileSync(metaPath, JSON.stringify(expression));\n fs__default[\"default\"].writeFileSync(bundlePath, language.bundle.toString());\n return hash;\n }\n}\n_PutAdapter_agent = new WeakMap(), _PutAdapter_IPFS = new WeakMap(), _PutAdapter_storagePath = new WeakMap();\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Adapter_storagePath;\nclass Adapter {\n constructor(context) {\n _Adapter_storagePath.set(this, void 0);\n this.putAdapter = new PutAdapter(context);\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet(this, _Adapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet(this, _Adapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async get(address) {\n const metaPath = path__default[\"default\"].join(__classPrivateFieldGet(this, _Adapter_storagePath, \"f\"), `meta-${address}.json`);\n if (fs__default[\"default\"].existsSync(metaPath)) {\n const metaFile = JSON.parse(fs__default[\"default\"].readFileSync(metaPath).toString());\n console.log(\"Found meta file info\", metaFile);\n return metaFile;\n }\n else {\n return null;\n }\n }\n}\n_Adapter_storagePath = new WeakMap();\n\nconst name = \"languages\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n"} \ No newline at end of file diff --git a/tests/js/package.json b/tests/js/package.json index 7044848ba..21ccaf5c6 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -1,15 +1,32 @@ { - "name": "ad4m-integration-tests", - "version": "0.1.0", + "name": "@perspect3vism/ad4m-integration-tests", + "version": "0.3.4", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "type": "module", "scripts": { - "test": "ts-mocha -n loader=ts-node/esm --timeout 1200000 --exit integration.test.ts" + "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", + "test:windows": "yarn run prepare-test:windows && yarn run test-all && node scripts/cleanTestingData.js", + "test-all": "yarn run test-simple && yarn run test-integration && yarn run test-app && yarn run test-auth && yarn run test-full-integration", + + "test-simple": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts", + "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", + "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", + "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", + "test-full-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/full-integration.test.ts", + + "prepare-test": "run-script-os", + "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", + "prepare-test:linux": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", + "prepare-test:windows": "powershell -ExecutionPolicy Bypass -File ./scripts/build-test-language.ps1 && powershell -ExecutionPolicy Bypass -File ./scripts/prepareTestDirectory.ps1 && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", + + "inject-language-language": "node scripts/injectLanguageLanguageBundle.js", + "inject-publishing-agent": "node scripts/injectPublishingAgent.js", + "publish-test-languages": "ts-node-esm --experimental-specifier-resolution=node --files ./utils/publishTestLangs.ts" }, "devDependencies": { "@apollo/client": "3.7.10", "@peculiar/webcrypto": "^1.1.7", - "@perspect3vism/ad4m": "link:../../core", + "@perspect3vism/ad4m": "*", "@types/chai": "*", "@types/chai-as-promised": "*", "@types/expect": "*", @@ -33,6 +50,8 @@ "ts-node": "10.9.1", "typescript": "^4.6.2", "unzipper": "^0.10.11", - "ws": "8.13.0" + "ws": "8.13.0", + "ad4m-host": "*", + "run-script-os": "^1.1.6" } } diff --git a/tests/js/publishBootstrapSeed.json b/tests/js/publishBootstrapSeed.json new file mode 100644 index 000000000..682c76026 --- /dev/null +++ b/tests/js/publishBootstrapSeed.json @@ -0,0 +1 @@ +{"trustedAgents":[],"knownLinkLanguages":[],"directMessageLanguage":"","agentLanguage":"","perspectiveLanguage":"","neighbourhoodLanguage":"","languageLanguageBundle":"'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar path = require('path');\nvar fs = require('fs');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar path__default = /*#__PURE__*/_interopDefaultLegacy(path);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\n\nvar __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LangAdapter_storagePath;\nclass LangAdapter {\n constructor(context) {\n _LangAdapter_storagePath.set(this, void 0);\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet$2(this, _LangAdapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet$2(this, _LangAdapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async getLanguageSource(address) {\n const bundlePath = path__default[\"default\"].join(__classPrivateFieldGet$2(this, _LangAdapter_storagePath, \"f\"), `bundle-${address}.js`);\n if (fs__default[\"default\"].existsSync(bundlePath)) {\n const metaFile = fs__default[\"default\"].readFileSync(bundlePath).toString();\n return metaFile;\n }\n }\n}\n_LangAdapter_storagePath = new WeakMap();\n\nvar __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PutAdapter_agent, _PutAdapter_IPFS, _PutAdapter_storagePath;\nclass PutAdapter {\n constructor(context) {\n _PutAdapter_agent.set(this, void 0);\n _PutAdapter_IPFS.set(this, void 0);\n _PutAdapter_storagePath.set(this, void 0);\n __classPrivateFieldSet$1(this, _PutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet$1(this, _PutAdapter_IPFS, context.IPFS, \"f\");\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet$1(this, _PutAdapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet$1(this, _PutAdapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet$1(this, _PutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet$1(this, _PutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n const metaPath = path__default[\"default\"].join(__classPrivateFieldGet$1(this, _PutAdapter_storagePath, \"f\"), `meta-${hash}.json`);\n const bundlePath = path__default[\"default\"].join(__classPrivateFieldGet$1(this, _PutAdapter_storagePath, \"f\"), `bundle-${hash}.js`);\n console.log(\"Writing meta & bundle path: \", metaPath, bundlePath);\n fs__default[\"default\"].writeFileSync(metaPath, JSON.stringify(expression));\n fs__default[\"default\"].writeFileSync(bundlePath, language.bundle.toString());\n return hash;\n }\n}\n_PutAdapter_agent = new WeakMap(), _PutAdapter_IPFS = new WeakMap(), _PutAdapter_storagePath = new WeakMap();\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Adapter_storagePath;\nclass Adapter {\n constructor(context) {\n _Adapter_storagePath.set(this, void 0);\n this.putAdapter = new PutAdapter(context);\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet(this, _Adapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet(this, _Adapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async get(address) {\n const metaPath = path__default[\"default\"].join(__classPrivateFieldGet(this, _Adapter_storagePath, \"f\"), `meta-${address}.json`);\n if (fs__default[\"default\"].existsSync(metaPath)) {\n const metaFile = JSON.parse(fs__default[\"default\"].readFileSync(metaPath).toString());\n console.log(\"Found meta file info\", metaFile);\n return metaFile;\n }\n else {\n return null;\n }\n }\n}\n_Adapter_storagePath = new WeakMap();\n\nconst name = \"languages\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n"} \ No newline at end of file diff --git a/tests/js/scripts/build-test-language.ps1 b/tests/js/scripts/build-test-language.ps1 new file mode 100644 index 000000000..db05dcb46 --- /dev/null +++ b/tests/js/scripts/build-test-language.ps1 @@ -0,0 +1,3 @@ +Set-Location test-language +yarn install +yarn run build diff --git a/executor/scripts/build-test-language.sh b/tests/js/scripts/build-test-language.sh similarity index 60% rename from executor/scripts/build-test-language.sh rename to tests/js/scripts/build-test-language.sh index b9666d17a..4ed440744 100755 --- a/executor/scripts/build-test-language.sh +++ b/tests/js/scripts/build-test-language.sh @@ -1,5 +1,5 @@ #!/bin/bash -cd src/tests/test-language +cd test-language yarn install yarn run build diff --git a/executor/scripts/cleanTestingData.js b/tests/js/scripts/cleanTestingData.js similarity index 88% rename from executor/scripts/cleanTestingData.js rename to tests/js/scripts/cleanTestingData.js index 6a356eae0..8db208ce4 100644 --- a/executor/scripts/cleanTestingData.js +++ b/tests/js/scripts/cleanTestingData.js @@ -1,8 +1,8 @@ //Remove languageLanguage bundle so that when running tests & making commit to github, the languageLanguage bundle is not comitted also import * as fs from "fs"; -const bootstrapSeedPath = "./src/tests/bootstrapSeed.json"; -const publishingBootstrapSeedPath = "./src/tests/publishBootstrapSeed.json"; +const bootstrapSeedPath = "./bootstrapSeed.json"; +const publishingBootstrapSeedPath = "./publishBootstrapSeed.json"; async function main() { if (fs.existsSync(bootstrapSeedPath)) { diff --git a/tests/js/scripts/download-languages-path b/tests/js/scripts/download-languages-path new file mode 100644 index 000000000..83a70df32 --- /dev/null +++ b/tests/js/scripts/download-languages-path @@ -0,0 +1 @@ +./tst-tmp/languages \ No newline at end of file diff --git a/executor/scripts/get-builtin-test-langs.js b/tests/js/scripts/get-builtin-test-langs.js similarity index 91% rename from executor/scripts/get-builtin-test-langs.js rename to tests/js/scripts/get-builtin-test-langs.js index f3c44265f..388d080c1 100644 --- a/executor/scripts/get-builtin-test-langs.js +++ b/tests/js/scripts/get-builtin-test-langs.js @@ -9,13 +9,13 @@ const languages = { bundle: "https://github.com/perspect3vism/agent-language/releases/download/0.2.1/bundle.js", }, languages: { - bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.5/bundle.js", + bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.7/bundle.js", }, "neighbourhood-store": { - bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.2/bundle.js", + bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.4/bundle.js", }, "perspective-diff-sync": { - bundle: "../bootstrap-languages/p-diff-sync/build/bundle.js", + bundle: "../../bootstrap-languages/p-diff-sync/build/bundle.js", }, "note-ipfs": { bundle: "https://github.com/perspect3vism/lang-note-ipfs/releases/download/0.0.4/bundle.js", diff --git a/executor/scripts/injectLanguageLanguageBundle.js b/tests/js/scripts/injectLanguageLanguageBundle.js similarity index 83% rename from executor/scripts/injectLanguageLanguageBundle.js rename to tests/js/scripts/injectLanguageLanguageBundle.js index ad3606ead..dd236a37d 100644 --- a/executor/scripts/injectLanguageLanguageBundle.js +++ b/tests/js/scripts/injectLanguageLanguageBundle.js @@ -1,8 +1,8 @@ import fs from "fs"; -const languageLanguagePath = "./src/tst-tmp/languages/languages/build/bundle.js"; -const bootstrapSeedPath = "./src/tests/bootstrapSeed.json"; -const publishingBootstrapSeedPath = "./src/tests/publishBootstrapSeed.json"; +const languageLanguagePath = "./tst-tmp/languages/languages/build/bundle.js"; +const bootstrapSeedPath = "./bootstrapSeed.json"; +const publishingBootstrapSeedPath = "./publishBootstrapSeed.json"; async function main() { if (fs.existsSync(languageLanguagePath)) { diff --git a/executor/scripts/injectPublishingAgent.js b/tests/js/scripts/injectPublishingAgent.js similarity index 84% rename from executor/scripts/injectPublishingAgent.js rename to tests/js/scripts/injectPublishingAgent.js index 05516f726..1316a1462 100644 --- a/executor/scripts/injectPublishingAgent.js +++ b/tests/js/scripts/injectPublishingAgent.js @@ -1,7 +1,7 @@ import fs from "fs"; -const publishingAgentPath = "./src/tst-tmp/agents/p/ad4m/agent.json"; -const bootstrapSeedPath = "./src/tests/bootstrapSeed.json"; +const publishingAgentPath = "./tst-tmp/agents/p/ad4m/agent.json"; +const bootstrapSeedPath = "./bootstrapSeed.json"; async function main() { if (fs.existsSync(publishingAgentPath)) { diff --git a/executor/scripts/prepareTestDirectory.ps1 b/tests/js/scripts/prepareTestDirectory.ps1 similarity index 83% rename from executor/scripts/prepareTestDirectory.ps1 rename to tests/js/scripts/prepareTestDirectory.ps1 index f7331f647..20771602e 100644 --- a/executor/scripts/prepareTestDirectory.ps1 +++ b/tests/js/scripts/prepareTestDirectory.ps1 @@ -1,12 +1,12 @@ choco install wget --no-progress # $env:path += ";C:\Program Files\swipl\bin" -mkdir src\tst-tmp -cd src\tst-tmp +mkdir tst-tmp +cd tst-tmp mkdir agents mkdir languages mkdir languages\test-language -cp -r ..\tests\test-language\build languages\test-language\build +cp -r ..\test-language\build languages\test-language\build wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./hc.exe diff --git a/tests/js/scripts/prepareTestDirectory.sh b/tests/js/scripts/prepareTestDirectory.sh new file mode 100755 index 000000000..75b82865f --- /dev/null +++ b/tests/js/scripts/prepareTestDirectory.sh @@ -0,0 +1,18 @@ +#!/bin/bash +[ -d "tst-tmp" ] && rm -rf tst-tmp +mkdir tst-tmp +cd tst-tmp +mkdir agents +mkdir languages +mkdir languages/test-language +cp -r ../test-language/build languages/test-language/build + +ln -s ../../../executor/temp/binary/hc ./hc +ln -s ../../../executor/temp/binary/holochain ./holochain +#ln -s ../../../executor/temp/swipl/bin/swipl ./swipl +homedir=`echo "$(cd ../../../executor/temp/swipl/lib/swipl; pwd)"` +echo '#!/bin/bash' > ./swipl +echo 'cd ../../../executor/temp/swipl/bin' >> ./swipl +echo -n "./swipl --home=${homedir} " >> ./swipl +echo '"$@"' >> ./swipl +chmod +x ./swipl diff --git a/tests/js/scripts/run-all-test.ps1 b/tests/js/scripts/run-all-test.ps1 new file mode 100644 index 000000000..8b5cb2517 --- /dev/null +++ b/tests/js/scripts/run-all-test.ps1 @@ -0,0 +1 @@ +$env:PATH = '.\tst-tmp;'+ $env:PATH \ No newline at end of file diff --git a/tests/js/subject.pl b/tests/js/sdna/subject.pl similarity index 100% rename from tests/js/subject.pl rename to tests/js/sdna/subject.pl diff --git a/executor/src/tests/sdna/todo.pl b/tests/js/sdna/todo.pl similarity index 100% rename from executor/src/tests/sdna/todo.pl rename to tests/js/sdna/todo.pl diff --git a/executor/src/tests/test-language/.gitignore b/tests/js/test-language/.gitignore similarity index 100% rename from executor/src/tests/test-language/.gitignore rename to tests/js/test-language/.gitignore diff --git a/executor/src/tests/test-language/index.ts b/tests/js/test-language/index.ts similarity index 100% rename from executor/src/tests/test-language/index.ts rename to tests/js/test-language/index.ts diff --git a/executor/src/tests/test-language/package.json b/tests/js/test-language/package.json similarity index 100% rename from executor/src/tests/test-language/package.json rename to tests/js/test-language/package.json diff --git a/executor/src/tests/test-language/rollup.config.js b/tests/js/test-language/rollup.config.js similarity index 97% rename from executor/src/tests/test-language/rollup.config.js rename to tests/js/test-language/rollup.config.js index e84be2ac2..d5e96df38 100644 --- a/executor/src/tests/test-language/rollup.config.js +++ b/tests/js/test-language/rollup.config.js @@ -12,8 +12,8 @@ export default { input: 'index.js', output: { sourcemap: true, - format: 'es', - name: 'NoteIpfs', + format: 'cjs', + name: 'TestLanguage', file: 'build/bundle.js' }, plugins: [ diff --git a/executor/src/tests/test-language/tsconfig.json b/tests/js/test-language/tsconfig.json similarity index 100% rename from executor/src/tests/test-language/tsconfig.json rename to tests/js/test-language/tsconfig.json diff --git a/executor/src/tests/test-language/yarn.lock b/tests/js/test-language/yarn.lock similarity index 100% rename from executor/src/tests/test-language/yarn.lock rename to tests/js/test-language/yarn.lock diff --git a/executor/src/tests/agent-language.ts b/tests/js/tests/agent-language.ts similarity index 90% rename from executor/src/tests/agent-language.ts rename to tests/js/tests/agent-language.ts index 0f9dbe5df..facc809e4 100644 --- a/executor/src/tests/agent-language.ts +++ b/tests/js/tests/agent-language.ts @@ -1,5 +1,5 @@ -import { TestContext } from './integration.test' -import sleep from './sleep' +import { TestContext } from './full-integration.test' +import { sleep } from '../utils/utils' import { expect } from "chai"; export default function agentLanguageTests(testContext: TestContext) { diff --git a/executor/src/tests/agent.ts b/tests/js/tests/agent.ts similarity index 98% rename from executor/src/tests/agent.ts rename to tests/js/tests/agent.ts index 57fe9ba4b..66218c8a0 100644 --- a/executor/src/tests/agent.ts +++ b/tests/js/tests/agent.ts @@ -1,6 +1,6 @@ import { Perspective, LinkExpression, Link, ExpressionProof, EntanglementProofInput } from "@perspect3vism/ad4m"; -import { TestContext } from './integration.test' -import sleep from './sleep' +import { TestContext } from './full-integration.test' +import { sleep } from '../utils/utils' import { expect } from "chai"; import * as sinon from "sinon"; diff --git a/executor/src/tests/app.test.ts b/tests/js/tests/app.test.ts similarity index 70% rename from executor/src/tests/app.test.ts rename to tests/js/tests/app.test.ts index bb4583b39..7df776bf3 100644 --- a/executor/src/tests/app.test.ts +++ b/tests/js/tests/app.test.ts @@ -1,16 +1,15 @@ -import { ApolloClient, InMemoryCache } from "@apollo/client/core"; -import Websocket from "ws"; -import main from "../main"; import path from "path"; -import { OuterConfig } from "../main"; import { Ad4mClient, CapabilityInput, AuthInfoInput } from "@perspect3vism/ad4m"; -import fs from "fs-extra"; -import PerspectivismCore from "../core/PerspectivismCore"; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; +import fs from "fs"; import { fileURLToPath } from 'url'; import * as chai from "chai"; import chaiAsPromised from "chai-as-promised"; +import { apolloClient, startExecutor } from "../utils/utils"; +import fetch from 'node-fetch' +import { ChildProcess } from "child_process"; + +//@ts-ignore +global.fetch = fetch const expect = chai.expect; chai.use(chaiAsPromised); @@ -18,75 +17,28 @@ chai.use(chaiAsPromised); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: token - } - } - }, - })); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); -} - describe("Apps integration tests", () => { - const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "apps-agent"); - const bootstrapSeedPath = path.join(`${__dirname}/../../src/tests/bootstrapSeed.json`); - const ipfsRepoPath = path.join(appDataPath); + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); const gqlPort = 15000 - const hcPortAdmin = 15001 - const hcPortApp = 15002 + const hcAdminPort = 15001 + const hcAppPort = 15002 const ipfsSwarmPort = 15003 - let agentCore: PerspectivismCore | null = null let adminAd4mClient: Ad4mClient | null = null let unAuthenticatedAppAd4mClient: Ad4mClient | null = null let requestId: string; - before(async () => { - if (!fs.existsSync(appDataPath)) { - fs.mkdirSync(appDataPath, { recursive: true }); - } + let executorProcess: ChildProcess | null = null - agentCore = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: bootstrapSeedPath, - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - gqlPort, - hcPortAdmin, - hcPortApp, - ipfsSwarmPort, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true, - reqCredential: "123", - runDappServer: false - } as OuterConfig) + before(async () => { + if (!fs.existsSync(appDataPath)) { + fs.mkdirSync(appDataPath, { recursive: true }); + } + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); // @ts-ignore adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123")) await adminAd4mClient.agent.generate("passphrase") @@ -100,7 +52,9 @@ describe("Apps integration tests", () => { }) after(async () => { - await agentCore!.exit(); + if (executorProcess) { + executorProcess.kill() + } }) it("once token issued user can get all authenticated apps", async () => { diff --git a/executor/src/tests/authentication.test.ts b/tests/js/tests/authentication.test.ts similarity index 72% rename from executor/src/tests/authentication.test.ts rename to tests/js/tests/authentication.test.ts index 5ede8ca81..29ee8d6ac 100644 --- a/executor/src/tests/authentication.test.ts +++ b/tests/js/tests/authentication.test.ts @@ -1,16 +1,15 @@ -import { ApolloClient, InMemoryCache } from "@apollo/client/core"; -import Websocket from "ws"; -import main from "../main"; import path from "path"; -import { OuterConfig } from "../main"; import { Ad4mClient, AuthInfoInput, CapabilityInput } from "@perspect3vism/ad4m"; import fs from "fs-extra"; -import PerspectivismCore from "../core/PerspectivismCore"; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; import { fileURLToPath } from 'url'; import * as chai from "chai"; import chaiAsPromised from "chai-as-promised"; +import { apolloClient, startExecutor } from "../utils/utils"; +import { ChildProcess } from 'node:child_process'; +import fetch from 'node-fetch' + +//@ts-ignore +global.fetch = fetch const expect = chai.expect; chai.use(chaiAsPromised); @@ -18,45 +17,17 @@ chai.use(chaiAsPromised); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: token - } - } - }, - })); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); -} - describe("Authentication integration tests", () => { describe("admin credential is not set", () => { - const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "unauth-agent"); - const bootstrapSeedPath = path.join(`${__dirname}/../../src/tests/bootstrapSeed.json`); - const ipfsRepoPath = path.join(appDataPath); + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); const gqlPort = 16000 - const hcPortAdmin = 16001 - const hcPortApp = 16002 - const ipfsSwarmPort = 16003 + const hcAdminPort = 16001 + const hcAppPort = 16002 + const ipfsSwarmPort = 16004 - let core: PerspectivismCore | null = null + let executorProcess: ChildProcess | null = null let ad4mClient: Ad4mClient | null = null before(async () => { @@ -64,34 +35,17 @@ describe("Authentication integration tests", () => { fs.mkdirSync(appDataPath, { recursive: true }); } - core = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: bootstrapSeedPath, - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - gqlPort, - hcPortAdmin, - hcPortApp, - ipfsSwarmPort, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true, - runDappServer: false - } as OuterConfig) + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); - // @ts-ignore ad4mClient = new Ad4mClient(apolloClient(gqlPort)) await ad4mClient.agent.generate("passphrase") }) after(async () => { - await core!.exit(); + if (executorProcess) { + executorProcess.kill() + } }) it("unauthenticated user has all the capabilities", async () => { @@ -124,16 +78,15 @@ describe("Authentication integration tests", () => { }) describe("admin credential is set", () => { - const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "auth-agent"); - const bootstrapSeedPath = path.join(`${__dirname}/../../src/tests/bootstrapSeed.json`); - const ipfsRepoPath = path.join(appDataPath); + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); const gqlPort = 15000 - const hcPortAdmin = 15001 - const hcPortApp = 15002 + const hcAdminPort = 15001 + const hcAppPort = 15002 const ipfsSwarmPort = 15003 - let agentCore: PerspectivismCore | null = null + let executorProcess: ChildProcess | null = null let adminAd4mClient: Ad4mClient | null = null let unAuthenticatedAppAd4mClient: Ad4mClient | null = null @@ -142,42 +95,19 @@ describe("Authentication integration tests", () => { fs.mkdirSync(appDataPath, { recursive: true }); } - agentCore = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: bootstrapSeedPath, - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - gqlPort, - hcPortAdmin, - hcPortApp, - ipfsSwarmPort, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true, - reqCredential: "123", - runDappServer: false - } as OuterConfig) - - // @ts-ignore + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort, false, "123"); + adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123")) await adminAd4mClient.agent.generate("passphrase") - // await agentCore.waitForAgent(); - // agentCore.initControllers() - // await agentCore.initLanguages() - - // @ts-ignore unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort)) }) after(async () => { - await agentCore!.exit(); + if (executorProcess) { + executorProcess.kill() + } }) it("unauthenticated user can not query agent status", async () => { diff --git a/executor/src/tests/direct-messages.ts b/tests/js/tests/direct-messages.ts similarity index 98% rename from executor/src/tests/direct-messages.ts rename to tests/js/tests/direct-messages.ts index 419500626..1dc844a45 100644 --- a/executor/src/tests/direct-messages.ts +++ b/tests/js/tests/direct-messages.ts @@ -1,6 +1,6 @@ import { ExpressionProof, Link, LinkExpressionInput, Literal, Perspective } from '@perspect3vism/ad4m' -import { TestContext } from './integration.test' -import sleep from './sleep' +import { TestContext } from './full-integration.test' +import { sleep } from '../utils/utils' import { expect } from "chai"; import * as sinon from "sinon"; diff --git a/executor/src/tests/expression.ts b/tests/js/tests/expression.ts similarity index 96% rename from executor/src/tests/expression.ts rename to tests/js/tests/expression.ts index 6f62db0b5..68fce4f16 100644 --- a/executor/src/tests/expression.ts +++ b/tests/js/tests/expression.ts @@ -1,5 +1,5 @@ import { InteractionCall, LanguageMetaInput, Literal, parseExprUrl } from '@perspect3vism/ad4m' -import { TestContext } from './integration.test' +import { TestContext } from './full-integration.test' import fs from "fs"; import { expect } from "chai"; @@ -92,7 +92,7 @@ export default function expressionTests(testContext: TestContext) { it('can use expression interactions', async () => { const ad4mClient = testContext.ad4mClient! //Publish mocking interactions language so it can be used - const publish = await ad4mClient.languages.publish("./src/tst-tmp/languages/test-language/build/bundle.js", {name: "test-language", description: "A test language for interactions"} as LanguageMetaInput) + const publish = await ad4mClient.languages.publish("./tst-tmp/languages/test-language/build/bundle.js", {name: "test-language", description: "A test language for interactions"} as LanguageMetaInput) //@ts-ignore const testLangAddress = publish.address; diff --git a/tests/js/tests/full-integration.test.ts b/tests/js/tests/full-integration.test.ts new file mode 100644 index 000000000..357e223c6 --- /dev/null +++ b/tests/js/tests/full-integration.test.ts @@ -0,0 +1,166 @@ +import fs from 'fs-extra' +import path from 'path' +import { isProcessRunning } from "../utils/utils"; +import { Ad4mClient } from "@perspect3vism/ad4m"; +import { fileURLToPath } from 'url'; +import { expect } from "chai"; +import { startExecutor, apolloClient } from "../utils/utils"; +import { ChildProcess } from 'child_process'; +import perspectiveTests from "./perspective"; +import agentTests from "./agent"; +import languageTests from "./language"; +import expressionTests from "./expression"; +import neighbourhoodTests from "./neighbourhood"; +import runtimeTests from "./runtime"; +import { Crypto } from "@peculiar/webcrypto" +import directMessageTests from "./direct-messages"; +import agentLanguageTests from "./agent-language"; +import socialDNATests from "./social-dna-flow"; +import fetch from "node-fetch"; + +//@ts-ignore +global.fetch = fetch + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +//@ts-ignore +global.crypto = new Crypto(); + +const TEST_DIR = `${__dirname}/../tst-tmp` + +export class TestContext { + //#ad4mClient: Ad4mClient | undefined + #alice: Ad4mClient | undefined + #bob: Ad4mClient | undefined + + #aliceCore: ChildProcess | undefined + #bobCore: ChildProcess | undefined + + get ad4mClient(): Ad4mClient { + return this.#alice! + } + + get alice(): Ad4mClient { + return this.#alice! + } + + get bob(): Ad4mClient { + return this.#bob! + } + + set alice(client: Ad4mClient) { + this.#alice = client + } + + set bob(client: Ad4mClient) { + this.#bob = client + } + + set aliceCore(aliceCore: ChildProcess) { + this.#aliceCore = aliceCore + } + + set bobCore(bobCore: ChildProcess) { + this.#bobCore = bobCore + } + + async makeAllNodesKnown() { + //TODO: this should work again with new rust runner + // const aliceAgentInfo = await this.#aliceCore!.holochainRequestAgentInfos() + // const bobAgentInfo = await this.#bobCore!.holochainRequestAgentInfos() + // await this.#aliceCore!.holochainAddAgentInfos(bobAgentInfo) + // await this.#bobCore!.holochainAddAgentInfos(aliceAgentInfo) + } +} +let testContext: TestContext = new TestContext() + +describe("Integration tests", function () { + //@ts-ignore + this.timeout(200000) + const appDataPath = path.join(TEST_DIR, 'agents', 'alice') + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const ipfsRepoPath = path.join(appDataPath) + const gqlPort = 15000 + const hcAdminPort = 15001 + const hcAppPort = 15002 + const ipfsSwarmPort = 15005 + + let executorProcess: ChildProcess | null = null + + before(async () => { + if(!fs.existsSync(TEST_DIR)) { + throw Error("Please ensure that prepare-test is run before running tests!"); + } + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(appDataPath)) + fs.mkdirSync(appDataPath) + + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); + + testContext.alice = new Ad4mClient(apolloClient(gqlPort)) + testContext.aliceCore = executorProcess + }) + + after(async () => { + expect(await isProcessRunning("holochain")).to.be.true; + expect(fs.existsSync(path.join(ipfsRepoPath, "repo.lock"))).to.be.true; + + if (executorProcess) { + executorProcess.kill() + } + + expect(await isProcessRunning("holochain")).to.be.false; + expect(fs.existsSync(path.join(ipfsRepoPath, "repo.lock"))).to.be.false; + }) + + describe('Agent / Agent-Setup', agentTests(testContext)) + describe('Runtime', runtimeTests(testContext)) + describe('Expression', expressionTests(testContext)) + describe('Perspective', perspectiveTests(testContext)) + describe('Social DNA', socialDNATests(testContext)) + + describe('with Alice and Bob', () => { + let bob: ChildProcess | null = null + before(async () => { + const appDataPath = path.join(TEST_DIR, 'agents', 'bob') + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const gqlPort = 14000 + const hcAdminPort = 12000 + const hcAppPort = 11337 + const ipfsSwarmPort = 14002 + + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(appDataPath)) + fs.mkdirSync(appDataPath) + + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); + + testContext.bob = new Ad4mClient(apolloClient(gqlPort)) + testContext.bobCore = executorProcess + await testContext.bob.agent.generate("passphrase") + + const status = await testContext.bob.agent.status() + + expect(status.isInitialized).to.be.true; + expect(status.isUnlocked).to.be.true; + await testContext.makeAllNodesKnown() + }) + + after(async () => { + if (executorProcess) { + executorProcess.kill() + } + await new Promise((resolve)=>setTimeout(resolve, 500)) + }) + + describe('Agent Language', agentLanguageTests(testContext)) + // describe('Direct Messages', directMessageTests(testContext)) + // describe('Language', languageTests(testContext)) + // describe('Neighbourhood', neighbourhoodTests(testContext)) + }) +}) \ No newline at end of file diff --git a/tests/js/integration.test.ts b/tests/js/tests/integration.test.ts similarity index 89% rename from tests/js/integration.test.ts rename to tests/js/tests/integration.test.ts index b15f4a0c4..4c8b45070 100644 --- a/tests/js/integration.test.ts +++ b/tests/js/tests/integration.test.ts @@ -1,92 +1,45 @@ import { expect } from "chai"; -import { exec, execSync, ChildProcess } from 'node:child_process'; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions/index.js"; -import { ApolloClient, InMemoryCache } from "@apollo/client/core/index.js"; -import { HttpLink } from "@apollo/client/link/http/index.js"; -import Websocket from "ws"; -import { createClient } from "graphql-ws"; +import { ChildProcess } from 'node:child_process'; import { Ad4mClient, Link, LinkQuery, Literal, PerspectiveProxy, SmartLiteral, SMART_LITERAL_CONTENT_PREDICATE, instanceQuery, Subject, subjectProperty, subjectCollection, subjectFlag, SDNAClass, } from "@perspect3vism/ad4m"; -import { rmSync, readFileSync } from "node:fs"; -import fetch from 'node-fetch'; - - -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - })); - - const link = new HttpLink({ - uri: "http://localhost:4000/graphql", - //@ts-ignore - fetch - }); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); - } +import { readFileSync } from "node:fs"; +import { startExecutor, apolloClient } from "../utils/utils"; +import path from "path"; +import fs from "fs"; +import { fileURLToPath } from 'url'; +import fetch from 'node-fetch' + +//@ts-ignore +global.fetch = fetch + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); describe("Integration", () => { let ad4m: Ad4mClient | null = null let executorProcess: ChildProcess | null = null - before(async () => { - //ad4m = new Ad4mClient(apolloClient(4000)) - //return - - rmSync("../ad4mJS", { recursive: true, force: true }) - console.log("Initialzing executor data directory") - //@ts-ignore - execSync('../../host/dist/ad4m-macos-x64 init --dataPath ../ad4mJS', {}) - - console.log("Starting executor") - try { - execSync("killall holochain") - } catch (e) { - console.log("No holochain process running") - } - - //@ts-ignore - executorProcess = exec('../../host/dist/ad4m-macos-x64 serve --dataPath ../ad4mJS', {}) + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); + const appDataPath = path.join(TEST_DIR, "agents", "integration-agent"); + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const gqlPort = 15000 + const hcAdminPort = 15001 + const hcAppPort = 15002 + const ipfsSwarmPort = 15006 - let executorReady = new Promise((resolve, reject) => { - executorProcess!.stdout!.on('data', (data) => { - if (data.includes("GraphQL server started")) { - resolve() - } - }); - }) + before(async () => { + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); - executorProcess!.stdout!.on('data', (data) => { - console.log(`${data}`); - }); - executorProcess!.stderr!.on('data', (data) => { - console.log(`${data}`); - }); - - console.log("Waiting for executor to settle...") - await executorReady console.log("Creating ad4m client") - ad4m = new Ad4mClient(apolloClient(4000)) + ad4m = new Ad4mClient(apolloClient(gqlPort)) console.log("Generating agent") await ad4m.agent.generate("secret") console.log("Done") - }) after(() => { @@ -112,7 +65,7 @@ describe("Integration", () => { let classes = await perspective.subjectClasses(); expect(classes.length).to.equal(0) - let sdna = readFileSync("./subject.pl").toString() + let sdna = readFileSync("./sdna/subject.pl").toString() await perspective.setSdna(sdna) let retrievedSdna = await perspective.getSdna() @@ -238,7 +191,7 @@ describe("Integration", () => { describe("TypeScript compatibility", () => { - // This class mathces the SDNA in ./subject.pl + // This class mathces the SDNA in ./sdna/subject.pl class Todo { state: string = "" title: string = "" @@ -250,7 +203,7 @@ describe("Integration", () => { setCollectionComments(comment: string) {} } - // This class doesn not match the SDNA in ./subject.pl + // This class doesn not match the SDNA in ./sdna/subject.pl class UnknownSubject { name: string = "" x: string = "" @@ -325,7 +278,7 @@ describe("Integration", () => { body: string = "" } - // This class matches the SDNA in ./subject.pl + // This class matches the SDNA in ./sdna/subject.pl // and this test proves the decorators create the exact same SDNA code @SDNAClass({ name: "Todo" @@ -412,7 +365,7 @@ describe("Integration", () => { const matches = regExp.exec(sdna); const value = matches![1]; - const equal = readFileSync("./subject.pl").toString().replace(/c\)/g, `${value})`).replace(/\(c/g, `(${value}`); + const equal = readFileSync("./sdna/subject.pl").toString().replace(/c\)/g, `${value})`).replace(/\(c/g, `(${value}`); expect(sdna.normalize('NFC')).to.equal(equal.normalize('NFC')) }) diff --git a/executor/src/tests/language.ts b/tests/js/tests/language.ts similarity index 95% rename from executor/src/tests/language.ts rename to tests/js/tests/language.ts index f75a86d31..dfee5150e 100644 --- a/executor/src/tests/language.ts +++ b/tests/js/tests/language.ts @@ -1,7 +1,7 @@ -import { TestContext } from './integration.test' +import { TestContext } from './full-integration.test' import path from "path"; import fs from "fs"; -import sleep from './sleep'; +import { sleep } from '../utils/utils'; import { Ad4mClient, LanguageMetaInput, LanguageRef } from '@perspect3vism/ad4m'; import { expect } from "chai"; import { fileURLToPath } from 'url'; @@ -25,9 +25,9 @@ export default function languageTests(testContext: TestContext) { bobAd4mClient = testContext.bob; //First edit bundle for perspective-diff-sync so we get a unique hash which does not clash with existing loaded perspective-diff-sync object in LanguageController - let socialContextData = fs.readFileSync("./src/tst-tmp/languages/perspective-diff-sync/build/bundle.js").toString(); + let socialContextData = fs.readFileSync("./tst-tmp/languages/perspective-diff-sync/build/bundle.js").toString(); socialContextData = socialContextData + "\n//Test"; - fs.writeFileSync("./src/tst-tmp/languages/perspective-diff-sync/build/bundle.js", socialContextData); + fs.writeFileSync("./tst-tmp/languages/perspective-diff-sync/build/bundle.js", socialContextData); //Publish a source language to start working from sourceLanguage = await ad4mClient.languages.publish( @@ -54,9 +54,9 @@ export default function languageTests(testContext: TestContext) { it('Alice can install her own non HC published language', async () => { let sourceLanguageMeta: LanguageMetaInput = new LanguageMetaInput("Newly published perspective-language", "..here for you template"); - let socialContextData = fs.readFileSync("./src/tst-tmp/languages/perspective-language/build/bundle.js").toString(); + let socialContextData = fs.readFileSync("./tst-tmp/languages/perspective-language/build/bundle.js").toString(); socialContextData = socialContextData + "\n//Test"; - fs.writeFileSync("./src/tst-tmp/languages/perspective-language/build/bundle.js", socialContextData); + fs.writeFileSync("./tst-tmp/languages/perspective-language/build/bundle.js", socialContextData); //Publish a source language to start working from nonHCSourceLanguage = await ad4mClient.languages.publish( diff --git a/executor/src/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts similarity index 99% rename from executor/src/tests/neighbourhood.ts rename to tests/js/tests/neighbourhood.ts index c64cbc1ab..3610d86dc 100644 --- a/executor/src/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -1,6 +1,6 @@ import { Link, Perspective, LinkExpression, ExpressionProof, LinkQuery, PerspectiveState, NeighbourhoodProxy, PerspectiveUnsignedInput } from "@perspect3vism/ad4m"; -import { TestContext } from './integration.test' -import sleep from "./sleep"; +import { TestContext } from './full-integration.test' +import { sleep } from "../utils/utils"; import fs from "fs"; import { v4 as uuidv4 } from 'uuid'; import { expect } from "chai"; diff --git a/executor/src/tests/perspective.ts b/tests/js/tests/perspective.ts similarity index 99% rename from executor/src/tests/perspective.ts rename to tests/js/tests/perspective.ts index 131a02d2f..c58b66bf4 100644 --- a/executor/src/tests/perspective.ts +++ b/tests/js/tests/perspective.ts @@ -1,8 +1,8 @@ import { Ad4mClient, Link, LinkQuery, PerspectiveProxy, PerspectiveState } from "@perspect3vism/ad4m"; -import { TestContext } from './integration.test' +import { TestContext } from './full-integration.test' import { expect } from "chai"; import * as sinon from "sinon"; -import sleep from "./sleep"; +import { sleep } from "../utils/utils"; export default function perspectiveTests(testContext: TestContext) { return () => { diff --git a/executor/src/tests/runtime.ts b/tests/js/tests/runtime.ts similarity index 97% rename from executor/src/tests/runtime.ts rename to tests/js/tests/runtime.ts index abfd0f473..fc579e25c 100644 --- a/executor/src/tests/runtime.ts +++ b/tests/js/tests/runtime.ts @@ -1,10 +1,10 @@ -import { TestContext } from './integration.test' +import { TestContext } from './full-integration.test' import fs from "fs"; import { expect } from "chai"; const PERSPECT3VISM_AGENT = "did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n" const DIFF_SYNC_OFFICIAL = fs.readFileSync("./scripts/perspective-diff-sync-hash").toString(); -const PUBLISHING_AGENT = JSON.parse(fs.readFileSync("./src/tst-tmp/agents/p/ad4m/agent.json").toString())["did"]; +const PUBLISHING_AGENT = JSON.parse(fs.readFileSync("./tst-tmp/agents/p/ad4m/agent.json").toString())["did"]; export default function runtimeTests(testContext: TestContext) { return () => { diff --git a/tests/js/tests/simple.test.ts b/tests/js/tests/simple.test.ts new file mode 100644 index 000000000..b258bd8da --- /dev/null +++ b/tests/js/tests/simple.test.ts @@ -0,0 +1,51 @@ +import { expect } from "chai"; +import { ChildProcess } from 'node:child_process'; +import { Ad4mClient } from "@perspect3vism/ad4m"; +import { startExecutor, apolloClient, sleep } from "../utils/utils"; +import path from "path"; +import fetch from 'node-fetch' +import { fileURLToPath } from 'url'; + +//@ts-ignore +global.fetch = fetch + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +describe("Integration", () => { + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); + const appDataPath = path.join(TEST_DIR, "agents", "alice"); + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const gqlPort = 15000 + const hcAdminPort = 15001 + const hcAppPort = 15002 + const ipfsSwarmPort = 15007 + + let ad4m: Ad4mClient | null = null + let executorProcess: ChildProcess | null = null + + before(async () => { + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); + + console.log("Creating ad4m client") + ad4m = new Ad4mClient(apolloClient(gqlPort)) + console.log("Generating agent") + await ad4m.agent.generate("secret") + console.log("Done") + }) + + after(async () => { + if (executorProcess) { + let status = executorProcess.kill(); + console.log("killed executor with", status); + await sleep(500); + } + }) + + it("should get agent status", async () => { + let result = await ad4m!.agent.status() + expect(result).to.not.be.null + expect(result!.isInitialized).to.be.true + }) +}) \ No newline at end of file diff --git a/executor/src/tests/social-dna-flow.ts b/tests/js/tests/social-dna-flow.ts similarity index 99% rename from executor/src/tests/social-dna-flow.ts rename to tests/js/tests/social-dna-flow.ts index 3892405e8..a94370540 100644 --- a/executor/src/tests/social-dna-flow.ts +++ b/tests/js/tests/social-dna-flow.ts @@ -1,5 +1,5 @@ import { Link, LinkQuery, Literal } from "@perspect3vism/ad4m"; -import { TestContext } from './integration.test' +import { TestContext } from './full-integration.test' import { expect } from "chai"; export default function socialDNATests(testContext: TestContext) { diff --git a/tests/js/tsconfig.json b/tests/js/tsconfig.json index 00719fcde..8f114da31 100644 --- a/tests/js/tsconfig.json +++ b/tests/js/tsconfig.json @@ -1,9 +1,7 @@ { "include": [ - "src/**/*.ts", - "src/**/*.d.ts", - "src/**/*.vue" - ], + "*.ts" +, "tests/agent-language.ts", "tests/agent.ts", "tests/app.test.ts", "tests/authentication.test.ts", "tests/direct-messages.ts", "tests/expression.ts", "tests/full-integration.test.ts", "tests/integration.test.ts", "tests/language.ts", "tests/neighbourhood.ts", "tests/perspective.ts", "tests/runtime.ts", "tests/simple.test.ts", "tests/social-dna-flow.ts", "utils/utils.ts" ], "exclude": ["./src/tests/*", "./src/**/*.test.ts", "./src/testsutils/*"], "compilerOptions": { /* Visit https://aka.ms/tsconfig.json to read more about this file */ @@ -77,7 +75,8 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "allowSyntheticDefaultImports": true, - "resolveJsonModule": true + "resolveJsonModule": true, + "declaration": true }, "typedef": [ true, "call-signature", "arrow-call-signature" ], "ts-node": { diff --git a/executor/src/testutils/expression.ts b/tests/js/utils/expression.ts similarity index 100% rename from executor/src/testutils/expression.ts rename to tests/js/utils/expression.ts diff --git a/executor/src/testutils/links.ts b/tests/js/utils/links.ts similarity index 100% rename from executor/src/testutils/links.ts rename to tests/js/utils/links.ts diff --git a/executor/src/testutils/publishTestLangs.ts b/tests/js/utils/publishTestLangs.ts similarity index 65% rename from executor/src/testutils/publishTestLangs.ts rename to tests/js/utils/publishTestLangs.ts index 0a5d7325e..c2d4e4580 100644 --- a/executor/src/testutils/publishTestLangs.ts +++ b/tests/js/utils/publishTestLangs.ts @@ -1,26 +1,28 @@ -import { ApolloClient, InMemoryCache } from "@apollo/client/core"; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; -import Websocket from "ws"; -import main, { OuterConfig } from "../main"; import path from "path"; import { Ad4mClient, LanguageMetaInput } from "@perspect3vism/ad4m"; import fs from "fs-extra"; import { exit } from "process"; import { fileURLToPath } from 'url'; +import { apolloClient, startExecutor } from "./utils"; +import fetch from 'node-fetch' + +//@ts-ignore +global.fetch = fetch const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); +const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "p"); -const ipfsRepoPath = path.join(appDataPath); const publishLanguagesPath = path.join(TEST_DIR, "languages"); -const publishingAgentPath = path.join(`${__dirname}/../../src/tests/p`); -const publishingBootstrapSeedPath = path.join(`${__dirname}/../../src/tests/publishBootstrapSeed.json`); -const bootstrapSeedPath = path.join(`${__dirname}/../../src/tests/bootstrapSeed.json`); -const noteIpfsHashPath = path.join(`${__dirname}/../../scripts/note-ipfs-hash`); -const perspectiveDiffSyncHashPath = path.join(`${__dirname}/../../scripts/perspective-diff-sync-hash`); +const publishingBootstrapSeedPath = path.join(`${__dirname}/../publishBootstrapSeed.json`); +const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); +const noteIpfsHashPath = path.join(`${__dirname}/../scripts/note-ipfs-hash`); +const perspectiveDiffSyncHashPath = path.join(`${__dirname}/../scripts/perspective-diff-sync-hash`); +const gqlPort = 4000; +const hcAdminPort = 15000; +const hcAppPort = 15001; +const ipfsSwarmPort = 15003; //Update this as new languages are needed within testing code const languagesToPublish = { @@ -41,33 +43,6 @@ const languageHashes = { "perspectiveDiffSync": "" } -function apolloClient(port: number, token?: string): ApolloClient { - const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: token - } - } - }, - })); - - return new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); -} - function createTestingAgent() { if (!fs.existsSync(appDataPath)) { fs.mkdirSync(appDataPath); @@ -95,30 +70,11 @@ function injectLangAliasHashes() { async function publish() { createTestingAgent(); - const core = await main.init({ - appDataPath, - resourcePath: TEST_DIR, - networkBootstrapSeed: publishingBootstrapSeedPath, - languageLanguageOnly: true, - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - mocks: false, - ipfsRepoPath, - hcUseBootstrap: false, - hcUseProxy: false, - hcUseLocalProxy: false, - hcUseMdns: true, - runDappServer: false - } as OuterConfig) + + const executorProcess = await startExecutor(appDataPath, publishingBootstrapSeedPath, gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort, true); - const ad4mClient = new Ad4mClient(apolloClient(4000)); + const ad4mClient = new Ad4mClient(apolloClient(gqlPort)); await ad4mClient.agent.generate("passphrase"); - - await core.waitForAgent(); - core.initControllers() - await core.initLanguages() for (const [language, languageMeta] of Object.entries(languagesToPublish)) { let bundlePath = path.join(publishLanguagesPath, language, "build", "bundle.js"); @@ -146,7 +102,11 @@ async function publish() { } injectSystemLanguages() injectLangAliasHashes(); - await core!.exit(); + + if (executorProcess) { + executorProcess.kill() + } + exit(); } diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts new file mode 100644 index 000000000..1f277826b --- /dev/null +++ b/tests/js/utils/utils.ts @@ -0,0 +1,116 @@ +import { ChildProcess, exec, ExecException, execSync } from "node:child_process"; +import { rmSync } from "node:fs"; +import { GraphQLWsLink } from "@apollo/client/link/subscriptions/index.js"; +import { ApolloClient, InMemoryCache } from "@apollo/client/core/index.js"; +import { HttpLink } from "@apollo/client/link/http/index.js"; +import Websocket from "ws"; +import { createClient } from "graphql-ws"; + +export async function isProcessRunning(processName: string): Promise { + const cmd = (() => { + switch (process.platform) { + case 'win32': return `tasklist` + case 'darwin': return `ps -ax | grep ${processName}` + case 'linux': return `ps -A` + default: return false + } + })() + + if (!cmd) throw new Error("Invalid OS"); + + return new Promise((resolve, reject) => { + //@ts-ignore + exec(cmd, (err: ExecException, stdout: string, stderr: string) => { + if (err) reject(err) + + resolve(stdout.toLowerCase().indexOf(processName.toLowerCase()) > -1) + }) + }) + } + +export async function startExecutor(relativeDataPath: string, + bootstrapSeedPath: string, + gqlPort: number, + hcAdminPort: number, + hcAppPort: number, + ipfsSwarmPort: number, + languageLanguageOnly: boolean = false, + reqCredential?: string +): Promise { + console.log(bootstrapSeedPath); + let executorProcess = null as ChildProcess | null; + rmSync(relativeDataPath, { recursive: true, force: true }) + console.log("Initialzing executor data directory") + execSync(`../../host/dist/ad4m-macos-x64 init --dataPath ${relativeDataPath} --networkBootstrapSeed ${bootstrapSeedPath} --overrideConfig true`, {}) + + console.log("Starting executor") + try { + execSync("killall holochain") + } catch (e) { + console.log("No holochain process running") + } + + if (!reqCredential) { + executorProcess = exec(`../../host/dist/ad4m-macos-x64 serve --dataPath ${relativeDataPath} --port ${gqlPort} --hcAdminPort ${hcAdminPort} --hcAppPort ${hcAppPort} --ipfsPort ${ipfsSwarmPort} --hcUseBootrap false --hcUseProxy false --hcUseLocalProxy false --hcUseMdns true --languageLanguageOnly ${languageLanguageOnly}`, {}) + } else { + executorProcess = exec(`../../host/dist/ad4m-macos-x64 serve --dataPath ${relativeDataPath} --port ${gqlPort} --hcAdminPort ${hcAdminPort} --hcAppPort ${hcAppPort} --ipfsPort ${ipfsSwarmPort} --hcUseBootrap false --hcUseProxy false --hcUseLocalProxy false --hcUseMdns true --languageLanguageOnly ${languageLanguageOnly} --reqCredential ${reqCredential}`, {}) + } + let executorReady = new Promise((resolve, reject) => { + executorProcess!.stdout!.on('data', (data) => { + if (data.includes("GraphQL server started")) { + resolve() + } + }); + }) + + executorProcess!.stdout!.on('data', (data) => { + console.log(`${data}`); + }); + executorProcess!.stderr!.on('data', (data) => { + console.log(`${data}`); + }); + + console.log("Waiting for executor to settle...") + await executorReady + return executorProcess; +} + +export function apolloClient(port: number, token?: string): ApolloClient { + const wsLink = new GraphQLWsLink(createClient({ + url: `ws://localhost:${port}/graphql`, + webSocketImpl: Websocket, + connectionParams: () => { + return { + headers: { + authorization: token || "" + } + } + }, + })); + + const link = new HttpLink({ + uri: "http://localhost:4000/graphql", + //@ts-ignore + fetch + }); + + return new ApolloClient({ + link: wsLink, + cache: new InMemoryCache({ resultCaching: false, addTypename: false }), + defaultOptions: { + watchQuery: { + fetchPolicy: "no-cache", + }, + query: { + fetchPolicy: "no-cache", + }, + mutate: { + fetchPolicy: "no-cache" + } + }, + }); +} + +export function sleep(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} \ No newline at end of file diff --git a/tests/js/yarn.lock b/tests/js/yarn.lock deleted file mode 100644 index d15331f33..000000000 --- a/tests/js/yarn.lock +++ /dev/null @@ -1,2516 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@apollo/client@3.7.10": - version "3.7.10" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.7.10.tgz#addc5fcebaf016981d9476268a06d529be83f568" - integrity sha512-/k1MfrqPKYiPNdHcOzdxg9cEx96vhAGxAcSorzfBvV29XtFQcYW2cPNQOTjK/fpSMtqVo8UNmu5vwQAWD1gfCg== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - "@wry/context" "^0.7.0" - "@wry/equality" "^0.5.0" - "@wry/trie" "^0.3.0" - graphql-tag "^2.12.6" - hoist-non-react-statics "^3.3.2" - optimism "^0.16.1" - prop-types "^15.7.2" - response-iterator "^0.2.6" - symbol-observable "^4.0.0" - ts-invariant "^0.10.3" - tslib "^2.3.0" - zen-observable-ts "^1.2.5" - -"@babel/code-frame@^7.12.13": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/helper-validator-identifier@^7.18.6": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@graphql-typed-document-node/core@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" - integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== - -"@holochain/client@0.12.5": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" - integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/serialization@^0.1.0-beta-rc.3": - version "0.1.0-beta-rc.3" - resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" - integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== - -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== - dependencies: - jest-get-type "^29.2.0" - -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== - dependencies: - "@jest/schemas" "^29.0.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@msgpack/msgpack@^2.7.2": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" - integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== - -"@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz#21418e1f3819e0b353ceff0c2dad8ccb61acd777" - integrity sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ== - dependencies: - asn1js "^3.0.5" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -"@peculiar/json-schema@^1.1.12": - version "1.1.12" - resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" - integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== - dependencies: - tslib "^2.0.0" - -"@peculiar/webcrypto@^1.1.7": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz#821493bd5ad0f05939bd5f53b28536f68158360a" - integrity sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw== - dependencies: - "@peculiar/asn1-schema" "^2.3.0" - "@peculiar/json-schema" "^1.1.12" - pvtsutils "^1.3.2" - tslib "^2.4.1" - webcrypto-core "^1.7.4" - -"@perspect3vism/ad4m@link:../../core": - version "0.0.0" - uid "" - -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== - -"@sinonjs/commons@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" - integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@10.0.2", "@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== - dependencies: - "@sinonjs/commons" "^2.0.0" - -"@sinonjs/samsam@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-7.0.1.tgz#5b5fa31c554636f78308439d220986b9523fc51f" - integrity sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw== - dependencies: - "@sinonjs/commons" "^2.0.0" - lodash.get "^4.4.2" - type-detect "^4.0.8" - -"@sinonjs/text-encoding@^0.7.1": - version "0.7.2" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" - integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== - -"@tauri-apps/api@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" - integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== - -"@types/chai-as-promised@*": - version "7.1.5" - resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz#6e016811f6c7a64f2eed823191c3a6955094e255" - integrity sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ== - dependencies: - "@types/chai" "*" - -"@types/chai@*": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== - -"@types/expect@*": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@types/expect/-/expect-24.3.0.tgz#d7cab8b3c10c2d92a0cbb31981feceb81d3486f1" - integrity sha512-aq5Z+YFBz5o2b6Sp1jigx5nsmoZMK5Ceurjwy6PZmRv7dEi1jLtkARfvB1ME+OXJUG+7TZUDcv3WoCr/aor6dQ== - dependencies: - expect "*" - -"@types/faker@^5.5.7": - version "5.5.9" - resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" - integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== - -"@types/fs-extra@^9.0.12": - version "9.0.13" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" - integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== - dependencies: - "@types/node" "*" - -"@types/glob@^7.1.3": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^26.0.14": - version "26.0.24" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" - integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== - dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" - -"@types/js-yaml@^4.0.2": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" - integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/lodash@*": - version "4.14.191" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" - integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== - -"@types/lowdb@^1.0.11": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@types/lowdb/-/lowdb-1.0.11.tgz#d8336a635ea0dbd48a7f6f62fb9fccc5ec358ae3" - integrity sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg== - dependencies: - "@types/lodash" "*" - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/mocha@*": - version "10.0.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" - integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== - -"@types/node-fetch@^2.5.11": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node@*": - version "18.11.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" - integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== - -"@types/node@^14.11.2", "@types/node@^14.14.22": - version "14.18.36" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.36.tgz#c414052cb9d43fab67d679d5f3c641be911f5835" - integrity sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ== - -"@types/semver@^7.3.3": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== - -"@types/sinon@*": - version "10.0.13" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.13.tgz#60a7a87a70d9372d0b7b38cc03e825f46981fb83" - integrity sha512-UVjDqJblVNQYvVNUsj0PuYYw0ELRmgt1Nt5Vk0pT5f16ROGfcKJY8o1HVuMOJOpD727RrGB9EGvoaTQE5tgxZQ== - dependencies: - "@types/sinonjs__fake-timers" "*" - -"@types/sinonjs__fake-timers@*": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e" - integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^15.0.0": - version "15.0.15" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.15.tgz#e609a2b1ef9e05d90489c2f5f45bbfb2be092158" - integrity sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.19.tgz#8dbecdc9ab48bee0cb74f6e3327de3fa0d0c98ae" - integrity sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ== - dependencies: - "@types/yargs-parser" "*" - -"@wry/context@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.0.tgz#be88e22c0ddf62aeb0ae9f95c3d90932c619a5c8" - integrity sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ== - dependencies: - tslib "^2.3.0" - -"@wry/equality@^0.5.0": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" - integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== - dependencies: - tslib "^2.3.0" - -"@wry/trie@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" - integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== - dependencies: - tslib "^2.3.0" - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== - -ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -asn1js@^3.0.1, asn1js@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" - integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== - dependencies: - pvtsutils "^1.3.2" - pvutils "^1.1.3" - tslib "^2.4.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -big-integer@^1.6.17: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -binary@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" - integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - -bluebird@~3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -buffer-from@^1.0.0, buffer-from@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-indexof-polyfill@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" - integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== - -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" - integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chai-as-promised@*: - version "7.1.1" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" - integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== - dependencies: - check-error "^1.0.2" - -chai@*: - version "4.3.7" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" - integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^4.1.2" - get-func-name "^2.0.0" - loupe "^2.3.1" - pathval "^1.1.1" - type-detect "^4.0.5" - -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" - integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== - dependencies: - traverse ">=0.3.0 <0.4" - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== - -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -ci-info@^3.2.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" - integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== - -class-validator@^0.13.1: - version "0.13.2" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.13.2.tgz#64b031e9f3f81a1e1dcd04a5d604734608b24143" - integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== - dependencies: - libphonenumber-js "^1.9.43" - validator "^13.7.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -data-uri-to-buffer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b" - integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" - integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== - dependencies: - type-detect "^4.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -diff-sequences@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" - integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" - integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== - -duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== - dependencies: - readable-stream "^2.0.2" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -emittery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" - integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -expect@*: - version "29.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== - dependencies: - "@jest/expect-utils" "^29.3.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - -express@4.18.2: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -faker@^5.1.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/faker/-/faker-5.5.3.tgz#c57974ee484431b25205c2c8dc09fda861e51e0e" - integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== - -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.2.2, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graphql-query-complexity@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" - integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== - dependencies: - lodash.get "^4.4.2" - -graphql-subscriptions@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" - integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== - dependencies: - iterall "^1.3.0" - -graphql-tag@^2.12.6: - version "2.12.6" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" - integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== - dependencies: - tslib "^2.1.0" - -graphql@15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.7.2.tgz#85ab0eeb83722977151b3feb4d631b5f2ab287ef" - integrity sha512-AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@~2.0.0, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isomorphic-ws@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" - integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -iterall@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - -jest-diff@^26.0.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== - -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== - dependencies: - chalk "^4.0.0" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" - -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.3.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -js-base64@^3.7.3: - version "3.7.3" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.3.tgz#2e784bb0851636bf1e99ef12e4f3a8a8c9b7639f" - integrity sha512-PAr6Xg2jvd7MCR6Ld9Jg3BmTcjYsHEBx1VlwEwULb/qowPf5VD9kEMagj23Gm7JRnSvE/Da/57nChZjnvL8v6A== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -just-extend@^4.0.2: - version "4.2.1" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" - integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== - -libphonenumber-js@^1.9.43: - version "1.10.15" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.15.tgz#cad454adb5bf271bc820bbf7dd66776afcda7be6" - integrity sha512-sLeVLmWX17VCKKulc+aDIRHS95TxoTsKMRJi5s5gJdwlqNzMWcBCtSHHruVyXjqfi67daXM2SnLf2juSrdx5Sg== - -listenercount@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" - integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loupe@^2.3.1: - version "2.3.6" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" - integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== - dependencies: - get-func-name "^2.0.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -"mkdirp@>=0.5 0", mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mocha@*: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -nise@^5.1.2: - version "5.1.4" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.4.tgz#491ce7e7307d4ec546f5a659b2efe94a18b4bbc0" - integrity sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - path-to-regexp "^1.7.0" - -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.0.tgz#37e71db4ecc257057af828d523a7243d651d91e4" - integrity sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-wget-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/node-wget-js/-/node-wget-js-1.0.1.tgz#2390bf9c9f99f280cc7a221d07d096103161e78c" - integrity sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw== - dependencies: - request "^2.88.0" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optimism@^0.16.1: - version "0.16.2" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.2.tgz#519b0c78b3b30954baed0defe5143de7776bf081" - integrity sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ== - dependencies: - "@wry/context" "^0.7.0" - "@wry/trie" "^0.3.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -prop-types@^15.7.2: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pvtsutils@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" - integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== - dependencies: - tslib "^2.4.0" - -pvutils@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" - integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^16.13.1, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -react@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -readable-stream@^2.0.2, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -response-iterator@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" - integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== - -rimraf@2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver@^7.3.2: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -setimmediate@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -sinon@*: - version "15.0.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.0.1.tgz#ce062611a0b131892e2c18f03055b8eb6e8dc234" - integrity sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers" "10.0.2" - "@sinonjs/samsam" "^7.0.1" - diff "^5.0.0" - nise "^5.1.2" - supports-color "^7.2.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0, supports-color@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -symbol-observable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" - integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" - integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== - -ts-invariant@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" - integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== - dependencies: - tslib "^2.1.0" - -ts-mocha@*: - version "10.0.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.0.0.tgz#41a8d099ac90dbbc64b06976c5025ffaebc53cb9" - integrity sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw== - dependencies: - ts-node "7.0.1" - optionalDependencies: - tsconfig-paths "^3.5.0" - -ts-node@10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -ts-node@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" - integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== - dependencies: - arrify "^1.0.0" - buffer-from "^1.1.0" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.5.6" - yn "^2.0.0" - -tsconfig-paths@^3.5.0: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-graphql@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" - integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== - dependencies: - "@types/glob" "^7.1.3" - "@types/node" "^14.11.2" - "@types/semver" "^7.3.3" - glob "^7.1.6" - graphql-query-complexity "^0.7.0" - graphql-subscriptions "^1.1.0" - semver "^7.3.2" - tslib "^2.0.1" - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typescript@^4.6.2: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unzipper@^0.10.11: - version "0.10.11" - resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" - integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== - dependencies: - big-integer "^1.6.17" - binary "~0.3.0" - bluebird "~3.4.1" - buffer-indexof-polyfill "~1.0.0" - duplexer2 "~0.1.4" - fstream "^1.0.12" - graceful-fs "^4.2.2" - listenercount "~1.0.1" - readable-stream "~2.3.6" - setimmediate "~1.0.4" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -validator@^13.7.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - -webcrypto-core@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4" - integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A== - dependencies: - "@peculiar/asn1-schema" "^2.1.6" - "@peculiar/json-schema" "^1.1.12" - asn1js "^3.0.1" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" - integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zen-observable-ts@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" - integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== - dependencies: - zen-observable "0.8.15" - -zen-observable@0.8.15: - version "0.8.15" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/turbo.json b/turbo.json index 786dd94c2..db75a1953 100644 --- a/turbo.json +++ b/turbo.json @@ -28,11 +28,19 @@ }, "test": { - "dependsOn": ["build-libs", "build-languages"], + "dependsOn": ["^test"], + "outputs": [] + }, + "test:macos": { + "dependsOn": ["ad4m-host#package-macos", "test"], + "outputs": [] + }, + "test:linux": { + "dependsOn": ["ad4m-host#package-linux", "test"], "outputs": [] }, "test:windows": { - "dependsOn": ["build-libs", "build-languages"], + "dependsOn": ["ad4m-host#package-windows", "test"], "outputs": [] }, diff --git a/yarn.lock b/yarn.lock index 4ee6a255b..97ad72c8e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5089,7 +5089,7 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/mocha@^10.0.0": +"@types/mocha@*", "@types/mocha@^10.0.0": version "10.0.1" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== @@ -5130,6 +5130,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.38.tgz#2169ca4b70aa59aa5a8923509e50619dde48b0cf" integrity sha512-zMRIidN2Huikv/+/U7gRPFYsXDR/7IGqFZzTLnCEj5+gkrQjsowfamaxEnyvArct5hxGA3bTxMXlYhH78V6Cew== +"@types/node@^14.14.22": + version "14.18.42" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.42.tgz#fa39b2dc8e0eba61bdf51c66502f84e23b66e114" + integrity sha512-xefu+RBie4xWlK8hwAzGh3npDz/4VhF6icY/shU+zv/1fNn+ZVG7T7CRwe9LId9sAYRPxI+59QBPuKL3WpyGRg== + "@types/node@^16.11.26": version "16.18.16" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.16.tgz#09ff98b144abae2d7cce3e9fe9040ab2bf73222c" @@ -9003,6 +9008,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -11017,6 +11027,14 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -11285,6 +11303,13 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + formidable@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.1.1.tgz#81269cbea1a613240049f5f61a9d97731517414f" @@ -17266,6 +17291,11 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-fetch@2, node-fetch@^2.5.11, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7, node-fetch@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" @@ -17280,6 +17310,15 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" +node-fetch@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" + integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-forge@^1, node-forge@^1.1.0, node-forge@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" @@ -23700,7 +23739,7 @@ web-resource-inliner@^6.0.1: node-fetch "^2.6.0" valid-data-url "^3.0.0" -web-streams-polyfill@^3.0.0: +web-streams-polyfill@^3.0.0, web-streams-polyfill@^3.0.3: version "3.2.1" resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== From cd572cf7a06ae870347a916f58f8de047a5c3ca3 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 22:33:10 +0100 Subject: [PATCH 067/722] Deno bundle --- executor/scripts/bundle.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js index 7e0c633cd..9d1485471 100644 --- a/executor/scripts/bundle.js +++ b/executor/scripts/bundle.js @@ -41,7 +41,7 @@ esbuild outfile: 'lib/bundle.js', bundle: true, platform: 'node', - target: 'es2020', + target: 'deno1.3', format: 'esm', plugins: [ { @@ -74,6 +74,14 @@ esbuild }); }, }, + { + name: `ws-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^ws$`) }, (args) => { + return { path: path.resolve(`deno-websocket/mod.ts`), external: false }; + }); + }, + }, ], }) From 83c7e6df6f17ba928648f6e1d4e3e67e01fd0948 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 22:33:42 +0100 Subject: [PATCH 068/722] Migrate HolochainService from lowdb to aloedb --- .../Holochain/HolochainService.ts | 46 ++++++++++++------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index bdf31a6a1..deeb33aed 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -1,6 +1,5 @@ import { AdminWebsocket, AgentPubKey, AppSignalCb, AppWebsocket, encodeHashToBase64, AppSignal, CellId, CellType, setSigningCredentials, AgentInfoResponse, SigningCredentials, generateSigningKeyPair, GrantedFunctionsType, signZomeCall, getSigningCredentials, CellInfo } from '@holochain/client' -import low from 'lowdb' -import FileSync from 'lowdb/adapters/FileSync' +import { Database } from 'aloedb-node' import path from 'path' import fs from 'fs' import HolochainLanguageDelegate from "./HolochainLanguageDelegate" @@ -19,6 +18,17 @@ export const bootstrapUrl = "https://bootstrap.holo.host" export const kitsuneProxy = "kitsune-proxy://f3gH2VMkJ4qvZJOXx0ccL_Zo5n-s_CnBjSzAsEHHDCA/kitsune-quic/h/137.184.142.208/p/5788/--" const signingServiceVersion = "0.0.3"; +interface PubKeySchema { + pubKey: string, + lang: string, +} + +interface SigningCredentialsSchema { + cellId: string, + signingCredentials: string, +} + + export interface HolochainConfiguration { conductorPath?: string, dataPath: string, @@ -32,7 +42,8 @@ export interface HolochainConfiguration { } export default class HolochainService { - #db: any + #pubKeyDb: Database + #signingCredentialsDb: Database #adminPort: number #appPort: number #adminWebsocket?: AdminWebsocket @@ -70,8 +81,9 @@ export default class HolochainService { console.log("HolochainService: Creating low-db instance for holochain-serivce"); this.#dataPath = dataPath - this.#db = low(new FileSync(path.join(dataPath, 'holochain-service.json'))) - this.#db.defaults({pubKeys: [], signingCredentials: []}).write() + this.#pubKeyDb = new Database(path.join(dataPath, 'holochain-service-pubkeys.json')) + this.#signingCredentialsDb = new Database(path.join(dataPath, 'holochain-service-signing-credentials.json')) + this.#signalCallbacks = []; const holochainAppPort = appPort ? appPort : 1337; @@ -307,15 +319,15 @@ export default class HolochainService { } async pubKeyForAllLanguages(): Promise { - const alreadyExisting = this.#db.get('pubKeys').find({lang: "global"}).value() + const alreadyExisting = await this.#pubKeyDb.findOne({lang: "global"}) if(alreadyExisting) { - const pubKey = Buffer.from(alreadyExisting.pubKey) - console.debug("Found existing pubKey", pubKey.toString("base64"), "for all languages") - return pubKey + console.debug("Found existing pubKey", alreadyExisting.pubKey, "for all languages") + return Buffer.from(alreadyExisting.pubKey, "base64") } else { const pubKey = await this.#adminWebsocket!.generateAgentPubKey() - this.#db.get('pubKeys').push({lang: "global", pubKey}).write() - console.debug("Created new pubKey", Buffer.from(pubKey).toString("base64"), "for all languages") + const pubKeyString = Buffer.from(pubKey).toString("base64") + await this.#pubKeyDb.insertOne({lang: "global", pubKey: pubKeyString}) + console.debug("Created new pubKey", pubKeyString, "for all languages") return pubKey } } @@ -324,6 +336,7 @@ export default class HolochainService { return this.pubKeyForAllLanguages() // TODO using the same key for all DNAs should only be a temporary thing. + /* const alreadyExisting = this.#db.get('pubKeys').find({lang}).value() if(alreadyExisting) { const pubKey = Buffer.from(alreadyExisting.pubKey) @@ -334,7 +347,7 @@ export default class HolochainService { this.#db.get('pubKeys').push({lang, pubKey}).write() console.debug("Created new pubKey", Buffer.from(pubKey).toString("base64"), "for language", lang) return pubKey - } + }*/ } private cellIdToB64(cell: CellId): string { @@ -351,7 +364,7 @@ export default class HolochainService { setSigningCredentials(cell, signingCredentials); //Set the signing credentials in the database - this.#db.get("signingCredentials").push({cellId: cellIdB64, signingCredentials: signingCredentials}).write(); + await this.#signingCredentialsDb.insertOne({cellId: cellIdB64, signingCredentials: JSON.stringify(signingCredentials)}); return signingCredentials; } @@ -448,8 +461,7 @@ export default class HolochainService { if (hash) hashes.push(hash); const cellIdB64 = this.cellIdToB64(cellId); - const signingCredentials = await this.#db.get("signingKeys").find({cellId: cellIdB64}).value() as SigningCredentials | undefined; - + const signingCredentials = await this.#signingCredentialsDb.findOne({cellId: cellIdB64}) if (!signingCredentials) { console.log("HolochainService: Did not find saved signingCredentials, generating new one..."); await this.generateSigningKeys(cellId); @@ -548,14 +560,14 @@ export default class HolochainService { if (!signingKeyExists) { const cellIdB64 = this.cellIdToB64(cellId); //Check if we already have some in the database - let signingCredentials = await this.#db.get("signingKeys").find({cellId: cellIdB64}).value() as SigningCredentials | undefined; + let signingCredentials = await this.#signingCredentialsDb.findOne({cellId: cellIdB64}) if (!signingCredentials) { console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "generating new ones..."); await this.generateSigningKeys(cellId); } else { console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "but found them in the database, setting them...", signingCredentials); //We have some but they are not present in the holochain client... set them - setSigningCredentials(cellId, signingCredentials); + setSigningCredentials(cellId, JSON.parse(signingCredentials.signingCredentials)); } } From b58ea9e2e3d91b39c846547d5edc57590b294df7 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 22:34:20 +0100 Subject: [PATCH 069/722] Replace DID lowdb cache with in memory map (for now) --- executor/src/core/agent/DIDs.ts | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/executor/src/core/agent/DIDs.ts b/executor/src/core/agent/DIDs.ts index c18bef9df..0bc5fbbd7 100644 --- a/executor/src/core/agent/DIDs.ts +++ b/executor/src/core/agent/DIDs.ts @@ -1,21 +1,15 @@ -import low from 'lowdb' -import FileSync from 'lowdb/adapters/FileSync' import path from 'path' import fetch from 'node-fetch' import { resolver } from '@transmute/did-key.js'; export class DIDResolver { - #cacheDB: any - - constructor(dbAdapter: typeof FileSync) { - this.#cacheDB = low(dbAdapter) - } + #cacheMap = new Map() async resolve(did: string): Promise { if(!did) return null - if(this.#cacheDB.has(did).value()) { - return this.#cacheDB.get(did).value() + if(this.#cacheMap.has(did)) { + return this.#cacheMap.get(did) } try { @@ -31,7 +25,7 @@ export class DIDResolver { const didDocument = await response.json() if(didDocument) { - this.#cacheDB.set(did, didDocument).write() + this.#cacheMap.set(did, didDocument) } else { throw new Error("Empty JSON response") } @@ -47,6 +41,6 @@ export class DIDResolver { } export function init(cacheDBFilePath: string) { - const adapter = new FileSync(path.join(cacheDBFilePath, 'DIDCache.json')) - return new DIDResolver(adapter) + //const adapter = new FileSync(path.join(cacheDBFilePath, 'DIDCache.json')) + return new DIDResolver() } \ No newline at end of file From 71e618042843919e820799bd7583e3e9fa2ad646 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 22:35:27 +0100 Subject: [PATCH 070/722] Deactivate IPFS and Apollo GraphQL in executor, and some other dependencies that don't work in Deno --- executor/package.json | 17 +- executor/src/core/PerspectivismCore.ts | 17 +- .../src/core/graphQL-interface/GraphQL.ts | 33 +- executor/src/core/storage-services/IPFS.ts | 4 +- executor/src/main.ts | 2 +- yarn.lock | 4711 ++--------------- 6 files changed, 375 insertions(+), 4409 deletions(-) diff --git a/executor/package.json b/executor/package.json index 426ea2d86..cc4e99515 100644 --- a/executor/package.json +++ b/executor/package.json @@ -58,7 +58,6 @@ "url": "https://github.com/perspect3vism/ad4m/issues" }, "devDependencies": { - "@apollo/client": "3.7.10", "@peculiar/webcrypto": "^1.1.7", "@types/chai": "*", "@types/chai-as-promised": "*", @@ -74,10 +73,11 @@ "@types/sha256": "^0.2.0", "@types/sinon": "*", "@types/uuid": "^8.3.1", - "@types/ws": "8.5.4", "chai": "*", "chai-as-promised": "*", "esbuild": "^0.17.15", + "esbuild-plugin-alias": "^0.2.1", + "esbuild-plugin-polyfill-node": "^0.2.0", "faker": "^5.1.0", "mocha": "*", "node-wget-js": "^1.0.1", @@ -86,11 +86,9 @@ "ts-mocha": "*", "ts-node": "10.9.1", "typescript": "^4.6.2", - "unzipper": "^0.10.11", - "ws": "8.13.0" + "unzipper": "^0.10.11" }, "dependencies": { - "@graphql-tools/schema": "^8.5.1", "@holochain/client": "0.12.5", "@noble/secp256k1": "^1.7.0", "@perspect3vism/ad4m": "*", @@ -102,23 +100,14 @@ "@types/json-stable-stringify": "^1.0.33", "@types/mocha": "^10.0.0", "aloedb-node": "^1.1.1", - "apollo-server": "3.12.0", - "apollo-server-core": "3.12.0", - "apollo-server-express": "3.12.0", "async-mutex": "^0.3.2", "express": "4.18.2", - "fs-extra": "^10.0.0", "get-port": "5.1.1", - "graphql": "15.7.2", - "graphql-subscriptions": "2.0.0", - "graphql-ws": "5.12.0", - "ipfs": "^0.65.0", "jose": "^4.8.1", "js-yaml": "^4.1.0", "json-stable-stringify": "^1.0.1", "key-encoder": "^2.0.3", "lodash": "^4.17.21", - "lowdb": "^1.0.0", "node-fetch": "^2.6.1", "run-script-os": "^1.1.6", "sha256": "^0.2.0", diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index 7fea2ab8b..dd8dacce7 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -5,7 +5,7 @@ import * as Config from './Config' import * as Db from './db' import type { PerspectivismDb } from './db' import HolochainService, { HolochainConfiguration } from './storage-services/Holochain/HolochainService'; -import * as IPFS from './storage-services/IPFS' +//import * as IPFS from './storage-services/IPFS' import AgentService from './agent/AgentService' import PerspectivesController from './PerspectivesController' import LanguageController from './LanguageController' @@ -14,7 +14,7 @@ import * as DIDs from './agent/DIDs' import type { DIDResolver } from './agent/DIDs' import Signatures from './agent/Signatures' import * as PubSub from './graphQL-interface/PubSub' -import { IPFS as IPFSType } from 'ipfs' +//import { IPFS as IPFSType } from 'ipfs' import EntanglementProofController from './EntanglementProof' import runDAppServer from "./DAppServer" import fs from 'fs' @@ -56,7 +56,7 @@ export interface ConnectHolochainParams { export default class PerspectivismCore { #config: MainConfig; #holochain?: HolochainService - #IPFS?: IPFSType + //#IPFS?: IPFSType #agentService: AgentService #runtimeService: RuntimeService @@ -140,12 +140,13 @@ export default class PerspectivismCore { perspective.closePrologEngine() } console.log("Stopping IPFS") - await this.#IPFS?.stop({timeout: 15}); + //await this.#IPFS?.stop({timeout: 15}); console.log("Stopping Holochain conductor") await this.#holochain?.stop(); console.log("Done.") } + /* async startGraphQLServer(port: number, mocks: boolean, config: OuterConfig) { const { url, subscriptionsUrl } = await GraphQL.startServer({ core: this, @@ -155,7 +156,7 @@ export default class PerspectivismCore { }) console.log(`🚀 GraphQL Server ready at ${url}`) console.log(`🚀 GraphQL subscriptions ready at ${subscriptionsUrl}`) - } + }*/ startDAppServer(port: number) { runDAppServer(port) @@ -178,8 +179,8 @@ export default class PerspectivismCore { } } - let ipfs = await IPFS.init(params.ipfsSwarmPort, params.ipfsRepoPath); - this.#IPFS = ipfs; + //let ipfs = await IPFS.init(params.ipfsSwarmPort, params.ipfsRepoPath); + //this.#IPFS = ipfs; } async initHolochain(params: InitHolochainParams) { @@ -237,7 +238,7 @@ export default class PerspectivismCore { this.#languageController = new LanguageController({ agent: this.#agentService, runtime: this.#runtimeService, - IPFS: this.#IPFS, + //IPFS: this.#IPFS, signatures: this.#signatures, ad4mSignal: this.languageSignal, config: this.#config, diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 821e956ba..e9c480930 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -1,33 +1,38 @@ -import { ApolloServer, gql, AuthenticationError } from 'apollo-server-express' -import express from 'express'; -import { createServer } from 'http'; -import { - ApolloServerPluginDrainHttpServer, -} from "apollo-server-core"; -import { WebSocketServer } from 'ws'; -import { useServer } from 'graphql-ws/lib/use/ws'; -import { makeExecutableSchema } from '@graphql-tools/schema'; +//import { ApolloServer, gql, AuthenticationError } from 'apollo-server-express' +//import express from 'express'; +//import { createServer } from 'http'; +//import { +// ApolloServerPluginDrainHttpServer, +//} from "apollo-server-core"; +//import { WebSocketServer } from 'ws'; +//import { useServer } from 'graphql-ws/lib/use/ws'; +//import { makeExecutableSchema } from '@graphql-tools/schema'; import { Agent, Expression, InteractionCall, LanguageRef, PerspectiveExpression, PerspectiveHandle, PerspectiveState, PerspectiveUnsignedInput } from '@perspect3vism/ad4m' import { exprRef2String, parseExprUrl, LanguageMeta } from '@perspect3vism/ad4m' import { typeDefsString } from '@perspect3vism/ad4m/lib/src/typeDefs' import type PerspectivismCore from '../PerspectivismCore' import * as PubSub from './PubSub' -import { GraphQLScalarType } from "graphql"; +//import { GraphQLScalarType } from "graphql"; import { ad4mExecutorVersion } from '../Config'; import * as Auth from '../agent/Auth' import { checkCapability, checkTokenAuthorized } from '../agent/Auth' -import { withFilter } from 'graphql-subscriptions'; +//import { withFilter } from 'graphql-subscriptions'; import { OuterConfig } from '../../main'; import path from 'path'; import Perspective from '../Perspective'; +function withFilter(f1:()=>{}, f2:(payload: any, variables: any)=>{} ) { + return (a1: any, a2: any) => { + } +} + function checkLinkLanguageInstalled(perspective: Perspective) { if(perspective.state != PerspectiveState.Synced && perspective.state != PerspectiveState.LinkLanguageInstalledButNotSynced) { throw new Error(`Perspective ${perspective.uuid}/${perspective.name} does not have a LinkLanguage installed. State is: ${perspective.state}`) } } -function createResolvers(core: PerspectivismCore, config: OuterConfig) { +export function createResolvers(core: PerspectivismCore, config: OuterConfig) { const pubsub = PubSub.get() function signPerspectiveDeep(input: PerspectiveUnsignedInput): PerspectiveExpression { let out = new PerspectiveExpression() @@ -1082,6 +1087,7 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { } }, + /* DateTime: new GraphQLScalarType({ name: 'Date', description: 'Date custom scalar type', @@ -1092,9 +1098,11 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { return value.toISOString(); // value sent to the client } }), + */ } } +/* export interface StartServerParams { core: PerspectivismCore, mocks: boolean, @@ -1207,3 +1215,4 @@ export async function startServer(params: StartServerParams) { subscriptionsUrl: `ws://localhost:${port}/graphql` } } +*/ \ No newline at end of file diff --git a/executor/src/core/storage-services/IPFS.ts b/executor/src/core/storage-services/IPFS.ts index 13a7357d0..3a8086d5b 100644 --- a/executor/src/core/storage-services/IPFS.ts +++ b/executor/src/core/storage-services/IPFS.ts @@ -1,3 +1,4 @@ +/* import * as IPFS from 'ipfs-core' const _appendBuffer = (buffer1: Uint8Array, buffer2: Uint8Array) => { @@ -43,4 +44,5 @@ export async function init (swarmPort?: number, repo?: string) { console.log('IPFS Version:', version.version) return node -} \ No newline at end of file +} +*/ \ No newline at end of file diff --git a/executor/src/main.ts b/executor/src/main.ts index b0b20ce57..a806cb5e8 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -197,7 +197,7 @@ export async function init(config: OuterConfig): Promise { console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); - await core.startGraphQLServer(gqlPort, mocks, config); + //await core.startGraphQLServer(gqlPort, mocks, config); if (runDappServer) { core.startDAppServer(dAppPort) }; console.log("\x1b[31m", "GraphQL server started, Unlock the agent to start holohchain", "\x1b[0m"); diff --git a/yarn.lock b/yarn.lock index 4ee6a255b..0997d9406 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,39 +2,6 @@ # yarn lockfile v1 -"@achingbrain/ip-address@^8.1.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@achingbrain/ip-address/-/ip-address-8.1.0.tgz#24f2e9cd7289e33f433d771b23bea56cfd0242c9" - integrity sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw== - dependencies: - jsbn "1.1.0" - sprintf-js "1.1.2" - -"@achingbrain/nat-port-mapper@^1.0.3": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz#82c414712da38a0f3da0f938982b6dd724d3c677" - integrity sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg== - dependencies: - "@achingbrain/ssdp" "^4.0.1" - "@libp2p/logger" "^2.0.0" - default-gateway "^6.0.2" - err-code "^3.0.1" - it-first "^1.0.7" - p-defer "^4.0.0" - p-timeout "^5.0.2" - xml2js "^0.4.23" - -"@achingbrain/ssdp@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@achingbrain/ssdp/-/ssdp-4.0.1.tgz#47ccaaa8256cf73b7b2ab86a0ad14128cfaf77b7" - integrity sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ== - dependencies: - event-iterator "^2.0.0" - freeport-promise "^2.0.0" - merge-options "^3.0.4" - uuid "^8.3.2" - xml2js "^0.4.23" - "@adobe/css-tools@^4.0.1": version "4.2.0" resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" @@ -199,11 +166,6 @@ asciidoctor-opal-runtime "0.3.3" unxhr "1.0.1" -"@assemblyscript/loader@^0.9.4": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.9.4.tgz#a483c54c1253656bb33babd464e3154a173e1577" - integrity sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA== - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.8.3": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" @@ -1299,65 +1261,6 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@chainsafe/is-ip@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@chainsafe/is-ip/-/is-ip-2.0.1.tgz#62cb285669d91f88fd9fa285048dde3882f0993b" - integrity sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ== - -"@chainsafe/libp2p-gossipsub@^4.0.0": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-4.1.1.tgz#804dbbd262900fd730339c40c46013ff854240af" - integrity sha512-W3z52uTVm48qvwTAcE+tz6ML2CPWA4ErmuL2aCWAW8S7ce6iH8anqo+xI9rcedyIOChWMWLLD4Gtaj4TMrWacw== - dependencies: - "@libp2p/components" "^2.0.3" - "@libp2p/crypto" "^1.0.3" - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-keys" "^1.0.3" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-pubsub" "^2.0.1" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.15" - "@libp2p/peer-record" "^4.0.1" - "@libp2p/pubsub" "^3.1.2" - "@libp2p/topology" "^3.0.0" - abortable-iterator "^4.0.2" - denque "^1.5.0" - err-code "^3.0.1" - it-length-prefixed "^8.0.2" - it-pipe "^2.0.4" - it-pushable "^3.1.0" - multiformats "^9.6.4" - protobufjs "^6.11.2" - uint8arraylist "^2.3.2" - uint8arrays "^3.0.0" - -"@chainsafe/libp2p-noise@^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-noise/-/libp2p-noise-10.2.0.tgz#809f7fff8685a1687958fc8f36d314e1d097b6ad" - integrity sha512-nXw09UwSE5JCiB5Dte6j0b0Qe+KbtepJvaPz/f5JyxcoyUfLE/t7XWRZAZmcuWBeVWWpOItnK5WmW8uocoiwCQ== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-connection-encrypter" "^3.0.0" - "@libp2p/interface-keys" "^1.0.2" - "@libp2p/interface-metrics" "^4.0.2" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.8" - "@stablelib/chacha20poly1305" "^1.0.1" - "@stablelib/hkdf" "^1.0.1" - "@stablelib/sha256" "^1.0.1" - "@stablelib/x25519" "^1.0.1" - it-length-prefixed "^8.0.2" - it-pair "^2.0.2" - it-pb-stream "^2.0.2" - it-pipe "^2.0.3" - it-stream-types "^1.0.4" - protons-runtime "^4.0.1" - uint8arraylist "^2.3.2" - uint8arrays "^4.0.2" - "@changesets/apply-release-plan@^6.1.3": version "6.1.3" resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-6.1.3.tgz#3bcc0bd57ba00d50d20df7d0141f1a9b2134eaf7" @@ -1705,6 +1608,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== +"@esbuild/android-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz#893ad71f3920ccb919e1757c387756a9bca2ef42" + integrity sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA== + "@esbuild/android-arm@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" @@ -1715,46 +1623,91 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== +"@esbuild/android-arm@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.15.tgz#143e0d4e4c08c786ea410b9a7739779a9a1315d8" + integrity sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg== + "@esbuild/android-x64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== +"@esbuild/android-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.15.tgz#d2d12a7676b2589864281b2274355200916540bc" + integrity sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ== + "@esbuild/darwin-arm64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== +"@esbuild/darwin-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz#2e88e79f1d327a2a7d9d06397e5232eb0a473d61" + integrity sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA== + "@esbuild/darwin-x64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== +"@esbuild/darwin-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz#9384e64c0be91388c57be6d3a5eaf1c32a99c91d" + integrity sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg== + "@esbuild/freebsd-arm64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== +"@esbuild/freebsd-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz#2ad5a35bc52ebd9ca6b845dbc59ba39647a93c1a" + integrity sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg== + "@esbuild/freebsd-x64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== +"@esbuild/freebsd-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz#b513a48446f96c75fda5bef470e64d342d4379cd" + integrity sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ== + "@esbuild/linux-arm64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== +"@esbuild/linux-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz#9697b168175bfd41fa9cc4a72dd0d48f24715f31" + integrity sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA== + "@esbuild/linux-arm@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== +"@esbuild/linux-arm@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz#5b22062c54f48cd92fab9ffd993732a52db70cd3" + integrity sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw== + "@esbuild/linux-ia32@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== +"@esbuild/linux-ia32@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz#eb28a13f9b60b5189fcc9e98e1024f6b657ba54c" + integrity sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q== + "@esbuild/linux-loong64@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" @@ -1765,61 +1718,121 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== +"@esbuild/linux-loong64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz#32454bdfe144cf74b77895a8ad21a15cb81cfbe5" + integrity sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ== + "@esbuild/linux-mips64el@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== +"@esbuild/linux-mips64el@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz#af12bde0d775a318fad90eb13a0455229a63987c" + integrity sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ== + "@esbuild/linux-ppc64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== +"@esbuild/linux-ppc64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz#34c5ed145b2dfc493d3e652abac8bd3baa3865a5" + integrity sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg== + "@esbuild/linux-riscv64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== +"@esbuild/linux-riscv64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz#87bd515e837f2eb004b45f9e6a94dc5b93f22b92" + integrity sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA== + "@esbuild/linux-s390x@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== +"@esbuild/linux-s390x@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz#20bf7947197f199ddac2ec412029a414ceae3aa3" + integrity sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg== + "@esbuild/linux-x64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== +"@esbuild/linux-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz#31b93f9c94c195e852c20cd3d1914a68aa619124" + integrity sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg== + "@esbuild/netbsd-x64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== +"@esbuild/netbsd-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz#8da299b3ac6875836ca8cdc1925826498069ac65" + integrity sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA== + "@esbuild/openbsd-x64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== +"@esbuild/openbsd-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz#04a1ec3d4e919714dba68dcf09eeb1228ad0d20c" + integrity sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w== + "@esbuild/sunos-x64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== +"@esbuild/sunos-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz#6694ebe4e16e5cd7dab6505ff7c28f9c1c695ce5" + integrity sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ== + "@esbuild/win32-arm64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== +"@esbuild/win32-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz#1f95b2564193c8d1fee8f8129a0609728171d500" + integrity sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q== + "@esbuild/win32-ia32@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== +"@esbuild/win32-ia32@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz#c362b88b3df21916ed7bcf75c6d09c6bf3ae354a" + integrity sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w== + "@esbuild/win32-x64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== +"@esbuild/win32-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz#c2e737f3a201ebff8e2ac2b8e9f246b397ad19b8" + integrity sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA== + "@eslint-community/eslint-utils@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz#a831e6e468b4b2b5ae42bf658bea015bf10bc518" @@ -1888,7 +1901,7 @@ tslib "^2.4.0" value-or-promise "1.0.12" -"@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.5.1": +"@graphql-tools/schema@^8.0.0": version "8.5.1" resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg== @@ -1918,275 +1931,6 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.2.tgz#6fc464307cbe3c8ca5064549b806360d84457b04" integrity sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA== -"@grpc/grpc-js@^1.1.8": - version "1.8.12" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.12.tgz#bc0120859e8b153db764b473cc019ddf6bb2b414" - integrity sha512-MbUMvpVvakeKhdYux6gbSIPJaFMLNSY8jw4PqLI+FFztGrQRrYYAnHlR94+ncBQQewkpXQaW449m3tpH/B/ZnQ== - dependencies: - "@grpc/proto-loader" "^0.7.0" - "@types/node" ">=12.12.47" - -"@grpc/proto-loader@^0.7.0": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.5.tgz#ee9e7488fa585dc6b0f7fe88cd39723a3e64c906" - integrity sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg== - dependencies: - "@types/long" "^4.0.1" - lodash.camelcase "^4.3.0" - long "^4.0.0" - protobufjs "^7.0.0" - yargs "^16.2.0" - -"@hapi/accept@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.2.tgz#ab7043b037e68b722f93f376afb05e85c0699523" - integrity sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/ammo@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@hapi/ammo/-/ammo-5.0.1.tgz#9d34560f5c214eda563d838c01297387efaab490" - integrity sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/b64@5.x.x": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@hapi/b64/-/b64-5.0.0.tgz#b8210cbd72f4774985e78569b77e97498d24277d" - integrity sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/boom@9.x.x", "@hapi/boom@^9.1.0": - version "9.1.4" - resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" - integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/bounce@2.x.x", "@hapi/bounce@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@hapi/bounce/-/bounce-2.0.0.tgz#e6ef56991c366b1e2738b2cd83b01354d938cf3d" - integrity sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/bourne@2.x.x", "@hapi/bourne@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.1.0.tgz#66aff77094dc3080bd5df44ec63881f2676eb020" - integrity sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q== - -"@hapi/call@^8.0.0": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@hapi/call/-/call-8.0.1.tgz#9e64cd8ba6128eb5be6e432caaa572b1ed8cd7c0" - integrity sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/catbox-memory@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz#cb63fca0ded01d445a2573b38eb2688df67f70ac" - integrity sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/catbox@^11.1.1": - version "11.1.1" - resolved "https://registry.yarnpkg.com/@hapi/catbox/-/catbox-11.1.1.tgz#d277e2d5023fd69cddb33d05b224ea03065fec0c" - integrity sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - "@hapi/podium" "4.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/content@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@hapi/content/-/content-5.0.2.tgz#ae57954761de570392763e64cdd75f074176a804" - integrity sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw== - dependencies: - "@hapi/boom" "9.x.x" - -"@hapi/cryptiles@5.x.x": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/cryptiles/-/cryptiles-5.1.0.tgz#655de4cbbc052c947f696148c83b187fc2be8f43" - integrity sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA== - dependencies: - "@hapi/boom" "9.x.x" - -"@hapi/file@2.x.x": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@hapi/file/-/file-2.0.0.tgz#2ecda37d1ae9d3078a67c13b7da86e8c3237dfb9" - integrity sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ== - -"@hapi/hapi@^20.0.0": - version "20.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hapi/-/hapi-20.3.0.tgz#1d620005afeebcb2c8170352286a4664b0107c15" - integrity sha512-zvPSRvaQyF3S6Nev9aiAzko2/hIFZmNSJNcs07qdVaVAvj8dGJSV4fVUuQSnufYJAGiSau+U5LxMLhx79se5WA== - dependencies: - "@hapi/accept" "^5.0.1" - "@hapi/ammo" "^5.0.1" - "@hapi/boom" "^9.1.0" - "@hapi/bounce" "^2.0.0" - "@hapi/call" "^8.0.0" - "@hapi/catbox" "^11.1.1" - "@hapi/catbox-memory" "^5.0.0" - "@hapi/heavy" "^7.0.1" - "@hapi/hoek" "^9.0.4" - "@hapi/mimos" "^6.0.0" - "@hapi/podium" "^4.1.1" - "@hapi/shot" "^5.0.5" - "@hapi/somever" "^3.0.0" - "@hapi/statehood" "^7.0.3" - "@hapi/subtext" "^7.1.0" - "@hapi/teamwork" "^5.1.0" - "@hapi/topo" "^5.0.0" - "@hapi/validate" "^1.1.1" - -"@hapi/heavy@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@hapi/heavy/-/heavy-7.0.1.tgz#73315ae33b6e7682a0906b7a11e8ca70e3045874" - integrity sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.0.4": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" - integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== - -"@hapi/iron@6.x.x": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@hapi/iron/-/iron-6.0.0.tgz#ca3f9136cda655bdd6028de0045da0de3d14436f" - integrity sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw== - dependencies: - "@hapi/b64" "5.x.x" - "@hapi/boom" "9.x.x" - "@hapi/bourne" "2.x.x" - "@hapi/cryptiles" "5.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/mimos@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@hapi/mimos/-/mimos-6.0.0.tgz#daa523d9c07222c7e8860cb7c9c5501fd6506484" - integrity sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg== - dependencies: - "@hapi/hoek" "9.x.x" - mime-db "1.x.x" - -"@hapi/nigel@4.x.x": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@hapi/nigel/-/nigel-4.0.2.tgz#8f84ef4bca4fb03b2376463578f253b0b8e863c4" - integrity sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw== - dependencies: - "@hapi/hoek" "^9.0.4" - "@hapi/vise" "^4.0.0" - -"@hapi/pez@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/pez/-/pez-5.1.0.tgz#c03a5e01f8be01cfabc4c0017631e619586321c1" - integrity sha512-YfB0btnkLB3lb6Ry/1KifnMPBm5ZPfaAHWFskzOMAgDgXgcBgA+zjpIynyEiBfWEz22DBT8o1e2tAaBdlt8zbw== - dependencies: - "@hapi/b64" "5.x.x" - "@hapi/boom" "9.x.x" - "@hapi/content" "^5.0.2" - "@hapi/hoek" "9.x.x" - "@hapi/nigel" "4.x.x" - -"@hapi/podium@4.x.x", "@hapi/podium@^4.1.1": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@hapi/podium/-/podium-4.1.3.tgz#91e20838fc2b5437f511d664aabebbb393578a26" - integrity sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g== - dependencies: - "@hapi/hoek" "9.x.x" - "@hapi/teamwork" "5.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/shot@^5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@hapi/shot/-/shot-5.0.5.tgz#a25c23d18973bec93c7969c51bf9579632a5bebd" - integrity sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A== - dependencies: - "@hapi/hoek" "9.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/somever@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@hapi/somever/-/somever-3.0.1.tgz#9961cd5bdbeb5bb1edc0b2acdd0bb424066aadcc" - integrity sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w== - dependencies: - "@hapi/bounce" "2.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/statehood@^7.0.3": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@hapi/statehood/-/statehood-7.0.4.tgz#6acb9d0817b5c657089356f7d9fd60af0bce4f41" - integrity sha512-Fia6atroOVmc5+2bNOxF6Zv9vpbNAjEXNcUbWXavDqhnJDlchwUUwKS5LCi5mGtCTxRhUKKHwuxuBZJkmLZ7fw== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/bounce" "2.x.x" - "@hapi/bourne" "2.x.x" - "@hapi/cryptiles" "5.x.x" - "@hapi/hoek" "9.x.x" - "@hapi/iron" "6.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/subtext@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@hapi/subtext/-/subtext-7.1.0.tgz#b4d1ea2aeab1923ac130a24e75921e38fab5b15b" - integrity sha512-n94cU6hlvsNRIpXaROzBNEJGwxC+HA69q769pChzej84On8vsU14guHDub7Pphr/pqn5b93zV3IkMPDU5AUiXA== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/bourne" "2.x.x" - "@hapi/content" "^5.0.2" - "@hapi/file" "2.x.x" - "@hapi/hoek" "9.x.x" - "@hapi/pez" "^5.1.0" - "@hapi/wreck" "17.x.x" - -"@hapi/teamwork@5.x.x", "@hapi/teamwork@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@hapi/teamwork/-/teamwork-5.1.1.tgz#4d2ba3cac19118a36c44bf49a3a47674de52e4e4" - integrity sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg== - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@hapi/validate@1.x.x", "@hapi/validate@^1.1.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@hapi/validate/-/validate-1.1.3.tgz#f750a07283929e09b51aa16be34affb44e1931ad" - integrity sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - -"@hapi/vise@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@hapi/vise/-/vise-4.0.0.tgz#c6a94fe121b94a53bf99e7489f7fcc74c104db02" - integrity sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/wreck@17.x.x": - version "17.2.0" - resolved "https://registry.yarnpkg.com/@hapi/wreck/-/wreck-17.2.0.tgz#a5b69b724fa8fa25550fb02f55c649becfc59f63" - integrity sha512-pJ5kjYoRPYDv+eIuiLQqhGon341fr2bNIYZjuotuPJG/3Ilzr/XtI+JAp0A86E2bYfsS3zBPABuS2ICkaXFT8g== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/bourne" "2.x.x" - "@hapi/hoek" "9.x.x" - "@holochain/client@0.12.5": version "0.12.5" resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" @@ -2264,47 +2008,6 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@ipld/car@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@ipld/car/-/car-5.1.0.tgz#1c8d8cda72138aeceec0cea9560236e59337f434" - integrity sha512-k9pO0YqJvmFGY5pJDhF2Ocz+mRp3C3r4ikr1NrUXkzN/z4JzhE7XbQzUCcm7daq8k4tRqap0fWPjxZwjS9PUcQ== - dependencies: - "@ipld/dag-cbor" "^9.0.0" - cborg "^1.9.0" - multiformats "^11.0.0" - varint "^6.0.0" - -"@ipld/dag-cbor@^8.0.0": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-8.0.1.tgz#3042c219dd85a71d66ca6946fb6c7b6f0d519369" - integrity sha512-mHRuzgGXNk0Y5W7nNQdN37qJiig1Kdgf92icBVFRUNtBc9Ezl5DIdWfiGWBucHBrhqPBncxoH3As9cHPIRozxA== - dependencies: - cborg "^1.6.0" - multiformats "^11.0.0" - -"@ipld/dag-cbor@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-9.0.0.tgz#51902f7d19ce2203b04e4cfe0514936b82d09d91" - integrity sha512-zdsiSiYDEOIDW7mmWOYWC9gukjXO+F8wqxz/LfN7iSwTfIyipC8+UQrCbPupFMRb/33XQTZk8yl3My8vUQBRoA== - dependencies: - cborg "^1.10.0" - multiformats "^11.0.0" - -"@ipld/dag-json@^9.0.0": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@ipld/dag-json/-/dag-json-9.1.1.tgz#a24156cb040149d5955dbd28e3c08828c2292719" - integrity sha512-L0l+Osi8zAWUw2L/fWJjeZ75l7XojD0Mud1Xvo32q8AJeVuqvCQFdqqIFBiq8MwuqC8qS8kbysro3w5mphUiDQ== - dependencies: - cborg "^1.5.4" - multiformats "^11.0.0" - -"@ipld/dag-pb@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-3.0.2.tgz#80996ca7cb1d8f6c6df0b74fbf1235744b1f76c5" - integrity sha512-ge+llKU/CNc6rX5ZcUhCrPXJjKjN1DsolDOJ99zOsousGOhepoIgvT01iAP8s7QN9QFciOE+a1jHdccs+CyhBA== - dependencies: - multiformats "^11.0.0" - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2789,6 +2492,11 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jspm/core@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@jspm/core/-/core-2.0.1.tgz#3f08c59c60a5f5e994523ed6b0b665ec80adc94e" + integrity sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw== + "@junto-foundation/junto-elements@^0.5.5": version "0.5.5" resolved "https://registry.yarnpkg.com/@junto-foundation/junto-elements/-/junto-elements-0.5.5.tgz#525b254faee09fed9fdb4a89c2dc38285e913672" @@ -2804,884 +2512,108 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@libp2p/bootstrap@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/bootstrap/-/bootstrap-5.0.2.tgz#231de1dbc5b882bca4d00f9288aaf985e0cdc5b5" - integrity sha512-AOr/uCjHpkfVWFylYXn7KRa1oIGmyZpadoMUr09nAEG0S3ejTda3TMFu90SXApMDnfSsaWyrnsfxNlH8HbfdSg== - dependencies: - "@libp2p/interface-peer-discovery" "^1.0.1" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interface-peer-store" "^1.2.2" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@libp2p/peer-id" "^1.1.15" - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/components@^2.0.0", "@libp2p/components@^2.0.3": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/components/-/components-2.1.1.tgz#9dceac8491d75c4e266d581ad4fcb5b833a382ec" - integrity sha512-/XtfEdBHaNhwiaf9RowiSYnyVFIl+shuZNGQlCsJmOnn5X490TMo9GJ9PVfrTRnRn3ZXPBLS5Vp0s6++ShSv7g== - dependencies: - "@libp2p/interface-address-manager" "^1.0.2" - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-connection-manager" "^1.1.0" - "@libp2p/interface-content-routing" "^1.0.2" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-metrics" "^3.0.0" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-peer-routing" "^1.0.1" - "@libp2p/interface-peer-store" "^1.2.1" - "@libp2p/interface-pubsub" "^2.1.0" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/interface-transport" "^1.0.3" - "@libp2p/interfaces" "^3.0.3" - err-code "^3.0.1" - interface-datastore "^7.0.0" - -"@libp2p/connection@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/connection/-/connection-4.0.2.tgz#6e4078487f8e75c0326465464d88248b2520d05f" - integrity sha512-l/mvmcA7QkAC/0qRmTpuD5CeMaiy4DuKCsutaY3PpwJbMegTOjxuZh0uzk3z94d0wJBnhquVZ0e4Yqvd+QGlng== - dependencies: - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@multiformats/multiaddr" "^11.0.0" - err-code "^3.0.1" - -"@libp2p/crypto@^1.0.0", "@libp2p/crypto@^1.0.3", "@libp2p/crypto@^1.0.4": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-1.0.14.tgz#cfc51ae3034604e2d8ad0e751c7547c0aebd96e6" - integrity sha512-kS9bsRPS6qrbGiMfICjVUTjva7Bq0kCE0DTVGgFixH8e2RtF/7K8bWzO52aTQVPUF7vpId7cmmYAaHde1ZYh0A== - dependencies: - "@libp2p/interface-keys" "^1.0.2" - "@libp2p/interfaces" "^3.2.0" - "@noble/ed25519" "^1.6.0" - "@noble/secp256k1" "^1.5.4" - multiformats "^11.0.0" - node-forge "^1.1.0" - protons-runtime "^5.0.0" - uint8arraylist "^2.4.3" - uint8arrays "^4.0.2" - -"@libp2p/delegated-content-routing@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/delegated-content-routing/-/delegated-content-routing-3.0.1.tgz#a809f2fe6f1e0b5a0f6c88d243585a29b7c81145" - integrity sha512-KEj6g0Ag0hjVzj8ljjVlf47nNbZuRtwMPH4sjySOwfnpvtQjPtjT8Lz7PkANtQeL+qG0Zd15CNFxD88gIwmVCg== - dependencies: - "@libp2p/interface-content-routing" "^1.0.2" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - any-signal "^3.0.1" - err-code "^3.0.1" - it-drain "^2.0.0" - multiformats "^10.0.0" - p-defer "^4.0.0" - p-queue "^7.2.0" - -"@libp2p/delegated-peer-routing@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/delegated-peer-routing/-/delegated-peer-routing-3.0.1.tgz#ea09424c3e663b6476ffc4ade6925b9caf07719d" - integrity sha512-qD082tKPThlKNYVmmLV95uRQzDJkekTKp96J7NZjrUEFx7S6a2l7kVvxvh+cGNF3l5lqvVnA35VSE4pljcxPzA== - dependencies: - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-peer-info" "^1.0.1" - "@libp2p/interface-peer-routing" "^1.0.0" - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.11" - any-signal "^3.0.1" - err-code "^3.0.1" - multiformats "^10.0.0" - p-defer "^4.0.0" - p-queue "^7.2.0" - -"@libp2p/floodsub@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@libp2p/floodsub/-/floodsub-5.0.0.tgz#4aeb10c89cae6f04d9244ad8cb094494222eb61f" - integrity sha512-B39UW/AWgfVVUl2yJDardmL2kKo1Zd4E+11/rkyjnjbygh944DTLcp3B2gSarqRlyN+x4ChUTKiN75UGajOaog== - dependencies: - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-pubsub" "^3.0.0" - "@libp2p/logger" "^2.0.0" - "@libp2p/pubsub" "^5.0.0" - protons-runtime "^4.0.1" - uint8arraylist "^2.1.1" - uint8arrays "^4.0.2" - -"@libp2p/interface-address-manager@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@libp2p/interface-address-manager/-/interface-address-manager-1.0.3.tgz#2ccc4312b4996e3f8bd9bdc64fb87e0873c32dd8" - integrity sha512-/DNGUQEXA0Ks+EOp0IVv3TsWq1H+4ZlSnyBozzNGDmufz6wG+EvUDBbwIXieHR898bj4pHfmmogK+Vwz5s5Kdw== - dependencies: - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/interface-address-manager@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/interface-address-manager/-/interface-address-manager-2.0.4.tgz#c62853e692306c19619c05d7650b73502e2b7c61" - integrity sha512-RcSi+z+xpVKJXq3BsfLf2rq8zb8VTAFown6uJBu02towMc0enYqqhwlV9DxcCaC573MgQ7gY2s/3XvxQdFraVA== - dependencies: - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/interface-connection-encrypter@^3.0.0", "@libp2p/interface-connection-encrypter@^3.0.1": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-3.0.6.tgz#1f7c7428d5905b390cfc5390e72bd02829213d31" - integrity sha512-LwyYBN/aSa3IPCe7gBxffx/vaC0rFxAXlCbx4QGaWGtg6qK80Ouj89LEDWb3HkMbecNVWaV4TEqJIM5WnAAx1Q== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - it-stream-types "^1.0.4" - uint8arraylist "^2.1.2" +"@lit-labs/ssr-dom-shim@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz#427e19a2765681fd83411cd72c55ba80a01e0523" + integrity sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw== -"@libp2p/interface-connection-manager@^1.1.0", "@libp2p/interface-connection-manager@^1.1.1": - version "1.3.7" - resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-manager/-/interface-connection-manager-1.3.7.tgz#110a3ea0a8e63461e159df7182e6246625e92bd5" - integrity sha512-GyRa7FXtwjbch4ucFa/jj6vcaQT2RyhUbH3q0tIOTzjntABTMzQrhn3BWOGU5deRp2K7cVOB/OzrdhHdGUxYQA== +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.1.tgz#0d958b6d479d0e3db5fc1132ecc4fa84be3f0b93" + integrity sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA== dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" + "@lit-labs/ssr-dom-shim" "^1.0.0" -"@libp2p/interface-connection@^3.0.0", "@libp2p/interface-connection@^3.0.1", "@libp2p/interface-connection@^3.0.2": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-3.1.0.tgz#ba7523842a0a66480a74ac6edcb462618d59cc5d" - integrity sha512-UfluPclTyJp5nBVKQVJ7Xrwp45fFYeIPuyfCpZfTKOfT/srSntA5l+094H6f1bGSj6SbwZ4V7BxCxviJQM5PBg== +"@manypkg/find-root@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.1.0.tgz#a62d8ed1cd7e7d4c11d9d52a8397460b5d4ad29f" + integrity sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - it-stream-types "^1.0.4" - uint8arraylist "^2.1.2" + "@babel/runtime" "^7.5.5" + "@types/node" "^12.7.1" + find-up "^4.1.0" + fs-extra "^8.1.0" -"@libp2p/interface-content-routing@^1.0.2": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@libp2p/interface-content-routing/-/interface-content-routing-1.0.7.tgz#33f91300c9716fadcb2f6068f10c8ae8283fc534" - integrity sha512-10MgDDwhS3uBaEppViBtJEVjgZohAKNLaGnzHPej0ByfnESI8DFlgpMOZVOMUlW/NpLOXxqrYuHALefuDWfqmw== +"@manypkg/get-packages@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.3.tgz#e184db9bba792fa4693de4658cfb1463ac2c9c47" + integrity sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A== dependencies: - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" - multiformats "^10.0.0" + "@babel/runtime" "^7.5.5" + "@changesets/types" "^4.0.1" + "@manypkg/find-root" "^1.1.0" + fs-extra "^8.1.0" + globby "^11.0.0" + read-yaml-file "^1.1.0" -"@libp2p/interface-dht@^1.0.0", "@libp2p/interface-dht@^1.0.1", "@libp2p/interface-dht@^1.0.2": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-dht/-/interface-dht-1.0.5.tgz#3918320354ffef05bb622f605bb63837d439e415" - integrity sha512-kqcHpv0VlhZbHNXVou6qOFw3UUtJBlsJi641Jh6BUZouoej8b2wp/TacOuiHvC6Uy8ACanzprzVG1Rk01mgZwA== - dependencies: - "@libp2p/interface-peer-discovery" "^1.0.0" - "@libp2p/interface-peer-id" "^1.0.0" - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" - multiformats "^10.0.0" +"@mattrglobal/bbs-signatures@0.5.0", "@mattrglobal/bbs-signatures@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz#c8e3842a657cabbf7f1e16db06f77c9f84a42f3f" + integrity sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ== + optionalDependencies: + "@mattrglobal/node-bbs-signatures" "0.11.0" -"@libp2p/interface-keychain@^1.0.3": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-keychain/-/interface-keychain-1.0.8.tgz#c0785935f93900f3e03edece4a9d11dc877f8436" - integrity sha512-JqI7mMthIafP8cGhhsmIs/M0Ey+ivHLcpzqbVVzMFiFVi1dC03R7EHlalcaPn8yaLSvlmI0MqjC8lJYuvlFjfw== +"@mattrglobal/bls12381-key-pair@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz#dd6014b5b14903d4a280af4286c74d8a97b38410" + integrity sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg== dependencies: - multiformats "^10.0.0" - -"@libp2p/interface-keys@^1.0.2", "@libp2p/interface-keys@^1.0.3": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@libp2p/interface-keys/-/interface-keys-1.0.7.tgz#ad09ee7dc9c1495f1dd3e1785133c317befb4d7b" - integrity sha512-DRMPY9LfcnGJKrjaqIkY62U3fW2dya3VLy4x986ExtMrGn4kxIHeQ1IKk8/Vs9CJHTKmXEMID4of1Cjnw4aJpA== + "@mattrglobal/bbs-signatures" "0.5.0" + bs58 "4.0.1" + rfc4648 "1.4.0" -"@libp2p/interface-metrics@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz#7b448782e78f948abe92e2adef838e3e781f2e84" - integrity sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA== +"@mattrglobal/node-bbs-signatures@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz#c63ab8648a529cfe1dd855cc78a93f78ee27a9f4" + integrity sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw== dependencies: - "@libp2p/interface-peer-id" "^1.0.0" - it-stream-types "^1.0.4" + neon-cli "0.4.0" + node-pre-gyp "0.14.0" -"@libp2p/interface-metrics@^4.0.2": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-metrics/-/interface-metrics-4.0.5.tgz#92af389705bded1fd3ed7979768cf7a0f7b13b47" - integrity sha512-srBeky1ugu1Bzw9VHGg8ta15oLh+P2PEIsg0cI9qzDbtCJaWGq/IIetpfuaJNVOuBD1CGEEbITNmsk4tDwIE0w== - dependencies: - "@libp2p/interface-connection" "^3.0.0" +"@msgpack/msgpack@^2.7.2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" + integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== -"@libp2p/interface-peer-discovery@^1.0.0", "@libp2p/interface-peer-discovery@^1.0.1": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.5.tgz#0fb935d55221e0ff58b4dad93646111a4fc7dcdf" - integrity sha512-R0TN/vDaCJLvRhop0y4qoPqapHxX4AEQDEtqmpayAA1BuPgbBq4fS4mepR3FAMcNva/szeqVCDuI4gDejtCaVg== +"@next/eslint-plugin-next@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz#e7dc00e2e89ed361f111d687b8534483ec15518b" + integrity sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og== dependencies: - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" + glob "7.1.7" -"@libp2p/interface-peer-id@^1.0.0", "@libp2p/interface-peer-id@^1.0.2", "@libp2p/interface-peer-id@^1.0.4", "@libp2p/interface-peer-id@^1.0.5": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz#22cbfb4707949cd49c3271a871172221d6920049" - integrity sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA== +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== dependencies: - multiformats "^10.0.0" + eslint-scope "5.1.1" -"@libp2p/interface-peer-id@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz#445632909d44a8ae2c736bb2aa98c8bf757e8c62" - integrity sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA== - dependencies: - multiformats "^11.0.0" +"@noble/secp256k1@^1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== -"@libp2p/interface-peer-info@^1.0.0", "@libp2p/interface-peer-info@^1.0.1", "@libp2p/interface-peer-info@^1.0.2", "@libp2p/interface-peer-info@^1.0.3": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-info/-/interface-peer-info-1.0.8.tgz#8380e9e40d0ec2c8be8e1a43e8a82ae97a0687c4" - integrity sha512-LRvZt/9bZFYW7seAwuSg2hZuPl+FRTAsij5HtyvVwmpfVxipm6yQrKjQ+LiK/SZhIDVsSJ+UjF0mluJj+jeAzQ== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" -"@libp2p/interface-peer-routing@^1.0.0", "@libp2p/interface-peer-routing@^1.0.1": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-routing/-/interface-peer-routing-1.0.8.tgz#6b6fc75f81791aade95c5d77b9719ead4ea5c77e" - integrity sha512-ArJWymWvHqVNyHSZ+7T9av2A4r0f1zTPMKe3+7BOX3n2mB8hP2nNMz/Kiun41TH0t80zMiXE73ZD29is27yt9g== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@libp2p/interface-peer-store@^1.2.0", "@libp2p/interface-peer-store@^1.2.1", "@libp2p/interface-peer-store@^1.2.2": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-store/-/interface-peer-store-1.2.8.tgz#d36ca696cf4ac377dbdd13b132a378f161e64ad3" - integrity sha512-FM9VLmpg9CUBKZ2RW+J7RrQfQVMksLiC8oqENqHgb/VkPJY3kafbn7HIi0NcK6H/H5VcwBIhL15SUJk66O1K6g== + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interface-peer-info" "^1.0.0" - "@libp2p/interface-record" "^2.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - -"@libp2p/interface-pubsub@^2.0.0", "@libp2p/interface-pubsub@^2.0.1", "@libp2p/interface-pubsub@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz#bf98d51c371018cd3d7d165dbc8e95f7cc1537d2" - integrity sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-peer-id" "^1.0.0" - "@libp2p/interfaces" "^3.0.0" - it-pushable "^3.0.0" - uint8arraylist "^2.0.0" - -"@libp2p/interface-pubsub@^3.0.0": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface-pubsub/-/interface-pubsub-3.0.6.tgz#416f52d44ebc7e62e6b5caf086aff3e429e4a950" - integrity sha512-c1aVHAhxmEh9IpLBgJyCsMscVDl7YUeP1Iq6ILEQoWiPJhNpQqdfmqyk7ZfrzuBU19VFe1EqH0bLuLDbtfysTQ== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-peer-id" "^2.0.0" - "@libp2p/interfaces" "^3.0.0" - it-pushable "^3.0.0" - uint8arraylist "^2.1.2" - -"@libp2p/interface-record@^2.0.0", "@libp2p/interface-record@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface-record/-/interface-record-2.0.6.tgz#44597e144bc3e9960cc64f8c5fcd9822ea3e283f" - integrity sha512-4EtDkY3sbYapWM8++gVHlv31HZXoLmj9I7CRXUKXzFkVE0GLK/A8jYWl7K0lmf2juPjeYm2eHITeA9/wAtIS3w== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - uint8arraylist "^2.1.2" - -"@libp2p/interface-registrar@^2.0.0", "@libp2p/interface-registrar@^2.0.3": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@libp2p/interface-registrar/-/interface-registrar-2.0.9.tgz#160eaa9294642928f272894c23989f6b719538c3" - integrity sha512-+aZg7SB8fIddE4/PojnHY2Y29vwr4YtnXxro3db/TYWAsWNGlgZusFEZYqBMpV/1KpEFBdi3O7r50bv/2fRusQ== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-peer-id" "^2.0.0" - -"@libp2p/interface-stream-muxer@^3.0.0": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.5.tgz#7cc6e3887e133e1ef54a515c9e21d7b889974c59" - integrity sha512-815aJ+qVswNcTEOuOUTcB+7OLzAfROyjjqoWpK0bD0P/xqTHqOQcqdaDuK02zPuAZqYq9uR3+SoBasrCg6k3zw== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interfaces" "^3.0.0" - it-stream-types "^1.0.4" - -"@libp2p/interface-transport@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/interface-transport/-/interface-transport-1.0.4.tgz#b36206b629878462bc6a1b8034998af02f810c24" - integrity sha512-MOkhtykUrrbgHC1CcAFe/6QTz/BEBbHfu5sf+go6dhBlHXeHI+AcV8Fic5zTZNz71E1SRi2UR+5TVi7ORPL57Q== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - it-stream-types "^1.0.4" - -"@libp2p/interface-transport@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/interface-transport/-/interface-transport-2.1.1.tgz#e463f30b272494c177d3a0bd494545616fd7b624" - integrity sha512-xDM/s8iPN/XfNqD9qNelibRMPKkhOLinXwQeNtoTZjarq+Cg6rtO6/5WBG/49hyI3+r+5jd2eykjPGQbb86NFQ== - dependencies: - "@libp2p/interface-connection" "^3.0.0" - "@libp2p/interface-stream-muxer" "^3.0.0" - "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - it-stream-types "^1.0.4" - -"@libp2p/interfaces@^3.0.0", "@libp2p/interfaces@^3.0.2", "@libp2p/interfaces@^3.0.3", "@libp2p/interfaces@^3.2.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.1.tgz#519c77c030b10d776250bbebf65990af53ccb2ee" - integrity sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg== - -"@libp2p/kad-dht@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/kad-dht/-/kad-dht-5.0.2.tgz#64d28ee98f5766e291773a8d6725afb2d8a8e687" - integrity sha512-Z9f1d3DlYnt3tfF6EBSqPvsB9pnm0qs7zvIk2CdRX5vdLy//IOenepcYfgaC4nDnD/ambELq7VSdGQizGG8S5w== - dependencies: - "@libp2p/crypto" "^1.0.4" - "@libp2p/interface-address-manager" "^2.0.0" - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-connection-manager" "^1.1.1" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-metrics" "^3.0.0" - "@libp2p/interface-peer-discovery" "^1.0.1" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interface-peer-store" "^1.2.2" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@libp2p/peer-collections" "^2.2.0" - "@libp2p/peer-id" "^1.1.15" - "@libp2p/record" "^2.0.2" - "@libp2p/topology" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - any-signal "^3.0.0" - datastore-core "^8.0.1" - err-code "^3.0.1" - hashlru "^2.3.0" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-first "^2.0.0" - it-length "^2.0.0" - it-length-prefixed "^8.0.2" - it-map "^2.0.0" - it-merge "^2.0.0" - it-parallel "^3.0.0" - it-pipe "^2.0.3" - it-stream-types "^1.0.4" - it-take "^2.0.0" - k-bucket "^5.1.0" - multiformats "^10.0.0" - p-defer "^4.0.0" - p-queue "^7.2.0" - private-ip "^2.3.3" - protons-runtime "^4.0.1" - timeout-abort-controller "^3.0.0" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - -"@libp2p/logger@^2.0.0", "@libp2p/logger@^2.0.1", "@libp2p/logger@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-2.0.6.tgz#ede3a870d2f90ccf1389e2923a7a590672823821" - integrity sha512-PfTGCBT6buiGeww7heG1JucBK2io2sJ2hntNh+gTVohRy4FyEvZixnWfIVD2rCM8EsbZu3Hmt/qqetzX5BrziQ== - dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - debug "^4.3.3" - interface-datastore "^8.0.0" - multiformats "^11.0.0" - -"@libp2p/mdns@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/mdns/-/mdns-5.1.1.tgz#956b5dcf806d15c01cb7d489c27ad3f880cc2019" - integrity sha512-fLNcKHtJ1VfAdUHrqLHMiCLrpsWGk8OkZYQN8spwZ1MiX38jqEh5jbPF/m6YmMxnj7UGmaFOnaMhHdhMXWJSvQ== - dependencies: - "@libp2p/interface-peer-discovery" "^1.0.1" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@libp2p/peer-id" "^1.1.15" - "@multiformats/multiaddr" "^11.0.0" - "@types/multicast-dns" "^7.2.1" - multicast-dns "^7.2.0" - multiformats "^10.0.0" - -"@libp2p/mplex@^7.0.0": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-7.1.1.tgz#557567fb6575c471eaa283175c2305d3ef6045fb" - integrity sha512-0owK1aWgXXtjiohXtjwLV7Ehjdj96eBtsapVt7AzlHA+W8uYnI+x058thq3MisyMDlHiiE3BTh6fEf+t2/0dUw== - dependencies: - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-stream-muxer" "^3.0.0" - "@libp2p/logger" "^2.0.0" - abortable-iterator "^4.0.2" - any-signal "^3.0.0" - benchmark "^2.1.4" - err-code "^3.0.1" - it-batched-bytes "^1.0.0" - it-pushable "^3.1.0" - it-stream-types "^1.0.4" - rate-limiter-flexible "^2.3.9" - uint8arraylist "^2.1.1" - uint8arrays "^4.0.2" - varint "^6.0.0" - -"@libp2p/multistream-select@^3.0.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-3.1.2.tgz#2302ac57daa443ceced8481a83c58e39ab601b3f" - integrity sha512-NfF0fwQM4sqiLuNGBVc9z2mfz3OigOfyLJ5zekRBGYHkbKWrBRFS3FligUPr9roCOzH6ojjDkKVd5aK9/llfJQ== - dependencies: - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - it-first "^2.0.0" - it-handshake "^4.1.2" - it-length-prefixed "^8.0.3" - it-merge "^2.0.0" - it-pipe "^2.0.4" - it-pushable "^3.1.0" - it-reader "^6.0.1" - it-stream-types "^1.0.4" - p-defer "^4.0.0" - uint8arraylist "^2.3.1" - uint8arrays "^4.0.2" - -"@libp2p/peer-collections@^2.0.0", "@libp2p/peer-collections@^2.2.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-2.2.2.tgz#70cdddaeaae6c91526b423d30c6002ac3c7a785e" - integrity sha512-sL1A0LBHJAlvqROe+OT61Y6Rg7ff+B+YNDZj+3f/LGvDssyffAQX78cXU+lWKPsT+AwHt7Sk7sO4CsYJbdOScQ== - dependencies: - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/peer-id" "^1.1.0" - -"@libp2p/peer-id-factory@^1.0.18", "@libp2p/peer-id-factory@^1.0.19": - version "1.0.20" - resolved "https://registry.yarnpkg.com/@libp2p/peer-id-factory/-/peer-id-factory-1.0.20.tgz#751d7dc99a4bae1513fc2602a13532c342f83d68" - integrity sha512-+fHhbmDK9Ws6Dmj2ZmfrQouQTZEbTS3FCi3nUDJnnjIS95+radaP085IVkNJYJeeWpxJV90D4EUwtoy83PaoCw== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-keys" "^1.0.2" - "@libp2p/interface-peer-id" "^1.0.0" - "@libp2p/peer-id" "^1.0.0" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -"@libp2p/peer-id@^1.0.0", "@libp2p/peer-id@^1.1.0", "@libp2p/peer-id@^1.1.10", "@libp2p/peer-id@^1.1.11", "@libp2p/peer-id@^1.1.13", "@libp2p/peer-id@^1.1.15", "@libp2p/peer-id@^1.1.16", "@libp2p/peer-id@^1.1.8", "@libp2p/peer-id@^1.1.9": - version "1.1.18" - resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-1.1.18.tgz#f176d7150930d365201b13b97f17c10796afa910" - integrity sha512-Zh3gzbrQZKDMLpoJAJB8gdGtyYFSBKV0dU5vflQ18/7MJDJmjsgKO+sJTYi72yN5sWREs1eGKMhxLo+N1ust5w== - dependencies: - "@libp2p/interface-peer-id" "^1.0.0" - err-code "^3.0.1" - multiformats "^10.0.0" - uint8arrays "^4.0.2" - -"@libp2p/peer-record@^4.0.1", "@libp2p/peer-record@^4.0.3": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-4.0.5.tgz#e83ae0b9ef0d31c4c884599198c47763734a0a4c" - integrity sha512-o4v6N5B0hsx94TnSkLD7v8GmyQ/pNJbhy+pY8YDsmPhcwAGTnpRdlxWZraMBz8ut+vGoD7E34IdMMgJX/tgAJA== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-record" "^2.0.1" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.13" - "@libp2p/utils" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - err-code "^3.0.1" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-filter "^2.0.0" - it-foreach "^1.0.0" - it-map "^2.0.0" - it-pipe "^2.0.3" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - uint8-varint "^1.0.2" - uint8arraylist "^2.1.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - -"@libp2p/peer-store@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-5.0.1.tgz#cd4dbc26bd0ef3ed43c1a7c120f3ec750e343b33" - integrity sha512-TeHxy5Qv+KzajbEZH1wdE6ubk8G7IUyU+Dyl4W06unZpxq6rD+OTnCkvYuEdglROUxmvSBEkFqJnxV6xgVBWJA== - dependencies: - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interface-peer-store" "^1.2.2" - "@libp2p/interface-record" "^2.0.1" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.15" - "@libp2p/peer-record" "^4.0.3" - "@multiformats/multiaddr" "^11.0.0" - err-code "^3.0.1" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-filter "^2.0.0" - it-foreach "^1.0.0" - it-map "^2.0.0" - it-pipe "^2.0.3" - mortice "^3.0.0" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - uint8arraylist "^2.1.1" - uint8arrays "^4.0.2" - -"@libp2p/pubsub@^3.1.2": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-3.1.3.tgz#bd4e363cddc88a11ab24665aadb8933d13896e5b" - integrity sha512-lo3Ay3NHdll2Wt0kzs2RNyWagyECGDx7d4dyKwGQgzhZyoy3FnYQW8vbMLyLLX1FV9DSiWEbFsBxX2MKJXUMyQ== - dependencies: - "@libp2p/components" "^2.0.0" - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-pubsub" "^2.0.0" - "@libp2p/interface-registrar" "^2.0.0" - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-collections" "^2.0.0" - "@libp2p/peer-id" "^1.1.0" - "@libp2p/topology" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - it-length-prefixed "^8.0.2" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - multiformats "^9.6.3" - p-queue "^7.2.0" - uint8arraylist "^2.0.0" - uint8arrays "^3.0.0" - -"@libp2p/pubsub@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-5.0.1.tgz#24523e3285cc15faddebe1504485b31124d09e35" - integrity sha512-pQNpUC6KWDKCm7A9bv4tT2t3a7a4IpJdfzHsRBjAaKEcIRgP/s/q0Xn8ySdcggg1fvdjMp5VY6NfuuRbSCu9LA== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-pubsub" "^3.0.0" - "@libp2p/interface-registrar" "^2.0.0" - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-collections" "^2.0.0" - "@libp2p/peer-id" "^1.1.0" - "@libp2p/topology" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - it-length-prefixed "^8.0.2" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - multiformats "^10.0.0" - p-queue "^7.2.0" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -"@libp2p/record@^2.0.2", "@libp2p/record@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/record/-/record-2.0.4.tgz#f9592d834908e9b084c54bb63b3986c30b32bcf1" - integrity sha512-BLdw/zDh4Nq65nKD/BRKad7++h2pPwY7IxoZNyEN4uvCo6knmfTSlKwqlw4NCYaH27YcupXrhKZ2WAoYjt5ACw== - dependencies: - "@libp2p/interface-dht" "^1.0.0" - err-code "^3.0.1" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - uint8arraylist "^2.1.1" - uint8arrays "^4.0.2" - -"@libp2p/tcp@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/tcp/-/tcp-5.0.2.tgz#dd06a8f8e67897342fefb23c729e4125cb9155fb" - integrity sha512-Lm8RhqfvqJ7SffeausXNHeRT8QC5HXWWI6X9HuLVgl/jZDGKhI0FUWv3J48lUhpvmH4wQyMFLVuZrTukS4F/6g== - dependencies: - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/utils" "^3.0.2" - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - stream-to-it "^0.2.2" - -"@libp2p/topology@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/topology/-/topology-3.0.2.tgz#b3c8dffd01d2ce222e867412f6898af9bd08e8fb" - integrity sha512-RDMmA8Us5uxl7sSWGoTIYyzdthjs6xQD1P/vBQPHlqTAjpjPWuCY019cbqK8lP1JCldCB/n2ljSxDJs1J4cweQ== - dependencies: - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/logger" "^2.0.1" - err-code "^3.0.1" - it-all "^2.0.0" - -"@libp2p/tracked-map@^2.0.0", "@libp2p/tracked-map@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/tracked-map/-/tracked-map-2.0.2.tgz#3ff2d34607a6cfbed95b0dc6a360631f99938df9" - integrity sha512-y5UnoB5NR+i7Xp/wPrHYyJxiNRS0/3ee8chphTG8GptdTWqWcZ+UALKXMb9neMtFL9pivNrOY+A0d+M60eI+RA== - dependencies: - "@libp2p/interface-metrics" "^3.0.0" - -"@libp2p/utils@^3.0.0", "@libp2p/utils@^3.0.1", "@libp2p/utils@^3.0.2": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-3.0.4.tgz#2eb9b8694fa1c3e25e9fa7aa98907a0660aea278" - integrity sha512-EWJNJtlop2ylmGE1BNiMA0u4eTLKoY0LbZ/DOvSDs9VlGSLua9J+LUjp6XV8lazGv7l1rOLiU+1hP5fcmg1+eg== - dependencies: - "@achingbrain/ip-address" "^8.1.0" - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-peer-store" "^1.2.1" - "@libp2p/logger" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - is-loopback-addr "^2.0.1" - it-stream-types "^1.0.4" - private-ip "^3.0.0" - uint8arraylist "^2.3.2" - -"@libp2p/webrtc-peer@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/webrtc-peer/-/webrtc-peer-2.0.2.tgz#71c240e34905c6c97e20fdf703cec025c745c155" - integrity sha512-FozliUqHO1CIzrL8hPc5uT+5AGUWf5Dw3HncL9tte/CoDNVpj6O59ITIRWefssp3oIGEAIjpcebNu1d+mYfVug== - dependencies: - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - delay "^5.0.0" - err-code "^3.0.1" - iso-random-stream "^2.0.2" - it-pushable "^3.0.0" - it-stream-types "^1.0.4" - p-defer "^4.0.0" - p-event "^5.0.1" - uint8arrays "^4.0.2" - -"@libp2p/webrtc-star-protocol@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/webrtc-star-protocol/-/webrtc-star-protocol-2.0.1.tgz#4d1fc5fd3be029eef178b7f579dd1c6858a71810" - integrity sha512-7pOQHWhfCfEQXVdLPqhi0cC0eyYVklzNtNZlEEXcAQ3zRFpAeZsMwg5wowXs1Udu7oxKwog3w3FbgHmvwqStMg== - dependencies: - "@multiformats/multiaddr" "^11.0.0" - socket.io-client "^4.1.2" - -"@libp2p/webrtc-star@^5.0.2": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@libp2p/webrtc-star/-/webrtc-star-5.0.3.tgz#ed894fa609f260839ec86477ebc95b27c4973624" - integrity sha512-tGH72ARnuHaj5FlLMrdU4B2PIZMgUKdS40YqlIu5w9zo4csZ8n07oRHt0B+gRnahLd8wY80uiS6CnmTC5c0skg== - dependencies: - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-peer-discovery" "^1.0.0" - "@libp2p/interface-peer-id" "^1.0.2" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.2" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.9" - "@libp2p/utils" "^3.0.1" - "@libp2p/webrtc-peer" "^2.0.0" - "@libp2p/webrtc-star-protocol" "^2.0.0" - "@multiformats/mafmt" "^11.0.2" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - delay "^5.0.0" - err-code "^3.0.1" - iso-random-stream "^2.0.2" - multiformats "^10.0.0" - p-defer "^4.0.0" - socket.io-client "^4.1.2" - uint8arrays "^4.0.2" - -"@libp2p/websockets@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/websockets/-/websockets-5.0.5.tgz#be2ac6e4306e0f6261bb093bd2b9bf1bc49cd640" - integrity sha512-gp6OI/2cBBkbUKw7XougNC8/XZe1fe5eSngWDSE99/wGykwDzyKPnYikUAGhJ4X1VuBDAjogZuJp7PtDif1QPQ== - dependencies: - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/utils" "^3.0.2" - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/multiaddr-to-uri" "^9.0.2" - abortable-iterator "^4.0.2" - it-ws "^5.0.6" - p-defer "^4.0.0" - p-timeout "^6.0.0" - wherearewe "^2.0.1" - ws "^8.12.1" - -"@lit-labs/ssr-dom-shim@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz#427e19a2765681fd83411cd72c55ba80a01e0523" - integrity sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw== - -"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.1.tgz#0d958b6d479d0e3db5fc1132ecc4fa84be3f0b93" - integrity sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA== - dependencies: - "@lit-labs/ssr-dom-shim" "^1.0.0" - -"@manypkg/find-root@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.1.0.tgz#a62d8ed1cd7e7d4c11d9d52a8397460b5d4ad29f" - integrity sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== - dependencies: - "@babel/runtime" "^7.5.5" - "@types/node" "^12.7.1" - find-up "^4.1.0" - fs-extra "^8.1.0" - -"@manypkg/get-packages@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.3.tgz#e184db9bba792fa4693de4658cfb1463ac2c9c47" - integrity sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A== - dependencies: - "@babel/runtime" "^7.5.5" - "@changesets/types" "^4.0.1" - "@manypkg/find-root" "^1.1.0" - fs-extra "^8.1.0" - globby "^11.0.0" - read-yaml-file "^1.1.0" - -"@mapbox/node-pre-gyp@^1.0.5": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" - integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== - dependencies: - detect-libc "^2.0.0" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.7" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" - -"@mattrglobal/bbs-signatures@0.5.0", "@mattrglobal/bbs-signatures@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz#c8e3842a657cabbf7f1e16db06f77c9f84a42f3f" - integrity sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ== - optionalDependencies: - "@mattrglobal/node-bbs-signatures" "0.11.0" - -"@mattrglobal/bls12381-key-pair@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz#dd6014b5b14903d4a280af4286c74d8a97b38410" - integrity sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg== - dependencies: - "@mattrglobal/bbs-signatures" "0.5.0" - bs58 "4.0.1" - rfc4648 "1.4.0" - -"@mattrglobal/node-bbs-signatures@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz#c63ab8648a529cfe1dd855cc78a93f78ee27a9f4" - integrity sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw== - dependencies: - neon-cli "0.4.0" - node-pre-gyp "0.14.0" - -"@msgpack/msgpack@^2.7.2": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" - integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== - -"@multiformats/mafmt@^11.0.2", "@multiformats/mafmt@^11.0.3": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-11.1.0.tgz#0ba5d5556b7e39afdb02fc5f04d0cc8517dd0221" - integrity sha512-ZGuP26SIbBZutDN/QhqGwuu7b1zTO9DLvG4l3fh15ambPmcwS811MQIyW+d+9Vl7ASheB0qJq0sJrMKsHS3dXA== - dependencies: - "@multiformats/multiaddr" "^11.0.0" - -"@multiformats/multiaddr-to-uri@^9.0.1", "@multiformats/multiaddr-to-uri@^9.0.2": - version "9.0.2" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.2.tgz#4461df67f0c5cd02b21e1d0d1e34831d849b62a7" - integrity sha512-vrWmfFadmix5Ab9l//oRQdQ7O3J5bGJpJRMSm21bHlQB0XV4xtNU6vMZBVXeu3Su79LgflEp37cjTFE3yKf3Hw== - dependencies: - "@multiformats/multiaddr" "^11.0.0" - -"@multiformats/multiaddr@^11.0.0": - version "11.6.1" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-11.6.1.tgz#ec46984a298e715e27a398434c087856db5f3185" - integrity sha512-doST0+aB7/3dGK9+U5y3mtF3jq85KGbke1QiH0KE1F5mGQ9y56mFebTeu2D9FNOm+OT6UHb8Ss8vbSnpGjeLNw== - dependencies: - "@chainsafe/is-ip" "^2.0.1" - dns-over-http-resolver "^2.1.0" - err-code "^3.0.1" - multiformats "^11.0.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - -"@multiformats/murmur3@^2.0.0": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@multiformats/murmur3/-/murmur3-2.1.3.tgz#eb690132bcc898d74257287d133cdf693f81f888" - integrity sha512-YvLK1IrLnRckPsvXhOkZjaIGNonsEdD1dL3NPSaLilV/WjVYeBgnNZXTUsaPzFXGrIFM7motx+yCmmqzXO6gtQ== - dependencies: - multiformats "^11.0.0" - murmurhash3js-revisited "^3.0.0" - -"@multiformats/uri-to-multiaddr@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@multiformats/uri-to-multiaddr/-/uri-to-multiaddr-7.0.0.tgz#25fa4b5a4eddc493b5140d70839f95482f64bd00" - integrity sha512-mB/I4znETEZA/PmflXmnjWj3ENcyJg6Yv3EQQbIdA5n9fJ43c58uMF2Ew7yXtl0Wxt4d1pAVFA6fki2xFrHGew== - dependencies: - "@multiformats/multiaddr" "^11.0.0" - is-ip "^5.0.0" - -"@next/eslint-plugin-next@12.3.4": - version "12.3.4" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz#e7dc00e2e89ed361f111d687b8534483ec15518b" - integrity sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og== - dependencies: - glob "7.1.7" - -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== - dependencies: - eslint-scope "5.1.1" - -"@noble/ed25519@^1.6.0": - version "1.7.3" - resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" - integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== - -"@noble/secp256k1@^1.5.4", "@noble/secp256k1@^1.7.0": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" - integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" "@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": version "2.3.6" @@ -3730,27 +2662,6 @@ schema-utils "^3.0.0" source-map "^0.7.3" -"@pnpm/config.env-replace@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz#c76fa65847c9554e88d910f264c2ba9a1575e833" - integrity sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA== - -"@pnpm/network.ca-file@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" - integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== - dependencies: - graceful-fs "4.2.10" - -"@pnpm/npm-conf@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.1.0.tgz#1bbecd961a1ea447f209556728e2dcadddb0bca6" - integrity sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw== - dependencies: - "@pnpm/config.env-replace" "^1.0.0" - "@pnpm/network.ca-file" "^1.0.1" - config-chain "^1.1.11" - "@popperjs/core@^2.9.2": version "2.11.6" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" @@ -3997,23 +2908,6 @@ dependencies: any-observable "^0.3.0" -"@sideway/address@^4.1.3": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" - integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" - integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - "@sinclair/typebox@^0.24.1": version "0.24.51" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" @@ -4039,11 +2933,6 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@sindresorhus/is@^5.2.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" - integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== - "@sinonjs/commons@^1.7.0": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" @@ -4100,11 +2989,6 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== -"@socket.io/component-emitter@~3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" - integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== - "@stablelib/aead@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" @@ -4186,24 +3070,6 @@ resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== -"@stablelib/hkdf@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" - integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== - dependencies: - "@stablelib/hash" "^1.0.1" - "@stablelib/hmac" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/hmac@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec" - integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== - dependencies: - "@stablelib/constant-time" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - "@stablelib/int@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" @@ -4232,15 +3098,6 @@ "@stablelib/binary" "^1.0.1" "@stablelib/wipe" "^1.0.1" -"@stablelib/sha256@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" - integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - "@stablelib/sha512@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" @@ -4255,7 +3112,7 @@ resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== -"@stablelib/x25519@^1.0.0", "@stablelib/x25519@^1.0.1": +"@stablelib/x25519@^1.0.0": version "1.0.3" resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== @@ -4411,13 +3268,6 @@ dependencies: defer-to-connect "^2.0.0" -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - "@tauri-apps/api@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" @@ -4548,11 +3398,6 @@ traverse "^0.6.7" unified "^9.2.2" -"@tokenizer/token@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" - integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== - "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -4816,13 +3661,6 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/dns-packet@*": - version "5.2.4" - resolved "https://registry.yarnpkg.com/@types/dns-packet/-/dns-packet-5.2.4.tgz#0de4ee48f900a62b014ce61a3c9ab5d33dc06b0d" - integrity sha512-OAruArypdNxR/tzbmrtoyEuXeNTLaZCpO19BXaNC10T5ACIbvjmvhmV2RDEy2eLc3w8IjK7SY3cvUCcAW+sfoQ== - dependencies: - "@types/node" "*" - "@types/elliptic@^6.4.9": version "6.4.14" resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.14.tgz#7bbaad60567a588c1f08b10893453e6b9b4de48e" @@ -4938,7 +3776,7 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== -"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.1": +"@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== @@ -5037,7 +3875,7 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== -"@types/long@^4.0.0", "@types/long@^4.0.1": +"@types/long@^4.0.0": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== @@ -5079,11 +3917,6 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/minimatch@^3.0.4": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - "@types/minimist@^1.2.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" @@ -5094,14 +3927,6 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== -"@types/multicast-dns@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@types/multicast-dns/-/multicast-dns-7.2.1.tgz#6527b28ce62bcdc08a38f6a329a3d23145c99d95" - integrity sha512-A2PmB8MRcNVEkw6wzGT5rtBHqyHOVjiRMkJH+zpJKXipSi+GGkHg6JjNFApDiYK9WefJqkVG0taln1VMl4TGfw== - dependencies: - "@types/dns-packet" "*" - "@types/node" "*" - "@types/node-fetch@^2.5.11", "@types/node-fetch@^2.6.1": version "2.6.2" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" @@ -5110,7 +3935,7 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@>=6", "@types/node@^18.0.0": +"@types/node@*", "@types/node@>=6", "@types/node@^18.0.0": version "18.15.3" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.3.tgz#f0b991c32cfc6a4e7f3399d6cb4b8cf9a0315014" integrity sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw== @@ -5135,11 +3960,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.16.tgz#09ff98b144abae2d7cce3e9fe9040ab2bf73222c" integrity sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA== -"@types/node@^8.0.24": - version "8.10.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" - integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== - "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -5231,11 +4051,6 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@types/retry@0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" - integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== - "@types/sass@^1.16.0": version "1.45.0" resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.45.0.tgz#a949eb1e080ff34715e6c2040357b940bffb89bb" @@ -5493,11 +4308,6 @@ resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.12.tgz#158ebf73d6a82112e0eea749a54f77b3857304c7" integrity sha512-r580a4yNDEJFCayS+t4ibDjPNVLI60zo5045XuUgVQAbAzOfyAlEiwvr1PjYehOrS97rHoPk5hcMNP2n2WUu/w== -"@vascosantos/moving-average@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@vascosantos/moving-average/-/moving-average-1.1.0.tgz#8d5793b09b2d6021ba5e620c6a0f876c20db7eaa" - integrity sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w== - "@vercel/ncc@^0.33.1": version "0.33.4" resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.33.4.tgz#e44a87511f583b7ba88e4b9ae90eeb7ba252b872" @@ -5707,40 +4517,7 @@ abab@^2.0.3, abab@^2.0.5: abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -abortable-iterator@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/abortable-iterator/-/abortable-iterator-4.0.2.tgz#aea6a4a6a696badcbad1c9fff5a9ca85f0f286a4" - integrity sha512-SJGELER5yXr9v3kiL6mT5RZ1qlyJ9hV4nm34+vfsdIM1lp3zENQvpsqKgykpFLgRMUn3lzlizLTpiOASW05/+g== - dependencies: - get-iterator "^2.0.0" - it-stream-types "^1.0.3" - -abstract-level@^1.0.2, abstract-level@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" - integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== - dependencies: - buffer "^6.0.3" - catering "^2.1.0" - is-buffer "^2.0.5" - level-supports "^4.0.0" - level-transcoder "^1.0.1" - module-error "^1.0.1" - queue-microtask "^1.2.3" - -abstract-logging@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" - integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" @@ -5881,7 +4658,7 @@ anchor-markdown-header@^0.6.0: dependencies: emoji-regex "~10.1.0" -ansi-align@^3.0.0, ansi-align@^3.0.1: +ansi-align@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== @@ -5976,11 +4753,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -5991,11 +4763,6 @@ any-observable@^0.5.1: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.5.1.tgz#ab7d49ff64ebe6dd3ae26760a3f5a881e8db791e" integrity sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA== -any-signal@^3.0.0, any-signal@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6" - integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -6153,7 +4920,7 @@ apollo-server-errors@^3.3.1: resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== -apollo-server-express@3.12.0, apollo-server-express@^3.12.0: +apollo-server-express@3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.12.0.tgz#a6e392bb0427544b8c7e5d841ef07f7691b0c105" integrity sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ== @@ -6187,16 +4954,6 @@ apollo-server-types@^3.8.0: apollo-reporting-protobuf "^3.4.0" apollo-server-env "^4.2.1" -apollo-server@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-3.12.0.tgz#bd43d6dadb8cb16ed34edfc6ad97a81b1fab748a" - integrity sha512-wZHLgBoIdGxr/YpPTG5RwNnS+B2y70T/nCegCnU6Yl+H3PXB92OIguLMhdJIZVjukIOhiQT12dNIehqLQ+1hMQ== - dependencies: - "@types/express" "4.17.14" - apollo-server-core "^3.12.0" - apollo-server-express "^3.12.0" - express "^4.17.1" - apollo-utilities@1.3.4, apollo-utilities@^1.3.0, apollo-utilities@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" @@ -6216,19 +4973,6 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - are-we-there-yet@~1.1.2: version "1.1.7" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" @@ -6259,16 +5003,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -args@^5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/args/-/args-5.0.3.tgz#943256db85021a85684be2f0882f25d796278702" - integrity sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA== - dependencies: - camelcase "5.0.0" - chalk "2.4.2" - leven "2.1.0" - mri "1.1.4" - aria-query@^5.0.0, aria-query@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" @@ -6344,11 +5078,6 @@ array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: get-intrinsic "^1.1.3" is-string "^1.0.7" -array-shuffle@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-shuffle/-/array-shuffle-3.0.0.tgz#9a927cc2ca4c8ef4d71cddef7c9ee7b3b733d54b" - integrity sha512-rogEGxHOQPhslOhpg12LJkB+bbAl484/s2AJq0BxtzQDQfKl76fS2u9zWgg3p3b9ENcuvE7K8A7l5ddiPjCRnw== - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -6520,11 +5249,6 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -atomic-sleep@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" - integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - auto-bind@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-5.0.1.tgz#50d8e63ea5a1dddcb5e5e36451c1a8266ffbb2ae" @@ -6883,14 +5607,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -benchmark@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629" - integrity sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ== - dependencies: - lodash "^4.17.4" - platform "^1.3.3" - better-path-resolve@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d" @@ -6936,11 +5652,6 @@ binary@~0.3.0: buffers "~0.1.1" chainsaw "~0.1.0" -bintrees@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" - integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== - bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -6950,49 +5661,6 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -bl@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" - integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== - dependencies: - buffer "^6.0.3" - inherits "^2.0.4" - readable-stream "^3.4.0" - -blob-to-it@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-2.0.1.tgz#e3d826ac643ad4999d0dc53195b3878fb762bfe3" - integrity sha512-JdrAMsN0JmsI2fPfd5MpBqVUZHlETNQka/tBWzWXjixj9WttW6Lgti2MyEPAaQrjTJ/TZZMkeyJovH39qyF21A== - dependencies: - browser-readablestream-to-it "^2.0.0" - -blockstore-core@^2.0.0, blockstore-core@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/blockstore-core/-/blockstore-core-2.0.2.tgz#d82ad3f5385355ac7a9e399c222f1b0ce1ba32fd" - integrity sha512-ALry3rBp2pTEi4F/usjCJGRluAKYFWI9Np7uE0pZHfDeScMJSj/fDkHEWvY80tPYu4kj03sLKRDGJlZH+V7VzQ== - dependencies: - err-code "^3.0.1" - interface-blockstore "^3.0.0" - interface-store "^3.0.0" - it-all "^1.0.4" - it-drain "^1.0.4" - it-filter "^1.0.2" - it-take "^1.0.1" - multiformats "^10.0.0" - -blockstore-datastore-adapter@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/blockstore-datastore-adapter/-/blockstore-datastore-adapter-4.0.0.tgz#dabff6f8f9490a04142212175ae5184a8bffe25a" - integrity sha512-vzy2lgLb7PQ0qopuZk6B+syRULdUt9w/ffNl7EXcvGZLS5+VoUmh4Agdp1OVuoaMEfXoEqIvCaPXi/v3829vBg== - dependencies: - blockstore-core "^2.0.0" - err-code "^3.0.1" - interface-blockstore "^3.0.0" - interface-datastore "^7.0.0" - it-drain "^2.0.0" - it-pushable "^3.1.0" - multiformats "^10.0.1" - bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -7106,20 +5774,6 @@ boxen@^5.0.0: widest-line "^3.1.0" wrap-ansi "^7.0.0" -boxen@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.0.2.tgz#465dd03e846c11f2d4c7eb0d1b3a39d66bd7057e" - integrity sha512-1Z4UJabXUP1/R9rLpoU3O2lEMnG3pPLAs/ZD2lF3t2q7qD5lM8rqbtnvtvm4N0wEyNlE+9yZVTVAGmd1V5jabg== - dependencies: - ansi-align "^3.0.1" - camelcase "^7.0.0" - chalk "^5.0.1" - cli-boxes "^3.0.0" - string-width "^5.1.2" - type-fest "^2.13.0" - widest-line "^4.0.1" - wrap-ansi "^8.0.1" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -7170,16 +5824,6 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-level@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" - integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.1" - module-error "^1.0.2" - run-parallel-limit "^1.1.0" - browser-pack@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" @@ -7197,16 +5841,6 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-readablestream-to-it@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76" - integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== - -browser-readablestream-to-it@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.1.tgz#53b2e4066636faa5b613ad0f48fa1f0a282d907a" - integrity sha512-X9zw312iV6yVozvrwmZNFVNRxkOJZC7XL+G7sVoRoDGKQkcoCzK/TdkBlnLOzmO5HsnpZzmW67dNlsAIstuhjQ== - browser-resolve@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" @@ -7385,7 +6019,7 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3: +buffer@6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -7429,25 +6063,6 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - -byte-access@^1.0.0, byte-access@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/byte-access/-/byte-access-1.0.1.tgz#84badd99be3671c03f0dd6a039a9c963983724af" - integrity sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw== - dependencies: - uint8arraylist "^2.0.0" - -byteman@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/byteman/-/byteman-1.3.5.tgz#d6061f7536c7e7c4bcb756037ef9c4c266ec51fd" - integrity sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA== - bytes@1: version "1.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" @@ -7458,7 +6073,7 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== -bytes@3.1.2, bytes@^3.1.0: +bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== @@ -7486,24 +6101,6 @@ cacheable-lookup@^2.0.0: "@types/keyv" "^3.1.1" keyv "^4.0.0" -cacheable-lookup@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" - integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== - -cacheable-request@^10.2.8: - version "10.2.8" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.8.tgz#899ae6c0c8c7127f263b2005ecaac07c95124079" - integrity sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A== - dependencies: - "@types/http-cache-semantics" "^4.0.1" - get-stream "^6.0.1" - http-cache-semantics "^4.1.1" - keyv "^4.5.2" - mimic-response "^4.0.0" - normalize-url "^8.0.0" - responselike "^3.0.0" - cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -7589,11 +6186,6 @@ camelcase-keys@^6.2.2: map-obj "^4.0.0" quick-lru "^4.0.1" -camelcase@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" - integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -7604,11 +6196,6 @@ camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camelcase@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" - integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== - caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -7636,15 +6223,6 @@ canvas-renderer@~2.2.0: dependencies: "@types/node" "*" -capital-case@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" - integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -7662,11 +6240,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -catering@^2.1.0, catering@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" - integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== - catharsis@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" @@ -7682,11 +6255,6 @@ cbor@^5.1.0: bignumber.js "^9.0.1" nofilter "^1.0.4" -cborg@^1.10.0, cborg@^1.3.3, cborg@^1.3.4, cborg@^1.5.4, cborg@^1.6.0, cborg@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.0.tgz#0fe157961dd47b537ccb84dc9ba681de8b699013" - integrity sha512-/eM0JCaL99HDHxjySNQJLaolZFVdl6VA0/hEKIoiQPcQzE5LrG5QHdml0HaBt31brgB9dNe1zMr3f8IVrpotRQ== - ccount@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" @@ -7719,15 +6287,6 @@ chainsaw@~0.1.0: dependencies: traverse ">=0.3.0 <0.4" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -7747,6 +6306,15 @@ chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -7755,11 +6323,6 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== - chalk@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" @@ -7769,24 +6332,6 @@ chalk@~2.1.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" -change-case@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" - integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== - dependencies: - camel-case "^4.1.2" - capital-case "^1.0.4" - constant-case "^3.0.4" - dot-case "^3.0.4" - header-case "^2.0.4" - no-case "^3.0.4" - param-case "^3.0.4" - pascal-case "^3.1.2" - path-case "^3.0.4" - sentence-case "^3.0.4" - snake-case "^3.0.4" - tslib "^2.0.3" - char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -7906,11 +6451,6 @@ chownr@^1.1.1, chownr@^1.1.4: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -7962,17 +6502,6 @@ class-validator@^0.13.1: libphonenumber-js "^1.9.43" validator "^13.7.0" -classic-level@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" - integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.0" - module-error "^1.0.1" - napi-macros "~2.0.0" - node-gyp-build "^4.3.0" - clean-css@^5.2.2: version "5.3.2" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" @@ -7990,11 +6519,6 @@ cli-boxes@^2.2.1: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== -cli-boxes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" - integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== - cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -8054,13 +6578,6 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone-regexp@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-3.0.0.tgz#c6dd5c6b85482306778f3dc4ac2bb967079069c2" - integrity sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw== - dependencies: - is-regexp "^3.0.0" - clone-response@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" @@ -8092,11 +6609,6 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== -coercer@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/coercer/-/coercer-1.1.2.tgz#eaea4459511f73f9f36ade04a98107ce75824b70" - integrity sha512-Hu19wnyO8jzg7khfk50U6w3TGcdl8AXPalTcC0mDfHIqsWl/+y7oKdnpEneXW27DIgQh1R79U8seiTeWiNQjsw== - collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -8142,11 +6654,6 @@ color-string@^1.6.0: color-name "^1.0.0" simple-swizzle "^0.2.2" -color-support@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - color@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" @@ -8327,17 +6834,6 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -configstore@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" - integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== - dependencies: - dot-prop "^6.0.1" - graceful-fs "^4.2.6" - unique-string "^3.0.0" - write-file-atomic "^3.0.3" - xdg-basedir "^5.0.1" - confusing-browser-globals@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" @@ -8353,20 +6849,11 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== -constant-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" - integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case "^2.0.2" - constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -8399,11 +6886,6 @@ convert-hex@~0.1.0: resolved "https://registry.yarnpkg.com/convert-hex/-/convert-hex-0.1.0.tgz#08c04568922c27776b8a2e81a95d393362ea0b65" integrity sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A== -convert-hrtime@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-5.0.0.tgz#f2131236d4598b95de856926a67100a0a97e9fa3" - integrity sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg== - convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" @@ -8627,13 +7109,6 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -crypto-random-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" - integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== - dependencies: - type-fest "^1.0.1" - css-blank-pseudo@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" @@ -8978,14 +7453,6 @@ customize-cra@1.0.0: dependencies: lodash.flow "^3.5.0" -dag-jose@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dag-jose/-/dag-jose-3.0.1.tgz#0c474eff3e70ad522b5d42e848786358c11ea7c6" - integrity sha512-HUdzCqM4ukT168fgFl1IgOVf5J9I7WSbvBovOhOsQWIJZ+LGGVEd/Dg4f1ZirslsBZzLEeXU8LBuPpf4he5CKg== - dependencies: - "@ipld/dag-cbor" "^8.0.0" - multiformats "^10.0.1" - damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" @@ -9012,84 +7479,19 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -datastore-core@^8.0.1: - version "8.0.4" - resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-8.0.4.tgz#a5951c8e530f0ba11ca44f6bb3ce5d7070a3d44e" - integrity sha512-oBA6a024NFXJOTu+w9nLAimfy4wCYUhdE/5XQGtdKt1BmCVtPYW10GORvVT3pdZBcse6k/mVcBl+hjkXIlm65A== - dependencies: - "@libp2p/logger" "^2.0.0" - err-code "^3.0.1" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-map "^2.0.0" - it-merge "^2.0.0" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - it-take "^2.0.0" - uint8arrays "^4.0.2" - -datastore-fs@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/datastore-fs/-/datastore-fs-8.0.0.tgz#273407f5259ae3dc46c254fc5abf5a85756147d9" - integrity sha512-yXPf+d08RL9wdWqZbLaJxbS0FMkKNCoYYXW6MausrFAF03hCWvap62bvPC7fX415PF0v/8JOw1aSJyGJ9WjtHA== - dependencies: - datastore-core "^8.0.1" - fast-write-atomic "^0.2.0" - interface-datastore "^7.0.0" - it-glob "^1.0.1" - it-map "^1.0.5" - it-parallel-batch "^1.0.9" - mkdirp "^1.0.4" - -datastore-level@^9.0.0: - version "9.0.4" - resolved "https://registry.yarnpkg.com/datastore-level/-/datastore-level-9.0.4.tgz#1e2534fef6aedda528dcb5ead7c1f4cbcbb46d3a" - integrity sha512-HKf2tVVWywdidI+94z0B5NLx4J94wTLCT1tYXXxJ58MK/Y5rdX8WVRp9XmZaODS70uxpNC8/UrvWr0iTBZwkUA== - dependencies: - abstract-level "^1.0.3" - datastore-core "^8.0.1" - interface-datastore "^7.0.0" - it-filter "^2.0.0" - it-map "^2.0.0" - it-sort "^2.0.0" - it-take "^2.0.0" - level "^8.0.0" - -datastore-pubsub@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/datastore-pubsub/-/datastore-pubsub-6.0.0.tgz#f38077e8cf657b4cde9ccaaa306ebc42882431c7" - integrity sha512-HvzzDwfquX9zFaBsoj1Ue9ewlYX4dqneTTW2fRoKYsG4LQWwMXAU925qiki31kUe//QjYFN/Mi2xuwdk65PQog== - dependencies: - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-pubsub" "^3.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - datastore-core "^8.0.1" - debug "^4.2.0" - err-code "^3.0.1" - interface-datastore "^7.0.0" - uint8arrays "^4.0.2" - date-fns@^1.27.2: version "1.30.1" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -dateformat@^4.5.1: - version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" - integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== - -debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.4, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.4, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -9212,7 +7614,7 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== -default-gateway@^6.0.2, default-gateway@^6.0.3: +default-gateway@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== @@ -9231,7 +7633,7 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== -defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: +defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== @@ -9290,11 +7692,6 @@ del@^6.0.0: rimraf "^3.0.2" slash "^3.0.0" -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -9310,11 +7707,6 @@ delimit-stream@0.1.0: resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== -denque@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf" - integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== - depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -9395,7 +7787,7 @@ detective@^5.2.0, detective@^5.2.1: defined "^1.0.0" minimist "^1.2.6" -dezalgo@^1.0.0, dezalgo@^1.0.4: +dezalgo@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== @@ -9408,11 +7800,6 @@ didyoumean@^1.2.2: resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== -diff-match-patch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" - integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== - diff-sequences@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" @@ -9488,16 +7875,6 @@ dns-over-http-resolver@^1.2.3: native-fetch "^3.0.0" receptacle "^1.3.2" -dns-over-http-resolver@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-2.1.1.tgz#a3ff3fd7614cea7a4b72594eaf12fb3c85080456" - integrity sha512-Lm/eXB7yAQLJ5WxlBGwYfBY7utduXPZykcSmcG6K7ozM0wrZFvxZavhT6PqI0kd/5CUTfev/RrEFQqyU4CGPew== - dependencies: - debug "^4.3.1" - native-fetch "^4.0.2" - receptacle "^1.3.2" - undici "^5.12.0" - dns-packet@^5.2.2: version "5.4.0" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" @@ -9592,13 +7969,6 @@ domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -9702,11 +8072,6 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -9727,63 +8092,11 @@ ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-download@^3.0.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8" - integrity sha512-F/p1+fwr/UAMl6NXp2w6Ke5x5WReguHp6EDm/1tIIqUyXfOW7JezoMoAUNL0ZaKDDCbciydllMwq8qq/f9ks0w== - dependencies: - debug "^2.2.0" - fs-extra "^0.30.0" - home-path "^1.0.1" - minimist "^1.2.0" - nugget "^2.0.0" - path-exists "^2.1.0" - rc "^1.1.2" - semver "^5.3.0" - sumchecker "^1.2.0" - -electron-eval@^0.9.0: - version "0.9.10" - resolved "https://registry.yarnpkg.com/electron-eval/-/electron-eval-0.9.10.tgz#9f97818b0d711ae8ae103fd186eeb0e9588a2921" - integrity sha512-VrAw2MrAjCwM8EGQsY+n48/f9P4W+AH56adERtDEb9bl5Hw9aN+ectmuK9QIi2XA11g+owQlyj2N4AzvdT363A== - dependencies: - cross-spawn "^5.1.0" - electron "^1.6.11" - ndjson "^1.5.0" - optionalDependencies: - headless "https://github.com/paulkernfeld/node-headless/tarball/master" - -electron-fetch@^1.7.2: - version "1.9.1" - resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.9.1.tgz#e28bfe78d467de3f2dec884b1d72b8b05322f30f" - integrity sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA== - dependencies: - encoding "^0.1.13" - electron-to-chromium@^1.4.284: version "1.4.330" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz#4740378db7160d7210afb29800c74048cdf10a99" integrity sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q== -electron-webrtc@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/electron-webrtc/-/electron-webrtc-0.3.0.tgz#546d1ca81a445348c32062cb9da5e7a4a6acadcf" - integrity sha512-p4x21lsoG2S3ErTcc1svH/OCcLsNKEwQsxK9PIsefMPRp5lB6Ux10oRVVTy3BqFPxuus3csjTSFJXXOZaGPMmQ== - dependencies: - debug "^2.2.0" - electron-eval "^0.9.0" - get-browser-rtc "^1.0.2" - hat "^0.0.3" - -electron@^1.6.11: - version "1.8.8" - resolved "https://registry.yarnpkg.com/electron/-/electron-1.8.8.tgz#a90cddb075291f49576993e6f5c8bb4439301cae" - integrity sha512-1f9zJehcTTGjrkb06o6ds+gsRq6SYhZJyxOk6zIWjRH8hVy03y/RzUDELzNas71f5vcvXmfGVvyjeEsadDI8tg== - dependencies: - "@types/node" "^8.0.24" - electron-download "^3.0.1" - extract-zip "^1.0.3" - electron@^20.0.3: version "20.3.12" resolved "https://registry.yarnpkg.com/electron/-/electron-20.3.12.tgz#5884b848f62daa6a3d07bbb9e29498c2da5da667" @@ -9861,13 +8174,6 @@ encodeurl@^1.0.2, encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -9875,22 +8181,6 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.4.0.tgz#88cd3082609ca86d7d3c12f0e746d12db4f47c91" - integrity sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.11.0" - xmlhttprequest-ssl "~2.0.0" - -engine.io-parser@~5.0.3: - version "5.0.6" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" - integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== - enhanced-resolve@^5.10.0: version "5.12.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" @@ -10070,11 +8360,6 @@ es6-promise@^3.1.2: resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== -es6-promise@^4.0.5: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - esbuild-android-64@0.15.18: version "0.15.18" resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" @@ -10155,11 +8440,24 @@ esbuild-openbsd-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== +esbuild-plugin-alias@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz#45a86cb941e20e7c2bc68a2bea53562172494fcb" + integrity sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ== + esbuild-plugin-lit@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/esbuild-plugin-lit/-/esbuild-plugin-lit-0.0.10.tgz#919b7794576bca351ca06a0be2a5a3f22dd1f662" integrity sha512-0Vz+TRglIQsV2plsRJw+opO8erTIwXLtKjcFOLOiQDxRvKjFnmlENdB+fL9eLxXQu1HjRZkI9WW0ywWldoymtQ== +esbuild-plugin-polyfill-node@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/esbuild-plugin-polyfill-node/-/esbuild-plugin-polyfill-node-0.2.0.tgz#26a3572c6b32bee126319ebdb4fa3ab584e30106" + integrity sha512-rpCoK4mag0nehBtFlFMLSuL9bNBLEh8h3wZ/FsrJEDompA/AwOqInx6Xow01+CXAcvZYhkoJ0SIZiS37qkecDA== + dependencies: + "@jspm/core" "^2.0.1" + import-meta-resolve "^2.2.2" + esbuild-sunos-64@0.15.18: version "0.15.18" resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" @@ -10236,6 +8534,34 @@ esbuild@^0.16.14: "@esbuild/win32-ia32" "0.16.17" "@esbuild/win32-x64" "0.16.17" +esbuild@^0.17.15: + version "0.17.15" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.15.tgz#209ebc87cb671ffb79574db93494b10ffaf43cbc" + integrity sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw== + optionalDependencies: + "@esbuild/android-arm" "0.17.15" + "@esbuild/android-arm64" "0.17.15" + "@esbuild/android-x64" "0.17.15" + "@esbuild/darwin-arm64" "0.17.15" + "@esbuild/darwin-x64" "0.17.15" + "@esbuild/freebsd-arm64" "0.17.15" + "@esbuild/freebsd-x64" "0.17.15" + "@esbuild/linux-arm" "0.17.15" + "@esbuild/linux-arm64" "0.17.15" + "@esbuild/linux-ia32" "0.17.15" + "@esbuild/linux-loong64" "0.17.15" + "@esbuild/linux-mips64el" "0.17.15" + "@esbuild/linux-ppc64" "0.17.15" + "@esbuild/linux-riscv64" "0.17.15" + "@esbuild/linux-s390x" "0.17.15" + "@esbuild/linux-x64" "0.17.15" + "@esbuild/netbsd-x64" "0.17.15" + "@esbuild/openbsd-x64" "0.17.15" + "@esbuild/sunos-x64" "0.17.15" + "@esbuild/win32-arm64" "0.17.15" + "@esbuild/win32-ia32" "0.17.15" + "@esbuild/win32-x64" "0.17.15" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -10251,11 +8577,6 @@ escape-goat@^3.0.0: resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-3.0.0.tgz#e8b5fb658553fe8a3c4959c316c6ebb8c842b19c" integrity sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw== -escape-goat@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" - integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== - escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -10642,27 +8963,17 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -event-iterator@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/event-iterator/-/event-iterator-2.0.0.tgz#10f06740cc1e9fd6bc575f334c2bc1ae9d2dbf62" - integrity sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ== - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -eventemitter3@^4.0.0, eventemitter3@^4.0.4, eventemitter3@^4.0.7: +eventemitter3@^4.0.0, eventemitter3@^4.0.4: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0, events@^3.2.0, events@^3.3.0: +events@^3.0.0, events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -10723,21 +9034,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -10794,7 +9090,7 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -express@4.18.2, express@^4.17.1, express@^4.17.3: +express@4.18.2, express@^4.17.3: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== @@ -10888,16 +9184,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.0.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - extract-zip@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" @@ -10929,11 +9215,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-fifo@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.1.0.tgz#17d1a3646880b9891dfa0c54e69c5fef33cad779" - integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== - fast-glob@^3.2.12, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" @@ -10955,21 +9236,11 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-redact@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" - integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== - -fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8: +fast-safe-stringify@^2.0.7: version "2.1.1" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== -fast-write-atomic@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz#7ee8ef0ce3c1f531043c09ae8e5143361ab17ede" - integrity sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw== - fastparse@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" @@ -11054,15 +9325,6 @@ file-loader@^6.2.0: loader-utils "^2.0.0" schema-utils "^3.0.0" -file-type@^18.0.0: - version "18.2.1" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.2.1.tgz#6d8f1fa3b079606f6ecf89483346f55fcd2c671b" - integrity sha512-Yw5MtnMv7vgD2/6Bjmmuegc8bQEVA9GmAyaR18bMYWKqsWDG9wgYZ1j4I6gNMF5Y5JBDcUcjRQqNQx7Y8uotcg== - dependencies: - readable-web-to-node-stream "^3.0.2" - strtok3 "^7.0.0" - token-types "^5.0.1" - filelist@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -11070,11 +9332,6 @@ filelist@^1.0.1: dependencies: minimatch "^5.0.1" -filesize@^10.0.5: - version "10.0.6" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.0.6.tgz#5f4cd2721664cd925db3a7a5a87bbfd6ab5ebb1a" - integrity sha512-rzpOZ4C9vMFDqOa6dNpog92CoLYjD79dnjLk2TYDDtImRIyLTOzqojCb05Opd1WuiWjs+fshhCgTd8cl7y5t+g== - filesize@^8.0.6: version "8.0.7" resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" @@ -11196,11 +9453,6 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatstr@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" - integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== - flatted@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" @@ -11211,11 +9463,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -fnv1a@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fnv1a/-/fnv1a-1.1.1.tgz#4e01d51bae60735d00e54ffde02581fe2e74f465" - integrity sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag== - follow-redirects@^1.0.0, follow-redirects@^1.14.8: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" @@ -11257,11 +9504,6 @@ fork-ts-checker-webpack-plugin@^6.5.0: semver "^7.3.2" tapable "^1.0.0" -form-data-encoder@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" - integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -11285,16 +9527,6 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== -formidable@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.1.1.tgz#81269cbea1a613240049f5f61a9d97731517414f" - integrity sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ== - dependencies: - dezalgo "^1.0.4" - hexoid "^1.0.0" - once "^1.4.0" - qs "^6.11.0" - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -11312,11 +9544,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -freeport-promise@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/freeport-promise/-/freeport-promise-2.0.0.tgz#11e4f81e24d680b88a20c15b2103551f4b6663d8" - integrity sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg== - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -11349,17 +9576,6 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@^10.0.0, fs-extra@^10.0.1: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -11404,13 +9620,6 @@ fs-minipass@^1.2.7: dependencies: minipass "^2.6.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - fs-monkey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" @@ -11441,11 +9650,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function-timeout@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/function-timeout/-/function-timeout-0.1.1.tgz#6bf71d3d24c894d43b2bec312cabb8c5add2e9da" - integrity sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg== - function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -11461,26 +9665,6 @@ functions-have-names@^1.2.2: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -gar@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/gar/-/gar-1.0.4.tgz#f777bc7db425c0572fdeb52676172ca1ae9888b8" - integrity sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w== - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -11517,25 +9701,13 @@ gensync@^1.0.0-beta.2: get-assigned-identifiers@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== - -get-browser-rtc@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz#d1494e299b00f33fc8e9d6d3343ba4ba99711a2c" - integrity sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ== + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-folder-size@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/get-folder-size/-/get-folder-size-4.0.0.tgz#d73eedb4b2fa9144a3b5a115909d129e1ba8300a" - integrity sha512-Z6sv92povPRhGTNv1j8pMOzkXCcJOYWFTSrulKzoF9qbIRHXtR2Vfjw964jsWVMrIKnwHzm/0jl8IFONbBbEKw== - dependencies: - gar "^1.0.4" - get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" @@ -11550,16 +9722,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has "^1.0.3" has-symbols "^1.0.3" -get-iterator@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" - integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== - -get-iterator@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-2.0.0.tgz#c9ac9f8002e5d8d6b4dc9dae07c30945022a58c1" - integrity sha512-BDJawD5PU2gZv6Vlp8O28H4GnZcsr3h9gZUvnAP5xXP3WOy/QAoOsyMepSkw21jur+4t5Vppde72ChjhTIzxzg== - get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -11589,7 +9751,7 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -11843,23 +10005,6 @@ got@^10.6.0: to-readable-stream "^2.0.0" type-fest "^0.10.0" -got@^12.1.0: - version "12.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.0.tgz#8d382ee5de4432c086e83c133efdd474484f6ac7" - integrity sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ== - dependencies: - "@sindresorhus/is" "^5.2.0" - "@szmarczak/http-timer" "^5.0.1" - cacheable-lookup "^7.0.0" - cacheable-request "^10.2.8" - decompress-response "^6.0.0" - form-data-encoder "^2.1.2" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^3.0.0" - got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -11877,7 +10022,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@4.2.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -11894,13 +10039,6 @@ graphql-query-complexity@^0.7.0: dependencies: lodash.get "^4.4.2" -graphql-subscriptions@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-2.0.0.tgz#11ec181d475852d8aec879183e8e1eb94f2eb79a" - integrity sha512-s6k2b8mmt9gF9pEfkxsaO1lTxaySfKoEJzEfmwguBbQ//Oq23hIXCfR1hm4kdh5hnR20RdwB+s3BCb+0duHSZA== - dependencies: - iterall "^1.3.0" - graphql-subscriptions@^1.1.0: version "1.2.1" resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" @@ -11937,14 +10075,6 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" -hamt-sharding@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-3.0.2.tgz#a3fba1e4e6b58469388a0e1458768c78c0cd95f6" - integrity sha512-f0DzBD2tSmLFdFsLAvOflIBqFPjerbA7BfmwO8mVho/5hXwgyyYhv+ijIzidQf/DpDX3bRjAQvhGoBFj+DBvPw== - dependencies: - sparse-array "^1.3.1" - uint8arrays "^4.0.2" - handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -11962,16 +10092,6 @@ handlebars@^4.1.0, handlebars@^4.7.7: optionalDependencies: uglify-js "^3.1.4" -hapi-pino@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/hapi-pino/-/hapi-pino-8.5.0.tgz#ab36dfeb0059479e66fa6363e8f3ec2dc6a575d2" - integrity sha512-p0phuePalD8965r6mboCBLIMWRO2vQAx+VSnXhTKxnF/4Sf+dk8Uze7109w9QfhlvGMqvBTEF6SxGStObBB/Lw== - dependencies: - "@hapi/hoek" "^9.0.0" - abstract-logging "^2.0.0" - pino "^6.0.0" - pino-pretty "^4.0.0" - har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -12051,7 +10171,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== @@ -12092,11 +10212,6 @@ has-yarn@^2.1.0: resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== -has-yarn@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" - integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== - has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -12121,43 +10236,16 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hashlru@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/hashlru/-/hashlru-2.3.0.tgz#5dc15928b3f6961a2056416bb3a4910216fdfb51" - integrity sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A== - -hat@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" - integrity sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug== - he@1.2.0, he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -header-case@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" - integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== - dependencies: - capital-case "^1.0.4" - tslib "^2.0.3" - -"headless@https://github.com/paulkernfeld/node-headless/tarball/master": - version "1.1.0" - resolved "https://github.com/paulkernfeld/node-headless/tarball/master#0ded78103ce64e40d1ca65a57b95faebaa664dd1" - hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -hexoid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" - integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== - highlight.js@^10.7.1: version "10.7.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" @@ -12179,11 +10267,6 @@ hoist-non-react-statics@^3.3.2: dependencies: react-is "^16.7.0" -home-path@^1.0.1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.7.tgz#cf77d7339ff3ddc3347a23c52612b1f5e7e56313" - integrity sha512-tM1pVa+u3ZqQwIkXcWfhUlY3HWS3TsnKsfi2OHHvnhkX52s9etyktPyy1rQotkr0euWimChDq+QkQuDe8ngUlQ== - honkit@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/honkit/-/honkit-4.0.4.tgz#9b1aa11ed050ec306780c3eb39257512b6e1619e" @@ -12377,7 +10460,7 @@ htmlparser2@^8.0.1: domutils "^3.0.1" entities "^4.3.0" -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1: +http-cache-semantics@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -12462,14 +10545,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -12498,11 +10573,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== - i18n-t@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/i18n-t/-/i18n-t-1.0.1.tgz#b7bf4b003e395dc747843e8fca5de477658b0b1c" @@ -12517,7 +10587,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2, iconv-lite@^0.6.3: +iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -12634,11 +10704,6 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -12647,6 +10712,11 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" +import-meta-resolve@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz#75237301e72d1f0fbd74dbc6cca9324b164c2cc9" + integrity sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -12800,14 +10870,6 @@ insert-module-globals@^7.2.1: undeclared-identifiers "^1.1.2" xtend "^4.0.0" -interface-blockstore@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/interface-blockstore/-/interface-blockstore-3.0.2.tgz#bdb81f8ffd3819da7f9a6f87f41a62dba13647ed" - integrity sha512-lJXCyu3CwidOvNjkJARwCmoxl/HNX/mrfMxtyq5e/pVZA1SrlTj5lvb4LBYbfoynzewGUPcUU4DEUaXoLKliHQ== - dependencies: - interface-store "^3.0.0" - multiformats "^10.0.0" - interface-datastore@^6.0.2: version "6.1.1" resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" @@ -12817,39 +10879,11 @@ interface-datastore@^6.0.2: nanoid "^3.0.2" uint8arrays "^3.0.0" -interface-datastore@^7.0.0: - version "7.0.4" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-7.0.4.tgz#f09ae4e2896f57f876d5d742a59e982fb3f42891" - integrity sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw== - dependencies: - interface-store "^3.0.0" - nanoid "^4.0.0" - uint8arrays "^4.0.2" - -interface-datastore@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-8.1.0.tgz#006f74166e40e0a761cc3178bc633edb514fa8d7" - integrity sha512-WBxcqKBYVGjgmgOT4VgXFgPEpZEQbiSV5AqndKH+ZAgzEtexXVIkGx1RSBoFkN4OfiwF5w4dFGWQUHS/vJYJyg== - dependencies: - interface-store "^4.0.0" - nanoid "^4.0.0" - uint8arrays "^4.0.2" - interface-store@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c" integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== -interface-store@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-3.0.4.tgz#670d95ef45f3b7061d154c3cbfaf39a538167ad7" - integrity sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ== - -interface-store@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-4.1.0.tgz#2b70e318f342928698220fe0d12fec10d1ed04f9" - integrity sha512-zdE2mjrpaS0FGT97IXrTs5hZLVRlURqPfM9gT4UkWGrkzeBigQh/ER5nbcFi4QXn3YAHqp2aX+/Wu4QyT8bbxg== - internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -12874,16 +10908,11 @@ invariant@^2.2.0, invariant@^2.2.2: dependencies: loose-envify "^1.0.0" -ip-regex@^4.0.0, ip-regex@^4.3.0: +ip-regex@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== -ip-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632" - integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw== - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -12894,98 +10923,6 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== -ipfs-bitswap@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/ipfs-bitswap/-/ipfs-bitswap-13.0.0.tgz#7f38002d3e522ca08c3e6a349e0241b0ee5dd4cc" - integrity sha512-dTDRrXJmg27d/Z2V7bGo7zO6bPvLJrLpVyZldRSTUQgkd8pkrnM9Gs9S3hJyZS8n5BdFrGXBa4/tTMJwJ9d4lg== - dependencies: - "@libp2p/interface-connection" "^3.0.1" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-store" "^1.2.0" - "@libp2p/topology" "^3.0.0" - "@libp2p/tracked-map" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" - "@vascosantos/moving-average" "^1.1.0" - abortable-iterator "^4.0.2" - any-signal "^3.0.0" - blockstore-core "^2.0.1" - debug "^4.2.0" - err-code "^3.0.1" - interface-blockstore "^3.0.0" - it-length-prefixed "^8.0.2" - it-pipe "^2.0.4" - just-debounce-it "^3.0.1" - multiformats "^10.0.1" - protobufjs "^7.0.0" - readable-stream "^4.0.0" - timeout-abort-controller "^3.0.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - varint-decoder "^1.0.0" - -ipfs-cli@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/ipfs-cli/-/ipfs-cli-0.15.0.tgz#d19e4478c29a92bb6e62dc207932407419024925" - integrity sha512-rZ+fAlVIwVpTNhzTQZuhuO/51ic2AQGWCZkrVy/4t7qxjOO19GrldfRRtD/aewjlMd3+P9ttwfXQboVzAWsqXw== - dependencies: - "@ipld/dag-cbor" "^8.0.0" - "@ipld/dag-json" "^9.0.0" - "@ipld/dag-pb" "^3.0.0" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.10" - "@multiformats/mafmt" "^11.0.2" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/multiaddr-to-uri" "^9.0.1" - byteman "^1.3.5" - execa "^6.1.0" - get-folder-size "^4.0.0" - ipfs-core "^0.17.0" - ipfs-core-types "^0.13.0" - ipfs-core-utils "^0.17.0" - ipfs-daemon "^0.15.0" - ipfs-http-client "^59.0.0" - ipfs-utils "^9.0.6" - it-concat "^3.0.1" - it-merge "^2.0.0" - it-pipe "^2.0.3" - it-split "^2.0.0" - it-tar "^6.0.0" - jsondiffpatch "^0.4.1" - multiformats "^10.0.0" - parse-duration "^1.0.0" - pretty-bytes "^6.0.0" - progress "^2.0.3" - stream-to-it "^0.2.2" - uint8arrays "^4.0.2" - yargs "^17.4.0" - -ipfs-core-config@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/ipfs-core-config/-/ipfs-core-config-0.6.0.tgz#47ce9313351212bbbeb99acfa9c857ac8634bc5e" - integrity sha512-ga2rzjH2vtZRsDir4zjVh+gi6zlGno/yjfHhQn9GYUcKUL0HQ/aBG7XcLw8w7KgVMc93VMVGqfM3ueEGGW9X4Q== - dependencies: - "@chainsafe/libp2p-gossipsub" "^4.0.0" - "@libp2p/floodsub" "^5.0.0" - "@libp2p/logger" "^2.0.2" - "@libp2p/mdns" "^5.0.0" - "@libp2p/tcp" "^5.0.0" - "@libp2p/webrtc-star" "^5.0.2" - blockstore-datastore-adapter "^4.0.0" - datastore-core "^8.0.1" - datastore-fs "^8.0.0" - datastore-level "^9.0.0" - err-code "^3.0.1" - hashlru "^2.3.0" - interface-datastore "^7.0.0" - ipfs-repo "^16.0.0" - ipfs-utils "^9.0.6" - is-ipfs "^7.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-foreach "^1.0.0" - p-queue "^7.2.0" - uint8arrays "^4.0.2" - ipfs-core-types@0.10.1: version "0.10.1" resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz#53c60f589e4e54c2d566f0c856c2fcf0ea4a5577" @@ -12995,430 +10932,6 @@ ipfs-core-types@0.10.1: multiaddr "^10.0.0" multiformats "^9.5.1" -ipfs-core-types@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.13.0.tgz#eb2f27df7b91940e39b201b08affc9a65f63f503" - integrity sha512-IIKS9v2D5KIqReZMbyuCStI4FRyIbRA9nD3fji1KgKJPiic1N3iGe2jL4hy4Y3FQ30VbheWJ9jAROwMyvqxYNA== - dependencies: - "@ipld/dag-pb" "^3.0.0" - "@libp2p/interface-keychain" "^1.0.3" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.2" - "@libp2p/interface-pubsub" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - "@types/node" "^18.0.0" - interface-datastore "^7.0.0" - ipfs-unixfs "^8.0.0" - multiformats "^10.0.0" - -ipfs-core-utils@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.17.0.tgz#cb3581e66b588c2d80f6d8b05d15d0262447093a" - integrity sha512-mZbQ9ZkLGGR988hO0iCsB6FXDb0fS0vYRue07Ia8O3ODdKjZ69Jx7zYoYqpjTQQCgEN6RrX98aCTOw+ifziGvw== - dependencies: - "@libp2p/logger" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/multiaddr-to-uri" "^9.0.1" - any-signal "^3.0.0" - blob-to-it "^2.0.0" - browser-readablestream-to-it "^2.0.0" - err-code "^3.0.1" - ipfs-core-types "^0.13.0" - ipfs-unixfs "^8.0.0" - ipfs-utils "^9.0.6" - it-all "^2.0.0" - it-map "^2.0.0" - it-peekable "^2.0.0" - it-to-stream "^1.0.0" - merge-options "^3.0.4" - multiformats "^10.0.0" - nanoid "^4.0.0" - parse-duration "^1.0.0" - timeout-abort-controller "^3.0.0" - uint8arrays "^4.0.2" - -ipfs-core@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/ipfs-core/-/ipfs-core-0.17.0.tgz#9cae68236f22ddf86173f678e7dbeea2635cbfa4" - integrity sha512-mngpgSIO14n3U2iZzjxUn/AQ8LVVxrN/VRRXbJArxtSJuz1anx2kgtemRaUZt4q5juWHjk8tLtVdNDlS0bXGkg== - dependencies: - "@chainsafe/libp2p-noise" "^10.0.0" - "@ipld/car" "^5.0.0" - "@ipld/dag-cbor" "^8.0.0" - "@ipld/dag-json" "^9.0.0" - "@ipld/dag-pb" "^3.0.0" - "@libp2p/bootstrap" "^5.0.0" - "@libp2p/crypto" "^1.0.0" - "@libp2p/delegated-content-routing" "^3.0.0" - "@libp2p/delegated-peer-routing" "^3.0.0" - "@libp2p/interface-dht" "^1.0.2" - "@libp2p/interface-keys" "^1.0.3" - "@libp2p/interface-peer-id" "^1.0.5" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/kad-dht" "^5.0.1" - "@libp2p/logger" "^2.0.2" - "@libp2p/mplex" "^7.0.0" - "@libp2p/peer-id" "^1.1.16" - "@libp2p/peer-id-factory" "^1.0.19" - "@libp2p/record" "^2.0.3" - "@libp2p/websockets" "^5.0.0" - "@multiformats/mafmt" "^11.0.2" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/multiaddr-to-uri" "^9.0.1" - "@multiformats/murmur3" "^2.0.0" - any-signal "^3.0.0" - array-shuffle "^3.0.0" - blockstore-core "^2.0.1" - dag-jose "^3.0.1" - datastore-core "^8.0.1" - datastore-pubsub "^6.0.0" - dlv "^1.1.3" - err-code "^3.0.1" - hamt-sharding "^3.0.0" - hashlru "^2.3.0" - interface-blockstore "^3.0.0" - interface-datastore "^7.0.0" - ipfs-bitswap "^13.0.0" - ipfs-core-config "^0.6.0" - ipfs-core-types "^0.13.0" - ipfs-core-utils "^0.17.0" - ipfs-http-client "^59.0.0" - ipfs-repo "^16.0.0" - ipfs-unixfs "^8.0.0" - ipfs-unixfs-exporter "^9.0.0" - ipfs-unixfs-importer "^11.0.0" - ipfs-utils "^9.0.6" - ipns "^4.0.0" - is-domain-name "^1.0.1" - is-ipfs "^7.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-first "^2.0.0" - it-last "^2.0.0" - it-map "^2.0.0" - it-merge "^2.0.0" - it-parallel "^3.0.0" - it-peekable "^2.0.0" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - it-tar "^6.0.0" - it-to-buffer "^3.0.0" - just-safe-set "^4.0.2" - libp2p "^0.40.0" - merge-options "^3.0.4" - mortice "^3.0.0" - multiformats "^10.0.0" - pako "^2.0.4" - parse-duration "^1.0.0" - timeout-abort-controller "^3.0.0" - uint8arrays "^4.0.2" - -ipfs-daemon@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/ipfs-daemon/-/ipfs-daemon-0.15.0.tgz#62c9cd0931698ba88b8d719162a6faf55d7fd470" - integrity sha512-I/KVYr6dUH6vFfFMqtmBhRl/V+18y5WPYBoQsHe1YrwdNQszj6GnSc6/etH+I8phD+J/QFZHqoZhoVw2kNup3A== - dependencies: - "@libp2p/logger" "^2.0.0" - "@libp2p/webrtc-star" "^5.0.2" - "@mapbox/node-pre-gyp" "^1.0.5" - ipfs-core "^0.17.0" - ipfs-core-types "^0.13.0" - ipfs-grpc-server "^0.11.0" - ipfs-http-gateway "^0.12.0" - ipfs-http-server "^0.14.0" - ipfs-utils "^9.0.6" - libp2p "^0.40.0" - optionalDependencies: - electron-webrtc "^0.3.0" - prom-client "^14.0.1" - wrtc "^0.4.6" - -ipfs-grpc-protocol@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.7.0.tgz#1b13768d444b2a8ded45864471aa9bf451ae533e" - integrity sha512-T0+nvF1H83hbxmhZ/KKpm05MpvP7/mePdNvz/6h1mPXXOsfXdB3lKjcJbhbwegeKndDSjbnBWGOGN8Ql8x/1lQ== - -ipfs-grpc-server@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/ipfs-grpc-server/-/ipfs-grpc-server-0.11.0.tgz#d918e20cf36591714ea58ab1d34972deab1cf07a" - integrity sha512-nqZ74hZE3GV2LEmNypmfvPDc1ZvyrPoSGNPZI9OVML67+ZjtRwwp+wZYVaHpeDrgY8p2ihRu0jZeH5/2m4XZhw== - dependencies: - "@grpc/grpc-js" "^1.1.8" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.10" - "@multiformats/multiaddr" "^11.0.0" - change-case "^4.1.1" - coercer "^1.1.2" - ipfs-core-types "^0.13.0" - ipfs-grpc-protocol "^0.7.0" - it-first "^2.0.0" - it-map "^2.0.0" - it-peekable "^2.0.0" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - nanoid "^4.0.0" - protobufjs "^7.0.0" - uint8arrays "^4.0.2" - ws "^8.5.0" - -ipfs-http-client@^59.0.0: - version "59.0.0" - resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-59.0.0.tgz#66bc208d6bcbaaf238c054b3c0c0beffa2774190" - integrity sha512-cFMU8ykKgxK2/uAw4Hthy2Kd+UuoFBno89DOdUqHYvmilKrmfV5vrYwviVWLYveIpkkaj8FB5x4TBxsiU99y0Q== - dependencies: - "@ipld/dag-cbor" "^8.0.0" - "@ipld/dag-json" "^9.0.0" - "@ipld/dag-pb" "^3.0.0" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.10" - "@multiformats/multiaddr" "^11.0.0" - any-signal "^3.0.0" - dag-jose "^3.0.1" - err-code "^3.0.1" - ipfs-core-types "^0.13.0" - ipfs-core-utils "^0.17.0" - ipfs-utils "^9.0.6" - it-first "^2.0.0" - it-last "^2.0.0" - merge-options "^3.0.4" - multiformats "^10.0.0" - parse-duration "^1.0.0" - stream-to-it "^0.2.2" - uint8arrays "^4.0.2" - -ipfs-http-gateway@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/ipfs-http-gateway/-/ipfs-http-gateway-0.12.0.tgz#c5cd3981ac876e1a292e2424bafb394ae4dfd799" - integrity sha512-x2kVh/dh/c/9mmYoNXp2ay21qDe4jwPhyZ36frRT0NMY+7Q9G5vgzwwFV1qWwBobvvlJeQEntO8vvfBvGtfQmQ== - dependencies: - "@hapi/ammo" "^5.0.1" - "@hapi/boom" "^9.1.0" - "@hapi/hapi" "^20.0.0" - "@libp2p/logger" "^2.0.0" - "@multiformats/uri-to-multiaddr" "^7.0.0" - hapi-pino "^8.5.0" - ipfs-core-types "^0.13.0" - ipfs-http-response "^5.0.0" - is-ipfs "^7.0.0" - it-last "^2.0.0" - it-to-stream "^1.0.0" - joi "^17.2.1" - multiformats "^10.0.0" - uint8arrays "^4.0.2" - -ipfs-http-response@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ipfs-http-response/-/ipfs-http-response-5.0.0.tgz#647530dd5117b844fbbebbb1ed750f12fc9251f5" - integrity sha512-UxuaPbHBuMD56jHS2nek2N3+GN1P/cDKYg/ZbwA2R/cCWCvEVPWnes01tchej00uFUoZXZbfi33fP6D0OJreHw== - dependencies: - "@libp2p/logger" "^2.0.0" - ejs "^3.1.6" - file-type "^18.0.0" - filesize "^10.0.5" - it-concat "^3.0.1" - it-map "^2.0.0" - it-reader "^6.0.1" - it-to-stream "^1.0.0" - mime-types "^2.1.30" - p-try-each "^1.0.1" - -ipfs-http-server@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/ipfs-http-server/-/ipfs-http-server-0.14.0.tgz#c2b7b73117b05fa9abe5f89fda9d9913577cf5e6" - integrity sha512-IWN6ckpJVrJfr6el/AeXJHvLjzgPidzWqiI5fTp5bZNonbwG6pbk/y2SDrN9oClGNDbU3TeuOxeO1uQqOVZDnw== - dependencies: - "@hapi/boom" "^9.1.0" - "@hapi/content" "^5.0.2" - "@hapi/hapi" "^20.0.0" - "@ipld/dag-pb" "^3.0.0" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.10" - "@multiformats/multiaddr" "^11.0.0" - "@multiformats/uri-to-multiaddr" "^7.0.0" - any-signal "^3.0.0" - dlv "^1.1.3" - hapi-pino "^8.5.0" - ipfs-core-types "^0.13.0" - ipfs-core-utils "^0.17.0" - ipfs-http-gateway "^0.12.0" - ipfs-unixfs "^8.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-last "^2.0.0" - it-map "^2.0.0" - it-merge "^2.0.0" - it-multipart "^3.0.0" - it-pipe "^2.0.3" - it-pushable "^3.0.0" - it-reduce "^2.0.0" - joi "^17.2.1" - just-safe-set "^4.0.2" - multiformats "^10.0.0" - parse-duration "^1.0.0" - stream-to-it "^0.2.2" - timeout-abort-controller "^3.0.0" - uint8arrays "^4.0.2" - optionalDependencies: - prom-client "^14.0.1" - -ipfs-repo-migrations@^14.0.0: - version "14.0.1" - resolved "https://registry.yarnpkg.com/ipfs-repo-migrations/-/ipfs-repo-migrations-14.0.1.tgz#a91cad47ba08760746380df6a49146cb895db18a" - integrity sha512-wE22g05hzxegCWMhNj7deagCLsKPcNf8KmK1QN4WMob0kuZ4kDxCg7fusM68tGrOnhE+Ll/AVHseFlzmoU/ZbQ== - dependencies: - "@ipld/dag-pb" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" - cborg "^1.3.4" - datastore-core "^8.0.1" - debug "^4.1.0" - fnv1a "^1.0.1" - interface-blockstore "^3.0.0" - interface-datastore "^7.0.0" - it-length "^2.0.0" - multiformats "^10.0.1" - protobufjs "^7.0.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - -ipfs-repo@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/ipfs-repo/-/ipfs-repo-16.0.0.tgz#5d880101f884a192759b49c5f963684bf86a6fb3" - integrity sha512-CYlHO3MK1CNfuCkRyLxXB9pKj2nx4yomH92DilhwDW+Et4rQ/8279RgmEh5nFNf7BgvIvYPE+3hVErGbVytS5Q== - dependencies: - "@ipld/dag-pb" "^3.0.0" - bytes "^3.1.0" - cborg "^1.3.4" - datastore-core "^8.0.1" - debug "^4.1.0" - err-code "^3.0.1" - interface-blockstore "^3.0.0" - interface-datastore "^7.0.0" - ipfs-repo-migrations "^14.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-first "^2.0.0" - it-map "^2.0.0" - it-merge "^2.0.0" - it-parallel-batch "^2.0.0" - it-pipe "^2.0.4" - it-pushable "^3.1.0" - just-safe-get "^4.1.1" - just-safe-set "^4.1.1" - merge-options "^3.0.4" - mortice "^3.0.0" - multiformats "^10.0.1" - p-queue "^7.3.0" - proper-lockfile "^4.0.0" - quick-lru "^6.1.1" - sort-keys "^5.0.0" - uint8arrays "^4.0.2" - -ipfs-unixfs-exporter@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-9.0.2.tgz#faee5aba34d7a532c967ae98217c23411205b88c" - integrity sha512-CoktRT+MgS3H06/IXrmtJpuLQcux7ff30y0ndDRYnZLCvnqD2Fr3YicoY1sDb8JluIPZ70Pmwovb6Du4NfKk+w== - dependencies: - "@ipld/dag-cbor" "^8.0.0" - "@ipld/dag-pb" "^3.0.0" - "@multiformats/murmur3" "^2.0.0" - err-code "^3.0.1" - hamt-sharding "^3.0.0" - interface-blockstore "^3.0.0" - ipfs-unixfs "^8.0.0" - it-last "^2.0.0" - it-map "^2.0.0" - it-parallel "^3.0.0" - it-pipe "^2.0.4" - it-pushable "^3.1.0" - multiformats "^10.0.0" - p-queue "^7.3.0" - uint8arrays "^4.0.2" - -ipfs-unixfs-importer@^11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-11.0.1.tgz#be881a390a3d134ff2d87598ade7e65eb8e3034c" - integrity sha512-e7Ca5zj8MMcQAqQR1YQrEicgZEiUf0xoBLMmu/6g/PtZ0U1oZBFsaIHcbDIjjjrEXxxhK6IcAvqSfqqUBnGfBg== - dependencies: - "@ipld/dag-pb" "^3.0.0" - "@multiformats/murmur3" "^2.0.0" - err-code "^3.0.1" - hamt-sharding "^3.0.0" - interface-blockstore "^3.0.0" - ipfs-unixfs "^8.0.0" - it-all "^2.0.0" - it-batch "^2.0.0" - it-first "^2.0.0" - it-parallel-batch "^2.0.0" - merge-options "^3.0.4" - multiformats "^10.0.0" - rabin-wasm "^0.1.4" - uint8arraylist "^2.3.3" - uint8arrays "^4.0.2" - -ipfs-unixfs@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-8.0.0.tgz#342c09edab3cbed8baf26f661d81a0f72ab420e6" - integrity sha512-PAHtfyjiFs2PZBbeft5QRyXpVOvZ2zsGqID+zVRla7fjC1zRTqJkrGY9h6dF03ldGv/mSmFlNZh479qPC6aZKg== - dependencies: - err-code "^3.0.1" - protobufjs "^7.0.0" - -ipfs-utils@^9.0.6: - version "9.0.14" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.14.tgz#24f5fda1f4567685eb32bca2543d518f95fd8704" - integrity sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg== - dependencies: - any-signal "^3.0.0" - browser-readablestream-to-it "^1.0.0" - buffer "^6.0.1" - electron-fetch "^1.7.2" - err-code "^3.0.1" - is-electron "^2.2.0" - iso-url "^1.1.5" - it-all "^1.0.4" - it-glob "^1.0.1" - it-to-stream "^1.0.0" - merge-options "^3.0.4" - nanoid "^3.1.20" - native-fetch "^3.0.0" - node-fetch "^2.6.8" - react-native-fetch-api "^3.0.0" - stream-to-it "^0.2.2" - -ipfs@^0.65.0: - version "0.65.0" - resolved "https://registry.yarnpkg.com/ipfs/-/ipfs-0.65.0.tgz#18e6c014b27ae6dc6705052a3649ba6b72bfeb8d" - integrity sha512-VAee8AjNzx6HY5E/IltAu3hyylSqgpCxWp3ID09k3jUweBfzDHDo3k57W+NyZwfPh2fPneUBEzfycOv7x7dycA== - dependencies: - "@libp2p/logger" "^2.0.0" - ipfs-cli "^0.15.0" - ipfs-core "^0.17.0" - semver "^7.3.2" - update-notifier "^6.0.0" - -ipns@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ipns/-/ipns-4.0.0.tgz#933fe5e2a5c6408a91e6f82441c9dd734982ed09" - integrity sha512-I+it3SkkQ8oYF7tT1Yphipau+3KEyJ72r6BDNWaVlQM+nTu28Zz1v5NoQCH9lqkh2nUpW02nSFOQJ3S4lqAyzg== - dependencies: - "@libp2p/crypto" "^1.0.0" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-keys" "^1.0.3" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/logger" "^2.0.0" - "@libp2p/peer-id" "^1.1.9" - cborg "^1.3.3" - err-code "^3.0.1" - interface-datastore "^7.0.0" - multiformats "^10.0.0" - protons-runtime "^4.0.1" - timestamp-nano "^1.0.0" - uint8arrays "^4.0.2" - is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -13505,7 +11018,7 @@ is-buffer@^1.1.0, is-buffer@^1.1.5, is-buffer@~1.1.6: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@^2.0.0, is-buffer@^2.0.5: +is-buffer@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== @@ -13616,16 +11129,6 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-domain-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-domain-name/-/is-domain-name-1.0.1.tgz#f6eb33b14a497541dca58335137d4466e0c20da1" - integrity sha512-52ToNggHmkZGPl8yLFNrk+cKHUUnkhS0l2jh+yMLq6kj9C5IMLSztvJsW5WO5eMy0OS0jdu4o2tptT9dN0hAFg== - -is-electron@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.2.tgz#3778902a2044d76de98036f5dc58089ac4d80bb9" - integrity sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg== - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -13712,30 +11215,6 @@ is-ip@^3.1.0: dependencies: ip-regex "^4.0.0" -is-ip@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-5.0.0.tgz#1516ba75f1226550ff9b1ab50a0d47da27bd92a6" - integrity sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ== - dependencies: - ip-regex "^5.0.0" - super-regex "^0.2.0" - -is-ipfs@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-7.0.3.tgz#e68beb321a943e0f3ce23f6e441cdba8553312a2" - integrity sha512-IwjmN5DYrWQgk75dPX9WOFDbGpStJg6SLMLXXlxwpI3/SnwAIz3PwrdnxB+s2k+RjOTn9ueFIbGWxF2VMUYmLQ== - dependencies: - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" - iso-url "^1.1.3" - multiformats "^10.0.1" - uint8arrays "^4.0.2" - -is-loopback-addr@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz#0b43534f0b16ff899f1f19f322b59c38bd25fa03" - integrity sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw== - is-map@^2.0.1, is-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -13756,11 +11235,6 @@ is-npm@^5.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== -is-npm@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" - integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== - is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -13822,11 +11296,6 @@ is-plain-obj@^3.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== -is-plain-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" - integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== - is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -13864,11 +11333,6 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== -is-regexp@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-3.1.0.tgz#0235eab9cda5b83f96ac4a263d8c32c9d5ad7422" - integrity sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA== - is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -13908,11 +11372,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -13997,11 +11456,6 @@ is-yarn-global@^0.3.0: resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== -is-yarn-global@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" - integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== - is@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" @@ -14027,24 +11481,6 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -iso-constants@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/iso-constants/-/iso-constants-0.1.2.tgz#3d2456ed5aeaa55d18564f285ba02a47a0d885b4" - integrity sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ== - -iso-random-stream@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/iso-random-stream/-/iso-random-stream-2.0.2.tgz#a24f77c34cfdad9d398707d522a6a0cc640ff27d" - integrity sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ== - dependencies: - events "^3.3.0" - readable-stream "^3.4.0" - -iso-url@^1.1.2, iso-url@^1.1.3, iso-url@^1.1.5: - version "1.2.1" - resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" - integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== - iso-url@~0.4.7: version "0.4.7" resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" @@ -14095,324 +11531,44 @@ istanbul-lib-instrument@^4.0.3: "@babel/core" "^7.7.5" "@istanbuljs/schema" "^0.1.2" istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -it-all@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" - integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== - -it-all@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-all/-/it-all-2.0.1.tgz#45d530ecf6e13fb81d7ba583cdfd55ffdb376b05" - integrity sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA== - -it-batch@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-1.0.9.tgz#7e95aaacb3f9b1b8ca6c8b8367892171d6a5b37f" - integrity sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA== - -it-batch@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-2.0.1.tgz#a0822be9b18743c41d8525835f788a7f297ba41f" - integrity sha512-2gWFuPzamh9Dh3pW+OKjc7UwJ41W4Eu2AinVAfXDMfrC5gXfm3b1TF+1UzsygBUgKBugnxnGP+/fFRyn+9y1mQ== - -it-batched-bytes@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/it-batched-bytes/-/it-batched-bytes-1.0.1.tgz#a3b12a10db24308c76a1126032af9184afc2dc63" - integrity sha512-ptBiZ0Mh3kJYySpG0pCS7JgvWhaAW1fGfKDVFtNIuNTA+bpSlXINvD5H3b14ZlJbnJFzFzRSCSZ10E1nH4z/WQ== - dependencies: - it-stream-types "^1.0.4" - p-defer "^4.0.0" - uint8arraylist "^2.4.1" - -it-concat@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/it-concat/-/it-concat-3.0.1.tgz#71ffcc66e0f766af3caf61805de0d3106086cdc9" - integrity sha512-adsCBiPaDM46TrrpmNPEWru++/oFiLWZAnteM5ODPs0NRkDfjDyom+qyXvag7bP/Kp3Z6Vqv+U1idZs5gmyIAg== - dependencies: - uint8arraylist "^2.3.3" - uint8arrays "^4.0.2" - -it-drain@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-1.0.5.tgz#0466d4e286b37bcd32599d4e99b37a87cb8cfdf6" - integrity sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg== - -it-drain@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-2.0.1.tgz#f50f6ce5cb8592a9d6337c9b5e780348877b152d" - integrity sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ== - -it-filter@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-1.0.3.tgz#66ea0cc4bf84af71bebd353c05a9c5735fcba751" - integrity sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w== - -it-filter@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-2.0.1.tgz#117da6c075ac3d727d15e06de61e124e8a6cb105" - integrity sha512-w9pBEnqq0Ab+AZHqa4JlfRIhu1GKTPKXFSKHSh7w7ilKoHsT6wTASb2bDi/3/unvXuNo+cz/WH1yolov3WwgUg== - -it-first@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1" - integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g== - -it-first@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-first/-/it-first-2.0.1.tgz#75d66b254c385ae3a1906def060a69006a437cef" - integrity sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw== - -it-foreach@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/it-foreach/-/it-foreach-1.0.1.tgz#a4dab99c111457d1480bef6c4f9382076d9a6b81" - integrity sha512-eaVFhKxU+uwPs7+DKYxjuL6pj6c50/MBlAH+XPMgPWRRVIChVoyEIsdUQkkC0Ad6oTUmJbKRTnJxEY6o2aIs7A== - -it-glob@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-1.0.2.tgz#bab9b04d6aaac42884502f3a0bfee84c7a29e15e" - integrity sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q== - dependencies: - "@types/minimatch" "^3.0.4" - minimatch "^3.0.4" - -it-handshake@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/it-handshake/-/it-handshake-4.1.2.tgz#9261f1869ce0162810a530e88bd40d5e7ce8e0a3" - integrity sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw== - dependencies: - it-pushable "^3.1.0" - it-reader "^6.0.1" - it-stream-types "^1.0.4" - p-defer "^4.0.0" - uint8arraylist "^2.0.0" - -it-last@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-last/-/it-last-2.0.1.tgz#a6f3253459cb77e917aeada3b2c4ae9f3e66c64b" - integrity sha512-uVMedYW0wa2Cx0TAmcOCLbfuLLII7+vyURmhKa8Zovpd+aBTMsmINtsta2n364wJ5qsEDBH+akY1sUtAkaYBlg== - -it-length-prefixed@^8.0.2, it-length-prefixed@^8.0.3: - version "8.0.4" - resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-8.0.4.tgz#80bd356d93d77a8989a71200f8ca0860db040404" - integrity sha512-5OJ1lxH+IaqJB7lxe8IAIwt9UfSfsmjKJoAI/RO9djYoBDt1Jfy9PeVHUmOfqhqyu/4kJvWBFAJUaG1HhLQ12A== - dependencies: - err-code "^3.0.1" - it-stream-types "^1.0.4" - uint8-varint "^1.0.1" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -it-length@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-length/-/it-length-2.0.1.tgz#f4793637a35456bf14caea176e426b66aedb5ff4" - integrity sha512-BynaPOK4UwcQX2Z+kqsQygXUNW9NZswfTnscfP7MLhFvVhRYbYJv8XH+09/Qwf8ktk65QdsGoVnDmQUCUGCyvg== - -it-map@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c" - integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== - -it-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-map/-/it-map-2.0.1.tgz#d5251fd6b222d6ee39293d406a3f8fce54fb9220" - integrity sha512-a2GcYDHiAh/eSU628xlvB56LA98luXZnniH2GlD0IdBzf15shEq9rBeb0Rg3o1SWtNILUAwqmQxEXcewGCdvmQ== - -it-merge@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-merge/-/it-merge-2.0.1.tgz#6137c63f0dbdcb3b8b74ec67549f2b3351c84da8" - integrity sha512-ItoBy3dPlNKnhjHR8e7nfabfZzH4Jy2OMPvayYH3XHy4YNqSVKmWTIxhz7KX4UMBsLChlIJZ+5j6csJgrYGQtw== - dependencies: - it-pushable "^3.1.0" - -it-multipart@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/it-multipart/-/it-multipart-3.0.1.tgz#6d95ea731a4957bbb3b9ac7884c51e5a46195090" - integrity sha512-yU/wRmDk2up+OkdZcHy2mKbM2KdnbOuYOsqQzufroXzS49KdpygwKJe9tyVhqlfgk/Q+ceEPMDeAjhJOaUmYhw== - dependencies: - formidable "^2.0.1" - it-pushable "^3.1.0" - -it-pair@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/it-pair/-/it-pair-2.0.4.tgz#3113fd3f0b573f823cfd6c4339432ea7ddebc7c8" - integrity sha512-S3y3mTJ3muuxcHBGcIzNONofAN+G3iAgmSjS78qARkRWI2ImJXybjj0h52uSW+isgrJqIx2iFB/T8ZEBc8kDSw== - dependencies: - it-stream-types "^1.0.3" - p-defer "^4.0.0" - -it-parallel-batch@^1.0.9: - version "1.0.11" - resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-1.0.11.tgz#f889b4e1c7a62ef24111dbafbaaa010b33d00f69" - integrity sha512-UWsWHv/kqBpMRmyZJzlmZeoAMA0F3SZr08FBdbhtbe+MtoEBgr/ZUAKrnenhXCBrsopy76QjRH2K/V8kNdupbQ== - dependencies: - it-batch "^1.0.9" - -it-parallel-batch@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-2.0.1.tgz#23eb07bbeb73521253d7c8a1566b53137103077c" - integrity sha512-tXh567/JfDGJ90Zi//H9HkL7kY27ARp0jf2vu2jUI6PUVBWfsoT+gC4eT41/b4+wkJXSGgT8ZHnivAOlMfcNjA== - dependencies: - it-batch "^2.0.0" - -it-parallel@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/it-parallel/-/it-parallel-3.0.1.tgz#cdffdad1af4681cd3738afbb47f34cc38647fa8e" - integrity sha512-Wq9DcoLrFV9n5YzWC4BlOQT+v5qgir/iIO/CJ1eV0T5t9rcCZFPKOZB3E8wIhZ5ruSApc2w7UKrbn5iENqew5A== - dependencies: - p-defer "^4.0.0" - -it-pb-stream@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/it-pb-stream/-/it-pb-stream-2.0.4.tgz#9d246d186d6cbfc0e3860a1796e181085359638b" - integrity sha512-p0chBIT3HrZt3hIqvBEi+NgZxxT25MTJ362nKoHmzA/k/WsUPPbeSz7Ad+wRcGxZn2O5JEXCS5lOGRjSDSnlNg== - dependencies: - it-handshake "^4.1.2" - it-length-prefixed "^8.0.2" - it-stream-types "^1.0.4" - uint8arraylist "^2.0.0" - -it-peekable@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-2.0.1.tgz#1e118610473aa511efc70f3bb7a7066178728dd3" - integrity sha512-fJ/YTU9rHRhGJOM2hhQKKEfRM6uKB9r4yGGFLBHqp72ACC8Yi6+7/FhuBAMG8cpN6mLoj9auVX7ZJ3ul6qFpTA== - -it-pipe@^2.0.3, it-pipe@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/it-pipe/-/it-pipe-2.0.5.tgz#9caf7993dcbbc3824bc6ef64ee8b94574f65afa7" - integrity sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw== - dependencies: - it-merge "^2.0.0" - it-pushable "^3.1.0" - it-stream-types "^1.0.3" - -it-pushable@^3.0.0, it-pushable@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-3.1.2.tgz#6f2420fb192f637613c561720945a36b6d9160ae" - integrity sha512-zU9FbeoGT0f+yobwm8agol2OTMXbq4ZSWLEi7hug6TEZx4qVhGhGyp31cayH04aBYsIoO2Nr5kgMjH/oWj2BJQ== - -it-reader@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-6.0.2.tgz#2177afca42f0b41c6acc582cc6fc6869ae8d4dd4" - integrity sha512-rQdVyml+r/2v8PQsPfJgf626tAkbA7NW1EF6zuucT2Ryy1U6YJtSuCJL8fKuDOyiR/mLzbfP0QQJlSeeoLph2A== - dependencies: - it-stream-types "^1.0.4" - uint8arraylist "^2.0.0" - -it-reduce@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-reduce/-/it-reduce-2.0.1.tgz#0e897315d9fc98dc7a77ab3024a51b06552ba8ab" - integrity sha512-F6Ysj5LEH1SmDicEc/wlwEaDNQHGwOdUpLHd5Ze9FK7QHU0HD8qykQak0SaS4EdUUtOTYnBz1cwX1JSzNEbYAw== + semver "^6.3.0" -it-sort@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-sort/-/it-sort-2.0.1.tgz#37af025862f7adb30d7fc1f8520b3cd7ef219ef6" - integrity sha512-9f4jKOTHfxc/FJpg/wwuQ+j+88i+sfNGKsu2HukAKymm71/XDnBFtOAOzaimko3YIhmn/ERwnfEKrsYLykxw9A== +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== dependencies: - it-all "^2.0.0" + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" -it-split@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/it-split/-/it-split-2.0.2.tgz#6bbc8a719a426624f4305695760f8f07c3daf6b2" - integrity sha512-903fJ75Yb7mX6StecbshNHgj+qbaesVP48fw2SH+HktH/KEtErjYul7rU/UZhTH5TCD01u8fV4kRIrZZGVMYbg== +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== dependencies: - uint8arraylist "^2.4.1" - -it-stream-types@^1.0.2, it-stream-types@^1.0.3, it-stream-types@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/it-stream-types/-/it-stream-types-1.0.5.tgz#9c72e6adefdea9dac69d0a28fbea783deebd508d" - integrity sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA== - -it-take@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/it-take/-/it-take-1.0.2.tgz#b5f1570014db7c3454897898b69bb7ac9c3bffc1" - integrity sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw== - -it-take@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-take/-/it-take-2.0.1.tgz#f9e5ddf0b73a18ba00e62fb532d9d3cde3fe4ce6" - integrity sha512-DL7kpZNjuoeSTnB9dMAJ0Z3m2T29LRRAU+HIgkiQM+1jH3m8l9e/1xpWs8JHTlbKivbqSFrQMTc8KVcaQNmsaA== + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" -it-tar@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/it-tar/-/it-tar-6.0.1.tgz#6164227c4f20cb870efb89e2a6693ffde77f69b1" - integrity sha512-KMKNqYQr/m3mJE0ERg6F2Snlk1d68tEMeOP0bPf5vboka1y0L7CZD2nlf57H+C9R31TA0SbtiOqkblRxEIONfg== - dependencies: - iso-constants "^0.1.2" - it-reader "^6.0.1" - it-stream-types "^1.0.4" - it-to-buffer "^3.0.0" - p-defer "^4.0.0" - uint8arraylist "^2.3.2" - uint8arrays "^4.0.2" - -it-to-buffer@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/it-to-buffer/-/it-to-buffer-3.0.1.tgz#ac00e7d9616c7a7d1613f29dc437c67d0e473271" - integrity sha512-TiMudfypF2yW+HdNfhDgbkNQ42yuK1MizB716kwnzIJSQa8AM15zh+VZG2L/xQWaqyWfra1dr9neWO55xsYolA== +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== dependencies: - uint8arrays "^4.0.2" - -it-to-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-1.0.0.tgz#6c47f91d5b5df28bda9334c52782ef8e97fe3a4a" - integrity sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA== - dependencies: - buffer "^6.0.3" - fast-fifo "^1.0.0" - get-iterator "^1.0.2" - p-defer "^3.0.0" - p-fifo "^1.0.0" - readable-stream "^3.6.0" + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" -it-ws@^5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/it-ws/-/it-ws-5.0.6.tgz#9b69ff2ef9d08fda18ef2db604acf972d0fedded" - integrity sha512-TEEJQaGtkxgP/nGVq8dq48nPT85Afu8kwwvtDFLj4rQLWRhZcb26RWdXLdn9qhXkWPiWbK5H7JWBW1Bebj/SuQ== +istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== dependencies: - event-iterator "^2.0.0" - iso-url "^1.1.2" - it-stream-types "^1.0.2" - uint8arrays "^4.0.2" - ws "^8.4.0" + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" iterall@^1.2.1, iterall@^1.3.0: version "1.3.0" @@ -15329,32 +12485,11 @@ jest@^27.4.3: import-local "^3.0.2" jest-cli "^27.5.1" -jmespath@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" - integrity sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w== - -joi@^17.2.1: - version "17.8.4" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.8.4.tgz#f2d91ab8acd3cca4079ba70669c65891739234aa" - integrity sha512-jjdRHb5WtL+KgSHvOULQEPPv4kcl+ixd1ybOFQq3rWLgEEqc03QMmilodL0GVJE14U/SQDXkUhQUSZANGDH/AA== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.1" - "@sideway/pinpoint" "^2.0.0" - jose@^4.8.1: version "4.13.1" resolved "https://registry.yarnpkg.com/jose/-/jose-4.13.1.tgz#449111bb5ab171db85c03f1bd2cb1647ca06db1c" integrity sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ== -joycon@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" - integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== - js-base64@^3.7.3: version "3.7.5" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" @@ -15397,11 +12532,6 @@ js2xmlparser@^4.0.2: dependencies: xmlcreate "^2.0.4" -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" - integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -15552,21 +12682,6 @@ jsonc-parser@^3.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== -jsondiffpatch@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz#9fb085036767f03534ebd46dcd841df6070c5773" - integrity sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw== - dependencies: - chalk "^2.3.0" - diff-match-patch "^1.0.0" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -15637,33 +12752,11 @@ juice@^8.0.0: slick "^1.12.2" web-resource-inliner "^6.0.1" -just-debounce-it@^3.0.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/just-debounce-it/-/just-debounce-it-3.2.0.tgz#4352265f4af44188624ce9fdbc6bff4d49c63a80" - integrity sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ== - just-extend@^4.0.2: version "4.2.1" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== -just-safe-get@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/just-safe-get/-/just-safe-get-4.2.0.tgz#8b184907473ae9995c9b30a52ce3462544437dca" - integrity sha512-+tS4Bvgr/FnmYxOGbwziJ8I2BFk+cP1gQHm6rm7zo61w1SbxBwWGEq/Ryy9Gb6bvnloPq6pz7Bmm4a0rjTNlXA== - -just-safe-set@^4.0.2, just-safe-set@^4.1.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/just-safe-set/-/just-safe-set-4.2.1.tgz#aa2d26abedc670ef247c1eaabeba73dc07a05cea" - integrity sha512-La5CP41Ycv52+E4g7w1sRV8XXk7Sp8a/TwWQAYQKn6RsQz1FD4Z/rDRRmqV3wJznS1MDF3YxK7BCudX1J8FxLg== - -k-bucket@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-5.1.0.tgz#db2c9e72bd168b432e3f3e8fc092e2ccb61bff89" - integrity sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg== - dependencies: - randombytes "^2.1.0" - key-encoder@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba" @@ -15681,7 +12774,7 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -keyv@^4.0.0, keyv@^4.5.2: +keyv@^4.0.0: version "4.5.2" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== @@ -15719,13 +12812,6 @@ klaw-sync@^6.0.0: dependencies: graceful-fs "^4.1.11" -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== - optionalDependencies: - graceful-fs "^4.1.9" - klaw@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" @@ -15785,13 +12871,6 @@ latest-version@^5.1.0: dependencies: package-json "^6.3.0" -latest-version@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" - integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== - dependencies: - package-json "^8.1.0" - launch-editor@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" @@ -15800,32 +12879,6 @@ launch-editor@^2.6.0: picocolors "^1.0.0" shell-quote "^1.7.3" -level-supports@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" - integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== - -level-transcoder@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" - integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== - dependencies: - buffer "^6.0.3" - module-error "^1.0.1" - -level@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" - integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== - dependencies: - browser-level "^1.0.1" - classic-level "^1.2.0" - -leven@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -15847,81 +12900,6 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libp2p@^0.40.0: - version "0.40.0" - resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-0.40.0.tgz#c93b586d99f58192b43801444053536a5f9cbbd1" - integrity sha512-AeLaA+8KIhUhjpXZcs20+Pnf2wIBp+zdSYPD1IgGCF0PlMbTdCvaIqhPzpTSd3+e5k7NZlgpd/BvCOLgQbfm5Q== - dependencies: - "@achingbrain/nat-port-mapper" "^1.0.3" - "@libp2p/connection" "^4.0.2" - "@libp2p/crypto" "^1.0.4" - "@libp2p/interface-address-manager" "^2.0.0" - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-connection-encrypter" "^3.0.1" - "@libp2p/interface-connection-manager" "^1.1.1" - "@libp2p/interface-content-routing" "^1.0.2" - "@libp2p/interface-dht" "^1.0.1" - "@libp2p/interface-metrics" "^3.0.0" - "@libp2p/interface-peer-discovery" "^1.0.1" - "@libp2p/interface-peer-id" "^1.0.4" - "@libp2p/interface-peer-info" "^1.0.3" - "@libp2p/interface-peer-routing" "^1.0.1" - "@libp2p/interface-peer-store" "^1.2.2" - "@libp2p/interface-pubsub" "^3.0.0" - "@libp2p/interface-registrar" "^2.0.3" - "@libp2p/interface-stream-muxer" "^3.0.0" - "@libp2p/interface-transport" "^2.0.0" - "@libp2p/interfaces" "^3.0.3" - "@libp2p/logger" "^2.0.1" - "@libp2p/multistream-select" "^3.0.0" - "@libp2p/peer-collections" "^2.0.0" - "@libp2p/peer-id" "^1.1.15" - "@libp2p/peer-id-factory" "^1.0.18" - "@libp2p/peer-record" "^4.0.3" - "@libp2p/peer-store" "^5.0.0" - "@libp2p/tracked-map" "^2.0.1" - "@libp2p/utils" "^3.0.2" - "@multiformats/mafmt" "^11.0.2" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - any-signal "^3.0.0" - datastore-core "^8.0.1" - err-code "^3.0.1" - events "^3.3.0" - hashlru "^2.3.0" - interface-datastore "^7.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-first "^2.0.0" - it-foreach "^1.0.0" - it-handshake "^4.1.2" - it-length-prefixed "^8.0.2" - it-map "^2.0.0" - it-merge "^2.0.0" - it-pair "^2.0.2" - it-pipe "^2.0.3" - it-sort "^2.0.0" - it-stream-types "^1.0.4" - merge-options "^3.0.4" - multiformats "^10.0.0" - mutable-proxy "^1.0.0" - node-forge "^1.3.1" - p-fifo "^1.0.0" - p-retry "^5.0.0" - p-settle "^5.0.0" - private-ip "^2.3.3" - protons-runtime "^4.0.1" - rate-limiter-flexible "^2.3.11" - retimer "^3.0.0" - sanitize-filename "^1.6.3" - set-delayed-interval "^1.0.0" - timeout-abort-controller "^3.0.0" - uint8arraylist "^2.3.2" - uint8arrays "^4.0.2" - wherearewe "^2.0.0" - xsalsa20 "^1.1.0" - libphonenumber-js@^1.9.43: version "1.10.24" resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.24.tgz#a1744cf29df86d5a587562ea28dde12320eb6ab6" @@ -16172,7 +13150,7 @@ lodash.zip@^4.2.0: resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" integrity sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== -lodash@4, lodash@4.x, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.7.0: +lodash@4.x, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -16211,19 +13189,6 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -long@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" - integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== - -longbits@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/longbits/-/longbits-1.1.0.tgz#d6a7b2411dead1cf4b79ee4586816e65c7356ab9" - integrity sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ== - dependencies: - byte-access "^1.0.1" - uint8arraylist "^2.0.0" - longest-streak@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" @@ -16243,17 +13208,6 @@ loupe@^2.3.1: dependencies: get-func-name "^2.0.0" -lowdb@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" - integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== - dependencies: - graceful-fs "^4.1.3" - is-promise "^2.1.0" - lodash "4" - pify "^3.0.0" - steno "^0.4.1" - lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -16271,11 +13225,6 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - "lru-cache@7.10.1 - 7.13.1": version "7.13.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" @@ -16624,13 +13573,6 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== -merge-options@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" - integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== - dependencies: - is-plain-obj "^2.1.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -16748,12 +13690,12 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.52.0, mime-db@1.x.x, "mime-db@>= 1.43.0 < 2": +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.30, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -16785,11 +13727,6 @@ mimic-fn@^3.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -16805,11 +13742,6 @@ mimic-response@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== -mimic-response@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" - integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== - min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -16887,18 +13819,6 @@ minipass@^2.6.0, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^4.0.0: - version "4.2.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.5.tgz#9e0e5256f1e3513f8c34691dd68549e85b2c8ceb" - integrity sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q== - minizlib@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" @@ -16906,14 +13826,6 @@ minizlib@^1.3.3: dependencies: minipass "^2.9.0" -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -16932,12 +13844,12 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@1.x, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -16992,31 +13904,11 @@ module-deps@^6.2.3: through2 "^2.0.0" xtend "^4.0.0" -module-error@^1.0.1, module-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" - integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== - moment@^2.24.0: version "2.29.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== -mortice@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mortice/-/mortice-3.0.1.tgz#27c1943b1841502c7b27a9c8fea789f87c124515" - integrity sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA== - dependencies: - nanoid "^4.0.0" - observable-webworkers "^2.0.1" - p-queue "^7.2.0" - p-timeout "^6.0.0" - -mri@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" - integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== - mri@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" @@ -17049,7 +13941,7 @@ multiaddr@^10.0.0: uint8arrays "^3.0.0" varint "^6.0.0" -multicast-dns@^7.2.0, multicast-dns@^7.2.5: +multicast-dns@^7.2.5: version "7.2.5" resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== @@ -17057,17 +13949,7 @@ multicast-dns@^7.2.0, multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -multiformats@^10.0.0, multiformats@^10.0.1: - version "10.0.3" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-10.0.3.tgz#d4147d01f9a31271c6fb5d24adf9b01f9e656bba" - integrity sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw== - -multiformats@^11.0.0: - version "11.0.2" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60" - integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg== - -multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.1, multiformats@^9.6.3, multiformats@^9.6.4: +multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.1: version "9.9.0" resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== @@ -17080,16 +13962,6 @@ multistream@^4.1.0: once "^1.4.0" readable-stream "^3.6.0" -murmurhash3js-revisited@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz#6bd36e25de8f73394222adc6e41fa3fac08a5869" - integrity sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g== - -mutable-proxy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mutable-proxy/-/mutable-proxy-1.0.0.tgz#3c6e6f9304c2e5a4751bb65b5a66677de9bcf3c8" - integrity sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A== - mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" @@ -17105,16 +13977,11 @@ nanoid@3.3.3: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== -nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.3.4: +nanoid@^3.0.2, nanoid@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -nanoid@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.1.tgz#398d7ccfdbf9faf2231b2ca7e8fff5dbca6a509b" - integrity sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww== - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -17137,21 +14004,11 @@ napi-build-utils@^1.0.1: resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== -napi-macros@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" - integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== - native-fetch@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== -native-fetch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-4.0.2.tgz#75c8a44c5f3bb021713e5e24f2846750883e49af" - integrity sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg== - natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -17162,16 +14019,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -ndjson@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-1.5.0.tgz#ae603b36b134bcec347b452422b0bf98d5832ec8" - integrity sha512-hUPLuaziboGjNF7wHngkgVc0FOclR8dDk/HfEvTtDr/iUrqBWiRcRSTK3/nLOqKH33th714BrMmTPtObI9gZxQ== - dependencies: - json-stringify-safe "^5.0.1" - minimist "^1.2.0" - split2 "^2.1.0" - through2 "^2.0.3" - needle@^2.2.1: version "2.9.1" resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" @@ -17213,11 +14060,6 @@ neon-cli@0.4.0: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" -netmask@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" - integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== - new-github-release-url@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-1.0.0.tgz#493847e6fecce39c247e9d89929be773d2e7f777" @@ -17266,7 +14108,7 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-fetch@2, node-fetch@^2.5.11, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7, node-fetch@^2.6.8: +node-fetch@2, node-fetch@^2.5.11, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== @@ -17280,12 +14122,12 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" -node-forge@^1, node-forge@^1.1.0, node-forge@^1.3.1: +node-forge@^1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: +node-gyp-build@^4.2.0: version "4.6.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== @@ -17323,22 +14165,6 @@ node-pre-gyp@0.14.0: semver "^5.3.0" tar "^4.4.2" -node-pre-gyp@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz#df9ab7b68dd6498137717838e4f92a33fc9daa42" - integrity sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - node-releases@^2.0.8: version "2.0.10" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" @@ -17364,13 +14190,6 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -17423,11 +14242,6 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -normalize-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" - integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== - np@^7.6.2: version "7.6.3" resolved "https://registry.yarnpkg.com/np/-/np-7.6.3.tgz#da3eeb750fa8d583f658b02a16f1199a11c9e10f" @@ -17546,13 +14360,6 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -17563,16 +14370,6 @@ npmlog@^4.0.2: gauge "~2.7.3" set-blocking "~2.0.0" -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -17587,19 +14384,6 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nugget@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.2.0.tgz#ad6feeeda912dfe839e35efe713bc1ce67f1f5b6" - integrity sha512-I4Yt4dRPes82Tx/s7qDn8z1cA2pmZy2bOJiTdcb/BZJ1LJkEYd9GqunQD37unPUPjdmW6dkkVZmxN+8Gxt6Xlg== - dependencies: - debug "^2.1.3" - minimist "^1.1.0" - pretty-bytes "^4.0.2" - progress-stream "^1.1.0" - request "^2.45.0" - single-line-log "^1.1.2" - throttleit "0.0.2" - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -17666,11 +14450,6 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== - object-path@^0.11.5: version "0.11.8" resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" @@ -17745,11 +14524,6 @@ object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: define-properties "^1.1.4" es-abstract "^1.20.4" -observable-webworkers@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/observable-webworkers/-/observable-webworkers-2.0.1.tgz#7d9086ebc567bd318b46ba0506b10cedf3813878" - integrity sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw== - obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -17803,13 +14577,6 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - open@^7.0.0, open@^7.3.0, open@^7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" @@ -17921,26 +14688,11 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== -p-defer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" - integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== - -p-defer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-4.0.0.tgz#8082770aeeb10eb6b408abe91866738741ddd5d2" - integrity sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ== - p-each-series@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" @@ -17953,21 +14705,6 @@ p-event@^4.0.0: dependencies: p-timeout "^3.1.0" -p-event@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-5.0.1.tgz#614624ec02ae7f4f13d09a721c90586184af5b0c" - integrity sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ== - dependencies: - p-timeout "^5.0.2" - -p-fifo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" - integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== - dependencies: - fast-fifo "^1.0.0" - p-defer "^3.0.0" - p-filter@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -17999,13 +14736,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -18063,24 +14793,11 @@ p-queue@^6.3.0, p-queue@^6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" -p-queue@^7.2.0, p-queue@^7.3.0: - version "7.3.4" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-7.3.4.tgz#7ef7d89b6c1a0563596d98adbc9dc404e9ed4a84" - integrity sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg== - dependencies: - eventemitter3 "^4.0.7" - p-timeout "^5.0.2" - p-reflect@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-reflect/-/p-reflect-2.1.0.tgz#5d67c7b3c577c4e780b9451fc9129675bd99fe67" integrity sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg== -p-reflect@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-reflect/-/p-reflect-3.1.0.tgz#bba22747439b5fc50a7f626e8e909dc9b888218d" - integrity sha512-3sG3UlpisPSaX+o7u2q01hIQmrpkvdl5GSO1ZwL7pfc5kHB2bPF0eFNCfYTrW1/LTUdgmPwBAvmT0Zr8eSmaAQ== - p-retry@^4.5.0: version "4.6.2" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" @@ -18089,14 +14806,6 @@ p-retry@^4.5.0: "@types/retry" "0.12.0" retry "^0.13.1" -p-retry@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-5.1.2.tgz#c16eaee4f2016f9161d12da40d3b8b0f2e3c1b76" - integrity sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g== - dependencies: - "@types/retry" "0.12.1" - retry "^0.13.1" - p-settle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/p-settle/-/p-settle-4.1.1.tgz#37fbceb2b02c9efc28658fc8d36949922266035f" @@ -18105,14 +14814,6 @@ p-settle@^4.1.1: p-limit "^2.2.2" p-reflect "^2.1.0" -p-settle@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/p-settle/-/p-settle-5.1.0.tgz#6abf85e073d6b137b48ed70f8a8d94660454bd17" - integrity sha512-ujR6UFfh09ziOKyC5aaJak5ZclsjlLw57SYtFZg6yllMofyygnaibQRZ4jf6QPWqoOCGUXyb1cxUKELeAyKO7g== - dependencies: - p-limit "^4.0.0" - p-reflect "^3.1.0" - p-timeout@^3.1.0, p-timeout@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -18125,21 +14826,6 @@ p-timeout@^4.1.0: resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-4.1.0.tgz#788253c0452ab0ffecf18a62dff94ff1bd09ca0a" integrity sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw== -p-timeout@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b" - integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew== - -p-timeout@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.1.tgz#bcee5e37d730f5474d973b6ff226751a1a5e6ff1" - integrity sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w== - -p-try-each@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/p-try-each/-/p-try-each-1.0.1.tgz#24b4b830a134cb71a934d03b76e702bed439c3c1" - integrity sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A== - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -18155,17 +14841,7 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" -package-json@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.0.tgz#2a22806f1ed7c786c8e6ff26cfe20003bf4c6850" - integrity sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg== - dependencies: - got "^12.1.0" - registry-auth-token "^5.0.1" - registry-url "^6.0.0" - semver "^7.3.7" - -pako@2.1.0, pako@^2.0.4: +pako@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== @@ -18208,11 +14884,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-duration@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.0.3.tgz#b6681f5edcc2689643b34c09ea63f86f58a35814" - integrity sha512-o6NAh12na5VvR6nFejkU0gpQ8jmOY9Y9sTU2ke3L3G/d/3z8jqmbBbeyBGHU73P4JLXfc7tJARygIK3WGIkloA== - parse-entities@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" @@ -18313,21 +14984,6 @@ path-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== -path-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" - integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -path-exists@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== - dependencies: - pinkie-promise "^2.0.0" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -18353,11 +15009,6 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -18408,11 +15059,6 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -peek-readable@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0.tgz#7ead2aff25dc40458c60347ea76cfdfd63efdfec" - integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A== - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -18463,54 +15109,6 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - -pino-pretty@^4.0.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-4.8.0.tgz#f2f3055bf222456217b14ffb04d8be0a0cc17fce" - integrity sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw== - dependencies: - "@hapi/bourne" "^2.0.0" - args "^5.0.1" - chalk "^4.0.0" - dateformat "^4.5.1" - fast-safe-stringify "^2.0.7" - jmespath "^0.15.0" - joycon "^2.2.5" - pump "^3.0.0" - readable-stream "^3.6.0" - rfdc "^1.3.0" - split2 "^3.1.1" - strip-json-comments "^3.1.1" - -pino-std-serializers@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" - integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== - -pino@^6.0.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-6.14.0.tgz#b745ea87a99a6c4c9b374e4f29ca7910d4c69f78" - integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== - dependencies: - fast-redact "^3.0.0" - fast-safe-stringify "^2.0.8" - flatstr "^1.0.12" - pino-std-serializers "^3.1.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - sonic-boom "^1.0.2" - pirates@^4.0.1, pirates@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" @@ -18571,11 +15169,6 @@ pkg@^5.8.0: resolve "^1.22.0" stream-meter "^1.0.4" -platform@^1.3.3: - version "1.3.6" - resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" - integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -19557,21 +16150,11 @@ prettier@^2.7.1, prettier@latest: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== -pretty-bytes@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" - integrity sha512-yJAF+AjbHKlxQ8eezMd/34Mnj/YTQ3i6kLzvVsH4l/BfIFtp444n0wVbnsn66JimZ9uBofv815aRp1zCppxlWw== - pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-bytes@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.0.tgz#1d1cc9aae1939012c74180b679da6684616bf804" - integrity sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ== - pretty-error@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" @@ -19623,61 +16206,21 @@ pretty-format@^3.5.1: resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385" integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew== -private-ip@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-2.3.4.tgz#e2944f2a7a0142ec6640efda323af4b96307524e" - integrity sha512-ts/YFVwfBeLq61f9+KsOhXW6RH0wvY0gU50R6QZYzgFhggyyLK6WDFeYdjfi/HMnBm2hecLvsR3PB3JcRxDk+A== - dependencies: - ip-regex "^4.3.0" - ipaddr.js "^2.0.1" - is-ip "^3.1.0" - netmask "^2.0.2" - -private-ip@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-3.0.0.tgz#a65d10e2db06f6bb2f97f716f1a8976a3460a4a6" - integrity sha512-HkMBs4nMtrP+cvcw0bDi2BAZIGgiKI4Zq8Oc+dMqNBpHS8iGL4+WO/pRtc8Bwnv9rjnV0QwMDwEBymFtqv7Kww== - dependencies: - "@chainsafe/is-ip" "^2.0.1" - ip-regex "^5.0.0" - ipaddr.js "^2.0.1" - netmask "^2.0.2" - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10, process@~0.11.0: +process@~0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -progress-stream@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" - integrity sha512-MIBPjZz6oGNSw5rn2mSp+nP9FGoaVo6QsPyPVEaD4puilz5hZNa3kfnrlqRNYFsugslbU3An4mnkLLtZOaWvrA== - dependencies: - speedometer "~0.1.2" - through2 "~0.2.3" - progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -prom-client@^14.0.1: - version "14.2.0" - resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.2.0.tgz#ca94504e64156f6506574c25fb1c34df7812cf11" - integrity sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA== - dependencies: - tdigest "^0.1.1" - promise.series@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" @@ -19707,73 +16250,11 @@ prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" -proper-lockfile@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" - integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== - dependencies: - graceful-fs "^4.2.4" - retry "^0.12.0" - signal-exit "^3.0.2" - proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== -protobufjs@^6.11.2: - version "6.11.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" - integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -protobufjs@^7.0.0: - version "7.2.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.2.tgz#2af401d8c547b9476fb37ffc65782cf302342ca3" - integrity sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/node" ">=13.7.0" - long "^5.0.0" - -protons-runtime@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-4.0.2.tgz#a5670e703a5389dccb3700b583532e3316efcb94" - integrity sha512-R4N6qKHgz8T2Gl45CTcZfITzXPQY9ym8lbLb4VyFMS4ag1KusCRZwkQXTBRhxQ+93ck3K3aDhK1wIk98AMtNyw== - dependencies: - protobufjs "^7.0.0" - uint8arraylist "^2.4.3" - -protons-runtime@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-5.0.0.tgz#1eb3c78637ff02cc90bb030e3bff6f0402109c25" - integrity sha512-QqjGnPGkpvbzq0dITzhG9DVK10rRIHf7nePcU2QQVVpFGuYbwrOWnvGSvei1GcceAzB9syTz6vHzvTPmGRR0PA== - dependencies: - protobufjs "^7.0.0" - uint8arraylist "^2.4.3" - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -19834,13 +16315,6 @@ pupa@^2.1.1: dependencies: escape-goat "^2.0.0" -pupa@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" - integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== - dependencies: - escape-goat "^4.0.0" - pvtsutils@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" @@ -19870,7 +16344,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.11.0, qs@^6.4.0: +qs@^6.4.0: version "6.11.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== @@ -19897,16 +16371,11 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -queue-microtask@^1.2.2, queue-microtask@^1.2.3: +queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-format-unescaped@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" - integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" @@ -19917,11 +16386,6 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -quick-lru@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-6.1.1.tgz#f8e5bf9010376c126c80c1a62827a526c0e60adf" - integrity sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q== - quickly-copy-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz#9f8ff066230510ee7422b0121472b093a8690859" @@ -19929,18 +16393,6 @@ quickly-copy-file@^1.0.0: dependencies: mkdirp "~0.5.0" -rabin-wasm@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.1.5.tgz#5b625ca007d6a2cbc1456c78ae71d550addbc9c9" - integrity sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA== - dependencies: - "@assemblyscript/loader" "^0.9.4" - bl "^5.0.0" - debug "^4.3.1" - minimist "^1.2.5" - node-fetch "^2.6.1" - readable-stream "^3.6.0" - raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" @@ -19968,11 +16420,6 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rate-limiter-flexible@^2.3.11, rate-limiter-flexible@^2.3.9: - version "2.4.1" - resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-2.4.1.tgz#c74cfe36ac2cbfe56f68ded9a3b4b2fde1963c41" - integrity sha512-dgH4T44TzKVO9CLArNto62hJOwlWJMLUjVVr/ii0uUzZXEXthDNr7/yefW5z/1vvHAfycc1tnuiYyNJ8CTRB3g== - raw-body@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" @@ -20001,7 +16448,7 @@ raw-body@~1.1.0: bytes "1" string_decoder "0.10" -rc@1.2.8, rc@^1.1.2, rc@^1.2.7, rc@^1.2.8: +rc@1.2.8, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -20093,13 +16540,6 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-native-fetch-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz#81e1bb6562c292521bc4eca52fe1097f4c1ebab5" - integrity sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA== - dependencies: - p-defer "^3.0.0" - react-qr-code@^2.0.7: version "2.0.11" resolved "https://registry.yarnpkg.com/react-qr-code/-/react-qr-code-2.0.11.tgz#444c759a2100424972e17135fbe0e32eaffa19e8" @@ -20292,7 +16732,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -20301,33 +16741,6 @@ readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.3.0.tgz#0914d0c72db03b316c9733bb3461d64a3cc50cba" - integrity sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-web-to-node-stream@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" - integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== - dependencies: - readable-stream "^3.6.0" - readdir-scoped-modules@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" @@ -20452,13 +16865,6 @@ registry-auth-token@^4.0.0: dependencies: rc "1.2.8" -registry-auth-token@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" - integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== - dependencies: - "@pnpm/npm-conf" "^2.1.0" - registry-url@^5.0.0, registry-url@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" @@ -20466,13 +16872,6 @@ registry-url@^5.0.0, registry-url@^5.1.0: dependencies: rc "^1.2.8" -registry-url@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" - integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== - dependencies: - rc "1.2.8" - regjsparser@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" @@ -20542,7 +16941,7 @@ repeat-string@^1.0.0, repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== -request@^2.45.0, request@^2.88.0: +request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -20600,11 +16999,6 @@ requizzle@^0.2.3: dependencies: lodash "^4.17.21" -resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -20685,13 +17079,6 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" -responselike@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" - integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== - dependencies: - lowercase-keys "^3.0.0" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -20713,21 +17100,11 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retimer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/retimer/-/retimer-3.0.0.tgz#98b751b1feaf1af13eb0228f8ea68b8f9da530df" - integrity sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA== - retry@0.13.1, retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -20738,11 +17115,6 @@ rfc4648@1.4.0: resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.4.0.tgz#c75b2856ad2e2d588b6ddb985d556f1f7f2a2abd" integrity sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg== -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -20753,7 +17125,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@2, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -20895,13 +17267,6 @@ run-async@^2.2.0, run-async@^2.4.0: resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== -run-parallel-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" - integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== - dependencies: - queue-microtask "^1.2.2" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -21006,13 +17371,6 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sanitize-filename@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - sanitize.css@*: version "13.0.0" resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173" @@ -21035,7 +17393,7 @@ sass@*: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -21129,13 +17487,6 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -semver-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" - integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== - dependencies: - semver "^7.3.5" - "semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -21191,15 +17542,6 @@ send@^0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -sentence-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" - integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - serialize-error@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" @@ -21256,11 +17598,6 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-delayed-interval@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz#1f7c065780a365f10250f8a80e2be10175ea0388" - integrity sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw== - set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" @@ -21369,7 +17706,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -21395,13 +17732,6 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -single-line-log@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" - integrity sha512-awzaaIPtYFdexLr6TBpcZSGPB6D1RInNO/qNetgaJloPDF/D0GkVtLvGEp8InfmLV7CyLyQ5fIRP+tVN/JmWQA== - dependencies: - string-width "^1.0.1" - sinon@*: version "15.0.2" resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.0.2.tgz#f3e3aacb990bbaa8a7bb976e86118c5dc0154e66" @@ -21461,14 +17791,6 @@ smartwrap@^2.0.2: wcwidth "^1.0.1" yargs "^15.1.0" -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -21499,24 +17821,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socket.io-client@^4.1.2: - version "4.6.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.6.1.tgz#80d97d5eb0feca448a0fb6d69a7b222d3d547eab" - integrity sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.2" - engine.io-client "~6.4.0" - socket.io-parser "~4.2.1" - -socket.io-parser@~4.2.1: - version "4.2.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" - integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" @@ -21526,14 +17830,6 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -sonic-boom@^1.0.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" - integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== - dependencies: - atomic-sleep "^1.0.0" - flatstr "^1.0.12" - sorcery@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" @@ -21544,13 +17840,6 @@ sorcery@^0.10.0: sander "^0.5.0" sourcemap-codec "^1.3.0" -sort-keys@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-5.0.0.tgz#5d775f8ae93ecc29bc7312bbf3acac4e36e3c446" - integrity sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw== - dependencies: - is-plain-obj "^4.0.0" - source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -21621,11 +17910,6 @@ sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== -sparse-array@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/sparse-array/-/sparse-array-1.3.2.tgz#0e1a8b71706d356bc916fe754ff496d450ec20b0" - integrity sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg== - spawndamnit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-2.0.0.tgz#9f762ac5c3476abb994b42ad592b5ad22bb4b0ad" @@ -21683,11 +17967,6 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -speedometer@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" - integrity sha512-phdEoDlA6EUIVtzwq1UiNMXDUogczp204aYF/yfOhjNePWFfIpBJ1k5wLMuXQhEOOMjuTJEcc4vdZa+vuP+n/Q== - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -21695,20 +17974,6 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split2@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" - integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== - dependencies: - through2 "^2.0.2" - -split2@^3.1.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - split@^1.0.0, split@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" @@ -21716,7 +17981,7 @@ split@^1.0.0, split@^1.0.1: dependencies: through "2" -sprintf-js@1.1.2, sprintf-js@^1.1.2: +sprintf-js@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== @@ -21781,13 +18046,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -steno@^0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" - integrity sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w== - dependencies: - graceful-fs "^4.1.3" - stop-iteration-iterator@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" @@ -21836,13 +18094,6 @@ stream-splicer@^2.0.0: inherits "^2.0.1" readable-stream "^2.0.2" -stream-to-it@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" - integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== - dependencies: - get-iterator "^1.0.2" - stream-transform@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.1.3.tgz#a1c3ecd72ddbf500aa8d342b0b9df38f5aa598e3" @@ -21850,11 +18101,6 @@ stream-transform@^2.1.3: dependencies: mixme "^0.5.1" -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - string-hash@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" @@ -21912,15 +18158,6 @@ string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -21971,7 +18208,7 @@ string.prototype.trimstart@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -string_decoder@0.10, string_decoder@~0.10.x: +string_decoder@0.10: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== @@ -22059,11 +18296,6 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -22081,14 +18313,6 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -strtok3@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0.tgz#868c428b4ade64a8fd8fee7364256001c1a4cbe5" - integrity sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ== - dependencies: - "@tokenizer/token" "^0.3.0" - peek-readable "^5.0.0" - style-inject@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" @@ -22134,14 +18358,6 @@ subscriptions-transport-ws@^0.11.0: symbol-observable "^1.0.4" ws "^5.2.0 || ^6.0.0 || ^7.0.0" -sumchecker@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d" - integrity sha512-ZfWTnMBdeHaXR7ncH96vRUI07B+wLuXxGPGUMR+EM4QJRJoD535ALIdpc+vHB8eA+1DXJztu3CgHZ1zEhbDF4A== - dependencies: - debug "^2.2.0" - es6-promise "^4.0.5" - sumchecker@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" @@ -22149,15 +18365,6 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" -super-regex@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/super-regex/-/super-regex-0.2.0.tgz#dc1e071e55cdcf56930eb6271f73653a655b2642" - integrity sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw== - dependencies: - clone-regexp "^3.0.0" - function-timeout "^0.1.0" - time-span "^5.1.0" - supports-color@8.1.1, supports-color@^8.0.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" @@ -22390,7 +18597,7 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^4, tar@^4.4.2: +tar@^4.4.2: version "4.4.19" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== @@ -22403,25 +18610,6 @@ tar@^4, tar@^4.4.2: safe-buffer "^5.2.1" yallist "^3.1.1" -tar@^6.1.11: - version "6.1.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" - integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^4.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tdigest@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" - integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA== - dependencies: - bintrees "1.0.2" - temp-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" @@ -22503,12 +18691,7 @@ throat@^6.0.1: resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== -throttleit@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" - integrity sha512-HtlTFeyYs1elDM2txiIGsdXHaq8kffVaZH/QEBRbo95zQqzlsBx5ELKhkPOZVad9OK9oxzwx6UrQN8Vfh/+yag== - -through2@^2.0.0, through2@^2.0.2, through2@^2.0.3, through2@^2.0.5: +through2@^2.0.0, through2@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -22516,14 +18699,6 @@ through2@^2.0.0, through2@^2.0.2, through2@^2.0.3, through2@^2.0.5: readable-stream "~2.3.6" xtend "~4.0.1" -through2@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" - integrity sha512-mLa8Bn2mZurjyomGKWRu3Bo2mvoQojFks9NvOK8H+k4kDJNkdEqG522KFZsEFBEl6rKkxTgFbE5+OPcgfvPEHA== - dependencies: - readable-stream "~1.1.9" - xtend "~2.1.1" - through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -22534,20 +18709,6 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -time-span@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/time-span/-/time-span-5.1.0.tgz#80c76cf5a0ca28e0842d3f10a4e99034ce94b90d" - integrity sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA== - dependencies: - convert-hrtime "^5.0.0" - -timeout-abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz#dd57ffca041652c03769904f8d95afd93fb95595" - integrity sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA== - dependencies: - retimer "^3.0.0" - timers-browserify@^1.0.1: version "1.4.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" @@ -22555,11 +18716,6 @@ timers-browserify@^1.0.1: dependencies: process "~0.11.0" -timestamp-nano@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/timestamp-nano/-/timestamp-nano-1.0.1.tgz#be6eb118719504fcc3c7c732d2c461d3dd87da63" - integrity sha512-4oGOVZWTu5sl89PtCDnhQBSt7/vL1zVEwAfxH1p49JhTosxzVQWYBYFRFZ8nJmo0G6f824iyP/44BFAwIoKvIA== - timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" @@ -22660,14 +18816,6 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -token-types@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/token-types/-/token-types-5.0.1.tgz#aa9d9e6b23c420a675e55413b180635b86a093b4" - integrity sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg== - dependencies: - "@tokenizer/token" "^0.3.0" - ieee754 "^1.2.1" - toml@^2.3.0: version "2.3.6" resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" @@ -22740,13 +18888,6 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== - dependencies: - utf8-byte-length "^1.0.1" - try-resolve@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/try-resolve/-/try-resolve-1.0.1.tgz#cfde6fabd72d63e5797cfaab873abbe8e700e912" @@ -23009,16 +19150,6 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.0.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - -type-fest@^2.13.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - type-graphql@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" @@ -23104,23 +19235,6 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== -uint8-varint@^1.0.1, uint8-varint@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.4.tgz#5ca6c71ccd432b5f5439310206f9ac6943a6887f" - integrity sha512-FHnaReHRIM7kHe/Ms0I2KGkuSY4o7ouhUJGJeiFEuYWGvBt4Y64+BJ3mV6DqmyYtYTZj4Pz8K/BmViSNFLRrVw== - dependencies: - byte-access "^1.0.0" - longbits "^1.1.0" - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -uint8arraylist@^2.0.0, uint8arraylist@^2.1.0, uint8arraylist@^2.1.1, uint8arraylist@^2.1.2, uint8arraylist@^2.3.1, uint8arraylist@^2.3.2, uint8arraylist@^2.3.3, uint8arraylist@^2.4.1, uint8arraylist@^2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.4.3.tgz#1148aa979b407d382e4eb8d9c8f2b4bf3f5910d5" - integrity sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow== - dependencies: - uint8arrays "^4.0.2" - uint8arrays@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" @@ -23128,13 +19242,6 @@ uint8arrays@^3.0.0: dependencies: multiformats "^9.4.2" -uint8arrays@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.3.tgz#43109c03c4c10d312e7f2e9f4d53e5cd2398c7fd" - integrity sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg== - dependencies: - multiformats "^11.0.0" - umd@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" @@ -23166,13 +19273,6 @@ underscore@^1.13.2, underscore@~1.13.2: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== -undici@^5.12.0: - version "5.21.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.21.0.tgz#b00dfc381f202565ab7f52023222ab862bb2494f" - integrity sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA== - dependencies: - busboy "^1.6.0" - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -23235,13 +19335,6 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" -unique-string@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" - integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== - dependencies: - crypto-random-string "^4.0.0" - unist-util-is@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" @@ -23349,45 +19442,11 @@ update-notifier@^5.0.1: semver-diff "^3.1.1" xdg-basedir "^4.0.0" -update-notifier@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" - integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== - dependencies: - boxen "^7.0.0" - chalk "^5.0.1" - configstore "^6.0.0" - has-yarn "^3.0.0" - import-lazy "^4.0.0" - is-ci "^3.0.1" - is-installed-globally "^0.4.0" - is-npm "^6.0.0" - is-yarn-global "^0.4.0" - latest-version "^7.0.0" - pupa "^3.1.0" - semver "^7.3.7" - semver-diff "^4.0.0" - xdg-basedir "^5.1.0" - update-section@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158" integrity sha512-BpRZMZpgXLuTiKeiu7kK0nIPwGdyrqrs6EDSaXtjD/aQ2T+qVo9a5hRC3HN3iJjCMxNT/VxoLGQ7E/OzE5ucnw== -upper-case-first@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" - integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== - dependencies: - tslib "^2.0.3" - -upper-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" - integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== - dependencies: - tslib "^2.0.3" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -23433,11 +19492,6 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -23564,18 +19618,6 @@ value-or-promise@1.0.12: resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== -varint-decoder@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/varint-decoder/-/varint-decoder-1.0.0.tgz#289dab7887ee58d0c7be3a3353abeab4ca60aa77" - integrity sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ== - dependencies: - varint "^5.0.0" - -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - varint@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" @@ -23917,13 +19959,6 @@ whatwg-url@^8.0.0, whatwg-url@^8.5.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" -wherearewe@^2.0.0, wherearewe@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wherearewe/-/wherearewe-2.0.1.tgz#37c97a7bf112dca8db34bfefb2f6c997af312bb8" - integrity sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw== - dependencies: - is-electron "^2.2.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -23984,7 +20019,7 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -wide-align@^1.1.0, wide-align@^1.1.2: +wide-align@^1.1.0: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -23998,13 +20033,6 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -widest-line@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" - integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== - dependencies: - string-width "^5.0.1" - word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -24223,21 +20251,12 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: +write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -24254,16 +20273,7 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -wrtc@^0.4.6: - version "0.4.7" - resolved "https://registry.yarnpkg.com/wrtc/-/wrtc-0.4.7.tgz#c61530cd662713e50bffe64b7a78673ce070426c" - integrity sha512-P6Hn7VT4lfSH49HxLHcHhDq+aFf/jd9dPY7lDHeFhZ22N3858EKuwm2jmnlPzpsRGEPaoF6XwkcxY5SYnt4f/g== - dependencies: - node-pre-gyp "^0.13.0" - optionalDependencies: - domexception "^1.0.1" - -ws@8.13.0, ws@^8.12.1, ws@^8.13.0, ws@^8.4.0, ws@^8.5.0: +ws@8.13.0, ws@^8.13.0: version "8.13.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== @@ -24273,21 +20283,11 @@ ws@8.13.0, ws@^8.12.1, ws@^8.13.0, ws@^8.4.0, ws@^8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@~8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== -xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" - integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== - xhr2@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.2.1.tgz#4e73adc4f9cfec9cbd2157f73efdce3a5f108a93" @@ -24298,19 +20298,6 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xml2js@^0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" @@ -24321,21 +20308,11 @@ xmlcreate@^2.0.4: resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== -xmlhttprequest-ssl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" - integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== - xmlhttprequest@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== -xsalsa20@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/xsalsa20/-/xsalsa20-1.2.0.tgz#e5a05cb26f8cef723f94a559102ed50c1b44c25c" - integrity sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w== - xss@^1.0.8: version "1.0.14" resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" @@ -24349,13 +20326,6 @@ xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ== - dependencies: - object-keys "~0.4.0" - y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" @@ -24449,7 +20419,7 @@ yargs@^15.1.0, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.1.1, yargs@^17.3.1, yargs@^17.4.0: +yargs@^17.1.1, yargs@^17.3.1: version "17.7.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== @@ -24485,11 +20455,6 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== - zen-observable-ts@^0.8.21: version "0.8.21" resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" From 1fbb94e217df63e7dc8ef5f066e737ea14085922 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 22:36:08 +0100 Subject: [PATCH 071/722] Cargo.lock --- Cargo.lock | 2962 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 2708 insertions(+), 254 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 488f0c073..18605ab79 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,6 +7,10 @@ name = "Inflector" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] [[package]] name = "ad4m" @@ -71,7 +75,7 @@ dependencies = [ "open 2.1.3", "opener", "portpicker", - "remove_dir_all 0.7.0", + "remove_dir_all", "reqwest", "serde", "serde_json", @@ -98,6 +102,61 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array 0.14.6", +] + +[[package]] +name = "aes" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "aes-kw" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c" +dependencies = [ + "aes", +] + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.8", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" version = "0.7.20" @@ -146,19 +205,39 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164" +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + [[package]] name = "ascii" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" +[[package]] +name = "ast_node" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70151a5226578411132d798aa248df45b30aa34aea2e580628870b4d87be717b" +dependencies = [ + "darling", + "pmutil", + "proc-macro2 1.0.56", + "quote 1.0.26", + "swc_macros_common", + "syn 1.0.103", +] + [[package]] name = "async-attributes" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ - "quote", + "quote 1.0.26", "syn 1.0.103", ] @@ -173,6 +252,20 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + [[package]] name = "async-executor" version = "1.5.0" @@ -284,6 +377,17 @@ version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" +[[package]] +name = "async-trait" +version = "0.1.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.13", +] + [[package]] name = "async-tungstenite" version = "0.16.1" @@ -366,7 +470,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi", ] @@ -392,12 +496,49 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + [[package]] name = "base64" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +dependencies = [ + "outref", + "vsimd", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "better_scoped_tls" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73e8ecdec39e98aa3b19e8cd0b8ed8f77ccb86a6b0b2dc7cd86d105438a2123" +dependencies = [ + "scoped-tls", +] + [[package]] name = "bincode" version = "1.3.3" @@ -419,8 +560,8 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b04ce3d2372d05d1ef4ea3fdf427da6ae3c17ca06d688a107b5344836276bc3" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -436,7 +577,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array", + "generic-array 0.14.6", ] [[package]] @@ -445,7 +586,22 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ - "generic-array", + "generic-array 0.14.6", +] + +[[package]] +name = "block-modes" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e2211b0817f061502a8dd9f11a37e879e79763e3c698d2418cf824d8cb2f21e" + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array 0.14.6", ] [[package]] @@ -496,9 +652,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" [[package]] name = "bytemuck" @@ -524,6 +680,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" +[[package]] +name = "cache_control" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee" + [[package]] name = "cairo-rs" version = "0.15.12" @@ -558,6 +720,15 @@ dependencies = [ "toml", ] +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + [[package]] name = "cc" version = "1.0.77" @@ -606,9 +777,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" dependencies = [ "iana-time-zone", "js-sys", @@ -620,16 +791,26 @@ dependencies = [ "winapi", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clap" -version = "4.0.26" +version = "4.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2148adefda54e14492fb9bddcc600b4344c5d1a3123bd666dcb939c6f0e0e57e" +checksum = "ce38afc168d8665cfc75c7b1dd9672e50716a137f433f070991619744a67342a" dependencies = [ - "atty", "bitflags", "clap_derive", "clap_lex", + "is-terminal", "once_cell", "strsim", "termcolor", @@ -637,14 +818,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.0.21" +version = "4.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644" dependencies = [ "heck 0.4.0", "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -765,6 +946,22 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "console_static_text" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4be93df536dfbcbd39ff7c129635da089901116b88bfc29ec1acb9b56f8ff35" +dependencies = [ + "unicode-width", + "vte", +] + +[[package]] +name = "const-oid" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" + [[package]] name = "convert_case" version = "0.4.0" @@ -898,13 +1095,26 @@ dependencies = [ "winapi", ] +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array 0.14.6", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array", + "generic-array 0.14.6", + "rand_core 0.6.4", "typenum", ] @@ -919,8 +1129,8 @@ dependencies = [ "itoa 0.4.8", "matches", "phf 0.8.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "smallvec", "syn 1.0.103", ] @@ -931,7 +1141,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" dependencies = [ - "quote", + "quote 1.0.26", "syn 1.0.103", ] @@ -941,16 +1151,52 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ - "quote", + "quote 1.0.26", "syn 1.0.103", ] +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + [[package]] name = "cty" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" +[[package]] +name = "curve25519-dalek" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" +dependencies = [ + "byteorder", + "digest 0.8.1", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek" +version = "4.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585" +dependencies = [ + "cfg-if", + "fiat-crypto", + "packed_simd_2", + "platforms", + "subtle", + "zeroize", +] + [[package]] name = "cxx" version = "1.0.82" @@ -972,8 +1218,8 @@ dependencies = [ "cc", "codespan-reporting", "once_cell", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "scratch", "syn 1.0.103", ] @@ -990,8 +1236,8 @@ version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -1018,8 +1264,8 @@ dependencies = [ "darling", "graphql-parser 0.3.0", "lazy_static", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "strsim", "syn 1.0.103", ] @@ -1052,8 +1298,8 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ "fnv", "ident_case", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "strsim", "syn 1.0.103", ] @@ -1065,16 +1311,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core", - "quote", + "quote 1.0.26", "syn 1.0.103", ] +[[package]] +name = "dashmap" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" +dependencies = [ + "cfg-if", + "hashbrown", + "lock_api", + "once_cell", + "parking_lot_core 0.9.4", +] + [[package]] name = "data-encoding" version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +[[package]] +name = "data-url" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5" + [[package]] name = "dbus" version = "0.9.6" @@ -1086,6 +1351,71 @@ dependencies = [ "winapi", ] +[[package]] +name = "deno_ast" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08341e0ed5b816e24b6582054b37707c8686de5598fa3004dc555131c993308" +dependencies = [ + "anyhow", + "base64 0.13.1", + "data-url", + "dprint-swc-ext", + "serde", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_codegen", + "swc_ecma_codegen_macros", + "swc_ecma_loader", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_transforms_proposal", + "swc_ecma_transforms_react", + "swc_ecma_transforms_typescript", + "swc_ecma_utils", + "swc_ecma_visit", + "text_lines", + "url", +] + +[[package]] +name = "deno_broadcast_channel" +version = "0.91.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02ff07549d23525aa3d6d34db940c9558189932ee463d83655057cf55face32" +dependencies = [ + "async-trait", + "deno_core", + "tokio", + "uuid 1.3.0", +] + +[[package]] +name = "deno_cache" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48819e1571a41ad74d13c9f916725e44b99ce413f14c2bdf90232880ded84fe" +dependencies = [ + "async-trait", + "deno_core", + "rusqlite", + "serde", + "sha2", + "tokio", +] + +[[package]] +name = "deno_console" +version = "0.97.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "966d617116a8de05342956cfe09ece89d830e4cc123aa1e55907d648346d0c8f" +dependencies = [ + "deno_core", +] + [[package]] name = "deno_core" version = "0.179.0" @@ -1112,57 +1442,443 @@ dependencies = [ ] [[package]] -name = "deno_ops" -version = "0.57.0" +name = "deno_crypto" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04610f07342fbb33a2b7ea7aa16a95ab71adb13a0ce858a8d1a1414660a83e3e" +checksum = "1daf156a53364ea0196dac48f1b6277968ffec7e251db4d04da96d12742fb429" dependencies = [ + "aes", + "aes-gcm", + "aes-kw", + "base64 0.13.1", + "block-modes", + "cbc", + "const-oid", + "ctr", + "curve25519-dalek 2.1.3", + "deno_core", + "deno_web", + "elliptic-curve", + "num-traits", "once_cell", - "pmutil", - "proc-macro-crate", - "proc-macro2", - "quote", - "regex", - "syn 1.0.103", + "p256", + "p384", + "rand 0.8.5", + "ring", + "rsa", + "sec1", + "serde", + "serde_bytes", + "sha1", + "sha2", + "signature", + "spki", + "tokio", + "uuid 1.3.0", + "x25519-dalek", ] [[package]] -name = "derivative" -version = "2.2.0" +name = "deno_fetch" +version = "0.121.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +checksum = "060aa125cf5ad9bfa922e0fc24970037b898ca42f75cb9aecfda5f8f3380f8b4" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.103", + "bytes", + "data-url", + "deno_core", + "deno_tls", + "dyn-clone", + "http", + "reqwest", + "serde", + "tokio", + "tokio-stream", + "tokio-util", ] [[package]] -name = "derive_more" -version = "0.99.17" +name = "deno_ffi" +version = "0.84.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "f738a63f44ef92a0128b5e3fdad8367432c86db2473e8d84e67e5c997f687ff6" dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn 1.0.103", + "deno_core", + "dlopen", + "dynasmrt", + "libffi", + "serde", + "serde-value", + "serde_json", + "tokio", + "winapi", ] [[package]] -name = "destructure_traitobject" -version = "0.2.0" +name = "deno_flash" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" +checksum = "7680b86dcf0cc24d895261c14bc9dafc8cd066d460515566f4aec66305f28dfa" +dependencies = [ + "deno_core", + "deno_tls", + "deno_websocket", + "http", + "httparse", + "libc", + "log", + "mio 0.8.5", + "rustls", + "rustls-pemfile", + "serde", + "socket2", + "tokio", +] [[package]] -name = "digest" -version = "0.9.0" +name = "deno_fs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52b18a1b3bb1f4762d62b2ec366b672549305b550ce6aa4cf42b2c2d0cc616a1" +dependencies = [ + "deno_core", + "deno_crypto", + "deno_io", + "filetime", + "fs3", + "libc", + "log", + "nix 0.24.2", + "serde", + "tokio", + "winapi", +] + +[[package]] +name = "deno_http" +version = "0.92.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9c1eb9a4b3ebafb4aa96ea719adad52c620a465204528ccc7000951526b6e9e" +dependencies = [ + "async-compression", + "base64 0.13.1", + "brotli", + "bytes", + "cache_control", + "deno_core", + "deno_websocket", + "flate2", + "fly-accept-encoding", + "hyper", + "mime", + "percent-encoding", + "phf 0.10.1", + "pin-project", + "ring", + "serde", + "tokio", + "tokio-util", +] + +[[package]] +name = "deno_io" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830342535b39cd223cad825709a20dde24736aa700ba628551e1c6efb57c9589" +dependencies = [ + "deno_core", + "nix 0.24.2", + "once_cell", + "tokio", + "winapi", +] + +[[package]] +name = "deno_kv" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33efdd7657e9eddfd465169855352f8e11ed82ec4b1034c05c326d1ef869b45" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.13.1", + "deno_core", + "hex", + "num-bigint", + "rusqlite", + "serde", +] + +[[package]] +name = "deno_napi" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "606e57727e54da7f38607034543c4101ddfd23ff34c5ada485a24496c1f70ee5" +dependencies = [ + "deno_core", + "libloading", +] + +[[package]] +name = "deno_net" +version = "0.89.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d350f67d8c8e8df3471fd73c190adddbcc5e0f2786dc4144974225fe111b2490" +dependencies = [ + "deno_core", + "deno_tls", + "log", + "serde", + "socket2", + "tokio", + "trust-dns-proto", + "trust-dns-resolver", +] + +[[package]] +name = "deno_node" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffd2289db1e0b2719718718a0f30087c6c46f605732d67b8e9bcaada956eb643" +dependencies = [ + "aes", + "cbc", + "deno_core", + "digest 0.10.6", + "ecb", + "hex", + "idna 0.3.0", + "indexmap", + "libz-sys", + "md-5", + "md4", + "num-bigint", + "num-integer", + "num-traits", + "once_cell", + "path-clean", + "pbkdf2", + "rand 0.8.5", + "regex", + "ripemd", + "rsa", + "serde", + "sha-1 0.10.0", + "sha2", + "sha3", + "signature", + "tokio", + "typenum", +] + +[[package]] +name = "deno_ops" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04610f07342fbb33a2b7ea7aa16a95ab71adb13a0ce858a8d1a1414660a83e3e" +dependencies = [ + "once_cell", + "pmutil", + "proc-macro-crate", + "proc-macro2 1.0.56", + "quote 1.0.26", + "regex", + "syn 1.0.103", +] + +[[package]] +name = "deno_runtime" +version = "0.105.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd7a70130370fa4afe0ab1d70753e8479cedefdaf7695d567e16124527e28907" +dependencies = [ + "atty", + "console_static_text", + "deno_ast", + "deno_broadcast_channel", + "deno_cache", + "deno_console", + "deno_core", + "deno_crypto", + "deno_fetch", + "deno_ffi", + "deno_flash", + "deno_fs", + "deno_http", + "deno_io", + "deno_kv", + "deno_napi", + "deno_net", + "deno_node", + "deno_tls", + "deno_url", + "deno_web", + "deno_webidl", + "deno_websocket", + "deno_webstorage", + "dlopen", + "encoding_rs", + "filetime", + "fs3", + "fwdansi", + "http", + "hyper", + "libc", + "log", + "netif", + "nix 0.24.2", + "notify", + "ntapi 0.4.0", + "once_cell", + "regex", + "ring", + "serde", + "signal-hook-registry", + "termcolor", + "tokio", + "uuid 1.3.0", + "winapi", + "winres", +] + +[[package]] +name = "deno_tls" +version = "0.84.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "934d24d9b79e9fdd69cbb398a2d2353c7e8086943fca03b44e372024afcfe516" +dependencies = [ + "deno_core", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-pemfile", + "serde", + "webpki", + "webpki-roots", +] + +[[package]] +name = "deno_url" +version = "0.97.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d08e96518d7a8367e6cce39b8e82ad48fe45fab4b7e86d3d5f4a169395b6a41" +dependencies = [ + "deno_core", + "serde", + "serde_repr", + "urlpattern", +] + +[[package]] +name = "deno_web" +version = "0.128.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93c96108a7dfe315199418054cbac88fc19536d36c6b7a79c69b02ac5aa021f4" +dependencies = [ + "async-trait", + "base64-simd", + "deno_core", + "encoding_rs", + "flate2", + "serde", + "tokio", + "uuid 1.3.0", +] + +[[package]] +name = "deno_webidl" +version = "0.97.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "997fc11d02e5031dd79abc3b6b670931d8b089be66840bd5de818f13bdf4a5a6" +dependencies = [ + "deno_core", +] + +[[package]] +name = "deno_websocket" +version = "0.102.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1d51a45330c2418c14d7dbc5b0a3c863077ce2435deb2208b3da49c04efb17" +dependencies = [ + "deno_core", + "deno_tls", + "http", + "hyper", + "serde", + "tokio", + "tokio-rustls", + "tokio-tungstenite", +] + +[[package]] +name = "deno_webstorage" +version = "0.92.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e474fb2f4053200e201966a4e5d72e1b4fbd0735b21e581bf31f175d7cd05f5" +dependencies = [ + "deno_core", + "deno_web", + "rusqlite", + "serde", +] + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2 1.0.56", + "quote 1.0.26", + "rustc_version 0.4.0", + "syn 1.0.103", +] + +[[package]] +name = "destructure_traitobject" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" + +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.4", +] + +[[package]] +name = "digest" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array", + "generic-array 0.14.6", ] [[package]] @@ -1172,7 +1888,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer 0.10.3", + "const-oid", "crypto-common", + "subtle", ] [[package]] @@ -1231,6 +1949,45 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[package]] +name = "dlopen" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e80ad39f814a9abe68583cd50a2d45c8a67561c3361ab8da240587dda80937" +dependencies = [ + "dlopen_derive", + "lazy_static", + "libc", + "winapi", +] + +[[package]] +name = "dlopen_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f236d9e1b1fbd81cea0f9cbdc8dcc7e8ebcd80e6659cd7cb2ad5f6c05946c581" +dependencies = [ + "libc", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "dprint-swc-ext" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "008b6061551bcf644454469e6506c32bb23b765df93d608bf7a8e2494f82fcb3" +dependencies = [ + "bumpalo", + "num-bigint", + "rustc-hash", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "text_lines", +] + [[package]] name = "dtoa" version = "0.4.8" @@ -1252,12 +2009,87 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c" +[[package]] +name = "dyn-clone" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" + +[[package]] +name = "dynasm" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add9a102807b524ec050363f09e06f1504214b0e1c7797f64261c891022dce8b" +dependencies = [ + "bitflags", + "byteorder", + "lazy_static", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "dynasmrt" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fba5a42bd76a17cad4bfa00de168ee1cbfa06a5e8ce992ae880218c05641a9" +dependencies = [ + "byteorder", + "dynasm", + "memmap2", +] + +[[package]] +name = "ecb" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17fd84ba81a904351ee27bbccb4aa2461e1cca04176a63ab4f8ca087757681a2" +dependencies = [ + "cipher", +] + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der", + "elliptic-curve", + "rfc6979", + "signature", +] + [[package]] name = "either" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct", + "crypto-bigint", + "der", + "digest 0.10.6", + "ff", + "generic-array 0.14.6", + "group", + "hkdf", + "pem-rfc7468", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + [[package]] name = "embed_plist" version = "1.2.2" @@ -1279,6 +2111,30 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" +[[package]] +name = "enum-as-inner" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" +dependencies = [ + "heck 0.4.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "enum_kind" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9895954c6ec59d897ed28a64815f2ceb57653fcaaebd317f2edc78b74f5495b6" +dependencies = [ + "pmutil", + "proc-macro2 1.0.56", + "swc_macros_common", + "syn 1.0.103", +] + [[package]] name = "errno" version = "0.2.8" @@ -1290,6 +2146,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "errno" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.45.0", +] + [[package]] name = "errno-dragonfly" version = "0.1.2" @@ -1332,12 +2199,24 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", "synstructure", ] +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + [[package]] name = "fastrand" version = "1.8.0" @@ -1354,10 +2233,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb21c69b9fea5e15dbc1049e4b77145dd0ba1c84019c488102de0dc4ea4b0a27" dependencies = [ "cfg-if", - "rustix", + "rustix 0.36.2", "windows-sys 0.42.0", ] +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" + [[package]] name = "field-offset" version = "0.3.4" @@ -1376,18 +2271,29 @@ checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "windows-sys 0.42.0", ] [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ "crc32fast", - "miniz_oxide 0.6.2", + "miniz_oxide 0.5.4", +] + +[[package]] +name = "fly-accept-encoding" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3afa7516fdcfd8e5e93a938f8fec857785ced190a1f62d842d1fe1ffbe22ba8" +dependencies = [ + "http", + "itertools", + "thiserror", ] [[package]] @@ -1420,6 +2326,38 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "from_variant" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d449976075322384507443937df2f1d5577afbf4282f12a5a66ef29fa3e6307" +dependencies = [ + "pmutil", + "proc-macro2 1.0.56", + "swc_macros_common", + "syn 1.0.103", +] + +[[package]] +name = "fs3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb17cf6ed704f72485332f6ab65257460c4f9f3083934cf402bf9f5b3b600a90" +dependencies = [ + "libc", + "rustc_version 0.2.3", + "winapi", +] + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + [[package]] name = "fslock" version = "0.1.8" @@ -1442,9 +2380,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -1457,9 +2395,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -1467,15 +2405,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-executor" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -1484,9 +2422,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-lite" @@ -1505,32 +2443,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.103", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.13", ] [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures-channel", "futures-core", @@ -1544,6 +2482,16 @@ dependencies = [ "slab", ] +[[package]] +name = "fwdansi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c1f5787fe85505d1f7777268db5103d80a7a374d2316a7ce262e57baf8f208" +dependencies = [ + "memchr", + "termcolor", +] + [[package]] name = "fxhash" version = "0.2.1" @@ -1638,6 +2586,15 @@ dependencies = [ "windows 0.32.0", ] +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + [[package]] name = "generic-array" version = "0.14.6" @@ -1670,6 +2627,16 @@ dependencies = [ "wasi 0.11.0+wasi-snapshot-preview1", ] +[[package]] +name = "ghash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +dependencies = [ + "opaque-debug", + "polyval", +] + [[package]] name = "gimli" version = "0.26.2" @@ -1736,8 +2703,8 @@ dependencies = [ "heck 0.4.0", "proc-macro-crate", "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -1861,8 +2828,8 @@ dependencies = [ "graphql-parser 0.2.3", "heck 0.3.3", "lazy_static", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "serde", "serde_json", "syn 1.0.103", @@ -1875,10 +2842,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e56b093bfda71de1da99758b036f4cc811fd2511c8a76f75680e9ffbd2bb4251" dependencies = [ "graphql_client_codegen", - "proc-macro2", + "proc-macro2 1.0.56", "syn 1.0.103", ] +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "gtk" version = "0.15.5" @@ -1929,8 +2907,8 @@ dependencies = [ "anyhow", "proc-macro-crate", "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -1957,30 +2935,83 @@ dependencies = [ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashlink" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] -name = "heck" -version = "0.3.3" +name = "hkdf" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" dependencies = [ - "unicode-segmentation", + "hmac", ] [[package]] -name = "heck" -version = "0.4.0" +name = "hmac" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.6", +] [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "hostname" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ "libc", + "match_cfg", + "winapi", ] [[package]] @@ -1992,16 +3023,16 @@ dependencies = [ "log", "mac", "markup5ever", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", @@ -2067,6 +3098,19 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http", + "hyper", + "rustls", + "tokio", + "tokio-rustls", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -2120,6 +3164,17 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "idna" version = "0.3.0" @@ -2175,6 +3230,7 @@ checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown", + "serde", ] [[package]] @@ -2186,6 +3242,36 @@ dependencies = [ "cfb", ] +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array 0.14.6", +] + [[package]] name = "instant" version = "0.1.12" @@ -2205,12 +3291,58 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "ipconfig" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" +dependencies = [ + "socket2", + "widestring", + "winapi", + "winreg", +] + [[package]] name = "ipnet" version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745" +[[package]] +name = "is-macro" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7d079e129b77477a49c5c4f1cfe9ce6c2c909ef52520693e8e811a714c7b20" +dependencies = [ + "Inflector", + "pmutil", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "is-terminal" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8" +dependencies = [ + "hermit-abi 0.3.1", + "io-lifetimes", + "rustix 0.37.7", + "windows-sys 0.45.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.8" @@ -2297,6 +3429,35 @@ dependencies = [ "treediff", ] +[[package]] +name = "keccak" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kqueue" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" +dependencies = [ + "bitflags", + "libc", +] + [[package]] name = "kuchiki" version = "0.8.1" @@ -2323,6 +3484,82 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin", +] + +[[package]] +name = "lexical" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" +dependencies = [ + "lexical-core", +] + +[[package]] +name = "lexical-core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" +dependencies = [ + "lexical-parse-integer", + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-parse-integer" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" +dependencies = [ + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-util" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "lexical-write-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" +dependencies = [ + "lexical-util", + "lexical-write-integer", + "static_assertions", +] + +[[package]] +name = "lexical-write-integer" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" +dependencies = [ + "lexical-util", + "static_assertions", +] [[package]] name = "libappindicator" @@ -2363,6 +3600,25 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "libffi" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" +dependencies = [ + "libc", + "libffi-sys", +] + +[[package]] +name = "libffi-sys" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc65067b78c0fc069771e8b9a9e02df71e08858bec92c1f101377c67b9dca7c7" +dependencies = [ + "cc", +] + [[package]] name = "libloading" version = "0.7.4" @@ -2373,6 +3629,41 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" + +[[package]] +name = "libm" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" + +[[package]] +name = "libsqlite3-sys" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "line-wrap" version = "0.1.1" @@ -2403,6 +3694,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb68f22743a3fb35785f1e7f844ca5a3de2dde5bd0c0ef5b372065814699b121" +[[package]] +name = "linux-raw-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" + [[package]] name = "localtunnel-client" version = "0.0.12" @@ -2484,6 +3781,15 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + [[package]] name = "mac" version = "0.1.1" @@ -2532,6 +3838,12 @@ dependencies = [ "tendril", ] +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + [[package]] name = "matchers" version = "0.1.0" @@ -2547,12 +3859,39 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +[[package]] +name = "md-5" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +dependencies = [ + "digest 0.10.6", +] + +[[package]] +name = "md4" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da5ac363534dce5fabf69949225e174fbf111a498bf0ff794c8ea1fba9f3dda" +dependencies = [ + "digest 0.10.6", +] + [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.6.5" @@ -2604,7 +3943,7 @@ dependencies = [ "libc", "log", "miow", - "ntapi", + "ntapi 0.3.7", "winapi", ] @@ -2675,6 +4014,16 @@ dependencies = [ "jni-sys", ] +[[package]] +name = "netif" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29a01b9f018d6b7b277fef6c79fdbd9bf17bb2d1e298238055cafab49baa5ee" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "new_debug_unreachable" version = "1.0.4" @@ -2712,14 +4061,33 @@ dependencies = [ "bitflags", "cfg-if", "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "notify" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2c66da08abae1c024c01d635253e402341b4060a12e99b31c7594063bf490a" +dependencies = [ + "bitflags", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "mio 0.8.5", + "walkdir", + "winapi", ] -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - [[package]] name = "notify-rust" version = "4.5.10" @@ -2740,6 +4108,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "ntapi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc51db7b362b205941f71232e56c625156eb9a929f8cf74a428fd5bc094a4afc" +dependencies = [ + "winapi", +] + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -2760,6 +4137,24 @@ dependencies = [ "num-integer", "num-traits", "rand 0.8.5", + "serde", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905" +dependencies = [ + "byteorder", + "lazy_static", + "libm 0.2.6", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", ] [[package]] @@ -2772,6 +4167,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.1" @@ -2790,6 +4196,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm 0.2.6", ] [[package]] @@ -2798,7 +4205,7 @@ version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", ] @@ -2818,8 +4225,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" dependencies = [ "proc-macro-crate", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -2956,8 +4363,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -3002,12 +4409,12 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.1.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6a252f1f8c11e84b3ab59d7a488e48e4478a93937e027076638c49536204639" +checksum = "2c92f2b54f081d635c77e7120862d48db8e91f7f21cef23ab1b4fe9971c59f55" dependencies = [ "libc", - "windows-sys 0.42.0", + "winapi", ] [[package]] @@ -3016,12 +4423,50 @@ version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +[[package]] +name = "outref" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" + [[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "p256" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" +dependencies = [ + "ecdsa", + "elliptic-curve", + "sha2", +] + +[[package]] +name = "p384" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" +dependencies = [ + "ecdsa", + "elliptic-curve", + "sha2", +] + +[[package]] +name = "packed_simd_2" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" +dependencies = [ + "cfg-if", + "libm 0.1.4", +] + [[package]] name = "pango" version = "0.15.10" @@ -3083,7 +4528,7 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "winapi", ] @@ -3096,7 +4541,7 @@ checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "windows-sys 0.42.0", ] @@ -3107,12 +4552,37 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" +[[package]] +name = "path-clean" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecba01bf2678719532c5e3059e0b5f0811273d94b397088b82e3bd0a78c78fdd" + [[package]] name = "pathdiff" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +[[package]] +name = "pbkdf2" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" +dependencies = [ + "digest 0.10.6", + "hmac", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.2.0" @@ -3190,8 +4660,8 @@ dependencies = [ "phf_generator 0.8.0", "phf_shared 0.8.0", "proc-macro-hack", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -3204,8 +4674,8 @@ dependencies = [ "phf_generator 0.10.0", "phf_shared 0.10.0", "proc-macro-hack", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -3242,8 +4712,8 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -3259,19 +4729,47 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +dependencies = [ + "der", + "pkcs8", + "spki", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +[[package]] +name = "platforms" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" + [[package]] name = "plist" version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" dependencies = [ - "base64", + "base64 0.13.1", "indexmap", "line-wrap", "serde", @@ -3285,8 +4783,8 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -3316,6 +4814,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "polyval" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + [[package]] name = "portpicker" version = "0.1.1" @@ -3355,8 +4865,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", "version_check", ] @@ -3367,8 +4877,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "version_check", ] @@ -3378,6 +4888,15 @@ version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + [[package]] name = "proc-macro2" version = "1.0.56" @@ -3387,6 +4906,21 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quick-xml" version = "0.23.1" @@ -3396,13 +4930,22 @@ dependencies = [ "memchr", ] +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + [[package]] name = "quote" version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ - "proc-macro2", + "proc-macro2 1.0.56", ] [[package]] @@ -3537,6 +5080,15 @@ dependencies = [ "bitflags", ] +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + [[package]] name = "redox_users" version = "0.4.3" @@ -3544,7 +5096,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom 0.2.8", - "redox_syscall", + "redox_syscall 0.2.16", "thiserror", ] @@ -3574,15 +5126,6 @@ version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - [[package]] name = "remove_dir_all" version = "0.7.0" @@ -3602,7 +5145,8 @@ version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" dependencies = [ - "base64", + "async-compression", + "base64 0.13.1", "bytes", "encoding_rs", "futures-core", @@ -3611,6 +5155,7 @@ dependencies = [ "http", "http-body", "hyper", + "hyper-rustls", "hyper-tls", "ipnet", "js-sys", @@ -3620,19 +5165,46 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-native-tls", + "tokio-rustls", + "tokio-socks", + "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "webpki-roots", "winreg", ] +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error", +] + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint", + "hmac", + "zeroize", +] + [[package]] name = "rfd" version = "0.10.0" @@ -3657,12 +5229,73 @@ dependencies = [ "windows 0.37.0", ] +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.6", +] + +[[package]] +name = "rsa" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "094052d5470cbcef561cb848a7209968c9f12dfa6d668f4bca048ac5de51099c" +dependencies = [ + "byteorder", + "digest 0.10.6", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "smallvec", + "subtle", + "zeroize", +] + +[[package]] +name = "rusqlite" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01e213bc3ecb39ac32e81e51ebe31fd888a940515173e3a18a35f8c6e896422a" +dependencies = [ + "bitflags", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "smallvec", +] + [[package]] name = "rust-executor" version = "0.1.0" dependencies = [ "deno_core", + "deno_runtime", "tokio", + "url", ] [[package]] @@ -3671,6 +5304,12 @@ version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc_version" version = "0.2.3" @@ -3705,13 +5344,60 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "203974af07ea769452490ee8de3e5947971efc3a090dca8a779dd432d3fa46a7" dependencies = [ "bitflags", - "errno", + "errno 0.2.8", "io-lifetimes", "libc", - "linux-raw-sys", + "linux-raw-sys 0.1.2", "windows-sys 0.42.0", ] +[[package]] +name = "rustix" +version = "0.37.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d" +dependencies = [ + "bitflags", + "errno 0.3.0", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.1", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustls" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +dependencies = [ + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +dependencies = [ + "base64 0.21.0", +] + [[package]] name = "rustversion" version = "1.0.9" @@ -3790,6 +5476,30 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct", + "der", + "generic-array 0.14.6", + "pkcs8", + "subtle", + "zeroize", +] + [[package]] name = "security-framework" version = "2.7.0" @@ -3909,8 +5619,8 @@ version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 2.0.13", ] @@ -3932,8 +5642,8 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -3981,8 +5691,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ "darling", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -4015,8 +5725,8 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -4043,6 +5753,28 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha-1" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + [[package]] name = "sha2" version = "0.10.6" @@ -4054,6 +5786,16 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "sha3" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +dependencies = [ + "digest 0.10.6", + "keccak", +] + [[package]] name = "sharded-slab" version = "0.1.4" @@ -4103,6 +5845,16 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.6", + "rand_core 0.6.4", +] + [[package]] name = "siphasher" version = "0.3.10" @@ -4124,6 +5876,17 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +[[package]] +name = "smartstring" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" +dependencies = [ + "autocfg", + "static_assertions", + "version_check", +] + [[package]] name = "socket2" version = "0.4.9" @@ -4177,78 +5940,484 @@ dependencies = [ "url", ] +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + [[package]] name = "state" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.1", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2 1.0.56", + "quote 1.0.26", +] + +[[package]] +name = "string_enum" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91f42363e5ca94ea6f3faee9e3b5e1a4047535ae323f5c0579385fb2ae95874e" +dependencies = [ + "pmutil", + "proc-macro2 1.0.56", + "quote 1.0.26", + "swc_macros_common", + "syn 1.0.103", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +dependencies = [ + "heck 0.3.3", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "swc_atoms" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ebef84c2948cd0d1ba25acbf1b4bd9d80ab6f057efdbe35d8449b8d54699401" +dependencies = [ + "once_cell", + "rustc-hash", + "serde", + "string_cache", + "string_cache_codegen", + "triomphe", +] + +[[package]] +name = "swc_common" +version = "0.29.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5005cd73617e18592faa31298225b26f1c407b84a681d67efb735c3d3458e101" +dependencies = [ + "ahash", + "ast_node", + "better_scoped_tls", + "cfg-if", + "either", + "from_variant", + "new_debug_unreachable", + "num-bigint", + "once_cell", + "rustc-hash", + "serde", + "siphasher", + "sourcemap", + "string_cache", + "swc_atoms", + "swc_eq_ignore_macros", + "swc_visit", + "tracing", + "unicode-width", + "url", +] + +[[package]] +name = "swc_config" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89c8fc2c12bb1634c7c32fc3c9b6b963ad8f034cc62c4ecddcf215dc4f6f959d" +dependencies = [ + "indexmap", + "serde", + "serde_json", + "swc_config_macro", +] + +[[package]] +name = "swc_config_macro" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dadb9998d4f5fc36ef558ed5a092579441579ee8c6fcce84a5228cca9df4004" +dependencies = [ + "pmutil", + "proc-macro2 1.0.56", + "quote 1.0.26", + "swc_macros_common", + "syn 1.0.103", +] + +[[package]] +name = "swc_ecma_ast" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dbfdbe05dde274473a6030dcf5e52e579516aea761d25d7a8d128f2ab597f09" +dependencies = [ + "bitflags", + "is-macro", + "num-bigint", + "scoped-tls", + "serde", + "string_enum", + "swc_atoms", + "swc_common", + "unicode-id", +] + +[[package]] +name = "swc_ecma_codegen" +version = "0.135.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78d196e6979af0cbb91084361ca006db292a6374f75ec04cbb55306051cc4f50" +dependencies = [ + "memchr", + "num-bigint", + "once_cell", + "rustc-hash", + "serde", + "sourcemap", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_codegen_macros", + "tracing", +] + +[[package]] +name = "swc_ecma_codegen_macros" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0159c99f81f52e48fe692ef7af1b0990b45d3006b14c6629be0b1ffee1b23aea" +dependencies = [ + "pmutil", + "proc-macro2 1.0.56", + "quote 1.0.26", + "swc_macros_common", + "syn 1.0.103", +] + +[[package]] +name = "swc_ecma_loader" +version = "0.41.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681c1fbb762c82700a5bd23dc39bad892a287ea9fb2121cf56e77f1ddc89afeb" +dependencies = [ + "ahash", + "anyhow", + "pathdiff", + "serde", + "swc_common", + "tracing", +] + +[[package]] +name = "swc_ecma_parser" +version = "0.130.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "042435aaeb71c4416cde440323ac9fa2c24121c2ec150f0cb79999c2e6ceffaa" +dependencies = [ + "either", + "enum_kind", + "lexical", + "num-bigint", + "serde", + "smallvec", + "smartstring", + "stacker", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "tracing", + "typed-arena", +] + +[[package]] +name = "swc_ecma_transforms_base" +version = "0.122.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd4141092b17cd85eefc224b035b717e03c910b9fd58e4e637ffd05236d7e13b" +dependencies = [ + "better_scoped_tls", + "bitflags", + "once_cell", + "phf 0.10.1", + "rustc-hash", + "serde", + "smallvec", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_utils", + "swc_ecma_visit", + "tracing", +] + +[[package]] +name = "swc_ecma_transforms_classes" +version = "0.111.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5022c592f0ae17f4dc42031e1c4c60b7e6d2d8d1c2428b986759a92ea853801" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebf907935ec5492256b523ae7935a824d9fdc0368dcadc41375bad0dca91cd8b" +dependencies = [ + "pmutil", + "proc-macro2 1.0.56", + "quote 1.0.26", + "swc_macros_common", + "syn 1.0.103", +] + +[[package]] +name = "swc_ecma_transforms_proposal" +version = "0.156.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4015c3ab090f27eee0834d45bdcf9666dc6329ed06845d1882cdfe6f4826fca" +dependencies = [ + "either", + "serde", + "smallvec", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_react" +version = "0.167.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db1c7801b1d7741ab335441dd301ddcc4183fb250d5e6efaab33b03def268c06" +dependencies = [ + "ahash", + "base64 0.13.1", + "dashmap", + "indexmap", + "once_cell", + "regex", + "serde", + "sha-1 0.10.0", + "string_enum", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_typescript" +version = "0.171.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142e8fb5ebe870bc51b3a95c0214af9112d3475b7cd5be4f13b87f3be664841a" +dependencies = [ + "serde", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_react", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_utils" +version = "0.113.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c44885603c09926118708f4352e04242c2482bc16eb51ad7beb8ad4cf5f7bb6" dependencies = [ - "loom", + "indexmap", + "num_cpus", + "once_cell", + "rustc-hash", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_visit", + "tracing", + "unicode-id", ] [[package]] -name = "str-buf" -version = "1.0.6" +name = "swc_ecma_visit" +version = "0.86.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" +checksum = "147cf9137da6fe2704a5defd29a1cde849961978f8c92911e6790d50df475fef" +dependencies = [ + "num-bigint", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_visit", + "tracing", +] [[package]] -name = "string_cache" -version = "0.8.4" +name = "swc_eq_ignore_macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" +checksum = "0c20468634668c2bbab581947bb8c75c97158d5a6959f4ba33df20983b20b4f6" dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot 0.12.1", - "phf_shared 0.10.0", - "precomputed-hash", - "serde", + "pmutil", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", ] [[package]] -name = "string_cache_codegen" -version = "0.5.2" +name = "swc_macros_common" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +checksum = "3e582c3e3c2269238524923781df5be49e011dbe29cf7683a2215d600a562ea6" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro2", - "quote", + "pmutil", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", ] [[package]] -name = "strsim" -version = "0.10.0" +name = "swc_visit" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "d1d5999f23421c8e21a0f2bc53a0b9e8244f3b421de89471561af2fbe40b9cca" +dependencies = [ + "either", + "swc_visit_macros", +] [[package]] -name = "strum" -version = "0.22.0" +name = "swc_visit_macros" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +checksum = "ebeed7eb0f545f48ad30f5aab314e5208b735bcea1d1464f26e20f06db904989" dependencies = [ - "strum_macros", + "Inflector", + "pmutil", + "proc-macro2 1.0.56", + "quote 1.0.26", + "swc_macros_common", + "syn 1.0.103", ] [[package]] -name = "strum_macros" -version = "0.22.0" +name = "syn" +version = "0.15.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "syn 1.0.103", + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", ] [[package]] @@ -4257,8 +6426,8 @@ version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "unicode-ident", ] @@ -4268,8 +6437,8 @@ version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "unicode-ident", ] @@ -4279,10 +6448,10 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", - "unicode-xid", + "unicode-xid 0.2.4", ] [[package]] @@ -4317,7 +6486,7 @@ dependencies = [ "cfg-if", "core-foundation-sys", "libc", - "ntapi", + "ntapi 0.3.7", "once_cell", "rayon", "winapi", @@ -4391,7 +6560,7 @@ dependencies = [ "scopeguard", "serde", "unicode-segmentation", - "uuid 1.2.2", + "uuid 1.3.0", "windows 0.39.0", "windows-implement", "x11-dl", @@ -4455,7 +6624,7 @@ dependencies = [ "thiserror", "tokio", "url", - "uuid 1.2.2", + "uuid 1.3.0", "webkit2gtk", "webview2-com", "windows 0.39.0", @@ -4483,14 +6652,14 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251" dependencies = [ - "base64", + "base64 0.13.1", "brotli", "ico", "json-patch", "plist", "png", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "regex", "semver 1.0.14", "serde", @@ -4499,7 +6668,7 @@ dependencies = [ "tauri-utils", "thiserror", "time 0.3.17", - "uuid 1.2.2", + "uuid 1.3.0", "walkdir", ] @@ -4510,8 +6679,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075" dependencies = [ "heck 0.4.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", "tauri-codegen", "tauri-utils", @@ -4544,7 +6713,7 @@ dependencies = [ "serde_json", "tauri-utils", "thiserror", - "uuid 1.2.2", + "uuid 1.3.0", "webview2-com", "windows 0.39.0", ] @@ -4562,7 +6731,7 @@ dependencies = [ "raw-window-handle", "tauri-runtime", "tauri-utils", - "uuid 1.2.2", + "uuid 1.3.0", "webkit2gtk", "webview2-com", "windows 0.39.0", @@ -4585,8 +6754,8 @@ dependencies = [ "kuchiki", "memchr", "phf 0.10.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "semver 1.0.14", "serde", "serde_json", @@ -4610,16 +6779,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ "cfg-if", "fastrand", - "libc", - "redox_syscall", - "remove_dir_all 0.5.3", - "winapi", + "redox_syscall 0.3.5", + "rustix 0.37.7", + "windows-sys 0.45.0", ] [[package]] @@ -4642,6 +6810,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "text_lines" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd5828de7deaa782e1dd713006ae96b3bee32d3279b79eb67ecf8072c059bcf" +dependencies = [ + "serde", +] + [[package]] name = "thin-slice" version = "0.1.1" @@ -4650,21 +6827,21 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -4675,7 +6852,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fdfe0627923f7411a43ec9ec9c39c3a9b4151be313e0922042581fb6c9b717f" dependencies = [ "libc", - "redox_syscall", + "redox_syscall 0.2.16", "winapi", ] @@ -4743,13 +6920,14 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.27.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" +checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" dependencies = [ "autocfg", "bytes", "libc", + "memchr", "mio 0.8.5", "num_cpus", "parking_lot 0.12.1", @@ -4757,18 +6935,18 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.45.0", + "windows-sys 0.42.0", ] [[package]] name = "tokio-macros" -version = "2.0.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.13", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", ] [[package]] @@ -4781,6 +6959,56 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-socks" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0" +dependencies = [ + "either", + "futures-util", + "thiserror", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e80b39df6afcc12cdf752398ade96a6b9e99c903dfdc36e53ad10b9c366bca72" +dependencies = [ + "futures-util", + "log", + "rustls", + "tokio", + "tokio-rustls", + "tungstenite", + "webpki", + "webpki-roots", +] + [[package]] name = "tokio-util" version = "0.7.4" @@ -4828,8 +7056,8 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -4881,6 +7109,63 @@ dependencies = [ "serde_json", ] +[[package]] +name = "triomphe" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1ee9bd9239c339d714d657fac840c6d2a4f9c45f4f9ec7b0975113458be78db" +dependencies = [ + "serde", + "stable_deref_trait", +] + +[[package]] +name = "trust-dns-proto" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.2.3", + "ipnet", + "lazy_static", + "rand 0.8.5", + "serde", + "smallvec", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lazy_static", + "lru-cache", + "parking_lot 0.12.1", + "resolv-conf", + "serde", + "smallvec", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto", +] + [[package]] name = "try-lock" version = "0.2.3" @@ -4893,19 +7178,27 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" dependencies = [ - "base64", + "base64 0.13.1", "byteorder", "bytes", "http", "httparse", "log", "rand 0.8.5", - "sha-1", + "rustls", + "sha-1 0.9.8", "thiserror", "url", "utf-8", + "webpki", ] +[[package]] +name = "typed-arena" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0685c84d5d54d1c26f7d3eb96cd41550adb97baed141a761cf335d3d33bcd0ae" + [[package]] name = "typemap-ors" version = "1.0.0" @@ -4927,6 +7220,47 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + [[package]] name = "unicode-bidi" version = "0.3.8" @@ -4966,12 +7300,28 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + [[package]] name = "unicode-xid" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "universal-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +dependencies = [ + "crypto-common", + "subtle", +] + [[package]] name = "unreachable" version = "1.0.0" @@ -4990,6 +7340,12 @@ dependencies = [ "destructure_traitobject", ] +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "url" version = "2.3.1" @@ -4997,7 +7353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", - "idna", + "idna 0.3.0", "percent-encoding", "serde", ] @@ -5008,6 +7364,19 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" +[[package]] +name = "urlpattern" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609" +dependencies = [ + "derive_more", + "regex", + "serde", + "unic-ucd-ident", + "url", +] + [[package]] name = "utf-8" version = "0.7.6" @@ -5031,11 +7400,12 @@ dependencies = [ [[package]] name = "uuid" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" +checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" dependencies = [ "getrandom 0.2.8", + "serde", ] [[package]] @@ -5096,6 +7466,33 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + +[[package]] +name = "vte" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aae21c12ad2ec2d168c236f369c38ff332bc1134f7246350dca641437365045" +dependencies = [ + "arrayvec", + "utf8parse", + "vte_generate_state_changes", +] + +[[package]] +name = "vte_generate_state_changes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", +] + [[package]] name = "waker-fn" version = "1.1.0" @@ -5160,8 +7557,8 @@ dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", "wasm-bindgen-shared", ] @@ -5184,7 +7581,7 @@ version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ - "quote", + "quote 1.0.26", "wasm-bindgen-macro-support", ] @@ -5194,8 +7591,8 @@ version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", "wasm-bindgen-backend", "wasm-bindgen-shared", @@ -5264,6 +7661,25 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + [[package]] name = "webview2-com" version = "0.19.1" @@ -5282,8 +7698,8 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.56", + "quote 1.0.26", "syn 1.0.103", ] @@ -5322,6 +7738,12 @@ dependencies = [ "once_cell", ] +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + [[package]] name = "winapi" version = "0.3.9" @@ -5663,7 +8085,7 @@ version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3b4906cc7b3c5959893f3984bb60882ec94539eb14622077e6529f5b3d008ee" dependencies = [ - "base64", + "base64 0.13.1", "block", "cocoa", "core-graphics", @@ -5716,6 +8138,18 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "x25519-dalek" +version = "2.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95" +dependencies = [ + "curve25519-dalek 4.0.0-rc.2", + "rand_core 0.6.4", + "serde", + "zeroize", +] + [[package]] name = "xattr" version = "0.2.3" @@ -5739,3 +8173,23 @@ checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" dependencies = [ "linked-hash-map", ] + +[[package]] +name = "zeroize" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.13", +] From 71246dd3ab373a621139269810372ac37d1ae33d Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 23:14:56 +0100 Subject: [PATCH 072/722] Remove node-fetch from executor --- executor/package.json | 2 -- executor/src/core/agent/DIDs.ts | 2 +- .../Holochain/HolochainService.ts | 4 ++- yarn.lock | 25 +++++++++++++++++-- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/executor/package.json b/executor/package.json index 8eb5cdc5d..3a56ea7b8 100644 --- a/executor/package.json +++ b/executor/package.json @@ -55,7 +55,6 @@ "@types/lowdb": "^1.0.11", "@types/mocha": "*", "@types/node": "^18.0.0", - "@types/node-fetch": "^2.5.11", "@types/secp256k1": "^4.0.3", "@types/sha256": "^0.2.0", "@types/sinon": "*", @@ -95,7 +94,6 @@ "json-stable-stringify": "^1.0.1", "key-encoder": "^2.0.3", "lodash": "^4.17.21", - "node-fetch": "^2.6.1", "run-script-os": "^1.1.6", "sha256": "^0.2.0", "sha3": "^2.1.3", diff --git a/executor/src/core/agent/DIDs.ts b/executor/src/core/agent/DIDs.ts index 0bc5fbbd7..191b01b01 100644 --- a/executor/src/core/agent/DIDs.ts +++ b/executor/src/core/agent/DIDs.ts @@ -1,5 +1,5 @@ import path from 'path' -import fetch from 'node-fetch' +//import fetch from 'node-fetch' import { resolver } from '@transmute/did-key.js'; export class DIDResolver { diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index deeb33aed..859729d54 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -12,7 +12,7 @@ import { AsyncQueue } from './Queue' import { HolochainUnlockConfiguration } from '../../PerspectivismCore' import EntanglementProofController from '../../EntanglementProof' import AgentService from '../../agent/AgentService' -import fetch from "node-fetch"; +//import fetch from "node-fetch"; export const bootstrapUrl = "https://bootstrap.holo.host" export const kitsuneProxy = "kitsune-proxy://f3gH2VMkJ4qvZJOXx0ccL_Zo5n-s_CnBjSzAsEHHDCA/kitsune-quic/h/137.184.142.208/p/5788/--" @@ -198,7 +198,9 @@ export default class HolochainService { const res = await fetch(`https://github.com/perspect3vism/signing-service/releases/download/${signingServiceVersion}/signing.dna`); const fileStream = fs.createWriteStream(dest); await new Promise((resolve, reject) => { + // @ts-ignore res.body.pipe(fileStream); + // @ts-ignore res.body.on("error", reject); fileStream.on("finish", resolve); }); diff --git a/yarn.lock b/yarn.lock index b7156b9f4..a8fb7d0ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9545,6 +9545,13 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -14126,7 +14133,12 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-fetch@2, node-fetch@^2.5.11, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7, node-fetch@^2.6.8: +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@2, node-fetch@^2.5.11, node-fetch@^2.6.0, node-fetch@^2.6.6, node-fetch@^2.6.7: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== @@ -14140,7 +14152,16 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" -node-forge@^1, node-forge@^1.1.0, node-forge@^1.3.1: +node-fetch@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" + integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-forge@^1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== From 5d07095d7bcdd376353af9f3b4a16e41071b01dc Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 23:33:25 +0100 Subject: [PATCH 073/722] Last Deno bundle fixes --- executor/scripts/bundle.js | 2 +- executor/src/core/PrologInstance.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js index 9d1485471..56acb7aab 100644 --- a/executor/scripts/bundle.js +++ b/executor/scripts/bundle.js @@ -56,7 +56,7 @@ esbuild 'crypto', 'path', 'fs', 'child_process', 'net', 'dns', 'cluster', 'https', 'dgram', 'os', 'tls', 'http', 'url', 'util', 'stream', 'events', 'tty', 'zlib', 'assert', 'buffer', 'constants', 'querystring', 'string_decoder', - 'global' + 'global', 'process', ].map(denoAliasLocal), { name: `dns-promisis-alias`, diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index cf6f2d008..0b747c914 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -1,4 +1,3 @@ -import fs from "fs-extra"; import path from "path"; //@ts-ignore import swipl from 'swipl-stdio' From 99081b87e387fe0ac7fe37aee68972f10752c384 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 4 Apr 2023 23:33:48 +0100 Subject: [PATCH 074/722] fix process setting for full integration test --- tests/js/tests/full-integration.test.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/js/tests/full-integration.test.ts b/tests/js/tests/full-integration.test.ts index 357e223c6..ae87b3895 100644 --- a/tests/js/tests/full-integration.test.ts +++ b/tests/js/tests/full-integration.test.ts @@ -123,7 +123,7 @@ describe("Integration tests", function () { describe('Social DNA', socialDNATests(testContext)) describe('with Alice and Bob', () => { - let bob: ChildProcess | null = null + let bobExecutorProcess: ChildProcess | null = null before(async () => { const appDataPath = path.join(TEST_DIR, 'agents', 'bob') const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); @@ -137,11 +137,11 @@ describe("Integration tests", function () { if(!fs.existsSync(appDataPath)) fs.mkdirSync(appDataPath) - executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + bobExecutorProcess = await startExecutor(appDataPath, bootstrapSeedPath, gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); testContext.bob = new Ad4mClient(apolloClient(gqlPort)) - testContext.bobCore = executorProcess + testContext.bobCore = bobExecutorProcess await testContext.bob.agent.generate("passphrase") const status = await testContext.bob.agent.status() @@ -152,15 +152,15 @@ describe("Integration tests", function () { }) after(async () => { - if (executorProcess) { - executorProcess.kill() + if (bobExecutorProcess) { + bobExecutorProcess.kill() } await new Promise((resolve)=>setTimeout(resolve, 500)) }) describe('Agent Language', agentLanguageTests(testContext)) - // describe('Direct Messages', directMessageTests(testContext)) - // describe('Language', languageTests(testContext)) - // describe('Neighbourhood', neighbourhoodTests(testContext)) + describe('Direct Messages', directMessageTests(testContext)) + describe('Language', languageTests(testContext)) + describe('Neighbourhood', neighbourhoodTests(testContext)) }) }) \ No newline at end of file From b24e604aa8470cbc957f61b761414fc135d62e9c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 4 Apr 2023 23:33:55 +0100 Subject: [PATCH 075/722] gitignore for deno crates --- executor/.gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/executor/.gitignore b/executor/.gitignore index 3124ccf06..93628e0ac 100644 --- a/executor/.gitignore +++ b/executor/.gitignore @@ -1,2 +1,4 @@ tst-tmp temp + +deno* \ No newline at end of file From c59bc3ed10d48c1eb9099547a386f33ca480b414 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 4 Apr 2023 23:38:21 +0100 Subject: [PATCH 076/722] Prepare root level of Deno bundle --- executor/lib/deno.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/executor/lib/deno.js b/executor/lib/deno.js index 028884b8e..5640b12e5 100644 --- a/executor/lib/deno.js +++ b/executor/lib/deno.js @@ -6,9 +6,4 @@ const Buffer = globalThis.Buffer; const setImmediate = globalThis.setImmediate; const clearImmediate = globalThis.clearImmediate; -console.log(process) -console.log(Buffer) -console.log(setImmediate) -console.log(clearImmediate) - -import "./main.js" +import { init } from "./main.js" From 130f14b9b92928d928f90ec2300f37ded550a547 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 4 Apr 2023 23:49:15 +0100 Subject: [PATCH 077/722] update yarn lock --- yarn.lock | 1273 ++++++++++++++++++++++++----------------------------- 1 file changed, 571 insertions(+), 702 deletions(-) diff --git a/yarn.lock b/yarn.lock index a8fb7d0ae..c4884a3bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -166,33 +166,33 @@ asciidoctor-opal-runtime "0.3.3" unxhr "1.0.1" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.8.3": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" - integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" + integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.14.8", "@babel/core@^7.16.0", "@babel/core@^7.2.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0", "@babel/core@^7.9.6": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.3.tgz#cf1c877284a469da5d1ce1d1e53665253fae712e" - integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw== + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659" + integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" - "@babel/helper-compilation-targets" "^7.20.7" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.4" + "@babel/helper-compilation-targets" "^7.21.4" "@babel/helper-module-transforms" "^7.21.2" "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.3" + "@babel/parser" "^7.21.4" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.3" - "@babel/types" "^7.21.3" + "@babel/traverse" "^7.21.4" + "@babel/types" "^7.21.4" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -217,12 +217,12 @@ "@jridgewell/gen-mapping" "^0.3.0" jsesc "^2.5.1" -"@babel/generator@^7.21.3", "@babel/generator@^7.7.2": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce" - integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA== +"@babel/generator@^7.21.4", "@babel/generator@^7.7.2": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc" + integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA== dependencies: - "@babel/types" "^7.21.3" + "@babel/types" "^7.21.4" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -242,21 +242,21 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656" + integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg== dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" + "@babel/compat-data" "^7.21.4" + "@babel/helper-validator-option" "^7.21.0" browserslist "^4.21.3" lru-cache "^5.1.1" semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" - integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18" + integrity sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" @@ -268,9 +268,9 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb" - integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg== + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz#40411a8ab134258ad2cf3a3d987ec6aa0723cee5" + integrity sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.3.1" @@ -321,12 +321,12 @@ dependencies: "@babel/types" "^7.21.0" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.21.4" "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2": version "7.21.2" @@ -445,10 +445,10 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3", "@babel/parser@^7.9.4": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" - integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4", "@babel/parser@^7.9.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" + integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -457,7 +457,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== @@ -466,7 +466,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-proposal-optional-chaining" "^7.20.7" -"@babel/plugin-proposal-async-generator-functions@^7.20.1": +"@babel/plugin-proposal-async-generator-functions@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== @@ -484,7 +484,7 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.18.6": +"@babel/plugin-proposal-class-static-block@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== @@ -528,7 +528,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": +"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== @@ -552,7 +552,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.20.2": +"@babel/plugin-proposal-object-rest-spread@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== @@ -571,7 +571,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": +"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -588,7 +588,7 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.18.6": +"@babel/plugin-proposal-private-property-in-object@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== @@ -656,11 +656,11 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-flow@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" - integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz#3e37fca4f06d93567c1cd9b75156422e90a67107" + integrity sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-import-assertions@^7.20.0": version "7.20.0" @@ -683,12 +683,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== +"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" + integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -747,20 +747,20 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" + integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-arrow-functions@^7.18.6": +"@babel/plugin-transform-arrow-functions@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-async-to-generator@^7.18.6": +"@babel/plugin-transform-async-to-generator@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== @@ -776,14 +776,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.20.2": +"@babel/plugin-transform-block-scoping@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-classes@^7.20.2": +"@babel/plugin-transform-classes@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== @@ -798,7 +798,7 @@ "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.9": +"@babel/plugin-transform-computed-properties@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== @@ -806,7 +806,7 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/template" "^7.20.7" -"@babel/plugin-transform-destructuring@^7.20.2": +"@babel/plugin-transform-destructuring@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== @@ -844,7 +844,7 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-flow" "^7.18.6" -"@babel/plugin-transform-for-of@^7.18.8": +"@babel/plugin-transform-for-of@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== @@ -874,7 +874,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-amd@^7.19.6": +"@babel/plugin-transform-modules-amd@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== @@ -882,7 +882,7 @@ "@babel/helper-module-transforms" "^7.20.11" "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-modules-commonjs@^7.19.6", "@babel/plugin-transform-modules-commonjs@^7.2.0": +"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.21.2": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== @@ -891,7 +891,7 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-simple-access" "^7.20.2" -"@babel/plugin-transform-modules-systemjs@^7.19.6": +"@babel/plugin-transform-modules-systemjs@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== @@ -909,7 +909,7 @@ "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": +"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== @@ -932,7 +932,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== @@ -1000,7 +1000,7 @@ "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-regenerator@^7.18.6": +"@babel/plugin-transform-regenerator@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== @@ -1016,11 +1016,11 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-runtime@^7.16.4": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8" - integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg== + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa" + integrity sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA== dependencies: - "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-module-imports" "^7.21.4" "@babel/helper-plugin-utils" "^7.20.2" babel-plugin-polyfill-corejs2 "^0.3.3" babel-plugin-polyfill-corejs3 "^0.6.0" @@ -1034,7 +1034,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.19.0": +"@babel/plugin-transform-spread@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== @@ -1063,7 +1063,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typescript@^7.21.0": +"@babel/plugin-transform-typescript@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz#316c5be579856ea890a57ebc5116c5d064658f2b" integrity sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw== @@ -1089,30 +1089,30 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.4.tgz#a952482e634a8dd8271a3fe5459a16eb10739c58" + integrity sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" + "@babel/compat-data" "^7.21.4" + "@babel/helper-compilation-targets" "^7.21.4" "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.18.6" + "@babel/helper-validator-option" "^7.21.0" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" + "@babel/plugin-proposal-async-generator-functions" "^7.20.7" "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.21.0" "@babel/plugin-proposal-dynamic-import" "^7.18.6" "@babel/plugin-proposal-export-namespace-from" "^7.18.9" "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.2" + "@babel/plugin-proposal-object-rest-spread" "^7.20.7" "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.21.0" "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.21.0" "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -1129,40 +1129,40 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.20.7" + "@babel/plugin-transform-async-to-generator" "^7.20.7" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-classes" "^7.21.0" + "@babel/plugin-transform-computed-properties" "^7.20.7" + "@babel/plugin-transform-destructuring" "^7.21.3" "@babel/plugin-transform-dotall-regex" "^7.18.6" "@babel/plugin-transform-duplicate-keys" "^7.18.9" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-for-of" "^7.21.0" "@babel/plugin-transform-function-name" "^7.18.9" "@babel/plugin-transform-literals" "^7.18.9" "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" + "@babel/plugin-transform-modules-amd" "^7.20.11" + "@babel/plugin-transform-modules-commonjs" "^7.21.2" + "@babel/plugin-transform-modules-systemjs" "^7.20.11" "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" "@babel/plugin-transform-new-target" "^7.18.6" "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" + "@babel/plugin-transform-parameters" "^7.21.3" "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.20.5" "@babel/plugin-transform-reserved-words" "^7.18.6" "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" + "@babel/plugin-transform-spread" "^7.20.7" "@babel/plugin-transform-sticky-regex" "^7.18.6" "@babel/plugin-transform-template-literals" "^7.18.9" "@babel/plugin-transform-typeof-symbol" "^7.18.9" "@babel/plugin-transform-unicode-escapes" "^7.18.10" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.20.2" + "@babel/types" "^7.21.4" babel-plugin-polyfill-corejs2 "^0.3.3" babel-plugin-polyfill-corejs3 "^0.6.0" babel-plugin-polyfill-regenerator "^0.4.1" @@ -1193,13 +1193,15 @@ "@babel/plugin-transform-react-pure-annotations" "^7.18.6" "@babel/preset-typescript@^7.16.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz#bcbbca513e8213691fe5d4b23d9251e01f00ebff" - integrity sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg== + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz#b913ac8e6aa8932e47c21b01b4368d8aa239a529" + integrity sha512-sMLNWY37TCdRH/bJ6ZeeOH1nPuanED7Ai9Y/vH31IPqalioJ6ZNFUWONsakhv4r4n+I6gm5lmoE0olkgib/j/A== dependencies: "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-transform-typescript" "^7.21.0" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/plugin-transform-modules-commonjs" "^7.21.2" + "@babel/plugin-transform-typescript" "^7.21.3" "@babel/regjsgen@^0.8.0": version "0.8.0" @@ -1222,19 +1224,19 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3", "@babel/traverse@^7.7.2": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67" - integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.7.2": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" + integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q== dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.4" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.3" - "@babel/types" "^7.21.3" + "@babel/parser" "^7.21.4" + "@babel/types" "^7.21.4" debug "^4.1.0" globals "^11.1.0" @@ -1247,10 +1249,10 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.2", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05" - integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.2", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" + integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -1300,9 +1302,9 @@ "@changesets/types" "^5.2.1" "@changesets/cli@^2.25.2": - version "2.26.0" - resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.26.0.tgz#f215ddb2b41574ffd0dda9cd77fac927ba048fd3" - integrity sha512-0cbTiDms+ICTVtEwAFLNW0jBNex9f5+fFv3I771nBvdnV/mOjd1QJ4+f8KtVSOrwD9SJkk9xbDkWFb0oXd8d1Q== + version "2.26.1" + resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.26.1.tgz#2d10858d7d32314a524e383111c96d831eb0402f" + integrity sha512-XnTa+b51vt057fyAudvDKGB0Sh72xutQZNAdXkCqPBKO2zvs2yYZx5hFZj1u9cbtpwM6Sxtcr02/FQJfZOzemQ== dependencies: "@babel/runtime" "^7.20.1" "@changesets/apply-release-plan" "^6.1.3" @@ -1583,9 +1585,9 @@ integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== "@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz#c9c61d9fe5ca5ac664e1153bb0aa0eba1c6d6308" - integrity sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== "@electron/get@^1.14.1": version "1.14.1" @@ -1603,11 +1605,6 @@ global-agent "^3.0.0" global-tunnel-ng "^2.7.1" -"@esbuild/android-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" - integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== - "@esbuild/android-arm64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz#893ad71f3920ccb919e1757c387756a9bca2ef42" @@ -1618,91 +1615,46 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== -"@esbuild/android-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" - integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== - "@esbuild/android-arm@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.15.tgz#143e0d4e4c08c786ea410b9a7739779a9a1315d8" integrity sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg== -"@esbuild/android-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" - integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== - "@esbuild/android-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.15.tgz#d2d12a7676b2589864281b2274355200916540bc" integrity sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ== -"@esbuild/darwin-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" - integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== - "@esbuild/darwin-arm64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz#2e88e79f1d327a2a7d9d06397e5232eb0a473d61" integrity sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA== -"@esbuild/darwin-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" - integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== - "@esbuild/darwin-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz#9384e64c0be91388c57be6d3a5eaf1c32a99c91d" integrity sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg== -"@esbuild/freebsd-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" - integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== - "@esbuild/freebsd-arm64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz#2ad5a35bc52ebd9ca6b845dbc59ba39647a93c1a" integrity sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg== -"@esbuild/freebsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" - integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== - "@esbuild/freebsd-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz#b513a48446f96c75fda5bef470e64d342d4379cd" integrity sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ== -"@esbuild/linux-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" - integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== - "@esbuild/linux-arm64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz#9697b168175bfd41fa9cc4a72dd0d48f24715f31" integrity sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA== -"@esbuild/linux-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" - integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== - "@esbuild/linux-arm@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz#5b22062c54f48cd92fab9ffd993732a52db70cd3" integrity sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw== -"@esbuild/linux-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" - integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== - "@esbuild/linux-ia32@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz#eb28a13f9b60b5189fcc9e98e1024f6b657ba54c" @@ -1713,146 +1665,86 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== -"@esbuild/linux-loong64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" - integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== - "@esbuild/linux-loong64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz#32454bdfe144cf74b77895a8ad21a15cb81cfbe5" integrity sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ== -"@esbuild/linux-mips64el@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" - integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== - "@esbuild/linux-mips64el@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz#af12bde0d775a318fad90eb13a0455229a63987c" integrity sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ== -"@esbuild/linux-ppc64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" - integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== - "@esbuild/linux-ppc64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz#34c5ed145b2dfc493d3e652abac8bd3baa3865a5" integrity sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg== -"@esbuild/linux-riscv64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" - integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== - "@esbuild/linux-riscv64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz#87bd515e837f2eb004b45f9e6a94dc5b93f22b92" integrity sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA== -"@esbuild/linux-s390x@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" - integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== - "@esbuild/linux-s390x@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz#20bf7947197f199ddac2ec412029a414ceae3aa3" integrity sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg== -"@esbuild/linux-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" - integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== - "@esbuild/linux-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz#31b93f9c94c195e852c20cd3d1914a68aa619124" integrity sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg== -"@esbuild/netbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" - integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== - "@esbuild/netbsd-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz#8da299b3ac6875836ca8cdc1925826498069ac65" integrity sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA== -"@esbuild/openbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" - integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== - "@esbuild/openbsd-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz#04a1ec3d4e919714dba68dcf09eeb1228ad0d20c" integrity sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w== -"@esbuild/sunos-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" - integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== - "@esbuild/sunos-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz#6694ebe4e16e5cd7dab6505ff7c28f9c1c695ce5" integrity sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ== -"@esbuild/win32-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" - integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== - "@esbuild/win32-arm64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz#1f95b2564193c8d1fee8f8129a0609728171d500" integrity sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q== -"@esbuild/win32-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" - integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== - "@esbuild/win32-ia32@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz#c362b88b3df21916ed7bcf75c6d09c6bf3ae354a" integrity sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w== -"@esbuild/win32-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" - integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== - "@esbuild/win32-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz#c2e737f3a201ebff8e2ac2b8e9f246b397ad19b8" integrity sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA== "@eslint-community/eslint-utils@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz#a831e6e468b4b2b5ae42bf658bea015bf10bc518" - integrity sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" - integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== + version "4.5.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz#f6f729b02feee2c749f57e334b7a1b5f40a81724" + integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== -"@eslint/eslintrc@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d" - integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw== +"@eslint/eslintrc@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" + integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.0" + espree "^9.5.1" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -1860,10 +1752,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.36.0": - version "8.36.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe" - integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg== +"@eslint/js@8.37.0": + version "8.37.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" + integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== "@graphql-tools/merge@8.3.1": version "8.3.1" @@ -1927,9 +1819,9 @@ tslib "^2.4.0" "@graphql-typed-document-node/core@^3.1.1": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.2.tgz#6fc464307cbe3c8ca5064549b806360d84457b04" - integrity sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA== + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== "@holochain/client@0.12.5": version "0.12.5" @@ -1950,42 +1842,42 @@ resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== -"@honkit/asciidoc@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@honkit/asciidoc/-/asciidoc-4.0.1.tgz#0b649f8d76493119a8fdb4c16299beffea20e4ae" - integrity sha512-R+Og2PaOO5LPXgfsc2k23bSxeTjfJgNMmBB6xodaMmAwYIMs4HApStWGLKik7WQjoIXsNzD67z4eUlTsJcOReA== +"@honkit/asciidoc@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/asciidoc/-/asciidoc-4.0.7.tgz#7e6deb19c91ccf6e4177c215652919e53f081d96" + integrity sha512-YgIInbeGtuhvKO4cUhJ9q5g8iNkbwEL/U4suwP1uC9sZXFfYzXg+Vt2zPPx47A+Nj0cirdrbbh1fJhQWJIgm8A== dependencies: - "@honkit/html" "^4.0.1" + "@honkit/html" "^4.0.7" asciidoctor "^2.2.0" lodash "^4.13.1" -"@honkit/honkit-plugin-highlight@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-4.0.0.tgz#4243dfa99e29c5c5e11283b7464eee08e7ac0e1d" - integrity sha512-3T1s12gbLVN/pKbngrkItXLE7ubDBoHK+ILHAjmPw/TYd92wMT4bcL7TUZZALjBhUR3tBj7+kofssxAxDECPOA== +"@honkit/honkit-plugin-highlight@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-4.0.7.tgz#d54911155167bd2bcd79442b9548737e5d4c636c" + integrity sha512-VeXVJ2orU4F2V8ncf3bGNnPFzuS8+IV5NdHNW4C3Nt9+MoB6cp7lAoi95+ZuYC9T4iIVkfBtXFA/tCivEAjfgg== dependencies: highlight.js "^10.7.1" -"@honkit/honkit-plugin-theme-default@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-4.0.3.tgz#11accaed52f96e51e1578d8e02b66e60c7008726" - integrity sha512-bGCkFLASQF1PAb5HWgaei33uhOLVGM3ZiwUs5BJszumKSJAGaz/X2epRH6DrIlDG+I93COZsoGV1BVOj3gzLaA== +"@honkit/honkit-plugin-theme-default@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-4.0.7.tgz#758360e3a1bda6db306b32e1db6959247bce3400" + integrity sha512-C/4WLD26p8f7gDTR6R60lPL6CJys+1/z7o6wUd5qEUya3Xu/YjiZmNviIyw99C5RUu4X7YutVvMijGTwC1izgA== -"@honkit/html@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@honkit/html/-/html-4.0.1.tgz#a9baf71e98a02af67134d845c509b481a92838e2" - integrity sha512-EB0k42QJbETe4vNgRfT5Kn9BFchNES20bmlDY7il989F/eYxCf+f8SduEcs6hsxpG1DemsR09x8Jz19WHXMTIA== +"@honkit/html@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/html/-/html-4.0.7.tgz#e22f04d270f225abf68a80215ba4e6491f0d9f07" + integrity sha512-8f3VqAwJqxSmmaiS7tDQpTMNwssXSW6s09AeLstOI8qhyCGf0ajpbfgQ1WrqY4duu6yqaZrubY8o9U7eSgxnVg== dependencies: cheerio "^1.0.0-rc.12" lodash "^4.13.1" q "^1.1.2" -"@honkit/markdown-legacy@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@honkit/markdown-legacy/-/markdown-legacy-4.0.1.tgz#e26279066142b2bea9b70a4efdbc3a1398ce10b3" - integrity sha512-5vzbvXU28SOJLEaEBjZY/57dV2Gol6kpJGkLkBVY4z29aLzugepXLOPuVA9X3X6Dbmzz3ws37siAf7/+8NLihw== +"@honkit/markdown-legacy@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/markdown-legacy/-/markdown-legacy-4.0.7.tgz#87c62f1df4579fbfa2881ae5db42adfcae950c73" + integrity sha512-wg+ErBy0Mk5Je6VVSbFoSwSvHNSstAzJnKiem1wR9nbrF21M5Ip4mLDZRsuuSPi0HOTFz3AhZMJC+ch+chIIEA== dependencies: - "@honkit/html" "^4.0.1" + "@honkit/html" "^4.0.7" kramed "0.5.6" lodash "^4.13.1" @@ -2512,10 +2404,10 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@lit-labs/ssr-dom-shim@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz#427e19a2765681fd83411cd72c55ba80a01e0523" - integrity sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw== +"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.0.tgz#3361d6b8c4cb2ac426d5794ac7cd9776cd2f0814" + integrity sha512-92uQ5ARf7UXYrzaFcAX3T2rTvaS9Z1//ukV+DqjACM4c8s0ZBQd7ayJU5Dh2AFLD/Ayuyz4uMmxQec8q3U4Ong== "@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": version "1.6.1" @@ -2615,7 +2507,7 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": +"@peculiar/asn1-schema@^2.3.6": version "2.3.6" resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== @@ -2632,15 +2524,15 @@ tslib "^2.0.0" "@peculiar/webcrypto@^1.1.3", "@peculiar/webcrypto@^1.1.6", "@peculiar/webcrypto@^1.1.7": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz#821493bd5ad0f05939bd5f53b28536f68158360a" - integrity sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw== + version "1.4.3" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" + integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== dependencies: - "@peculiar/asn1-schema" "^2.3.0" + "@peculiar/asn1-schema" "^2.3.6" "@peculiar/json-schema" "^1.1.12" pvtsutils "^1.3.2" - tslib "^2.4.1" - webcrypto-core "^1.7.4" + tslib "^2.5.0" + webcrypto-core "^1.7.7" "@perspect3vism/rollup-plugin-dna@^0.0.2": version "0.0.2" @@ -2663,9 +2555,9 @@ source-map "^0.7.3" "@popperjs/core@^2.9.2": - version "2.11.6" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" - integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== + version "2.11.7" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.7.tgz#ccab5c8f7dc557a52ca3288c10075c9ccd37fff7" + integrity sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw== "@preact/preset-vite@^2.4.0": version "2.5.0" @@ -2760,10 +2652,10 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@remix-run/router@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.4.0.tgz#74935d538e4df8893e47831a7aea362f295bcd39" - integrity sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q== +"@remix-run/router@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.5.0.tgz#57618e57942a5f0131374a9fdb0167e25a117fdc" + integrity sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg== "@rollup/plugin-alias@^3.1.5": version "3.1.9" @@ -2975,10 +2867,10 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/samsam@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-7.0.1.tgz#5b5fa31c554636f78308439d220986b9523fc51f" - integrity sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw== +"@sinonjs/samsam@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" + integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== dependencies: "@sinonjs/commons" "^2.0.0" lodash.get "^4.4.2" @@ -3677,9 +3569,9 @@ "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.21.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.2.tgz#2b61b43a8b0e66006856a2a4c8e51f6f773ead27" - integrity sha512-EMpxUyystd3uZVByZap1DACsMXvb82ypQnGn89e1Y0a+LYu3JJscUd/gqhRsVFDkaD2MIiWo0MT8EfXr3DGRKw== + version "8.37.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.37.0.tgz#29cebc6c2a3ac7fea7113207bf5a828fdf4d7ef1" + integrity sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -3815,9 +3707,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.2.tgz#13ca45d528a0f81a4792b7df199f58ad46c2a0e3" - integrity sha512-bbne90W7is+m88ezmZrLiTpp41tIoTdvPC5t3gLoNgu/6qbGdWTC2JWqPWQRJn2Q7rVYTr8aTWqOjhGJDXyvAQ== + version "29.5.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.0.tgz#337b90bbcfe42158f39c2fb5619ad044bbb518ac" + integrity sha512-3Emr5VOl/aoBwnWcH/EFQvlSAmjV+XtV9GGu5mwdYew5vhQh0IUZx/60x0TzHDu09Bi7HMx10t/namdJw5QIcg== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -3871,9 +3763,9 @@ integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== "@types/lodash@*": - version "4.14.191" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" - integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + version "4.14.192" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.192.tgz#5790406361a2852d332d41635d927f1600811285" + integrity sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A== "@types/long@^4.0.0": version "4.0.2" @@ -3896,9 +3788,9 @@ "@types/mdurl" "*" "@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + version "3.0.11" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.11.tgz#dc130f7e7d9306124286f6d6cee40cf4d14a3dc0" + integrity sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw== dependencies: "@types/unist" "*" @@ -3928,17 +3820,17 @@ integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== "@types/node-fetch@^2.5.11", "@types/node-fetch@^2.6.1": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + version "2.6.3" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.3.tgz#175d977f5e24d93ad0f57602693c435c57ad7e80" + integrity sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w== dependencies: "@types/node" "*" form-data "^3.0.0" "@types/node@*", "@types/node@>=6", "@types/node@^18.0.0": - version "18.15.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.3.tgz#f0b991c32cfc6a4e7f3399d6cb4b8cf9a0315014" - integrity sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw== + version "18.15.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" + integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== "@types/node@^10.1.0": version "10.17.60" @@ -3950,20 +3842,15 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^14.11.2": - version "14.18.38" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.38.tgz#2169ca4b70aa59aa5a8923509e50619dde48b0cf" - integrity sha512-zMRIidN2Huikv/+/U7gRPFYsXDR/7IGqFZzTLnCEj5+gkrQjsowfamaxEnyvArct5hxGA3bTxMXlYhH78V6Cew== - -"@types/node@^14.14.22": +"@types/node@^14.11.2", "@types/node@^14.14.22": version "14.18.42" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.42.tgz#fa39b2dc8e0eba61bdf51c66502f84e23b66e114" integrity sha512-xefu+RBie4xWlK8hwAzGh3npDz/4VhF6icY/shU+zv/1fNn+ZVG7T7CRwe9LId9sAYRPxI+59QBPuKL3WpyGRg== "@types/node@^16.11.26": - version "16.18.16" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.16.tgz#09ff98b144abae2d7cce3e9fe9040ab2bf73222c" - integrity sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA== + version "16.18.23" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.23.tgz#b6e934fe427eb7081d0015aad070acb3373c3c90" + integrity sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -4020,18 +3907,18 @@ "@types/react" "*" "@types/react@*": - version "18.0.28" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.28.tgz#accaeb8b86f4908057ad629a26635fe641480065" - integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew== + version "18.0.33" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.33.tgz#a1575160cb4376787c2f5fe0312302f824baa61e" + integrity sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" "@types/react@^17", "@types/react@^17.0.40": - version "17.0.53" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.53.tgz#10d4d5999b8af3d6bc6a9369d7eb953da82442ab" - integrity sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw== + version "17.0.56" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.56.tgz#16f54a0b0a4820065b8296f1dd6da80791fcf964" + integrity sha512-Z13f9Qz7Hg8f2g2NsBjiJSVWmON2b3K8RIqFK8mMKCIgvD0CD0ZChTukz87H3lI28X3ukXoNFGzo3ZW1ICTtPA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -4064,9 +3951,9 @@ sass "*" "@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== "@types/secp256k1@^4.0.3": version "4.0.3" @@ -4192,9 +4079,9 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.22" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" - integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== dependencies: "@types/yargs-parser" "*" @@ -4211,14 +4098,14 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz#bc2400c3a23305e8c9a9c04aa40933868aaaeb47" - integrity sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg== + version "5.57.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.1.tgz#d1ab162a3cd2671b8a1c9ddf6e2db73b14439735" + integrity sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ== dependencies: "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/type-utils" "5.55.0" - "@typescript-eslint/utils" "5.55.0" + "@typescript-eslint/scope-manager" "5.57.1" + "@typescript-eslint/type-utils" "5.57.1" + "@typescript-eslint/utils" "5.57.1" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" @@ -4227,78 +4114,78 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.55.0.tgz#ea2dd8737834af3a36b6a7be5bee57f57160c942" - integrity sha512-3ZqXIZhdGyGQAIIGATeMtg7prA6VlyxGtcy5hYIR/3qUqp3t18pWWUYhL9mpsDm7y8F9mr3ISMt83TiqCt7OPQ== + version "5.57.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.57.1.tgz#da521391f16379b396896b120919c63f24fa78c2" + integrity sha512-5F5s8mpM1Y0RQ5iWzKQPQm5cmhARgcMfUwyHX1ZZFL8Tm0PyzyQ+9jgYSMaW74XXvpDg9/KdmMICLlwNwKtO7w== dependencies: - "@typescript-eslint/utils" "5.55.0" + "@typescript-eslint/utils" "5.57.1" "@typescript-eslint/parser@^5.21.0", "@typescript-eslint/parser@^5.5.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.55.0.tgz#8c96a0b6529708ace1dcfa60f5e6aec0f5ed2262" - integrity sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw== + version "5.57.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.57.1.tgz#af911234bd4401d09668c5faf708a0570a17a748" + integrity sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA== dependencies: - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/typescript-estree" "5.55.0" + "@typescript-eslint/scope-manager" "5.57.1" + "@typescript-eslint/types" "5.57.1" + "@typescript-eslint/typescript-estree" "5.57.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz#e863bab4d4183ddce79967fe10ceb6c829791210" - integrity sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw== +"@typescript-eslint/scope-manager@5.57.1": + version "5.57.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.57.1.tgz#5d28799c0fc8b501a29ba1749d827800ef22d710" + integrity sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw== dependencies: - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/visitor-keys" "5.55.0" + "@typescript-eslint/types" "5.57.1" + "@typescript-eslint/visitor-keys" "5.57.1" -"@typescript-eslint/type-utils@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz#74bf0233523f874738677bb73cb58094210e01e9" - integrity sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA== +"@typescript-eslint/type-utils@5.57.1": + version "5.57.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.57.1.tgz#235daba621d3f882b8488040597b33777c74bbe9" + integrity sha512-/RIPQyx60Pt6ga86hKXesXkJ2WOS4UemFrmmq/7eOyiYjYv/MUSHPlkhU6k9T9W1ytnTJueqASW+wOmW4KrViw== dependencies: - "@typescript-eslint/typescript-estree" "5.55.0" - "@typescript-eslint/utils" "5.55.0" + "@typescript-eslint/typescript-estree" "5.57.1" + "@typescript-eslint/utils" "5.57.1" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.55.0.tgz#9830f8d3bcbecf59d12f821e5bc6960baaed41fd" - integrity sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug== +"@typescript-eslint/types@5.57.1": + version "5.57.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.57.1.tgz#d9989c7a9025897ea6f0550b7036027f69e8a603" + integrity sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA== -"@typescript-eslint/typescript-estree@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz#8db7c8e47ecc03d49b05362b8db6f1345ee7b575" - integrity sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ== +"@typescript-eslint/typescript-estree@5.57.1": + version "5.57.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.1.tgz#10d9643e503afc1ca4f5553d9bbe672ea4050b71" + integrity sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw== dependencies: - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/visitor-keys" "5.55.0" + "@typescript-eslint/types" "5.57.1" + "@typescript-eslint/visitor-keys" "5.57.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.55.0", "@typescript-eslint/utils@^5.43.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.55.0.tgz#34e97322e7ae5b901e7a870aabb01dad90023341" - integrity sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw== +"@typescript-eslint/utils@5.57.1", "@typescript-eslint/utils@^5.43.0": + version "5.57.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.57.1.tgz#0f97b0bbd88c2d5e2036869f26466be5f4c69475" + integrity sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/typescript-estree" "5.55.0" + "@typescript-eslint/scope-manager" "5.57.1" + "@typescript-eslint/types" "5.57.1" + "@typescript-eslint/typescript-estree" "5.57.1" eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz#01ad414fca8367706d76cdb94adf788dc5b664a2" - integrity sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw== +"@typescript-eslint/visitor-keys@5.57.1": + version "5.57.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.1.tgz#585e5fa42a9bbcd9065f334fd7c8a4ddfa7d905e" + integrity sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA== dependencies: - "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/types" "5.57.1" eslint-visitor-keys "^3.3.0" "@undecaf/barcode-detector-polyfill@^0.9.15": @@ -4768,6 +4655,11 @@ any-observable@^0.5.1: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.5.1.tgz#ab7d49ff64ebe6dd3ae26760a3f5a881e8db791e" integrity sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA== +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -5140,7 +5032,7 @@ arrify@^1.0.0, arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -asap@^2.0.0, asap@^2.0.3, asap@~2.0.6: +asap@^2.0.3, asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== @@ -5733,9 +5625,9 @@ body@^5.1.0: safe-json-parse "~1.0.1" bonjour-service@^1.0.11: - version "1.1.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.0.tgz#424170268d68af26ff83a5c640b95def01803a13" - integrity sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q== + version "1.1.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" + integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== dependencies: array-flatten "^2.1.2" dns-equal "^1.0.0" @@ -6212,9 +6104,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001466" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz#c1e6197c540392e09709ecaa9e3e403428c53375" - integrity sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w== + version "1.0.30001474" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz#13b6fe301a831fe666cce8ca4ef89352334133d5" + integrity sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q== canonicalize@^1.0.1, canonicalize@^1.0.3: version "1.0.8" @@ -6725,6 +6617,11 @@ commander@^2.15.0, commander@^2.20.0, commander@^2.20.3: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" @@ -6922,16 +6819,16 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.25.1: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.29.1.tgz#15c0fb812ea27c973c18d425099afa50b934b41b" - integrity sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA== + version "3.30.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.0.tgz#99aa2789f6ed2debfa1df3232784126ee97f4d80" + integrity sha512-P5A2h/9mRYZFIAP+5Ab8ns6083IyVpSclU74UNvbGVQ8VM7n3n3/g2yF3AkKQ9NXz2O+ioxLbEWKnDtgsFamhg== dependencies: browserslist "^4.21.5" core-js-pure@^3.23.3: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.29.1.tgz#1be6ca2b8772f6b4df7fc4621743286e676c6162" - integrity sha512-4En6zYVi0i0XlXHVz/bi6l1XDjCqkKRq765NXuX+SnaIatlE96Odt5lMLjdxUiNI1v9OXI5DSLWYPlmTfkTktg== + version "3.30.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.0.tgz#41b6c42e5f363bd53d79999bd35093b17e42e1bf" + integrity sha512-+2KbMFGeBU0ln/csoPqTe0i/yfHbrd2EUhNMObsGtXMKS/RTtlkYyi+/3twLcevbgNR0yM/r0Psa3TEoQRpFMQ== core-js@^2.4.0: version "2.6.12" @@ -6939,9 +6836,9 @@ core-js@^2.4.0: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.19.2: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.29.1.tgz#40ff3b41588b091aaed19ca1aa5cb111803fa9a6" - integrity sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw== + version "3.30.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.0.tgz#64ac6f83bc7a49fd42807327051701d4b1478dea" + integrity sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg== core-util-is@1.0.2: version "1.0.2" @@ -7135,9 +7032,9 @@ css-declaration-sorter@^4.0.1: timsort "^0.3.0" css-declaration-sorter@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" - integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" + integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== css-has-pseudo@^3.0.4: version "3.0.4" @@ -7266,9 +7163,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.4.1.tgz#61d55c0173126689922a219e15e131e4b5caf422" - integrity sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ== + version "7.5.3" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.5.3.tgz#6bbd0c6a935919d7f78b8a3ce098faacda01ae8a" + integrity sha512-NQNRhrEnS6cW+RU/foLphb6xI/MDA70bI3Cy6VxJU8ilxgyTYz1X9zUzFGVTG5nGPylcKAGIt/UNc4deT56lQQ== cssesc@^3.0.0: version "3.0.0" @@ -7422,9 +7319,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" - integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== csv-generate@^3.4.3: version "3.4.3" @@ -7441,7 +7338,7 @@ csv-stringify@^5.6.5: resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.6.5.tgz#c6d74badda4b49a79bf4e72f91cce1e33b94de00" integrity sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== -csv@^5.5.0: +csv@^5.5.3: version "5.5.3" resolved "https://registry.yarnpkg.com/csv/-/csv-5.5.3.tgz#cd26c1e45eae00ce6a9b7b27dcb94955ec95207d" integrity sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== @@ -7515,11 +7412,6 @@ debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" -debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== - decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" @@ -7620,9 +7512,9 @@ deep-is@^0.1.3, deep-is@~0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.3.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" - integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== default-gateway@^6.0.3: version "6.0.3" @@ -7788,7 +7680,7 @@ detect-port-alt@^1.1.6: address "^1.0.1" debug "^2.6.0" -detective@^5.2.0, detective@^5.2.1: +detective@^5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== @@ -7797,14 +7689,6 @@ detective@^5.2.0, detective@^5.2.1: defined "^1.0.0" minimist "^1.2.6" -dezalgo@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" - integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== - dependencies: - asap "^2.0.0" - wrappy "1" - didyoumean@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" @@ -7886,9 +7770,9 @@ dns-over-http-resolver@^1.2.3: receptacle "^1.3.2" dns-packet@^5.2.2: - version "5.4.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" - integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== + version "5.5.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.5.0.tgz#f59cbf3396c130957c56a6ad5fd3959ccdc30065" + integrity sha512-USawdAUzRkV6xrqTjiAEp6M9YagZEzWcSUaZTcIFAiyQWW1SoI6KyId8y2+/71wbgHKQAKd+iupLv4YvEwYWvA== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -8103,9 +7987,9 @@ ejs@^3.1.6: jake "^10.8.5" electron-to-chromium@^1.4.284: - version "1.4.330" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz#4740378db7160d7210afb29800c74048cdf10a99" - integrity sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q== + version "1.4.352" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.352.tgz#be96bd7c2f4b980deebc9338a49a67430a33ed73" + integrity sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q== electron@^20.0.3: version "20.3.12" @@ -8221,7 +8105,7 @@ entities@^3.0.1: resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== -entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: +entities@^4.2.0, entities@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== @@ -8516,35 +8400,7 @@ esbuild@^0.15.5: esbuild-windows-64 "0.15.18" esbuild-windows-arm64 "0.15.18" -esbuild@^0.16.14: - version "0.16.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" - integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== - optionalDependencies: - "@esbuild/android-arm" "0.16.17" - "@esbuild/android-arm64" "0.16.17" - "@esbuild/android-x64" "0.16.17" - "@esbuild/darwin-arm64" "0.16.17" - "@esbuild/darwin-x64" "0.16.17" - "@esbuild/freebsd-arm64" "0.16.17" - "@esbuild/freebsd-x64" "0.16.17" - "@esbuild/linux-arm" "0.16.17" - "@esbuild/linux-arm64" "0.16.17" - "@esbuild/linux-ia32" "0.16.17" - "@esbuild/linux-loong64" "0.16.17" - "@esbuild/linux-mips64el" "0.16.17" - "@esbuild/linux-ppc64" "0.16.17" - "@esbuild/linux-riscv64" "0.16.17" - "@esbuild/linux-s390x" "0.16.17" - "@esbuild/linux-x64" "0.16.17" - "@esbuild/netbsd-x64" "0.16.17" - "@esbuild/openbsd-x64" "0.16.17" - "@esbuild/sunos-x64" "0.16.17" - "@esbuild/win32-arm64" "0.16.17" - "@esbuild/win32-ia32" "0.16.17" - "@esbuild/win32-x64" "0.16.17" - -esbuild@^0.17.15: +esbuild@^0.17.15, esbuild@^0.17.5: version "0.17.15" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.15.tgz#209ebc87cb671ffb79574db93494b10ffaf43cbc" integrity sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw== @@ -8644,9 +8500,9 @@ eslint-config-next@^12.0.8: eslint-plugin-react-hooks "^4.5.0" eslint-config-prettier@^8.3.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz#f1cc58a8afebc50980bd53475451df146c13182d" - integrity sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA== + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== eslint-config-react-app@^7.0.1: version "7.0.1" @@ -8827,10 +8683,10 @@ eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" + integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== eslint-webpack-plugin@^3.1.1: version "3.2.0" @@ -8844,14 +8700,14 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.3.0: - version "8.36.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf" - integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw== + version "8.37.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.37.0.tgz#1f660ef2ce49a0bfdec0b0d698e0b8b627287412" + integrity sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.1" - "@eslint/js" "8.36.0" + "@eslint/eslintrc" "^2.0.2" + "@eslint/js" "8.37.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -8862,8 +8718,8 @@ eslint@^8.3.0: doctrine "^3.0.0" escape-string-regexp "^4.0.0" eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.5.0" + eslint-visitor-keys "^3.4.0" + espree "^9.5.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -8910,14 +8766,14 @@ esmify@^2.1.1: duplexer2 "^0.1.4" through2 "^2.0.5" -espree@^9.5.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113" - integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw== +espree@^9.5.1: + version "9.5.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" + integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.4.0" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" @@ -9878,6 +9734,18 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@7.1.7: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -10048,9 +9916,9 @@ got@^9.6.0: url-parse-lax "^3.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== grapheme-splitter@^1.0.4: version "1.0.4" @@ -10293,14 +10161,14 @@ hoist-non-react-statics@^3.3.2: react-is "^16.7.0" honkit@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/honkit/-/honkit-4.0.4.tgz#9b1aa11ed050ec306780c3eb39257512b6e1619e" - integrity sha512-quKzP5kGGp3/Ey1+h9kISMa/NBmED7rSuaD8whdniGK/7OUJCEJg/0fKwZgLZLMAIS+AIowhxoV+gvQ30S1NFQ== + version "4.0.7" + resolved "https://registry.yarnpkg.com/honkit/-/honkit-4.0.7.tgz#dd1480721f0a4980418465e59a8211a9c5de1a3e" + integrity sha512-E6+OQ+vrR7Ig2cJyoNwnYtmRQQD/IzPgZJwlv9gmYQ5OIc6DfpcuS32f2Dfwis5AVMa7nwKcpmwO07e+X2JFUw== dependencies: - "@honkit/asciidoc" "^4.0.1" - "@honkit/honkit-plugin-highlight" "^4.0.0" - "@honkit/honkit-plugin-theme-default" "^4.0.3" - "@honkit/markdown-legacy" "^4.0.1" + "@honkit/asciidoc" "^4.0.7" + "@honkit/honkit-plugin-highlight" "^4.0.7" + "@honkit/honkit-plugin-theme-default" "^4.0.7" + "@honkit/markdown-legacy" "^4.0.7" bash-color "^0.0.4" cheerio "^1.0.0-rc.12" chokidar "^3.3.0" @@ -10340,8 +10208,6 @@ honkit@^4.0.0: omit-keys "^0.1.0" open "^7.0.0" q "^1.5.1" - read-installed "^4.0.3" - request "^2.88.0" resolve "^1.17.0" semver "^5.1.0" send "^0.17.1" @@ -10476,14 +10342,14 @@ htmlparser2@^7.2.0: entities "^3.0.1" htmlparser2@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" - integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: domelementtype "^2.3.0" - domhandler "^5.0.2" + domhandler "^5.0.3" domutils "^3.0.1" - entities "^4.3.0" + entities "^4.4.0" http-cache-semantics@^4.0.0: version "4.1.1" @@ -10659,9 +10525,9 @@ ignore@^5.1.8, ignore@^5.2.0: integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immer@^9.0.7: - version "9.0.19" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.19.tgz#67fb97310555690b5f9cd8380d38fc0aabb6b38b" - integrity sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ== + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== immutability-helper@^2.7.1: version "2.9.1" @@ -12510,6 +12376,11 @@ jest@^27.4.3: import-local "^3.0.2" jest-cli "^27.5.1" +jiti@^1.17.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" + integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== + jose@^4.8.1: version "4.13.1" resolved "https://registry.yarnpkg.com/jose/-/jose-4.13.1.tgz#449111bb5ab171db85c03f1bd2cb1647ca06db1c" @@ -12521,9 +12392,9 @@ js-base64@^3.7.3: integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== js-sdsl@^4.1.4: - version "4.3.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" - integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" + integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -12849,7 +12720,7 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -kleur@^4.1.4: +kleur@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== @@ -12926,9 +12797,9 @@ levn@~0.3.0: type-check "~0.3.2" libphonenumber-js@^1.9.43: - version "1.10.24" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.24.tgz#a1744cf29df86d5a587562ea28dde12320eb6ab6" - integrity sha512-3Dk8f5AmrcWqg+oHhmm9hwSTqpWHBdSqsHmjCJGroULFubi0+x7JEIGmRZCuL3TI8Tx39xaKqfnhsDQ4ALa/Nw== + version "1.10.26" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.26.tgz#3e6604357b3434b0005f85778b44153f4fadeecd" + integrity sha512-oB3l4J5gEhMV+ymmlIjWedsbCpsNRqbEZ/E/MpN2QVyinKNra6DcuXywxSk/72M3DZDoH/6kzurOq1erznBMwQ== lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: version "2.1.0" @@ -13006,29 +12877,30 @@ listr@^0.14.3: p-map "^2.0.0" rxjs "^6.3.3" -lit-element@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.2.2.tgz#d148ab6bf4c53a33f707a5168e087725499e5f2b" - integrity sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ== +lit-element@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.1.tgz#9dcb950b1fadf156dacf3ded8d7d51a8cf16a966" + integrity sha512-Gl+2409uXWbf7n6cCl7Kzasm7zjT9xmdwi2BhLNi70sRKAgRkqueDu5mSIH3hPYMM0/vqBCdPXod3NbGkRA2ww== dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.0" "@lit/reactive-element" "^1.3.0" - lit-html "^2.2.0" + lit-html "^2.7.0" -lit-html@^2.2.0, lit-html@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.6.1.tgz#eb29f0b0c2ab54ea77379db11fc011b0c71f1cda" - integrity sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw== +lit-html@^2.7.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.7.1.tgz#eeea32f9639b0c1bda43ea83dc886431f3744c51" + integrity sha512-san46v7VXK6+2RXS4yveQYFUf9CoO/1bcNb0NibxLoTqlP48vs+l28tRPFDYcXGKWm0XoqcDuCC6mxIs8Jj3Zw== dependencies: "@types/trusted-types" "^2.0.2" lit@^2.0.0-rc.2, lit@^2.3.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/lit/-/lit-2.6.1.tgz#5951a2098b9bde5b328c73b55c15fdc0eefd96d7" - integrity sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw== + version "2.7.1" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.1.tgz#8425eceff08fc392ee500de486f7113d600eaee0" + integrity sha512-t1cVWUVQj+ucdx16QPvqzyHWYTj/bvlv6vRCUuZ5T/dA4W2Ui4a4tz7uJ1IhoTb9rKe3pTJiWmoN2GJGGteszw== dependencies: "@lit/reactive-element" "^1.6.0" - lit-element "^3.2.0" - lit-html "^2.6.0" + lit-element "^3.3.0" + lit-html "^2.7.0" livereload-js@^2.3.0: version "2.4.0" @@ -13376,9 +13248,9 @@ markdown-table@^2.0.0: repeat-string "^1.0.0" marked@^4.0.10, marked@^4.2.12: - version "4.2.12" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.12.tgz#d69a64e21d71b06250da995dcd065c11083bebb5" - integrity sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw== + version "4.3.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== matcher@^3.0.0: version "3.0.0" @@ -13773,9 +13645,9 @@ min-indent@^1.0.0: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.4.5: - version "2.7.3" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.3.tgz#794aa4d598bf178a66b2a35fe287c3df3eac394e" - integrity sha512-CD9cXeKeXLcnMw8FZdtfrRrLaM7gwCl4nKuKn2YkY2Bw5wdlB8zU2cCzw+w2zS9RFvbrufTBkMCJACNPwqQA0w== + version "2.7.5" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz#afbb344977659ec0f1f6e050c7aea456b121cfc5" + integrity sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ== dependencies: schema-utils "^4.0.0" @@ -13811,9 +13683,9 @@ minimatch@^5.0.1: brace-expansion "^2.0.1" minimatch@^7.1.3: - version "7.4.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.2.tgz#157e847d79ca671054253b840656720cb733f10f" - integrity sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA== + version "7.4.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.5.tgz#e721f2a6faba6846f3b891ccff9966dcf728813e" + integrity sha512-OzOamaOmNBJZUv2qqY1OSWa+++4YPpOkLgkc0w30Oov5ufKlWWXnFUl0l4dgmSv5Shq/zRVkEOXAe2NaqO4l5Q== dependencies: brace-expansion "^2.0.1" @@ -13860,9 +13732,9 @@ mixin-deep@^1.2.0: is-extendable "^1.0.1" mixme@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.5.tgz#bf8f67d8caf10fdb49fd23198fd1fa6d8e406627" - integrity sha512-/6IupbRx32s7jjEwHcycXikJwFD5UujbVNuJFkeKLYje+92OvtuPniF6JhnFm5JCTDUhS+kYK3W/4BWYQYXz7w== + version "0.5.9" + resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.9.tgz#a5a58e17354632179ff3ce5b0fc130899c8ba81c" + integrity sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw== mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" @@ -13997,15 +13869,24 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== nanoid@^3.0.2, nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== nanomatch@^1.2.9: version "1.2.13" @@ -14117,9 +13998,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^3.3.0: - version "3.33.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.33.0.tgz#8b23a0cec84e1c5f5411836de6a9b84bccf26e7f" - integrity sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog== + version "3.34.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.34.0.tgz#3bac9f69fda94ece1752515ed996ed409da4fa26" + integrity sha512-O5sNsdgxptez/bSXk2CfpTcVu4yTiFW1YcMHIVn2uAY8MksXWQeReMx63krFrj/QSyjRJ5/jIBkWvJ3/ZimdcA== dependencies: semver "^7.3.5" @@ -14229,7 +14110,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -14282,9 +14163,9 @@ normalize-url@^6.0.1: integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== np@^7.6.2: - version "7.6.3" - resolved "https://registry.yarnpkg.com/np/-/np-7.6.3.tgz#da3eeb750fa8d583f658b02a16f1199a11c9e10f" - integrity sha512-GTFNvIhu/cZqzUhil/AlISCiipYeAUVx0JtyjtmumFJvWogSewUSAshFi5MSMc6BOj9C98s8NAFZiqlHb2wQPQ== + version "7.7.0" + resolved "https://registry.yarnpkg.com/np/-/np-7.7.0.tgz#7fbf2495f6395bcc702b84ca38c4a125363fd5a5" + integrity sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q== dependencies: "@samverschueren/stream-to-observable" "^0.3.1" any-observable "^0.5.1" @@ -14356,7 +14237,7 @@ npm-name@^6.0.1: registry-url "^5.1.0" validate-npm-package-name "^3.0.0" -npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: +npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== @@ -14452,7 +14333,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -16137,9 +16018,9 @@ preact-transition-group@^1.1.1: integrity sha512-v89XLodCvylf5lMrhI+LqIhDsAjWfiDKV4keAU+L5yDtxmqn8uvjZXn+haKMEG0x0PZz81own19SuNJD5NlOFQ== preact@^10.11.3: - version "10.13.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.13.1.tgz#d220bd8771b8fa197680d4917f3cefc5eed88720" - integrity sha512-KyoXVDU5OqTpG9LXlB3+y639JAGzl8JSBXLn1J9HTSB3gbKcuInga7bZnXLlxmK94ntTs1EFeZp0lrja2AuBYQ== + version "10.13.2" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.13.2.tgz#2c40c73d57248b57234c4ae6cd9ab9d8186ebc0a" + integrity sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw== prebuild-install@7.1.1: version "7.1.1" @@ -16185,9 +16066,9 @@ prepend-http@^2.0.0: integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== prettier@^2.7.1, prettier@latest: - version "2.8.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" - integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== + version "2.8.7" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450" + integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -16598,19 +16479,19 @@ react-refresh@^0.11.0: integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== react-router-dom@^6.3.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.9.0.tgz#dd8b4e461453bd4cad2e6404493d1a5b4bfea758" - integrity sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q== + version "6.10.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.10.0.tgz#090ddc5c84dc41b583ce08468c4007c84245f61f" + integrity sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg== dependencies: - "@remix-run/router" "1.4.0" - react-router "6.9.0" + "@remix-run/router" "1.5.0" + react-router "6.10.0" -react-router@6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.9.0.tgz#0f503d9becbc62d9e4ddc0f9bd4026e0fd29fbf5" - integrity sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw== +react-router@6.10.0: + version "6.10.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.10.0.tgz#230f824fde9dd0270781b5cb497912de32c0a971" + integrity sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ== dependencies: - "@remix-run/router" "1.4.0" + "@remix-run/router" "1.5.0" react-scripts@^5.0.1: version "5.0.1" @@ -16689,20 +16570,6 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -read-installed@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" - integrity sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ== - dependencies: - debuglog "^1.0.1" - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - semver "2 || 3 || 4 || 5" - slide "~1.1.3" - util-extend "^1.0.1" - optionalDependencies: - graceful-fs "^4.1.2" - read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" @@ -16710,16 +16577,6 @@ read-only-stream@^2.0.0: dependencies: readable-stream "^2.0.2" -read-package-json@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" - integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== - dependencies: - glob "^7.1.1" - json-parse-even-better-errors "^2.3.0" - normalize-package-data "^2.0.0" - npm-normalize-package-bin "^1.0.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -16780,16 +16637,6 @@ readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdir-scoped-modules@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -17284,10 +17131,10 @@ rollup@^2.3.4, rollup@^2.43.1, rollup@^2.56.3: optionalDependencies: fsevents "~2.3.2" -rollup@^3.10.0: - version "3.19.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.19.1.tgz#2b3a31ac1ff9f3afab2e523fa687fef5b0ee20fc" - integrity sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg== +rollup@^3.18.0: + version "3.20.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.20.2.tgz#f798c600317f216de2e4ad9f4d9ab30a89b690ff" + integrity sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg== optionalDependencies: fsevents "~2.3.2" @@ -17424,9 +17271,9 @@ sass-loader@^12.3.0: neo-async "^2.6.2" sass@*: - version "1.59.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.59.3.tgz#a1ddf855d75c70c26b4555df4403e1bbf8e4403f" - integrity sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ== + version "1.60.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.60.0.tgz#657f0c23a302ac494b09a5ba8497b739fb5b5a81" + integrity sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -17772,13 +17619,13 @@ simple-swizzle@^0.2.2: is-arrayish "^0.3.1" sinon@*: - version "15.0.2" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.0.2.tgz#f3e3aacb990bbaa8a7bb976e86118c5dc0154e66" - integrity sha512-PCVP63XZkg0/LOqQH5rEU4LILuvTFMb5tNxTHfs6VUMNnZz2XrnGSTZbAGITjzwQWbl/Bl/8hi4G3zZWjyBwHg== + version "15.0.3" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.0.3.tgz#38005fcd80827177b6aa0245f82401d9ec88994b" + integrity sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw== dependencies: "@sinonjs/commons" "^3.0.0" "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/samsam" "^7.0.1" + "@sinonjs/samsam" "^8.0.0" diff "^5.1.0" nise "^5.1.4" supports-color "^7.2.0" @@ -17813,11 +17660,6 @@ slick@^1.12.2: resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" integrity sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A== -slide@~1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== - smartwrap@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-2.0.2.tgz#7e25d3dd58b51c6ca4aba3a9e391650ea62698a4" @@ -18397,6 +18239,18 @@ subscriptions-transport-ws@^0.11.0: symbol-observable "^1.0.4" ws "^5.2.0 || ^6.0.0 || ^7.0.0" +sucrase@^3.29.0: + version "3.31.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.31.0.tgz#daae4fd458167c5d4ba1cce6aef57b988b417b33" + integrity sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ== + dependencies: + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + sumchecker@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" @@ -18485,9 +18339,9 @@ svelte-preprocess@^4.0.0: strip-indent "^3.0.0" svelte@^3.0.0: - version "3.57.0" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.57.0.tgz#a3969cfe51f25f2a55e75f7b98dbd02c3af0980b" - integrity sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ== + version "3.58.0" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.58.0.tgz#d3e6f103efd6129e51c7d709225ad3b4c052b64e" + integrity sha512-brIBNNB76mXFmU/Kerm4wFnkskBbluBDCjx/8TcpYRb298Yh2dztS2kQ6bhtjMcvUhd5ynClfwpz5h2gnzdQ1A== svg-parser@^2.0.2: version "2.0.4" @@ -18528,7 +18382,7 @@ svgo@^2.7.0: "swipl-stdio@https://github.com/perspect3vism/node-swipl-stdio.git": version "1.0.4" - resolved "https://github.com/perspect3vism/node-swipl-stdio.git#d0d844a7f87ab5ef62b4041ea969d078b95b2d96" + resolved "https://github.com/perspect3vism/node-swipl-stdio.git#a00dbfb99aeacf99cb59448e2a9c92b40a889545" dependencies: debug "^2.6.4" split "^1.0.0" @@ -18577,19 +18431,19 @@ taffydb@2.6.2: integrity sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== tailwindcss@^3.0.2: - version "3.2.7" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.7.tgz#5936dd08c250b05180f0944500c01dce19188c07" - integrity sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ== + version "3.3.1" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.1.tgz#b6662fab6a9b704779e48d083a9fef5a81d2b81e" + integrity sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g== dependencies: arg "^5.0.2" chokidar "^3.5.3" color-name "^1.1.4" - detective "^5.2.1" didyoumean "^1.2.2" dlv "^1.1.3" fast-glob "^3.2.12" glob-parent "^6.0.2" is-glob "^4.0.3" + jiti "^1.17.2" lilconfig "^2.0.6" micromatch "^4.0.5" normalize-path "^3.0.0" @@ -18604,6 +18458,7 @@ tailwindcss@^3.0.2: postcss-value-parser "^4.2.0" quick-lru "^5.1.1" resolve "^1.22.1" + sucrase "^3.29.0" tapable@^1.0.0: version "1.1.3" @@ -18689,9 +18544,9 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5: terser "^5.16.5" terser@^5.0.0, terser@^5.10.0, terser@^5.16.5: - version "5.16.6" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.6.tgz#f6c7a14a378ee0630fbe3ac8d1f41b4681109533" - integrity sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg== + version "5.16.8" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.8.tgz#ccde583dabe71df3f4ed02b65eb6532e0fae15d5" + integrity sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -18720,6 +18575,20 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + throat@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" @@ -18937,6 +18806,11 @@ tryer@^1.0.1: resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + ts-invariant@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" @@ -19031,7 +18905,7 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== @@ -19049,17 +18923,17 @@ tty-browserify@0.0.1: integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== tty-table@^4.1.5: - version "4.1.6" - resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.1.6.tgz#6bd58338f36c94cce478c3337934d8a65ab40a73" - integrity sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw== + version "4.2.1" + resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.2.1.tgz#c06cd76c54542acf4e2b4a0e9a5802984b65cba6" + integrity sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g== dependencies: chalk "^4.1.2" - csv "^5.5.0" - kleur "^4.1.4" + csv "^5.5.3" + kleur "^4.1.5" smartwrap "^2.0.2" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wcwidth "^1.0.1" - yargs "^17.1.1" + yargs "^17.7.1" tunnel-agent@^0.6.0: version "0.6.0" @@ -19073,47 +18947,47 @@ tunnel@0.0.6, tunnel@^0.0.6: resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== -turbo-darwin-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.8.3.tgz#f220459e7636056d9a67bc9ead8dc01c495f9d55" - integrity sha512-bLM084Wr17VAAY/EvCWj7+OwYHvI9s/NdsvlqGp8iT5HEYVimcornCHespgJS/yvZDfC+mX9EQkn3V2JmYgGGw== +turbo-darwin-64@1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.8.8.tgz#f72b1b6275415b17238f450032c8ef5e5fc71777" + integrity sha512-18cSeIm7aeEvIxGyq7PVoFyEnPpWDM/0CpZvXKHpQ6qMTkfNt517qVqUTAwsIYqNS8xazcKAqkNbvU1V49n65Q== -turbo-darwin-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.8.3.tgz#1529f0755cd683e372140d6b9532efe4ca523b38" - integrity sha512-4oZjXtzakopMK110kue3z/hqu3WLv+eDLZOX1NGdo49gqca9BeD8GbH+sXpAp6tqyeuzpss+PIliVYuyt7LgbA== +turbo-darwin-arm64@1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.8.8.tgz#8ec78848e0d5978fd732b3588a1b406fdb978839" + integrity sha512-ruGRI9nHxojIGLQv1TPgN7ud4HO4V8mFBwSgO6oDoZTNuk5ybWybItGR+yu6fni5vJoyMHXOYA2srnxvOc7hjQ== -turbo-linux-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.8.3.tgz#1aed7f4bb4492cb4c9d8278044a66d3c6107ee5b" - integrity sha512-uvX2VKotf5PU14FCxJA5iHItPQno2JWzerMd+g3/h/Asay6dvxvtVjc39MQeGT0H5njSvzVKFkT+3/5q8lgOEg== +turbo-linux-64@1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.8.8.tgz#b1f707b23bc6e22b2894dd8063fc2fa4dbb6ffb9" + integrity sha512-N/GkHTHeIQogXB1/6ZWfxHx+ubYeb8Jlq3b/3jnU4zLucpZzTQ8XkXIAfJG/TL3Q7ON7xQ8yGOyGLhHL7MpFRg== -turbo-linux-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.8.3.tgz#0269b31b2947c40833052325361a94193ca46150" - integrity sha512-E1p+oH3XKMaPS4rqWhYsL4j2Pzc0d/9P5KU7Kn1kqVLo2T3iRA7n2KVULEieUNE0nTH+aIJPXYXOpqCI5wFJaA== +turbo-linux-arm64@1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.8.8.tgz#34575bdffd2af8c835d9ba3dd9e3a83e0d31dac9" + integrity sha512-hKqLbBHgUkYf2Ww8uBL9UYdBFQ5677a7QXdsFhONXoACbDUPvpK4BKlz3NN7G4NZ+g9dGju+OJJjQP0VXRHb5w== -turbo-windows-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.8.3.tgz#cf94f427414eb8416c1fe22229f9a578dd1ec78b" - integrity sha512-cnzAytHtoLXd0J7aNzRpZFpL/GTjcBmkvAPlbOdf/Pl1iwS4qzGrudZQ+OM1lmLgLIfBPIavsGHBknTwTNib4A== +turbo-windows-64@1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.8.8.tgz#73f67969d54269c95cbf7f082e22c20368aedddc" + integrity sha512-2ndjDJyzkNslXxLt+PQuU21AHJWc8f6MnLypXy3KsN4EyX/uKKGZS0QJWz27PeHg0JS75PVvhfFV+L9t9i+Yyg== -turbo-windows-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.8.3.tgz#db5739fe1d6907d07874779f6d5fac87b3f3ca6a" - integrity sha512-ulIiItNm2w/zYJdD5/oAzjzNns1IjbpweRzpsE8tLXaWwo6+fnXXkyloUug0IUhcd2k6fJXfoiDZfygqpOVuXg== +turbo-windows-arm64@1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.8.8.tgz#c80b9a170adf6ee028e9dcae45b07755af83f3f2" + integrity sha512-xCA3oxgmW9OMqpI34AAmKfOVsfDljhD5YBwgs0ZDsn5h3kCHhC4x9W5dDk1oyQ4F5EXSH3xVym5/xl1J6WRpUg== turbo@latest: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.8.3.tgz#6fe1ce749a38b54f15f0fcb24ee45baefa98e948" - integrity sha512-zGrkU1EuNFmkq6iky6LcMqD4h0OLE8XysVFxQWRIZbcTNnf0XAycbsbeEyiJpiWeqb7qtg2bVuY9EYcNoNhVuQ== + version "1.8.8" + resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.8.8.tgz#8bb331e3f0bd9656b20321339e91e899ad499012" + integrity sha512-qYJ5NjoTX+591/x09KgsDOPVDUJfU9GoS+6jszQQlLp1AHrf1wRFA3Yps8U+/HTG03q0M4qouOfOLtRQP4QypA== optionalDependencies: - turbo-darwin-64 "1.8.3" - turbo-darwin-arm64 "1.8.3" - turbo-linux-64 "1.8.3" - turbo-linux-arm64 "1.8.3" - turbo-windows-64 "1.8.3" - turbo-windows-arm64 "1.8.3" + turbo-darwin-64 "1.8.8" + turbo-darwin-arm64 "1.8.8" + turbo-linux-64 "1.8.8" + turbo-linux-arm64 "1.8.8" + turbo-windows-64 "1.8.8" + turbo-windows-arm64 "1.8.8" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" @@ -19240,9 +19114,9 @@ typedoc-plugin-markdown@^3.13.6: handlebars "^4.7.7" typedoc@^0.23.16: - version "0.23.26" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.26.tgz#ae082683698bad68757d8fe619242a56d6b5bf36" - integrity sha512-5m4KwR5tOLnk0OtMaRn9IdbeRM32uPemN9kur7YK9wFqx8U0CYrvO9aVq6ysdZSV1c824BTm+BuQl2Ze/k1HtA== + version "0.23.28" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.28.tgz#3ce9c36ef1c273fa849d2dea18651855100d3ccd" + integrity sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w== dependencies: lunr "^2.3.9" marked "^4.2.12" @@ -19250,9 +19124,9 @@ typedoc@^0.23.16: shiki "^0.14.1" typescript@*: - version "5.0.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.2.tgz#891e1a90c5189d8506af64b9ef929fca99ba1ee5" - integrity sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw== + version "5.0.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.3.tgz#fe976f0c826a88d0a382007681cbb2da44afdedf" + integrity sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA== typescript@^4.2.4, typescript@^4.5.5, typescript@^4.6.2: version "4.9.5" @@ -19536,11 +19410,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util-extend@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" - integrity sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA== - util.promisify@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" @@ -19700,14 +19569,14 @@ vfile@^4.0.0: vfile-message "^2.0.0" vite@^4.0.1, vite@^4.1.1: - version "4.1.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.4.tgz#170d93bcff97e0ebc09764c053eebe130bfe6ca0" - integrity sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg== + version "4.2.1" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.2.1.tgz#6c2eb337b0dfd80a9ded5922163b94949d7fc254" + integrity sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg== dependencies: - esbuild "^0.16.14" + esbuild "^0.17.5" postcss "^8.4.21" resolve "^1.22.1" - rollup "^3.10.0" + rollup "^3.18.0" optionalDependencies: fsevents "~2.3.2" @@ -19791,12 +19660,12 @@ web-vitals@^2.1.4: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== -webcrypto-core@^1.7.4: - version "1.7.6" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.6.tgz#e32c4a12a13de4251f8f9ef336a6cba7cdec9b55" - integrity sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA== +webcrypto-core@^1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" + integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== dependencies: - "@peculiar/asn1-schema" "^2.1.6" + "@peculiar/asn1-schema" "^2.3.6" "@peculiar/json-schema" "^1.1.12" asn1js "^3.0.1" pvtsutils "^1.3.2" @@ -19834,9 +19703,9 @@ webpack-dev-middleware@^5.3.1: schema-utils "^4.0.0" webpack-dev-server@^4.6.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.12.0.tgz#e2dcad4d43e486c3bac48ddbf346e77ef03c7428" - integrity sha512-XRN9YRnvOj3TQQ5w/0pR1y1xDcVnbWtNkTri46kuEbaWUPTHsWUvOyAAI7PZHLY+hsFki2kRltJjKMw7e+IiqA== + version "4.13.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.13.2.tgz#d97445481d78691efe6d9a3b230833d802fc31f9" + integrity sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" @@ -19899,9 +19768,9 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.64.4: - version "5.76.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.1.tgz#7773de017e988bccb0f13c7d75ec245f377d295c" - integrity sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ== + version "5.77.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.77.0.tgz#dea3ad16d7ea6b84aa55fa42f4eac9f30e7eb9b4" + integrity sha512-sbGNjBr5Ya5ss91yzjeJTLKyfiwo5C628AFjEa6WSXcZa4E+F57om3Cc8xLb1Jh0b243AWuSYRf3dn7HVeFQ9Q== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" @@ -20458,7 +20327,7 @@ yargs@^15.1.0, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.1.1, yargs@^17.3.1: +yargs@^17.3.1, yargs@^17.7.1: version "17.7.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== From bb5b006ff955a8374694c1f223236e3e9646b1f2 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 01:26:21 +0100 Subject: [PATCH 078/722] Load executor bundle with include_str! and custom StringModuleLoader --- rust-executor/src/main.rs | 105 ++++++++++++++++++++++++++++++++------ 1 file changed, 89 insertions(+), 16 deletions(-) diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 963fb5fed..742e8bcfd 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,12 +1,16 @@ -//use deno_runtime::deno_core::include_js_files; +use deno_core::ModuleSource; +use deno_core::ResolutionKind; +use deno_core::futures::FutureExt; +use deno_runtime::deno_core::include_js_files; //use deno_runtime::deno_core::op; -//use deno_runtime::deno_core::Extension; +use deno_runtime::deno_core::Extension; use deno_runtime::deno_core::resolve_path; //use deno_core::{JsRuntime, RuntimeOptions}; use deno_runtime::deno_core::FsModuleLoader; use deno_runtime::deno_web::BlobStore; use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel; +use url::Url; use std::rc::Rc; use std::sync::Arc; use deno_runtime::deno_core::error::AnyError; @@ -46,26 +50,94 @@ fn op_remove_file(path: String) -> Result<(), AnyError> { } */ -async fn run_js(file_path: &str) -> Result<(), AnyError> { - //let main_module = deno_core::resolve_path(file_path, std::env::current_dir()?.as_ref())?; - /*let filesystem_extension = Extension::builder("runjs") - .esm(include_js_files!( +use deno_core::{anyhow}; +use deno_core::ModuleLoader; +use deno_core::ModuleSpecifier; +use std::collections::HashMap; +use std::pin::Pin; +use deno_core::ModuleSourceFuture; + +pub struct StringModuleLoader { + modules: HashMap, +} + +impl StringModuleLoader { + pub fn new() -> Self { + StringModuleLoader { + modules: HashMap::new(), + } + } + + pub fn add_module(&mut self, specifier: &str, code: &str) { + self.modules.insert(specifier.to_string(), code.to_string()); + } +} + +impl ModuleLoader for StringModuleLoader { + fn resolve( + &self, + specifier: &str, + referrer: &str, + _kind: ResolutionKind, + ) -> Result { + let module_specifier = deno_core::resolve_import(specifier, referrer)?; + Ok(module_specifier) + } + + fn load( + &self, + module_specifier: &ModuleSpecifier, + _maybe_referrer: Option, + _is_dyn_import: bool, + ) -> Pin> { + let module_code = self.modules.get(module_specifier.as_str()).cloned(); + let module_specifier = module_specifier.clone(); + let fut = async move { + match module_code { + Some(code) => Ok(ModuleSource { + code: code.into(), + module_type: deno_core::ModuleType::JavaScript, + module_url_specified: module_specifier.clone().to_string(), + module_url_found: module_specifier.clone().to_string(), + }), + None => Err(anyhow::anyhow!("Module not found: {}", module_specifier)), + } + }; + Box::pin(fut) + } +} + +async fn run_js() -> Result<(), AnyError> { + let main_module = resolve_path("executor", &std::env::current_dir().unwrap()).unwrap(); + let executor_code = include_str!("../../executor/lib/bundle.js"); + let mut loader = StringModuleLoader::new(); + loader.add_module(main_module.as_str(), executor_code); + + let executor_extension = Extension::builder("runtime") + //.js(include_js_files!( + // executor "../../executor/lib/bundle.js", + //)) + //.esm(include_js_files!( + // executor "../../executor/lib/bundle.js", + //)) + .js(include_js_files!( runtime "runtime.js", - )) + )) .ops(vec![ - op_read_file::decl(), - op_write_file::decl(), - op_remove_file::decl(), + //op_read_file::decl(), + //op_write_file::decl(), + //op_remove_file::decl(), ]) .build(); -*/ - let main_module = resolve_path(file_path, &std::env::current_dir().unwrap()).unwrap(); + + //let main_module = Url::from_file_path("executor").unwrap(); + let options = WorkerOptions { bootstrap: BootstrapOptions::default(), - extensions: vec![], + extensions: vec![executor_extension], startup_snapshot: Some(deno_runtime::js::deno_isolate_init()), unsafely_ignore_certificate_errors: None, root_cert_store: None, @@ -78,7 +150,7 @@ async fn run_js(file_path: &str) -> Result<(), AnyError> { maybe_inspector_server: None, should_break_on_first_statement: false, should_wait_for_inspector_session: false, - module_loader: Rc::new(FsModuleLoader), + module_loader: Rc::new(loader), npm_resolver: None, get_error_class_fn: None, cache_storage_dir: None, @@ -103,8 +175,9 @@ async fn run_js(file_path: &str) -> Result<(), AnyError> { //runtime. register_op("op_print", op_sync(op_print)); - //worker.execute_script("[runjs:runtime.js]", include_str!("./runtime.js")).unwrap(); + //worker.execute_script("[executor]", include_str!("../../executor/lib/bundle.js")).unwrap(); worker.execute_main_module(&main_module).await.unwrap(); + //worker.execute_script("[rust]", "console.log('from Rust.', executor)").unwrap(); //let mut worker: MainWorker = create_worker(file_path); //let mut js_runtime = worker.js_runtime; @@ -126,7 +199,7 @@ fn main() { .enable_all() .build() .unwrap(); - let run = run_js("../executor/lib/bundle.js"); + let run = run_js(); //let run = run_js("./example.js"); if let Err(error) = runtime.block_on(run) { eprintln!("error: {}", error); From 39b0b8009b17c7ab73306c99b03afc218f1ed872 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 01:27:01 +0100 Subject: [PATCH 079/722] Configure esbuild for Deno --- executor/scripts/bundle.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js index 56acb7aab..01faf2889 100644 --- a/executor/scripts/bundle.js +++ b/executor/scripts/bundle.js @@ -42,7 +42,9 @@ esbuild bundle: true, platform: 'node', target: 'deno1.3', - format: 'esm', + format: 'iife', + globalName: 'executor', + charset: 'ascii', plugins: [ { name: `node:net`, From 661eeb0b62c665d0eca1ac5959ac5dbb5af382d0 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 01:30:04 +0100 Subject: [PATCH 080/722] clean up --- rust-executor/src/main.rs | 52 ++++++--------------------------------- 1 file changed, 8 insertions(+), 44 deletions(-) diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 742e8bcfd..b6ebb5bc3 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,16 +1,13 @@ use deno_core::ModuleSource; use deno_core::ResolutionKind; -use deno_core::futures::FutureExt; use deno_runtime::deno_core::include_js_files; //use deno_runtime::deno_core::op; use deno_runtime::deno_core::Extension; use deno_runtime::deno_core::resolve_path; -//use deno_core::{JsRuntime, RuntimeOptions}; -use deno_runtime::deno_core::FsModuleLoader; +//use deno_core::{JsRuntime, RuntimeOptions} use deno_runtime::deno_web::BlobStore; use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel; -use url::Url; use std::rc::Rc; use std::sync::Arc; use deno_runtime::deno_core::error::AnyError; @@ -18,17 +15,12 @@ use deno_runtime::worker::MainWorker; use deno_runtime::permissions::{PermissionsContainer}; use deno_runtime::worker::WorkerOptions; use deno_runtime::BootstrapOptions; - -//use deno_core::{JsRuntime, OpState, ZeroCopyBuf}; -//use std::cell::RefCell; - -/* -// Define the `op_print` op -fn op_print(state: &mut OpState, msg: ZeroCopyBuf, _: ()) -> Result<(), ()> { - let stdout = &mut state.borrow::>().borrow_mut(); - stdout.write_all(&msg).map_err(|_| ()) -} -*/ +use deno_core::{anyhow}; +use deno_core::ModuleLoader; +use deno_core::ModuleSpecifier; +use std::collections::HashMap; +use std::pin::Pin; +use deno_core::ModuleSourceFuture; /* #[op] @@ -50,12 +42,7 @@ fn op_remove_file(path: String) -> Result<(), AnyError> { } */ -use deno_core::{anyhow}; -use deno_core::ModuleLoader; -use deno_core::ModuleSpecifier; -use std::collections::HashMap; -use std::pin::Pin; -use deno_core::ModuleSourceFuture; + pub struct StringModuleLoader { modules: HashMap, @@ -130,11 +117,6 @@ async fn run_js() -> Result<(), AnyError> { ]) .build(); - - - - //let main_module = Url::from_file_path("executor").unwrap(); - let options = WorkerOptions { bootstrap: BootstrapOptions::default(), extensions: vec![executor_extension], @@ -163,34 +145,16 @@ async fn run_js() -> Result<(), AnyError> { }; let permissions = PermissionsContainer::allow_all(); - //let mut worker = MainWorker::bootstrap_from_options(main_module.clone(), permissions, options); - let mut worker = MainWorker::from_options(main_module.clone(), permissions, options); worker.bootstrap(&BootstrapOptions::default()); - - - //let runtime = &mut worker.js_runtime; - - // Register the `op_print` op - //runtime. register_op("op_print", op_sync(op_print)); - - - //worker.execute_script("[executor]", include_str!("../../executor/lib/bundle.js")).unwrap(); worker.execute_main_module(&main_module).await.unwrap(); //worker.execute_script("[rust]", "console.log('from Rust.', executor)").unwrap(); - //let mut worker: MainWorker = create_worker(file_path); - //let mut js_runtime = worker.js_runtime; - //js_runtime.register_op("read_file", op_read_file); - - - //let mod_id = worker.preload_main_module(&main_module, None).await?; //let result = js_runtime.mod_evaluate(mod_id); //js_runtime.run_event_loop(false).await?; //result.await? worker.run_event_loop(false).await?; - //worker.execute_main_module(&main_module).await?; Ok(()) } From 1dfd6f005e962b8911bfdf7871e4c339c9b29eda Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 11:06:12 +0100 Subject: [PATCH 081/722] Importing init from executor bundle to new main.js working --- executor/lib/deno.js | 4 +++- executor/scripts/bundle.js | 2 +- rust-executor/src/main.js | 4 ++++ rust-executor/src/main.rs | 24 ++++++++++++------------ 4 files changed, 20 insertions(+), 14 deletions(-) create mode 100644 rust-executor/src/main.js diff --git a/executor/lib/deno.js b/executor/lib/deno.js index 5640b12e5..544bd8d06 100644 --- a/executor/lib/deno.js +++ b/executor/lib/deno.js @@ -6,4 +6,6 @@ const Buffer = globalThis.Buffer; const setImmediate = globalThis.setImmediate; const clearImmediate = globalThis.clearImmediate; -import { init } from "./main.js" +import { init as internalInit } from "./main.js" +console.log("Hello from deno.js") +export const init = internalInit \ No newline at end of file diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js index 01faf2889..2c74ce99a 100644 --- a/executor/scripts/bundle.js +++ b/executor/scripts/bundle.js @@ -42,7 +42,7 @@ esbuild bundle: true, platform: 'node', target: 'deno1.3', - format: 'iife', + format: 'esm', globalName: 'executor', charset: 'ascii', plugins: [ diff --git a/rust-executor/src/main.js b/rust-executor/src/main.js new file mode 100644 index 000000000..924911f95 --- /dev/null +++ b/rust-executor/src/main.js @@ -0,0 +1,4 @@ +import { init } from 'https://ad4m.runtime/executor' + +console.log("Hello from main") +init() \ No newline at end of file diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index b6ebb5bc3..40be7929b 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -4,10 +4,10 @@ use deno_core::ResolutionKind; use deno_runtime::deno_core::include_js_files; //use deno_runtime::deno_core::op; use deno_runtime::deno_core::Extension; -use deno_runtime::deno_core::resolve_path; //use deno_core::{JsRuntime, RuntimeOptions} use deno_runtime::deno_web::BlobStore; use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel; +use url::Url; use std::rc::Rc; use std::sync::Arc; use deno_runtime::deno_core::error::AnyError; @@ -95,12 +95,16 @@ impl ModuleLoader for StringModuleLoader { } async fn run_js() -> Result<(), AnyError> { - let main_module = resolve_path("executor", &std::env::current_dir().unwrap()).unwrap(); - let executor_code = include_str!("../../executor/lib/bundle.js"); + let main_module = Url::parse("https://ad4m.runtime/main").unwrap(); + let executor_module = Url::parse("https://ad4m.runtime/executor").unwrap(); + let test_module = Url::parse("https://ad4m.runtime/test").unwrap(); + let mut loader = StringModuleLoader::new(); - loader.add_module(main_module.as_str(), executor_code); + loader.add_module(executor_module.as_str(), include_str!("../../executor/lib/bundle.js")); + loader.add_module(test_module.as_str(), include_str!("./testlib.js")); + loader.add_module(main_module.as_str(), include_str!("main.js")); - let executor_extension = Extension::builder("runtime") + let runtime_extension = Extension::builder("runtime") //.js(include_js_files!( // executor "../../executor/lib/bundle.js", //)) @@ -119,7 +123,7 @@ async fn run_js() -> Result<(), AnyError> { let options = WorkerOptions { bootstrap: BootstrapOptions::default(), - extensions: vec![executor_extension], + extensions: vec![runtime_extension], startup_snapshot: Some(deno_runtime::js::deno_isolate_init()), unsafely_ignore_certificate_errors: None, root_cert_store: None, @@ -147,13 +151,9 @@ async fn run_js() -> Result<(), AnyError> { let permissions = PermissionsContainer::allow_all(); let mut worker = MainWorker::from_options(main_module.clone(), permissions, options); worker.bootstrap(&BootstrapOptions::default()); - worker.execute_main_module(&main_module).await.unwrap(); - //worker.execute_script("[rust]", "console.log('from Rust.', executor)").unwrap(); + let main_id = worker.preload_side_module(&main_module).await.unwrap(); + worker.evaluate_module(main_id).await.unwrap(); - //let mod_id = worker.preload_main_module(&main_module, None).await?; - //let result = js_runtime.mod_evaluate(mod_id); - //js_runtime.run_event_loop(false).await?; - //result.await? worker.run_event_loop(false).await?; Ok(()) } From fe0b588ce6f5ece08d625d9ed0459ec3ebc2f104 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 12:07:52 +0100 Subject: [PATCH 082/722] WIP: providing config to executor init --- executor/lib/deno.js | 7 ++++++- rust-executor/src/main.js | 42 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/executor/lib/deno.js b/executor/lib/deno.js index 544bd8d06..726ed0514 100644 --- a/executor/lib/deno.js +++ b/executor/lib/deno.js @@ -7,5 +7,10 @@ const setImmediate = globalThis.setImmediate; const clearImmediate = globalThis.clearImmediate; import { init as internalInit } from "./main.js" +import * as internalPath from "../deno_std-0.177.0/node/path.ts"; +import * as internalOs from "../deno_std-0.177.0/node/os.ts" console.log("Hello from deno.js") -export const init = internalInit \ No newline at end of file +export const init = internalInit +export const path = internalPath +export const os = internalOs + diff --git a/rust-executor/src/main.js b/rust-executor/src/main.js index 924911f95..da1aeb1c5 100644 --- a/rust-executor/src/main.js +++ b/rust-executor/src/main.js @@ -1,4 +1,42 @@ -import { init } from 'https://ad4m.runtime/executor' +import { init, path, os } from 'https://ad4m.runtime/executor' console.log("Hello from main") -init() \ No newline at end of file + +let appDataPath = path.join(os.homedir(), 'ad4m', 'tests', 'ad4m1'); +const binaryPath = path.join(appDataPath, 'binary'); +const swiplHomePath = (process.platform == "win32" ? path.join(appDataPath, 'swipl/') : path.join(appDataPath, 'swipl/lib/swipl/')) +const swiplPath = path.join(appDataPath, 'swipl/bin/swipl'); +const gqlPort = 13000 +const ipfsRepoPath = path.join(appDataPath, 'ipfs') + +//if (!fs.existsSync(appDataPath)) { +// fs.mkdirSync(appDataPath); +//} +//const bLanguage = bootstrapLanguage ? await import(path.isAbsolute(bootstrapLanguage) ? bootstrapLanguage: path.join(__dirname, bootstrapLanguage)) : []; +//const bPerspective = bootstrapPerspective ? await import(path.isAbsolute(bootstrapPerspective) ? bootstrapPerspective: path.join(__dirname, bootstrapPerspective)) : []; + +const config = { +appDataPath: appDataPath, +resourcePath: binaryPath, +networkBootstrapSeed: appDataPath, +languageLanguageOnly: true, +bootstrapFixtures: { + languages: [], + perspectives: [], +}, +appLangAliases: {}, +mocks: false, +runDappServer: false, +gqlPort, +hcPortAdmin: undefined, +hcPortApp: undefined, +ipfsRepoPath, +ipfsSwarmPort: undefined, +connectHolochain: true, +reqCredential: undefined, +swiplPath, +swiplHomePath +}; + +const core = await init(config) +console.log(core) \ No newline at end of file From 714037ec1fecf5378e78fc244abcfd337a7039a4 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 12:09:21 +0100 Subject: [PATCH 083/722] Overwrite Error.captureStackTrace() with a polyfill that doesn't make Deno panic --- rust-executor/src/main.js | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/rust-executor/src/main.js b/rust-executor/src/main.js index da1aeb1c5..fa0635e2f 100644 --- a/rust-executor/src/main.js +++ b/rust-executor/src/main.js @@ -1,3 +1,53 @@ +Error.captureStackTrace = function (err, constructorOpt) { + if (typeof Error.prepareStackTrace === 'function') { + const fakeCallSite = { + getThis() { + return undefined; + }, + getTypeName() { + return undefined; + }, + getFunction() { + return undefined; + }, + getFunctionName() { + return undefined; + }, + getMethodName() { + return undefined; + }, + getFileName() { + return err.fileName; + }, + getLineNumber() { + return err.lineNumber; + }, + getColumnNumber() { + return err.columnNumber; + }, + getEvalOrigin() { + return undefined; + }, + isToplevel() { + return false; + }, + isEval() { + return false; + }, + isNative() { + return false; + }, + isConstructor() { + return false; + }, + }; + const structuredStackTrace = [fakeCallSite]; + err.stack = Error.prepareStackTrace(err, structuredStackTrace); + } else { + err.stack = err.stack || err.toString(); + } +} + import { init, path, os } from 'https://ad4m.runtime/executor' console.log("Hello from main") From 87a3d8c54dca22326886de4b4dbf1bad52177720 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 12:14:25 +0100 Subject: [PATCH 084/722] Executor running in Deno :) --- rust-executor/src/main.js | 2 +- rust-executor/src/runtime.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/main.js b/rust-executor/src/main.js index fa0635e2f..e8566d4f5 100644 --- a/rust-executor/src/main.js +++ b/rust-executor/src/main.js @@ -68,7 +68,7 @@ const ipfsRepoPath = path.join(appDataPath, 'ipfs') const config = { appDataPath: appDataPath, resourcePath: binaryPath, -networkBootstrapSeed: appDataPath, +networkBootstrapSeed: path.join(appDataPath, "mainnet_seed.seed"), languageLanguageOnly: true, bootstrapFixtures: { languages: [], diff --git a/rust-executor/src/runtime.js b/rust-executor/src/runtime.js index d8ef5a9b1..4392b9302 100644 --- a/rust-executor/src/runtime.js +++ b/rust-executor/src/runtime.js @@ -12,6 +12,9 @@ error: (...args) => { core.print(`[err]: ${argsToMessage(...args)}\n`, true); }, + warn: (...args) => { + core.print(`[warn]: ${argsToMessage(...args)}\n`, true); + } }; globalThis.runjs = { From 8cb44fbf5afb0ff43e8fc2547d697c1541fafa3c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Apr 2023 16:18:51 +0100 Subject: [PATCH 085/722] add all graphql resolvers --- Cargo.lock | 99 ++++- rust-executor/Cargo.toml | 4 + rust-executor/src/graphql_types.rs | 328 ++++++++++++++ rust-executor/src/mutation_resolvers.rs | 466 ++++++++++++++++++++ rust-executor/src/query_resolvers.rs | 244 ++++++++++ rust-executor/src/subscription_resolvers.rs | 107 +++++ 6 files changed, 1242 insertions(+), 6 deletions(-) create mode 100644 rust-executor/src/graphql_types.rs create mode 100644 rust-executor/src/mutation_resolvers.rs create mode 100644 rust-executor/src/query_resolvers.rs create mode 100644 rust-executor/src/subscription_resolvers.rs diff --git a/Cargo.lock b/Cargo.lock index 18605ab79..1a7cb5f0d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -639,6 +639,23 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "bson" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de0aa578035b938855a710ba58d43cfb4d435f3619f99236fb35922a574d6cb1" +dependencies = [ + "base64 0.13.1", + "chrono", + "hex", + "lazy_static", + "linked-hash-map", + "rand 0.7.3", + "serde", + "serde_json", + "uuid 0.8.2", +] + [[package]] name = "bstr" version = "0.2.17" @@ -777,9 +794,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.22" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" dependencies = [ "iana-time-zone", "js-sys", @@ -1857,6 +1874,17 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "derive_utils" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "532b4c15dccee12c7044f1fcad956e98410860b22231e44a3b827464797ca7bf" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "destructure_traitobject" version = "0.2.0" @@ -2409,6 +2437,17 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +[[package]] +name = "futures-enum" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3422d14de7903a52e9dbc10ae05a7e14445ec61890100e098754e120b2bd7b1e" +dependencies = [ + "derive_utils", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "futures-executor" version = "0.3.28" @@ -3429,6 +3468,50 @@ dependencies = [ "treediff", ] +[[package]] +name = "juniper" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52adf17d43d0b526eed31fac15d9312941c5c2558ffbfb105811690b96d6e2f1" +dependencies = [ + "async-trait", + "bson", + "chrono", + "fnv", + "futures", + "futures-enum", + "graphql-parser 0.3.0", + "indexmap", + "juniper_codegen", + "serde", + "smartstring", + "static_assertions", + "url", + "uuid 0.8.2", +] + +[[package]] +name = "juniper_codegen" +version = "0.15.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aee97671061ad50301ba077d054d295e01d31a1868fbd07902db651f987e71db" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "juniper_subscriptions" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2983b26a1e12b691c17432aee3881d8bec4a94d6c64bc933c0eaf6d9e3429f13" +dependencies = [ + "futures", + "juniper", +] + [[package]] name = "keccak" version = "0.1.3" @@ -4591,9 +4674,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.5.0" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f400b0f7905bf702f9f3dc3df5a121b16c54e9e8012c082905fdf09a931861a" +checksum = "7b1403e8401ad5dedea73c626b99758535b342502f8d1e361f4a2dd952749122" dependencies = [ "thiserror", "ucd-trie", @@ -5292,8 +5375,12 @@ dependencies = [ name = "rust-executor" version = "0.1.0" dependencies = [ + "chrono", "deno_core", "deno_runtime", + "futures", + "juniper", + "juniper_subscriptions", "tokio", "url", ] @@ -5626,9 +5713,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.89" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" +checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" dependencies = [ "indexmap", "itoa 1.0.4", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 20d8cf168..0df5c4bfc 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -10,3 +10,7 @@ deno_core = "0.179.0" deno_runtime = "0.105.0" tokio = { version = "1.25.0", features = ["full"] } url = "2.3.1" +juniper = "0.15.11" +chrono = "0.4.24" +juniper_subscriptions = "0.16.0" +futures = "0.3.28" diff --git a/rust-executor/src/graphql_types.rs b/rust-executor/src/graphql_types.rs new file mode 100644 index 000000000..ce331b1c2 --- /dev/null +++ b/rust-executor/src/graphql_types.rs @@ -0,0 +1,328 @@ +use juniper::{GraphQLInputObject, GraphQLObject, GraphQLScalarValue}; + +#[derive(GraphQLObject, Default)] +pub struct Agent { + did: String, + #[graphql(name = "directMessageLanguage")] + direct_message_language: Option, + perspective: Option, +} + +#[derive(GraphQLObject, Default)] +pub struct AgentSignature { + public_key: String, + signature: String, +} + +#[derive(GraphQLObject, Default)] +pub struct AgentStatus { + did: Option, + did_document: Option, + error: Option, + is_initialized: bool, + is_unlocked: bool, +} + +#[derive(GraphQLObject, Default)] +pub struct Apps { + auth: AuthInfo, + request_id: String, + revoked: Option, + token: String, +} + +#[derive(GraphQLObject, Default)] +pub struct AuthInfo { + app_desc: String, + app_icon_path: Option, + app_name: String, + app_url: String, + capabilities: Vec, +} + +#[derive(GraphQLInputObject, Default)] +pub struct AuthInfoInput { + #[graphql(name = "appDesc")] + app_desc: String, + #[graphql(name = "appDomain")] + app_domain: String, + #[graphql(name = "appIconPath")] + app_icon_path: Option, + #[graphql(name = "appName")] + app_name: String, + #[graphql(name = "appUrl")] + app_url: Option, + #[graphql(name = "capabilities")] + capabilities: Vec, +} + +#[derive(GraphQLObject, Default)] +pub struct Capability { + can: Vec, + with: Resource, +} + +#[derive(GraphQLInputObject, Default)] +pub struct CapabilityInput { + can: Vec, + with: ResourceInput, +} + +#[derive(GraphQLScalarValue)] +#[graphql(transparent)] +// The javascript `Date` as string. pub struct represents date and time as the ISO Date string. +pub struct DateTime(chrono::DateTime); + +#[derive(GraphQLObject, Default)] +pub struct EntanglementProof { + #[graphql(name = "deviceKey")] + device_key: String, + #[graphql(name = "deviceKeySignedByDid")] + device_key_signed_by_did: String, + #[graphql(name = "deviceKeyType")] + device_key_type: String, + #[graphql(name = "did")] + did: String, + #[graphql(name = "didSignedByDeviceKey")] + did_signed_by_device_key: Option, + #[graphql(name = "didSigningKeyId")] + did_signing_key_id: String, +} + +#[derive(GraphQLInputObject, Default)] +pub struct EntanglementProofInput { + #[graphql(name = "deviceKey")] + device_key: String, + #[graphql(name = "deviceKeySignedByDid")] + device_key_signed_by_did: String, + #[graphql(name = "deviceKeyType")] + device_key_type: String, + #[graphql(name = "did")] + did: String, + #[graphql(name = "didSignedByDeviceKey")] + did_signed_by_device_key: String, + #[graphql(name = "didSigningKeyId")] + did_signing_key_id: String, +} + +#[derive(GraphQLObject, Default)] +pub struct ExceptionInfo { + addon: Option, + message: String, + title: String, + r#type: f64, +} + +#[derive(GraphQLObject, Default)] +pub struct ExpressionProof { + invalid: Option, + key: Option, + signature: Option, + valid: Option, +} + +#[derive(GraphQLInputObject, Default)] +pub struct ExpressionProofInput { + invalid: Option, + key: Option, + signature: Option, + valid: Option, +} + +#[derive(GraphQLObject, Default)] +pub struct ExpressionRendered { + pub author: String, + pub data: String, + pub icon: Icon, + pub language: LanguageRef, + pub proof: ExpressionProof, + pub timestamp: String, +} + +#[derive(GraphQLObject, Default)] +pub struct Icon { + pub code: String, +} + +#[derive(GraphQLInputObject, Default)] +pub struct InteractionCall { + pub name: String, + pub parameters_stringified: String, +} + +#[derive(GraphQLObject, Default)] +pub struct InteractionMeta { + pub label: Option, + pub name: String, + pub parameters: Vec, +} + +#[derive(GraphQLObject, Default)] +pub struct InteractionParameter { + pub name: String, + pub type_: String, +} + +#[derive(GraphQLObject, Default)] +pub struct LanguageHandle { + pub address: String, + pub constructor_icon: Option, + pub icon: Option, + pub name: String, + pub settings: Option, + pub settings_icon: Option, +} + +#[derive(GraphQLObject, Default)] +pub struct LanguageMeta { + pub address: String, + pub author: String, + pub description: Option, + pub name: String, + pub possible_template_params: Option>, + pub source_code_link: Option, + pub template_applied_params: Option, + pub template_source_language_address: Option, + pub templated: Option, +} + +#[derive(GraphQLInputObject, Default)] +pub struct LanguageMetaInput { + pub description: String, + pub name: String, + pub possible_template_params: Vec, + pub source_code_link: Option, +} + +#[derive(GraphQLObject, Default)] +pub struct LanguageRef { + pub address: String, + pub name: String, +} + +#[derive(GraphQLObject, Default)] +pub struct Link { + pub predicate: Option, + pub source: String, + pub target: String, +} + +#[derive(GraphQLObject, Default)] +pub struct LinkExpression { + pub author: String, + pub data: Link, + pub proof: ExpressionProof, + pub timestamp: String, +} + +#[derive(GraphQLInputObject, Default)] +pub struct LinkExpressionInput { + pub author: String, + pub data: LinkInput, + pub proof: ExpressionProofInput, + pub timestamp: String, +} + +#[derive(GraphQLObject, Default)] +pub struct LinkExpressionMutations { + pub additions: Vec, + pub removals: Vec, +} + +#[derive(GraphQLObject, Default)] +pub struct LinkExpressionUpdated { + pub new_link: LinkExpression, + pub old_link: LinkExpression, +} + +#[derive(GraphQLInputObject, Default)] +pub struct LinkInput { + pub predicate: Option, + pub source: String, + pub target: String, +} + +#[derive(GraphQLInputObject, Default)] +pub struct LinkMutations { + pub additions: Vec, + pub removals: Vec, +} + +#[derive(GraphQLInputObject, Default)] +pub struct LinkQuery { + pub from_date: Option, + pub limit: Option, + pub predicate: Option, + pub source: Option, + pub target: Option, + pub until_date: Option, +} + +#[derive(GraphQLObject, Default)] +pub struct Neighbourhood { + pub link_language: String, + pub meta: Perspective, +} + +#[derive(GraphQLObject, Default)] +pub struct OnlineAgent { + pub did: String, + pub status: PerspectiveExpression, +} + +#[derive(GraphQLObject, Default)] +pub struct Perspective { + pub links: Vec, +} + +#[derive(GraphQLObject, Default)] +pub struct PerspectiveExpression { + pub author: String, + pub data: Perspective, + pub proof: ExpressionProof, + pub timestamp: String, +} + +#[derive(GraphQLObject, Default)] +pub struct PerspectiveHandle { + pub name: String, + pub neighbourhood: Option, + pub shared_url: Option, + pub state: String, + pub uuid: String, +} + +#[derive(GraphQLInputObject, Default)] +pub struct PerspectiveInput { + pub links: Vec, +} + +#[derive(GraphQLInputObject, Default)] +pub struct PerspectiveUnsignedInput { + pub links: Vec, +} + +#[derive(GraphQLObject, Default)] +pub struct Resource { + pub domain: String, + pub pointers: Vec, +} + +#[derive(GraphQLInputObject, Default)] +pub struct ResourceInput { + pub domain: String, + pub pointers: Vec, +} + +#[derive(GraphQLObject, Default)] +pub struct RuntimeInfo { + pub ad4m_executor_version: String, + pub is_initialized: bool, + pub is_unlocked: bool, +} + +#[derive(GraphQLObject, Default)] +pub struct SentMessage { + pub message: PerspectiveExpression, + pub recipient: String, +} diff --git a/rust-executor/src/mutation_resolvers.rs b/rust-executor/src/mutation_resolvers.rs new file mode 100644 index 000000000..d30ce5ae9 --- /dev/null +++ b/rust-executor/src/mutation_resolvers.rs @@ -0,0 +1,466 @@ +use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; + +use crate::graphql_types::*; + +pub struct Mutation; + +#[graphql_object] +impl Mutation { + fn add_trusted_agents(&self, agents: Vec) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_add_entanglement_proofs( + &self, + proofs: Vec, + ) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_delete_entanglement_proofs( + &self, + proofs: Vec, + ) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_entanglement_proof_pre_flight( + &self, + device_key: String, + device_key_type: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_generate(&self, passphrase: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_generate_jwt(&self, rand: String, request_id: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_import( + &self, + did: String, + did_document: String, + keystore: String, + passphrase: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_lock(&self, passphrase: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_permit_capability(&self, auth: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_remove_app(&self, request_id: String) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_request_capability(&self, auth_info: AuthInfoInput) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_revoke_token(&self, request_id: String) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_sign_message(&self, message: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_unlock(&self, passphrase: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_update_direct_message_language( + &self, + direct_message_language: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_update_public_perspective(&self, perspective: PerspectiveInput) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn delete_trusted_agents(&self, agents: Vec) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn expression_create(&self, content: String, language_address: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn expression_interact( + &self, + interaction_call: InteractionCall, + url: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn language_apply_template_and_publish( + &self, + source_language_hash: String, + template_data: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn language_publish( + &self, + language_meta: LanguageMetaInput, + language_path: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn language_remove(&self, address: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn language_write_settings( + &self, + language_address: String, + settings: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_join_from_url(&self, url: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_publish_from_perspective( + &self, + link_language: String, + meta: PerspectiveInput, + perspective_uuid: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_send_broadcast( + &self, + payload: PerspectiveInput, + perspective_uuid: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_send_broadcast_u( + &self, + payload: PerspectiveUnsignedInput, + perspective_uuid: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_send_signal( + &self, + payload: PerspectiveInput, + perspective_uuid: String, + remote_agent_did: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_send_signal_u( + &self, + payload: PerspectiveUnsignedInput, + perspective_uuid: String, + remote_agent_did: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_set_online_status( + &self, + perspective_uuid: String, + status: PerspectiveInput, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_set_online_status_u( + &self, + perspective_uuid: String, + status: PerspectiveUnsignedInput, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_add(&self, name: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_add_link(&self, link: LinkInput, uuid: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_add_link_expression( + &self, + link: LinkExpressionInput, + uuid: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_add_links( + &self, + links: Vec, + uuid: String, + ) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_link_mutations( + &self, + mutations: LinkMutations, + uuid: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_publish_snapshot(&self, uuid: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_remove(&self, uuid: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_remove_link( + &self, + link: LinkExpressionInput, + uuid: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_remove_links( + &self, + links: Vec, + uuid: String, + ) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_update(&self, name: String, uuid: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_update_link( + &self, + new_link: LinkInput, + old_link: LinkExpressionInput, + uuid: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_add_friends(&self, dids: Vec) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_add_known_link_language_templates( + &self, + addresses: Vec, + ) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_friend_send_message( + &self, + did: String, + message: PerspectiveInput, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_hc_add_agent_infos(&self, agent_infos: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_open_link(&self, url: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_quit(&self) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_remove_friends(&self, dids: Vec) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_remove_known_link_language_templates( + &self, + addresses: Vec, + ) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_set_status(&self, status: PerspectiveInput) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } +} diff --git a/rust-executor/src/query_resolvers.rs b/rust-executor/src/query_resolvers.rs new file mode 100644 index 000000000..22931a7ac --- /dev/null +++ b/rust-executor/src/query_resolvers.rs @@ -0,0 +1,244 @@ +use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; + +use crate::graphql_types::*; + +pub struct Query; + +#[graphql_object] +impl Query { + fn agent(&self) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_by_did(&self, did: String) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_get_apps(&self) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_get_entanglement_proofs(&self) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_is_locked(&self) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn agent_status(&self) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn expression(&self, url: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn expression_interactions(&self, url: String) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn expression_many(&self, urls: Vec) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn expression_raw(&self, url: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn get_trusted_agents(&self) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn language(&self, address: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn language_meta(&self, address: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn language_source(&self, address: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn languages(&self, filter: Option) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_has_telepresence_adapter( + &self, + perspective_uuid: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_online_agents( + &self, + perspective_uuid: String, + ) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn neighbourhood_other_agents(&self, perspective_uuid: String) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective(&self, uuid: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_query_links( + &self, + query: LinkQuery, + uuid: String, + ) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_query_prolog(&self, query: String, uuid: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspective_snapshot(&self, uuid: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn perspectives(&self) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_friend_status(&self, did: String) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_friends(&self) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_hc_agent_infos(&self) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_info(&self) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_known_link_language_templates(&self) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_message_inbox( + &self, + filter: Option, + ) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_message_outbox(&self, filter: Option) -> FieldResult> { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } + + fn runtime_verify_string_signed_by_did( + &self, + data: String, + did: String, + did_signing_key_id: String, + signed_data: String, + ) -> FieldResult { + Err(FieldError::new( + "Not implemented", + graphql_value!({ "Not implemented": true }), + )) + } +} diff --git a/rust-executor/src/subscription_resolvers.rs b/rust-executor/src/subscription_resolvers.rs new file mode 100644 index 000000000..8ddefa707 --- /dev/null +++ b/rust-executor/src/subscription_resolvers.rs @@ -0,0 +1,107 @@ +use futures::stream::{Stream, StreamExt}; +use juniper::{graphql_value, FieldError, FieldResult}; +use std::pin::Pin; + +use crate::graphql_types::*; + +pub struct Subscriptions; + +#[juniper::graphql_subscription()] +impl Subscriptions { + async fn agent_status_changed( + &self, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn agent_updated(&self) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn exception_occurred( + &self, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn neighbourhood_signal( + &self, + perspective_uuid: String, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn perspective_added( + &self, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn perspective_link_added( + &self, + uuid: String, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn perspective_link_removed( + &self, + uuid: String, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn perspective_link_updated( + &self, + uuid: String, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn perspective_removed(&self) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn perspective_sync_state_change( + &self, + uuid: String, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn perspective_updated( + &self, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } + + async fn runtime_message_received( + &self, + ) -> Pin> + Send>> { + let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); + let err_stream = futures::stream::once(async { Err(err) }); + Box::pin(err_stream) + } +} From 5dbc0dc10c733828b4ef98c6f7b50273e481a9b9 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 21:22:43 +0100 Subject: [PATCH 086/722] Running executor init() from Rust --- rust-executor/src/main.js | 55 +++++++++++++++++++++++---------------- rust-executor/src/main.rs | 35 +++++++++++++++++++++---- 2 files changed, 63 insertions(+), 27 deletions(-) diff --git a/rust-executor/src/main.js b/rust-executor/src/main.js index e8566d4f5..9adb314db 100644 --- a/rust-executor/src/main.js +++ b/rust-executor/src/main.js @@ -66,27 +66,38 @@ const ipfsRepoPath = path.join(appDataPath, 'ipfs') //const bPerspective = bootstrapPerspective ? await import(path.isAbsolute(bootstrapPerspective) ? bootstrapPerspective: path.join(__dirname, bootstrapPerspective)) : []; const config = { -appDataPath: appDataPath, -resourcePath: binaryPath, -networkBootstrapSeed: path.join(appDataPath, "mainnet_seed.seed"), -languageLanguageOnly: true, -bootstrapFixtures: { - languages: [], - perspectives: [], -}, -appLangAliases: {}, -mocks: false, -runDappServer: false, -gqlPort, -hcPortAdmin: undefined, -hcPortApp: undefined, -ipfsRepoPath, -ipfsSwarmPort: undefined, -connectHolochain: true, -reqCredential: undefined, -swiplPath, -swiplHomePath + appDataPath: appDataPath, + resourcePath: binaryPath, + networkBootstrapSeed: path.join(appDataPath, "mainnet_seed.seed"), + languageLanguageOnly: true, + bootstrapFixtures: { + languages: [], + perspectives: [], + }, + appLangAliases: {}, + mocks: false, + runDappServer: false, + gqlPort, + hcPortAdmin: undefined, + hcPortApp: undefined, + ipfsRepoPath, + ipfsSwarmPort: undefined, + connectHolochain: true, + reqCredential: undefined, + swiplPath, + swiplHomePath }; -const core = await init(config) -console.log(core) \ No newline at end of file +async function initCore() { + const core = await init(config) + globalThis.core = core + return core +} + +globalThis.initCore = initCore +//await initCore() + +console.log("main done") + +const n = 5 +globalThis.n = n diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 40be7929b..986a60964 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,6 +1,7 @@ use deno_core::ModuleSource; use deno_core::ResolutionKind; +use deno_core::v8; use deno_runtime::deno_core::include_js_files; //use deno_runtime::deno_core::op; use deno_runtime::deno_core::Extension; @@ -104,7 +105,7 @@ async fn run_js() -> Result<(), AnyError> { loader.add_module(test_module.as_str(), include_str!("./testlib.js")); loader.add_module(main_module.as_str(), include_str!("main.js")); - let runtime_extension = Extension::builder("runtime") + let _runtime_extension = Extension::builder("runtime") //.js(include_js_files!( // executor "../../executor/lib/bundle.js", //)) @@ -123,7 +124,7 @@ async fn run_js() -> Result<(), AnyError> { let options = WorkerOptions { bootstrap: BootstrapOptions::default(), - extensions: vec![runtime_extension], + extensions: vec![], startup_snapshot: Some(deno_runtime::js::deno_isolate_init()), unsafely_ignore_certificate_errors: None, root_cert_store: None, @@ -151,9 +152,33 @@ async fn run_js() -> Result<(), AnyError> { let permissions = PermissionsContainer::allow_all(); let mut worker = MainWorker::from_options(main_module.clone(), permissions, options); worker.bootstrap(&BootstrapOptions::default()); - let main_id = worker.preload_side_module(&main_module).await.unwrap(); - worker.evaluate_module(main_id).await.unwrap(); - + worker.execute_main_module(&main_module).await.unwrap(); + + + { + let n = worker.execute_script("test worker", "n")?; + let init_core = worker.execute_script("test worker", "initCore")?; + //let (context_scope, scope) = get_module_handle_scope_context(&mut worker, main_id)?; + let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); + let n = v8::Local::new(scope, n); + let init_core = v8::Local::new(scope, init_core); + + println!("n.is_number: {:?}", n.is_number()); + println!("n: {:?}", n); + println!("init_core.is_function: {:?}", init_core.is_function()); + println!("init_core: {:?}", init_core); + + let function: v8::Local = unsafe { v8::Local::cast(init_core) }; + // call that function with arguments + let recv = v8::Integer::new(scope, 2).into(); + + let context = v8::Context::new(scope); + let scope = &mut v8::ContextScope::new(scope, context); + let init_return = function.call(scope, recv, &[]).unwrap(); + let core_promise = v8::Local::::try_from(init_return).unwrap(); + println!("core_promise: {:?}", core_promise); + } + worker.run_event_loop(false).await?; Ok(()) } From 30e1ff37882dc4aa097e7795ec5f4c773a71d099 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 22:51:16 +0100 Subject: [PATCH 087/722] JsCore module structure refactoring --- rust-executor/src/js_core.rs | 49 +++++ rust-executor/src/js_core/futures.rs | 68 +++++++ rust-executor/src/{ => js_core}/main.js | 0 rust-executor/src/js_core/options.rs | 51 +++++ .../src/js_core/runtime_extension.rs | 38 ++++ .../src/js_core/string_module_loader.rs | 60 ++++++ rust-executor/src/js_core/testlib.js | 5 + rust-executor/src/main.rs | 191 +----------------- 8 files changed, 275 insertions(+), 187 deletions(-) create mode 100644 rust-executor/src/js_core.rs create mode 100644 rust-executor/src/js_core/futures.rs rename rust-executor/src/{ => js_core}/main.js (100%) create mode 100644 rust-executor/src/js_core/options.rs create mode 100644 rust-executor/src/js_core/runtime_extension.rs create mode 100644 rust-executor/src/js_core/string_module_loader.rs create mode 100644 rust-executor/src/js_core/testlib.js diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs new file mode 100644 index 000000000..9d66bbe12 --- /dev/null +++ b/rust-executor/src/js_core.rs @@ -0,0 +1,49 @@ +use std::sync::{Arc, Mutex}; +use deno_core::error::AnyError; +use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; +use deno_runtime::worker::MainWorker; + +mod futures; +mod options; +mod string_module_loader; + +use self::futures::{EventLoopFuture, GlobalVariableFuture}; +use options::{main_module_url, main_worker_options}; +pub struct JsCore { + worker: Arc> +} + +impl JsCore { + pub fn new() -> Self { + JsCore { + worker: + Arc::new( + Mutex::new( + MainWorker::from_options( + main_module_url(), + PermissionsContainer::allow_all(), + main_worker_options() + ) + ) + ) + } + } + + pub async fn init_engine(&self) { + let mut worker = self.worker.lock().unwrap(); + worker.bootstrap(&BootstrapOptions::default()); + worker.execute_main_module(&main_module_url()).await.unwrap(); + } + + pub fn event_loop(&self) -> EventLoopFuture { + let event_loop = EventLoopFuture::new(self.worker.clone()); + event_loop + } + + pub async fn init_core(&self) -> Result { + let mut worker = self.worker.lock().unwrap(); + let init_core = worker.execute_script("js_core", "initCore()")?; + Ok(GlobalVariableFuture::new(self.worker.clone(), "core".to_string())) + } + +} diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs new file mode 100644 index 000000000..92d0d179a --- /dev/null +++ b/rust-executor/src/js_core/futures.rs @@ -0,0 +1,68 @@ +use std::future::Future; +use std::pin::Pin; +use std::sync::{Arc, Mutex}; +use std::task::{Context, Poll}; +use deno_core::error::AnyError; +use deno_core::v8; +use deno_runtime::worker::MainWorker; + +pub struct EventLoopFuture { + worker: Arc>, +} + +impl EventLoopFuture { + pub fn new(worker: Arc>) -> Self { + EventLoopFuture { worker } + } +} + +impl Future for EventLoopFuture { + type Output = Result<(), AnyError>; // You can customize the output type. + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + let mut worker = self.worker.lock().unwrap(); + worker.poll_event_loop(cx, false) + } +} + + +pub struct GlobalVariableFuture { + worker: Arc>, + name: String, +} + +impl GlobalVariableFuture { + pub fn new(worker: Arc>, name: String) -> Self { + GlobalVariableFuture { worker, name } + } +} + +impl Future for GlobalVariableFuture { + type Output = Result<(), ()>; // You can customize the output type. + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + let mut worker = self.worker.lock().unwrap(); + if let Ok(value) = worker.execute_script("global_var_future", self.name.clone()) { + let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); + let context = v8::Context::new(scope); + let scope = &mut v8::ContextScope::new(scope, context); + let value = v8::Local::new(scope, value); + + if value.is_promise() { + let promise = v8::Local::::try_from(value).unwrap(); + if promise.state() == v8::PromiseState::Pending { + return Poll::Pending; + } else { + //let result = promise.result(); + return Poll::Ready(Ok(())); + } + } else if value.is_undefined() { + return Poll::Pending; + } else { + return Poll::Ready(Ok(())); + } + } else { + return Poll::Pending; + } + } +} diff --git a/rust-executor/src/main.js b/rust-executor/src/js_core/main.js similarity index 100% rename from rust-executor/src/main.js rename to rust-executor/src/js_core/main.js diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs new file mode 100644 index 000000000..d1a10ce2a --- /dev/null +++ b/rust-executor/src/js_core/options.rs @@ -0,0 +1,51 @@ +use std::{collections::HashMap, sync::Arc, rc::Rc}; +use deno_runtime::{worker::WorkerOptions, BootstrapOptions, deno_web::BlobStore, deno_broadcast_channel::InMemoryBroadcastChannel}; +use url::Url; + +use super::string_module_loader::StringModuleLoader; + +pub fn main_module_url() -> Url { + Url::parse("https://ad4m.runtime/main").unwrap() +} + +pub fn module_map() -> HashMap { + let mut map = HashMap::new(); + map.insert("https://ad4m.runtime/main".to_string(), include_str!("main.js").to_string()); + map.insert("https://ad4m.runtime/executor".to_string(), include_str!("../../../executor/lib/bundle.js").to_string()); + map.insert("https://ad4m.runtime/test".to_string(), include_str!("testlib.js").to_string()); + map +} + +pub fn main_worker_options() -> WorkerOptions { + let mut loader = StringModuleLoader::new(); + for (specifier, code) in module_map() { + loader.add_module(specifier.as_str(), code.as_str()); + } + + WorkerOptions { + bootstrap: BootstrapOptions::default(), + extensions: vec![], + startup_snapshot: Some(deno_runtime::js::deno_isolate_init()), + unsafely_ignore_certificate_errors: None, + root_cert_store: None, + seed: None, + format_js_error_fn: None, + source_map_getter: None, + web_worker_preload_module_cb: Arc::new(|_| unreachable!()), + web_worker_pre_execute_module_cb: Arc::new(|_| unreachable!()), + create_web_worker_cb: Arc::new(|_| unreachable!()), + maybe_inspector_server: None, + should_break_on_first_statement: false, + should_wait_for_inspector_session: false, + module_loader: Rc::new(loader), + npm_resolver: None, + get_error_class_fn: None, + cache_storage_dir: None, + origin_storage_dir: None, + blob_store: BlobStore::default(), + broadcast_channel: InMemoryBroadcastChannel::default(), + shared_array_buffer_store: None, + compiled_wasm_module_store: None, + stdio: Default::default(), + } +} \ No newline at end of file diff --git a/rust-executor/src/js_core/runtime_extension.rs b/rust-executor/src/js_core/runtime_extension.rs new file mode 100644 index 000000000..dfabccfeb --- /dev/null +++ b/rust-executor/src/js_core/runtime_extension.rs @@ -0,0 +1,38 @@ +/* +#[op] +async fn op_read_file(path: String) -> Result { + let contents = tokio::fs::read_to_string(path).await?; + Ok(contents) +} + +#[op] +async fn op_write_file(path: String, contents: String) -> Result<(), AnyError> { + tokio::fs::write(path, contents).await?; + Ok(()) +} + +#[op] +fn op_remove_file(path: String) -> Result<(), AnyError> { + std::fs::remove_file(path)?; + Ok(()) +} + + +let _runtime_extension = Extension::builder("runtime") +//.js(include_js_files!( +// executor "../../executor/lib/bundle.js", +//)) +//.esm(include_js_files!( +// executor "../../executor/lib/bundle.js", +//)) +.js(include_js_files!( + runtime "runtime.js", +)) +.ops(vec![ + //op_read_file::decl(), + //op_write_file::decl(), + //op_remove_file::decl(), +]) +.build(); + +*/ \ No newline at end of file diff --git a/rust-executor/src/js_core/string_module_loader.rs b/rust-executor/src/js_core/string_module_loader.rs new file mode 100644 index 000000000..d18d42745 --- /dev/null +++ b/rust-executor/src/js_core/string_module_loader.rs @@ -0,0 +1,60 @@ +use deno_core::ModuleSource; +use deno_core::ResolutionKind; +use deno_runtime::deno_core::error::AnyError; +use deno_core::{anyhow}; +use deno_core::ModuleLoader; +use deno_core::ModuleSpecifier; +use std::collections::HashMap; +use std::pin::Pin; +use deno_core::ModuleSourceFuture; + + +pub struct StringModuleLoader { + modules: HashMap, +} + +impl StringModuleLoader { + pub fn new() -> Self { + StringModuleLoader { + modules: HashMap::new(), + } + } + + pub fn add_module(&mut self, specifier: &str, code: &str) { + self.modules.insert(specifier.to_string(), code.to_string()); + } +} + +impl ModuleLoader for StringModuleLoader { + fn resolve( + &self, + specifier: &str, + referrer: &str, + _kind: ResolutionKind, + ) -> Result { + let module_specifier = deno_core::resolve_import(specifier, referrer)?; + Ok(module_specifier) + } + + fn load( + &self, + module_specifier: &ModuleSpecifier, + _maybe_referrer: Option, + _is_dyn_import: bool, + ) -> Pin> { + let module_code = self.modules.get(module_specifier.as_str()).cloned(); + let module_specifier = module_specifier.clone(); + let fut = async move { + match module_code { + Some(code) => Ok(ModuleSource { + code: code.into(), + module_type: deno_core::ModuleType::JavaScript, + module_url_specified: module_specifier.clone().to_string(), + module_url_found: module_specifier.clone().to_string(), + }), + None => Err(anyhow::anyhow!("Module not found: {}", module_specifier)), + } + }; + Box::pin(fut) + } +} diff --git a/rust-executor/src/js_core/testlib.js b/rust-executor/src/js_core/testlib.js new file mode 100644 index 000000000..b0609ae4b --- /dev/null +++ b/rust-executor/src/js_core/testlib.js @@ -0,0 +1,5 @@ +console.log("Hello from testlib.js") +export function test() { + console.log("Hello from test()") +} + diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 986a60964..e30db970b 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,196 +1,13 @@ - -use deno_core::ModuleSource; -use deno_core::ResolutionKind; -use deno_core::v8; -use deno_runtime::deno_core::include_js_files; -//use deno_runtime::deno_core::op; -use deno_runtime::deno_core::Extension; -//use deno_core::{JsRuntime, RuntimeOptions} -use deno_runtime::deno_web::BlobStore; -use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel; -use url::Url; -use std::rc::Rc; -use std::sync::Arc; -use deno_runtime::deno_core::error::AnyError; -use deno_runtime::worker::MainWorker; -use deno_runtime::permissions::{PermissionsContainer}; -use deno_runtime::worker::WorkerOptions; -use deno_runtime::BootstrapOptions; -use deno_core::{anyhow}; -use deno_core::ModuleLoader; -use deno_core::ModuleSpecifier; -use std::collections::HashMap; -use std::pin::Pin; -use deno_core::ModuleSourceFuture; - -/* -#[op] -async fn op_read_file(path: String) -> Result { - let contents = tokio::fs::read_to_string(path).await?; - Ok(contents) -} - -#[op] -async fn op_write_file(path: String, contents: String) -> Result<(), AnyError> { - tokio::fs::write(path, contents).await?; - Ok(()) -} - -#[op] -fn op_remove_file(path: String) -> Result<(), AnyError> { - std::fs::remove_file(path)?; - Ok(()) -} -*/ - - - -pub struct StringModuleLoader { - modules: HashMap, -} - -impl StringModuleLoader { - pub fn new() -> Self { - StringModuleLoader { - modules: HashMap::new(), - } - } - - pub fn add_module(&mut self, specifier: &str, code: &str) { - self.modules.insert(specifier.to_string(), code.to_string()); - } -} - -impl ModuleLoader for StringModuleLoader { - fn resolve( - &self, - specifier: &str, - referrer: &str, - _kind: ResolutionKind, - ) -> Result { - let module_specifier = deno_core::resolve_import(specifier, referrer)?; - Ok(module_specifier) - } - - fn load( - &self, - module_specifier: &ModuleSpecifier, - _maybe_referrer: Option, - _is_dyn_import: bool, - ) -> Pin> { - let module_code = self.modules.get(module_specifier.as_str()).cloned(); - let module_specifier = module_specifier.clone(); - let fut = async move { - match module_code { - Some(code) => Ok(ModuleSource { - code: code.into(), - module_type: deno_core::ModuleType::JavaScript, - module_url_specified: module_specifier.clone().to_string(), - module_url_found: module_specifier.clone().to_string(), - }), - None => Err(anyhow::anyhow!("Module not found: {}", module_specifier)), - } - }; - Box::pin(fut) - } -} - -async fn run_js() -> Result<(), AnyError> { - let main_module = Url::parse("https://ad4m.runtime/main").unwrap(); - let executor_module = Url::parse("https://ad4m.runtime/executor").unwrap(); - let test_module = Url::parse("https://ad4m.runtime/test").unwrap(); - - let mut loader = StringModuleLoader::new(); - loader.add_module(executor_module.as_str(), include_str!("../../executor/lib/bundle.js")); - loader.add_module(test_module.as_str(), include_str!("./testlib.js")); - loader.add_module(main_module.as_str(), include_str!("main.js")); - - let _runtime_extension = Extension::builder("runtime") - //.js(include_js_files!( - // executor "../../executor/lib/bundle.js", - //)) - //.esm(include_js_files!( - // executor "../../executor/lib/bundle.js", - //)) - .js(include_js_files!( - runtime "runtime.js", - )) - .ops(vec![ - //op_read_file::decl(), - //op_write_file::decl(), - //op_remove_file::decl(), - ]) - .build(); - - let options = WorkerOptions { - bootstrap: BootstrapOptions::default(), - extensions: vec![], - startup_snapshot: Some(deno_runtime::js::deno_isolate_init()), - unsafely_ignore_certificate_errors: None, - root_cert_store: None, - seed: None, - format_js_error_fn: None, - source_map_getter: None, - web_worker_preload_module_cb: Arc::new(|_| unreachable!()), - web_worker_pre_execute_module_cb: Arc::new(|_| unreachable!()), - create_web_worker_cb: Arc::new(|_| unreachable!()), - maybe_inspector_server: None, - should_break_on_first_statement: false, - should_wait_for_inspector_session: false, - module_loader: Rc::new(loader), - npm_resolver: None, - get_error_class_fn: None, - cache_storage_dir: None, - origin_storage_dir: None, - blob_store: BlobStore::default(), - broadcast_channel: InMemoryBroadcastChannel::default(), - shared_array_buffer_store: None, - compiled_wasm_module_store: None, - stdio: Default::default(), - }; - - let permissions = PermissionsContainer::allow_all(); - let mut worker = MainWorker::from_options(main_module.clone(), permissions, options); - worker.bootstrap(&BootstrapOptions::default()); - worker.execute_main_module(&main_module).await.unwrap(); - - - { - let n = worker.execute_script("test worker", "n")?; - let init_core = worker.execute_script("test worker", "initCore")?; - //let (context_scope, scope) = get_module_handle_scope_context(&mut worker, main_id)?; - let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); - let n = v8::Local::new(scope, n); - let init_core = v8::Local::new(scope, init_core); - - println!("n.is_number: {:?}", n.is_number()); - println!("n: {:?}", n); - println!("init_core.is_function: {:?}", init_core.is_function()); - println!("init_core: {:?}", init_core); - - let function: v8::Local = unsafe { v8::Local::cast(init_core) }; - // call that function with arguments - let recv = v8::Integer::new(scope, 2).into(); - - let context = v8::Context::new(scope); - let scope = &mut v8::ContextScope::new(scope, context); - let init_return = function.call(scope, recv, &[]).unwrap(); - let core_promise = v8::Local::::try_from(init_return).unwrap(); - println!("core_promise: {:?}", core_promise); - } - - worker.run_event_loop(false).await?; - Ok(()) - } +mod js_core; fn main() { let runtime = tokio::runtime::Builder::new_current_thread() .enable_all() .build() .unwrap(); - let run = run_js(); - //let run = run_js("./example.js"); - if let Err(error) = runtime.block_on(run) { + let js_core = js_core::JsCore::new(); + js_core.init_engine(); + if let Err(error) = runtime.block_on(js_core.event_loop()) { eprintln!("error: {}", error); } } From 6b62f8c57801fa73716b69959ec9d7dd6df8e9b3 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 22:52:58 +0100 Subject: [PATCH 088/722] warnings-- --- rust-executor/src/js_core.rs | 2 +- rust-executor/src/js_core/futures.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 9d66bbe12..5a023a830 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -42,7 +42,7 @@ impl JsCore { pub async fn init_core(&self) -> Result { let mut worker = self.worker.lock().unwrap(); - let init_core = worker.execute_script("js_core", "initCore()")?; + let _init_core = worker.execute_script("js_core", "initCore()")?; Ok(GlobalVariableFuture::new(self.worker.clone(), "core".to_string())) } diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs index 92d0d179a..f52499d45 100644 --- a/rust-executor/src/js_core/futures.rs +++ b/rust-executor/src/js_core/futures.rs @@ -40,7 +40,7 @@ impl GlobalVariableFuture { impl Future for GlobalVariableFuture { type Output = Result<(), ()>; // You can customize the output type. - fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll { let mut worker = self.worker.lock().unwrap(); if let Ok(value) = worker.execute_script("global_var_future", self.name.clone()) { let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); From dadd2c1e8aec0f681bea650e2f623dba6eac325f Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 22:53:23 +0100 Subject: [PATCH 089/722] fmt --- rust-executor/src/js_core.rs | 32 +++++++++---------- rust-executor/src/js_core/futures.rs | 7 ++-- rust-executor/src/js_core/options.rs | 26 +++++++++++---- .../src/js_core/string_module_loader.rs | 9 +++--- 4 files changed, 42 insertions(+), 32 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 5a023a830..5dfca84c4 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -1,7 +1,7 @@ -use std::sync::{Arc, Mutex}; use deno_core::error::AnyError; -use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; use deno_runtime::worker::MainWorker; +use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; +use std::sync::{Arc, Mutex}; mod futures; mod options; @@ -10,29 +10,27 @@ mod string_module_loader; use self::futures::{EventLoopFuture, GlobalVariableFuture}; use options::{main_module_url, main_worker_options}; pub struct JsCore { - worker: Arc> + worker: Arc>, } impl JsCore { pub fn new() -> Self { JsCore { - worker: - Arc::new( - Mutex::new( - MainWorker::from_options( - main_module_url(), - PermissionsContainer::allow_all(), - main_worker_options() - ) - ) - ) + worker: Arc::new(Mutex::new(MainWorker::from_options( + main_module_url(), + PermissionsContainer::allow_all(), + main_worker_options(), + ))), } } pub async fn init_engine(&self) { let mut worker = self.worker.lock().unwrap(); worker.bootstrap(&BootstrapOptions::default()); - worker.execute_main_module(&main_module_url()).await.unwrap(); + worker + .execute_main_module(&main_module_url()) + .await + .unwrap(); } pub fn event_loop(&self) -> EventLoopFuture { @@ -43,7 +41,9 @@ impl JsCore { pub async fn init_core(&self) -> Result { let mut worker = self.worker.lock().unwrap(); let _init_core = worker.execute_script("js_core", "initCore()")?; - Ok(GlobalVariableFuture::new(self.worker.clone(), "core".to_string())) + Ok(GlobalVariableFuture::new( + self.worker.clone(), + "core".to_string(), + )) } - } diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs index f52499d45..c875a9d92 100644 --- a/rust-executor/src/js_core/futures.rs +++ b/rust-executor/src/js_core/futures.rs @@ -1,10 +1,10 @@ +use deno_core::error::AnyError; +use deno_core::v8; +use deno_runtime::worker::MainWorker; use std::future::Future; use std::pin::Pin; use std::sync::{Arc, Mutex}; use std::task::{Context, Poll}; -use deno_core::error::AnyError; -use deno_core::v8; -use deno_runtime::worker::MainWorker; pub struct EventLoopFuture { worker: Arc>, @@ -25,7 +25,6 @@ impl Future for EventLoopFuture { } } - pub struct GlobalVariableFuture { worker: Arc>, name: String, diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs index d1a10ce2a..0a7a25026 100644 --- a/rust-executor/src/js_core/options.rs +++ b/rust-executor/src/js_core/options.rs @@ -1,5 +1,8 @@ -use std::{collections::HashMap, sync::Arc, rc::Rc}; -use deno_runtime::{worker::WorkerOptions, BootstrapOptions, deno_web::BlobStore, deno_broadcast_channel::InMemoryBroadcastChannel}; +use deno_runtime::{ + deno_broadcast_channel::InMemoryBroadcastChannel, deno_web::BlobStore, worker::WorkerOptions, + BootstrapOptions, +}; +use std::{collections::HashMap, rc::Rc, sync::Arc}; use url::Url; use super::string_module_loader::StringModuleLoader; @@ -10,9 +13,18 @@ pub fn main_module_url() -> Url { pub fn module_map() -> HashMap { let mut map = HashMap::new(); - map.insert("https://ad4m.runtime/main".to_string(), include_str!("main.js").to_string()); - map.insert("https://ad4m.runtime/executor".to_string(), include_str!("../../../executor/lib/bundle.js").to_string()); - map.insert("https://ad4m.runtime/test".to_string(), include_str!("testlib.js").to_string()); + map.insert( + "https://ad4m.runtime/main".to_string(), + include_str!("main.js").to_string(), + ); + map.insert( + "https://ad4m.runtime/executor".to_string(), + include_str!("../../../executor/lib/bundle.js").to_string(), + ); + map.insert( + "https://ad4m.runtime/test".to_string(), + include_str!("testlib.js").to_string(), + ); map } @@ -21,7 +33,7 @@ pub fn main_worker_options() -> WorkerOptions { for (specifier, code) in module_map() { loader.add_module(specifier.as_str(), code.as_str()); } - + WorkerOptions { bootstrap: BootstrapOptions::default(), extensions: vec![], @@ -48,4 +60,4 @@ pub fn main_worker_options() -> WorkerOptions { compiled_wasm_module_store: None, stdio: Default::default(), } -} \ No newline at end of file +} diff --git a/rust-executor/src/js_core/string_module_loader.rs b/rust-executor/src/js_core/string_module_loader.rs index d18d42745..272080cf0 100644 --- a/rust-executor/src/js_core/string_module_loader.rs +++ b/rust-executor/src/js_core/string_module_loader.rs @@ -1,13 +1,12 @@ +use deno_core::anyhow; +use deno_core::ModuleLoader; use deno_core::ModuleSource; +use deno_core::ModuleSourceFuture; +use deno_core::ModuleSpecifier; use deno_core::ResolutionKind; use deno_runtime::deno_core::error::AnyError; -use deno_core::{anyhow}; -use deno_core::ModuleLoader; -use deno_core::ModuleSpecifier; use std::collections::HashMap; use std::pin::Pin; -use deno_core::ModuleSourceFuture; - pub struct StringModuleLoader { modules: HashMap, From 9137489a854783edeedc55fb95ac35b3dd9de228 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 23:19:07 +0100 Subject: [PATCH 090/722] Event loop and core init future run concurrently --- rust-executor/src/js_core.rs | 2 +- rust-executor/src/js_core/futures.rs | 2 +- rust-executor/src/main.rs | 19 ++++++++++++++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 5dfca84c4..1d8433ba8 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -38,7 +38,7 @@ impl JsCore { event_loop } - pub async fn init_core(&self) -> Result { + pub fn init_core(&self) -> Result { let mut worker = self.worker.lock().unwrap(); let _init_core = worker.execute_script("js_core", "initCore()")?; Ok(GlobalVariableFuture::new( diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs index c875a9d92..6ad3e06c2 100644 --- a/rust-executor/src/js_core/futures.rs +++ b/rust-executor/src/js_core/futures.rs @@ -37,7 +37,7 @@ impl GlobalVariableFuture { } impl Future for GlobalVariableFuture { - type Output = Result<(), ()>; // You can customize the output type. + type Output = Result<(), AnyError>; // You can customize the output type. fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll { let mut worker = self.worker.lock().unwrap(); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index e30db970b..f11c50208 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,13 +1,26 @@ +use deno_core::error::AnyError; + mod js_core; +async fn run() -> Result<(), AnyError> { + let js_core = js_core::JsCore::new(); + js_core.init_engine().await; + let core_init = async { + let result = js_core.init_core().expect("core init failed").await; + println!("core init done!"); + result + }; + let (event, init) = tokio::join!(core_init, js_core.event_loop()); + event.and(init) +} + fn main() { let runtime = tokio::runtime::Builder::new_current_thread() .enable_all() .build() .unwrap(); - let js_core = js_core::JsCore::new(); - js_core.init_engine(); - if let Err(error) = runtime.block_on(js_core.event_loop()) { + + if let Err(error) = runtime.block_on(run()) { eprintln!("error: {}", error); } } From 12f606e0136970a0888f2ea340eeac67d109a98e Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 5 Apr 2023 23:31:49 +0100 Subject: [PATCH 091/722] tokio::main macro --- rust-executor/src/main.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index f11c50208..4c88bfb78 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -14,13 +14,9 @@ async fn run() -> Result<(), AnyError> { event.and(init) } -fn main() { - let runtime = tokio::runtime::Builder::new_current_thread() - .enable_all() - .build() - .unwrap(); - - if let Err(error) = runtime.block_on(run()) { +#[tokio::main] +async fn main() { + if let Err(error) = run().await { eprintln!("error: {}", error); } } From 3b61e0c5b7862dc6787bf7dae7d9e2ffa813bb45 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Apr 2023 23:35:11 +0100 Subject: [PATCH 092/722] fix up resolvers --- Cargo.lock | 424 +++++++++++++++++++- rust-executor/Cargo.toml | 6 + rust-executor/src/graphql_types.rs | 10 +- rust-executor/src/mutation_resolvers.rs | 18 +- rust-executor/src/query_resolvers.rs | 12 +- rust-executor/src/subscription_resolvers.rs | 9 +- 6 files changed, 448 insertions(+), 31 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a7cb5f0d..6b85ab04d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,6 +12,264 @@ dependencies = [ "regex", ] +[[package]] +name = "actix" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3720d0064a0ce5c0de7bd93bdb0a6caebab2a9b5668746145d7b3b0c5da02914" +dependencies = [ + "actix-rt", + "actix_derive", + "bitflags", + "bytes", + "crossbeam-channel", + "futures-core", + "futures-sink", + "futures-task", + "futures-util", + "log", + "once_cell", + "parking_lot 0.11.2", + "pin-project-lite", + "smallvec", + "tokio", + "tokio-util 0.6.10", +] + +[[package]] +name = "actix" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f728064aca1c318585bf4bb04ffcfac9e75e508ab4e8b1bd9ba5dfe04e2cbed5" +dependencies = [ + "actix-rt", + "bitflags", + "bytes", + "crossbeam-channel", + "futures-core", + "futures-sink", + "futures-task", + "futures-util", + "log", + "once_cell", + "parking_lot 0.12.1", + "pin-project-lite", + "smallvec", + "tokio", + "tokio-util 0.7.4", +] + +[[package]] +name = "actix-codec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a7559404a7f3573127aab53c08ce37a6c6a315c374a31070f3c91cd1b4a7fe" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-sink", + "log", + "memchr", + "pin-project-lite", + "tokio", + "tokio-util 0.7.4", +] + +[[package]] +name = "actix-http" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2079246596c18b4a33e274ae10c0e50613f4d32a4198e09c7b93771013fed74" +dependencies = [ + "actix-codec", + "actix-rt", + "actix-service", + "actix-utils", + "ahash 0.8.3", + "base64 0.21.0", + "bitflags", + "brotli", + "bytes", + "bytestring", + "derive_more", + "encoding_rs", + "flate2", + "futures-core", + "h2", + "http", + "httparse", + "httpdate", + "itoa 1.0.4", + "language-tags", + "local-channel", + "mime", + "percent-encoding", + "pin-project-lite", + "rand 0.8.5", + "sha1", + "smallvec", + "tokio", + "tokio-util 0.7.4", + "tracing", + "zstd", +] + +[[package]] +name = "actix-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6" +dependencies = [ + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "actix-router" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799" +dependencies = [ + "bytestring", + "http", + "regex", + "serde", + "tracing", +] + +[[package]] +name = "actix-rt" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15265b6b8e2347670eb363c47fc8c75208b4a4994b27192f345fcbe707804f3e" +dependencies = [ + "actix-macros", + "futures-core", + "tokio", +] + +[[package]] +name = "actix-server" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e8613a75dd50cc45f473cee3c34d59ed677c0f7b44480ce3b8247d7dc519327" +dependencies = [ + "actix-rt", + "actix-service", + "actix-utils", + "futures-core", + "futures-util", + "mio 0.8.5", + "num_cpus", + "socket2", + "tokio", + "tracing", +] + +[[package]] +name = "actix-service" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a" +dependencies = [ + "futures-core", + "paste", + "pin-project-lite", +] + +[[package]] +name = "actix-utils" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" +dependencies = [ + "local-waker", + "pin-project-lite", +] + +[[package]] +name = "actix-web" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd3cb42f9566ab176e1ef0b8b3a896529062b4efc6be0123046095914c4c1c96" +dependencies = [ + "actix-codec", + "actix-http", + "actix-macros", + "actix-router", + "actix-rt", + "actix-server", + "actix-service", + "actix-utils", + "actix-web-codegen", + "ahash 0.7.6", + "bytes", + "bytestring", + "cfg-if", + "cookie", + "derive_more", + "encoding_rs", + "futures-core", + "futures-util", + "http", + "itoa 1.0.4", + "language-tags", + "log", + "mime", + "once_cell", + "pin-project-lite", + "regex", + "serde", + "serde_json", + "serde_urlencoded", + "smallvec", + "socket2", + "time 0.3.17", + "url", +] + +[[package]] +name = "actix-web-actors" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6e9ccc371cfddbed7aa842256a4abc7a6dcac9f3fce392fe1d0f68cfd136b2" +dependencies = [ + "actix 0.13.0", + "actix-codec", + "actix-http", + "actix-web", + "bytes", + "bytestring", + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util 0.7.4", +] + +[[package]] +name = "actix-web-codegen" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2262160a7ae29e3415554a3f1fc04c764b1540c116aa524683208078b7a75bc9" +dependencies = [ + "actix-router", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "actix_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d44b8fee1ced9671ba043476deddef739dd0959bf77030b26b738cc591737a7" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "ad4m" version = "0.3.4" @@ -157,6 +415,18 @@ dependencies = [ "version_check", ] +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "getrandom 0.2.8", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" version = "0.7.20" @@ -691,6 +961,15 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +[[package]] +name = "bytestring" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "238e4886760d98c4f899360c834fa93e62cf7f721ac3c2da375cbdf4b8679aae" +dependencies = [ + "bytes", +] + [[package]] name = "cache-padded" version = "1.2.0" @@ -751,6 +1030,9 @@ name = "cc" version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" +dependencies = [ + "jobserver", +] [[package]] name = "cesu8" @@ -985,6 +1267,17 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "cookie" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" +dependencies = [ + "percent-encoding", + "time 0.3.17", + "version_check", +] + [[package]] name = "core-foundation" version = "0.9.3" @@ -1511,7 +1804,7 @@ dependencies = [ "serde", "tokio", "tokio-stream", - "tokio-util", + "tokio-util 0.7.4", ] [[package]] @@ -1594,7 +1887,7 @@ dependencies = [ "ring", "serde", "tokio", - "tokio-util", + "tokio-util 0.7.4", ] [[package]] @@ -2163,6 +2456,19 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "errno" version = "0.2.8" @@ -2966,7 +3272,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util", + "tokio-util 0.7.4", "tracing", ] @@ -2976,7 +3282,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.6", ] [[package]] @@ -3437,6 +3743,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jobserver" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.60" @@ -3490,6 +3805,25 @@ dependencies = [ "uuid 0.8.2", ] +[[package]] +name = "juniper_actix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc44af18ae1f551076171e24eb453c52132a19c219d1f1a1c3068ab363b946b5" +dependencies = [ + "actix 0.12.0", + "actix-http", + "actix-web", + "actix-web-actors", + "anyhow", + "futures", + "http", + "juniper", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "juniper_codegen" version = "0.15.9" @@ -3562,6 +3896,12 @@ dependencies = [ "log", ] +[[package]] +name = "language-tags" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" + [[package]] name = "lazy_static" version = "1.4.0" @@ -3783,6 +4123,24 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" +[[package]] +name = "local-channel" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f303ec0e94c6c54447f84f3b0ef7af769858a9c4ef56ef2a986d3dcd4c3fc9c" +dependencies = [ + "futures-core", + "futures-sink", + "futures-util", + "local-waker", +] + +[[package]] +name = "local-waker" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34f76eb3611940e0e7d53a9aaa4e6a3151f69541a282fd0dad5571420c53ff1" + [[package]] name = "localtunnel-client" version = "0.0.12" @@ -5257,7 +5615,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls", "tokio-socks", - "tokio-util", + "tokio-util 0.7.4", "tower-service", "url", "wasm-bindgen", @@ -5375,12 +5733,17 @@ dependencies = [ name = "rust-executor" version = "0.1.0" dependencies = [ + "actix-rt", + "actix-web", "chrono", "deno_core", "deno_runtime", + "env_logger", "futures", "juniper", + "juniper_actix", "juniper_subscriptions", + "serde_json", "tokio", "url", ] @@ -6175,7 +6538,7 @@ version = "0.29.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5005cd73617e18592faa31298225b26f1c407b84a681d67efb735c3d3458e101" dependencies = [ - "ahash", + "ahash 0.7.6", "ast_node", "better_scoped_tls", "cfg-if", @@ -6277,7 +6640,7 @@ version = "0.41.39" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681c1fbb762c82700a5bd23dc39bad892a287ea9fb2121cf56e77f1ddc89afeb" dependencies = [ - "ahash", + "ahash 0.7.6", "anyhow", "pathdiff", "serde", @@ -6380,7 +6743,7 @@ version = "0.167.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db1c7801b1d7741ab335441dd301ddcc4183fb250d5e6efaab33b03def268c06" dependencies = [ - "ahash", + "ahash 0.7.6", "base64 0.13.1", "dashmap", "indexmap", @@ -7096,6 +7459,20 @@ dependencies = [ "webpki-roots", ] +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.4" @@ -7132,6 +7509,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -8280,3 +8658,33 @@ dependencies = [ "quote 1.0.26", "syn 2.0.13", ] + +[[package]] +name = "zstd" +version = "0.12.3+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "6.0.4+zstd.1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7afb4b54b8910cf5447638cb54bf4e8a65cbedd783af98b98c62ffe91f185543" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.7+zstd.1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5" +dependencies = [ + "cc", + "libc", + "pkg-config", +] diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 0df5c4bfc..94bfd3a68 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -14,3 +14,9 @@ juniper = "0.15.11" chrono = "0.4.24" juniper_subscriptions = "0.16.0" futures = "0.3.28" + +actix-web = "4.0.0-beta.9" +actix-rt = "2.2.0" +juniper_actix = "0.4.0" +env_logger = "0.10.0" +serde_json = "1.0.95" diff --git a/rust-executor/src/graphql_types.rs b/rust-executor/src/graphql_types.rs index ce331b1c2..a43505666 100644 --- a/rust-executor/src/graphql_types.rs +++ b/rust-executor/src/graphql_types.rs @@ -53,7 +53,7 @@ pub struct AuthInfoInput { #[graphql(name = "appUrl")] app_url: Option, #[graphql(name = "capabilities")] - capabilities: Vec, + capabilities: Option>, } #[derive(GraphQLObject, Default)] @@ -152,7 +152,7 @@ pub struct InteractionCall { #[derive(GraphQLObject, Default)] pub struct InteractionMeta { - pub label: Option, + pub label: String, pub name: String, pub parameters: Vec, } @@ -190,7 +190,7 @@ pub struct LanguageMeta { pub struct LanguageMetaInput { pub description: String, pub name: String, - pub possible_template_params: Vec, + pub possible_template_params: Option>, pub source_code_link: Option, } @@ -250,12 +250,12 @@ pub struct LinkMutations { #[derive(GraphQLInputObject, Default)] pub struct LinkQuery { - pub from_date: Option, + pub from_date: Option, pub limit: Option, pub predicate: Option, pub source: Option, pub target: Option, - pub until_date: Option, + pub until_date: Option, } #[derive(GraphQLObject, Default)] diff --git a/rust-executor/src/mutation_resolvers.rs b/rust-executor/src/mutation_resolvers.rs index d30ce5ae9..3597b8b31 100644 --- a/rust-executor/src/mutation_resolvers.rs +++ b/rust-executor/src/mutation_resolvers.rs @@ -1,10 +1,12 @@ +#![allow(non_snake_case)] +#![allow(unused_variables)] use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; use crate::graphql_types::*; pub struct Mutation; -#[graphql_object] +#[graphql_object()] impl Mutation { fn add_trusted_agents(&self, agents: Vec) -> FieldResult> { Err(FieldError::new( @@ -213,7 +215,7 @@ impl Mutation { &self, link_language: String, meta: PerspectiveInput, - perspective_uuid: String, + perspectiveUUID: String, ) -> FieldResult { Err(FieldError::new( "Not implemented", @@ -224,7 +226,7 @@ impl Mutation { fn neighbourhood_send_broadcast( &self, payload: PerspectiveInput, - perspective_uuid: String, + perspectiveUUID: String, ) -> FieldResult { Err(FieldError::new( "Not implemented", @@ -235,7 +237,7 @@ impl Mutation { fn neighbourhood_send_broadcast_u( &self, payload: PerspectiveUnsignedInput, - perspective_uuid: String, + perspectiveUUID: String, ) -> FieldResult { Err(FieldError::new( "Not implemented", @@ -246,7 +248,7 @@ impl Mutation { fn neighbourhood_send_signal( &self, payload: PerspectiveInput, - perspective_uuid: String, + perspectiveUUID: String, remote_agent_did: String, ) -> FieldResult { Err(FieldError::new( @@ -258,7 +260,7 @@ impl Mutation { fn neighbourhood_send_signal_u( &self, payload: PerspectiveUnsignedInput, - perspective_uuid: String, + perspectiveUUID: String, remote_agent_did: String, ) -> FieldResult { Err(FieldError::new( @@ -269,7 +271,7 @@ impl Mutation { fn neighbourhood_set_online_status( &self, - perspective_uuid: String, + perspectiveUUID: String, status: PerspectiveInput, ) -> FieldResult { Err(FieldError::new( @@ -280,7 +282,7 @@ impl Mutation { fn neighbourhood_set_online_status_u( &self, - perspective_uuid: String, + perspectiveUUID: String, status: PerspectiveUnsignedInput, ) -> FieldResult { Err(FieldError::new( diff --git a/rust-executor/src/query_resolvers.rs b/rust-executor/src/query_resolvers.rs index 22931a7ac..5617a2329 100644 --- a/rust-executor/src/query_resolvers.rs +++ b/rust-executor/src/query_resolvers.rs @@ -1,3 +1,5 @@ +#![allow(non_snake_case)] +#![allow(unused_variables)] use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; use crate::graphql_types::*; @@ -13,6 +15,7 @@ impl Query { )) } + #[graphql(name = "agentByDID")] fn agent_by_did(&self, did: String) -> FieldResult> { Err(FieldError::new( "Not implemented", @@ -111,10 +114,7 @@ impl Query { )) } - fn neighbourhood_has_telepresence_adapter( - &self, - perspective_uuid: String, - ) -> FieldResult { + fn neighbourhood_has_telepresence_adapter(&self, perspectiveUUID: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -123,7 +123,7 @@ impl Query { fn neighbourhood_online_agents( &self, - perspective_uuid: String, + perspectiveUUID: String, ) -> FieldResult> { Err(FieldError::new( "Not implemented", @@ -131,7 +131,7 @@ impl Query { )) } - fn neighbourhood_other_agents(&self, perspective_uuid: String) -> FieldResult> { + fn neighbourhood_other_agents(&self, perspectiveUUID: String) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), diff --git a/rust-executor/src/subscription_resolvers.rs b/rust-executor/src/subscription_resolvers.rs index 8ddefa707..fba6167c2 100644 --- a/rust-executor/src/subscription_resolvers.rs +++ b/rust-executor/src/subscription_resolvers.rs @@ -1,13 +1,14 @@ -use futures::stream::{Stream, StreamExt}; +#![allow(non_snake_case)] +use futures::stream::Stream; use juniper::{graphql_value, FieldError, FieldResult}; use std::pin::Pin; use crate::graphql_types::*; -pub struct Subscriptions; +pub struct Subscription; #[juniper::graphql_subscription()] -impl Subscriptions { +impl Subscription { async fn agent_status_changed( &self, ) -> Pin> + Send>> { @@ -32,7 +33,7 @@ impl Subscriptions { async fn neighbourhood_signal( &self, - perspective_uuid: String, + perspectiveUUID: String, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); let err_stream = futures::stream::once(async { Err(err) }); From ab4ac1e27ec989400867fda690daaaf726ef57a5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Apr 2023 23:35:57 +0100 Subject: [PATCH 093/722] add start server file & graphql checker package --- rust-executor/.gitignore | 3 + rust-executor/graphql-checker/package.json | 12 ++++ rust-executor/graphql-checker/yarn.lock | 8 +++ rust-executor/src/start_server.rs | 74 ++++++++++++++++++++++ 4 files changed, 97 insertions(+) create mode 100644 rust-executor/.gitignore create mode 100644 rust-executor/graphql-checker/package.json create mode 100644 rust-executor/graphql-checker/yarn.lock create mode 100644 rust-executor/src/start_server.rs diff --git a/rust-executor/.gitignore b/rust-executor/.gitignore new file mode 100644 index 000000000..c88dea28e --- /dev/null +++ b/rust-executor/.gitignore @@ -0,0 +1,3 @@ +!graphql-checker/index.js +schema.json +schema.gql \ No newline at end of file diff --git a/rust-executor/graphql-checker/package.json b/rust-executor/graphql-checker/package.json new file mode 100644 index 000000000..7a13f462f --- /dev/null +++ b/rust-executor/graphql-checker/package.json @@ -0,0 +1,12 @@ +{ + "name": "@perspect3vism/graphql-checker", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "dependencies": { + "graphql": "^16.6.0" + }, + "scripts": { + "check": "graphql-inspector diff ../../core/lib/src/schema.gql ../schema.gql" + } +} diff --git a/rust-executor/graphql-checker/yarn.lock b/rust-executor/graphql-checker/yarn.lock new file mode 100644 index 000000000..fa08ff182 --- /dev/null +++ b/rust-executor/graphql-checker/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +graphql@^16.6.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" + integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== diff --git a/rust-executor/src/start_server.rs b/rust-executor/src/start_server.rs new file mode 100644 index 000000000..21d396d00 --- /dev/null +++ b/rust-executor/src/start_server.rs @@ -0,0 +1,74 @@ +use actix_web::{ + middleware, + web::{self, Data}, + App, Error, HttpResponse, HttpServer, +}; +use juniper::RootNode; +use juniper_actix::{graphiql_handler, graphql_handler, playground_handler}; +use std::env; +use std::io::Write; +//use std::sync::Arc; + +mod graphql_types; +mod mutation_resolvers; +mod query_resolvers; +mod subscription_resolvers; + +use mutation_resolvers::*; +use query_resolvers::*; +use subscription_resolvers::*; + +pub struct MyContext; + +impl juniper::Context for MyContext {} + +type Schema = RootNode<'static, Query, Mutation, Subscription>; + +fn schema() -> Schema { + Schema::new(Query, Mutation, Subscription) +} + +async fn graphiql_route() -> Result { + graphiql_handler("/graphql", None).await +} + +async fn playground_route() -> Result { + playground_handler("/graphql", None).await +} + +async fn graphql_route( + req: actix_web::HttpRequest, + payload: actix_web::web::Payload, + schema: web::Data, +) -> Result { + graphql_handler(&schema, &(), req, payload).await +} + +#[actix_web::main] +async fn main() -> std::io::Result<()> { + env::set_var("RUST_LOG", "info"); + env_logger::init(); + + //let arc_schema = Arc::new(schema()); + + schema().as_schema_language(); + let mut file = std::fs::File::create("schema.gql").unwrap(); + file.write_all(schema().as_schema_language().as_bytes()) + .unwrap(); + + //Start the server + let server = HttpServer::new(move || { + App::new() + .app_data(Data::new(schema())) + .wrap(middleware::Compress::default()) + .wrap(middleware::Logger::default()) + .service( + web::resource("/graphql") + .route(web::post().to(graphql_route)) + .route(web::get().to(graphql_route)), + ) + .service(web::resource("/playground").route(web::get().to(playground_route))) + .service(web::resource("/graphiql").route(web::get().to(graphiql_route))) + }); + server.bind("127.0.0.1:8080").unwrap().run().await +} From e62d3ef9e8a921eafccfbe1e11dac493e47ef93d Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 00:00:41 +0100 Subject: [PATCH 094/722] Integrate graphql server and js runtime in one main --- .../src/{start_server.rs => graphql.rs} | 6 +++--- .../src/{ => graphql}/graphql_types.rs | 0 .../src/{ => graphql}/mutation_resolvers.rs | 2 +- .../src/{ => graphql}/query_resolvers.rs | 2 +- .../{ => graphql}/subscription_resolvers.rs | 2 +- rust-executor/src/js_core.rs | 12 ++++++++++++ rust-executor/src/main.rs | 19 ++++--------------- 7 files changed, 22 insertions(+), 21 deletions(-) rename rust-executor/src/{start_server.rs => graphql.rs} (92%) rename rust-executor/src/{ => graphql}/graphql_types.rs (100%) rename rust-executor/src/{ => graphql}/mutation_resolvers.rs (99%) rename rust-executor/src/{ => graphql}/query_resolvers.rs (99%) rename rust-executor/src/{ => graphql}/subscription_resolvers.rs (99%) diff --git a/rust-executor/src/start_server.rs b/rust-executor/src/graphql.rs similarity index 92% rename from rust-executor/src/start_server.rs rename to rust-executor/src/graphql.rs index 21d396d00..e7fe83c43 100644 --- a/rust-executor/src/start_server.rs +++ b/rust-executor/src/graphql.rs @@ -3,6 +3,7 @@ use actix_web::{ web::{self, Data}, App, Error, HttpResponse, HttpServer, }; +use deno_core::error::AnyError; use juniper::RootNode; use juniper_actix::{graphiql_handler, graphql_handler, playground_handler}; use std::env; @@ -44,8 +45,7 @@ async fn graphql_route( graphql_handler(&schema, &(), req, payload).await } -#[actix_web::main] -async fn main() -> std::io::Result<()> { +pub async fn start_server() -> Result<(), AnyError> { env::set_var("RUST_LOG", "info"); env_logger::init(); @@ -70,5 +70,5 @@ async fn main() -> std::io::Result<()> { .service(web::resource("/playground").route(web::get().to(playground_route))) .service(web::resource("/graphiql").route(web::get().to(graphiql_route))) }); - server.bind("127.0.0.1:8080").unwrap().run().await + server.bind("127.0.0.1:8080").unwrap().run().await.map_err(|e| e.into()) } diff --git a/rust-executor/src/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs similarity index 100% rename from rust-executor/src/graphql_types.rs rename to rust-executor/src/graphql/graphql_types.rs diff --git a/rust-executor/src/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs similarity index 99% rename from rust-executor/src/mutation_resolvers.rs rename to rust-executor/src/graphql/mutation_resolvers.rs index 3597b8b31..3eeaa5b85 100644 --- a/rust-executor/src/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -2,7 +2,7 @@ #![allow(unused_variables)] use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; -use crate::graphql_types::*; +use super::graphql_types::*; pub struct Mutation; diff --git a/rust-executor/src/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs similarity index 99% rename from rust-executor/src/query_resolvers.rs rename to rust-executor/src/graphql/query_resolvers.rs index 5617a2329..7a5d70d34 100644 --- a/rust-executor/src/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -2,7 +2,7 @@ #![allow(unused_variables)] use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; -use crate::graphql_types::*; +use super::graphql_types::*; pub struct Query; diff --git a/rust-executor/src/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs similarity index 99% rename from rust-executor/src/subscription_resolvers.rs rename to rust-executor/src/graphql/subscription_resolvers.rs index fba6167c2..3c57ba800 100644 --- a/rust-executor/src/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -3,7 +3,7 @@ use futures::stream::Stream; use juniper::{graphql_value, FieldError, FieldResult}; use std::pin::Pin; -use crate::graphql_types::*; +use super::graphql_types::*; pub struct Subscription; diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 1d8433ba8..03b45f7b0 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -46,4 +46,16 @@ impl JsCore { "core".to_string(), )) } + + pub async fn run() -> Result<(), AnyError> { + let js_core = JsCore::new(); + js_core.init_engine().await; + let core_init = async { + let result = js_core.init_core().expect("core init failed").await; + println!("core init done!"); + result + }; + let (event, init) = tokio::join!(core_init, js_core.event_loop()); + event.and(init) + } } diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 4c88bfb78..4edb59f77 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,22 +1,11 @@ -use deno_core::error::AnyError; - mod js_core; +mod graphql; -async fn run() -> Result<(), AnyError> { - let js_core = js_core::JsCore::new(); - js_core.init_engine().await; - let core_init = async { - let result = js_core.init_core().expect("core init failed").await; - println!("core init done!"); - result - }; - let (event, init) = tokio::join!(core_init, js_core.event_loop()); - event.and(init) -} -#[tokio::main] +#[actix_web::main] async fn main() { - if let Err(error) = run().await { + let (graphql, js_core) = tokio::join!(graphql::start_server(), js_core::JsCore::run()); + if let Err(error) = graphql.and(js_core) { eprintln!("error: {}", error); } } From c936c3014bb0ee129c96c5b16472b8e6a6b8b51d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Apr 2023 00:46:00 +0100 Subject: [PATCH 095/722] have futures return errors correctly --- rust-executor/src/js_core.rs | 6 ++---- rust-executor/src/main.rs | 7 +++---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 03b45f7b0..43aa72c21 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -47,15 +47,13 @@ impl JsCore { )) } - pub async fn run() -> Result<(), AnyError> { + pub async fn run() -> Result<((), ()), AnyError> { let js_core = JsCore::new(); js_core.init_engine().await; let core_init = async { let result = js_core.init_core().expect("core init failed").await; - println!("core init done!"); result }; - let (event, init) = tokio::join!(core_init, js_core.event_loop()); - event.and(init) + tokio::try_join!(core_init, js_core.event_loop()) } } diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 4edb59f77..137ba16f8 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,11 +1,10 @@ -mod js_core; mod graphql; - +mod js_core; #[actix_web::main] async fn main() { - let (graphql, js_core) = tokio::join!(graphql::start_server(), js_core::JsCore::run()); - if let Err(error) = graphql.and(js_core) { + let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); + if let Err(error) = fut_res { eprintln!("error: {}", error); } } From 3d39df1c3696fffa80cebeeb43b59f59e10f911d Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 01:10:12 +0100 Subject: [PATCH 096/722] Implement Actor for JsCore --- Cargo.lock | 2 ++ rust-executor/Cargo.toml | 1 + rust-executor/src/js_core.rs | 41 ++++++++++++++++++++++++++++++++++++ rust-executor/src/main.rs | 2 +- 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 6b85ab04d..4f46d7cc9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,6 +43,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f728064aca1c318585bf4bb04ffcfac9e75e508ab4e8b1bd9ba5dfe04e2cbed5" dependencies = [ "actix-rt", + "actix_derive", "bitflags", "bytes", "crossbeam-channel", @@ -5733,6 +5734,7 @@ dependencies = [ name = "rust-executor" version = "0.1.0" dependencies = [ + "actix 0.13.0", "actix-rt", "actix-web", "chrono", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 94bfd3a68..b0fccc343 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -20,3 +20,4 @@ actix-rt = "2.2.0" juniper_actix = "0.4.0" env_logger = "0.10.0" serde_json = "1.0.95" +actix = "0.13.0" diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 43aa72c21..edfbdffea 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -1,4 +1,7 @@ +use actix::prelude::*; + use deno_core::error::AnyError; +use deno_core::v8; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; use std::sync::{Arc, Mutex}; @@ -9,6 +12,14 @@ mod string_module_loader; use self::futures::{EventLoopFuture, GlobalVariableFuture}; use options::{main_module_url, main_worker_options}; + +/// Define message +#[derive(Message)] +#[rtype(result = "Result")] +struct Execute { + script: String, +} + pub struct JsCore { worker: Arc>, } @@ -57,3 +68,33 @@ impl JsCore { tokio::try_join!(core_init, js_core.event_loop()) } } + +// Provide Actor implementation for our actor +impl Actor for JsCore { + type Context = Context; + + fn started(&mut self, _: &mut Context) { + println!("Actor is alive"); + } + + fn stopped(&mut self, _: &mut Context) { + println!("Actor is stopped"); + } +} + +/// Define handler for `Ping` message +impl Handler for JsCore { + type Result = Result; + + fn handle(&mut self, msg: Execute, _: &mut Context) -> Self::Result { + let mut worker = self.worker.lock().unwrap(); + let result = worker.execute_script("js_core", format!("JSON.stringify({})", msg.script))?; + let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); + let context = v8::Context::new(scope); + let scope = &mut v8::ContextScope::new(scope, context); + let value = v8::Local::new(scope, result); + //let value: v8::Local = unsafe { v8::Local::cast(value) }; + let value = value.to_rust_string_lossy(scope); + Ok(value) + } +} \ No newline at end of file diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 137ba16f8..702ba4c20 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,7 +1,7 @@ mod graphql; mod js_core; -#[actix_web::main] +#[actix_rt::main] async fn main() { let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); if let Err(error) = fut_res { From 58331f93c2101d7a983cb79b29b1bcd396418bd1 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 13:40:13 +0100 Subject: [PATCH 097/722] Run Deno worker in its own thread with own tokio runtime --- rust-executor/src/js_core.rs | 68 +++++++++++++++++++++++++++--------- rust-executor/src/main.rs | 15 +++++--- 2 files changed, 62 insertions(+), 21 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index edfbdffea..57bb75bfb 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -1,11 +1,11 @@ use actix::prelude::*; - use deno_core::error::AnyError; -use deno_core::v8; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; +use tokio::sync::mpsc::{self, Receiver}; +use tokio::task::LocalSet; use std::sync::{Arc, Mutex}; - +use tokio::runtime::Builder; mod futures; mod options; mod string_module_loader; @@ -16,8 +16,8 @@ use options::{main_module_url, main_worker_options}; /// Define message #[derive(Message)] #[rtype(result = "Result")] -struct Execute { - script: String, +pub struct Execute { + pub script: String, } pub struct JsCore { @@ -58,23 +58,58 @@ impl JsCore { )) } - pub async fn run() -> Result<((), ()), AnyError> { - let js_core = JsCore::new(); - js_core.init_engine().await; - let core_init = async { - let result = js_core.init_core().expect("core init failed").await; - result - }; - tokio::try_join!(core_init, js_core.event_loop()) + pub fn start() -> Receiver<()>{ + let (sx, rx) = mpsc::channel::<()>(1); + std::thread::spawn(move || { + let rt = Builder::new_current_thread() + .enable_all() + .build() + .expect("Failed to create Tokio runtime"); + let _guard = rt.enter(); + + let js_core = JsCore::new(); + + rt.block_on(js_core.init_engine()); + let local = LocalSet::new(); + local.spawn_local(js_core.init_core().expect("couldn't spawn JS initCore()")); + match rt.block_on(js_core.event_loop()) { + Ok(_) => println!("event loop finished"), + Err(err) => println!("event loop failed: {}", err), + }; + + rt.block_on(sx.send(())).expect("couldn't send on channel"); + }); + rx } } +/* // Provide Actor implementation for our actor impl Actor for JsCore { type Context = Context; - fn started(&mut self, _: &mut Context) { - println!("Actor is alive"); + fn started(&mut self, ctx: &mut Context) { + println!("Starting JsCore actor..."); + + let event_loop_fut = self.event_loop(); + ctx.spawn(async move { + match event_loop_fut.await { + Ok(_) => println!("event loop finished"), + Err(err) => println!("event loop failed: {}", err), + } + }.into_actor(self)); + + //let init_core_fut = self.init_core().expect("couldn't call JS initCore()"); + //actix_rt::Arbiter::spawn_blocking(init_core_fut); + //tokio::runtime:: + //ctx.spawn(async move { + //init_engine_fut.await; + // init_core_fut.await; + //}.into_actor(self)); + + + + } fn stopped(&mut self, _: &mut Context) { @@ -97,4 +132,5 @@ impl Handler for JsCore { let value = value.to_rust_string_lossy(scope); Ok(value) } -} \ No newline at end of file +} + */ \ No newline at end of file diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 702ba4c20..134fcdea1 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,10 +1,15 @@ mod graphql; mod js_core; -#[actix_rt::main] +use js_core::JsCore; + +#[tokio::main] async fn main() { - let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); - if let Err(error) = fut_res { - eprintln!("error: {}", error); - } + let mut rx = JsCore::start(); + rx.recv().await; + + //let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); + //if let Err(error) = fut_res { + // eprintln!("error: {}", error); + //} } From d039b41a39db031e90e6bd0433386c111c8bd8f0 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 13:42:13 +0100 Subject: [PATCH 098/722] Make JsCore functions non-pub --- rust-executor/src/js_core.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 57bb75bfb..3de909f1e 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -20,12 +20,13 @@ pub struct Execute { pub script: String, } + pub struct JsCore { worker: Arc>, } impl JsCore { - pub fn new() -> Self { + fn new() -> Self { JsCore { worker: Arc::new(Mutex::new(MainWorker::from_options( main_module_url(), @@ -35,7 +36,7 @@ impl JsCore { } } - pub async fn init_engine(&self) { + async fn init_engine(&self) { let mut worker = self.worker.lock().unwrap(); worker.bootstrap(&BootstrapOptions::default()); worker @@ -44,12 +45,12 @@ impl JsCore { .unwrap(); } - pub fn event_loop(&self) -> EventLoopFuture { + fn event_loop(&self) -> EventLoopFuture { let event_loop = EventLoopFuture::new(self.worker.clone()); event_loop } - pub fn init_core(&self) -> Result { + fn init_core(&self) -> Result { let mut worker = self.worker.lock().unwrap(); let _init_core = worker.execute_script("js_core", "initCore()")?; Ok(GlobalVariableFuture::new( From 80078a0989de6da55d3c178345dcedad6070fb08 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 13:51:04 +0100 Subject: [PATCH 099/722] JsCore handle with channels --- rust-executor/src/js_core.rs | 24 +++++++++++++++++++----- rust-executor/src/main.rs | 4 ++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 3de909f1e..90e6949c0 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -2,7 +2,7 @@ use actix::prelude::*; use deno_core::error::AnyError; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; -use tokio::sync::mpsc::{self, Receiver}; +use tokio::sync::mpsc::{self, Receiver, Sender}; use tokio::task::LocalSet; use std::sync::{Arc, Mutex}; use tokio::runtime::Builder; @@ -19,7 +19,16 @@ use options::{main_module_url, main_worker_options}; pub struct Execute { pub script: String, } +pub struct JsCoreActor { + rx: Receiver<()>, + tx: Sender<()>, +} +impl JsCoreActor { + pub async fn initialized(&mut self) { + self.rx.recv().await.expect("couldn't receive on channel"); + } +} pub struct JsCore { worker: Arc>, @@ -59,8 +68,9 @@ impl JsCore { )) } - pub fn start() -> Receiver<()>{ - let (sx, rx) = mpsc::channel::<()>(1); + pub fn start() -> JsCoreActor{ + let (tx_inside, rx_outside) = mpsc::channel::<()>(1); + let (tx_outside, rx_inside) = mpsc::channel::<()>(1); std::thread::spawn(move || { let rt = Builder::new_current_thread() .enable_all() @@ -78,9 +88,13 @@ impl JsCore { Err(err) => println!("event loop failed: {}", err), }; - rt.block_on(sx.send(())).expect("couldn't send on channel"); + rt.block_on(tx_inside.send(())).expect("couldn't send on channel"); }); - rx + + JsCoreActor { + rx: rx_outside, + tx: tx_outside, + } } } diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 134fcdea1..654d27e75 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -5,8 +5,8 @@ use js_core::JsCore; #[tokio::main] async fn main() { - let mut rx = JsCore::start(); - rx.recv().await; + let mut js_core = JsCore::start(); + js_core.initialized().await; //let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); //if let Err(error) = fut_res { From abf07db75de08e84dd66f6413a004ba5acdb359c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 14:17:08 +0100 Subject: [PATCH 100/722] WIP: JsCoreHandle executing scripts --- Cargo.lock | 1 + rust-executor/Cargo.toml | 1 + rust-executor/src/js_core.rs | 77 ++++++++++++++++++++++++++++-------- rust-executor/src/main.rs | 2 +- 4 files changed, 63 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4f46d7cc9..a10fefe50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5748,6 +5748,7 @@ dependencies = [ "serde_json", "tokio", "url", + "uuid 1.3.0", ] [[package]] diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index b0fccc343..bd897dac5 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -21,3 +21,4 @@ juniper_actix = "0.4.0" env_logger = "0.10.0" serde_json = "1.0.95" actix = "0.13.0" +uuid = "1.3.0" diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 90e6949c0..a2f1303df 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -2,10 +2,10 @@ use actix::prelude::*; use deno_core::error::AnyError; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; -use tokio::sync::mpsc::{self, Receiver, Sender}; -use tokio::task::LocalSet; use std::sync::{Arc, Mutex}; use tokio::runtime::Builder; +use tokio::sync::mpsc::{self, UnboundedReceiver, UnboundedSender}; +use tokio::task::LocalSet; mod futures; mod options; mod string_module_loader; @@ -19,15 +19,49 @@ use options::{main_module_url, main_worker_options}; pub struct Execute { pub script: String, } -pub struct JsCoreActor { - rx: Receiver<()>, - tx: Sender<()>, + +pub struct JsCoreHandle { + rx: UnboundedReceiver, + tx: UnboundedSender, } -impl JsCoreActor { +impl JsCoreHandle { pub async fn initialized(&mut self) { self.rx.recv().await.expect("couldn't receive on channel"); } + + pub async fn execute(&mut self, script: String) -> Result { + let id = uuid::Uuid::new_v4().to_string(); + self.tx + .send(JsCoreRequest { + script, + id: id.clone(), + }) + .expect("couldn't send on channel"); + + let mut response = None; + while response.is_none() { + self.rx.recv().await.map(|r| { + if r.id == id { + response = Some(r); + } + }); + } + + response.unwrap().result + } +} + +#[derive(Debug)] +struct JsCoreRequest { + script: String, + id: String, +} + +#[derive(Debug)] +struct JsCoreResponse { + result: Result, + id: String, } pub struct JsCore { @@ -68,9 +102,9 @@ impl JsCore { )) } - pub fn start() -> JsCoreActor{ - let (tx_inside, rx_outside) = mpsc::channel::<()>(1); - let (tx_outside, rx_inside) = mpsc::channel::<()>(1); + pub fn start() -> JsCoreHandle { + let (tx_inside, rx_outside) = mpsc::unbounded_channel::(); + let (tx_outside, rx_inside) = mpsc::unbounded_channel::(); std::thread::spawn(move || { let rt = Builder::new_current_thread() .enable_all() @@ -79,19 +113,28 @@ impl JsCore { let _guard = rt.enter(); let js_core = JsCore::new(); - + rt.block_on(js_core.init_engine()); let local = LocalSet::new(); - local.spawn_local(js_core.init_core().expect("couldn't spawn JS initCore()")); + + let init_core_future = js_core.init_core().expect("couldn't spawn JS initCore()"); + let tx_cloned = tx_inside.clone(); + local.spawn_local(async move { + init_core_future.await; + tx_cloned + .send(JsCoreResponse { + result: Ok(String::from("initialized")), + id: String::from("initialized"), + }) + .expect("couldn't send on channel"); + }); match rt.block_on(js_core.event_loop()) { Ok(_) => println!("event loop finished"), Err(err) => println!("event loop failed: {}", err), }; - - rt.block_on(tx_inside.send(())).expect("couldn't send on channel"); }); - JsCoreActor { + JsCoreHandle { rx: rx_outside, tx: tx_outside, } @@ -122,9 +165,9 @@ impl Actor for JsCore { // init_core_fut.await; //}.into_actor(self)); - - + + } fn stopped(&mut self, _: &mut Context) { @@ -148,4 +191,4 @@ impl Handler for JsCore { Ok(value) } } - */ \ No newline at end of file + */ diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 654d27e75..c182e9247 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -7,7 +7,7 @@ use js_core::JsCore; async fn main() { let mut js_core = JsCore::start(); js_core.initialized().await; - + println!("js_core initialized"); //let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); //if let Err(error) = fut_res { // eprintln!("error: {}", error); From c150385534dd6e2313dc3e7d9d3f87ad4d7a1380 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 14:41:45 +0100 Subject: [PATCH 101/722] fmt --- rust-executor/src/graphql.rs | 7 ++++++- rust-executor/src/js_core.rs | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rust-executor/src/graphql.rs b/rust-executor/src/graphql.rs index e7fe83c43..35da04db6 100644 --- a/rust-executor/src/graphql.rs +++ b/rust-executor/src/graphql.rs @@ -70,5 +70,10 @@ pub async fn start_server() -> Result<(), AnyError> { .service(web::resource("/playground").route(web::get().to(playground_route))) .service(web::resource("/graphiql").route(web::get().to(graphiql_route))) }); - server.bind("127.0.0.1:8080").unwrap().run().await.map_err(|e| e.into()) + server + .bind("127.0.0.1:8080") + .unwrap() + .run() + .await + .map_err(|e| e.into()) } diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index a2f1303df..872c7b6a3 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -121,7 +121,7 @@ impl JsCore { let tx_cloned = tx_inside.clone(); local.spawn_local(async move { init_core_future.await; - tx_cloned + tx_cloned .send(JsCoreResponse { result: Ok(String::from("initialized")), id: String::from("initialized"), From 820baa80d6564cef8b8ed5051f4112778f6fd31c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Apr 2023 16:39:16 +0100 Subject: [PATCH 102/722] Fix running event loop and core init --- rust-executor/src/js_core.rs | 75 ++++++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 17 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index a2f1303df..467300ba0 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -115,23 +115,64 @@ impl JsCore { let js_core = JsCore::new(); rt.block_on(js_core.init_engine()); - let local = LocalSet::new(); - - let init_core_future = js_core.init_core().expect("couldn't spawn JS initCore()"); - let tx_cloned = tx_inside.clone(); - local.spawn_local(async move { - init_core_future.await; - tx_cloned - .send(JsCoreResponse { - result: Ok(String::from("initialized")), - id: String::from("initialized"), - }) - .expect("couldn't send on channel"); - }); - match rt.block_on(js_core.event_loop()) { - Ok(_) => println!("event loop finished"), - Err(err) => println!("event loop failed: {}", err), - }; + println!("engine init complete"); + // let local = LocalSet::new(); + + // let init_core_future = js_core.init_core().expect("couldn't spawn JS initCore()"); + // let tx_cloned = tx_inside.clone(); + // local.spawn_local(async move { + // println!("start spawn local"); + // let core_fut = init_core_future.await; + // println!("core fut got res: {:?}", core_fut); + // tx_cloned + // .send(JsCoreResponse { + // result: Ok(String::from("initialized")), + // id: String::from("initialized"), + // }) + // .expect("couldn't send on channel"); + // }); + // match rt.block_on(js_core.event_loop()) { + // Ok(_) => println!("event loop finished"), + // Err(err) => println!("event loop failed: {}", err), + // }; + + rt.block_on(async { + let local = LocalSet::new(); + let init_core_future = js_core.init_core().expect("couldn't spawn JS initCore()"); + let tx_cloned = tx_inside.clone(); + // let local_handle = local.spawn_local(async move { + // println!("start spawn local"); + // let core_fut = init_core_future.await; + // println!("core fut got res: {:?}", core_fut); + // tx_cloned + // .send(JsCoreResponse { + // result: Ok(String::from("initialized")), + // id: String::from("initialized"), + // }) + // .expect("couldn't send on channel"); + // }); + // Run the local task set. + let run_until = local.run_until(async move { + println!("run until..."); + println!("start spawn local"); + let core_fut = init_core_future.await; + println!("core fut got res: {:?}", core_fut); + tx_cloned + .send(JsCoreResponse { + result: Ok(String::from("initialized")), + id: String::from("initialized"), + }) + .expect("couldn't send on channel"); + }); + tokio::select! { + _ = run_until => { + println!("Local future completed."); + } + _ = js_core.event_loop() => { + eprintln!("This branch should never be executed since continuous_future never ends."); + } + } + }) }); JsCoreHandle { From 50ecde42df8ecde5d249dc32d823c4027d0757f0 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 17:45:37 +0100 Subject: [PATCH 103/722] Hack JS Error to work with our bundle --- rust-executor/src/js_core/main.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/js_core/main.js b/rust-executor/src/js_core/main.js index 9adb314db..0bb611357 100644 --- a/rust-executor/src/js_core/main.js +++ b/rust-executor/src/js_core/main.js @@ -40,9 +40,18 @@ Error.captureStackTrace = function (err, constructorOpt) { isConstructor() { return false; }, + isAsync() { + return false; + }, + isPromiseAll() { + return false; + }, }; + const structuredStackTrace = [fakeCallSite]; - err.stack = Error.prepareStackTrace(err, structuredStackTrace); + if(err.code == "UNKNOWN", err.syscall == "accept") { + err.stack = Error.prepareStackTrace(err, structuredStackTrace); + } } else { err.stack = err.stack || err.toString(); } From bd210e175ea422c955d86bc97bb8ec34f0f2976e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Apr 2023 18:11:44 +0100 Subject: [PATCH 104/722] cleanup future error handling --- rust-executor/src/js_core.rs | 53 +++++++++--------------------------- 1 file changed, 13 insertions(+), 40 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 8babc424c..a2fe4e7bb 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -115,60 +115,33 @@ impl JsCore { let js_core = JsCore::new(); rt.block_on(js_core.init_engine()); - println!("engine init complete"); - // let local = LocalSet::new(); - // let init_core_future = js_core.init_core().expect("couldn't spawn JS initCore()"); - // let tx_cloned = tx_inside.clone(); - // local.spawn_local(async move { - // println!("start spawn local"); - // let core_fut = init_core_future.await; - // println!("core fut got res: {:?}", core_fut); - // tx_cloned - // .send(JsCoreResponse { - // result: Ok(String::from("initialized")), - // id: String::from("initialized"), - // }) - // .expect("couldn't send on channel"); - // }); - // match rt.block_on(js_core.event_loop()) { - // Ok(_) => println!("event loop finished"), - // Err(err) => println!("event loop failed: {}", err), - // }; + println!("AD4M JS engine init completed"); rt.block_on(async { let local = LocalSet::new(); let init_core_future = js_core.init_core().expect("couldn't spawn JS initCore()"); let tx_cloned = tx_inside.clone(); - // let local_handle = local.spawn_local(async move { - // println!("start spawn local"); - // let core_fut = init_core_future.await; - // println!("core fut got res: {:?}", core_fut); - // tx_cloned - // .send(JsCoreResponse { - // result: Ok(String::from("initialized")), - // id: String::from("initialized"), - // }) - // .expect("couldn't send on channel"); - // }); + // Run the local task set. let run_until = local.run_until(async move { - println!("run until..."); - println!("start spawn local"); - let core_fut = init_core_future.await; - println!("core fut got res: {:?}", core_fut); + match init_core_future.await { + Ok(_) => {} + Err(err) => println!("AD4M coreInit() failed with error: {}", err), + }; tx_cloned .send(JsCoreResponse { result: Ok(String::from("initialized")), id: String::from("initialized"), }) .expect("couldn't send on channel"); - }); + }); tokio::select! { - _ = run_until => { - println!("Local future completed."); - } - _ = js_core.event_loop() => { - eprintln!("This branch should never be executed since continuous_future never ends."); + _init_core_result = run_until => {} + event_loop_result = js_core.event_loop() => { + match event_loop_result { + Ok(_) => println!("AD4M event loop finished"), + Err(err) => println!("AD4M event loop closed with error: {}", err), + } } } }) From 72dd16f5e6c94b84c794c8daa3b13182cc3098cd Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 18:57:25 +0100 Subject: [PATCH 105/722] Broadcast channel for multiple handles --- rust-executor/src/js_core.rs | 47 ++++++++++++++++++++++++++++-------- rust-executor/src/main.rs | 10 +++++--- 2 files changed, 44 insertions(+), 13 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index a2fe4e7bb..009a7b601 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -2,9 +2,13 @@ use actix::prelude::*; use deno_core::error::AnyError; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; +use tokio::sync::broadcast; use std::sync::{Arc, Mutex}; use tokio::runtime::Builder; -use tokio::sync::mpsc::{self, UnboundedReceiver, UnboundedSender}; +use tokio::sync::{ + broadcast::{Receiver, Sender}, + mpsc::{self, UnboundedSender} +}; use tokio::task::LocalSet; mod futures; mod options; @@ -21,7 +25,7 @@ pub struct Execute { } pub struct JsCoreHandle { - rx: UnboundedReceiver, + rx: Receiver, tx: UnboundedSender, } @@ -48,34 +52,38 @@ impl JsCoreHandle { }); } - response.unwrap().result + Ok(response.expect("none case handle above").result) } } -#[derive(Debug)] +#[derive(Debug, Clone)] struct JsCoreRequest { script: String, id: String, } -#[derive(Debug)] +#[derive(Debug, Clone)] struct JsCoreResponse { - result: Result, + result: String, id: String, } pub struct JsCore { worker: Arc>, + results_sender: Option>, + requests_sender: Option>, } impl JsCore { - fn new() -> Self { + pub fn new() -> Self { JsCore { worker: Arc::new(Mutex::new(MainWorker::from_options( main_module_url(), PermissionsContainer::allow_all(), main_worker_options(), ))), + results_sender: None, + requests_sender: None, } } @@ -102,9 +110,17 @@ impl JsCore { )) } - pub fn start() -> JsCoreHandle { - let (tx_inside, rx_outside) = mpsc::unbounded_channel::(); + pub fn start(&mut self) -> JsCoreHandle { + if self.results_sender.is_some() { + panic!("JsCore already started"); + } + + let (tx_inside, rx_outside) = broadcast::channel::(50); let (tx_outside, rx_inside) = mpsc::unbounded_channel::(); + + self.requests_sender = Some(tx_outside.clone()); + self.results_sender = Some(tx_inside.clone()); + std::thread::spawn(move || { let rt = Builder::new_current_thread() .enable_all() @@ -130,7 +146,7 @@ impl JsCore { }; tx_cloned .send(JsCoreResponse { - result: Ok(String::from("initialized")), + result: String::from("initialized"), id: String::from("initialized"), }) .expect("couldn't send on channel"); @@ -144,14 +160,25 @@ impl JsCore { } } } + + }) }); + JsCoreHandle { rx: rx_outside, tx: tx_outside, } } + + + pub fn get_handle(&self) -> JsCoreHandle { + JsCoreHandle { + rx: self.results_sender.as_ref().unwrap().subscribe(), + tx: self.requests_sender.as_ref().unwrap().clone(), + } + } } /* diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index c182e9247..14cfa9cd7 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -2,12 +2,16 @@ mod graphql; mod js_core; use js_core::JsCore; +use graphql::start_server; #[tokio::main] async fn main() { - let mut js_core = JsCore::start(); - js_core.initialized().await; - println!("js_core initialized"); + let mut js_core = JsCore::new(); + let mut js_core_handle = js_core.start(); + js_core_handle.initialized().await; + println!("js_core initialized."); + println!("Starting GraphQL..."); + start_server().await; //let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); //if let Err(error) = fut_res { // eprintln!("error: {}", error); From ce39fbc112aa5455330eeb453603bdd7291d6628 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 19:06:51 +0100 Subject: [PATCH 106/722] JsCoreHandle::execute_script working --- rust-executor/src/js_core.rs | 41 +++++++++++++++++++++++++++++++++++- rust-executor/src/main.rs | 6 ++++-- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 009a7b601..9860a4a2c 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -1,5 +1,6 @@ use actix::prelude::*; use deno_core::error::AnyError; +use deno_core::v8; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; use tokio::sync::broadcast; @@ -116,7 +117,7 @@ impl JsCore { } let (tx_inside, rx_outside) = broadcast::channel::(50); - let (tx_outside, rx_inside) = mpsc::unbounded_channel::(); + let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); self.requests_sender = Some(tx_outside.clone()); self.results_sender = Some(tx_inside.clone()); @@ -161,6 +162,44 @@ impl JsCore { } } + // Until stop was request via message + // wait for new messages, execute them + // and concurrently run the event loop + loop { + tokio::select! { + event_loop_result = js_core.event_loop() => { + match event_loop_result { + Ok(_) => println!("AD4M event loop finished"), + Err(err) => println!("AD4M event loop closed with error: {}", err), + } + } + request = rx_inside.recv() => { + match request { + Some(request) => { + let mut worker = js_core.worker.lock().unwrap(); + let result = worker.execute_script("js_core", request.script).expect("couldn't execute script"); + // evaluate deno result into String + let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); + let context = v8::Context::new(scope); + let scope = &mut v8::ContextScope::new(scope, context); + let value = v8::Local::new(scope, result); + //let value: v8::Local = unsafe { v8::Local::cast(value) }; + let value = value.to_rust_string_lossy(scope); + tx_inside + .send(JsCoreResponse { + result: value, + id: request.id, + }) + .expect("couldn't send on channel"); + } + None => { + println!("AD4M event loop closed"); + break; + } + } + } + } + } }) }); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 14cfa9cd7..d5948a44e 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -10,8 +10,10 @@ async fn main() { let mut js_core_handle = js_core.start(); js_core_handle.initialized().await; println!("js_core initialized."); - println!("Starting GraphQL..."); - start_server().await; + let result = js_core_handle.execute("console.log('hello world'); 400 + 20".to_string()).await; + println!("result: {:?}", result); + //println!("Starting GraphQL..."); + //start_server().await; //let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); //if let Err(error) = fut_res { // eprintln!("error: {}", error); From 87dd497354e164ffe491b74b15419f312f1ff3da Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 19:18:58 +0100 Subject: [PATCH 107/722] Clonable JsCoreHandle --- rust-executor/src/js_core.rs | 25 ++++++++++++++----------- rust-executor/src/main.rs | 3 ++- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 9860a4a2c..6c9b1549d 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -28,6 +28,18 @@ pub struct Execute { pub struct JsCoreHandle { rx: Receiver, tx: UnboundedSender, + + broadcast_tx: Sender, +} + +impl Clone for JsCoreHandle { + fn clone(&self) -> Self { + JsCoreHandle { + rx: self.broadcast_tx.subscribe(), + tx: self.tx.clone(), + broadcast_tx: self.broadcast_tx.clone(), + } + } } impl JsCoreHandle { @@ -119,9 +131,7 @@ impl JsCore { let (tx_inside, rx_outside) = broadcast::channel::(50); let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); - self.requests_sender = Some(tx_outside.clone()); - self.results_sender = Some(tx_inside.clone()); - + let tx_inside_clone = tx_inside.clone(); std::thread::spawn(move || { let rt = Builder::new_current_thread() .enable_all() @@ -203,21 +213,14 @@ impl JsCore { }) }); - JsCoreHandle { rx: rx_outside, tx: tx_outside, + broadcast_tx: tx_inside_clone, } } - - pub fn get_handle(&self) -> JsCoreHandle { - JsCoreHandle { - rx: self.results_sender.as_ref().unwrap().subscribe(), - tx: self.requests_sender.as_ref().unwrap().clone(), - } - } } /* diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index d5948a44e..7d69af44e 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -10,7 +10,8 @@ async fn main() { let mut js_core_handle = js_core.start(); js_core_handle.initialized().await; println!("js_core initialized."); - let result = js_core_handle.execute("console.log('hello world'); 400 + 20".to_string()).await; + let mut clone = js_core_handle.clone(); + let result = clone.execute("console.log('hello world'); process".to_string()).await; println!("result: {:?}", result); //println!("Starting GraphQL..."); //start_server().await; From d4de4eddc76afad80d5a54ae285b9964c6044b09 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 19:19:17 +0100 Subject: [PATCH 108/722] fmt --- rust-executor/src/js_core.rs | 5 ++--- rust-executor/src/main.rs | 6 ++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 6c9b1549d..a430210e1 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -3,12 +3,12 @@ use deno_core::error::AnyError; use deno_core::v8; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; -use tokio::sync::broadcast; use std::sync::{Arc, Mutex}; use tokio::runtime::Builder; +use tokio::sync::broadcast; use tokio::sync::{ broadcast::{Receiver, Sender}, - mpsc::{self, UnboundedSender} + mpsc::{self, UnboundedSender}, }; use tokio::task::LocalSet; mod futures; @@ -220,7 +220,6 @@ impl JsCore { broadcast_tx: tx_inside_clone, } } - } /* diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 7d69af44e..cb1bc95f6 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,8 +1,8 @@ mod graphql; mod js_core; -use js_core::JsCore; use graphql::start_server; +use js_core::JsCore; #[tokio::main] async fn main() { @@ -11,7 +11,9 @@ async fn main() { js_core_handle.initialized().await; println!("js_core initialized."); let mut clone = js_core_handle.clone(); - let result = clone.execute("console.log('hello world'); process".to_string()).await; + let result = clone + .execute("console.log('hello world'); process".to_string()) + .await; println!("result: {:?}", result); //println!("Starting GraphQL..."); //start_server().await; From 9b99bced85ea634a5a97c1d904a0d7d0e1960bc5 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 19:23:15 +0100 Subject: [PATCH 109/722] Refactor JsCore::start() to be static function --- rust-executor/src/js_core.rs | 10 +--------- rust-executor/src/main.rs | 3 +-- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index a430210e1..feaf953c9 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -83,8 +83,6 @@ struct JsCoreResponse { pub struct JsCore { worker: Arc>, - results_sender: Option>, - requests_sender: Option>, } impl JsCore { @@ -95,8 +93,6 @@ impl JsCore { PermissionsContainer::allow_all(), main_worker_options(), ))), - results_sender: None, - requests_sender: None, } } @@ -123,11 +119,7 @@ impl JsCore { )) } - pub fn start(&mut self) -> JsCoreHandle { - if self.results_sender.is_some() { - panic!("JsCore already started"); - } - + pub fn start() -> JsCoreHandle { let (tx_inside, rx_outside) = broadcast::channel::(50); let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index cb1bc95f6..6c79e7d72 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -6,8 +6,7 @@ use js_core::JsCore; #[tokio::main] async fn main() { - let mut js_core = JsCore::new(); - let mut js_core_handle = js_core.start(); + let mut js_core_handle = JsCore::start(); js_core_handle.initialized().await; println!("js_core initialized."); let mut clone = js_core_handle.clone(); From e252114853c1b585971538f879270b6f7ffd8412 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Apr 2023 19:25:22 +0100 Subject: [PATCH 110/722] give JsCoreHandle context to all graphql resolvers --- rust-executor/src/graphql.rs | 11 +- .../src/graphql/mutation_resolvers.rs | 159 +++++++++++++++--- rust-executor/src/graphql/query_resolvers.rs | 105 +++++++++--- .../src/graphql/subscription_resolvers.rs | 24 ++- 4 files changed, 237 insertions(+), 62 deletions(-) diff --git a/rust-executor/src/graphql.rs b/rust-executor/src/graphql.rs index 35da04db6..fca4f1c2e 100644 --- a/rust-executor/src/graphql.rs +++ b/rust-executor/src/graphql.rs @@ -8,7 +8,6 @@ use juniper::RootNode; use juniper_actix::{graphiql_handler, graphql_handler, playground_handler}; use std::env; use std::io::Write; -//use std::sync::Arc; mod graphql_types; mod mutation_resolvers; @@ -19,6 +18,8 @@ use mutation_resolvers::*; use query_resolvers::*; use subscription_resolvers::*; +use crate::js_core::JsCoreHandle; + pub struct MyContext; impl juniper::Context for MyContext {} @@ -41,16 +42,15 @@ async fn graphql_route( req: actix_web::HttpRequest, payload: actix_web::web::Payload, schema: web::Data, + deno_connect: web::Data, ) -> Result { - graphql_handler(&schema, &(), req, payload).await + graphql_handler(&schema, &deno_connect, req, payload).await } -pub async fn start_server() -> Result<(), AnyError> { +pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> { env::set_var("RUST_LOG", "info"); env_logger::init(); - //let arc_schema = Arc::new(schema()); - schema().as_schema_language(); let mut file = std::fs::File::create("schema.gql").unwrap(); file.write_all(schema().as_schema_language().as_bytes()) @@ -60,6 +60,7 @@ pub async fn start_server() -> Result<(), AnyError> { let server = HttpServer::new(move || { App::new() .app_data(Data::new(schema())) + .app_data(Data::new(js_core_handle.clone())) .wrap(middleware::Compress::default()) .wrap(middleware::Logger::default()) .service( diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 3eeaa5b85..0ad3cf965 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -2,13 +2,19 @@ #![allow(unused_variables)] use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; +use crate::js_core::JsCoreHandle; + use super::graphql_types::*; pub struct Mutation; -#[graphql_object()] +#[graphql_object(context = JsCoreHandle)] impl Mutation { - fn add_trusted_agents(&self, agents: Vec) -> FieldResult> { + fn add_trusted_agents( + &self, + context: &JsCoreHandle, + agents: Vec, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -17,6 +23,7 @@ impl Mutation { fn agent_add_entanglement_proofs( &self, + context: &JsCoreHandle, proofs: Vec, ) -> FieldResult> { Err(FieldError::new( @@ -27,6 +34,7 @@ impl Mutation { fn agent_delete_entanglement_proofs( &self, + context: &JsCoreHandle, proofs: Vec, ) -> FieldResult> { Err(FieldError::new( @@ -37,6 +45,7 @@ impl Mutation { fn agent_entanglement_proof_pre_flight( &self, + context: &JsCoreHandle, device_key: String, device_key_type: String, ) -> FieldResult { @@ -46,14 +55,23 @@ impl Mutation { )) } - fn agent_generate(&self, passphrase: String) -> FieldResult { + fn agent_generate( + &self, + context: &JsCoreHandle, + passphrase: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_generate_jwt(&self, rand: String, request_id: String) -> FieldResult { + fn agent_generate_jwt( + &self, + context: &JsCoreHandle, + rand: String, + request_id: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -62,6 +80,7 @@ impl Mutation { fn agent_import( &self, + context: &JsCoreHandle, did: String, did_document: String, keystore: String, @@ -73,49 +92,65 @@ impl Mutation { )) } - fn agent_lock(&self, passphrase: String) -> FieldResult { + fn agent_lock(&self, context: &JsCoreHandle, passphrase: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_permit_capability(&self, auth: String) -> FieldResult { + fn agent_permit_capability(&self, context: &JsCoreHandle, auth: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_remove_app(&self, request_id: String) -> FieldResult> { + fn agent_remove_app( + &self, + context: &JsCoreHandle, + request_id: String, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_request_capability(&self, auth_info: AuthInfoInput) -> FieldResult { + fn agent_request_capability( + &self, + context: &JsCoreHandle, + auth_info: AuthInfoInput, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_revoke_token(&self, request_id: String) -> FieldResult> { + fn agent_revoke_token( + &self, + context: &JsCoreHandle, + request_id: String, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_sign_message(&self, message: String) -> FieldResult { + fn agent_sign_message( + &self, + context: &JsCoreHandle, + message: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_unlock(&self, passphrase: String) -> FieldResult { + fn agent_unlock(&self, context: &JsCoreHandle, passphrase: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -124,6 +159,7 @@ impl Mutation { fn agent_update_direct_message_language( &self, + context: &JsCoreHandle, direct_message_language: String, ) -> FieldResult { Err(FieldError::new( @@ -132,21 +168,34 @@ impl Mutation { )) } - fn agent_update_public_perspective(&self, perspective: PerspectiveInput) -> FieldResult { + fn agent_update_public_perspective( + &self, + context: &JsCoreHandle, + perspective: PerspectiveInput, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn delete_trusted_agents(&self, agents: Vec) -> FieldResult> { + fn delete_trusted_agents( + &self, + context: &JsCoreHandle, + agents: Vec, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn expression_create(&self, content: String, language_address: String) -> FieldResult { + fn expression_create( + &self, + context: &JsCoreHandle, + content: String, + language_address: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -155,6 +204,7 @@ impl Mutation { fn expression_interact( &self, + context: &JsCoreHandle, interaction_call: InteractionCall, url: String, ) -> FieldResult { @@ -166,6 +216,7 @@ impl Mutation { fn language_apply_template_and_publish( &self, + context: &JsCoreHandle, source_language_hash: String, template_data: String, ) -> FieldResult { @@ -177,6 +228,7 @@ impl Mutation { fn language_publish( &self, + context: &JsCoreHandle, language_meta: LanguageMetaInput, language_path: String, ) -> FieldResult { @@ -186,7 +238,7 @@ impl Mutation { )) } - fn language_remove(&self, address: String) -> FieldResult { + fn language_remove(&self, context: &JsCoreHandle, address: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -195,6 +247,7 @@ impl Mutation { fn language_write_settings( &self, + context: &JsCoreHandle, language_address: String, settings: String, ) -> FieldResult { @@ -204,7 +257,11 @@ impl Mutation { )) } - fn neighbourhood_join_from_url(&self, url: String) -> FieldResult { + fn neighbourhood_join_from_url( + &self, + context: &JsCoreHandle, + url: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -213,6 +270,7 @@ impl Mutation { fn neighbourhood_publish_from_perspective( &self, + context: &JsCoreHandle, link_language: String, meta: PerspectiveInput, perspectiveUUID: String, @@ -225,6 +283,7 @@ impl Mutation { fn neighbourhood_send_broadcast( &self, + context: &JsCoreHandle, payload: PerspectiveInput, perspectiveUUID: String, ) -> FieldResult { @@ -236,6 +295,7 @@ impl Mutation { fn neighbourhood_send_broadcast_u( &self, + context: &JsCoreHandle, payload: PerspectiveUnsignedInput, perspectiveUUID: String, ) -> FieldResult { @@ -247,6 +307,7 @@ impl Mutation { fn neighbourhood_send_signal( &self, + context: &JsCoreHandle, payload: PerspectiveInput, perspectiveUUID: String, remote_agent_did: String, @@ -259,6 +320,7 @@ impl Mutation { fn neighbourhood_send_signal_u( &self, + context: &JsCoreHandle, payload: PerspectiveUnsignedInput, perspectiveUUID: String, remote_agent_did: String, @@ -271,6 +333,7 @@ impl Mutation { fn neighbourhood_set_online_status( &self, + context: &JsCoreHandle, perspectiveUUID: String, status: PerspectiveInput, ) -> FieldResult { @@ -282,6 +345,7 @@ impl Mutation { fn neighbourhood_set_online_status_u( &self, + context: &JsCoreHandle, perspectiveUUID: String, status: PerspectiveUnsignedInput, ) -> FieldResult { @@ -291,14 +355,23 @@ impl Mutation { )) } - fn perspective_add(&self, name: String) -> FieldResult { + fn perspective_add( + &self, + context: &JsCoreHandle, + name: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn perspective_add_link(&self, link: LinkInput, uuid: String) -> FieldResult { + fn perspective_add_link( + &self, + context: &JsCoreHandle, + link: LinkInput, + uuid: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -307,6 +380,7 @@ impl Mutation { fn perspective_add_link_expression( &self, + context: &JsCoreHandle, link: LinkExpressionInput, uuid: String, ) -> FieldResult { @@ -318,6 +392,7 @@ impl Mutation { fn perspective_add_links( &self, + context: &JsCoreHandle, links: Vec, uuid: String, ) -> FieldResult> { @@ -329,6 +404,7 @@ impl Mutation { fn perspective_link_mutations( &self, + context: &JsCoreHandle, mutations: LinkMutations, uuid: String, ) -> FieldResult { @@ -338,14 +414,18 @@ impl Mutation { )) } - fn perspective_publish_snapshot(&self, uuid: String) -> FieldResult { + fn perspective_publish_snapshot( + &self, + context: &JsCoreHandle, + uuid: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn perspective_remove(&self, uuid: String) -> FieldResult { + fn perspective_remove(&self, context: &JsCoreHandle, uuid: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -354,6 +434,7 @@ impl Mutation { fn perspective_remove_link( &self, + context: &JsCoreHandle, link: LinkExpressionInput, uuid: String, ) -> FieldResult { @@ -365,6 +446,7 @@ impl Mutation { fn perspective_remove_links( &self, + context: &JsCoreHandle, links: Vec, uuid: String, ) -> FieldResult> { @@ -374,7 +456,12 @@ impl Mutation { )) } - fn perspective_update(&self, name: String, uuid: String) -> FieldResult { + fn perspective_update( + &self, + context: &JsCoreHandle, + name: String, + uuid: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -383,6 +470,7 @@ impl Mutation { fn perspective_update_link( &self, + context: &JsCoreHandle, new_link: LinkInput, old_link: LinkExpressionInput, uuid: String, @@ -393,7 +481,11 @@ impl Mutation { )) } - fn runtime_add_friends(&self, dids: Vec) -> FieldResult> { + fn runtime_add_friends( + &self, + context: &JsCoreHandle, + dids: Vec, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -402,6 +494,7 @@ impl Mutation { fn runtime_add_known_link_language_templates( &self, + context: &JsCoreHandle, addresses: Vec, ) -> FieldResult> { Err(FieldError::new( @@ -412,6 +505,7 @@ impl Mutation { fn runtime_friend_send_message( &self, + context: &JsCoreHandle, did: String, message: PerspectiveInput, ) -> FieldResult { @@ -421,14 +515,18 @@ impl Mutation { )) } - fn runtime_hc_add_agent_infos(&self, agent_infos: String) -> FieldResult { + fn runtime_hc_add_agent_infos( + &self, + context: &JsCoreHandle, + agent_infos: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn runtime_open_link(&self, url: String) -> FieldResult { + fn runtime_open_link(&self, context: &JsCoreHandle, url: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -442,7 +540,11 @@ impl Mutation { )) } - fn runtime_remove_friends(&self, dids: Vec) -> FieldResult> { + fn runtime_remove_friends( + &self, + context: &JsCoreHandle, + dids: Vec, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -451,6 +553,7 @@ impl Mutation { fn runtime_remove_known_link_language_templates( &self, + context: &JsCoreHandle, addresses: Vec, ) -> FieldResult> { Err(FieldError::new( @@ -459,7 +562,11 @@ impl Mutation { )) } - fn runtime_set_status(&self, status: PerspectiveInput) -> FieldResult { + fn runtime_set_status( + &self, + context: &JsCoreHandle, + status: PerspectiveInput, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index 7a5d70d34..5ae117655 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -2,13 +2,15 @@ #![allow(unused_variables)] use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; +use crate::js_core::JsCoreHandle; + use super::graphql_types::*; pub struct Query; -#[graphql_object] +#[graphql_object(context = JsCoreHandle)] impl Query { - fn agent(&self) -> FieldResult { + fn agent(&self, context: &JsCoreHandle) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -16,105 +18,124 @@ impl Query { } #[graphql(name = "agentByDID")] - fn agent_by_did(&self, did: String) -> FieldResult> { + fn agent_by_did(&self, context: &JsCoreHandle, did: String) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_get_apps(&self) -> FieldResult> { + fn agent_get_apps(&self, context: &JsCoreHandle) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_get_entanglement_proofs(&self) -> FieldResult> { + fn agent_get_entanglement_proofs( + &self, + context: &JsCoreHandle, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_is_locked(&self) -> FieldResult { + fn agent_is_locked(&self, context: &JsCoreHandle) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn agent_status(&self) -> FieldResult { + fn agent_status(&self, context: &JsCoreHandle) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn expression(&self, url: String) -> FieldResult { + fn expression(&self, context: &JsCoreHandle, url: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn expression_interactions(&self, url: String) -> FieldResult> { + fn expression_interactions( + &self, + context: &JsCoreHandle, + url: String, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn expression_many(&self, urls: Vec) -> FieldResult> { + fn expression_many( + &self, + context: &JsCoreHandle, + urls: Vec, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn expression_raw(&self, url: String) -> FieldResult { + fn expression_raw(&self, context: &JsCoreHandle, url: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn get_trusted_agents(&self) -> FieldResult> { + fn get_trusted_agents(&self, context: &JsCoreHandle) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn language(&self, address: String) -> FieldResult { + fn language(&self, context: &JsCoreHandle, address: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn language_meta(&self, address: String) -> FieldResult { + fn language_meta(&self, context: &JsCoreHandle, address: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn language_source(&self, address: String) -> FieldResult { + fn language_source(&self, context: &JsCoreHandle, address: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn languages(&self, filter: Option) -> FieldResult> { + fn languages( + &self, + context: &JsCoreHandle, + filter: Option, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn neighbourhood_has_telepresence_adapter(&self, perspectiveUUID: String) -> FieldResult { + fn neighbourhood_has_telepresence_adapter( + &self, + context: &JsCoreHandle, + perspectiveUUID: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -123,6 +144,7 @@ impl Query { fn neighbourhood_online_agents( &self, + context: &JsCoreHandle, perspectiveUUID: String, ) -> FieldResult> { Err(FieldError::new( @@ -131,14 +153,18 @@ impl Query { )) } - fn neighbourhood_other_agents(&self, perspectiveUUID: String) -> FieldResult> { + fn neighbourhood_other_agents( + &self, + context: &JsCoreHandle, + perspectiveUUID: String, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn perspective(&self, uuid: String) -> FieldResult { + fn perspective(&self, context: &JsCoreHandle, uuid: String) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -147,6 +173,7 @@ impl Query { fn perspective_query_links( &self, + context: &JsCoreHandle, query: LinkQuery, uuid: String, ) -> FieldResult> { @@ -156,56 +183,72 @@ impl Query { )) } - fn perspective_query_prolog(&self, query: String, uuid: String) -> FieldResult { + fn perspective_query_prolog( + &self, + context: &JsCoreHandle, + query: String, + uuid: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn perspective_snapshot(&self, uuid: String) -> FieldResult { + fn perspective_snapshot( + &self, + context: &JsCoreHandle, + uuid: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn perspectives(&self) -> FieldResult> { + fn perspectives(&self, context: &JsCoreHandle) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn runtime_friend_status(&self, did: String) -> FieldResult { + fn runtime_friend_status( + &self, + context: &JsCoreHandle, + did: String, + ) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn runtime_friends(&self) -> FieldResult> { + fn runtime_friends(&self, context: &JsCoreHandle) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn runtime_hc_agent_infos(&self) -> FieldResult { + fn runtime_hc_agent_infos(&self, context: &JsCoreHandle) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn runtime_info(&self) -> FieldResult { + fn runtime_info(&self, context: &JsCoreHandle) -> FieldResult { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), )) } - fn runtime_known_link_language_templates(&self) -> FieldResult> { + fn runtime_known_link_language_templates( + &self, + context: &JsCoreHandle, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -214,6 +257,7 @@ impl Query { fn runtime_message_inbox( &self, + context: &JsCoreHandle, filter: Option, ) -> FieldResult> { Err(FieldError::new( @@ -222,7 +266,11 @@ impl Query { )) } - fn runtime_message_outbox(&self, filter: Option) -> FieldResult> { + fn runtime_message_outbox( + &self, + context: &JsCoreHandle, + filter: Option, + ) -> FieldResult> { Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), @@ -231,6 +279,7 @@ impl Query { fn runtime_verify_string_signed_by_did( &self, + context: &JsCoreHandle, data: String, did: String, did_signing_key_id: String, diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs index 3c57ba800..1656ec70d 100644 --- a/rust-executor/src/graphql/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -3,21 +3,27 @@ use futures::stream::Stream; use juniper::{graphql_value, FieldError, FieldResult}; use std::pin::Pin; +use crate::js_core::JsCoreHandle; + use super::graphql_types::*; pub struct Subscription; -#[juniper::graphql_subscription()] +#[juniper::graphql_subscription(context = JsCoreHandle)] impl Subscription { async fn agent_status_changed( &self, + context: &JsCoreHandle, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); let err_stream = futures::stream::once(async { Err(err) }); Box::pin(err_stream) } - async fn agent_updated(&self) -> Pin> + Send>> { + async fn agent_updated( + &self, + context: &JsCoreHandle, + ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); let err_stream = futures::stream::once(async { Err(err) }); Box::pin(err_stream) @@ -25,6 +31,7 @@ impl Subscription { async fn exception_occurred( &self, + context: &JsCoreHandle, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); let err_stream = futures::stream::once(async { Err(err) }); @@ -33,6 +40,7 @@ impl Subscription { async fn neighbourhood_signal( &self, + context: &JsCoreHandle, perspectiveUUID: String, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); @@ -42,6 +50,7 @@ impl Subscription { async fn perspective_added( &self, + context: &JsCoreHandle, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); let err_stream = futures::stream::once(async { Err(err) }); @@ -50,6 +59,7 @@ impl Subscription { async fn perspective_link_added( &self, + context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); @@ -59,6 +69,7 @@ impl Subscription { async fn perspective_link_removed( &self, + context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); @@ -68,6 +79,7 @@ impl Subscription { async fn perspective_link_updated( &self, + context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); @@ -75,7 +87,10 @@ impl Subscription { Box::pin(err_stream) } - async fn perspective_removed(&self) -> Pin> + Send>> { + async fn perspective_removed( + &self, + context: &JsCoreHandle, + ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); let err_stream = futures::stream::once(async { Err(err) }); Box::pin(err_stream) @@ -83,6 +98,7 @@ impl Subscription { async fn perspective_sync_state_change( &self, + context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); @@ -92,6 +108,7 @@ impl Subscription { async fn perspective_updated( &self, + context: &JsCoreHandle, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); let err_stream = futures::stream::once(async { Err(err) }); @@ -100,6 +117,7 @@ impl Subscription { async fn runtime_message_received( &self, + context: &JsCoreHandle, ) -> Pin> + Send>> { let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); let err_stream = futures::stream::once(async { Err(err) }); From 3f44ccf4250c0dbf7862fc56cf43107adaff183c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 19:26:12 +0100 Subject: [PATCH 111/722] cleanup --- rust-executor/src/js_core.rs | 54 +----------------------------------- 1 file changed, 1 insertion(+), 53 deletions(-) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index feaf953c9..632c86d07 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -212,56 +212,4 @@ impl JsCore { broadcast_tx: tx_inside_clone, } } -} - -/* -// Provide Actor implementation for our actor -impl Actor for JsCore { - type Context = Context; - - fn started(&mut self, ctx: &mut Context) { - println!("Starting JsCore actor..."); - - let event_loop_fut = self.event_loop(); - ctx.spawn(async move { - match event_loop_fut.await { - Ok(_) => println!("event loop finished"), - Err(err) => println!("event loop failed: {}", err), - } - }.into_actor(self)); - - //let init_core_fut = self.init_core().expect("couldn't call JS initCore()"); - //actix_rt::Arbiter::spawn_blocking(init_core_fut); - //tokio::runtime:: - //ctx.spawn(async move { - //init_engine_fut.await; - // init_core_fut.await; - //}.into_actor(self)); - - - - - } - - fn stopped(&mut self, _: &mut Context) { - println!("Actor is stopped"); - } -} - -/// Define handler for `Ping` message -impl Handler for JsCore { - type Result = Result; - - fn handle(&mut self, msg: Execute, _: &mut Context) -> Self::Result { - let mut worker = self.worker.lock().unwrap(); - let result = worker.execute_script("js_core", format!("JSON.stringify({})", msg.script))?; - let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); - let context = v8::Context::new(scope); - let scope = &mut v8::ContextScope::new(scope, context); - let value = v8::Local::new(scope, result); - //let value: v8::Local = unsafe { v8::Local::cast(value) }; - let value = value.to_rust_string_lossy(scope); - Ok(value) - } -} - */ +} \ No newline at end of file From 53315a3812f9e64618a472fc74c0d92ef7ca0059 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 19:31:08 +0100 Subject: [PATCH 112/722] Pass JsCoreHandle to GraphQL and use log crate --- Cargo.lock | 1 + rust-executor/Cargo.toml | 1 + rust-executor/src/graphql.rs | 3 --- rust-executor/src/main.rs | 18 ++++++++++-------- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a10fefe50..5da2cda35 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5745,6 +5745,7 @@ dependencies = [ "juniper", "juniper_actix", "juniper_subscriptions", + "log", "serde_json", "tokio", "url", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index bd897dac5..c83e01254 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -22,3 +22,4 @@ env_logger = "0.10.0" serde_json = "1.0.95" actix = "0.13.0" uuid = "1.3.0" +log = "0.4.17" diff --git a/rust-executor/src/graphql.rs b/rust-executor/src/graphql.rs index fca4f1c2e..f250a6b6d 100644 --- a/rust-executor/src/graphql.rs +++ b/rust-executor/src/graphql.rs @@ -48,9 +48,6 @@ async fn graphql_route( } pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> { - env::set_var("RUST_LOG", "info"); - env_logger::init(); - schema().as_schema_language(); let mut file = std::fs::File::create("schema.gql").unwrap(); file.write_all(schema().as_schema_language().as_bytes()) diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 6c79e7d72..6ee2fe36a 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,21 +1,23 @@ mod graphql; mod js_core; +use std::env; + use graphql::start_server; use js_core::JsCore; +use log::info; #[tokio::main] async fn main() { + env::set_var("RUST_LOG", "info"); + env_logger::init(); + + info!("Starting js_core..."); let mut js_core_handle = JsCore::start(); js_core_handle.initialized().await; - println!("js_core initialized."); - let mut clone = js_core_handle.clone(); - let result = clone - .execute("console.log('hello world'); process".to_string()) - .await; - println!("result: {:?}", result); - //println!("Starting GraphQL..."); - //start_server().await; + info!("js_core initialized."); + info!("Starting GraphQL..."); + start_server(js_core_handle).await; //let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); //if let Err(error) = fut_res { // eprintln!("error: {}", error); From 80600a1e21c9053f7cfa83de86ff99ed1c8a14e7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Apr 2023 19:36:28 +0100 Subject: [PATCH 113/722] make all graphql type fields pub --- rust-executor/src/graphql/graphql_types.rs | 106 ++++++++++----------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index a43505666..bd393fbdc 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -2,70 +2,70 @@ use juniper::{GraphQLInputObject, GraphQLObject, GraphQLScalarValue}; #[derive(GraphQLObject, Default)] pub struct Agent { - did: String, + pub did: String, #[graphql(name = "directMessageLanguage")] - direct_message_language: Option, - perspective: Option, + pub direct_message_language: Option, + pub perspective: Option, } #[derive(GraphQLObject, Default)] pub struct AgentSignature { - public_key: String, - signature: String, + pub public_key: String, + pub signature: String, } #[derive(GraphQLObject, Default)] pub struct AgentStatus { - did: Option, - did_document: Option, - error: Option, - is_initialized: bool, - is_unlocked: bool, + pub did: Option, + pub did_document: Option, + pub error: Option, + pub is_initialized: bool, + pub is_unlocked: bool, } #[derive(GraphQLObject, Default)] pub struct Apps { - auth: AuthInfo, - request_id: String, - revoked: Option, - token: String, + pub auth: AuthInfo, + pub request_id: String, + pub revoked: Option, + pub token: String, } #[derive(GraphQLObject, Default)] pub struct AuthInfo { - app_desc: String, - app_icon_path: Option, - app_name: String, - app_url: String, - capabilities: Vec, + pub app_desc: String, + pub app_icon_path: Option, + pub app_name: String, + pub app_url: String, + pub capabilities: Vec, } #[derive(GraphQLInputObject, Default)] pub struct AuthInfoInput { #[graphql(name = "appDesc")] - app_desc: String, + pub app_desc: String, #[graphql(name = "appDomain")] - app_domain: String, + pub app_domain: String, #[graphql(name = "appIconPath")] - app_icon_path: Option, + pub app_icon_path: Option, #[graphql(name = "appName")] - app_name: String, + pub app_name: String, #[graphql(name = "appUrl")] - app_url: Option, + pub app_url: Option, #[graphql(name = "capabilities")] - capabilities: Option>, + pub capabilities: Option>, } #[derive(GraphQLObject, Default)] pub struct Capability { - can: Vec, - with: Resource, + pub can: Vec, + pub with: Resource, } #[derive(GraphQLInputObject, Default)] pub struct CapabilityInput { - can: Vec, - with: ResourceInput, + pub can: Vec, + pub with: ResourceInput, } #[derive(GraphQLScalarValue)] @@ -76,57 +76,57 @@ pub struct DateTime(chrono::DateTime); #[derive(GraphQLObject, Default)] pub struct EntanglementProof { #[graphql(name = "deviceKey")] - device_key: String, + pub device_key: String, #[graphql(name = "deviceKeySignedByDid")] - device_key_signed_by_did: String, + pub device_key_signed_by_did: String, #[graphql(name = "deviceKeyType")] - device_key_type: String, + pub device_key_type: String, #[graphql(name = "did")] - did: String, + pub did: String, #[graphql(name = "didSignedByDeviceKey")] - did_signed_by_device_key: Option, + pub did_signed_by_device_key: Option, #[graphql(name = "didSigningKeyId")] - did_signing_key_id: String, + pub did_signing_key_id: String, } #[derive(GraphQLInputObject, Default)] pub struct EntanglementProofInput { #[graphql(name = "deviceKey")] - device_key: String, + pub device_key: String, #[graphql(name = "deviceKeySignedByDid")] - device_key_signed_by_did: String, + pub device_key_signed_by_did: String, #[graphql(name = "deviceKeyType")] - device_key_type: String, + pub device_key_type: String, #[graphql(name = "did")] - did: String, + pub did: String, #[graphql(name = "didSignedByDeviceKey")] - did_signed_by_device_key: String, + pub did_signed_by_device_key: String, #[graphql(name = "didSigningKeyId")] - did_signing_key_id: String, + pub did_signing_key_id: String, } #[derive(GraphQLObject, Default)] pub struct ExceptionInfo { - addon: Option, - message: String, - title: String, - r#type: f64, + pub addon: Option, + pub message: String, + pub title: String, + pub r#type: f64, } #[derive(GraphQLObject, Default)] pub struct ExpressionProof { - invalid: Option, - key: Option, - signature: Option, - valid: Option, + pub invalid: Option, + pub key: Option, + pub signature: Option, + pub valid: Option, } #[derive(GraphQLInputObject, Default)] pub struct ExpressionProofInput { - invalid: Option, - key: Option, - signature: Option, - valid: Option, + pub invalid: Option, + pub key: Option, + pub signature: Option, + pub valid: Option, } #[derive(GraphQLObject, Default)] From f845ad3e4c948b05701059d87f9756716ef4403c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Apr 2023 19:41:31 +0100 Subject: [PATCH 114/722] fix graphql route --- rust-executor/src/graphql.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/graphql.rs b/rust-executor/src/graphql.rs index f250a6b6d..50fbc4fa2 100644 --- a/rust-executor/src/graphql.rs +++ b/rust-executor/src/graphql.rs @@ -6,7 +6,6 @@ use actix_web::{ use deno_core::error::AnyError; use juniper::RootNode; use juniper_actix::{graphiql_handler, graphql_handler, playground_handler}; -use std::env; use std::io::Write; mod graphql_types; @@ -35,7 +34,7 @@ async fn graphiql_route() -> Result { } async fn playground_route() -> Result { - playground_handler("/graphql", None).await + playground_handler("/", None).await } async fn graphql_route( @@ -61,7 +60,7 @@ pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> .wrap(middleware::Compress::default()) .wrap(middleware::Logger::default()) .service( - web::resource("/graphql") + web::resource("/") .route(web::post().to(graphql_route)) .route(web::get().to(graphql_route)), ) From c01d1b3022bf2cb5dca80435785a3d50fba7aad1 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 20:00:41 +0100 Subject: [PATCH 115/722] Implement agent status resolver --- Cargo.lock | 1 + rust-executor/Cargo.toml | 1 + rust-executor/src/graphql/graphql_types.rs | 5 ++++- rust-executor/src/graphql/query_resolvers.rs | 10 +++++----- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5da2cda35..453bc2769 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5746,6 +5746,7 @@ dependencies = [ "juniper_actix", "juniper_subscriptions", "log", + "serde", "serde_json", "tokio", "url", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index c83e01254..197c2313a 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -23,3 +23,4 @@ serde_json = "1.0.95" actix = "0.13.0" uuid = "1.3.0" log = "0.4.17" +serde = "1.0.159" diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index bd393fbdc..15c45b240 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -1,4 +1,6 @@ use juniper::{GraphQLInputObject, GraphQLObject, GraphQLScalarValue}; +use serde::{Deserialize, Serialize}; +use serde_json::Result; #[derive(GraphQLObject, Default)] pub struct Agent { @@ -14,7 +16,8 @@ pub struct AgentSignature { pub signature: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct AgentStatus { pub did: Option, pub did_document: Option, diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index 5ae117655..2eae37d43 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -49,11 +49,11 @@ impl Query { )) } - fn agent_status(&self, context: &JsCoreHandle) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn agent_status(&self, context: &JsCoreHandle) -> FieldResult { + let mut js = context.clone(); + let result = js.execute("JSON.stringify(core.agentService.dump())".into()).await?; + let s: AgentStatus = serde_json::from_str(&result)?; + return Ok(s); } fn expression(&self, context: &JsCoreHandle, url: String) -> FieldResult { From 5249553472d7a475c652e6826edf3c33d65a01f3 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 6 Apr 2023 20:55:31 +0100 Subject: [PATCH 116/722] Make all resolvers available under core.resolvers and start implementing agent unlock --- executor/src/core/PerspectivismCore.ts | 2 ++ executor/src/main.ts | 12 +++++------ .../src/graphql/mutation_resolvers.rs | 20 ++++++++++++++++--- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index dd8dacce7..ff7e0c429 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -72,6 +72,8 @@ export default class PerspectivismCore { #languagesReady: Promise #resolveLanguagesReady: (value: void) => void + resolvers: any + constructor(config: Config.CoreConfig) { this.#config = Config.init(config); diff --git a/executor/src/main.ts b/executor/src/main.ts index a806cb5e8..c83cafc8e 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -7,6 +7,7 @@ import { LanguageAlias, CoreConfig, BootstrapFixtures, languageLanguageAlias, ag import getOwnPropertyDescriptor from './shims/getOwnPropertyDescriptor' import getPort from 'get-port'; import fs from "fs"; +import { createResolvers } from "./core/graphQL-interface/GraphQL"; Reflect.getOwnPropertyDescriptor = getOwnPropertyDescriptor @@ -192,15 +193,14 @@ export async function init(config: OuterConfig): Promise { swiplHomePath } as CoreConfig); - console.log("\x1b[34m", "Init services...", "\x1b[0m"); - await core.initIPFS({ ipfsSwarmPort, ipfsRepoPath }); - - console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); + core.resolvers = createResolvers(core, config) + //console.log("\x1b[34m", "Init services...", "\x1b[0m"); + //await core.initIPFS({ ipfsSwarmPort, ipfsRepoPath }); + //console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); //await core.startGraphQLServer(gqlPort, mocks, config); if (runDappServer) { core.startDAppServer(dAppPort) }; - - console.log("\x1b[31m", "GraphQL server started, Unlock the agent to start holohchain", "\x1b[0m"); + //console.log("\x1b[31m", "GraphQL server started, Unlock the agent to start holohchain", "\x1b[0m"); return core } diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 0ad3cf965..b96818211 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -8,6 +8,8 @@ use super::graphql_types::*; pub struct Mutation; +const ALL_CAPABILITY: &str = r#"{with: {domain: "*", pointers: ["*"]},can: ["*"]}"#; + #[graphql_object(context = JsCoreHandle)] impl Mutation { fn add_trusted_agents( @@ -150,11 +152,23 @@ impl Mutation { )) } - fn agent_unlock(&self, context: &JsCoreHandle, passphrase: String) -> FieldResult { - Err(FieldError::new( + async fn agent_unlock(&self, context: &JsCoreHandle, passphrase: String) -> FieldResult { + let mut js = context.clone(); + let script = format!(r#"JSON.stringify( + core.resolvers.Mutation.agentUnlock( + null, + {{ passphrase: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, passphrase, ALL_CAPABILITY); + println!("script: {}", script); + let result = js.execute(script).await?; + let s: AgentStatus = serde_json::from_str(&result)?; + return Ok(s); + return Err(FieldError::new( "Not implemented", graphql_value!({ "Not implemented": true }), - )) + )); } fn agent_update_direct_message_language( From dc836aa9fc564bc6e95f8e71f6204fe6e2614ae6 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Apr 2023 01:15:03 +0100 Subject: [PATCH 117/722] improve error handling so that errors executing a script will be returned in graphql request and not cause hanging of connection --- rust-executor/src/graphql.rs | 2 +- rust-executor/src/js_core.rs | 100 +++++++++++++++++++++++------------ rust-executor/src/main.rs | 16 +++--- 3 files changed, 76 insertions(+), 42 deletions(-) diff --git a/rust-executor/src/graphql.rs b/rust-executor/src/graphql.rs index 50fbc4fa2..367519c85 100644 --- a/rust-executor/src/graphql.rs +++ b/rust-executor/src/graphql.rs @@ -69,7 +69,7 @@ pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> }); server .bind("127.0.0.1:8080") - .unwrap() + .expect("Could not bind to port 8080") .run() .await .map_err(|e| e.into()) diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 632c86d07..0090519d3 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -1,8 +1,10 @@ use actix::prelude::*; +use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use deno_core::v8; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; +use log::{error, info}; use std::sync::{Arc, Mutex}; use tokio::runtime::Builder; use tokio::sync::broadcast; @@ -11,6 +13,7 @@ use tokio::sync::{ mpsc::{self, UnboundedSender}, }; use tokio::task::LocalSet; + mod futures; mod options; mod string_module_loader; @@ -54,18 +57,27 @@ impl JsCoreHandle { script, id: id.clone(), }) - .expect("couldn't send on channel"); + .expect("couldn't send on channel... it is likely that the main worker thread has crashed..."); let mut response = None; while response.is_none() { - self.rx.recv().await.map(|r| { - if r.id == id { - response = Some(r); + match self.rx.recv().await { + Ok(r) => { + if r.id == id { + response = Some(r); + } + } + Err(err) => { + error!("Error receiving on channel"); + return Err(anyhow!(err)); } - }); + } } - Ok(response.expect("none case handle above").result) + response + .expect("none case handle above") + .result + .map_err(|err| anyhow!(err)) } } @@ -77,7 +89,7 @@ struct JsCoreRequest { #[derive(Debug, Clone)] struct JsCoreResponse { - result: String, + result: Result, id: String, } @@ -97,12 +109,15 @@ impl JsCore { } async fn init_engine(&self) { - let mut worker = self.worker.lock().unwrap(); + let mut worker = self + .worker + .lock() + .expect("init_engine(): couldn't lock worker"); worker.bootstrap(&BootstrapOptions::default()); worker .execute_main_module(&main_module_url()) .await - .unwrap(); + .expect("init_engine(): could not execute main module"); } fn event_loop(&self) -> EventLoopFuture { @@ -111,7 +126,10 @@ impl JsCore { } fn init_core(&self) -> Result { - let mut worker = self.worker.lock().unwrap(); + let mut worker = self + .worker + .lock() + .expect("init_core(): couldn't lock worker"); let _init_core = worker.execute_script("js_core", "initCore()")?; Ok(GlobalVariableFuture::new( self.worker.clone(), @@ -134,7 +152,7 @@ impl JsCore { let js_core = JsCore::new(); rt.block_on(js_core.init_engine()); - println!("AD4M JS engine init completed"); + info!("AD4M JS engine init completed"); rt.block_on(async { let local = LocalSet::new(); @@ -145,11 +163,11 @@ impl JsCore { let run_until = local.run_until(async move { match init_core_future.await { Ok(_) => {} - Err(err) => println!("AD4M coreInit() failed with error: {}", err), + Err(err) => error!("AD4M coreInit() failed with error: {}", err), }; tx_cloned .send(JsCoreResponse { - result: String::from("initialized"), + result: Ok(String::from("initialized")), id: String::from("initialized"), }) .expect("couldn't send on channel"); @@ -158,8 +176,8 @@ impl JsCore { _init_core_result = run_until => {} event_loop_result = js_core.event_loop() => { match event_loop_result { - Ok(_) => println!("AD4M event loop finished"), - Err(err) => println!("AD4M event loop closed with error: {}", err), + Ok(_) => info!("AD4M event loop finished"), + Err(err) => error!("AD4M event loop closed with error: {}", err) } } } @@ -171,31 +189,45 @@ impl JsCore { tokio::select! { event_loop_result = js_core.event_loop() => { match event_loop_result { - Ok(_) => println!("AD4M event loop finished"), - Err(err) => println!("AD4M event loop closed with error: {}", err), + Ok(_) => info!("AD4M event loop finished"), + Err(err) => { + error!("AD4M event loop closed with error: {}", err); + break; + } } } request = rx_inside.recv() => { match request { Some(request) => { - let mut worker = js_core.worker.lock().unwrap(); - let result = worker.execute_script("js_core", request.script).expect("couldn't execute script"); - // evaluate deno result into String - let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); - let context = v8::Context::new(scope); - let scope = &mut v8::ContextScope::new(scope, context); - let value = v8::Local::new(scope, result); - //let value: v8::Local = unsafe { v8::Local::cast(value) }; - let value = value.to_rust_string_lossy(scope); - tx_inside - .send(JsCoreResponse { - result: value, - id: request.id, - }) - .expect("couldn't send on channel"); + let mut worker = js_core.worker.lock().expect("request loop: couldn't lock worker"); + match worker.execute_script("js_core", request.script) { + Ok(result) => { + // evaluate deno result into String + let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); + let context = v8::Context::new(scope); + let scope = &mut v8::ContextScope::new(scope, context); + let value = v8::Local::new(scope, result); + //let value: v8::Local = unsafe { v8::Local::cast(value) }; + let value = value.to_rust_string_lossy(scope); + tx_inside + .send(JsCoreResponse { + result: Ok(value), + id: request.id, + }) + .expect("couldn't send on channel"); + }, + Err(err) => { + tx_inside + .send(JsCoreResponse { + result: Err(err.to_string()), + id: request.id, + }) + .expect("couldn't send on channel"); + } + } } None => { - println!("AD4M event loop closed"); + error!("AD4M event loop closed"); break; } } @@ -212,4 +244,4 @@ impl JsCore { broadcast_tx: tx_inside_clone, } } -} \ No newline at end of file +} diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 6ee2fe36a..f55f73f7f 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -5,21 +5,23 @@ use std::env; use graphql::start_server; use js_core::JsCore; -use log::info; +use log::{error, info}; #[tokio::main] async fn main() { env::set_var("RUST_LOG", "info"); env_logger::init(); - info!("Starting js_core..."); + info!("Starting js_core..."); let mut js_core_handle = JsCore::start(); js_core_handle.initialized().await; info!("js_core initialized."); + info!("Starting GraphQL..."); - start_server(js_core_handle).await; - //let fut_res = tokio::try_join!(graphql::start_server(), js_core::JsCore::run()); - //if let Err(error) = fut_res { - // eprintln!("error: {}", error); - //} + match start_server(js_core_handle).await { + Ok(_) => {} + Err(err) => { + error!("GraphQL server failed with error: {}", err); + } + } } From f1d5e78fa9c2e9e5f5bbe9805bde312cc949e1fd Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Apr 2023 01:15:24 +0100 Subject: [PATCH 118/722] implement entanglement proof cli methods --- cli/src/agent.rs | 76 ++++++++++++++++- rust-client/src/agent.gql | 39 +++++++++ rust-client/src/agent.rs | 108 ++++++++++++++++++++++++ rust-client/src/runtime.gql | 162 ++++++++++++++++++++++++------------ 4 files changed, 330 insertions(+), 55 deletions(-) diff --git a/cli/src/agent.rs b/cli/src/agent.rs index 4f09c5ba2..bf205eb4d 100644 --- a/cli/src/agent.rs +++ b/cli/src/agent.rs @@ -1,5 +1,5 @@ use crate::{formatting::*, util::readline_masked}; -use ad4m_client::Ad4mClient; +use ad4m_client::{agent::add_entanglement_proofs::EntanglementProofInput, Ad4mClient}; use anyhow::{bail, Result}; use clap::Subcommand; @@ -25,6 +25,26 @@ pub enum AgentFunctions { #[arg(short, long)] passphrase: Option, }, + AddEntanglementProof { + device_key: String, + device_key_signed_by_did: String, + device_key_type: String, + did: String, + did_signed_by_device_key: String, + did_signing_key_id: String, + }, + DeleteEntanglementProof { + device_key: String, + device_key_signed_by_did: String, + device_key_type: String, + did: String, + did_signed_by_device_key: String, + did_signing_key_id: String, + }, + EntanglementProofPreFlight { + device_key: String, + device_key_type: String, + }, } pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> { @@ -99,6 +119,60 @@ pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> println!("Agent generated"); } } + AgentFunctions::AddEntanglementProof { + device_key, + device_key_signed_by_did, + device_key_type, + did, + did_signed_by_device_key, + did_signing_key_id, + } => { + let input = EntanglementProofInput { + deviceKey: device_key, + deviceKeySignedByDid: device_key_signed_by_did, + deviceKeyType: device_key_type, + did: did, + didSignedByDeviceKey: did_signed_by_device_key, + didSigningKeyId: did_signing_key_id, + }; + ad4m_client + .agent + .add_entanglement_proofs(vec![input]) + .await?; + println!("Entanglement proofs added!"); + } + AgentFunctions::DeleteEntanglementProof { + device_key, + device_key_signed_by_did, + device_key_type, + did, + did_signed_by_device_key, + did_signing_key_id, + } => { + let input = ad4m_client::agent::delete_entanglement_proofs::EntanglementProofInput { + deviceKey: device_key, + deviceKeySignedByDid: device_key_signed_by_did, + deviceKeyType: device_key_type, + did: did, + didSignedByDeviceKey: did_signed_by_device_key, + didSigningKeyId: did_signing_key_id, + }; + ad4m_client + .agent + .delete_entanglement_proofs(vec![input]) + .await?; + println!("Entanglement proofs removed!"); + } + AgentFunctions::EntanglementProofPreFlight { + device_key, + device_key_type, + } => { + let result = ad4m_client + .agent + .entanglement_proof_pre_flight(device_key, device_key_type) + .await?; + println!("Add preflight!: {:#?}", result); + } }; Ok(()) } diff --git a/rust-client/src/agent.gql b/rust-client/src/agent.gql index a80071b33..cc9a2fdae 100644 --- a/rust-client/src/agent.gql +++ b/rust-client/src/agent.gql @@ -157,3 +157,42 @@ mutation SignMessage($message: String!) { publicKey } } + +mutation AddEntanglementProofs($proofs: [EntanglementProofInput!]!) { + agentAddEntanglementProofs(proofs: $proofs) { + did + didSigningKeyId + deviceKeyType + deviceKey + deviceKeySignedByDid + didSignedByDeviceKey + } +} + +mutation DeleteEntanglementProofs($proofs: [EntanglementProofInput!]!) { + agentDeleteEntanglementProofs(proofs: $proofs) { + did + didSigningKeyId + deviceKeyType + deviceKey + deviceKeySignedByDid + didSignedByDeviceKey + } +} + +mutation EntanglementProofPreFlight( + $deviceKey: String! + $deviceKeyType: String! +) { + agentEntanglementProofPreFlight( + deviceKey: $deviceKey + deviceKeyType: $deviceKeyType + ) { + did + didSigningKeyId + deviceKeyType + deviceKey + deviceKeySignedByDid + didSignedByDeviceKey + } +} diff --git a/rust-client/src/agent.rs b/rust-client/src/agent.rs index 2d0c0dba2..b22f9ae4f 100644 --- a/rust-client/src/agent.rs +++ b/rust-client/src/agent.rs @@ -296,6 +296,76 @@ pub async fn sign_message( Ok(response.agent_sign_message) } +#[derive(GraphQLQuery, Debug, Clone)] +#[graphql( + schema_path = "schema.gql", + query_path = "src/agent.gql", + response_derives = "Debug" +)] +pub struct AddEntanglementProofs; + +pub async fn add_entanglement_proofs( + executor_url: String, + cap_token: String, + proofs: Vec, +) -> Result { + query( + executor_url, + cap_token, + AddEntanglementProofs::build_query(add_entanglement_proofs::Variables { proofs }), + ) + .await + .with_context(|| "Failed to run runtime->add-trusted-agents query") +} + +#[derive(GraphQLQuery, Debug, Clone)] +#[graphql( + schema_path = "schema.gql", + query_path = "src/agent.gql", + response_derives = "Debug" +)] +pub struct DeleteEntanglementProofs; + +pub async fn delete_entanglement_proofs( + executor_url: String, + cap_token: String, + proofs: Vec, +) -> Result { + query( + executor_url, + cap_token, + DeleteEntanglementProofs::build_query(delete_entanglement_proofs::Variables { proofs }), + ) + .await + .with_context(|| "Failed to run runtime->add-trusted-agents query") +} + +#[derive(GraphQLQuery, Debug, Clone)] +#[graphql( + schema_path = "schema.gql", + query_path = "src/agent.gql", + response_derives = "Debug" +)] +pub struct EntanglementProofPreFlight; + +pub async fn entanglement_proof_pre_flight( + executor_url: String, + cap_token: String, + device_key: String, + device_key_type: String, +) -> Result { + query( + executor_url, + cap_token, + EntanglementProofPreFlight::build_query(entanglement_proof_pre_flight::Variables { + device_key, + device_key_type, + }), + ) + .await + .with_context(|| "Failed to run runtime->add-trusted-agents query") +} + pub struct AgentClient { info: Arc, } @@ -389,4 +459,42 @@ impl AgentClient { ) .await } + + pub async fn add_entanglement_proofs( + &self, + proofs: Vec, + ) -> Result { + add_entanglement_proofs( + self.info.executor_url.clone(), + self.info.cap_token.clone(), + proofs, + ) + .await + } + + pub async fn delete_entanglement_proofs( + &self, + proofs: Vec, + ) -> Result { + delete_entanglement_proofs( + self.info.executor_url.clone(), + self.info.cap_token.clone(), + proofs, + ) + .await + } + + pub async fn entanglement_proof_pre_flight( + &self, + device_key: String, + device_key_type: String, + ) -> Result { + entanglement_proof_pre_flight( + self.info.executor_url.clone(), + self.info.cap_token.clone(), + device_key, + device_key_type, + ) + .await + } } diff --git a/rust-client/src/runtime.gql b/rust-client/src/runtime.gql index ce90bd5bf..aa4ff5c01 100644 --- a/rust-client/src/runtime.gql +++ b/rust-client/src/runtime.gql @@ -1,116 +1,170 @@ query Info { - runtimeInfo { - ad4mExecutorVersion, - isInitialized, - isUnlocked - } + runtimeInfo { + ad4mExecutorVersion + isInitialized + isUnlocked + } } -mutation Quit { runtimeQuit } +mutation Quit { + runtimeQuit +} mutation AddTrustedAgents($agents: [String!]!) { - addTrustedAgents(agents: $agents) + addTrustedAgents(agents: $agents) } mutation DeleteTrustedAgents($agents: [String!]!) { - deleteTrustedAgents(agents: $agents) + deleteTrustedAgents(agents: $agents) } query TrustedAgents { - getTrustedAgents + getTrustedAgents } query LinkLanguageTemplates { - runtimeKnownLinkLanguageTemplates + runtimeKnownLinkLanguageTemplates } mutation AddLinkLanguageTemplates($addresses: [String!]!) { - runtimeAddKnownLinkLanguageTemplates(addresses: $addresses) + runtimeAddKnownLinkLanguageTemplates(addresses: $addresses) } mutation RemoveLinkLanguageTemplates($addresses: [String!]!) { - runtimeRemoveKnownLinkLanguageTemplates(addresses: $addresses) + runtimeRemoveKnownLinkLanguageTemplates(addresses: $addresses) } query Friends { - runtimeFriends + runtimeFriends } mutation AddFriends($dids: [String!]!) { - runtimeAddFriends(dids: $dids) + runtimeAddFriends(dids: $dids) } mutation RemoveFriends($dids: [String!]!) { - runtimeRemoveFriends(dids: $dids) + runtimeRemoveFriends(dids: $dids) } query HcAgentInfos { - runtimeHcAgentInfos + runtimeHcAgentInfos } mutation HcAddAgentInfos($agentInfos: String!) { - runtimeHcAddAgentInfos(agentInfos: $agentInfos) + runtimeHcAddAgentInfos(agentInfos: $agentInfos) } -query VerifyStringSignedByDid($did: String!, $didSigningKeyId: String!, $data: String!, $signedData: String!) { - runtimeVerifyStringSignedByDid(did: $did, didSigningKeyId: $didSigningKeyId, data: $data, signedData: $signedData) +query VerifyStringSignedByDid( + $did: String! + $didSigningKeyId: String! + $data: String! + $signedData: String! +) { + runtimeVerifyStringSignedByDid( + did: $did + didSigningKeyId: $didSigningKeyId + data: $data + signedData: $signedData + ) } mutation SetStatus($status: PerspectiveInput!) { - runtimeSetStatus(status: $status) + runtimeSetStatus(status: $status) } query FriendStatus($did: String!) { - runtimeFriendStatus(did: $did) { + runtimeFriendStatus(did: $did) { + author + timestamp + data { + links { author timestamp - data { - links { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - } + data { + source + predicate + target } - proof { valid, invalid, signature, key } + proof { + valid + invalid + signature + key + } + } + } + proof { + valid + invalid + signature + key } + } } mutation FriendSendMessage($did: String!, $message: PerspectiveInput!) { - runtimeFriendSendMessage(did: $did, message: $message) + runtimeFriendSendMessage(did: $did, message: $message) } query MessageInbox($filter: String) { - runtimeMessageInbox(filter: $filter) { + runtimeMessageInbox(filter: $filter) { + author + timestamp + data { + links { author timestamp - data { - links { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - } + data { + source + predicate + target } - proof { valid, invalid, signature, key } + proof { + valid + invalid + signature + key + } + } + } + proof { + valid + invalid + signature + key } + } } query MessageOutbox($filter: String) { - runtimeMessageOutbox(filter: $filter) { - recipient, - message { - author - timestamp - data { - links { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - } - } - proof { valid, invalid, signature, key } + runtimeMessageOutbox(filter: $filter) { + recipient + message { + author + timestamp + data { + links { + author + timestamp + data { + source + predicate + target + } + proof { + valid + invalid + signature + key + } } + } + proof { + valid + invalid + signature + key + } } -} \ No newline at end of file + } +} From 6f80aed738b2505e31fdb469b8938909961e92ba Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Apr 2023 01:15:53 +0100 Subject: [PATCH 119/722] implement rust graphql mutations for entanglement proofs, agent generated & add trusted agents --- rust-executor/src/graphql/graphql_types.rs | 7 +- .../src/graphql/mutation_resolvers.rs | 123 +++++++++++++----- 2 files changed, 93 insertions(+), 37 deletions(-) diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index 15c45b240..8df60c69f 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -1,6 +1,5 @@ use juniper::{GraphQLInputObject, GraphQLObject, GraphQLScalarValue}; use serde::{Deserialize, Serialize}; -use serde_json::Result; #[derive(GraphQLObject, Default)] pub struct Agent { @@ -76,7 +75,8 @@ pub struct CapabilityInput { // The javascript `Date` as string. pub struct represents date and time as the ISO Date string. pub struct DateTime(chrono::DateTime); -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct EntanglementProof { #[graphql(name = "deviceKey")] pub device_key: String, @@ -92,7 +92,8 @@ pub struct EntanglementProof { pub did_signing_key_id: String, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct EntanglementProofInput { #[graphql(name = "deviceKey")] pub device_key: String, diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index b96818211..9bca6a08c 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -12,60 +12,113 @@ const ALL_CAPABILITY: &str = r#"{with: {domain: "*", pointers: ["*"]},can: ["*"] #[graphql_object(context = JsCoreHandle)] impl Mutation { - fn add_trusted_agents( + async fn add_trusted_agents( &self, context: &JsCoreHandle, agents: Vec, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.addTrustedAgents( + null, + {{ agents: {:?} }}, + {{ capabilities: [{}] }} + ) + )"#, + agents, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn agent_add_entanglement_proofs( + async fn agent_add_entanglement_proofs( &self, context: &JsCoreHandle, proofs: Vec, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentAddEntanglementProofs( + null, + {{ proofs: {} }}, + {{ capabilities: [{:?}] }} + ) + )"#, + serde_json::to_string(&proofs).unwrap(), + ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn agent_delete_entanglement_proofs( + async fn agent_delete_entanglement_proofs( &self, context: &JsCoreHandle, proofs: Vec, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentDeleteEntanglementProofs( + null, + {{ proofs: {} }}, + {{ capabilities: [{:?}] }} + ) + )"#, + serde_json::to_string(&proofs).unwrap(), + ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn agent_entanglement_proof_pre_flight( + async fn agent_entanglement_proof_pre_flight( &self, context: &JsCoreHandle, device_key: String, device_key_type: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentEntanglementProofPreFlight( + null, + {{ deviceKey: "{}", deviceKeyType: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + device_key, device_key_type, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: EntanglementProof = serde_json::from_str(&result)?; + Ok(s) } - fn agent_generate( + async fn agent_generate( &self, context: &JsCoreHandle, passphrase: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentGenerate( + null, + {{ passphrase: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + passphrase, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + println!("got result back: {:?}", result); + let s: AgentStatus = serde_json::from_str(&result)?; + Ok(s) } fn agent_generate_jwt( @@ -152,23 +205,25 @@ impl Mutation { )) } - async fn agent_unlock(&self, context: &JsCoreHandle, passphrase: String) -> FieldResult { + async fn agent_unlock( + &self, + context: &JsCoreHandle, + passphrase: String, + ) -> FieldResult { let mut js = context.clone(); - let script = format!(r#"JSON.stringify( + let script = format!( + r#"JSON.stringify( core.resolvers.Mutation.agentUnlock( null, {{ passphrase: "{}" }}, {{ capabilities: [{}] }} ) - )"#, passphrase, ALL_CAPABILITY); - println!("script: {}", script); + )"#, + passphrase, ALL_CAPABILITY + ); let result = js.execute(script).await?; let s: AgentStatus = serde_json::from_str(&result)?; - return Ok(s); - return Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )); + Ok(s) } fn agent_update_direct_message_language( From c86f35b37de51f3c29d3916c34ea7bc56810f325 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Apr 2023 01:36:33 +0100 Subject: [PATCH 120/722] add generate-jwt method to rust client --- cli/src/agent.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cli/src/agent.rs b/cli/src/agent.rs index bf205eb4d..6b546c3b7 100644 --- a/cli/src/agent.rs +++ b/cli/src/agent.rs @@ -18,7 +18,9 @@ pub enum AgentFunctions { passphrase: Option, }, /// Lookup agent by DID - ByDID { did: String }, + ByDID { + did: String, + }, /// Initialize a new agent Generate { /// Agent passphrase @@ -45,6 +47,10 @@ pub enum AgentFunctions { device_key: String, device_key_type: String, }, + GenerateJwt { + request_id: String, + rand: String, + }, } pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> { @@ -173,6 +179,13 @@ pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> .await?; println!("Add preflight!: {:#?}", result); } + AgentFunctions::GenerateJwt { request_id, rand } => { + let result = ad4m_client + .agent + .retrieve_capability(request_id, rand) + .await?; + println!("JWT: {:#?}", result); + } }; Ok(()) } From 6135ac9180d1b2471ec742966303f3d8b13bf1ba Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Apr 2023 02:24:46 +0100 Subject: [PATCH 121/722] add missing derives for graphql types --- rust-executor/Cargo.toml | 2 +- rust-executor/src/graphql/graphql_types.rs | 117 ++++++++++++++------- 2 files changed, 79 insertions(+), 40 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 197c2313a..5a5057208 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -11,7 +11,7 @@ deno_runtime = "0.105.0" tokio = { version = "1.25.0", features = ["full"] } url = "2.3.1" juniper = "0.15.11" -chrono = "0.4.24" +chrono = { version = "0.4.24", features = ["serde"] } juniper_subscriptions = "0.16.0" futures = "0.3.28" diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index 8df60c69f..d6444fb3d 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -1,7 +1,8 @@ use juniper::{GraphQLInputObject, GraphQLObject, GraphQLScalarValue}; use serde::{Deserialize, Serialize}; -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct Agent { pub did: String, #[graphql(name = "directMessageLanguage")] @@ -9,7 +10,8 @@ pub struct Agent { pub perspective: Option, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct AgentSignature { pub public_key: String, pub signature: String, @@ -25,7 +27,8 @@ pub struct AgentStatus { pub is_unlocked: bool, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct Apps { pub auth: AuthInfo, pub request_id: String, @@ -33,7 +36,8 @@ pub struct Apps { pub token: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct AuthInfo { pub app_desc: String, pub app_icon_path: Option, @@ -42,7 +46,8 @@ pub struct AuthInfo { pub capabilities: Vec, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct AuthInfoInput { #[graphql(name = "appDesc")] pub app_desc: String, @@ -58,19 +63,22 @@ pub struct AuthInfoInput { pub capabilities: Option>, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct Capability { pub can: Vec, pub with: Resource, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct CapabilityInput { pub can: Vec, pub with: ResourceInput, } -#[derive(GraphQLScalarValue)] +#[derive(GraphQLScalarValue, Default, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] #[graphql(transparent)] // The javascript `Date` as string. pub struct represents date and time as the ISO Date string. pub struct DateTime(chrono::DateTime); @@ -109,7 +117,8 @@ pub struct EntanglementProofInput { pub did_signing_key_id: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct ExceptionInfo { pub addon: Option, pub message: String, @@ -117,7 +126,8 @@ pub struct ExceptionInfo { pub r#type: f64, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct ExpressionProof { pub invalid: Option, pub key: Option, @@ -125,7 +135,8 @@ pub struct ExpressionProof { pub valid: Option, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct ExpressionProofInput { pub invalid: Option, pub key: Option, @@ -133,7 +144,8 @@ pub struct ExpressionProofInput { pub valid: Option, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct ExpressionRendered { pub author: String, pub data: String, @@ -143,31 +155,36 @@ pub struct ExpressionRendered { pub timestamp: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct Icon { pub code: String, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct InteractionCall { pub name: String, pub parameters_stringified: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct InteractionMeta { pub label: String, pub name: String, pub parameters: Vec, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct InteractionParameter { pub name: String, pub type_: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LanguageHandle { pub address: String, pub constructor_icon: Option, @@ -177,7 +194,8 @@ pub struct LanguageHandle { pub settings_icon: Option, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LanguageMeta { pub address: String, pub author: String, @@ -190,7 +208,8 @@ pub struct LanguageMeta { pub templated: Option, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LanguageMetaInput { pub description: String, pub name: String, @@ -198,20 +217,23 @@ pub struct LanguageMetaInput { pub source_code_link: Option, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LanguageRef { pub address: String, pub name: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct Link { pub predicate: Option, pub source: String, pub target: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LinkExpression { pub author: String, pub data: Link, @@ -219,7 +241,8 @@ pub struct LinkExpression { pub timestamp: String, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LinkExpressionInput { pub author: String, pub data: LinkInput, @@ -227,32 +250,37 @@ pub struct LinkExpressionInput { pub timestamp: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LinkExpressionMutations { pub additions: Vec, pub removals: Vec, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LinkExpressionUpdated { pub new_link: LinkExpression, pub old_link: LinkExpression, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LinkInput { pub predicate: Option, pub source: String, pub target: String, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LinkMutations { pub additions: Vec, pub removals: Vec, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct LinkQuery { pub from_date: Option, pub limit: Option, @@ -262,24 +290,28 @@ pub struct LinkQuery { pub until_date: Option, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct Neighbourhood { pub link_language: String, pub meta: Perspective, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct OnlineAgent { pub did: String, pub status: PerspectiveExpression, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct Perspective { pub links: Vec, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct PerspectiveExpression { pub author: String, pub data: Perspective, @@ -287,7 +319,8 @@ pub struct PerspectiveExpression { pub timestamp: String, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct PerspectiveHandle { pub name: String, pub neighbourhood: Option, @@ -296,36 +329,42 @@ pub struct PerspectiveHandle { pub uuid: String, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct PerspectiveInput { pub links: Vec, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct PerspectiveUnsignedInput { pub links: Vec, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct Resource { pub domain: String, pub pointers: Vec, } -#[derive(GraphQLInputObject, Default)] +#[derive(GraphQLInputObject, Default, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct ResourceInput { pub domain: String, pub pointers: Vec, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct RuntimeInfo { pub ad4m_executor_version: String, pub is_initialized: bool, pub is_unlocked: bool, } -#[derive(GraphQLObject, Default)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] pub struct SentMessage { pub message: PerspectiveExpression, pub recipient: String, From 1bebfed715020fff871d7ea20c6c01a239c16fd3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Apr 2023 02:25:04 +0100 Subject: [PATCH 122/722] implement the rest of the muation resolvers. Thanks chatGPT <3 --- .../src/graphql/mutation_resolvers.rs | 927 +++++++++++++----- 1 file changed, 694 insertions(+), 233 deletions(-) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 9bca6a08c..dd91cf336 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -1,6 +1,6 @@ #![allow(non_snake_case)] #![allow(unused_variables)] -use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; +use juniper::{graphql_object, FieldResult}; use crate::js_core::JsCoreHandle; @@ -44,7 +44,7 @@ impl Mutation { core.resolvers.Mutation.agentAddEntanglementProofs( null, {{ proofs: {} }}, - {{ capabilities: [{:?}] }} + {{ capabilities: [{}] }} ) )"#, serde_json::to_string(&proofs).unwrap(), @@ -66,7 +66,7 @@ impl Mutation { core.resolvers.Mutation.agentDeleteEntanglementProofs( null, {{ proofs: {} }}, - {{ capabilities: [{:?}] }} + {{ capabilities: [{}] }} ) )"#, serde_json::to_string(&proofs).unwrap(), @@ -121,88 +121,154 @@ impl Mutation { Ok(s) } - fn agent_generate_jwt( + async fn agent_generate_jwt( &self, context: &JsCoreHandle, rand: String, request_id: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentGenerateJwt( + null, + {{ rand: "{}", requestId: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + rand, request_id, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: String = serde_json::from_str(&result)?; + Ok(s) } - fn agent_import( + async fn agent_lock( &self, context: &JsCoreHandle, - did: String, - did_document: String, - keystore: String, passphrase: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) - } - - fn agent_lock(&self, context: &JsCoreHandle, passphrase: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentLock( + null, + {{ passphrase: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + passphrase, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: AgentStatus = serde_json::from_str(&result)?; + Ok(s) } - fn agent_permit_capability(&self, context: &JsCoreHandle, auth: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + //NOTE: all the functions from here on out have not been tested by calling the cli <-> rust graphql server + async fn agent_permit_capability( + &self, + context: &JsCoreHandle, + auth: String, + ) -> FieldResult { + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentPermitCapability( + null, + {{ auth: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + auth, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: String = serde_json::from_str(&result)?; + Ok(s) } - fn agent_remove_app( + async fn agent_remove_app( &self, context: &JsCoreHandle, request_id: String, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentRemoveApp( + null, + {{ requestId: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + request_id, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn agent_request_capability( + async fn agent_request_capability( &self, context: &JsCoreHandle, auth_info: AuthInfoInput, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let auth_info_json = serde_json::to_string(&auth_info)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentRequestCapability( + null, + {{ authInfo: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + auth_info_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: String = serde_json::from_str(&result)?; + Ok(s) } - fn agent_revoke_token( + async fn agent_revoke_token( &self, context: &JsCoreHandle, request_id: String, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentRevokeToken( + null, + {{ requestId: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + request_id, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn agent_sign_message( + async fn agent_sign_message( &self, context: &JsCoreHandle, message: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentSignMessage( + null, + {{ message: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + message, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: AgentSignature = serde_json::from_str(&result)?; + Ok(s) } async fn agent_unlock( @@ -226,419 +292,814 @@ impl Mutation { Ok(s) } - fn agent_update_direct_message_language( + async fn agent_update_direct_message_language( &self, context: &JsCoreHandle, direct_message_language: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentUpdateDirectMessageLanguage( + null, + {{ directMessageLanguage: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + direct_message_language, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Agent = serde_json::from_str(&result)?; + Ok(s) } - fn agent_update_public_perspective( + async fn agent_update_public_perspective( &self, context: &JsCoreHandle, perspective: PerspectiveInput, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let perspective_json = serde_json::to_string(&perspective)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.agentUpdatePublicPerspective( + null, + {{ perspective: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + perspective_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Agent = serde_json::from_str(&result)?; + Ok(s) } - fn delete_trusted_agents( + async fn delete_trusted_agents( &self, context: &JsCoreHandle, agents: Vec, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let agents_json = serde_json::to_string(&agents)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.deleteTrustedAgents( + null, + {{ agents: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + agents_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn expression_create( + async fn expression_create( &self, context: &JsCoreHandle, content: String, language_address: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.expressionCreate( + null, + {{ content: "{}", languageAddress: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + content, language_address, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: String = serde_json::from_str(&result)?; + Ok(s) } - fn expression_interact( + async fn expression_interact( &self, context: &JsCoreHandle, interaction_call: InteractionCall, url: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let interaction_call_json = serde_json::to_string(&interaction_call)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.expressionInteract( + null, + {{ interactionCall: {}, url: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + interaction_call_json, url, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: String = serde_json::from_str(&result)?; + Ok(s) } - fn language_apply_template_and_publish( + async fn language_apply_template_and_publish( &self, context: &JsCoreHandle, source_language_hash: String, template_data: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.languageApplyTemplateAndPublish( + null, + {{ sourceLanguageHash: "{}", templateData: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + source_language_hash, template_data, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: LanguageRef = serde_json::from_str(&result)?; + Ok(s) } - fn language_publish( + async fn language_publish( &self, context: &JsCoreHandle, language_meta: LanguageMetaInput, language_path: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let language_meta_json = serde_json::to_string(&language_meta)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.languagePublish( + null, + {{ languageMeta: {}, languagePath: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + language_meta_json, language_path, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: LanguageMeta = serde_json::from_str(&result)?; + Ok(s) } - fn language_remove(&self, context: &JsCoreHandle, address: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn language_remove(&self, context: &JsCoreHandle, address: String) -> FieldResult { + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.languageRemove( + null, + {{ address: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + address, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn language_write_settings( + async fn language_write_settings( &self, context: &JsCoreHandle, language_address: String, settings: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.languageWriteSettings( + null, + {{ languageAddress: "{}", settings: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + language_address, settings, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn neighbourhood_join_from_url( + async fn neighbourhood_join_from_url( &self, context: &JsCoreHandle, url: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.neighbourhoodJoinFromUrl( + null, + {{ url: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + url, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: PerspectiveHandle = serde_json::from_str(&result)?; + Ok(s) } - fn neighbourhood_publish_from_perspective( + async fn neighbourhood_publish_from_perspective( &self, context: &JsCoreHandle, link_language: String, meta: PerspectiveInput, perspectiveUUID: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let meta_json = serde_json::to_string(&meta)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.neighbourhoodPublishFromPerspective( + null, + {{ linkLanguage: "{}", meta: {}, perspectiveUUID: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + link_language, meta_json, perspectiveUUID, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: String = serde_json::from_str(&result)?; + Ok(s) } - fn neighbourhood_send_broadcast( + async fn neighbourhood_send_broadcast( &self, context: &JsCoreHandle, payload: PerspectiveInput, perspectiveUUID: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let payload_json = serde_json::to_string(&payload)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.neighbourhoodSendBroadcast( + null, + {{ payload: {}, perspectiveUUID: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + payload_json, perspectiveUUID, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn neighbourhood_send_broadcast_u( + async fn neighbourhood_send_broadcast_u( &self, context: &JsCoreHandle, payload: PerspectiveUnsignedInput, perspectiveUUID: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let payload_json = serde_json::to_string(&payload)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.neighbourhoodSendBroadcastU( + null, + {{ payload: {}, perspectiveUUID: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + payload_json, perspectiveUUID, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn neighbourhood_send_signal( + async fn neighbourhood_send_signal( &self, context: &JsCoreHandle, payload: PerspectiveInput, perspectiveUUID: String, remote_agent_did: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let payload_json = serde_json::to_string(&payload)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.neighbourhoodSendSignal( + null, + {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + payload_json, perspectiveUUID, remote_agent_did, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn neighbourhood_send_signal_u( + async fn neighbourhood_send_signal_u( &self, context: &JsCoreHandle, payload: PerspectiveUnsignedInput, perspectiveUUID: String, remote_agent_did: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let payload_json = serde_json::to_string(&payload)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.neighbourhoodSendSignalU( + null, + {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + payload_json, perspectiveUUID, remote_agent_did, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn neighbourhood_set_online_status( + async fn neighbourhood_set_online_status( &self, context: &JsCoreHandle, perspectiveUUID: String, status: PerspectiveInput, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let status_json = serde_json::to_string(&status)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.neighbourhoodSetOnlineStatus( + null, + {{ perspectiveUUID: "{}", status: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + perspectiveUUID, status_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn neighbourhood_set_online_status_u( + async fn neighbourhood_set_online_status_u( &self, context: &JsCoreHandle, perspectiveUUID: String, status: PerspectiveUnsignedInput, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let status_json = serde_json::to_string(&status)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.neighbourhoodSetOnlineStatusU( + null, + {{ perspectiveUUID: "{}", status: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + perspectiveUUID, status_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_add( + async fn perspective_add( &self, context: &JsCoreHandle, name: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveAdd( + null, + {{ name: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + name, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: PerspectiveHandle = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_add_link( + async fn perspective_add_link( &self, context: &JsCoreHandle, link: LinkInput, uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let link_json = serde_json::to_string(&link)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveAddLink( + null, + {{ link: {}, uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + link_json, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: LinkExpression = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_add_link_expression( + async fn perspective_add_link_expression( &self, context: &JsCoreHandle, link: LinkExpressionInput, uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let link_json = serde_json::to_string(&link)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveAddLinkExpression( + null, + {{ link: {}, uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + link_json, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: LinkExpression = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_add_links( + async fn perspective_add_links( &self, context: &JsCoreHandle, links: Vec, uuid: String, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let links_json = serde_json::to_string(&links)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveAddLinks( + null, + {{ links: {}, uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + links_json, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_link_mutations( + async fn perspective_link_mutations( &self, context: &JsCoreHandle, mutations: LinkMutations, uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let mutations_json = serde_json::to_string(&mutations)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveLinkMutations( + null, + {{ mutations: {}, uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + mutations_json, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: LinkExpressionMutations = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_publish_snapshot( + async fn perspective_publish_snapshot( &self, context: &JsCoreHandle, uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectivePublishSnapshot( + null, + {{ uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: String = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_remove(&self, context: &JsCoreHandle, uuid: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn perspective_remove(&self, context: &JsCoreHandle, uuid: String) -> FieldResult { + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveRemove( + null, + {{ uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_remove_link( + async fn perspective_remove_link( &self, context: &JsCoreHandle, link: LinkExpressionInput, uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let link_json = serde_json::to_string(&link)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveRemoveLink( + null, + {{ link: {}, uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + link_json, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_remove_links( + async fn perspective_remove_links( &self, context: &JsCoreHandle, links: Vec, uuid: String, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let links_json = serde_json::to_string(&links)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveRemoveLinks( + null, + {{ links: {}, uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + links_json, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_update( + async fn perspective_update( &self, context: &JsCoreHandle, name: String, uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveUpdate( + null, + {{ name: "{}", uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + name, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: PerspectiveHandle = serde_json::from_str(&result)?; + Ok(s) } - fn perspective_update_link( + async fn perspective_update_link( &self, context: &JsCoreHandle, new_link: LinkInput, old_link: LinkExpressionInput, uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let new_link_json = serde_json::to_string(&new_link)?; + let old_link_json = serde_json::to_string(&old_link)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.perspectiveUpdateLink( + null, + {{ newLink: {}, oldLink: {}, uuid: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + new_link_json, old_link_json, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: LinkExpression = serde_json::from_str(&result)?; + Ok(s) } - fn runtime_add_friends( + async fn runtime_add_friends( &self, context: &JsCoreHandle, dids: Vec, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let dids_json = serde_json::to_string(&dids)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.runtimeAddFriends( + null, + {{ dids: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + dids_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn runtime_add_known_link_language_templates( + async fn runtime_add_known_link_language_templates( &self, context: &JsCoreHandle, addresses: Vec, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let addresses_json = serde_json::to_string(&addresses)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.runtimeAddKnownLinkLanguageTemplates( + null, + {{ addresses: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + addresses_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn runtime_friend_send_message( + async fn runtime_friend_send_message( &self, context: &JsCoreHandle, did: String, message: PerspectiveInput, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let message_json = serde_json::to_string(&message)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.runtimeFriendSendMessage( + null, + {{ did: "{}", message: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + did, message_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn runtime_hc_add_agent_infos( + async fn runtime_hc_add_agent_infos( &self, context: &JsCoreHandle, agent_infos: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.runtimeHcAddAgentInfos( + null, + {{ agentInfos: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + agent_infos, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn runtime_open_link(&self, context: &JsCoreHandle, url: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn runtime_open_link(&self, context: &JsCoreHandle, url: String) -> FieldResult { + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.runtimeOpenLink( + null, + {{ url: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, + url, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn runtime_quit(&self) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn runtime_quit(&self, context: &JsCoreHandle) -> FieldResult { + let mut js = context.clone(); + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.runtimeQuit( + null, + null, + {{ capabilities: [{}] }} + ) + )"#, + ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } - fn runtime_remove_friends( + async fn runtime_remove_friends( &self, context: &JsCoreHandle, dids: Vec, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let dids_json = serde_json::to_string(&dids)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.runtimeRemoveFriends( + null, + {{ dids: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + dids_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn runtime_remove_known_link_language_templates( + async fn runtime_remove_known_link_language_templates( &self, context: &JsCoreHandle, addresses: Vec, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let addresses_json = serde_json::to_string(&addresses)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.runtimeRemoveKnownLinkLanguageTemplates( + null, + {{ addresses: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + addresses_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: Vec = serde_json::from_str(&result)?; + Ok(s) } - fn runtime_set_status( + async fn runtime_set_status( &self, context: &JsCoreHandle, status: PerspectiveInput, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let status_json = serde_json::to_string(&status)?; + let script = format!( + r#"JSON.stringify( + core.resolvers.Mutation.runtimeSetStatus( + null, + {{ status: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + status_json, ALL_CAPABILITY + ); + let result = js.execute(script).await?; + let s: bool = serde_json::from_str(&result)?; + Ok(s) } } From 0b9a706680afa805b3c6891d193994254d1e3850 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 7 Apr 2023 08:23:27 +0100 Subject: [PATCH 123/722] WIP: Rust wallet --- Cargo.lock | 156 +++++++++++++++++- executor/src/core/agent/AgentService.ts | 105 ++---------- .../src/core/graphQL-interface/GraphQL.ts | 7 - rust-executor/Cargo.toml | 6 + rust-executor/src/js_core.rs | 1 + rust-executor/src/main.rs | 1 + 6 files changed, 177 insertions(+), 99 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 453bc2769..f05959da6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -476,6 +476,17 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164" +[[package]] +name = "argon2" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95c2fcf79ad1932ac6269a738109997a83c227c09b75842ae564dc8ede6a861c" +dependencies = [ + "base64ct", + "blake2", + "password-hash", +] + [[package]] name = "arrayvec" version = "0.7.2" @@ -825,6 +836,15 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.6", +] + [[package]] name = "blanket" version = "0.2.0" @@ -1075,6 +1095,30 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + [[package]] name = "chrono" version = "0.4.24" @@ -1099,6 +1143,7 @@ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", + "zeroize", ] [[package]] @@ -1429,6 +1474,21 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto_box" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd26c32de5307fd08aac445a75c43472b14559d5dccdfba8022dbcd075838ebc" +dependencies = [ + "aead", + "chacha20", + "chacha20poly1305", + "salsa20", + "x25519-dalek 1.1.1", + "xsalsa20poly1305", + "zeroize", +] + [[package]] name = "cssparser" version = "0.27.2" @@ -1494,6 +1554,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + [[package]] name = "curve25519-dalek" version = "4.0.0-rc.2" @@ -1786,7 +1859,7 @@ dependencies = [ "spki", "tokio", "uuid 1.3.0", - "x25519-dalek", + "x25519-dalek 2.0.0-rc.2", ] [[package]] @@ -4988,6 +5061,17 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "password-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "paste" version = "1.0.9" @@ -5256,6 +5340,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + [[package]] name = "polyval" version = "0.6.0" @@ -5737,15 +5832,21 @@ dependencies = [ "actix 0.13.0", "actix-rt", "actix-web", + "argon2", "chrono", + "crypto_box", "deno_core", "deno_runtime", "env_logger", "futures", + "hex", "juniper", "juniper_actix", "juniper_subscriptions", + "lazy_static", "log", + "rand 0.8.5", + "secp256k1", "serde", "serde_json", "tokio", @@ -5894,6 +5995,15 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + [[package]] name = "same-file" version = "1.0.6" @@ -5955,6 +6065,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "rand 0.8.5", + "secp256k1-sys", + "serde", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + [[package]] name = "security-framework" version = "2.7.0" @@ -8608,6 +8738,17 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "x25519-dalek" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +dependencies = [ + "curve25519-dalek 3.2.0", + "rand_core 0.5.1", + "zeroize", +] + [[package]] name = "x25519-dalek" version = "2.0.0-rc.2" @@ -8635,6 +8776,19 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +[[package]] +name = "xsalsa20poly1305" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "472c385ee974833d7e59979eeb74175d56774be3768b5bcc581337e21396bda3" +dependencies = [ + "aead", + "poly1305", + "salsa20", + "subtle", + "zeroize", +] + [[package]] name = "yaml-rust" version = "0.4.5" diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 9df96540e..c6d5fe8aa 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -36,7 +36,6 @@ export default class AgentService { #did?: string; #didDocument?: string; #signingKeyId?: string; - #wallet?: object; #file: string; #appsFile: string; #apps: AuthInfoExtended[]; @@ -220,38 +219,13 @@ export default class AgentService { } private getSigningKey() { - // @ts-ignore - const keys = this.#wallet.extractByTags([this.#signingKeyId]); - if (keys.length === 0) { - throw new Error( - `Signing key '${ - this.#signingKeyId - }' key found in keystore. Abort signing.` - ); - } - if (keys.length > 1) { - throw new Error( - `Multiple '${ - this.#signingKeyId - }' keys found in keystore. Abort signing.` - ); - } - - const key = keys[0]; - //console.log(key) - return key; + return WALLET.getMainKey(); } async createNewKeys() { - const key = await secp256k1DIDKey.Secp256k1KeyPair.generate({ - // @ts-ignore - secureRandom: () => crypto.randomBytes(32), - }); - - if (!key.privateKeyBuffer) { - throw Error("Cannot create keys without privateKeyBuffer"); - } - + WALLET.createMainKey() + const key = WALLET.getMainKey() + this.#did = key.controller; this.#didDocument = JSON.stringify(await resolver.resolve(this.#did)); this.#agent = new Agent(this.#did); @@ -266,47 +240,6 @@ export default class AgentService { tags: [key.type, key.id], }, ]; - - this.#wallet = didWallet.create({ keys }); - - console.debug(key); - console.debug(JSON.stringify(key)); - } - - async initialize( - did: string, - didDocument: string, - keystore: string, - password: string - ) { - this.#did = did; - this.#didDocument = didDocument; - this.#agent = new Agent(did); - this.#signingKeyId = did + "#primary"; - - console.debug("Creating wallet..."); - this.#wallet = didWallet.create(keystore); - console.debug("done."); - - console.debug("Unlocking wallet..."); - try { - // @ts-ignore - this.#wallet.unlock(password); - } catch (e) { - console.error(e); - return; - } - - console.debug("done."); - - console.debug("Saving wallet..."); - this.save(password); - console.debug("done."); - - console.debug("Registering new DID with agent language..."); - this.storeAgentProfile(); - this.#pubsub.publish(PubSubInstance.AGENT_UPDATED, this.#agent); - this.#readyPromiseResolve!(); } isInitialized() { @@ -314,14 +247,12 @@ export default class AgentService { } isUnlocked() { - // @ts-ignore - const keys = this.#wallet.keys ? true : false; - return keys; + return WALLET.isUnlocked() } async unlock(password: string) { // @ts-ignore - this.#wallet.unlock(password); + WALLET.unlock(password); this.#pubsub.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); this.#readyPromiseResolve!(); try { @@ -337,27 +268,27 @@ export default class AgentService { lock(password: string) { // @ts-ignore - this.#wallet.lock(password); + WALLET.lock(password); this.#pubsub.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); } async save(password: string) { // @ts-ignore - this.#wallet.lock(password); + WALLET.lock(password); const dump = { did: this.#did, didDocument: this.#didDocument, signingKeyId: this.#signingKeyId, // @ts-ignore - keystore: this.#wallet.export(), + keystore: WALLET.export(), agent: this.#agent, }; fs.writeFileSync(this.#file, JSON.stringify(dump)); // @ts-ignore - await this.#wallet.unlock(password); + await WALLET.unlock(password); this.#readyPromiseResolve!(); } @@ -369,7 +300,7 @@ export default class AgentService { this.#did = dump.did; this.#didDocument = dump.didDocument; this.#signingKeyId = dump.signingKeyId; - this.#wallet = didWallet.create(dump.keystore); + WALLET.load(dump.keystore); if (fs.existsSync(this.#fileProfile)) this.#agent = JSON.parse(fs.readFileSync(this.#fileProfile).toString()); else { @@ -378,21 +309,13 @@ export default class AgentService { } dump() { - const isInitialized = this.isInitialized(); - let isUnlocked = false; - if (isInitialized) { - // @ts-ignore - isUnlocked = this.#wallet.keys ? true : false; - } - - const dump = { + return { agent: this.#agent, - isInitialized, - isUnlocked, + isInitialized: this.isInitialized(), + isUnlocked: WALLET.isUnlocked(), did: this.#did, didDocument: this.#didDocument, }; - return dump; } async getCapabilities(token: string) { diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index e9c480930..672cc8ba5 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -418,13 +418,6 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return agent; }, //@ts-ignore - agentImport: async (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.AGENT_CREATE_CAPABILITY) - const { did, didDocument, keystore, passphrase } = args; - await core.agentService.initialize(did, didDocument, keystore, passphrase) - return core.agentService.dump() - }, - //@ts-ignore agentLock: (parent, args, context, info) => { checkCapability(context.capabilities, Auth.AGENT_LOCK_CAPABILITY) core.agentService.lock(args.passphrase) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 197c2313a..556d56f11 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -24,3 +24,9 @@ actix = "0.13.0" uuid = "1.3.0" log = "0.4.17" serde = "1.0.159" +secp256k1 = { version = "0.27.0", features = ["rand", "serde"] } +crypto_box = "0.8.2" +lazy_static = "1.4.0" +hex = "0.4.3" +argon2 = { version = "0.5.0", features = ["simple"] } +rand = "0.8.5" diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core.rs index 632c86d07..16948259f 100644 --- a/rust-executor/src/js_core.rs +++ b/rust-executor/src/js_core.rs @@ -14,6 +14,7 @@ use tokio::task::LocalSet; mod futures; mod options; mod string_module_loader; +mod wallet_extension; use self::futures::{EventLoopFuture, GlobalVariableFuture}; use options::{main_module_url, main_worker_options}; diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 6ee2fe36a..22384c1db 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,5 +1,6 @@ mod graphql; mod js_core; +mod wallet; use std::env; From 8bad86ed2e718453e909c67f615c06472513b2b9 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Mon, 10 Apr 2023 16:10:08 +0200 Subject: [PATCH 124/722] WIP: Rust wallet implementation (with last few compilation errors) and wallet Deno extension --- rust-executor/src/js_core/wallet_extension.js | 28 +++ rust-executor/src/js_core/wallet_extension.rs | 83 +++++++++ rust-executor/src/wallet.rs | 159 ++++++++++++++++++ 3 files changed, 270 insertions(+) create mode 100644 rust-executor/src/js_core/wallet_extension.js create mode 100644 rust-executor/src/js_core/wallet_extension.rs create mode 100644 rust-executor/src/wallet.rs diff --git a/rust-executor/src/js_core/wallet_extension.js b/rust-executor/src/js_core/wallet_extension.js new file mode 100644 index 000000000..8861136f2 --- /dev/null +++ b/rust-executor/src/js_core/wallet_extension.js @@ -0,0 +1,28 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.WALLET = { + getMainKey: () => { + return core.opAsync("wallet_get_main_key"); + }, + createMainKey: () => { + return core.opAsync("wallet_create_main_key"); + }, + isUnlocked: () => { + return core.opAsync("wallet_is_unlocked", path); + }, + unlock: (password) => { + return core.opAsync("wallet_unlock", password); + }, + lock: (password) => { + return core.opAsync("wallet_lock", password); + }, + export: () => { + return core.opAsync("wallet_export"); + }, + load: (data) => { + return core.opAsync("wallet_load", data); + }, + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs new file mode 100644 index 000000000..503f3fc90 --- /dev/null +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -0,0 +1,83 @@ +use deno_core::{op, error::AnyError, anyhow::anyhow}; +use secp256k1::SecretKey; + +use crate::wallet::Wallet; + + +fn secret_key_to_hex(secret_key: &SecretKey) -> String { + let secret_key_bytes = secret_key.as_ref(); // Convert SecretKey to byte array + let secret_key_hex = hex::encode(secret_key_bytes); // Encode the byte array as a hex string + secret_key_hex +} + +#[op] +fn wallet_get_main_key() -> Result { + let wallet = Wallet::instance() + .lock() + .expect("wallet lock") + .as_ref() + .expect("wallet instance"); + let key = wallet.get_secret_key("main".to_string()).ok_or_else(||anyhow!("main key not found"))?; + Ok(secret_key_to_hex(&key)) +} + +#[op] +fn wallet_create_main_key() -> Result<(), AnyError> { + let wallet = Wallet::instance() + .lock() + .expect("wallet lock") + .as_ref() + .expect("wallet instance"); + wallet.generate_keypair("main".to_string()); + Ok(()) +} + +#[op] +fn wallet_is_unlocked() -> Result { + let wallet = Wallet::instance() + .lock() + .expect("wallet lock") + .as_ref() + .expect("wallet instance"); + Ok(wallet.is_unlocked()) +} + +#[op] +fn wallet_unlock(passphrase: String) -> Result<(), AnyError> { + let wallet = Wallet::instance() + .lock() + .expect("wallet lock") + .as_ref() + .expect("wallet instance"); + wallet.unlock(passphrase).map_err(|e| e.into()) +} + +#[op] +fn wallet_lock(passphrase: String) -> Result<(), AnyError> { + let wallet = Wallet::instance() + .lock() + .expect("wallet lock") + .as_ref() + .expect("wallet instance"); + Ok(wallet.lock(passphrase)) +} + +#[op] +fn wallet_export(passphrase: String) -> Result { + let wallet = Wallet::instance() + .lock() + .expect("wallet lock") + .as_ref() + .expect("wallet instance"); + Ok(wallet.export(passphrase)) +} + +#[op] +fn wallet_load(data: String) -> Result<(), AnyError> { + let wallet = Wallet::instance() + .lock() + .expect("wallet lock") + .as_ref() + .expect("wallet instance"); + Ok(wallet.load(data)) +} \ No newline at end of file diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs new file mode 100644 index 000000000..239849973 --- /dev/null +++ b/rust-executor/src/wallet.rs @@ -0,0 +1,159 @@ +use std::collections::BTreeMap; +use std::sync::{Arc, Mutex}; +use secp256k1::ecdsa::Signature; +use secp256k1::{ + PublicKey, SecretKey, +}; +use secp256k1::rand::rngs::OsRng; +use secp256k1::{Message}; +use lazy_static::lazy_static; +use crypto_box::{SalsaBox, SecretKey as cSecretKey, PublicKey as cPublicKey}; +use argon2::{self, PasswordHasher, Argon2}; +use argon2::password_hash::{Salt}; +use rand::Rng; +use serde::{Serialize, Deserialize}; +use serde_json::Result; +use crypto_box::aead::{Aead, Nonce}; + +fn encrypt(payload: String, passphrase: String) -> String { + let salt = Salt::from_b64("0000000000000000").expect("salt from zeros to work"); + // Derive secret key from passphrase + let argon2 = Argon2::default(); + let derived_secret_key = argon2.hash_password(passphrase.as_bytes(), salt).unwrap(); + let derived_secret_key_string = derived_secret_key.to_string().as_str(); + let secret_key = cSecretKey::from(derived_secret_key_string.as_bytes().clone().take(...10).unwrap().into()); + let public_key = cPublicKey::from(secret_key.into()); + + // Create the Box (encryptor/decryptor) using the derived secret key and the public key + let crypto_box = SalsaBox::new(&public_key, &secret_key); + + let nonce = Nonce::from("000000000".into()); + // Encrypt + let encrypted_data = crypto_box.encrypt(&nonce, payload.into()).unwrap(); + + String::from_utf8(encrypted_data).expect("encrypted array to be a string") +} + +fn decrypt(payload: String, passphrase: String) -> Result { + // Salt for Argon2 key derivation function + let mut salt = [0u8; 16]; + let mut rng = rand::thread_rng(); + rng.fill(&mut salt); + + // Derive secret key from passphrase + let argon2 = Argon2::default(); + let derived_secret_key = argon2.hash_password(passphrase.as_bytes(), &salt).unwrap(); + let secret_key = cSecretKey::from_slice(&derived_secret_key[0..32]).unwrap(); + let public_key = cPublicKey::from(secret_key); + + // Create the Box (encryptor/decryptor) using the derived secret key and the public key + let crypto_box = SalsaBox::new(&public_key, &secret_key); + + // Decrypt + let decrypted_data = crypto_box.decrypt(&payload); + + decrypted_data +} + + +pub struct Key { + pub secret: SecretKey, + pub public: PublicKey, +} + +#[derive(Serialize, Deserialize)] +struct Keys { + keys: BTreeMap, +} + +pub struct Wallet { + cipher: Option, + keys: Option>, +} + +lazy_static! { + static ref WALLET: Arc>> = Arc::new(Mutex::new(None)); +} + +impl Wallet { + pub fn new() -> Self { + Wallet { + cipher: None, + keys: None, + } + } + + pub fn instance() -> Arc>> { + let wallet = unsafe { WALLET.clone() }; + { + let mut w_lock = wallet.lock().unwrap(); + if w_lock.is_none() { + *w_lock = Some(Wallet::new()); + } + } + wallet + } + + pub fn generate_keypair(&mut self, name: String) { + if self.keys.is_none() { + self.keys = Some(BTreeMap::new()); + } + let secp = secp256k1::Secp256k1::new(); + let (secret, public) = secp.generate_keypair(&mut OsRng); + self.keys.unwrap().insert(name, Key { secret, public }); + } + + pub fn get_public_key(&self, name: String) -> Option { + self.keys?.get(&name).map(|key| key.public) + } + + pub fn get_secret_key(&self, name: String) -> Option { + self.keys?.get(&name).map(|key| key.secret) + } + + pub fn sign(&self, name: String, message: &[u8]) -> Option { + // hash the message + let message = Message::from_slice(message).expect("32 bytes"); + // sign the hash + self.keys?.get(&name).map(|key| { + let secp = secp256k1::Secp256k1::new(); + secp.sign_ecdsa(&message, &key.secret) + }) + } + + pub fn lock(&mut self, passphrase: String) { + if let Some(&keys) = self.keys { + let string = serde_json::to_string(&keys).unwrap(); + let encrypted = encrypt(string, passphrase); + self.cipher = Some(encrypted); + self.keys = None; + } + } + + pub fn unlock(&mut self, passphrase: String) -> Result<()> { + let string = decrypt(self.cipher, passphrase)?; + let keys: Keys = serde_json::from_str(&string)?; + self.keys = Some(keys); + Ok(()) + } + + pub fn is_unlocked(&self) -> bool { + self.keys.is_some() + } + + pub fn export(&mut self, passphrase: String) -> String { + if let Some(&keys) = self.keys { + let string = serde_json::to_string(&keys).unwrap(); + let encrypted = encrypt(string, passphrase); + self.cipher = Some(encrypted); + encrypted + } else { + String::new() + } + } + + pub fn load(&mut self, data: String) { + self.cipher = Some(data); + } + +} \ No newline at end of file From 3f68ac40f804131bd0ee9521a9678118175bcca8 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 10 Apr 2023 20:00:36 +0100 Subject: [PATCH 125/722] get wallet code compiling + test --- rust-executor/src/wallet.rs | 158 ++++++++++++++++++++++++++---------- 1 file changed, 114 insertions(+), 44 deletions(-) diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index 239849973..81c590450 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -1,67 +1,109 @@ +use argon2::password_hash::Salt; +use argon2::{self, Argon2, PasswordHasher}; +use base64::Engine; +use crypto_box::aead::{Aead, OsRng}; +use crypto_box::{Nonce, PublicKey as cPublicKey, SalsaBox, SecretKey as cSecretKey}; +use deno_core::anyhow::anyhow; +use deno_core::error::AnyError; +use lazy_static::lazy_static; +use secp256k1::ecdsa::Signature; +use secp256k1::Message; +use secp256k1::{PublicKey, SecretKey}; +use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; +use std::convert::TryInto; use std::sync::{Arc, Mutex}; -use secp256k1::ecdsa::Signature; -use secp256k1::{ - PublicKey, SecretKey, -}; -use secp256k1::rand::rngs::OsRng; -use secp256k1::{Message}; -use lazy_static::lazy_static; -use crypto_box::{SalsaBox, SecretKey as cSecretKey, PublicKey as cPublicKey}; -use argon2::{self, PasswordHasher, Argon2}; -use argon2::password_hash::{Salt}; -use rand::Rng; -use serde::{Serialize, Deserialize}; -use serde_json::Result; -use crypto_box::aead::{Aead, Nonce}; + +fn slice_to_u8_array(slice: &[u8]) -> Option<[u8; 32]> { + //If length of slice is not 32 then take the first 32 bytes + let slice_32 = if slice.len() != 32 { + let mut array: [u8; 32] = [0u8; 32]; + let mut i = 0; + for byte in slice { + if i == 32 { + break; + } + array[i] = *byte; + i += 1; + } + array + } else { + let array: [u8; 32] = slice.try_into().expect("slice with incorrect length"); + array + }; + + let array: Result<[u8; 32], _> = slice_32.try_into(); + array.ok() +} fn encrypt(payload: String, passphrase: String) -> String { let salt = Salt::from_b64("0000000000000000").expect("salt from zeros to work"); + // Derive secret key from passphrase let argon2 = Argon2::default(); - let derived_secret_key = argon2.hash_password(passphrase.as_bytes(), salt).unwrap(); - let derived_secret_key_string = derived_secret_key.to_string().as_str(); - let secret_key = cSecretKey::from(derived_secret_key_string.as_bytes().clone().take(...10).unwrap().into()); - let public_key = cPublicKey::from(secret_key.into()); + //NOTE: we need to be sure to enforce min password size so we ensure that we will always get 32 bytes to work from + let derived_secret_key = argon2 + .hash_password(passphrase.as_bytes(), salt) + .unwrap() + .to_string(); + let derived_secret_key_bytes = derived_secret_key.as_bytes(); + let secret_key = cSecretKey::from( + slice_to_u8_array(derived_secret_key_bytes).expect("Could not slice to u8 array"), + ); + let public_key = cPublicKey::from(&secret_key); // Create the Box (encryptor/decryptor) using the derived secret key and the public key let crypto_box = SalsaBox::new(&public_key, &secret_key); - let nonce = Nonce::from("000000000".into()); + //let nonce = SalsaBox::generate_nonce(&mut OsRng); + let nonce = Nonce::default(); + // Encrypt - let encrypted_data = crypto_box.encrypt(&nonce, payload.into()).unwrap(); + let encrypted_data = crypto_box.encrypt(&nonce, payload.as_bytes()).unwrap(); - String::from_utf8(encrypted_data).expect("encrypted array to be a string") + base64::engine::general_purpose::STANDARD_NO_PAD.encode(encrypted_data) } -fn decrypt(payload: String, passphrase: String) -> Result { - // Salt for Argon2 key derivation function - let mut salt = [0u8; 16]; - let mut rng = rand::thread_rng(); - rng.fill(&mut salt); +fn decrypt(payload: String, passphrase: String) -> Result { + let salt = Salt::from_b64("0000000000000000").expect("salt from zeros to work"); // Derive secret key from passphrase let argon2 = Argon2::default(); - let derived_secret_key = argon2.hash_password(passphrase.as_bytes(), &salt).unwrap(); - let secret_key = cSecretKey::from_slice(&derived_secret_key[0..32]).unwrap(); - let public_key = cPublicKey::from(secret_key); + let derived_secret_key = argon2 + .hash_password(passphrase.as_bytes(), salt) + .unwrap() + .to_string(); + let derived_secret_key_bytes = derived_secret_key.as_bytes(); + let secret_key = cSecretKey::from( + slice_to_u8_array(derived_secret_key_bytes).expect("Could not slice to u8 array"), + ); + let public_key = cPublicKey::from(&secret_key); // Create the Box (encryptor/decryptor) using the derived secret key and the public key let crypto_box = SalsaBox::new(&public_key, &secret_key); + //Pretty sure this not gonna work since this will be a different nonce to what is generated on encrypt + let nonce = Nonce::default(); + + let payload_bytes = base64::engine::general_purpose::STANDARD_NO_PAD + .decode(payload.as_bytes()) + .expect("Could not decode payload"); + // Decrypt - let decrypted_data = crypto_box.decrypt(&payload); + let decrypted_data = crypto_box + .decrypt(&nonce, payload_bytes.as_slice()) + .map(|data| String::from_utf8(data).expect("decrypted array to be a string")); decrypted_data } - +#[derive(Serialize, Deserialize, Clone)] pub struct Key { pub secret: SecretKey, pub public: PublicKey, } -#[derive(Serialize, Deserialize)] +#[derive(Serialize, Deserialize, Clone)] struct Keys { keys: BTreeMap, } @@ -100,29 +142,32 @@ impl Wallet { } let secp = secp256k1::Secp256k1::new(); let (secret, public) = secp.generate_keypair(&mut OsRng); - self.keys.unwrap().insert(name, Key { secret, public }); + self.keys + .clone() + .unwrap() + .insert(name, Key { secret, public }); } pub fn get_public_key(&self, name: String) -> Option { - self.keys?.get(&name).map(|key| key.public) + self.keys.clone()?.get(&name).map(|key| key.public) } pub fn get_secret_key(&self, name: String) -> Option { - self.keys?.get(&name).map(|key| key.secret) + self.keys.clone()?.get(&name).map(|key| key.secret) } pub fn sign(&self, name: String, message: &[u8]) -> Option { // hash the message let message = Message::from_slice(message).expect("32 bytes"); // sign the hash - self.keys?.get(&name).map(|key| { + self.keys.clone()?.get(&name).map(|key| { let secp = secp256k1::Secp256k1::new(); secp.sign_ecdsa(&message, &key.secret) }) } pub fn lock(&mut self, passphrase: String) { - if let Some(&keys) = self.keys { + if let Some(keys) = &self.keys { let string = serde_json::to_string(&keys).unwrap(); let encrypted = encrypt(string, passphrase); self.cipher = Some(encrypted); @@ -130,10 +175,11 @@ impl Wallet { } } - pub fn unlock(&mut self, passphrase: String) -> Result<()> { - let string = decrypt(self.cipher, passphrase)?; + pub fn unlock(&mut self, passphrase: String) -> Result<(), AnyError> { + let string = decrypt(self.cipher.clone().expect("No cypher selected"), passphrase) + .map_err(|err| anyhow!(err))?; let keys: Keys = serde_json::from_str(&string)?; - self.keys = Some(keys); + self.keys = Some(keys.keys); Ok(()) } @@ -142,10 +188,10 @@ impl Wallet { } pub fn export(&mut self, passphrase: String) -> String { - if let Some(&keys) = self.keys { - let string = serde_json::to_string(&keys).unwrap(); + if let Some(keys) = &self.keys { + let string = serde_json::to_string(keys).unwrap(); let encrypted = encrypt(string, passphrase); - self.cipher = Some(encrypted); + self.cipher = Some(encrypted.clone()); encrypted } else { String::new() @@ -155,5 +201,29 @@ impl Wallet { pub fn load(&mut self, data: String) { self.cipher = Some(data); } +} -} \ No newline at end of file +#[cfg(test)] +mod tests { + //Test the encryption and decryption of a string + use super::*; + + #[test] + fn test_encrypt_decrypt_multiple() { + let passphrase = "test".to_string(); + let payload = "test".to_string(); + let encrypted = encrypt(payload.clone(), passphrase.clone()); + println!("Got encrypted: {}", encrypted); + let decrypted = decrypt(encrypted, passphrase); + println!("Got decrypted: {:?}", decrypted); + assert_eq!(payload, decrypted.unwrap()); + + let passphrase = "test".to_string(); + let payload = "test".to_string(); + let encrypted = encrypt(payload.clone(), passphrase.clone()); + println!("Got encrypted: {}", encrypted); + let decrypted = decrypt(encrypted, passphrase); + println!("Got decrypted: {:?}", decrypted); + assert_eq!(payload, decrypted.unwrap()); + } +} From 463a04d5dc819f8c6df8b5991673d482c4346592 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 10 Apr 2023 20:59:52 +0100 Subject: [PATCH 126/722] fix lifetime errors --- rust-executor/src/js_core/wallet_extension.rs | 77 ++++++++----------- rust-executor/src/wallet.rs | 2 +- 2 files changed, 33 insertions(+), 46 deletions(-) diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index 503f3fc90..4cea0aeb7 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -1,9 +1,8 @@ -use deno_core::{op, error::AnyError, anyhow::anyhow}; +use deno_core::{anyhow::anyhow, error::AnyError, op}; use secp256k1::SecretKey; use crate::wallet::Wallet; - fn secret_key_to_hex(secret_key: &SecretKey) -> String { let secret_key_bytes = secret_key.as_ref(); // Convert SecretKey to byte array let secret_key_hex = hex::encode(secret_key_bytes); // Encode the byte array as a hex string @@ -12,72 +11,60 @@ fn secret_key_to_hex(secret_key: &SecretKey) -> String { #[op] fn wallet_get_main_key() -> Result { - let wallet = Wallet::instance() - .lock() - .expect("wallet lock") - .as_ref() - .expect("wallet instance"); - let key = wallet.get_secret_key("main".to_string()).ok_or_else(||anyhow!("main key not found"))?; + let wallet_instance = Wallet::instance(); + let wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_ref().expect("wallet instance"); + let key = wallet_ref + .get_secret_key("main".to_string()) + .ok_or_else(|| anyhow!("main key not found"))?; Ok(secret_key_to_hex(&key)) } #[op] fn wallet_create_main_key() -> Result<(), AnyError> { - let wallet = Wallet::instance() - .lock() - .expect("wallet lock") - .as_ref() - .expect("wallet instance"); - wallet.generate_keypair("main".to_string()); + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + wallet_ref.generate_keypair("main".to_string()); Ok(()) } #[op] fn wallet_is_unlocked() -> Result { - let wallet = Wallet::instance() - .lock() - .expect("wallet lock") - .as_ref() - .expect("wallet instance"); - Ok(wallet.is_unlocked()) + let wallet_instance = Wallet::instance(); + let wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_ref().expect("wallet instance"); + Ok(wallet_ref.is_unlocked()) } #[op] fn wallet_unlock(passphrase: String) -> Result<(), AnyError> { - let wallet = Wallet::instance() - .lock() - .expect("wallet lock") - .as_ref() - .expect("wallet instance"); - wallet.unlock(passphrase).map_err(|e| e.into()) + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + wallet_ref.unlock(passphrase).map_err(|e| e.into()) } #[op] fn wallet_lock(passphrase: String) -> Result<(), AnyError> { - let wallet = Wallet::instance() - .lock() - .expect("wallet lock") - .as_ref() - .expect("wallet instance"); - Ok(wallet.lock(passphrase)) + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + Ok(wallet_ref.lock(passphrase)) } #[op] fn wallet_export(passphrase: String) -> Result { - let wallet = Wallet::instance() - .lock() - .expect("wallet lock") - .as_ref() - .expect("wallet instance"); - Ok(wallet.export(passphrase)) + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + Ok(wallet_ref.export(passphrase)) } #[op] fn wallet_load(data: String) -> Result<(), AnyError> { - let wallet = Wallet::instance() - .lock() - .expect("wallet lock") - .as_ref() - .expect("wallet instance"); - Ok(wallet.load(data)) -} \ No newline at end of file + let wallet_instance = Wallet::instance(); + let mut wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_mut().expect("wallet instance"); + Ok(wallet_ref.load(data)) +} diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index 81c590450..0d04abf3c 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -126,7 +126,7 @@ impl Wallet { } pub fn instance() -> Arc>> { - let wallet = unsafe { WALLET.clone() }; + let wallet = WALLET.clone(); { let mut w_lock = wallet.lock().unwrap(); if w_lock.is_none() { From 60fb9fb55e11a23fbf3ca260e426814efc6261e0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 11 Apr 2023 11:48:09 +0100 Subject: [PATCH 127/722] add missing deps to cargo.toml --- rust-executor/Cargo.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 20fe6894c..c916fea09 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -30,3 +30,6 @@ lazy_static = "1.4.0" hex = "0.4.3" argon2 = { version = "0.5.0", features = ["simple"] } rand = "0.8.5" +base64 = "0.21.0" +clap = { version = "4.0.8", features = ["derive"] } +fs_extra = "1.3.0" From 10723f204fabbbb3df697e84717d05c2ed97aebe Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 11 Apr 2023 14:26:34 +0200 Subject: [PATCH 128/722] Change wallet implementation to use did_key --- Cargo.lock | 346 +++++++++++++++++- rust-executor/Cargo.toml | 1 + rust-executor/src/js_core/wallet_extension.rs | 2 +- rust-executor/src/wallet.rs | 68 ++-- 4 files changed, 379 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f05959da6..b9a45aec3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -487,6 +487,12 @@ dependencies = [ "password-hash", ] +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + [[package]] name = "arrayvec" version = "0.7.2" @@ -724,6 +730,15 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "atomic-polyfill" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28" +dependencies = [ + "critical-section", +] + [[package]] name = "atomic-waker" version = "1.0.0" @@ -836,6 +851,18 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake2" version = "0.10.6" @@ -909,6 +936,23 @@ dependencies = [ "once_cell", ] +[[package]] +name = "bls12_381_plus" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c681aa947677ec0c5ccfa6f14c0dd039ddbaa7b12952bf146bd5226a5f9880" +dependencies = [ + "digest 0.9.0", + "ff", + "group", + "heapless", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", + "zeroize", +] + [[package]] name = "brotli" version = "3.3.4" @@ -930,6 +974,12 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + [[package]] name = "bson" version = "1.2.4" @@ -1383,6 +1433,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "critical-section" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" + [[package]] name = "crossbeam-channel" version = "0.5.6" @@ -1451,6 +1507,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-bigint" version = "0.4.9" @@ -1474,6 +1536,26 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array 0.14.6", + "subtle", +] + +[[package]] +name = "crypto-mac" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +dependencies = [ + "generic-array 0.14.6", + "subtle", +] + [[package]] name = "crypto_box" version = "0.8.2" @@ -1787,7 +1869,7 @@ dependencies = [ "deno_core", "rusqlite", "serde", - "sha2", + "sha2 0.10.6", "tokio", ] @@ -1854,7 +1936,7 @@ dependencies = [ "serde", "serde_bytes", "sha1", - "sha2", + "sha2 0.10.6", "signature", "spki", "tokio", @@ -2048,7 +2130,7 @@ dependencies = [ "rsa", "serde", "sha-1 0.10.0", - "sha2", + "sha2 0.10.6", "sha3", "signature", "tokio", @@ -2258,6 +2340,39 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" +[[package]] +name = "did-key" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed21f9ed50f9d3f79b6ba84f2cf8a536399c3500bc99406c1bbc1e0c598524e" +dependencies = [ + "arrayref", + "base64 0.13.1", + "bls12_381_plus", + "bs58", + "curve25519-dalek 3.2.0", + "did_url", + "ed25519-dalek", + "getrandom 0.2.8", + "hkdf 0.11.0", + "json-patch", + "libsecp256k1", + "p256", + "serde", + "serde_json", + "sha2 0.9.9", + "x25519-dalek 1.1.1", +] + +[[package]] +name = "did_url" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d5f6334e473e3bb5650ab4ef3e4c910296b76968e62758e7c66157ff767c05" +dependencies = [ + "form_urlencoded", +] + [[package]] name = "digest" version = "0.8.1" @@ -2457,6 +2572,29 @@ dependencies = [ "signature", ] +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek 3.2.0", + "ed25519", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", +] + [[package]] name = "either" version = "1.8.0" @@ -2476,7 +2614,7 @@ dependencies = [ "ff", "generic-array 0.14.6", "group", - "hkdf", + "hkdf 0.12.3", "pem-rfc7468", "pkcs8", "rand_core 0.6.4", @@ -2651,6 +2789,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ + "bitvec", "rand_core 0.6.4", "subtle", ] @@ -2757,6 +2896,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "fsevent-sys" version = "4.1.0" @@ -2776,6 +2921,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futf" version = "0.1.5" @@ -3042,8 +3193,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -3350,6 +3503,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -3368,6 +3530,19 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "heapless" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.0", + "spin 0.9.8", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.3.3" @@ -3404,13 +3579,43 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hkdf" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01706d578d5c281058480e673ae4086a9f4710d8df1ad80a5b03e39ece5f886b" +dependencies = [ + "digest 0.9.0", + "hmac 0.11.0", +] + [[package]] name = "hkdf" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" dependencies = [ - "hmac", + "hmac 0.12.1", +] + +[[package]] +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac 0.8.0", + "digest 0.9.0", +] + +[[package]] +name = "hmac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +dependencies = [ + "crypto-mac 0.11.1", + "digest 0.9.0", ] [[package]] @@ -3422,6 +3627,17 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "hmac-drbg" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array 0.14.6", + "hmac 0.8.1", +] + [[package]] name = "hostname" version = "0.3.1" @@ -3982,7 +4198,7 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" dependencies = [ - "spin", + "spin 0.5.2", ] [[package]] @@ -4138,6 +4354,54 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +[[package]] +name = "libsecp256k1" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +dependencies = [ + "arrayref", + "base64 0.13.1", + "digest 0.9.0", + "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand 0.8.5", + "serde", + "sha2 0.9.9", + "typenum", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core", +] + [[package]] name = "libsqlite3-sys" version = "0.25.2" @@ -4958,7 +5222,7 @@ checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ "ecdsa", "elliptic-curve", - "sha2", + "sha2 0.10.6", ] [[package]] @@ -4969,7 +5233,7 @@ checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ "ecdsa", "elliptic-curve", - "sha2", + "sha2 0.10.6", ] [[package]] @@ -4982,6 +5246,15 @@ dependencies = [ "libm 0.1.4", ] +[[package]] +name = "pairing" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" +dependencies = [ + "group", +] + [[package]] name = "pango" version = "0.15.10" @@ -5097,7 +5370,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" dependencies = [ "digest 0.10.6", - "hmac", + "hmac 0.12.1", ] [[package]] @@ -5485,6 +5758,12 @@ dependencies = [ "proc-macro2 1.0.56", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "radix_trie" version = "0.2.1" @@ -5738,7 +6017,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ "crypto-bigint", - "hmac", + "hmac 0.12.1", "zeroize", ] @@ -5775,7 +6054,7 @@ dependencies = [ "cc", "libc", "once_cell", - "spin", + "spin 0.5.2", "untrusted", "web-sys", "winapi", @@ -5833,11 +6112,15 @@ dependencies = [ "actix-rt", "actix-web", "argon2", + "base64 0.21.0", "chrono", + "clap", "crypto_box", "deno_core", "deno_runtime", + "did-key", "env_logger", + "fs_extra", "futures", "hex", "juniper", @@ -6360,6 +6643,19 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + [[package]] name = "sha2" version = "0.10.6" @@ -6531,6 +6827,15 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.6.0" @@ -7151,6 +7456,12 @@ dependencies = [ "x11-dl", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tar" version = "0.4.38" @@ -7249,7 +7560,7 @@ dependencies = [ "semver 1.0.14", "serde", "serde_json", - "sha2", + "sha2 0.10.6", "tauri-utils", "thiserror", "time 0.3.17", @@ -8705,7 +9016,7 @@ dependencies = [ "once_cell", "serde", "serde_json", - "sha2", + "sha2 0.10.6", "soup2", "tao", "thiserror", @@ -8717,6 +9028,15 @@ dependencies = [ "windows-implement", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "x11" version = "2.20.1" diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index c916fea09..fe0eb28d9 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -33,3 +33,4 @@ rand = "0.8.5" base64 = "0.21.0" clap = { version = "4.0.8", features = ["derive"] } fs_extra = "1.3.0" +did-key = "0.2.1" diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index 4cea0aeb7..2a3a92219 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -17,7 +17,7 @@ fn wallet_get_main_key() -> Result { let key = wallet_ref .get_secret_key("main".to_string()) .ok_or_else(|| anyhow!("main key not found"))?; - Ok(secret_key_to_hex(&key)) + Ok(String::new()) } #[op] diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index 0d04abf3c..84d0a41fd 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -1,14 +1,12 @@ use argon2::password_hash::Salt; use argon2::{self, Argon2, PasswordHasher}; use base64::Engine; -use crypto_box::aead::{Aead, OsRng}; +use crypto_box::aead::Aead; use crypto_box::{Nonce, PublicKey as cPublicKey, SalsaBox, SecretKey as cSecretKey}; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; +use did_key::{Ed25519KeyPair, PatchedKeyPair, KeyMaterial, DIDCore, CoreSign}; use lazy_static::lazy_static; -use secp256k1::ecdsa::Signature; -use secp256k1::Message; -use secp256k1::{PublicKey, SecretKey}; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; use std::convert::TryInto; @@ -99,18 +97,35 @@ fn decrypt(payload: String, passphrase: String) -> Result, + pub public: Vec, +} + +impl Key { + pub fn from(did: PatchedKeyPair) -> Key { + Key { + secret: did.private_key_bytes(), + public: did.public_key_bytes(), + } + } } #[derive(Serialize, Deserialize, Clone)] struct Keys { - keys: BTreeMap, + pub by_name: BTreeMap, +} + +impl Keys { + pub fn new() -> Self { + Keys { + by_name: BTreeMap::new(), + } + } } pub struct Wallet { cipher: Option, - keys: Option>, + keys: Option, } lazy_static! { @@ -138,31 +153,36 @@ impl Wallet { pub fn generate_keypair(&mut self, name: String) { if self.keys.is_none() { - self.keys = Some(BTreeMap::new()); + self.keys = Some(Keys::new()); } - let secp = secp256k1::Secp256k1::new(); - let (secret, public) = secp.generate_keypair(&mut OsRng); + + let key = did_key::generate::(None); self.keys .clone() .unwrap() - .insert(name, Key { secret, public }); + .by_name + .insert(name, Key::from(key)); } - pub fn get_public_key(&self, name: String) -> Option { - self.keys.clone()?.get(&name).map(|key| key.public) + pub fn get_public_key(&self, name: String) -> Option> { + self.keys.as_ref()?.by_name.get(&name).map(|key| key.public.clone()) } - pub fn get_secret_key(&self, name: String) -> Option { - self.keys.clone()?.get(&name).map(|key| key.secret) + pub fn get_secret_key(&self, name: String) -> Option> { + self.keys.as_ref()?.by_name.get(&name).map(|key| key.secret.clone()) + } + + pub fn get_did_document(&self, name: String) -> Option { + self.keys.as_ref()?.by_name.get(&name).map(|key| { + let key = did_key::from_existing_key::(&key.public.clone(), Some(&key.secret.clone())); + key.get_did_document(did_key::Config::default()) + }) } - pub fn sign(&self, name: String, message: &[u8]) -> Option { - // hash the message - let message = Message::from_slice(message).expect("32 bytes"); - // sign the hash - self.keys.clone()?.get(&name).map(|key| { - let secp = secp256k1::Secp256k1::new(); - secp.sign_ecdsa(&message, &key.secret) + pub fn sign(&self, name: String, message: &[u8]) -> Option> { + self.keys.as_ref()?.by_name.get(&name).map(|key| { + let key = did_key::from_existing_key::(&key.public.clone(), Some(&key.secret.clone())); + key.sign(message) }) } @@ -179,7 +199,7 @@ impl Wallet { let string = decrypt(self.cipher.clone().expect("No cypher selected"), passphrase) .map_err(|err| anyhow!(err))?; let keys: Keys = serde_json::from_str(&string)?; - self.keys = Some(keys.keys); + self.keys = Some(keys); Ok(()) } From 8841897c488e9d987e295799080bffd71cd7b7ac Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 11 Apr 2023 14:27:03 +0200 Subject: [PATCH 129/722] fmt --- rust-executor/src/graphql/query_resolvers.rs | 4 ++- rust-executor/src/wallet.rs | 26 +++++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index 2eae37d43..b9d3d8740 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -51,7 +51,9 @@ impl Query { async fn agent_status(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); - let result = js.execute("JSON.stringify(core.agentService.dump())".into()).await?; + let result = js + .execute("JSON.stringify(core.agentService.dump())".into()) + .await?; let s: AgentStatus = serde_json::from_str(&result)?; return Ok(s); } diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index 84d0a41fd..826d36d21 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -5,7 +5,7 @@ use crypto_box::aead::Aead; use crypto_box::{Nonce, PublicKey as cPublicKey, SalsaBox, SecretKey as cSecretKey}; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; -use did_key::{Ed25519KeyPair, PatchedKeyPair, KeyMaterial, DIDCore, CoreSign}; +use did_key::{CoreSign, DIDCore, Ed25519KeyPair, KeyMaterial, PatchedKeyPair}; use lazy_static::lazy_static; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; @@ -160,28 +160,42 @@ impl Wallet { self.keys .clone() .unwrap() - .by_name + .by_name .insert(name, Key::from(key)); } pub fn get_public_key(&self, name: String) -> Option> { - self.keys.as_ref()?.by_name.get(&name).map(|key| key.public.clone()) + self.keys + .as_ref()? + .by_name + .get(&name) + .map(|key| key.public.clone()) } pub fn get_secret_key(&self, name: String) -> Option> { - self.keys.as_ref()?.by_name.get(&name).map(|key| key.secret.clone()) + self.keys + .as_ref()? + .by_name + .get(&name) + .map(|key| key.secret.clone()) } pub fn get_did_document(&self, name: String) -> Option { self.keys.as_ref()?.by_name.get(&name).map(|key| { - let key = did_key::from_existing_key::(&key.public.clone(), Some(&key.secret.clone())); + let key = did_key::from_existing_key::( + &key.public.clone(), + Some(&key.secret.clone()), + ); key.get_did_document(did_key::Config::default()) }) } pub fn sign(&self, name: String, message: &[u8]) -> Option> { self.keys.as_ref()?.by_name.get(&name).map(|key| { - let key = did_key::from_existing_key::(&key.public.clone(), Some(&key.secret.clone())); + let key = did_key::from_existing_key::( + &key.public.clone(), + Some(&key.secret.clone()), + ); key.sign(message) }) } From 69e82acf51c4d68f5c88bc1e4d5617ed5b716fb1 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 11 Apr 2023 14:38:24 +0200 Subject: [PATCH 130/722] Return did_key::Document in wallet_get_main_key() --- rust-executor/src/js_core/wallet_extension.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index 2a3a92219..0181b05a9 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -10,14 +10,11 @@ fn secret_key_to_hex(secret_key: &SecretKey) -> String { } #[op] -fn wallet_get_main_key() -> Result { +fn wallet_get_main_key() -> Result { let wallet_instance = Wallet::instance(); let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); - let key = wallet_ref - .get_secret_key("main".to_string()) - .ok_or_else(|| anyhow!("main key not found"))?; - Ok(String::new()) + wallet_ref.get_did_document("main".into()).ok_or(anyhow!("main key not found. call createMainKey() first")) } #[op] From f63582f4832fb2e196a628c28b8a62d88f03ca45 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 11 Apr 2023 15:03:36 +0200 Subject: [PATCH 131/722] Wallet extension DID document in JS --- executor/src/core/agent/AgentService.ts | 20 ++--- executor/src/wallet_extension.d.ts | 75 +++++++++++++++++++ rust-executor/src/js_core/wallet_extension.js | 3 + rust-executor/src/js_core/wallet_extension.rs | 27 ++++++- 4 files changed, 111 insertions(+), 14 deletions(-) create mode 100644 executor/src/wallet_extension.d.ts diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index c6d5fe8aa..b7e693d1f 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -1,6 +1,6 @@ import * as path from "path"; import * as fs from "fs"; -import didWallet from "@transmute/did-wallet"; +import { Key } from "../../wallet_extension"; import { Language, Expression, @@ -32,6 +32,7 @@ import * as crypto from "crypto"; import KeyEncoder from "key-encoder"; import * as secp from "@noble/secp256k1"; + export default class AgentService { #did?: string; #didDocument?: string; @@ -110,6 +111,7 @@ export default class AgentService { const payloadBytes = Signatures.buildMessage(data, timestamp); const key = this.getSigningKey(); + //@ts-ignore const privKey = Uint8Array.from(Buffer.from(key.privateKey, key.encoding)); const sigObj = secp256k1.ecdsaSign(payloadBytes, privKey); @@ -143,6 +145,7 @@ export default class AgentService { const payloadBytes = Signatures.buildMessageRaw(data) const key = this.getSigningKey() + //@ts-ignore const privKey = Uint8Array.from(Buffer.from(key.privateKey, key.encoding)) const sigObj = secp256k1.ecdsaSign(payloadBytes, privKey) @@ -218,28 +221,19 @@ export default class AgentService { } } - private getSigningKey() { + private getSigningKey(): Key { return WALLET.getMainKey(); } async createNewKeys() { WALLET.createMainKey() - const key = WALLET.getMainKey() + const didDocument = WALLET.getMainKeyDocument() + const key = didDocument.verificationMethod[0] this.#did = key.controller; this.#didDocument = JSON.stringify(await resolver.resolve(this.#did)); this.#agent = new Agent(this.#did); this.#signingKeyId = key.id; - - const keys = [ - { - type: "assymetric", - encoding: "hex", - publicKey: key.publicKeyBuffer.toString("hex"), - privateKey: key.privateKeyBuffer.toString("hex"), - tags: [key.type, key.id], - }, - ]; } isInitialized() { diff --git a/executor/src/wallet_extension.d.ts b/executor/src/wallet_extension.d.ts new file mode 100644 index 000000000..ea421a2ca --- /dev/null +++ b/executor/src/wallet_extension.d.ts @@ -0,0 +1,75 @@ +export interface Key { + publicKey: string; + privateKey: string; + encoding: string; +} + +export interface Document { + "@context": string; + id: string; + assertionMethod?: string[]; + authentication?: string[]; + capabilityDelegation?: string[]; + capabilityInvocation?: string[]; + keyAgreement?: string[]; + verificationMethod: VerificationMethod[]; +} + +interface VerificationMethod { + id: string; + type: string; + controller: string; + publicKeyBase58?: string; + publicKeyMultibase?: Uint8Array; + publicKeyJwk?: KeyFormat; + privateKeyBase58?: string; + privateKeyMultibase?: Uint8Array; + privateKeyJwk?: KeyFormat; +} + +type KeyFormat = Base58 | Multibase | JWK; + +interface Base58 { + type: "Base58"; + value: string; +} + +interface Multibase { + type: "Multibase"; + value: Uint8Array; +} + +interface JWK { + kid?: string; + kty: string; + crv: string; + x?: string; + y?: string; + d?: string; +} + +interface JWSHeader { + alg: string; + kid?: string; +} + +interface JWS { + header: JWSHeader; + payload: Uint8Array; + signature: Uint8Array; +} + +declare global { + interface RustWallet { + getMainKey: () => Key; + getMainKeyDocument: () => Document; + createMainKey: () => void; + isUnlocked: () => boolean; + unlock: (password: String) => void; + lock: (password: String) => void; + export: () => String; + load: (data: String) => void; + } + + const WALLET: RustWallet; +} \ No newline at end of file diff --git a/rust-executor/src/js_core/wallet_extension.js b/rust-executor/src/js_core/wallet_extension.js index 8861136f2..7ca739f42 100644 --- a/rust-executor/src/js_core/wallet_extension.js +++ b/rust-executor/src/js_core/wallet_extension.js @@ -5,6 +5,9 @@ getMainKey: () => { return core.opAsync("wallet_get_main_key"); }, + getMainKeyDocument: () => { + return core.opAsync("wallet_get_main_key_document"); + }, createMainKey: () => { return core.opAsync("wallet_create_main_key"); }, diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index 0181b05a9..364b37caa 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -1,5 +1,7 @@ use deno_core::{anyhow::anyhow, error::AnyError, op}; use secp256k1::SecretKey; +use base64::{Engine as _, engine::{self, general_purpose as base64engine}}; +use serde::{Deserialize, Serialize}; use crate::wallet::Wallet; @@ -9,8 +11,31 @@ fn secret_key_to_hex(secret_key: &SecretKey) -> String { secret_key_hex } + +#[derive(Serialize, Deserialize, Clone)] +pub struct Key { + pub public_key: String, + pub private_key: String, + pub encoding: String, +} + +#[op] +fn wallet_get_main_key() -> Result { + let wallet_instance = Wallet::instance(); + let wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_ref().expect("wallet instance"); + let public_key = wallet_ref.get_public_key("main".into()).ok_or(anyhow!("main key not found. call createMainKey() first"))?; + let private_key = wallet_ref.get_secret_key("main".into()).ok_or(anyhow!("main key not found. call createMainKey() first"))?; + Ok(Key { + public_key: base64engine::STANDARD.encode(public_key), + private_key: base64engine::STANDARD.encode(private_key), + encoding: "base64".to_string(), + }) +} + + #[op] -fn wallet_get_main_key() -> Result { +fn wallet_get_main_key_document() -> Result { let wallet_instance = Wallet::instance(); let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); From 325cf8b5a2bedb243ee2881ff47e36198c380060 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 11 Apr 2023 14:12:54 +0100 Subject: [PATCH 132/722] move graphql & js core files into their own modules --- rust-executor/src/{graphql.rs => graphql/mod.rs} | 1 + rust-executor/src/{js_core.rs => js_core/mod.rs} | 0 2 files changed, 1 insertion(+) rename rust-executor/src/{graphql.rs => graphql/mod.rs} (98%) rename rust-executor/src/{js_core.rs => js_core/mod.rs} (100%) diff --git a/rust-executor/src/graphql.rs b/rust-executor/src/graphql/mod.rs similarity index 98% rename from rust-executor/src/graphql.rs rename to rust-executor/src/graphql/mod.rs index 367519c85..221b094e0 100644 --- a/rust-executor/src/graphql.rs +++ b/rust-executor/src/graphql/mod.rs @@ -46,6 +46,7 @@ async fn graphql_route( graphql_handler(&schema, &deno_connect, req, payload).await } +/// Starts the GraphQL server pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> { schema().as_schema_language(); let mut file = std::fs::File::create("schema.gql").unwrap(); diff --git a/rust-executor/src/js_core.rs b/rust-executor/src/js_core/mod.rs similarity index 100% rename from rust-executor/src/js_core.rs rename to rust-executor/src/js_core/mod.rs From 13ab5fff87b9c2bd1bd5e836b50cd43da6535f1c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 11 Apr 2023 15:08:28 +0100 Subject: [PATCH 133/722] have the cli call the rust-executor for init & run --- cli/.gitignore | 3 ++- cli/Cargo.toml | 1 + cli/src/main.rs | 47 +++++++++++++++++++++++++++++++++++++++++++++-- cli/src/util.rs | 7 +++++++ 4 files changed, 55 insertions(+), 3 deletions(-) diff --git a/cli/.gitignore b/cli/.gitignore index 064254721..362c90a0b 100644 --- a/cli/.gitignore +++ b/cli/.gitignore @@ -1 +1,2 @@ -agent.json \ No newline at end of file +agent.json +schema.gql \ No newline at end of file diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 920ecf812..e63968997 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -13,6 +13,7 @@ readme = "README.md" [dependencies] ad4m-client = { path = "../rust-client", version = "0.3.4" } +rust-executor = { path = "../rust-executor" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" diff --git a/cli/src/main.rs b/cli/src/main.rs index 3ed8e7ea0..10e4ee1e4 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -110,6 +110,18 @@ enum Domain { #[command(subcommand)] command: DevFunctions, }, + Init { + #[arg(long, action)] + hc_only: Option, + #[arg(short, long, action)] + data_path: Option, + #[arg(short, long, action)] + network_bootstrap_seed: Option, + }, + Run { + #[arg(short, long, action)] + data_path: String, + }, } async fn get_ad4m_client(args: &ClapApp) -> Result { @@ -146,7 +158,32 @@ async fn main() -> Result<()> { if let Domain::Dev { command } = args.domain { dev::run(command).await?; return Ok(()); - } + }; + + if let Domain::Init { + hc_only, + data_path, + network_bootstrap_seed, + } = args.domain + { + match rust_executor::init::init( + util::option_to_bool(hc_only), + data_path, + network_bootstrap_seed, + ) { + Ok(()) => println!("Successfully initialized AD4M executor!"), + Err(e) => { + println!("Failed to initialize AD4M executor: {}", e); + std::process::exit(1); + } + }; + return Ok(()); + }; + + if let Domain::Run { data_path: _ } = args.domain { + rust_executor::run().await; + return Ok(()); + }; let ad4m_client = get_ad4m_client(&args).await?; @@ -167,7 +204,13 @@ async fn main() -> Result<()> { })?; println!("{}", log); } - Domain::Dev{ command: _ } => unreachable!(), + Domain::Dev { command: _ } => unreachable!(), + Domain::Init { + hc_only: _, + data_path: _, + network_bootstrap_seed: _, + } => unreachable!(), + Domain::Run { data_path: _ } => unreachable!(), } Ok(()) diff --git a/cli/src/util.rs b/cli/src/util.rs index feea407aa..13aa3c419 100644 --- a/cli/src/util.rs +++ b/cli/src/util.rs @@ -107,3 +107,10 @@ pub async fn string_2_perspective_snapshot( Ok(snapshot) } + +pub(crate) fn option_to_bool(opt: Option) -> bool { + match opt { + Some(val) => val, + None => false, + } +} From a5a587a6ecc1c651f35e835407081b969e21e3ba Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 11 Apr 2023 15:09:30 +0100 Subject: [PATCH 134/722] have rust-executor be a libary & implement init function --- Cargo.lock | 30 +++-- rust-executor/Cargo.toml | 5 + rust-executor/src/globals.rs | 32 ++++++ rust-executor/src/init.rs | 151 ++++++++++++++++++++++++++ rust-executor/src/{main.rs => lib.rs} | 18 ++- rust-executor/src/mainnet_seed.json | 14 +++ rust-executor/src/utils.rs | 11 ++ 7 files changed, 247 insertions(+), 14 deletions(-) create mode 100644 rust-executor/src/globals.rs create mode 100644 rust-executor/src/init.rs rename rust-executor/src/{main.rs => lib.rs} (59%) create mode 100644 rust-executor/src/mainnet_seed.json create mode 100644 rust-executor/src/utils.rs diff --git a/Cargo.lock b/Cargo.lock index f05959da6..aa5047cef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -284,6 +284,7 @@ dependencies = [ "futures", "rand 0.8.5", "regex", + "rust-executor", "rustyline", "serde", "serde_json", @@ -2757,6 +2758,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "fsevent-sys" version = "4.1.0" @@ -4913,9 +4920,9 @@ dependencies = [ [[package]] name = "os_info" -version = "3.5.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f" +checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" dependencies = [ "log", "serde", @@ -5833,11 +5840,14 @@ dependencies = [ "actix-rt", "actix-web", "argon2", + "base64 0.21.0", "chrono", + "clap", "crypto_box", "deno_core", "deno_runtime", "env_logger", + "fs_extra", "futures", "hex", "juniper", @@ -5845,8 +5855,10 @@ dependencies = [ "juniper_subscriptions", "lazy_static", "log", + "os_info", "rand 0.8.5", "secp256k1", + "semver 1.0.17", "serde", "serde_json", "tokio", @@ -5890,7 +5902,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.14", + "semver 1.0.17", ] [[package]] @@ -6148,9 +6160,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.14" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" dependencies = [ "serde", ] @@ -7193,7 +7205,7 @@ dependencies = [ "raw-window-handle", "regex", "rfd", - "semver 1.0.14", + "semver 1.0.17", "serde", "serde_json", "serde_repr", @@ -7225,7 +7237,7 @@ dependencies = [ "cargo_toml", "heck 0.4.0", "json-patch", - "semver 1.0.14", + "semver 1.0.17", "serde_json", "tauri-utils", "winres", @@ -7246,7 +7258,7 @@ dependencies = [ "proc-macro2 1.0.56", "quote 1.0.26", "regex", - "semver 1.0.14", + "semver 1.0.17", "serde", "serde_json", "sha2", @@ -7341,7 +7353,7 @@ dependencies = [ "phf 0.10.1", "proc-macro2 1.0.56", "quote 1.0.26", - "semver 1.0.14", + "semver 1.0.17", "serde", "serde_json", "serde_with", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index c916fea09..5b222f882 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -3,6 +3,9 @@ name = "rust-executor" version = "0.1.0" edition = "2021" +[lib] +name = "rust_executor" + # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] @@ -33,3 +36,5 @@ rand = "0.8.5" base64 = "0.21.0" clap = { version = "4.0.8", features = ["derive"] } fs_extra = "1.3.0" +os_info = "3.7.0" +semver = "1.0.17" diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs new file mode 100644 index 000000000..1fd87a786 --- /dev/null +++ b/rust-executor/src/globals.rs @@ -0,0 +1,32 @@ +use lazy_static::lazy_static; + +lazy_static! { + /// The current version of AD4M + pub static ref AD4M_VERSION: String = String::from("0.4.0"); +} + +/// Struct representing oldest supported version and indicator if state should be cleared if update is required +pub struct OldestVersion { + pub version: String, + pub clear_state: bool, +} + +lazy_static! { + /// The oldest version of the AD4M protocol that this executor supports + pub static ref OLDEST_VERSION: OldestVersion = OldestVersion { + version: String::from("0.4.0"), + clear_state: true, + }; +} + +/// Raw JSON data for the mainnet seed, included at buildtime from the mainnet_seed.json file +pub const MAINNET_JSON: &str = include_str!("mainnet_seed.json"); + +/// Binary data of holochain binary, included at buildtime from the holochain binary +pub const HOLOCHAIN_BIN: &[u8] = include_bytes!("../temp/holochain"); + +/// Binary data of hc binary, included at buildtime from the hc binary +pub const HC_BIN: &[u8] = include_bytes!("../temp/hc"); + +/// Binary data of swipl binary, included at buildtime from the swipl binary +pub const SWIPL_BIN: &[u8] = include_bytes!("../temp/swipl"); diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs new file mode 100644 index 000000000..6dec99864 --- /dev/null +++ b/rust-executor/src/init.rs @@ -0,0 +1,151 @@ +use log::{info, warn}; +use semver::{Version, VersionReq}; +use std::error::Error; +use std::fs; +use std::os::unix::fs::PermissionsExt; +use std::path::{Path, PathBuf}; + +use super::utils::ad4m_data_directory; +use crate::globals::{ + AD4M_VERSION, HC_BIN, HOLOCHAIN_BIN, MAINNET_JSON, OLDEST_VERSION, SWIPL_BIN, +}; + +/// Sets up the ad4m data directory and config files ready for the executor to consume +pub fn init( + hc_only: bool, + data_path: Option, + network_bootstrap_seed: Option, +) -> Result<(), Box> { + std::env::set_var("RUST_LOG", "info"); + env_logger::init(); + + //Get the default data path if none is provided + let app_data_path = match data_path { + Some(data_path) => Path::new(&data_path).to_path_buf(), + None => ad4m_data_directory(), + }; + + // last-seen-version file path + let last_seen_file = app_data_path.join("last-seen-version"); + + // Check the ad4m data directory exists + if !app_data_path.exists() { + // Create the data path + fs::create_dir_all(&app_data_path)?; + + //Create the last seen version file + fs::write(&last_seen_file, AD4M_VERSION.to_string())?; + }; + + let latest_seen_version = fs::read_to_string(&last_seen_file)?; + info!("Current last seen version is: {}", latest_seen_version); + let last_seen_version = Version::parse(&latest_seen_version)?; + let version_comparison = + format!(">={}, <={}", &OLDEST_VERSION.version, *AD4M_VERSION).to_string(); + let compare = VersionReq::parse(&version_comparison)?; + + if !compare.matches(&last_seen_version) { + // Agents old ad4m version is too old, lets clean their state + warn!("Agents old ad4m version is too old, lets clean their state"); + clean_ad4m_data(&app_data_path, OLDEST_VERSION.clear_state)?; + //Create the last seen version file + fs::write(last_seen_file, AD4M_VERSION.to_string())?; + } + + //Write the mainnet seed to the data directory + write_seed_config(&app_data_path, network_bootstrap_seed)?; + + //Create the path for binaries if it doesn't already exist + let binary_path = Path::new(&app_data_path).join("binary"); + if !Path::new(&binary_path).exists() { + fs::create_dir_all(&binary_path)?; + } + + let platform = os_info::get().os_type(); + let (holochain, hc) = match platform { + os_info::Type::Windows => ("holochain.exe", "hc.exe"), + _ => ("holochain", "hc"), + }; + + if !hc_only { + let holochain_data = HOLOCHAIN_BIN; + let holochain_target = binary_path.join(holochain); + fs::write(&holochain_target, holochain_data)?; + fs::set_permissions(holochain_target, fs::Permissions::from_mode(0o755))?; + } + + let hc_data = HC_BIN; + let hc_target = binary_path.join(hc); + fs::write(&hc_target, hc_data)?; + fs::set_permissions(hc_target, fs::Permissions::from_mode(0o755))?; + + let swipl_data = SWIPL_BIN; + let swipl_target = Path::new(&app_data_path).join("swipl"); + fs::write(swipl_target, swipl_data)?; + + Ok(()) +} + +fn write_seed_config( + app_data_path: &PathBuf, + network_bootstrap_seed: Option, +) -> Result<(), Box> { + let target_seed_path = app_data_path.join("mainnet_seed.seed"); + if network_bootstrap_seed.is_none() { + println!("No bootstrap seed supplied... using the one found in local files"); + let seed_file_data = MAINNET_JSON; + fs::write(target_seed_path, seed_file_data)?; + } else { + let seed_path = PathBuf::from(network_bootstrap_seed.unwrap()); + let seed_file_data = fs::read_to_string(seed_path)?; + fs::write(target_seed_path, seed_file_data)?; + }; + Ok(()) +} + +fn clean_ad4m_data( + app_data_path: &PathBuf, + should_clear_state: bool, +) -> Result<(), Box> { + if app_data_path.exists() { + let binary_path = app_data_path.join("binary"); + let config_path = app_data_path.join("ad4m-host-config.json"); + let bootstrap_seed_path = app_data_path.join("mainnet_seed.json"); + let holochain_data_path = app_data_path.join("ad4m").join("h"); + let languages_path = app_data_path.join("ad4m").join("languages"); + + // Delete all the data which may conflict with the new version + if fs::metadata(&binary_path).is_ok() { + fs::remove_dir_all(binary_path)?; + } + if fs::metadata(&config_path).is_ok() { + fs::remove_file(config_path)?; + } + if fs::metadata(&bootstrap_seed_path).is_ok() { + fs::remove_file(bootstrap_seed_path)?; + } + if fs::metadata(&holochain_data_path).is_ok() { + fs::remove_dir_all(holochain_data_path)?; + } + if fs::metadata(&languages_path).is_ok() { + fs::remove_dir_all(languages_path)?; + } + + if should_clear_state { + let db_path = app_data_path.join("ad4m").join("data").join("db.json"); + let languages_path = app_data_path.join("ad4m").join("languages"); + let perspective_path = app_data_path.join("ad4m").join("perspectives.json"); + + if fs::metadata(db_path).is_ok() { + fs::remove_file(db_path)?; + } + if fs::metadata(languages_path).is_ok() { + fs::remove_dir_all(languages_path)?; + } + if fs::metadata(perspective_path).is_ok() { + fs::remove_file(perspective_path)?; + } + }; + } + Ok(()) +} diff --git a/rust-executor/src/main.rs b/rust-executor/src/lib.rs similarity index 59% rename from rust-executor/src/main.rs rename to rust-executor/src/lib.rs index c00a4ee95..b4e961874 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/lib.rs @@ -1,15 +1,19 @@ +mod globals; mod graphql; mod js_core; +mod utils; mod wallet; +pub mod init; + +use log::{error, info}; use std::env; use graphql::start_server; use js_core::JsCore; -use log::{error, info}; -#[tokio::main] -async fn main() { +/// Runs the GraphQL server and the deno core runtime +pub async fn run() { env::set_var("RUST_LOG", "info"); env_logger::init(); @@ -20,9 +24,13 @@ async fn main() { info!("Starting GraphQL..."); match start_server(js_core_handle).await { - Ok(_) => {} + Ok(_) => { + info!("GraphQL server stopped."); + std::process::exit(0); + } Err(err) => { - error!("GraphQL server failed with error: {}", err); + error!("GraphQL server stopped with error: {}", err); + std::process::exit(1); } } } diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json new file mode 100644 index 000000000..b851c4a80 --- /dev/null +++ b/rust-executor/src/mainnet_seed.json @@ -0,0 +1,14 @@ +{ + "trustedAgents": [ + "did:key:zQ3shh5eZoXQAbHwUwyypdEd4knEpsaUnLwrjSxjNmHMVPBqQ", + "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" + ], + "knownLinkLanguages": [ + "QmdTbh2uSJj62XFmDzRHTRr65bk6p8aHBQFQ6ZDpQfxFpc" + ], + "directMessageLanguage": "QmXR4MZqxqdPmSnCNF24f82EkvahwgXW3FKzGWPZrdC8qb", + "agentLanguage": "QmVYQxroapbRebjjbZnjKSTQBsqvk5sEBCcyiEKyBRXKLo", + "perspectiveLanguage": "QmYRCZkyZJ7axzPcNCizgEqkjXwvC2nu2UR1M31geggx4W", + "neighbourhoodLanguage": "QmNLtgDrjri7DzqDohmQUKJzr5fXVAN95K4VhMr9GhM9ia", + "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar http = require('http');\nvar https = require('https');\nvar url = require('url');\nvar stream = require('stream');\nvar assert = require('assert');\nvar tty = require('tty');\nvar util = require('util');\nvar fs = require('fs');\nvar net = require('net');\nvar zlib = require('zlib');\nvar os = require('os');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar http__default = /*#__PURE__*/_interopDefaultLegacy(http);\nvar https__default = /*#__PURE__*/_interopDefaultLegacy(https);\nvar url__default = /*#__PURE__*/_interopDefaultLegacy(url);\nvar stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);\nvar assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);\nvar tty__default = /*#__PURE__*/_interopDefaultLegacy(tty);\nvar util__default = /*#__PURE__*/_interopDefaultLegacy(util);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\nvar net__default = /*#__PURE__*/_interopDefaultLegacy(net);\nvar zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);\nvar os__default = /*#__PURE__*/_interopDefaultLegacy(os);\n\nvar bind = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer$1(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString$1(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction$1(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction$1(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nvar utils = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer$1,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString$1,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction$1,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nvar buildURL = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nvar InterceptorManager_1 = InterceptorManager;\n\nvar normalizeHeaderName = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nvar enhanceError = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n\nvar transitional = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nvar createError = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nvar settle = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\nvar cookies = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nvar isAbsoluteURL = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nvar combineURLs = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nvar buildFullPath = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\nvar isURLSameOrigin = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nvar Cancel_1 = Cancel;\n\nvar xhr = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional$1 = config.transitional || transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nvar ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\nvar debug$1 = createCommonjsModule(function (module, exports) {\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = ms;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n});\n\nvar browser = createCommonjsModule(function (module, exports) {\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n});\n\nvar node = createCommonjsModule(function (module, exports) {\n/**\n * Module dependencies.\n */\n\n\n\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util__default[\"default\"].deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')();\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty__default[\"default\"].isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util__default[\"default\"].format.apply(util__default[\"default\"], arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty__default[\"default\"].WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = fs__default[\"default\"];\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = net__default[\"default\"];\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n});\n\nvar src = createCommonjsModule(function (module) {\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = browser;\n} else {\n module.exports = node;\n}\n});\n\nvar debug;\n\nvar debug_1 = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = src(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n\nvar URL = url__default[\"default\"].URL;\n\n\nvar Writable = stream__default[\"default\"].Writable;\n\n\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url__default[\"default\"].format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url__default[\"default\"].parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url__default[\"default\"].format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url__default[\"default\"].resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug_1(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url__default[\"default\"].parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = url__default[\"default\"].parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert__default[\"default\"].equal(options.protocol, protocol, \"protocol mismatch\");\n debug_1(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert__default[\"default\"](isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nvar followRedirects = wrap({ http: http__default[\"default\"], https: https__default[\"default\"] });\nvar wrap_1 = wrap;\nfollowRedirects.wrap = wrap_1;\n\nvar data = {\n \"version\": \"0.26.1\"\n};\n\nvar httpFollow = followRedirects.http;\nvar httpsFollow = followRedirects.https;\n\n\nvar VERSION$1 = data.version;\n\n\n\n\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nvar http_1 = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION$1;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url__default[\"default\"].parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url__default[\"default\"].parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https__default[\"default\"] : http__default[\"default\"];\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib__default[\"default\"].createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional$1 = config.transitional || transitional;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = xhr;\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = http_1;\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitional,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults_1 = defaults;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nvar transformData = function transformData(data, headers, fns) {\n var context = this || defaults_1;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n\nvar isCancel = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel_1('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nvar dispatchRequest = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults_1.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nvar mergeConfig = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n\nvar VERSION = data.version;\n\nvar validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nvar validator = {\n assertOptions: assertOptions,\n validators: validators$1\n};\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_1(),\n response: new InterceptorManager_1()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nvar Axios_1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel_1(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nvar CancelToken_1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nvar spread = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nvar isAxiosError = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios_1(defaultConfig);\n var instance = bind(Axios_1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios_1.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios$1 = createInstance(defaults_1);\n\n// Expose Axios class to allow class inheritance\naxios$1.Axios = Axios_1;\n\n// Expose Cancel & CancelToken\naxios$1.Cancel = Cancel_1;\naxios$1.CancelToken = CancelToken_1;\naxios$1.isCancel = isCancel;\naxios$1.VERSION = data.version;\n\n// Expose all/spread\naxios$1.all = function all(promises) {\n return Promise.all(promises);\n};\naxios$1.spread = spread;\n\n// Expose isAxiosError\naxios$1.isAxiosError = isAxiosError;\n\nvar axios_1 = axios$1;\n\n// Allow use of default import syntax in TypeScript\nvar _default = axios$1;\naxios_1.default = _default;\n\nvar axios = axios_1;\n\ncreateCommonjsModule(function (module) {\n// Generated by CoffeeScript 2.5.1\n(function() {\n // This file's name is set up in such a way that it will always show up first in\n // the list of files given to coffee --join, so that the other files can assume\n // that XMLHttpRequestEventTarget was already defined.\n\n // The DOM EventTarget subclass used by XMLHttpRequest.\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n var InvalidStateError, NetworkError, ProgressEvent, SecurityError, SyntaxError, XMLHttpRequest, XMLHttpRequestEventTarget, XMLHttpRequestUpload, http, https, os, url;\n\n XMLHttpRequestEventTarget = (function() {\n class XMLHttpRequestEventTarget {\n // @private\n // This is an abstract class and should not be instantiated directly.\n constructor() {\n this.onloadstart = null;\n this.onprogress = null;\n this.onabort = null;\n this.onerror = null;\n this.onload = null;\n this.ontimeout = null;\n this.onloadend = null;\n this._listeners = {};\n }\n\n // Adds a new-style listener for one of the XHR events.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#events\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener function that will be called when\n // the event fires\n // @return {undefined} undefined\n addEventListener(eventType, listener) {\n var base;\n eventType = eventType.toLowerCase();\n (base = this._listeners)[eventType] || (base[eventType] = []);\n this._listeners[eventType].push(listener);\n return void 0;\n }\n\n // Removes an event listener added by calling addEventListener.\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener the value passed in a previous\n // call to addEventListener.\n // @return {undefined} undefined\n removeEventListener(eventType, listener) {\n var index;\n eventType = eventType.toLowerCase();\n if (this._listeners[eventType]) {\n index = this._listeners[eventType].indexOf(listener);\n if (index !== -1) {\n this._listeners[eventType].splice(index, 1);\n }\n }\n return void 0;\n }\n\n // Calls all the listeners for an event.\n\n // @param {ProgressEvent} event the event to be dispatched\n // @return {undefined} undefined\n dispatchEvent(event) {\n var eventType, j, len, listener, listeners;\n event.currentTarget = event.target = this;\n eventType = event.type;\n if (listeners = this._listeners[eventType]) {\n for (j = 0, len = listeners.length; j < len; j++) {\n listener = listeners[j];\n listener.call(this, event);\n }\n }\n if (listener = this[`on${eventType}`]) {\n listener.call(this, event);\n }\n return void 0;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadstart' event\n XMLHttpRequestEventTarget.prototype.onloadstart = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'progress' event\n XMLHttpRequestEventTarget.prototype.onprogress = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'abort' event\n XMLHttpRequestEventTarget.prototype.onabort = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'error' event\n XMLHttpRequestEventTarget.prototype.onerror = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'load' event\n XMLHttpRequestEventTarget.prototype.onload = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'timeout' event\n XMLHttpRequestEventTarget.prototype.ontimeout = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadend' event\n XMLHttpRequestEventTarget.prototype.onloadend = null;\n\n return XMLHttpRequestEventTarget;\n\n }).call(this);\n\n // This file's name is set up in such a way that it will always show up second\n // in the list of files given to coffee --join, so it can use the\n // XMLHttpRequestEventTarget definition and so that the other files can assume\n // that XMLHttpRequest was already defined.\n http = http__default[\"default\"];\n\n https = https__default[\"default\"];\n\n os = os__default[\"default\"];\n\n url = url__default[\"default\"];\n\n XMLHttpRequest = (function() {\n // The ECMAScript HTTP API.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#introduction\n class XMLHttpRequest extends XMLHttpRequestEventTarget {\n // Creates a new request.\n\n // @param {Object} options one or more of the options below\n // @option options {Boolean} anon if true, the request's anonymous flag\n // will be set\n // @see http://www.w3.org/TR/XMLHttpRequest/#constructors\n // @see http://www.w3.org/TR/XMLHttpRequest/#anonymous-flag\n constructor(options) {\n super();\n this.onreadystatechange = null;\n this._anonymous = options && options.anon;\n this.readyState = XMLHttpRequest.UNSENT;\n this.response = null;\n this.responseText = '';\n this.responseType = '';\n this.responseURL = '';\n this.status = 0;\n this.statusText = '';\n this.timeout = 0;\n this.upload = new XMLHttpRequestUpload(this);\n this._method = null; // String\n this._url = null; // Return value of url.parse()\n this._sync = false;\n this._headers = null; // Object\n this._loweredHeaders = null; // Object\n this._mimeOverride = null;\n this._request = null; // http.ClientRequest\n this._response = null; // http.ClientResponse\n this._responseParts = null; // Array\n this._responseHeaders = null; // Object\n this._aborting = null;\n this._error = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n }\n\n // Sets the XHR's method, URL, synchronous flag, and authentication params.\n\n // @param {String} method the HTTP method to be used\n // @param {String} url the URL that the request will be made to\n // @param {?Boolean} async if false, the XHR should be processed\n // synchronously; true by default\n // @param {?String} user the user credential to be used in HTTP basic\n // authentication\n // @param {?String} password the password credential to be used in HTTP basic\n // authentication\n // @return {undefined} undefined\n // @throw {SecurityError} method is not one of the allowed methods\n // @throw {SyntaxError} urlString is not a valid URL\n // @throw {Error} the URL contains an unsupported protocol; the supported\n // protocols are file, http and https\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n open(method, url, async, user, password) {\n var xhrUrl;\n method = method.toUpperCase();\n if (method in this._restrictedMethods) {\n throw new SecurityError(`HTTP method ${method} is not allowed in XHR`);\n }\n xhrUrl = this._parseUrl(url);\n if (async === void 0) {\n async = true;\n }\n switch (this.readyState) {\n case XMLHttpRequest.UNSENT:\n case XMLHttpRequest.OPENED:\n case XMLHttpRequest.DONE:\n break;\n case XMLHttpRequest.HEADERS_RECEIVED:\n case XMLHttpRequest.LOADING:\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n return void 0;\n }\n\n // Appends a header to the list of author request headers.\n\n // @param {String} name the HTTP header name\n // @param {String} value the HTTP header value\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @throw {SyntaxError} name is not a valid HTTP header name or value is not\n // a valid HTTP header value\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n setRequestHeader(name, value) {\n var loweredName;\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec\\-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(`Refused to set unsafe header \\\"${name}\\\"`);\n return void 0;\n }\n value = value.toString();\n if (loweredName in this._loweredHeaders) {\n // Combine value with the existing header value.\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + ', ' + value;\n } else {\n // New header.\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n return void 0;\n }\n\n // Initiates the request.\n\n // @param {?String, ?ArrayBufferView} data the data to be sent; ignored for\n // GET and HEAD requests\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n send(data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n if (this._request) {\n throw new InvalidStateError(\"send() already called\");\n }\n switch (this._url.protocol) {\n case 'file:':\n this._sendFile(data);\n break;\n case 'http:':\n case 'https:':\n this._sendHttp(data);\n break;\n default:\n throw new NetworkError(`Unsupported protocol ${this._url.protocol}`);\n }\n return void 0;\n }\n\n // Cancels the network activity performed by this request.\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method\n abort() {\n if (!this._request) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n return void 0;\n }\n\n // Returns a header value in the HTTP response for this XHR.\n\n // @param {String} name case-insensitive HTTP header name\n // @return {?String} value the value of the header whose name matches the\n // given name, or null if there is no such header\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n getResponseHeader(name) {\n var loweredName;\n if (!this._responseHeaders) {\n return null;\n }\n loweredName = name.toLowerCase();\n if (loweredName in this._responseHeaders) {\n return this._responseHeaders[loweredName];\n } else {\n return null;\n }\n }\n\n // Returns all the HTTP headers in this XHR's response.\n\n // @return {String} header lines separated by CR LF, where each header line\n // has the name and value separated by a \": \" (colon, space); the empty\n // string is returned if the headers are not available\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n getAllResponseHeaders() {\n var lines, name, value;\n if (!this._responseHeaders) {\n return '';\n }\n lines = (function() {\n var ref, results;\n ref = this._responseHeaders;\n results = [];\n for (name in ref) {\n value = ref[name];\n results.push(`${name}: ${value}`);\n }\n return results;\n }).call(this);\n return lines.join(\"\\r\\n\");\n }\n\n // Overrides the Content-Type\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-overridemimetype()-method\n overrideMimeType(newMimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new InvalidStateError(\"overrideMimeType() not allowed in LOADING or DONE\");\n }\n this._mimeOverride = newMimeType.toLowerCase();\n return void 0;\n }\n\n // Network configuration not exposed in the XHR API.\n\n // Although the XMLHttpRequest specification calls itself \"ECMAScript HTTP\",\n // it assumes that requests are always performed in the context of a browser\n // application, where some network parameters are set by the browser user and\n // should not be modified by Web applications. This API provides access to\n // these network parameters.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the value for the nodejsHttpAgent\n // property (the agent used for HTTP requests)\n // @option options {?https.Agent} httpsAgent the value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n nodejsSet(options) {\n var baseUrl, parsedUrl;\n if ('httpAgent' in options) {\n this.nodejsHttpAgent = options.httpAgent;\n }\n if ('httpsAgent' in options) {\n this.nodejsHttpsAgent = options.httpsAgent;\n }\n if ('baseUrl' in options) {\n baseUrl = options.baseUrl;\n if (baseUrl !== null) {\n parsedUrl = url.parse(baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = baseUrl;\n }\n return void 0;\n }\n\n // Default settings for the network configuration not exposed in the XHR API.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the default value for the\n // nodejsHttpAgent property (the agent used for HTTP requests)\n // @option options {https.Agent} httpsAgent the default value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n // @see XMLHttpRequest.nodejsSet\n static nodejsSet(options) {\n // \"this\" will be set to XMLHttpRequest.prototype, so the instance nodejsSet\n // operates on default property values.\n XMLHttpRequest.prototype.nodejsSet(options);\n return void 0;\n }\n\n // Sets the readyState property and fires the readystatechange event.\n\n // @private\n // @param {Number} newReadyState the new value of readyState\n // @return {undefined} undefined\n _setReadyState(newReadyState) {\n var event;\n this.readyState = newReadyState;\n event = new ProgressEvent('readystatechange');\n this.dispatchEvent(event);\n return void 0;\n }\n\n // XMLHttpRequest#send() implementation for the file: protocol.\n\n // @private\n _sendFile() {\n if (this._url.method !== 'GET') {\n throw new NetworkError('The file protocol only supports GET');\n }\n throw new Error(\"Protocol file: not implemented\");\n }\n\n // XMLHttpRequest#send() implementation for the http: and https: protocols.\n\n // @private\n // This method sets the instance variables and calls _sendHxxpRequest(), which\n // is responsible for building a node.js request and firing it off. The code\n // in _sendHxxpRequest() is separated off so it can be reused when handling\n // redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHttp(data) {\n if (this._sync) {\n throw new Error(\"Synchronous XHR processing not implemented\");\n }\n if ((data != null) && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(`Discarding entity body for ${this._method} requests`);\n data = null;\n } else {\n // Send Content-Length: 0\n data || (data = '');\n }\n // NOTE: this is called before finalizeHeaders so that the uploader can\n // figure out Content-Length and Content-Type.\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return void 0;\n }\n\n // Sets up and fires off a HTTP/HTTPS request using the node.js API.\n\n // @private\n // This method contains the bulk of the XMLHttpRequest#send() implementation,\n // and is also used to issue new HTTP requests when handling HTTP redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHxxpRequest() {\n var agent, hxxp, request;\n if (this._url.protocol === 'http:') {\n hxxp = http;\n agent = this.nodejsHttpAgent;\n } else {\n hxxp = https;\n agent = this.nodejsHttpsAgent;\n }\n request = hxxp.request({\n hostname: this._url.hostname,\n port: this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, () => {\n return this._onHttpTimeout(request);\n });\n }\n request.on('response', (response) => {\n return this._onHttpResponse(request, response);\n });\n request.on('error', (error) => {\n return this._onHttpRequestError(request, error);\n });\n this.upload._startUpload(request);\n if (this._request === request) { // An http error might have already fired.\n this._dispatchProgress('loadstart');\n }\n return void 0;\n }\n\n // Fills in the restricted HTTP headers with default values.\n\n // This is called right before the HTTP request is sent off.\n\n // @private\n // @return {undefined} undefined\n _finalizeHeaders() {\n var base;\n this._headers['Connection'] = 'keep-alive';\n this._headers['Host'] = this._url.host;\n if (this._anonymous) {\n this._headers['Referer'] = 'about:blank';\n }\n (base = this._headers)['User-Agent'] || (base['User-Agent'] = this._userAgent);\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n return void 0;\n }\n\n // Called when the headers of an HTTP response have been received.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // produced this response\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // passed to\n _onHttpResponse(request, response) {\n var lengthString;\n if (this._request !== request) {\n return;\n }\n // Transparent redirection handling.\n switch (response.statusCode) {\n case 301:\n case 302:\n case 303:\n case 307:\n case 308:\n this._url = this._parseUrl(response.headers['location']);\n this._method = 'GET';\n if ('content-type' in this._loweredHeaders) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n // XMLHttpRequestUpload#_finalizeHeaders() sets Content-Type directly.\n if ('Content-Type' in this._headers) {\n delete this._headers['Content-Type'];\n }\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', (data) => {\n return this._onHttpResponseData(response, data);\n });\n this._response.on('end', () => {\n return this._onHttpResponseEnd(response);\n });\n this._response.on('close', () => {\n return this._onHttpResponseClose(response);\n });\n this.responseURL = this._url.href.split('#')[0];\n this.status = this._response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n if (lengthString = this._responseHeaders['content-length']) {\n this._totalBytes = parseInt(lengthString);\n this._lengthComputable = true;\n } else {\n this._lengthComputable = false;\n }\n return this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n }\n\n // Called when some data has been received on a HTTP connection.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n // @param {String, Buffer} data the data that has been received\n _onHttpResponseData(response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(data);\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n return this._dispatchProgress('progress');\n }\n\n // Called when the HTTP request finished processing.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseEnd(response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the underlying HTTP connection was closed prematurely.\n\n // If this method is called, it will be called after or instead of\n // onHttpResponseEnd.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseClose(response) {\n var request;\n if (this._response !== response) {\n return;\n }\n request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the timeout set on the HTTP socket expires.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n _onHttpTimeout(request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n return this._dispatchProgress('loadend');\n }\n\n // Called when something wrong happens on the HTTP socket\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n // @param {Error} error emitted exception\n _onHttpRequestError(request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Fires an XHR progress event.\n\n // @private\n // @param {String} eventType one of the XHR progress event types, such as\n // 'load' and 'progress'\n _dispatchProgress(eventType) {\n var event;\n event = new ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n return void 0;\n }\n\n // Sets up the XHR to reflect the fact that an error has occurred.\n\n // The possible errors are a network error, a timeout, or an abort.\n\n // @private\n _setError() {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n return void 0;\n }\n\n // Parses a request URL string.\n\n // @private\n // This method is a thin wrapper around url.parse() that normalizes HTTP\n // user/password credentials. It is used to parse the URL string passed to\n // XMLHttpRequest#open() and the URLs in the Location headers of HTTP redirect\n // responses.\n\n // @param {String} urlString the URL to be parsed\n // @return {Object} parsed URL\n _parseUrl(urlString) {\n var absoluteUrlString, index, password, user, xhrUrl;\n if (this.nodejsBaseUrl === null) {\n absoluteUrlString = urlString;\n } else {\n absoluteUrlString = url.resolve(this.nodejsBaseUrl, urlString);\n }\n xhrUrl = url.parse(absoluteUrlString, false, true);\n xhrUrl.hash = null;\n if (xhrUrl.auth && ((typeof user !== \"undefined\" && user !== null) || (typeof password !== \"undefined\" && password !== null))) {\n index = xhrUrl.auth.indexOf(':');\n if (index === -1) {\n if (!user) {\n user = xhrUrl.auth;\n }\n } else {\n if (!user) {\n user = xhrUrl.substring(0, index);\n }\n if (!password) {\n password = xhrUrl.substring(index + 1);\n }\n }\n }\n if (user || password) {\n xhrUrl.auth = `${user}:${password}`;\n }\n return xhrUrl;\n }\n\n // Reads the headers from a node.js ClientResponse instance.\n\n // @private\n // @param {http.ClientResponse} response the response whose headers will be\n // imported into this XMLHttpRequest's state\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n _parseResponseHeaders(response) {\n var loweredName, name, ref, value;\n this._responseHeaders = {};\n ref = response.headers;\n for (name in ref) {\n value = ref[name];\n loweredName = name.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n if (this._mimeOverride !== null && loweredName === 'content-type') {\n value = this._mimeOverride;\n }\n this._responseHeaders[loweredName] = value;\n }\n if (this._mimeOverride !== null && !('content-type' in this._responseHeaders)) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n return void 0;\n }\n\n // Sets the response and responseText properties when an XHR completes.\n\n // @private\n // @return {undefined} undefined\n _parseResponse() {\n var arrayBuffer, buffer, i, j, ref, view;\n if (Buffer.concat) {\n buffer = Buffer.concat(this._responseParts);\n } else {\n // node 0.6\n buffer = this._concatBuffers(this._responseParts);\n }\n this._responseParts = null;\n switch (this.responseType) {\n case 'text':\n this._parseTextResponse(buffer);\n break;\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n } catch (error1) {\n this.response = null;\n }\n break;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n break;\n case 'arraybuffer':\n this.responseText = null;\n arrayBuffer = new ArrayBuffer(buffer.length);\n view = new Uint8Array(arrayBuffer);\n for (i = j = 0, ref = buffer.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n break;\n default:\n // TODO(pwnall): content-base detection\n this._parseTextResponse(buffer);\n }\n return void 0;\n }\n\n // Sets response and responseText for a 'text' response type.\n\n // @private\n // @param {Buffer} buffer the node.js Buffer containing the binary response\n // @return {undefined} undefined\n _parseTextResponse(buffer) {\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n } catch (error1) {\n // Unknown encoding.\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n return void 0;\n }\n\n // Figures out the string encoding of the XHR's response.\n\n // This is called to determine the encoding when responseText is set.\n\n // @private\n // @return {String} a string encoding, e.g. 'utf-8'\n _parseResponseEncoding() {\n var contentType, match;\n if (contentType = this._responseHeaders['content-type']) {\n if (match = /\\;\\s*charset\\=(.*)$/.exec(contentType)) {\n return match[1];\n }\n }\n return 'utf-8';\n }\n\n // Buffer.concat implementation for node 0.6.\n\n // @private\n // @param {Array} buffers the buffers whose contents will be merged\n // @return {Buffer} same as Buffer.concat(buffers) in node 0.8 and above\n _concatBuffers(buffers) {\n var buffer, j, k, len, len1, length, target;\n if (buffers.length === 0) {\n return Buffer.alloc(0);\n }\n if (buffers.length === 1) {\n return buffers[0];\n }\n length = 0;\n for (j = 0, len = buffers.length; j < len; j++) {\n buffer = buffers[j];\n length += buffer.length;\n }\n target = Buffer.alloc(length);\n length = 0;\n for (k = 0, len1 = buffers.length; k < len1; k++) {\n buffer = buffers[k];\n buffer.copy(target, length);\n length += buffer.length;\n }\n return target;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler for the\n // 'readystatechange' event\n XMLHttpRequest.prototype.onreadystatechange = null;\n\n // @property {Number} the current state of the XHR object\n // @see http://www.w3.org/TR/XMLHttpRequest/#states\n XMLHttpRequest.prototype.readyState = null;\n\n // @property {String, ArrayBuffer, Buffer, Object} processed XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-response-attribute\n XMLHttpRequest.prototype.response = null;\n\n // @property {String} response string, if responseType is '' or 'text'\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute\n XMLHttpRequest.prototype.responseText = null;\n\n // @property {String} sets the parsing method for the XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetype-attribute\n XMLHttpRequest.prototype.responseType = null;\n\n // @property {Number} the HTTP\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute\n XMLHttpRequest.prototype.status = null;\n\n // @property {Number} milliseconds to wait for the request to complete\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute\n XMLHttpRequest.prototype.timeout = null;\n\n // @property {XMLHttpRequestUpload} the associated upload information\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute\n XMLHttpRequest.prototype.upload = null;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.prototype.UNSENT = 0;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.UNSENT = 0;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.prototype.OPENED = 1;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.OPENED = 1;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.prototype.HEADERS_RECEIVED = 2;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.prototype.LOADING = 3;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.LOADING = 3;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.prototype.DONE = 4;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.DONE = 4;\n\n // @property {http.Agent} the agent option passed to HTTP requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\n\n // @property {https.Agent} the agent option passed to HTTPS requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpsAgent = https.globalAgent;\n\n // @property {String} the base URL that relative URLs get resolved to\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // Its browser equivalent is the base URL of the document associated with the\n // Window object. It is a stable node-xhr2 API provided for libraries such as\n // Angular Universal.\n XMLHttpRequest.prototype.nodejsBaseUrl = null;\n\n // HTTP methods that are disallowed in the XHR spec.\n\n // @private\n // @see Step 6 in http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n XMLHttpRequest.prototype._restrictedMethods = {\n CONNECT: true,\n TRACE: true,\n TRACK: true\n };\n\n // HTTP request headers that are disallowed in the XHR spec.\n\n // @private\n // @see Step 5 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n XMLHttpRequest.prototype._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true\n };\n\n // HTTP response headers that should not be exposed according to the XHR spec.\n\n // @private\n // @see Step 3 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n XMLHttpRequest.prototype._privateHeaders = {\n 'set-cookie': true,\n 'set-cookie2': true\n };\n\n // The default value of the User-Agent header.\n XMLHttpRequest.prototype._userAgent = `Mozilla/5.0 (${os.type()} ${os.arch()}) ` + `node.js/${process.versions.node} v8/${process.versions.v8}`;\n\n return XMLHttpRequest;\n\n }).call(this);\n\n // XMLHttpRequest is the result of require('node-xhr2').\n module.exports = XMLHttpRequest;\n\n // Make node-xhr2 work as a drop-in replacement for libraries that promote the\n // following usage pattern:\n // var XMLHttpRequest = require('xhr-library-name').XMLHttpRequest\n XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;\n\n // This file defines the custom errors used in the XMLHttpRequest specification.\n\n // Thrown if the XHR security policy is violated.\n SecurityError = class SecurityError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if the XHR security policy is violated.\n XMLHttpRequest.SecurityError = SecurityError;\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {};\n\n XMLHttpRequest.InvalidStateError = InvalidStateError;\n\n // Thrown if there is a problem with the URL passed to the XHR.\n NetworkError = class NetworkError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if parsing URLs errors out.\n XMLHttpRequest.SyntaxError = SyntaxError;\n\n SyntaxError = class SyntaxError extends Error {\n // @private:\n constructor() {\n super();\n }\n\n };\n\n ProgressEvent = (function() {\n // http://xhr.spec.whatwg.org/#interface-progressevent\n class ProgressEvent {\n // Creates a new event.\n\n // @param {String} type the event type, e.g. 'readystatechange'; must be\n // lowercased\n constructor(type) {\n this.type = type;\n this.target = null;\n this.currentTarget = null;\n this.lengthComputable = false;\n this.loaded = 0;\n this.total = 0;\n }\n\n }\n // Getting the time from the OS is expensive, skip on that for now.\n // @timeStamp = Date.now()\n\n // @property {Boolean} for compatibility with DOM events\n ProgressEvent.prototype.bubbles = false;\n\n // @property {Boolean} for fompatibility with DOM events\n ProgressEvent.prototype.cancelable = false;\n\n // @property {XMLHttpRequest} the request that caused this event\n ProgressEvent.prototype.target = null;\n\n // @property {Number} number of bytes that have already been downloaded or\n // uploaded\n ProgressEvent.prototype.loaded = null;\n\n // @property {Boolean} true if the Content-Length response header is available\n // and the value of the event's total property is meaningful\n ProgressEvent.prototype.lengthComputable = null;\n\n // @property {Number} number of bytes that will be downloaded or uploaded by\n // the request that fired the event\n ProgressEvent.prototype.total = null;\n\n return ProgressEvent;\n\n }).call(this);\n\n // The XHR spec exports the ProgressEvent constructor.\n XMLHttpRequest.ProgressEvent = ProgressEvent;\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n XMLHttpRequestUpload = class XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n // @private\n // @param {XMLHttpRequest} the XMLHttpRequest that this upload object is\n // associated with\n constructor(request) {\n super();\n this._request = request;\n this._reset();\n }\n\n // Sets up this Upload to handle a new request.\n\n // @private\n // @return {undefined} undefined\n _reset() {\n this._contentType = null;\n this._body = null;\n return void 0;\n }\n\n // Implements the upload-related part of the send() XHR specification.\n\n // @private\n // @param {?String, ?Buffer, ?ArrayBufferView} data the argument passed to\n // XMLHttpRequest#send()\n // @return {undefined} undefined\n // @see step 4 of http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n _setData(data) {\n var body, i, j, k, offset, ref, ref1, view;\n if (typeof data === 'undefined' || data === null) {\n return;\n }\n if (typeof data === 'string') {\n // DOMString\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = Buffer.from(data, 'utf8');\n } else if (Buffer.isBuffer(data)) {\n // node.js Buffer\n this._body = data;\n } else if (data instanceof ArrayBuffer) {\n // ArrayBuffer arguments were supported in an old revision of the spec.\n body = Buffer.alloc(data.byteLength);\n view = new Uint8Array(data);\n for (i = j = 0, ref = data.byteLength; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n body[i] = view[i];\n }\n this._body = body;\n } else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n // ArrayBufferView\n body = Buffer.alloc(data.byteLength);\n offset = data.byteOffset;\n view = new Uint8Array(data.buffer);\n for (i = k = 0, ref1 = data.byteLength; (0 <= ref1 ? k < ref1 : k > ref1); i = 0 <= ref1 ? ++k : --k) {\n body[i] = view[i + offset];\n }\n this._body = body;\n } else {\n // NOTE: diverging from the XHR specification of coercing everything else\n // to Strings via toString() because that behavior masks bugs and is\n // rarely useful\n throw new Error(`Unsupported send() data ${data}`);\n }\n return void 0;\n }\n\n // Updates the HTTP headers right before the request is sent.\n\n // This is used to set data-dependent headers such as Content-Length and\n // Content-Type.\n\n // @private\n // @param {Object} headers the HTTP headers to be sent\n // @param {Object} loweredHeaders maps lowercased HTTP header\n // names (e.g., 'content-type') to the actual names used in the headers\n // parameter (e.g., 'Content-Type')\n // @return {undefined} undefined\n _finalizeHeaders(headers, loweredHeaders) {\n if (this._contentType) {\n if (!('content-type' in loweredHeaders)) {\n headers['Content-Type'] = this._contentType;\n }\n }\n if (this._body) {\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n headers['Content-Length'] = this._body.length.toString();\n }\n return void 0;\n }\n\n // Starts sending the HTTP request data.\n\n // @private\n // @param {http.ClientRequest} request the HTTP request\n // @return {undefined} undefined\n _startUpload(request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n return void 0;\n }\n\n };\n\n // Export the XMLHttpRequestUpload constructor.\n XMLHttpRequest.XMLHttpRequestUpload = XMLHttpRequestUpload;\n\n}).call(commonjsGlobal);\n});\n\nclass LangAdapter {\n constructor(context) {\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw (e);\n }\n let languageSource;\n try {\n const getLanguageSource = await axios.get(presignedUrl);\n languageSource = getLanguageSource.data;\n }\n catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw (e);\n }\n return languageSource;\n }\n}\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CloudflarePutAdapter_agent, _CloudflarePutAdapter_IPFS;\nclass CloudflarePutAdapter {\n constructor(context) {\n _CloudflarePutAdapter_agent.set(this, void 0);\n _CloudflarePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet(this, _CloudflarePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet(this, _CloudflarePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet(this, _CloudflarePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet(this, _CloudflarePutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n //Build the key value object for the meta object\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n // Content of the new object.\n value: JSON.stringify(expression),\n };\n //Save the meta information to the KV store\n const httpsAgent = new https__default[\"default\"].Agent({\n rejectUnauthorized: false\n });\n try {\n const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent });\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n //Build the key value object for the language bundle\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString(),\n };\n //Save the language bundle to the KV store\n const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent });\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n}\n_CloudflarePutAdapter_agent = new WeakMap(), _CloudflarePutAdapter_IPFS = new WeakMap();\n\nclass Adapter {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axios.get(presignedUrl);\n metaObject = getMetaObject.data;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\n\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports.PROXY_URL = PROXY_URL;\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" +} \ No newline at end of file diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs new file mode 100644 index 000000000..302a93653 --- /dev/null +++ b/rust-executor/src/utils.rs @@ -0,0 +1,11 @@ +use std::env::var_os; +use std::path::{Path, PathBuf}; + +pub(crate) fn ad4m_data_directory() -> PathBuf { + let mut ad4m_dir = var_os("HOME") + .unwrap_or_else(|| panic!("Failed to get home directory")) + .into_string() + .unwrap_or_else(|_| panic!("Failed to convert HOME env variable to string")); + ad4m_dir.push_str("/.ad4m"); + Path::new(&ad4m_dir).to_path_buf() +} From 4909ec7962360b1e18ff1f76c61937ac32834f22 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 11 Apr 2023 15:10:29 +0100 Subject: [PATCH 135/722] fix memory errors --- rust-executor/src/init.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 6dec99864..8089c488f 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -136,13 +136,13 @@ fn clean_ad4m_data( let languages_path = app_data_path.join("ad4m").join("languages"); let perspective_path = app_data_path.join("ad4m").join("perspectives.json"); - if fs::metadata(db_path).is_ok() { + if fs::metadata(&db_path).is_ok() { fs::remove_file(db_path)?; } - if fs::metadata(languages_path).is_ok() { + if fs::metadata(&languages_path).is_ok() { fs::remove_dir_all(languages_path)?; } - if fs::metadata(perspective_path).is_ok() { + if fs::metadata(&perspective_path).is_ok() { fs::remove_file(perspective_path)?; } }; From b562b38257e398e2450dbdfbf61c036e5e8e66e0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 11 Apr 2023 15:30:00 +0100 Subject: [PATCH 136/722] add run command arguments to cli --- cli/src/main.rs | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index 10e4ee1e4..c69d33e99 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -121,6 +121,26 @@ enum Domain { Run { #[arg(short, long, action)] data_path: String, + #[arg(short, long, action)] + language_language_only: bool, + #[arg(short, long, action)] + run_dapp_server: bool, + #[arg(short, long, action)] + gql_port: Option, + #[arg(long, action)] + hc_admin_port: Option, + #[arg(long, action)] + hc_app_port: Option, + #[arg(short, long, action)] + ipfs_swarm_port: Option, + #[arg(short, long, action)] + connect_holochain: bool, + #[arg(short, long, action)] + admin_credential: Option, + #[arg(long, action)] + swip_path: Option, + #[arg(long, action)] + swipl_home_path: Option, }, } @@ -180,7 +200,20 @@ async fn main() -> Result<()> { return Ok(()); }; - if let Domain::Run { data_path: _ } = args.domain { + if let Domain::Run { + data_path, + language_language_only, + run_dapp_server, + gql_port, + hc_admin_port, + hc_app_port, + ipfs_swarm_port, + connect_holochain, + admin_credential, + swip_path, + swipl_home_path, + } = args.domain + { rust_executor::run().await; return Ok(()); }; @@ -210,7 +243,19 @@ async fn main() -> Result<()> { data_path: _, network_bootstrap_seed: _, } => unreachable!(), - Domain::Run { data_path: _ } => unreachable!(), + Domain::Run { + data_path: _, + language_language_only: _, + run_dapp_server: _, + gql_port: _, + hc_admin_port: _, + hc_app_port: _, + ipfs_swarm_port: _, + connect_holochain: _, + admin_credential: _, + swip_path: _, + swipl_home_path: _, + } => unreachable!(), } Ok(()) From 2069dc8b1f4a1629396b8e8d2babe75cc09e805d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 11 Apr 2023 15:34:32 +0100 Subject: [PATCH 137/722] use globalThis variables for config that gets passed to rust executor serve --- rust-executor/src/js_core/main.js | 63 ++++++++++++++++++------------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/rust-executor/src/js_core/main.js b/rust-executor/src/js_core/main.js index 0bb611357..2d90771f4 100644 --- a/rust-executor/src/js_core/main.js +++ b/rust-executor/src/js_core/main.js @@ -61,12 +61,26 @@ import { init, path, os } from 'https://ad4m.runtime/executor' console.log("Hello from main") -let appDataPath = path.join(os.homedir(), 'ad4m', 'tests', 'ad4m1'); -const binaryPath = path.join(appDataPath, 'binary'); -const swiplHomePath = (process.platform == "win32" ? path.join(appDataPath, 'swipl/') : path.join(appDataPath, 'swipl/lib/swipl/')) -const swiplPath = path.join(appDataPath, 'swipl/bin/swipl'); -const gqlPort = 13000 -const ipfsRepoPath = path.join(appDataPath, 'ipfs') +globalThis.appDataPath = path.join(os.homedir(), 'ad4m', 'tests', 'ad4m1'); +globalThis.binaryPath = path.join(appDataPath, 'binary'); +globalThis.swiplHomePath = (process.platform == "win32" ? path.join(appDataPath, 'swipl/') : path.join(appDataPath, 'swipl/lib/swipl/')) +globalThis.swiplPath = path.join(appDataPath, 'swipl/bin/swipl'); +globalThis.ipfsSwarmPort = undefined; +globalThis.gqlPort = 13000 +globalThis.ipfsRepoPath = path.join(appDataPath, 'ipfs') +globalThis.networkBootstrapSeed = path.join(appDataPath, "mainnet_seed.seed") +globalThis.languageLanugageOnly = false +globalThis.mocks = false +globalThis.runDappServer = false +globalThis.hcPortAdmin = undefined +globalThis.hcPortApp = undefined +globalThis.appLangAliases = {} +globalThis.bootstrapFixtures = { + languages: [], + perspectives: [], +}; +globalThis.connectHolochain = false; +globalThis.reqCredential = undefined; //if (!fs.existsSync(appDataPath)) { // fs.mkdirSync(appDataPath); @@ -75,26 +89,23 @@ const ipfsRepoPath = path.join(appDataPath, 'ipfs') //const bPerspective = bootstrapPerspective ? await import(path.isAbsolute(bootstrapPerspective) ? bootstrapPerspective: path.join(__dirname, bootstrapPerspective)) : []; const config = { - appDataPath: appDataPath, - resourcePath: binaryPath, - networkBootstrapSeed: path.join(appDataPath, "mainnet_seed.seed"), - languageLanguageOnly: true, - bootstrapFixtures: { - languages: [], - perspectives: [], - }, - appLangAliases: {}, - mocks: false, - runDappServer: false, - gqlPort, - hcPortAdmin: undefined, - hcPortApp: undefined, - ipfsRepoPath, - ipfsSwarmPort: undefined, - connectHolochain: true, - reqCredential: undefined, - swiplPath, - swiplHomePath + appDataPath: globalThis.appDataPath, + resourcePath: globalThis.binaryPath, + networkBootstrapSeed: globalThis.networkBootstrapSeed, + languageLanguageOnly: globalThis.languageLanugageOnly, + bootstrapFixtures: globalThis.bootstrapFixtures, + appLangAliases: globalThis.appLangAliases, + mocks: globalThis.mocks, + runDappServer: globalThis.runDappServer, + gqlPort: globalThis.gqlPort, + hcPortAdmin: globalThis.hcPortAdmin, + hcPortApp: globalThis.hcPortApp, + ipfsRepoPath: globalThis.ipfsRepoPath, + ipfsSwarmPort: globalThis.ipfsSwarmPort, + connectHolochain: globalThis.connectHolochain, + reqCredential: globalThis.reqCredential, + swiplPath: globalThis.swiplPath, + swiplHomePath: globalThis.swiplHomePath, }; async function initCore() { From 91eaae17d896948c36a2437e4537f607438f132f Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 11 Apr 2023 16:48:46 +0200 Subject: [PATCH 138/722] Add wallet extension to worker --- rust-executor/src/js_core/options.rs | 7 +++++-- rust-executor/src/js_core/wallet_extension.rs | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs index 0a7a25026..00e634bac 100644 --- a/rust-executor/src/js_core/options.rs +++ b/rust-executor/src/js_core/options.rs @@ -1,3 +1,4 @@ +use deno_core::{Extension, include_js_files, error::AnyError, op}; use deno_runtime::{ deno_broadcast_channel::InMemoryBroadcastChannel, deno_web::BlobStore, worker::WorkerOptions, BootstrapOptions, @@ -5,7 +6,7 @@ use deno_runtime::{ use std::{collections::HashMap, rc::Rc, sync::Arc}; use url::Url; -use super::string_module_loader::StringModuleLoader; +use super::{string_module_loader::StringModuleLoader, wallet_extension}; pub fn main_module_url() -> Url { Url::parse("https://ad4m.runtime/main").unwrap() @@ -34,9 +35,11 @@ pub fn main_worker_options() -> WorkerOptions { loader.add_module(specifier.as_str(), code.as_str()); } + let wallet_ext = wallet_extension::build(); + WorkerOptions { bootstrap: BootstrapOptions::default(), - extensions: vec![], + extensions: vec![wallet_ext], startup_snapshot: Some(deno_runtime::js::deno_isolate_init()), unsafely_ignore_certificate_errors: None, root_cert_store: None, diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index 364b37caa..b767a9ae8 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -1,4 +1,4 @@ -use deno_core::{anyhow::anyhow, error::AnyError, op}; +use deno_core::{anyhow::anyhow, error::AnyError, op, Extension, include_js_files}; use secp256k1::SecretKey; use base64::{Engine as _, engine::{self, general_purpose as base64engine}}; use serde::{Deserialize, Serialize}; @@ -90,3 +90,19 @@ fn wallet_load(data: String) -> Result<(), AnyError> { let wallet_ref = wallet.as_mut().expect("wallet instance"); Ok(wallet_ref.load(data)) } + +pub fn build() -> Extension { + Extension::builder("wallet") + .js(include_js_files!(wallet "wallet_extension.js",)) + .ops(vec![ + wallet_get_main_key::decl(), + wallet_get_main_key_document::decl(), + wallet_create_main_key::decl(), + wallet_is_unlocked::decl(), + wallet_unlock::decl(), + wallet_lock::decl(), + wallet_export::decl(), + wallet_load::decl(), + ]) + .build() +} \ No newline at end of file From 77ee6e14e2704d48a6cd5658ef9fc5df05ffd9e3 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 11 Apr 2023 16:59:07 +0200 Subject: [PATCH 139/722] Add back main.rs to rust-executor for easy debugging --- rust-executor/src/main.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 rust-executor/src/main.rs diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs new file mode 100644 index 000000000..4e55afdbd --- /dev/null +++ b/rust-executor/src/main.rs @@ -0,0 +1,36 @@ +mod globals; +mod graphql; +mod js_core; +mod utils; +mod wallet; + +pub mod init; + +use log::{error, info}; +use std::env; + +use graphql::start_server; +use js_core::JsCore; + +#[tokio::main] +async fn main() { + env::set_var("RUST_LOG", "info"); + env_logger::init(); + + info!("Starting js_core..."); + let mut js_core_handle = JsCore::start(); + js_core_handle.initialized().await; + info!("js_core initialized."); + + info!("Starting GraphQL..."); + match start_server(js_core_handle).await { + Ok(_) => { + info!("GraphQL server stopped."); + std::process::exit(0); + } + Err(err) => { + error!("GraphQL server stopped with error: {}", err); + std::process::exit(1); + } + } +} From c1cec18a161d6b01265245375c8c65556cb626d1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 12 Apr 2023 16:12:04 +0100 Subject: [PATCH 140/722] use correct zipped swipl dependency --- rust-executor/src/globals.rs | 2 +- rust-executor/src/init.rs | 22 +++++++++++++++++----- rust-executor/src/utils.rs | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index 1fd87a786..f1f04c27f 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -29,4 +29,4 @@ pub const HOLOCHAIN_BIN: &[u8] = include_bytes!("../temp/holochain"); pub const HC_BIN: &[u8] = include_bytes!("../temp/hc"); /// Binary data of swipl binary, included at buildtime from the swipl binary -pub const SWIPL_BIN: &[u8] = include_bytes!("../temp/swipl"); +pub const SWIPL_ZIP: &[u8] = include_bytes!("../temp/swipl.zip"); diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 8089c488f..c55bfc2ba 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -7,8 +7,9 @@ use std::path::{Path, PathBuf}; use super::utils::ad4m_data_directory; use crate::globals::{ - AD4M_VERSION, HC_BIN, HOLOCHAIN_BIN, MAINNET_JSON, OLDEST_VERSION, SWIPL_BIN, + AD4M_VERSION, HC_BIN, HOLOCHAIN_BIN, MAINNET_JSON, OLDEST_VERSION, SWIPL_ZIP, }; +use crate::utils::write_zip; /// Sets up the ad4m data directory and config files ready for the executor to consume pub fn init( @@ -58,6 +59,7 @@ pub fn init( //Create the path for binaries if it doesn't already exist let binary_path = Path::new(&app_data_path).join("binary"); if !Path::new(&binary_path).exists() { + info!("Creating binary path"); fs::create_dir_all(&binary_path)?; } @@ -70,18 +72,19 @@ pub fn init( if !hc_only { let holochain_data = HOLOCHAIN_BIN; let holochain_target = binary_path.join(holochain); + info!("writing holochain target"); fs::write(&holochain_target, holochain_data)?; fs::set_permissions(holochain_target, fs::Permissions::from_mode(0o755))?; } let hc_data = HC_BIN; let hc_target = binary_path.join(hc); + info!("write hc target"); fs::write(&hc_target, hc_data)?; fs::set_permissions(hc_target, fs::Permissions::from_mode(0o755))?; - let swipl_data = SWIPL_BIN; - let swipl_target = Path::new(&app_data_path).join("swipl"); - fs::write(swipl_target, swipl_data)?; + info!("write swipl target"); + write_zip(SWIPL_ZIP.to_vec(), app_data_path); Ok(()) } @@ -92,9 +95,10 @@ fn write_seed_config( ) -> Result<(), Box> { let target_seed_path = app_data_path.join("mainnet_seed.seed"); if network_bootstrap_seed.is_none() { - println!("No bootstrap seed supplied... using the one found in local files"); + info!("No bootstrap seed supplied... using the one found in local files"); let seed_file_data = MAINNET_JSON; fs::write(target_seed_path, seed_file_data)?; + info!("wrote seed file"); } else { let seed_path = PathBuf::from(network_bootstrap_seed.unwrap()); let seed_file_data = fs::read_to_string(seed_path)?; @@ -115,18 +119,23 @@ fn clean_ad4m_data( let languages_path = app_data_path.join("ad4m").join("languages"); // Delete all the data which may conflict with the new version + info!("Deleting binary path"); if fs::metadata(&binary_path).is_ok() { fs::remove_dir_all(binary_path)?; } + info!("Deleting config path"); if fs::metadata(&config_path).is_ok() { fs::remove_file(config_path)?; } + info!("Deleting bootstrap seed path"); if fs::metadata(&bootstrap_seed_path).is_ok() { fs::remove_file(bootstrap_seed_path)?; } + info!("Deleting holochain data path"); if fs::metadata(&holochain_data_path).is_ok() { fs::remove_dir_all(holochain_data_path)?; } + info!("Deleting languages path"); if fs::metadata(&languages_path).is_ok() { fs::remove_dir_all(languages_path)?; } @@ -136,12 +145,15 @@ fn clean_ad4m_data( let languages_path = app_data_path.join("ad4m").join("languages"); let perspective_path = app_data_path.join("ad4m").join("perspectives.json"); + info!("Deleting db path"); if fs::metadata(&db_path).is_ok() { fs::remove_file(db_path)?; } + info!("Deleting languages path"); if fs::metadata(&languages_path).is_ok() { fs::remove_dir_all(languages_path)?; } + info!("Deleting perspectives path"); if fs::metadata(&perspective_path).is_ok() { fs::remove_file(perspective_path)?; } diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs index 302a93653..cef49d51f 100644 --- a/rust-executor/src/utils.rs +++ b/rust-executor/src/utils.rs @@ -1,5 +1,8 @@ use std::env::var_os; +use std::fs::File; +use std::io::{Cursor, Read, Write}; use std::path::{Path, PathBuf}; +use zip::ZipArchive; pub(crate) fn ad4m_data_directory() -> PathBuf { let mut ad4m_dir = var_os("HOME") @@ -9,3 +12,34 @@ pub(crate) fn ad4m_data_directory() -> PathBuf { ad4m_dir.push_str("/.ad4m"); Path::new(&ad4m_dir).to_path_buf() } + +pub(crate) fn write_zip(zip_data: Vec, target_path: PathBuf) { + // Read the zip archive from the byte data + let reader = Cursor::new(zip_data); + let mut archive = ZipArchive::new(reader).unwrap(); + + // Extract the files from the zip archive + for i in 0..archive.len() { + let mut file = archive.by_index(i).unwrap(); + let mut outpath = target_path.clone(); + outpath.push(file.sanitized_name()); + + if file.is_dir() { + // Create the directory if it doesn't exist + std::fs::create_dir_all(&outpath).unwrap(); + } else { + // Create the parent directory if it doesn't exist + if let Some(parent) = outpath.parent() { + if !parent.exists() { + std::fs::create_dir_all(&parent).unwrap(); + } + } + + // Write the file's contents + let mut outfile = File::create(&outpath).unwrap(); + let mut buffer = Vec::new(); + file.read_to_end(&mut buffer).unwrap(); + outfile.write_all(&buffer).unwrap(); + } + } +} From d5746799877f1ff27abfa113840b1fca57febdf5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 12 Apr 2023 16:12:14 +0100 Subject: [PATCH 141/722] implement run on client working with deno --- Cargo.lock | 143 ++++++++++++++++++++++++++---- cli/src/main.rs | 46 +++++++--- rust-executor/Cargo.toml | 6 ++ rust-executor/src/config.rs | 118 ++++++++++++++++++++++++ rust-executor/src/js_core/main.js | 56 ++++-------- rust-executor/src/js_core/mod.rs | 11 ++- rust-executor/src/lib.rs | 7 +- rust-executor/src/main.rs | 3 +- 8 files changed, 318 insertions(+), 72 deletions(-) create mode 100644 rust-executor/src/config.rs diff --git a/Cargo.lock b/Cargo.lock index 4d1584041..107ceae59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -113,7 +113,7 @@ dependencies = [ "tokio", "tokio-util 0.7.4", "tracing", - "zstd", + "zstd 0.12.3+zstd.1.5.2", ] [[package]] @@ -372,6 +372,18 @@ dependencies = [ "generic-array 0.14.6", ] +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if", + "cipher 0.3.0", + "cpufeatures", + "opaque-debug", +] + [[package]] name = "aes" version = "0.8.2" @@ -379,7 +391,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] @@ -390,8 +402,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" dependencies = [ "aead", - "aes", - "cipher", + "aes 0.8.2", + "cipher 0.4.4", "ctr", "ghash", "subtle", @@ -403,7 +415,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c" dependencies = [ - "aes", + "aes 0.8.2", ] [[package]] @@ -485,7 +497,7 @@ checksum = "95c2fcf79ad1932ac6269a738109997a83c227c09b75842ae564dc8ede6a861c" dependencies = [ "base64ct", "blake2", - "password-hash", + "password-hash 0.5.0", ] [[package]] @@ -1042,6 +1054,27 @@ dependencies = [ "bytes", ] +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + [[package]] name = "cache-padded" version = "1.2.0" @@ -1094,7 +1127,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -1153,7 +1186,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] @@ -1165,7 +1198,7 @@ checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20", - "cipher", + "cipher 0.4.4", "poly1305", "zeroize", ] @@ -1186,6 +1219,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array 0.14.6", +] + [[package]] name = "cipher" version = "0.4.4" @@ -1358,6 +1400,12 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + [[package]] name = "convert_case" version = "0.4.0" @@ -1615,7 +1663,7 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -1914,7 +1962,7 @@ version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1daf156a53364ea0196dac48f1b6277968ffec7e251db4d04da96d12742fb429" dependencies = [ - "aes", + "aes 0.8.2", "aes-gcm", "aes-kw", "base64 0.13.1", @@ -2108,7 +2156,7 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffd2289db1e0b2719718718a0f30087c6c46f605732d67b8e9bcaada956eb643" dependencies = [ - "aes", + "aes 0.8.2", "cbc", "deno_core", "digest 0.10.6", @@ -2124,7 +2172,7 @@ dependencies = [ "num-traits", "once_cell", "path-clean", - "pbkdf2", + "pbkdf2 0.12.1", "rand 0.8.5", "regex", "ripemd", @@ -2558,7 +2606,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17fd84ba81a904351ee27bbccb4aa2461e1cca04176a63ab4f8ca087757681a2" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -5335,6 +5383,17 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "password-hash" version = "0.5.0" @@ -5364,6 +5423,18 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.6", + "hmac 0.12.1", + "password-hash 0.4.2", + "sha2 0.10.6", +] + [[package]] name = "pbkdf2" version = "0.12.1" @@ -6138,6 +6209,7 @@ dependencies = [ "tokio", "url", "uuid 1.3.0", + "zip", ] [[package]] @@ -6287,7 +6359,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -9141,13 +9213,52 @@ dependencies = [ "syn 2.0.13", ] +[[package]] +name = "zip" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef" +dependencies = [ + "aes 0.7.5", + "byteorder", + "bzip2", + "constant_time_eq", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac 0.12.1", + "pbkdf2 0.11.0", + "sha1", + "time 0.3.17", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe 5.0.2+zstd.1.5.2", +] + [[package]] name = "zstd" version = "0.12.3+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806" dependencies = [ - "zstd-safe", + "zstd-safe 6.0.4+zstd.1.5.4", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", ] [[package]] diff --git a/cli/src/main.rs b/cli/src/main.rs index c69d33e99..2128cf162 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -28,6 +28,7 @@ use crate::{ use ad4m_client::*; use anyhow::{Context, Result}; use clap::{Parser, Subcommand}; +use rust_executor::Ad4mConfig; use startup::executor_data_path; /// AD4M command line interface. @@ -120,11 +121,15 @@ enum Domain { }, Run { #[arg(short, long, action)] - data_path: String, + app_data_path: Option, #[arg(short, long, action)] - language_language_only: bool, + resource_path: Option, #[arg(short, long, action)] - run_dapp_server: bool, + network_bootstrap_seed: Option, + #[arg(short, long, action)] + language_language_only: Option, + #[arg(long, action)] + run_dapp_server: Option, #[arg(short, long, action)] gql_port: Option, #[arg(long, action)] @@ -134,11 +139,11 @@ enum Domain { #[arg(short, long, action)] ipfs_swarm_port: Option, #[arg(short, long, action)] - connect_holochain: bool, - #[arg(short, long, action)] + connect_holochain: Option, + #[arg(long, action)] admin_credential: Option, #[arg(long, action)] - swip_path: Option, + swipl_path: Option, #[arg(long, action)] swipl_home_path: Option, }, @@ -201,7 +206,9 @@ async fn main() -> Result<()> { }; if let Domain::Run { - data_path, + app_data_path, + resource_path, + network_bootstrap_seed, language_language_only, run_dapp_server, gql_port, @@ -210,11 +217,26 @@ async fn main() -> Result<()> { ipfs_swarm_port, connect_holochain, admin_credential, - swip_path, + swipl_path, swipl_home_path, } = args.domain { - rust_executor::run().await; + rust_executor::run(Ad4mConfig { + app_data_path, + resource_path, + network_bootstrap_seed, + language_language_only, + run_dapp_server, + gql_port, + hc_admin_port, + hc_app_port, + ipfs_swarm_port, + connect_holochain, + admin_credential, + swipl_path, + swipl_home_path, + }) + .await; return Ok(()); }; @@ -244,7 +266,9 @@ async fn main() -> Result<()> { network_bootstrap_seed: _, } => unreachable!(), Domain::Run { - data_path: _, + app_data_path: _, + resource_path: _, + network_bootstrap_seed: _, language_language_only: _, run_dapp_server: _, gql_port: _, @@ -253,7 +277,7 @@ async fn main() -> Result<()> { ipfs_swarm_port: _, connect_holochain: _, admin_credential: _, - swip_path: _, + swipl_path: _, swipl_home_path: _, } => unreachable!(), } diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 7a67bc742..54610d59a 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -5,6 +5,11 @@ edition = "2021" [lib] name = "rust_executor" +path = "src/lib.rs" + +[[bin]] +name = "rust_executor_bin" +path = "src/main.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -39,3 +44,4 @@ fs_extra = "1.3.0" os_info = "3.7.0" semver = "1.0.17" did-key = "0.2.1" +zip = "0.6.4" diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs new file mode 100644 index 000000000..7d1c41456 --- /dev/null +++ b/rust-executor/src/config.rs @@ -0,0 +1,118 @@ +use crate::utils; +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Ad4mConfig { + pub app_data_path: Option, + pub resource_path: Option, + pub network_bootstrap_seed: Option, + pub language_language_only: Option, + pub run_dapp_server: Option, + pub gql_port: Option, + pub hc_admin_port: Option, + pub hc_app_port: Option, + pub ipfs_swarm_port: Option, + pub connect_holochain: Option, + pub admin_credential: Option, + pub swipl_path: Option, + pub swipl_home_path: Option, +} + +impl Ad4mConfig { + pub fn prepare(&mut self) { + if self.app_data_path.is_none() { + self.app_data_path = Some( + utils::ad4m_data_directory() + .into_os_string() + .into_string() + .expect("Could not convert data path to string"), + ); + } + if self.resource_path.is_none() { + let mut data_path = utils::ad4m_data_directory(); + data_path.push("binary"); + self.resource_path = Some( + data_path + .into_os_string() + .into_string() + .expect("Could not convert binary path to string"), + ); + } + if self.network_bootstrap_seed.is_none() { + let mut data_path = utils::ad4m_data_directory(); + data_path.push("mainnet_seed.seed"); + self.network_bootstrap_seed = Some( + data_path + .into_os_string() + .into_string() + .expect("Could not convert seed path to string"), + ); + } + if self.language_language_only.is_none() { + self.language_language_only = Some(false); + } + if self.run_dapp_server.is_none() { + self.run_dapp_server = Some(true); + } + if self.gql_port.is_none() { + self.gql_port = Some(14000); + } + if self.connect_holochain.is_none() { + self.connect_holochain = Some(false); + } + if self.swipl_path.is_none() { + let mut data_path = utils::ad4m_data_directory(); + //If OS is windows push swipl/ + if cfg!(windows) { + data_path.push("swipl"); + } + //If os is other push swipl/lib/swipl/ + else { + data_path.push("swipl/lib/swipl"); + } + self.swipl_path = Some( + data_path + .into_os_string() + .into_string() + .expect("Could not convert swipl path to string"), + ); + } + if self.swipl_home_path.is_none() { + let mut data_path = utils::ad4m_data_directory(); + data_path.push("swipl/bin/swipl"); + self.swipl_home_path = Some( + data_path + .into_os_string() + .into_string() + .expect("Could not convert swipl home path to string"), + ); + } + } + + pub fn get_json(&self) -> String { + serde_json::to_string(self).expect("Could not convert config to json") + } +} + +impl Default for Ad4mConfig { + fn default() -> Self { + let mut config = Ad4mConfig { + app_data_path: None, + resource_path: None, + network_bootstrap_seed: None, + language_language_only: None, + run_dapp_server: None, + gql_port: None, + hc_admin_port: None, + hc_app_port: None, + ipfs_swarm_port: None, + connect_holochain: None, + admin_credential: None, + swipl_path: None, + swipl_home_path: None, + }; + config.prepare(); + config + } +} diff --git a/rust-executor/src/js_core/main.js b/rust-executor/src/js_core/main.js index 2d90771f4..ce465fb78 100644 --- a/rust-executor/src/js_core/main.js +++ b/rust-executor/src/js_core/main.js @@ -61,26 +61,26 @@ import { init, path, os } from 'https://ad4m.runtime/executor' console.log("Hello from main") -globalThis.appDataPath = path.join(os.homedir(), 'ad4m', 'tests', 'ad4m1'); -globalThis.binaryPath = path.join(appDataPath, 'binary'); -globalThis.swiplHomePath = (process.platform == "win32" ? path.join(appDataPath, 'swipl/') : path.join(appDataPath, 'swipl/lib/swipl/')) -globalThis.swiplPath = path.join(appDataPath, 'swipl/bin/swipl'); -globalThis.ipfsSwarmPort = undefined; -globalThis.gqlPort = 13000 -globalThis.ipfsRepoPath = path.join(appDataPath, 'ipfs') -globalThis.networkBootstrapSeed = path.join(appDataPath, "mainnet_seed.seed") -globalThis.languageLanugageOnly = false -globalThis.mocks = false -globalThis.runDappServer = false -globalThis.hcPortAdmin = undefined -globalThis.hcPortApp = undefined -globalThis.appLangAliases = {} -globalThis.bootstrapFixtures = { +const appDataPath = path.join(os.homedir(), 'ad4m', 'tests', 'ad4m1'); +const binaryPath = path.join(appDataPath, 'binary'); +const swiplHomePath = (process.platform == "win32" ? path.join(appDataPath, 'swipl/') : path.join(appDataPath, 'swipl/lib/swipl/')) +const swiplPath = path.join(appDataPath, 'swipl/bin/swipl'); +const ipfsSwarmPort = undefined; +const gqlPort = 13000 +const ipfsRepoPath = path.join(appDataPath, 'ipfs') +const networkBootstrapSeed = path.join(appDataPath, "mainnet_seed.seed") +const languageLanguageOnly = false +const mocks = false +const runDappServer = false +const hcPortAdmin = undefined +const hcPortApp = undefined +const appLangAliases = {} +const bootstrapFixtures = { languages: [], perspectives: [], }; -globalThis.connectHolochain = false; -globalThis.reqCredential = undefined; +const connectHolochain = false; +const reqCredential = undefined; //if (!fs.existsSync(appDataPath)) { // fs.mkdirSync(appDataPath); @@ -88,27 +88,7 @@ globalThis.reqCredential = undefined; //const bLanguage = bootstrapLanguage ? await import(path.isAbsolute(bootstrapLanguage) ? bootstrapLanguage: path.join(__dirname, bootstrapLanguage)) : []; //const bPerspective = bootstrapPerspective ? await import(path.isAbsolute(bootstrapPerspective) ? bootstrapPerspective: path.join(__dirname, bootstrapPerspective)) : []; -const config = { - appDataPath: globalThis.appDataPath, - resourcePath: globalThis.binaryPath, - networkBootstrapSeed: globalThis.networkBootstrapSeed, - languageLanguageOnly: globalThis.languageLanugageOnly, - bootstrapFixtures: globalThis.bootstrapFixtures, - appLangAliases: globalThis.appLangAliases, - mocks: globalThis.mocks, - runDappServer: globalThis.runDappServer, - gqlPort: globalThis.gqlPort, - hcPortAdmin: globalThis.hcPortAdmin, - hcPortApp: globalThis.hcPortApp, - ipfsRepoPath: globalThis.ipfsRepoPath, - ipfsSwarmPort: globalThis.ipfsSwarmPort, - connectHolochain: globalThis.connectHolochain, - reqCredential: globalThis.reqCredential, - swiplPath: globalThis.swiplPath, - swiplHomePath: globalThis.swiplHomePath, -}; - -async function initCore() { +async function initCore(config) { const core = await init(config) globalThis.core = core return core diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 98d710da3..c92d4ee96 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -20,6 +20,7 @@ mod string_module_loader; mod wallet_extension; use self::futures::{EventLoopFuture, GlobalVariableFuture}; +use crate::Ad4mConfig; use options::{main_module_url, main_worker_options}; /// Define message @@ -126,19 +127,21 @@ impl JsCore { event_loop } - fn init_core(&self) -> Result { + fn init_core(&self, mut config: Ad4mConfig) -> Result { + config.prepare(); let mut worker = self .worker .lock() .expect("init_core(): couldn't lock worker"); - let _init_core = worker.execute_script("js_core", "initCore()")?; + let _init_core = + worker.execute_script("js_core", format!("initCore({})", config.get_json()))?; Ok(GlobalVariableFuture::new( self.worker.clone(), "core".to_string(), )) } - pub fn start() -> JsCoreHandle { + pub fn start(config: Ad4mConfig) -> JsCoreHandle { let (tx_inside, rx_outside) = broadcast::channel::(50); let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); @@ -157,8 +160,8 @@ impl JsCore { rt.block_on(async { let local = LocalSet::new(); - let init_core_future = js_core.init_core().expect("couldn't spawn JS initCore()"); let tx_cloned = tx_inside.clone(); + let init_core_future = js_core.init_core(config).expect("couldn't spawn JS initCore()"); // Run the local task set. let run_until = local.run_until(async move { diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index b4e961874..6f7c95d4b 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -1,3 +1,4 @@ +mod config; mod globals; mod graphql; mod js_core; @@ -12,13 +13,15 @@ use std::env; use graphql::start_server; use js_core::JsCore; +pub use config::Ad4mConfig; + /// Runs the GraphQL server and the deno core runtime -pub async fn run() { +pub async fn run(config: Ad4mConfig) { env::set_var("RUST_LOG", "info"); env_logger::init(); info!("Starting js_core..."); - let mut js_core_handle = JsCore::start(); + let mut js_core_handle = JsCore::start(config); js_core_handle.initialized().await; info!("js_core initialized."); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 4e55afdbd..4b0d5ae7a 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -7,6 +7,7 @@ mod wallet; pub mod init; use log::{error, info}; +use rust_executor::Ad4mConfig; use std::env; use graphql::start_server; @@ -18,7 +19,7 @@ async fn main() { env_logger::init(); info!("Starting js_core..."); - let mut js_core_handle = JsCore::start(); + let mut js_core_handle = JsCore::start(Ad4mConfig::default()); js_core_handle.initialized().await; info!("js_core initialized."); From 73708b5094bb5e16e6eaaff5f6e7ed092b36185c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 12 Apr 2023 18:17:43 +0200 Subject: [PATCH 142/722] Fix wallet extension calls --- rust-executor/src/js_core/wallet_extension.js | 18 +++++++++--------- rust-executor/src/js_core/wallet_extension.rs | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/rust-executor/src/js_core/wallet_extension.js b/rust-executor/src/js_core/wallet_extension.js index 7ca739f42..b06757a42 100644 --- a/rust-executor/src/js_core/wallet_extension.js +++ b/rust-executor/src/js_core/wallet_extension.js @@ -3,28 +3,28 @@ globalThis.WALLET = { getMainKey: () => { - return core.opAsync("wallet_get_main_key"); + return core.ops.wallet_get_main_key(); }, getMainKeyDocument: () => { - return core.opAsync("wallet_get_main_key_document"); + return core.ops.wallet_get_main_key_document(); }, createMainKey: () => { - return core.opAsync("wallet_create_main_key"); + return core.ops.wallet_create_main_key(); }, isUnlocked: () => { - return core.opAsync("wallet_is_unlocked", path); + return core.ops.wallet_is_unlocked(); }, unlock: (password) => { - return core.opAsync("wallet_unlock", password); + return core.ops.wallet_unlock(password); }, lock: (password) => { - return core.opAsync("wallet_lock", password); + return core.ops.wallet_lock(password); }, - export: () => { - return core.opAsync("wallet_export"); + export: (password) => { + return core.ops.wallet_export(password); }, load: (data) => { - return core.opAsync("wallet_load", data); + return core.ops.wallet_load(data); }, }; })(globalThis); diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index b767a9ae8..e0f85d466 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -104,5 +104,6 @@ pub fn build() -> Extension { wallet_export::decl(), wallet_load::decl(), ]) + .force_op_registration() .build() } \ No newline at end of file From 1f9915ad54121d3c5609e0d85bc3f0b1e26aa4cb Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 12 Apr 2023 18:18:12 +0200 Subject: [PATCH 143/722] Simplify default options --- rust-executor/src/js_core/options.rs | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs index 00e634bac..4caa6f92c 100644 --- a/rust-executor/src/js_core/options.rs +++ b/rust-executor/src/js_core/options.rs @@ -38,29 +38,8 @@ pub fn main_worker_options() -> WorkerOptions { let wallet_ext = wallet_extension::build(); WorkerOptions { - bootstrap: BootstrapOptions::default(), extensions: vec![wallet_ext], - startup_snapshot: Some(deno_runtime::js::deno_isolate_init()), - unsafely_ignore_certificate_errors: None, - root_cert_store: None, - seed: None, - format_js_error_fn: None, - source_map_getter: None, - web_worker_preload_module_cb: Arc::new(|_| unreachable!()), - web_worker_pre_execute_module_cb: Arc::new(|_| unreachable!()), - create_web_worker_cb: Arc::new(|_| unreachable!()), - maybe_inspector_server: None, - should_break_on_first_statement: false, - should_wait_for_inspector_session: false, module_loader: Rc::new(loader), - npm_resolver: None, - get_error_class_fn: None, - cache_storage_dir: None, - origin_storage_dir: None, - blob_store: BlobStore::default(), - broadcast_channel: InMemoryBroadcastChannel::default(), - shared_array_buffer_store: None, - compiled_wasm_module_store: None, - stdio: Default::default(), + ..Default::default() } } From fdc518914f74e2eafd85a8cecba31182299b26d3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 12 Apr 2023 17:38:07 +0100 Subject: [PATCH 144/722] implement query resolver connections; thanks chatGPT <3 --- rust-executor/src/graphql/query_resolvers.rs | 482 +++++++++++++------ 1 file changed, 328 insertions(+), 154 deletions(-) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index b9d3d8740..65c32366b 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -8,278 +8,442 @@ use super::graphql_types::*; pub struct Query; +const ALL_CAPABILITY: &str = r#"{with: {domain: "*", pointers: ["*"]},can: ["*"]}"#; + #[graphql_object(context = JsCoreHandle)] impl Query { - fn agent(&self, context: &JsCoreHandle) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn agent(&self, context: &JsCoreHandle) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.agent(null, {{ capabilities: [{}] }}))", + ALL_CAPABILITY + )) + .await?; + let a: Agent = serde_json::from_str(&result)?; + return Ok(a); } #[graphql(name = "agentByDID")] - fn agent_by_did(&self, context: &JsCoreHandle, did: String) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn agent_by_did( + &self, + context: &JsCoreHandle, + did: String, + ) -> FieldResult> { + let mut js = context.clone(); + let result = js + .execute( + format!( + r#"JSON.stringify( + core.resolvers.Query.agentByDID( + null, + {{ did: {} }}, + {{ capabilities: [{}] }} + ) + )"#, + did, ALL_CAPABILITY + ) + .into(), + ) + .await?; + let a: Option = serde_json::from_str(&result)?; + return Ok(a); } - fn agent_get_apps(&self, context: &JsCoreHandle) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn agent_get_apps(&self, context: &JsCoreHandle) -> FieldResult> { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.agentGetApps(null, {{ capabilities: [{}] }}))", + ALL_CAPABILITY + )) + .await?; + let apps: Vec = serde_json::from_str(&result)?; + return Ok(apps); } - fn agent_get_entanglement_proofs( + async fn agent_get_entanglement_proofs( &self, context: &JsCoreHandle, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.agentGetEntanglementProofs(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .await?; + let proofs: Vec = serde_json::from_str(&result)?; + return Ok(proofs); } - fn agent_is_locked(&self, context: &JsCoreHandle) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn agent_is_locked(&self, context: &JsCoreHandle) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute("JSON.stringify(core.resolvers.Query.agentIsLocked(null))".to_string()) + .await?; + let is_locked: bool = serde_json::from_str(&result)?; + return Ok(is_locked); } async fn agent_status(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); let result = js - .execute("JSON.stringify(core.agentService.dump())".into()) + .execute(format!( + "JSON.stringify(core.agentService.dump(null, {{ capabilities: [{}] }}))", + ALL_CAPABILITY + )) .await?; let s: AgentStatus = serde_json::from_str(&result)?; return Ok(s); } - fn expression(&self, context: &JsCoreHandle, url: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn expression( + &self, + context: &JsCoreHandle, + url: String, + ) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.expression(null, {{ url: {} }}, {{ capabilities: [{}] }}))", + url, + ALL_CAPABILITY + )) + .await?; + let expression: ExpressionRendered = serde_json::from_str(&result)?; + return Ok(expression); } - fn expression_interactions( + async fn expression_interactions( &self, context: &JsCoreHandle, url: String, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.expressionInteractions(null, {{ url: {} }}, {{ capabilities: [{}] }}))", + url, + ALL_CAPABILITY + )) + .await?; + let interactions: Vec = serde_json::from_str(&result)?; + return Ok(interactions); } - fn expression_many( + async fn expression_many( &self, context: &JsCoreHandle, urls: Vec, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let urls_string = urls + .into_iter() + .map(|url| format!("\"{}\"", url)) + .collect::>() + .join(","); + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.expressionMany(null, {{ urls: [{}] }}, {{ capabilities: [{}] }}))", + urls_string, + ALL_CAPABILITY + )) + .await?; + let expressions: Vec = serde_json::from_str(&result)?; + return Ok(expressions); } - fn expression_raw(&self, context: &JsCoreHandle, url: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn expression_raw(&self, context: &JsCoreHandle, url: String) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.expressionRaw(null, {{ url: {} }}, {{ capabilities: [{}] }}))", + url, + ALL_CAPABILITY + )) + .await?; + let expression_raw: String = serde_json::from_str(&result)?; + return Ok(expression_raw); } - fn get_trusted_agents(&self, context: &JsCoreHandle) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn get_trusted_agents(&self, context: &JsCoreHandle) -> FieldResult> { + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.getTrustedAgents(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .await?; + let trusted_agents: Vec = serde_json::from_str(&result)?; + return Ok(trusted_agents); } - fn language(&self, context: &JsCoreHandle, address: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn language( + &self, + context: &JsCoreHandle, + address: String, + ) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.language(null, {{ address: {}, {{ capabilities: [{}] }} }}))", + address, + ALL_CAPABILITY + )) + .await?; + let language_handle: LanguageHandle = serde_json::from_str(&result)?; + return Ok(language_handle); } - fn language_meta(&self, context: &JsCoreHandle, address: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn language_meta( + &self, + context: &JsCoreHandle, + address: String, + ) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.languageMeta(null, {{ address: {}, {{ capabilities: [{}] }} }}))", + address, + ALL_CAPABILITY + )) + .await?; + let language_meta: LanguageMeta = serde_json::from_str(&result)?; + return Ok(language_meta); } - fn language_source(&self, context: &JsCoreHandle, address: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn language_source( + &self, + context: &JsCoreHandle, + address: String, + ) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.languageSource(null, {{ address: {}, {{ capabilities: [{}] }} }}))", + address, + ALL_CAPABILITY + )) + .await?; + let language_source: String = serde_json::from_str(&result)?; + return Ok(language_source); } - fn languages( + async fn languages( &self, context: &JsCoreHandle, filter: Option, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let filter_string = filter.map_or("null".to_string(), |f| format!("\"{}\"", f)); + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.languages(null, {{ filter: {}, {{ capabilities: [{}] }} }}))", + filter_string, + ALL_CAPABILITY + )) + .await?; + let languages: Vec = serde_json::from_str(&result)?; + return Ok(languages); } - fn neighbourhood_has_telepresence_adapter( + async fn neighbourhood_has_telepresence_adapter( &self, context: &JsCoreHandle, - perspectiveUUID: String, + perspective_uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.neighbourhoodHasTelepresenceAdapter(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) + .await?; + let has_adapter: bool = serde_json::from_str(&result)?; + return Ok(has_adapter); } - fn neighbourhood_online_agents( + async fn neighbourhood_online_agents( &self, context: &JsCoreHandle, - perspectiveUUID: String, + perspective_uuid: String, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.neighbourhoodOnlineAgents(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) + .await?; + let online_agents: Vec = serde_json::from_str(&result)?; + return Ok(online_agents); } - fn neighbourhood_other_agents( + async fn neighbourhood_other_agents( &self, context: &JsCoreHandle, - perspectiveUUID: String, + perspective_uuid: String, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.neighbourhoodOtherAgents(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) + .await?; + let other_agents: Vec = serde_json::from_str(&result)?; + return Ok(other_agents); } - fn perspective(&self, context: &JsCoreHandle, uuid: String) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn perspective( + &self, + context: &JsCoreHandle, + uuid: String, + ) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.perspective(null, {{ uuid: {}, {{ capabilities: [{}] }} }}))", + uuid, + ALL_CAPABILITY + )) + .await?; + let perspective_handle: PerspectiveHandle = serde_json::from_str(&result)?; + return Ok(perspective_handle); } - fn perspective_query_links( + async fn perspective_query_links( &self, context: &JsCoreHandle, query: LinkQuery, uuid: String, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let query_string = serde_json::to_string(&query)?; + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.perspectiveQueryLinks(null, {{ query: {}, uuid: {}, {{ capabilities: [{}] }} }}))", query_string, uuid, ALL_CAPABILITY)) + .await?; + let link_expressions: Vec = serde_json::from_str(&result)?; + return Ok(link_expressions); } - fn perspective_query_prolog( + async fn perspective_query_prolog( &self, context: &JsCoreHandle, query: String, uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.perspectiveQueryProlog(null, {{ query: {}, uuid: {}, {{ capabilities: [{}] }} }}))", query, uuid, ALL_CAPABILITY)) + .await?; + let prolog_result: String = serde_json::from_str(&result)?; + return Ok(prolog_result); } - fn perspective_snapshot( + async fn perspective_snapshot( &self, context: &JsCoreHandle, uuid: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.perspectiveSnapshot(null, {{ uuid: {}, {{ capabilities: [{}] }} }}))", + uuid, + ALL_CAPABILITY + )) + .await?; + let perspective_snapshot: Perspective = serde_json::from_str(&result)?; + return Ok(perspective_snapshot); } - fn perspectives(&self, context: &JsCoreHandle) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn perspectives(&self, context: &JsCoreHandle) -> FieldResult> { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.perspectives(null, {{ capabilities: [{}] }}))", + ALL_CAPABILITY + )) + .await?; + let perspectives: Vec = serde_json::from_str(&result)?; + return Ok(perspectives); } - fn runtime_friend_status( + async fn runtime_friend_status( &self, context: &JsCoreHandle, did: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.runtimeFriendStatus(null, {{ did: {} }}, {{ capabilities: [{}] }}))", + did, + ALL_CAPABILITY + )) + .await?; + let friend_status: PerspectiveExpression = serde_json::from_str(&result)?; + return Ok(friend_status); } - fn runtime_friends(&self, context: &JsCoreHandle) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn runtime_friends(&self, context: &JsCoreHandle) -> FieldResult> { + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.runtimeFriends(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .await?; + let friends: Vec = serde_json::from_str(&result)?; + return Ok(friends); } - fn runtime_hc_agent_infos(&self, context: &JsCoreHandle) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn runtime_hc_agent_infos(&self, context: &JsCoreHandle) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.runtimeHcAgentInfos(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .await?; + let hc_agent_infos: String = serde_json::from_str(&result)?; + return Ok(hc_agent_infos); } - fn runtime_info(&self, context: &JsCoreHandle) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + async fn runtime_info(&self, context: &JsCoreHandle) -> FieldResult { + let mut js = context.clone(); + let result = js + .execute(format!( + "JSON.stringify(core.resolvers.Query.runtimeInfo(null, {{ capabilities: [{}] }}))", + ALL_CAPABILITY + )) + .await?; + let runtime_info: RuntimeInfo = serde_json::from_str(&result)?; + return Ok(runtime_info); } - fn runtime_known_link_language_templates( + async fn runtime_known_link_language_templates( &self, context: &JsCoreHandle, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.runtimeKnownLinkLanguageTemplates(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .await?; + let templates: Vec = serde_json::from_str(&result)?; + return Ok(templates); } - fn runtime_message_inbox( + async fn runtime_message_inbox( &self, context: &JsCoreHandle, filter: Option, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let filter_str = filter.unwrap_or_else(|| String::from("{}")); + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.runtimeMessageInbox(null, {{ filter: {}, capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) + .await?; + let inbox_messages: Vec = serde_json::from_str(&result)?; + return Ok(inbox_messages); } - fn runtime_message_outbox( + async fn runtime_message_outbox( &self, context: &JsCoreHandle, filter: Option, ) -> FieldResult> { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let filter_str = filter.unwrap_or_else(|| String::from("{}")); + let mut js = context.clone(); + let result = js + .execute(format!("JSON.stringify(core.resolvers.Query.runtimeMessageOutbox(null, {{ filter: {}, capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) + .await?; + let outbox_messages: Vec = serde_json::from_str(&result)?; + return Ok(outbox_messages); } - fn runtime_verify_string_signed_by_did( + async fn runtime_verify_string_signed_by_did( &self, context: &JsCoreHandle, data: String, @@ -287,9 +451,19 @@ impl Query { did_signing_key_id: String, signed_data: String, ) -> FieldResult { - Err(FieldError::new( - "Not implemented", - graphql_value!({ "Not implemented": true }), - )) + let mut js = context.clone(); + let result = js + .execute( + format!( + r#"JSON.stringify(core.resolvers.Query.runtimeVerifyStringSignedByDID( + null, + {{ data: {}, did: {}, didSigningKeyId: {}, signedData: {}, capabilities: [{}] }} + ))"#, + data, did, did_signing_key_id, signed_data, ALL_CAPABILITY + ), + ) + .await?; + let verified: bool = serde_json::from_str(&result)?; + return Ok(verified); } } From 95eee1839e2eed0b989c5a01e801911c4f65678d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 12 Apr 2023 17:39:39 +0100 Subject: [PATCH 145/722] remove dead imports --- rust-executor/src/graphql/query_resolvers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index 65c32366b..d5bc57b8a 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -1,6 +1,6 @@ #![allow(non_snake_case)] #![allow(unused_variables)] -use juniper::{graphql_object, graphql_value, FieldError, FieldResult}; +use juniper::{graphql_object, FieldResult}; use crate::js_core::JsCoreHandle; From 19760eaea4429dc5eb83c780f8c42410c4f2e728 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 12 Apr 2023 20:31:31 +0200 Subject: [PATCH 146/722] Fix Wallet::generate_keypair() --- rust-executor/src/js_core/wallet_extension.rs | 9 ++++-- rust-executor/src/wallet.rs | 31 +++++++++++++------ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index e0f85d466..a45b10d92 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -24,8 +24,9 @@ fn wallet_get_main_key() -> Result { let wallet_instance = Wallet::instance(); let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); - let public_key = wallet_ref.get_public_key("main".into()).ok_or(anyhow!("main key not found. call createMainKey() first"))?; - let private_key = wallet_ref.get_secret_key("main".into()).ok_or(anyhow!("main key not found. call createMainKey() first"))?; + let name = "main".to_string(); + let public_key = wallet_ref.get_public_key(&name).ok_or(anyhow!("main key not found. call createMainKey() first"))?; + let private_key = wallet_ref.get_secret_key(&name).ok_or(anyhow!("main key not found. call createMainKey() first"))?; Ok(Key { public_key: base64engine::STANDARD.encode(public_key), private_key: base64engine::STANDARD.encode(private_key), @@ -39,7 +40,9 @@ fn wallet_get_main_key_document() -> Result { let wallet_instance = Wallet::instance(); let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); - wallet_ref.get_did_document("main".into()).ok_or(anyhow!("main key not found. call createMainKey() first")) + println!("wallet_get_main_key_document "); + let name = "main".to_string(); + wallet_ref.get_did_document(&name).ok_or(anyhow!("main key not found. call createMainKey() first")) } #[op] diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index 826d36d21..1fcba7ce6 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -158,30 +158,30 @@ impl Wallet { let key = did_key::generate::(None); self.keys - .clone() + .as_mut() .unwrap() .by_name .insert(name, Key::from(key)); } - pub fn get_public_key(&self, name: String) -> Option> { + pub fn get_public_key(&self, name: &String) -> Option> { self.keys .as_ref()? .by_name - .get(&name) + .get(name) .map(|key| key.public.clone()) } - pub fn get_secret_key(&self, name: String) -> Option> { + pub fn get_secret_key(&self, name: &String) -> Option> { self.keys .as_ref()? .by_name - .get(&name) + .get(name) .map(|key| key.secret.clone()) } - pub fn get_did_document(&self, name: String) -> Option { - self.keys.as_ref()?.by_name.get(&name).map(|key| { + pub fn get_did_document(&self, name: &String) -> Option { + self.keys.as_ref()?.by_name.get(name).map(|key| { let key = did_key::from_existing_key::( &key.public.clone(), Some(&key.secret.clone()), @@ -190,8 +190,8 @@ impl Wallet { }) } - pub fn sign(&self, name: String, message: &[u8]) -> Option> { - self.keys.as_ref()?.by_name.get(&name).map(|key| { + pub fn sign(&self, name: &String, message: &[u8]) -> Option> { + self.keys.as_ref()?.by_name.get(name).map(|key| { let key = did_key::from_existing_key::( &key.public.clone(), Some(&key.secret.clone()), @@ -260,4 +260,17 @@ mod tests { println!("Got decrypted: {:?}", decrypted); assert_eq!(payload, decrypted.unwrap()); } + + #[test] + fn test_create_and_get_key() { + let mut wallet = Wallet::new(); + let name = "test".to_string(); + + wallet.generate_keypair(name.clone()); + + assert!(wallet.keys.is_some()); + assert!(wallet.keys.clone().unwrap().by_name.get(&name).is_some()); + assert!(wallet.get_public_key(&name).is_some()); + assert!(wallet.get_secret_key(&name).is_some()); + } } From 5a780cc7966d4f81eebd007a237910aff1530694 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 12 Apr 2023 20:53:39 +0200 Subject: [PATCH 147/722] More Wallet tests --- rust-executor/src/wallet.rs | 93 +++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index 1fcba7ce6..fab272173 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -242,6 +242,18 @@ mod tests { //Test the encryption and decryption of a string use super::*; + #[test] + fn test_slice_to_u8_array() { + let slice: &[u8] = &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]; + let result = slice_to_u8_array(slice).unwrap(); + assert_eq!(slice, &result); + + let slice_short: &[u8] = &[1, 2, 3]; + let result = slice_to_u8_array(slice_short).unwrap(); + let expected: [u8; 32] = [1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + assert_eq!(expected, result); + } + #[test] fn test_encrypt_decrypt_multiple() { let passphrase = "test".to_string(); @@ -261,6 +273,18 @@ mod tests { assert_eq!(payload, decrypted.unwrap()); } + #[test] + fn test_encrypt_decrypt_wrong_passphrase() { + let passphrase = "test_passphrase".to_string(); + let wrong_passphrase = "wrong_passphrase".to_string(); + let payload = "test_payload".to_string(); + let encrypted = encrypt(payload.clone(), passphrase.clone()); + println!("Got encrypted: {}", encrypted); + assert_ne!(payload, encrypted); + let decrypted = decrypt(encrypted, wrong_passphrase); + assert_ne!(decrypted.unwrap(), payload); + } + #[test] fn test_create_and_get_key() { let mut wallet = Wallet::new(); @@ -273,4 +297,73 @@ mod tests { assert!(wallet.get_public_key(&name).is_some()); assert!(wallet.get_secret_key(&name).is_some()); } + + #[test] + fn test_wallet_did_document_generation() { + let mut wallet = Wallet::new(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + let did_document = wallet.get_did_document(&key_name); + + assert!(did_document.is_some()); + } + + #[test] + fn test_wallet_signing() { + let mut wallet = Wallet::new(); + let key_name = "test_key".to_string(); + let message = b"test message"; + + wallet.generate_keypair(key_name.clone()); + let signature = wallet.sign(&key_name, message); + + assert!(signature.is_some()); + } + + #[test] + fn test_wallet_lock_unlock() { + let mut wallet = Wallet::new(); + let passphrase = "test_passphrase".to_string(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + wallet.lock(passphrase.clone()); + assert!(!wallet.is_unlocked()); + let unlock_result = wallet.unlock(passphrase.clone()); + assert!(unlock_result.is_ok()); + assert!(wallet.is_unlocked()); + } + + #[test] + fn test_wallet_lock_unlock_wrong_passphrase() { + let mut wallet = Wallet::new(); + let passphrase = "test_passphrase".to_string(); + let wrong_passphrase = "wrong_passphrase".to_string(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + wallet.lock(passphrase.clone()); + assert!(!wallet.is_unlocked()); + let unlock_result = wallet.unlock(wrong_passphrase); + assert!(unlock_result.is_err()); + assert!(!wallet.is_unlocked()); + } + + #[test] + fn test_wallet_export_and_load() { + let mut wallet = Wallet::new(); + let passphrase = "test_passphrase".to_string(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + let exported_data = wallet.export(passphrase.clone()); + assert!(!exported_data.is_empty()); + + let mut new_wallet = Wallet::new(); + new_wallet.load(exported_data); + let unlock_result = new_wallet.unlock(passphrase); + assert!(unlock_result.is_ok()); + assert!(new_wallet.is_unlocked()); + } } From a26b351e694476bf86fd27b7572fcb9fd34ed584 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 12 Apr 2023 21:26:16 +0200 Subject: [PATCH 148/722] Fix crypto --- rust-executor/src/wallet.rs | 42 +++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index fab272173..efa977830 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -2,6 +2,7 @@ use argon2::password_hash::Salt; use argon2::{self, Argon2, PasswordHasher}; use base64::Engine; use crypto_box::aead::Aead; +use crypto_box::aead::generic_array::GenericArray; use crypto_box::{Nonce, PublicKey as cPublicKey, SalsaBox, SecretKey as cSecretKey}; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; @@ -34,8 +35,19 @@ fn slice_to_u8_array(slice: &[u8]) -> Option<[u8; 32]> { array.ok() } +fn padded(passphrase: String) -> String { + let mut passphrase = passphrase.clone(); + while passphrase.len() < 32 { + passphrase.push(' '); + } + passphrase +} + + fn encrypt(payload: String, passphrase: String) -> String { - let salt = Salt::from_b64("0000000000000000").expect("salt from zeros to work"); + let passphrase = padded(passphrase); + let b64_passphrase = base64::engine::general_purpose::STANDARD_NO_PAD.encode(passphrase.as_bytes()); + let salt = Salt::from_b64(&b64_passphrase).expect("salt from passphrase to work"); // Derive secret key from passphrase let argon2 = Argon2::default(); @@ -44,26 +56,32 @@ fn encrypt(payload: String, passphrase: String) -> String { .hash_password(passphrase.as_bytes(), salt) .unwrap() .to_string(); + + let preambel = "$argon2id$v=19$m=19456,t=2,p=1$"; + let derived_secret_key = derived_secret_key.replace(preambel, ""); + let derived_secret_key_bytes = derived_secret_key.as_bytes(); - let secret_key = cSecretKey::from( - slice_to_u8_array(derived_secret_key_bytes).expect("Could not slice to u8 array"), - ); + let slice = slice_to_u8_array(derived_secret_key_bytes).expect("Could not slice to u8 array"); + let secret_key = cSecretKey::from(slice); let public_key = cPublicKey::from(&secret_key); // Create the Box (encryptor/decryptor) using the derived secret key and the public key let crypto_box = SalsaBox::new(&public_key, &secret_key); //let nonce = SalsaBox::generate_nonce(&mut OsRng); + //let nonce: GenericArray = [0u8; 24].into(); let nonce = Nonce::default(); // Encrypt - let encrypted_data = crypto_box.encrypt(&nonce, payload.as_bytes()).unwrap(); + let encrypted_data = crypto_box.encrypt(&nonce.into(), payload.as_bytes()).unwrap(); base64::engine::general_purpose::STANDARD_NO_PAD.encode(encrypted_data) } fn decrypt(payload: String, passphrase: String) -> Result { - let salt = Salt::from_b64("0000000000000000").expect("salt from zeros to work"); + let passphrase = padded(passphrase); + let b64_passphrase = base64::engine::general_purpose::STANDARD_NO_PAD.encode(passphrase.as_bytes()); + let salt = Salt::from_b64(&b64_passphrase).expect("salt from passphrase to work"); // Derive secret key from passphrase let argon2 = Argon2::default(); @@ -71,10 +89,12 @@ fn decrypt(payload: String, passphrase: String) -> Result Result Date: Wed, 12 Apr 2023 21:32:21 +0200 Subject: [PATCH 149/722] Get rid of warnings. Add wallet_sign() --- rust-executor/src/js_core/options.rs | 8 ++----- rust-executor/src/js_core/wallet_extension.js | 3 +++ rust-executor/src/js_core/wallet_extension.rs | 24 ++++++++++++------- rust-executor/src/utils.rs | 1 + rust-executor/src/wallet.rs | 1 - 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs index 4caa6f92c..0c0f5fab8 100644 --- a/rust-executor/src/js_core/options.rs +++ b/rust-executor/src/js_core/options.rs @@ -1,9 +1,5 @@ -use deno_core::{Extension, include_js_files, error::AnyError, op}; -use deno_runtime::{ - deno_broadcast_channel::InMemoryBroadcastChannel, deno_web::BlobStore, worker::WorkerOptions, - BootstrapOptions, -}; -use std::{collections::HashMap, rc::Rc, sync::Arc}; +use deno_runtime::worker::WorkerOptions; +use std::{collections::HashMap, rc::Rc}; use url::Url; use super::{string_module_loader::StringModuleLoader, wallet_extension}; diff --git a/rust-executor/src/js_core/wallet_extension.js b/rust-executor/src/js_core/wallet_extension.js index b06757a42..b3af6b58a 100644 --- a/rust-executor/src/js_core/wallet_extension.js +++ b/rust-executor/src/js_core/wallet_extension.js @@ -26,6 +26,9 @@ load: (data) => { return core.ops.wallet_load(data); }, + sign: (payload) => { + return core.ops.wallet_sign(payload); + } }; })(globalThis); \ No newline at end of file diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index a45b10d92..b5d5f7498 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -1,17 +1,9 @@ use deno_core::{anyhow::anyhow, error::AnyError, op, Extension, include_js_files}; -use secp256k1::SecretKey; -use base64::{Engine as _, engine::{self, general_purpose as base64engine}}; +use base64::{Engine as _, engine::{general_purpose as base64engine}}; use serde::{Deserialize, Serialize}; use crate::wallet::Wallet; -fn secret_key_to_hex(secret_key: &SecretKey) -> String { - let secret_key_bytes = secret_key.as_ref(); // Convert SecretKey to byte array - let secret_key_hex = hex::encode(secret_key_bytes); // Encode the byte array as a hex string - secret_key_hex -} - - #[derive(Serialize, Deserialize, Clone)] pub struct Key { pub public_key: String, @@ -37,6 +29,7 @@ fn wallet_get_main_key() -> Result { #[op] fn wallet_get_main_key_document() -> Result { + println!("wallet_get_main_key_document 1"); let wallet_instance = Wallet::instance(); let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); @@ -47,10 +40,12 @@ fn wallet_get_main_key_document() -> Result { #[op] fn wallet_create_main_key() -> Result<(), AnyError> { + println!("wallet_create_main_key 1"); let wallet_instance = Wallet::instance(); let mut wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_mut().expect("wallet instance"); wallet_ref.generate_keypair("main".to_string()); + println!("wallet_create_main_key 2"); Ok(()) } @@ -94,6 +89,16 @@ fn wallet_load(data: String) -> Result<(), AnyError> { Ok(wallet_ref.load(data)) } +#[op] +fn wallet_sign(payload: String) -> Result { + let wallet_instance = Wallet::instance(); + let wallet = wallet_instance.lock().expect("wallet lock"); + let wallet_ref = wallet.as_ref().expect("wallet instance"); + let name = "main".to_string(); + let signature = wallet_ref.sign(&name, payload.as_bytes()).ok_or(anyhow!("main key not found. call createMainKey() first"))?; + Ok(base64engine::STANDARD.encode(signature)) +} + pub fn build() -> Extension { Extension::builder("wallet") .js(include_js_files!(wallet "wallet_extension.js",)) @@ -106,6 +111,7 @@ pub fn build() -> Extension { wallet_lock::decl(), wallet_export::decl(), wallet_load::decl(), + wallet_sign::decl(), ]) .force_op_registration() .build() diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs index cef49d51f..dd696169c 100644 --- a/rust-executor/src/utils.rs +++ b/rust-executor/src/utils.rs @@ -22,6 +22,7 @@ pub(crate) fn write_zip(zip_data: Vec, target_path: PathBuf) { for i in 0..archive.len() { let mut file = archive.by_index(i).unwrap(); let mut outpath = target_path.clone(); + #[allow(deprecated)] outpath.push(file.sanitized_name()); if file.is_dir() { diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index efa977830..6470613ea 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -2,7 +2,6 @@ use argon2::password_hash::Salt; use argon2::{self, Argon2, PasswordHasher}; use base64::Engine; use crypto_box::aead::Aead; -use crypto_box::aead::generic_array::GenericArray; use crypto_box::{Nonce, PublicKey as cPublicKey, SalsaBox, SecretKey as cSecretKey}; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; From 90060e58defbc30ca59a28444a7addfd697d7761 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 12 Apr 2023 21:40:25 +0200 Subject: [PATCH 150/722] Fix saving of agent wallet --- executor/src/core/agent/AgentService.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index b7e693d1f..e5a829b32 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -267,22 +267,16 @@ export default class AgentService { } async save(password: string) { - // @ts-ignore - WALLET.lock(password); - const dump = { did: this.#did, didDocument: this.#didDocument, signingKeyId: this.#signingKeyId, // @ts-ignore - keystore: WALLET.export(), + keystore: WALLET.export(password), agent: this.#agent, }; fs.writeFileSync(this.#file, JSON.stringify(dump)); - - // @ts-ignore - await WALLET.unlock(password); this.#readyPromiseResolve!(); } From 6e092e21be88a0b9b525f1ad34a4f31cb1d0361e Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 12 Apr 2023 21:41:18 +0200 Subject: [PATCH 151/722] Remove println!s --- rust-executor/src/js_core/wallet_extension.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index b5d5f7498..c0922f780 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -29,23 +29,19 @@ fn wallet_get_main_key() -> Result { #[op] fn wallet_get_main_key_document() -> Result { - println!("wallet_get_main_key_document 1"); let wallet_instance = Wallet::instance(); let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); - println!("wallet_get_main_key_document "); let name = "main".to_string(); wallet_ref.get_did_document(&name).ok_or(anyhow!("main key not found. call createMainKey() first")) } #[op] fn wallet_create_main_key() -> Result<(), AnyError> { - println!("wallet_create_main_key 1"); let wallet_instance = Wallet::instance(); let mut wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_mut().expect("wallet instance"); wallet_ref.generate_keypair("main".to_string()); - println!("wallet_create_main_key 2"); Ok(()) } From 493af964a43e5a36890f580025212787298da270 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 12 Apr 2023 21:44:24 +0200 Subject: [PATCH 152/722] Avoid other INFO logs. wasmer is pretty noisy. --- rust-executor/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 4b0d5ae7a..5700367dd 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -15,7 +15,7 @@ use js_core::JsCore; #[tokio::main] async fn main() { - env::set_var("RUST_LOG", "info"); + env::set_var("RUST_LOG", "rust_executor=info"); env_logger::init(); info!("Starting js_core..."); From a0588b94f45a303181df0d1e82b7dd071bffdd6f Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 13 Apr 2023 11:59:37 +0200 Subject: [PATCH 153/722] WIP: async JS scripts --- rust-executor/src/js_core/mod.rs | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index c92d4ee96..d471a8b86 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -141,6 +141,24 @@ impl JsCore { )) } + fn execute_async(&self, script: String) -> Result { + let mut worker = self + .worker + .lock() + .expect("execute_async(): couldn't lock worker"); + let wrapped_script = format!(r#" + globalThis.asyncResult = undefined + (async () => {{ + globalThis.asyncResult = ({}); + }})(); + "#, script); + let _execute_async = worker.execute_script("js_core", wrapped_script)?; + Ok(GlobalVariableFuture::new( + self.worker.clone(), + "asyncResult".to_string(), + )) + } + pub fn start(config: Ad4mConfig) -> JsCoreHandle { let (tx_inside, rx_outside) = broadcast::channel::(50); let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); @@ -186,10 +204,25 @@ impl JsCore { } } + let mut current_script_future = None; // Until stop was request via message // wait for new messages, execute them // and concurrently run the event loop loop { + if current_script_future.is_none() { + if let Ok(request) = rx_inside.try_recv() { + current_script_future = Some(js_core + .execute_async(request.script) + .expect("couldn't spawn JS script")); + } + } + + if let Some(current_script_future) = current_script_future { + // run event loop and current script concurrently with select! + } else { + // poll event loop only + } + tokio::select! { event_loop_result = js_core.event_loop() => { match event_loop_result { From bc82c6ff62ca63ba4a757102bf581dfa6fa105b0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 13 Apr 2023 11:42:18 +0100 Subject: [PATCH 154/722] fix init so it uses generated or supplied app data path correctly --- rust-executor/src/config.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs index 7d1c41456..47e799ea4 100644 --- a/rust-executor/src/config.rs +++ b/rust-executor/src/config.rs @@ -1,5 +1,6 @@ use crate::utils; use serde::{Deserialize, Serialize}; +use std::path::PathBuf; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] @@ -30,7 +31,7 @@ impl Ad4mConfig { ); } if self.resource_path.is_none() { - let mut data_path = utils::ad4m_data_directory(); + let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); data_path.push("binary"); self.resource_path = Some( data_path @@ -40,7 +41,7 @@ impl Ad4mConfig { ); } if self.network_bootstrap_seed.is_none() { - let mut data_path = utils::ad4m_data_directory(); + let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); data_path.push("mainnet_seed.seed"); self.network_bootstrap_seed = Some( data_path @@ -56,13 +57,13 @@ impl Ad4mConfig { self.run_dapp_server = Some(true); } if self.gql_port.is_none() { - self.gql_port = Some(14000); + self.gql_port = Some(4000); } if self.connect_holochain.is_none() { self.connect_holochain = Some(false); } if self.swipl_path.is_none() { - let mut data_path = utils::ad4m_data_directory(); + let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); //If OS is windows push swipl/ if cfg!(windows) { data_path.push("swipl"); @@ -79,7 +80,7 @@ impl Ad4mConfig { ); } if self.swipl_home_path.is_none() { - let mut data_path = utils::ad4m_data_directory(); + let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); data_path.push("swipl/bin/swipl"); self.swipl_home_path = Some( data_path From da49b3c780db263177f0e6bd9ef6bae3e68afd90 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 13 Apr 2023 13:36:52 +0100 Subject: [PATCH 155/722] allow for running async js functions in deno js core runtime --- rust-executor/src/graphql/mod.rs | 9 +- .../src/graphql/mutation_resolvers.rs | 3 +- rust-executor/src/js_core/futures.rs | 12 +- rust-executor/src/js_core/mod.rs | 110 +++++++++--------- 4 files changed, 67 insertions(+), 67 deletions(-) diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index 221b094e0..bc6e1d0a7 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -65,12 +65,17 @@ pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> .route(web::post().to(graphql_route)) .route(web::get().to(graphql_route)), ) + .service( + web::resource("/graphql") + .route(web::post().to(graphql_route)) + .route(web::get().to(graphql_route)), + ) .service(web::resource("/playground").route(web::get().to(playground_route))) .service(web::resource("/graphiql").route(web::get().to(graphiql_route))) }); server - .bind("127.0.0.1:8080") - .expect("Could not bind to port 8080") + .bind("127.0.0.1:4000") + .expect("Could not bind to port 4000") .run() .await .map_err(|e| e.into()) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index dd91cf336..bead31c7b 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -107,7 +107,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentGenerate( + await core.resolvers.Mutation.agentGenerate( null, {{ passphrase: "{}" }}, {{ capabilities: [{}] }} @@ -116,7 +116,6 @@ impl Mutation { passphrase, ALL_CAPABILITY ); let result = js.execute(script).await?; - println!("got result back: {:?}", result); let s: AgentStatus = serde_json::from_str(&result)?; Ok(s) } diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs index 6ad3e06c2..67e686c3b 100644 --- a/rust-executor/src/js_core/futures.rs +++ b/rust-executor/src/js_core/futures.rs @@ -37,15 +37,15 @@ impl GlobalVariableFuture { } impl Future for GlobalVariableFuture { - type Output = Result<(), AnyError>; // You can customize the output type. + type Output = Result; // You can customize the output type. fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll { let mut worker = self.worker.lock().unwrap(); - if let Ok(value) = worker.execute_script("global_var_future", self.name.clone()) { + if let Ok(global_value) = worker.execute_script("global_var_future", self.name.clone()) { let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); let context = v8::Context::new(scope); let scope = &mut v8::ContextScope::new(scope, context); - let value = v8::Local::new(scope, value); + let value = v8::Local::new(scope, global_value.clone()); if value.is_promise() { let promise = v8::Local::::try_from(value).unwrap(); @@ -53,12 +53,14 @@ impl Future for GlobalVariableFuture { return Poll::Pending; } else { //let result = promise.result(); - return Poll::Ready(Ok(())); + let value = value.to_rust_string_lossy(scope); + return Poll::Ready(Ok(value)); } } else if value.is_undefined() { return Poll::Pending; } else { - return Poll::Ready(Ok(())); + let value = value.to_rust_string_lossy(scope); + return Poll::Ready(Ok(value)); } } else { return Poll::Pending; diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index d471a8b86..d27c86454 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -1,7 +1,6 @@ use actix::prelude::*; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; -use deno_core::v8; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; use log::{error, info}; @@ -146,12 +145,15 @@ impl JsCore { .worker .lock() .expect("execute_async(): couldn't lock worker"); - let wrapped_script = format!(r#" - globalThis.asyncResult = undefined + let wrapped_script = format!( + r#" + globalThis.asyncResult = undefined; (async () => {{ globalThis.asyncResult = ({}); }})(); - "#, script); + "#, + script + ); let _execute_async = worker.execute_script("js_core", wrapped_script)?; Ok(GlobalVariableFuture::new( self.worker.clone(), @@ -179,7 +181,9 @@ impl JsCore { rt.block_on(async { let local = LocalSet::new(); let tx_cloned = tx_inside.clone(); - let init_core_future = js_core.init_core(config).expect("couldn't spawn JS initCore()"); + let init_core_future = js_core + .init_core(config) + .expect("couldn't spawn JS initCore()"); // Run the local task set. let run_until = local.run_until(async move { @@ -195,7 +199,9 @@ impl JsCore { .expect("couldn't send on channel"); }); tokio::select! { - _init_core_result = run_until => {} + _init_core_result = run_until => { + info!("AD4M initCore() finished"); + } event_loop_result = js_core.event_loop() => { match event_loop_result { Ok(_) => info!("AD4M event loop finished"), @@ -204,25 +210,46 @@ impl JsCore { } } - let mut current_script_future = None; - // Until stop was request via message - // wait for new messages, execute them - // and concurrently run the event loop + info!("AD4M init complete, starting await loop waiting for requests"); + loop { - if current_script_future.is_none() { - if let Ok(request) = rx_inside.try_recv() { - current_script_future = Some(js_core - .execute_async(request.script) - .expect("couldn't spawn JS script")); + let receive_fut = async { + while let Some(request) = rx_inside.recv().await { + let tx_cloned = tx_inside.clone(); + let script = request.script; + let id = request.id; + match js_core.execute_async(script) { + Ok(execute_async_future) => match execute_async_future.await { + Ok(result) => { + tx_inside + .send(JsCoreResponse { + result: Ok(result), + id: id, + }) + .expect("couldn't send on channel"); + } + Err(err) => { + tx_cloned + .send(JsCoreResponse { + result: Err(err.to_string()), + id, + }) + .expect("couldn't send on channel"); + } + }, + Err(err) => { + tx_cloned + .send(JsCoreResponse { + result: Err(err.to_string()), + id, + }) + .expect("couldn't send on channel"); + continue; + } + } } - } + }; - if let Some(current_script_future) = current_script_future { - // run event loop and current script concurrently with select! - } else { - // poll event loop only - } - tokio::select! { event_loop_result = js_core.event_loop() => { match event_loop_result { @@ -233,45 +260,12 @@ impl JsCore { } } } - request = rx_inside.recv() => { - match request { - Some(request) => { - let mut worker = js_core.worker.lock().expect("request loop: couldn't lock worker"); - match worker.execute_script("js_core", request.script) { - Ok(result) => { - // evaluate deno result into String - let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); - let context = v8::Context::new(scope); - let scope = &mut v8::ContextScope::new(scope, context); - let value = v8::Local::new(scope, result); - //let value: v8::Local = unsafe { v8::Local::cast(value) }; - let value = value.to_rust_string_lossy(scope); - tx_inside - .send(JsCoreResponse { - result: Ok(value), - id: request.id, - }) - .expect("couldn't send on channel"); - }, - Err(err) => { - tx_inside - .send(JsCoreResponse { - result: Err(err.to_string()), - id: request.id, - }) - .expect("couldn't send on channel"); - } - } - } - None => { - error!("AD4M event loop closed"); - break; - } - } + _request = receive_fut => { + info!("AD4M receive_fut finished"); + break; } } } - }) }); From 4ce2a69058ccfc7bf556cdc8efe8ec56edd40cc0 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 13 Apr 2023 22:51:50 +0200 Subject: [PATCH 156/722] Use holochain-client fork --- executor/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/package.json b/executor/package.json index 3a56ea7b8..fc0f2a9e0 100644 --- a/executor/package.json +++ b/executor/package.json @@ -75,7 +75,7 @@ "unzipper": "^0.10.11" }, "dependencies": { - "@holochain/client": "0.12.5", + "@holochain/client": "perspect3vism/holochain-client-js", "@noble/secp256k1": "^1.7.0", "@perspect3vism/ad4m": "*", "@transmute/did-key-ed25519": "^0.2.1-unstable.29", From 0fff5f77055f93cc9ac1e6a141bfc3abd5b7a1f2 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 13 Apr 2023 22:02:54 +0100 Subject: [PATCH 157/722] add utils extension to deno runtime to allow fetching of signing.dna bytes from rust --- .../Holochain/HolochainService.ts | 12 +++------ executor/src/utils_extension.d.ts | 9 +++++++ rust-executor/.gitignore | 3 ++- rust-executor/src/globals.rs | 3 +++ rust-executor/src/js_core/mod.rs | 1 + rust-executor/src/js_core/options.rs | 5 ++-- rust-executor/src/js_core/utils_extension.js | 10 ++++++++ rust-executor/src/js_core/utils_extension.rs | 16 ++++++++++++ rust-executor/src/js_core/wallet_extension.rs | 25 ++++++++++++------- 9 files changed, 63 insertions(+), 21 deletions(-) create mode 100644 executor/src/utils_extension.d.ts create mode 100644 rust-executor/src/js_core/utils_extension.js create mode 100644 rust-executor/src/js_core/utils_extension.rs diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 859729d54..0c3020201 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -13,6 +13,7 @@ import { HolochainUnlockConfiguration } from '../../PerspectivismCore' import EntanglementProofController from '../../EntanglementProof' import AgentService from '../../agent/AgentService' //import fetch from "node-fetch"; +import "../../../utils_extension"; export const bootstrapUrl = "https://bootstrap.holo.host" export const kitsuneProxy = "kitsune-proxy://f3gH2VMkJ4qvZJOXx0ccL_Zo5n-s_CnBjSzAsEHHDCA/kitsune-quic/h/137.184.142.208/p/5788/--" @@ -195,15 +196,8 @@ export default class HolochainService { const activeApps = await this.#adminWebsocket!.listApps({}); if (!activeApps.map(value => value.installed_app_id).includes("signing_service")) { const dest = path.join(this.#dataPath, "signing.dna"); - const res = await fetch(`https://github.com/perspect3vism/signing-service/releases/download/${signingServiceVersion}/signing.dna`); - const fileStream = fs.createWriteStream(dest); - await new Promise((resolve, reject) => { - // @ts-ignore - res.body.pipe(fileStream); - // @ts-ignore - res.body.on("error", reject); - fileStream.on("finish", resolve); - }); + const signingServiceBytes = UTILS.getSigningDNA(); + fs.writeFileSync(dest, signingServiceBytes); const dnas = [ { diff --git a/executor/src/utils_extension.d.ts b/executor/src/utils_extension.d.ts new file mode 100644 index 000000000..9608d9ba3 --- /dev/null +++ b/executor/src/utils_extension.d.ts @@ -0,0 +1,9 @@ +declare global { + interface Utils { + getSigningDNA: () => Uint8Array; + } + + const UTILS: Utils; +} + +export {}; \ No newline at end of file diff --git a/rust-executor/.gitignore b/rust-executor/.gitignore index c88dea28e..f71322bb6 100644 --- a/rust-executor/.gitignore +++ b/rust-executor/.gitignore @@ -1,3 +1,4 @@ !graphql-checker/index.js schema.json -schema.gql \ No newline at end of file +schema.gql +!src/js_core/utils_extension.js \ No newline at end of file diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index f1f04c27f..d1d76f095 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -30,3 +30,6 @@ pub const HC_BIN: &[u8] = include_bytes!("../temp/hc"); /// Binary data of swipl binary, included at buildtime from the swipl binary pub const SWIPL_ZIP: &[u8] = include_bytes!("../temp/swipl.zip"); + +/// Binary data of dna containing the signing service; todo this should be removed and use the lair service directly once we have that in rust +pub const SIGNING_DNA: &[u8] = include_bytes!("../temp/signing.dna"); diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index d27c86454..7bf560815 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -16,6 +16,7 @@ use tokio::task::LocalSet; mod futures; mod options; mod string_module_loader; +mod utils_extension; mod wallet_extension; use self::futures::{EventLoopFuture, GlobalVariableFuture}; diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs index 0c0f5fab8..0d5620b34 100644 --- a/rust-executor/src/js_core/options.rs +++ b/rust-executor/src/js_core/options.rs @@ -2,7 +2,7 @@ use deno_runtime::worker::WorkerOptions; use std::{collections::HashMap, rc::Rc}; use url::Url; -use super::{string_module_loader::StringModuleLoader, wallet_extension}; +use super::{string_module_loader::StringModuleLoader, utils_extension, wallet_extension}; pub fn main_module_url() -> Url { Url::parse("https://ad4m.runtime/main").unwrap() @@ -32,9 +32,10 @@ pub fn main_worker_options() -> WorkerOptions { } let wallet_ext = wallet_extension::build(); + let utils_ext = utils_extension::build(); WorkerOptions { - extensions: vec![wallet_ext], + extensions: vec![wallet_ext, utils_ext], module_loader: Rc::new(loader), ..Default::default() } diff --git a/rust-executor/src/js_core/utils_extension.js b/rust-executor/src/js_core/utils_extension.js new file mode 100644 index 000000000..9f8870c14 --- /dev/null +++ b/rust-executor/src/js_core/utils_extension.js @@ -0,0 +1,10 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.UTILS = { + getSigningDNA: () => { + return core.ops.get_signing_dna(); + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs new file mode 100644 index 000000000..b9aebab5a --- /dev/null +++ b/rust-executor/src/js_core/utils_extension.rs @@ -0,0 +1,16 @@ +use deno_core::{error::AnyError, include_js_files, op, Extension}; + +use crate::globals::SIGNING_DNA; + +#[op] +fn get_signing_dna() -> Result, AnyError> { + Ok(SIGNING_DNA.to_vec()) +} + +pub fn build() -> Extension { + Extension::builder("wallet") + .js(include_js_files!(wallet "utils_extension.js",)) + .ops(vec![get_signing_dna::decl()]) + .force_op_registration() + .build() +} diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index c0922f780..1d3dc1c22 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -1,5 +1,5 @@ -use deno_core::{anyhow::anyhow, error::AnyError, op, Extension, include_js_files}; -use base64::{Engine as _, engine::{general_purpose as base64engine}}; +use base64::{engine::general_purpose as base64engine, Engine as _}; +use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension}; use serde::{Deserialize, Serialize}; use crate::wallet::Wallet; @@ -17,8 +17,12 @@ fn wallet_get_main_key() -> Result { let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); let name = "main".to_string(); - let public_key = wallet_ref.get_public_key(&name).ok_or(anyhow!("main key not found. call createMainKey() first"))?; - let private_key = wallet_ref.get_secret_key(&name).ok_or(anyhow!("main key not found. call createMainKey() first"))?; + let public_key = wallet_ref + .get_public_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + let private_key = wallet_ref + .get_secret_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; Ok(Key { public_key: base64engine::STANDARD.encode(public_key), private_key: base64engine::STANDARD.encode(private_key), @@ -26,14 +30,15 @@ fn wallet_get_main_key() -> Result { }) } - #[op] fn wallet_get_main_key_document() -> Result { let wallet_instance = Wallet::instance(); let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); let name = "main".to_string(); - wallet_ref.get_did_document(&name).ok_or(anyhow!("main key not found. call createMainKey() first")) + wallet_ref + .get_did_document(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first")) } #[op] @@ -91,7 +96,9 @@ fn wallet_sign(payload: String) -> Result { let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); let name = "main".to_string(); - let signature = wallet_ref.sign(&name, payload.as_bytes()).ok_or(anyhow!("main key not found. call createMainKey() first"))?; + let signature = wallet_ref + .sign(&name, payload.as_bytes()) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; Ok(base64engine::STANDARD.encode(signature)) } @@ -109,6 +116,6 @@ pub fn build() -> Extension { wallet_load::decl(), wallet_sign::decl(), ]) - .force_op_registration() + .force_op_registration() .build() -} \ No newline at end of file +} From ab9e6858f15d23d446bd510aade141751a5bc950 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 13 Apr 2023 23:16:21 +0200 Subject: [PATCH 158/722] Add revision to holochain-client dep --- executor/package.json | 2 +- yarn.lock | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/executor/package.json b/executor/package.json index fc0f2a9e0..95199b2e4 100644 --- a/executor/package.json +++ b/executor/package.json @@ -75,7 +75,7 @@ "unzipper": "^0.10.11" }, "dependencies": { - "@holochain/client": "perspect3vism/holochain-client-js", + "@holochain/client": "perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b", "@noble/secp256k1": "^1.7.0", "@perspect3vism/ad4m": "*", "@transmute/did-key-ed25519": "^0.2.1-unstable.29", diff --git a/yarn.lock b/yarn.lock index c4884a3bb..eed01a3c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1837,6 +1837,19 @@ lodash-es "^4.17.21" tweetnacl "^1.0.3" +"@holochain/client@perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b": + version "0.12.5" + resolved "https://codeload.github.com/perspect3vism/holochain-client-js/tar.gz/2f3a436b6d28344b0aca883ef3dc229cd042c04b" + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + "@holochain/serialization@^0.1.0-beta-rc.3": version "0.1.0-beta-rc.3" resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" From dbb47786a57f26fd9425cb56073de03f54712f25 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 13 Apr 2023 23:39:09 +0200 Subject: [PATCH 159/722] Make writing of signing service from utils work --- .../src/core/storage-services/Holochain/HolochainService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 0c3020201..dfcd6b096 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -13,7 +13,7 @@ import { HolochainUnlockConfiguration } from '../../PerspectivismCore' import EntanglementProofController from '../../EntanglementProof' import AgentService from '../../agent/AgentService' //import fetch from "node-fetch"; -import "../../../utils_extension"; + export const bootstrapUrl = "https://bootstrap.holo.host" export const kitsuneProxy = "kitsune-proxy://f3gH2VMkJ4qvZJOXx0ccL_Zo5n-s_CnBjSzAsEHHDCA/kitsune-quic/h/137.184.142.208/p/5788/--" @@ -197,7 +197,7 @@ export default class HolochainService { if (!activeApps.map(value => value.installed_app_id).includes("signing_service")) { const dest = path.join(this.#dataPath, "signing.dna"); const signingServiceBytes = UTILS.getSigningDNA(); - fs.writeFileSync(dest, signingServiceBytes); + fs.writeFileSync(dest, Buffer.from(signingServiceBytes)); const dnas = [ { From 0a3001758c41e976666dcef90f70bf9db88e21aa Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 13 Apr 2023 23:40:20 +0200 Subject: [PATCH 160/722] Replace aloe-node with aloe for deno --- executor/.gitignore | 3 ++- executor/scripts/bundle.js | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/executor/.gitignore b/executor/.gitignore index 93628e0ac..aa3cd1cca 100644 --- a/executor/.gitignore +++ b/executor/.gitignore @@ -1,4 +1,5 @@ tst-tmp temp -deno* \ No newline at end of file +deno* +AloeDB-0.9.0 diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js index 2c74ce99a..1e9e862eb 100644 --- a/executor/scripts/bundle.js +++ b/executor/scripts/bundle.js @@ -84,6 +84,14 @@ esbuild }); }, }, + { + name: `aloe`, + setup(build) { + build.onResolve({ filter: new RegExp(`^aloedb-node$`) }, (args) => { + return { path: path.resolve(`AloeDB-0.9.0/mod.ts`), external: false }; + }); + }, + } ], }) From 9239ace1d84f7f49aeb83df6d0d57c8ec1d10c47 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 14 Apr 2023 00:10:21 +0200 Subject: [PATCH 161/722] WIP: implement ipfsHash() with multiformats instead of IPFS.add() --- executor/package.json | 1 + executor/src/core/LanguageController.ts | 19 ++++++++++++++++--- yarn.lock | 5 +++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/executor/package.json b/executor/package.json index 95199b2e4..d7f6f4131 100644 --- a/executor/package.json +++ b/executor/package.json @@ -66,6 +66,7 @@ "esbuild-plugin-polyfill-node": "^0.2.0", "faker": "^5.1.0", "mocha": "*", + "multiformats": "11.0.2", "node-wget-js": "^1.0.1", "react": "^17.0.1", "sinon": "*", diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 81f3ff867..f744b9957 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -17,6 +17,10 @@ import RuntimeService from './RuntimeService'; import Signatures from './agent/Signatures'; import { PerspectivismDb } from './db'; import stringify from 'json-stable-stringify' +const crypto = require('crypto'); +const { CID } = require('multiformats'); +const { multicodec } = require('multiformats/codecs'); +const { multihash } = require('multiformats/hashes'); type LinkObservers = (diff: PerspectiveDiff, lang: LanguageRef)=>void; type TelepresenceSignalObserver = (signal: PerspectiveExpression, lang: LanguageRef)=>void; @@ -359,9 +363,18 @@ export default class LanguageController { } async ipfsHash(data: Buffer|string): Promise { - // @ts-ignore - const ipfsAddress = await this.#context.IPFS.add({content: data.toString()}, {onlyHash: true}) - return ipfsAddress.cid.toString() + // Calculate the SHA-256 hash + const hash = crypto.createHash('sha256'); + hash.update(data); + const digest = hash.digest(); + + // Create a multihash + const mhDigest = await multihash.encode(digest, 'sha2-256'); + + // Create a CID + const cid = new CID(1, multicodec.getCode('raw'), mhDigest); + + return cid.toString(); } async installLanguage(address: Address, languageMeta: null|Expression): Promise { diff --git a/yarn.lock b/yarn.lock index eed01a3c1..f98446064 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13859,6 +13859,11 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" +multiformats@11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60" + integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg== + multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.1: version "9.9.0" resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" From 9b53d512c5f1d973332bc246439a5f27715dd960 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 14 Apr 2023 13:31:54 +0100 Subject: [PATCH 162/722] init database files in executor if they do not exist --- executor/src/core/db.ts | 13 +++++++++++++ .../storage-services/Holochain/HolochainService.ts | 11 +++++++++++ 2 files changed, 24 insertions(+) diff --git a/executor/src/core/db.ts b/executor/src/core/db.ts index f63bc3e37..8ef12047c 100644 --- a/executor/src/core/db.ts +++ b/executor/src/core/db.ts @@ -1,5 +1,6 @@ import { Database } from 'aloedb-node' import path from 'path' +import fs from 'fs'; import type { Expression, LinkExpression, PerspectiveDiff } from "@perspect3vism/ad4m"; interface LinkSchema { @@ -30,6 +31,18 @@ export class PerspectivismDb { #diffDb: Database; constructor(dbPath?: string) { + let linkDbPath = dbPath ? path.join(dbPath, "links.json") : undefined; + let expressionDbPath = dbPath ? path.join(dbPath, "expression.json") : undefined; + let diffDbPath = dbPath ? path.join(dbPath, "diffs.json") : undefined; + if (linkDbPath && !fs.existsSync(linkDbPath)) { + fs.writeFileSync(linkDbPath, ""); + } + if (expressionDbPath && !fs.existsSync(expressionDbPath)) { + fs.writeFileSync(expressionDbPath, ""); + } + if (diffDbPath && !fs.existsSync(diffDbPath)) { + fs.writeFileSync(diffDbPath, ""); + } this.#linkDb = new Database(dbPath ? path.join(dbPath, "links.json") : undefined); this.#expressionDb = new Database(dbPath ? path.join(dbPath, "expression.json") : undefined); this.#diffDb = new Database(dbPath ? path.join(dbPath, "diffs.json") : undefined); diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index dfcd6b096..09c26223f 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -82,6 +82,17 @@ export default class HolochainService { console.log("HolochainService: Creating low-db instance for holochain-serivce"); this.#dataPath = dataPath + + let pubKeyDbPath = path.join(dataPath, 'holochain-service-pubkeys.json') + let signingCredentialsDbPath = path.join(dataPath, 'holochain-service-signing-credentials.json') + + if (!fs.existsSync(pubKeyDbPath)) { + fs.writeFileSync(pubKeyDbPath, ""); + } + if (!fs.existsSync(signingCredentialsDbPath)) { + fs.writeFileSync(signingCredentialsDbPath, ""); + } + this.#pubKeyDb = new Database(path.join(dataPath, 'holochain-service-pubkeys.json')) this.#signingCredentialsDb = new Database(path.join(dataPath, 'holochain-service-signing-credentials.json')) From 472412f9079b8399e2ecbcb75f44432306119bb2 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 14 Apr 2023 13:32:11 +0100 Subject: [PATCH 163/722] add hashing algorithm for language to rust & utils extension --- Cargo.lock | 147 ++++++++++++++++++- executor/package.json | 1 - executor/src/core/LanguageController.ts | 22 +-- executor/src/utils_extension.d.ts | 1 + rust-executor/Cargo.toml | 3 + rust-executor/src/js_core/utils_extension.js | 3 + rust-executor/src/js_core/utils_extension.rs | 19 ++- 7 files changed, 174 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 107ceae59..0618e72db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -806,6 +806,12 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + [[package]] name = "base16ct" version = "0.1.1" @@ -885,6 +891,41 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "blake2b_simd" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.2.5", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.2.5", +] + +[[package]] +name = "blake3" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq 0.2.5", +] + [[package]] name = "blanket" version = "0.2.0" @@ -1219,6 +1260,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "cid" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" +dependencies = [ + "core2", + "multibase", + "multihash", + "serde", + "unsigned-varint", +] + [[package]] name = "cipher" version = "0.3.0" @@ -1406,6 +1460,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "constant_time_eq" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" + [[package]] name = "convert_case" version = "0.4.0" @@ -1464,6 +1524,15 @@ dependencies = [ "libc", ] +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + [[package]] name = "cpufeatures" version = "0.2.5" @@ -1849,6 +1918,26 @@ version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +[[package]] +name = "data-encoding-macro" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +dependencies = [ + "data-encoding", + "syn 1.0.103", +] + [[package]] name = "data-url" version = "0.2.0" @@ -4796,6 +4885,48 @@ dependencies = [ "winapi", ] +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e5d911412e631e1de11eb313e4dd71f73fd964401102aab23d6c8327c431ba" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.6", + "multihash-derive", + "sha2 0.10.6", + "sha3", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", + "synstructure", +] + [[package]] name = "native-tls" version = "0.2.11" @@ -5731,11 +5862,10 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "once_cell", "thiserror", "toml", ] @@ -6186,6 +6316,7 @@ dependencies = [ "argon2", "base64 0.21.0", "chrono", + "cid", "clap", "crypto_box", "deno_core", @@ -6200,6 +6331,8 @@ dependencies = [ "juniper_subscriptions", "lazy_static", "log", + "multibase", + "multihash", "os_info", "rand 0.8.5", "secp256k1", @@ -8326,6 +8459,12 @@ dependencies = [ "destructure_traitobject", ] +[[package]] +name = "unsigned-varint" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" + [[package]] name = "untrusted" version = "0.7.1" @@ -9222,7 +9361,7 @@ dependencies = [ "aes 0.7.5", "byteorder", "bzip2", - "constant_time_eq", + "constant_time_eq 0.1.5", "crc32fast", "crossbeam-utils", "flate2", diff --git a/executor/package.json b/executor/package.json index d7f6f4131..95199b2e4 100644 --- a/executor/package.json +++ b/executor/package.json @@ -66,7 +66,6 @@ "esbuild-plugin-polyfill-node": "^0.2.0", "faker": "^5.1.0", "mocha": "*", - "multiformats": "11.0.2", "node-wget-js": "^1.0.1", "react": "^17.0.1", "sinon": "*", diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index f744b9957..756ae03ec 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -17,10 +17,6 @@ import RuntimeService from './RuntimeService'; import Signatures from './agent/Signatures'; import { PerspectivismDb } from './db'; import stringify from 'json-stable-stringify' -const crypto = require('crypto'); -const { CID } = require('multiformats'); -const { multicodec } = require('multiformats/codecs'); -const { multihash } = require('multiformats/hashes'); type LinkObservers = (diff: PerspectiveDiff, lang: LanguageRef)=>void; type TelepresenceSignalObserver = (signal: PerspectiveExpression, lang: LanguageRef)=>void; @@ -363,18 +359,12 @@ export default class LanguageController { } async ipfsHash(data: Buffer|string): Promise { - // Calculate the SHA-256 hash - const hash = crypto.createHash('sha256'); - hash.update(data); - const digest = hash.digest(); - - // Create a multihash - const mhDigest = await multihash.encode(digest, 'sha2-256'); - - // Create a CID - const cid = new CID(1, multicodec.getCode('raw'), mhDigest); - - return cid.toString(); + if (typeof data != "string") { + data = data.toString(); + } + const hash = UTILS.hash(data); + console.log("generated hash", hash); + return hash; } async installLanguage(address: Address, languageMeta: null|Expression): Promise { diff --git a/executor/src/utils_extension.d.ts b/executor/src/utils_extension.d.ts index 9608d9ba3..68bbe3e72 100644 --- a/executor/src/utils_extension.d.ts +++ b/executor/src/utils_extension.d.ts @@ -1,6 +1,7 @@ declare global { interface Utils { getSigningDNA: () => Uint8Array; + hash: (data: string | buffer) => string; } const UTILS: Utils; diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 54610d59a..6b488d69b 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -45,3 +45,6 @@ os_info = "3.7.0" semver = "1.0.17" did-key = "0.2.1" zip = "0.6.4" +multibase = "0.9.1" +multihash = { version = "0.18.0", features = ["sha2"] } +cid = "0.10.1" diff --git a/rust-executor/src/js_core/utils_extension.js b/rust-executor/src/js_core/utils_extension.js index 9f8870c14..505c562c0 100644 --- a/rust-executor/src/js_core/utils_extension.js +++ b/rust-executor/src/js_core/utils_extension.js @@ -4,6 +4,9 @@ globalThis.UTILS = { getSigningDNA: () => { return core.ops.get_signing_dna(); + }, + hash: (data) => { + return core.ops.hash(data); } }; })(globalThis); diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index b9aebab5a..15a9ebb7f 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -1,4 +1,7 @@ +use cid::Cid; use deno_core::{error::AnyError, include_js_files, op, Extension}; +use multibase::Base; +use multihash::{Code, MultihashDigest}; use crate::globals::SIGNING_DNA; @@ -7,10 +10,24 @@ fn get_signing_dna() -> Result, AnyError> { Ok(SIGNING_DNA.to_vec()) } +#[op] +fn hash(data: String) -> Result { + // Compute the SHA-256 multihash + let multihash = Code::Sha2_256.digest(data.as_bytes()); + + // Create a CID with default settings (version 1, DAG-Protobuf) + let cid = Cid::new_v1(0, multihash); + + // Encode the CID in base58btc (IPFS default) + let encoded_cid = multibase::encode(Base::Base58Btc, cid.to_bytes()); + + Ok(format!("Qm{}", encoded_cid)) +} + pub fn build() -> Extension { Extension::builder("wallet") .js(include_js_files!(wallet "utils_extension.js",)) - .ops(vec![get_signing_dna::decl()]) + .ops(vec![get_signing_dna::decl(), hash::decl()]) .force_op_registration() .build() } From efb55f44b7c8d9596bd3ac7e24eb4070e8f0760e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 14 Apr 2023 17:39:41 +0100 Subject: [PATCH 164/722] implement file loading for module loader --- .../src/js_core/string_module_loader.rs | 64 +++++++++++++++---- 1 file changed, 51 insertions(+), 13 deletions(-) diff --git a/rust-executor/src/js_core/string_module_loader.rs b/rust-executor/src/js_core/string_module_loader.rs index 272080cf0..c191cb898 100644 --- a/rust-executor/src/js_core/string_module_loader.rs +++ b/rust-executor/src/js_core/string_module_loader.rs @@ -1,10 +1,13 @@ use deno_core::anyhow; +use deno_core::error::generic_error; use deno_core::ModuleLoader; use deno_core::ModuleSource; use deno_core::ModuleSourceFuture; use deno_core::ModuleSpecifier; +use deno_core::ModuleType; use deno_core::ResolutionKind; use deno_runtime::deno_core::error::AnyError; +use log::info; use std::collections::HashMap; use std::pin::Pin; @@ -41,19 +44,54 @@ impl ModuleLoader for StringModuleLoader { _maybe_referrer: Option, _is_dyn_import: bool, ) -> Pin> { - let module_code = self.modules.get(module_specifier.as_str()).cloned(); - let module_specifier = module_specifier.clone(); - let fut = async move { - match module_code { - Some(code) => Ok(ModuleSource { - code: code.into(), - module_type: deno_core::ModuleType::JavaScript, - module_url_specified: module_specifier.clone().to_string(), - module_url_found: module_specifier.clone().to_string(), - }), - None => Err(anyhow::anyhow!("Module not found: {}", module_specifier)), + let path = module_specifier.to_file_path().map_err(|_| { + generic_error(format!( + "Provided module specifier \"{module_specifier}\" is not a file URL." + )) + }); + match path { + Ok(path) => { + let module_type = if let Some(extension) = path.extension() { + let ext = extension.to_string_lossy().to_lowercase(); + if ext == "json" { + ModuleType::Json + } else { + ModuleType::JavaScript + } + } else { + ModuleType::JavaScript + }; + + let code = + std::fs::read_to_string(path).expect("Could not read file path to string"); + let module_specifier = module_specifier.clone(); + let fut = async move { + Ok(ModuleSource { + code: code.into(), + module_type: module_type, + module_url_specified: module_specifier.to_string(), + module_url_found: module_specifier.to_string(), + }) + }; + Box::pin(fut) + } + Err(_err) => { + info!("Module is not a file path, importing as raw module string"); + let module_code = self.modules.get(module_specifier.as_str()).cloned(); + let module_specifier = module_specifier.clone(); + let fut = async move { + match module_code { + Some(code) => Ok(ModuleSource { + code: code.into(), + module_type: deno_core::ModuleType::JavaScript, + module_url_specified: module_specifier.clone().to_string(), + module_url_found: module_specifier.clone().to_string(), + }), + None => Err(anyhow::anyhow!("Module not found: {}", module_specifier)), + } + }; + Box::pin(fut) } - }; - Box::pin(fut) + } } } From 6adbfcc06f43ab0c115cb69d4753bcb46d9c8af7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 14 Apr 2023 17:43:03 +0100 Subject: [PATCH 165/722] add module loader to deno core ops & JsCore runtime --- executor/src/core/LanguageController.ts | 58 +++++----- executor/src/utils_extension.d.ts | 1 + rust-executor/src/js_core/mod.rs | 113 ++++++++++++++++++- rust-executor/src/js_core/utils_extension.js | 3 + rust-executor/src/js_core/utils_extension.rs | 20 +++- 5 files changed, 160 insertions(+), 35 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 756ae03ec..cd4713ee8 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -39,24 +39,28 @@ const importModule = async (modulePath: string) => { return await import(path) } - return await import(modulePath) -} - -const requireModule = async (modulePath: string) => { - return await require(modulePath) + return await import(`file://${modulePath}`) } const loadModule = async (modulePath: string) => { - try { - return await importModule(modulePath) - } catch (e1) { + // Check if the file exists try { - return await requireModule(modulePath) - } catch (e2) { - throw new ImportError(`Unable to import module ${modulePath}. Got error ${e1} when trying to import as es module\n - and error when trying to import as commonjs ${e2}`) + //@ts-ignore + await Deno.stat(modulePath); + } catch (err) { + //@ts-ignore + if (err instanceof Deno.errors.NotFound) { + throw new Error(`File not found: ${modulePath}`); + } + throw err; + } + const res = await UTILS.loadModule(`file://${modulePath}`); + + try { + return await importModule(`modulePath`) + } catch (e1) { + throw new ImportError(`Unable to import module at path: ${modulePath}. Got error: ${e1}}`) } - } } export default class LanguageController { @@ -219,23 +223,17 @@ export default class LanguageController { try { languageSource = await loadModule(sourceFilePath); } catch (e) { - const cjsPath = sourceFilePath.replace(".js", ".cjs"); - fs.copyFileSync(sourceFilePath, cjsPath); - try { - languageSource = await loadModule(cjsPath); - } catch (e) { - const errMsg = `Could not load language ${e}`; - console.error(errMsg); - this.pubSub.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, - { - title: "Failed to load installed language", - message: errMsg, - type: ExceptionType.LanguageIsNotLoaded - } as ExceptionInfo - ); - throw new Error(errMsg); - } + const errMsg = `Could not load language ${e}`; + console.error(errMsg); + this.pubSub.publish( + PubSub.EXCEPTION_OCCURRED_TOPIC, + { + title: "Failed to load installed language", + message: errMsg, + type: ExceptionType.LanguageIsNotLoaded + } as ExceptionInfo + ); + throw new Error(errMsg); } console.warn("LanguageController.loadLanguage: language loaded!"); let create; diff --git a/executor/src/utils_extension.d.ts b/executor/src/utils_extension.d.ts index 68bbe3e72..be1a35622 100644 --- a/executor/src/utils_extension.d.ts +++ b/executor/src/utils_extension.d.ts @@ -2,6 +2,7 @@ declare global { interface Utils { getSigningDNA: () => Uint8Array; hash: (data: string | buffer) => string; + async loadModule: (path: String) => string; } const UTILS: Utils; diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 7bf560815..cb89469cb 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -1,9 +1,12 @@ use actix::prelude::*; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; +use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; +use lazy_static::lazy_static; use log::{error, info}; +use std::env::current_dir; use std::sync::{Arc, Mutex}; use tokio::runtime::Builder; use tokio::sync::broadcast; @@ -23,6 +26,10 @@ use self::futures::{EventLoopFuture, GlobalVariableFuture}; use crate::Ad4mConfig; use options::{main_module_url, main_worker_options}; +lazy_static! { + pub static ref JS_CORE_HANDLE: Mutex> = Mutex::new(None); +} + /// Define message #[derive(Message)] #[rtype(result = "Result")] @@ -32,17 +39,22 @@ pub struct Execute { pub struct JsCoreHandle { rx: Receiver, + rx_module_load: Receiver, tx: UnboundedSender, - + tx_module_load: UnboundedSender, broadcast_tx: Sender, + broadcast_loader_tx: Sender, } impl Clone for JsCoreHandle { fn clone(&self) -> Self { JsCoreHandle { rx: self.broadcast_tx.subscribe(), + rx_module_load: self.broadcast_loader_tx.subscribe(), tx: self.tx.clone(), + tx_module_load: self.tx_module_load.clone(), broadcast_tx: self.broadcast_tx.clone(), + broadcast_loader_tx: self.broadcast_loader_tx.clone(), } } } @@ -81,6 +93,36 @@ impl JsCoreHandle { .result .map_err(|err| anyhow!(err)) } + + pub async fn load_module(&mut self, path: String) -> Result { + let id = uuid::Uuid::new_v4().to_string(); + self.tx_module_load + .send(JsCoreRequest { + script: path, + id: id.clone(), + }) + .expect("couldn't send on channel... it is likely that the main worker thread has crashed..."); + + let mut response = None; + while response.is_none() { + match self.rx_module_load.recv().await { + Ok(r) => { + if r.id == id { + response = Some(r); + } + } + Err(err) => { + error!("Error receiving on channel"); + return Err(anyhow!(err)); + } + } + } + + response + .expect("none case handle above") + .result + .map_err(|err| anyhow!(err)) + } } #[derive(Debug, Clone)] @@ -110,6 +152,15 @@ impl JsCore { } } + async fn load_module(&self, file_path: String) -> Result<(), AnyError> { + let mut worker = self.worker.lock().unwrap(); + let url = resolve_url_or_path(&file_path, current_dir()?.as_path())?; + let _module_id = worker.js_runtime.load_side_module(&url, None).await?; + //TODO; this likely needs to be run (although might be handled by the import in the js code when import() is called) + //worker.js_runtime.mod_evaluate(module_id); + Ok(()) + } + async fn init_engine(&self) { let mut worker = self .worker @@ -166,7 +217,11 @@ impl JsCore { let (tx_inside, rx_outside) = broadcast::channel::(50); let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); + let (tx_inside_loader, rx_outside_loader) = broadcast::channel::(50); + let (tx_outside_loader, mut rx_inside_loader) = mpsc::unbounded_channel::(); + let tx_inside_clone = tx_inside.clone(); + let tx_inside_loader_clone = tx_inside_loader.clone(); std::thread::spawn(move || { let rt = Builder::new_current_thread() .enable_all() @@ -214,6 +269,37 @@ impl JsCore { info!("AD4M init complete, starting await loop waiting for requests"); loop { + //Listener future for loading JS modules into runtime + let module_load_fut = async { + while let Some(request) = rx_inside_loader.recv().await { + let tx_loader_cloned = tx_inside_loader.clone(); + let script = request.script; + let id = request.id; + + match js_core.load_module(script).await { + Ok(()) => { + info!("Module loaded!"); + tx_inside_loader + .send(JsCoreResponse { + result: Ok(String::from("")), + id: id, + }) + .expect("couldn't send on channel"); + } + Err(err) => { + error!("Error loading module: {:?}", err); + tx_loader_cloned + .send(JsCoreResponse { + result: Err(err.to_string()), + id, + }) + .expect("couldn't send on channel"); + } + } + } + }; + + //Listener future for receiving script execution calls let receive_fut = async { while let Some(request) = rx_inside.recv().await { let tx_cloned = tx_inside.clone(); @@ -251,6 +337,10 @@ impl JsCore { } }; + //NOTE: WARNING!!!!!: Its is possible that if we get a request such as generate agent and then another to load a module, + //since the load module would complete first it will cause the request future to be "lost" and thus the graphql will not get a response + //we should track this and if required change the behaviour here so that we ensure we continue to run a receive_fut even in the case where + //a module_load_fut completes tokio::select! { event_loop_result = js_core.event_loop() => { match event_loop_result { @@ -262,7 +352,11 @@ impl JsCore { } } _request = receive_fut => { - info!("AD4M receive_fut finished"); + info!("AD4M receive_fut completed"); + break; + } + _module_load = module_load_fut => { + info!("AD4M module load completed"); break; } } @@ -270,10 +364,21 @@ impl JsCore { }) }); - JsCoreHandle { + let handle = JsCoreHandle { rx: rx_outside, tx: tx_outside, + rx_module_load: rx_outside_loader, + tx_module_load: tx_outside_loader, broadcast_tx: tx_inside_clone, - } + broadcast_loader_tx: tx_inside_loader_clone, + }; + + //Set the JsCoreHandle to a global object so we can use it inside of deno op calls + let mut global_handle = JS_CORE_HANDLE + .lock() + .expect("Could not get lock for JS_CORE_HANDLE"); + *global_handle = Some(handle.clone()); + + handle } } diff --git a/rust-executor/src/js_core/utils_extension.js b/rust-executor/src/js_core/utils_extension.js index 505c562c0..376d30aaa 100644 --- a/rust-executor/src/js_core/utils_extension.js +++ b/rust-executor/src/js_core/utils_extension.js @@ -7,6 +7,9 @@ }, hash: (data) => { return core.ops.hash(data); + }, + loadModule: async (path) => { + return core.opAsync("load_module", path); } }; })(globalThis); diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index 15a9ebb7f..d9a29ed44 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -5,6 +5,8 @@ use multihash::{Code, MultihashDigest}; use crate::globals::SIGNING_DNA; +use super::JS_CORE_HANDLE; + #[op] fn get_signing_dna() -> Result, AnyError> { Ok(SIGNING_DNA.to_vec()) @@ -24,10 +26,26 @@ fn hash(data: String) -> Result { Ok(format!("Qm{}", encoded_cid)) } +#[op] +async fn load_module(path: String) -> Result { + println!("Trying to load module: {}", path); + let js_core_handle = JS_CORE_HANDLE + .lock() + .expect("Could not get lock on js_core_handle"); + + let res = js_core_handle.clone().unwrap().load_module(path).await; + println!("load module res: {:?}", res); + Ok(String::from("temp")) +} + pub fn build() -> Extension { Extension::builder("wallet") .js(include_js_files!(wallet "utils_extension.js",)) - .ops(vec![get_signing_dna::decl(), hash::decl()]) + .ops(vec![ + get_signing_dna::decl(), + hash::decl(), + load_module::decl(), + ]) .force_op_registration() .build() } From 10573a5c3456b2c2c5918443909672ca4bb0e852 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 17 Apr 2023 20:21:11 +0100 Subject: [PATCH 166/722] use esnext build target so we can use dynamic imports --- executor/src/core/LanguageController.ts | 2 +- rust-executor/src/js_core/mod.rs | 1 + rust-executor/src/mainnet_seed.json | 13 ++++++------- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index cd4713ee8..010086931 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -57,7 +57,7 @@ const loadModule = async (modulePath: string) => { const res = await UTILS.loadModule(`file://${modulePath}`); try { - return await importModule(`modulePath`) + return await importModule(modulePath) } catch (e1) { throw new ImportError(`Unable to import module at path: ${modulePath}. Got error: ${e1}}`) } diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index cb89469cb..292274dd0 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -341,6 +341,7 @@ impl JsCore { //since the load module would complete first it will cause the request future to be "lost" and thus the graphql will not get a response //we should track this and if required change the behaviour here so that we ensure we continue to run a receive_fut even in the case where //a module_load_fut completes + //Using join! here might work if we ensure that the receive fut & module load fut's contain loops and run forever tokio::select! { event_loop_result = js_core.event_loop() => { match event_loop_result { diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index b851c4a80..30651b7c3 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -1,14 +1,13 @@ { "trustedAgents": [ - "did:key:zQ3shh5eZoXQAbHwUwyypdEd4knEpsaUnLwrjSxjNmHMVPBqQ", "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" ], "knownLinkLanguages": [ - "QmdTbh2uSJj62XFmDzRHTRr65bk6p8aHBQFQ6ZDpQfxFpc" + "Qmf7WoxtS93VaWswjDzQqWEcL8pF2W7PZ9QRJb8XYkSfAg" ], - "directMessageLanguage": "QmXR4MZqxqdPmSnCNF24f82EkvahwgXW3FKzGWPZrdC8qb", - "agentLanguage": "QmVYQxroapbRebjjbZnjKSTQBsqvk5sEBCcyiEKyBRXKLo", - "perspectiveLanguage": "QmYRCZkyZJ7axzPcNCizgEqkjXwvC2nu2UR1M31geggx4W", - "neighbourhoodLanguage": "QmNLtgDrjri7DzqDohmQUKJzr5fXVAN95K4VhMr9GhM9ia", - "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar http = require('http');\nvar https = require('https');\nvar url = require('url');\nvar stream = require('stream');\nvar assert = require('assert');\nvar tty = require('tty');\nvar util = require('util');\nvar fs = require('fs');\nvar net = require('net');\nvar zlib = require('zlib');\nvar os = require('os');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar http__default = /*#__PURE__*/_interopDefaultLegacy(http);\nvar https__default = /*#__PURE__*/_interopDefaultLegacy(https);\nvar url__default = /*#__PURE__*/_interopDefaultLegacy(url);\nvar stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);\nvar assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);\nvar tty__default = /*#__PURE__*/_interopDefaultLegacy(tty);\nvar util__default = /*#__PURE__*/_interopDefaultLegacy(util);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\nvar net__default = /*#__PURE__*/_interopDefaultLegacy(net);\nvar zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);\nvar os__default = /*#__PURE__*/_interopDefaultLegacy(os);\n\nvar bind = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer$1(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString$1(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction$1(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction$1(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nvar utils = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer$1,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString$1,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction$1,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nvar buildURL = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nvar InterceptorManager_1 = InterceptorManager;\n\nvar normalizeHeaderName = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nvar enhanceError = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n\nvar transitional = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nvar createError = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nvar settle = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\nvar cookies = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nvar isAbsoluteURL = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nvar combineURLs = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nvar buildFullPath = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\nvar isURLSameOrigin = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nvar Cancel_1 = Cancel;\n\nvar xhr = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional$1 = config.transitional || transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nvar ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\nvar debug$1 = createCommonjsModule(function (module, exports) {\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = ms;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n});\n\nvar browser = createCommonjsModule(function (module, exports) {\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n});\n\nvar node = createCommonjsModule(function (module, exports) {\n/**\n * Module dependencies.\n */\n\n\n\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util__default[\"default\"].deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')();\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty__default[\"default\"].isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util__default[\"default\"].format.apply(util__default[\"default\"], arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty__default[\"default\"].WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = fs__default[\"default\"];\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = net__default[\"default\"];\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n});\n\nvar src = createCommonjsModule(function (module) {\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = browser;\n} else {\n module.exports = node;\n}\n});\n\nvar debug;\n\nvar debug_1 = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = src(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n\nvar URL = url__default[\"default\"].URL;\n\n\nvar Writable = stream__default[\"default\"].Writable;\n\n\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url__default[\"default\"].format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url__default[\"default\"].parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url__default[\"default\"].format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url__default[\"default\"].resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug_1(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url__default[\"default\"].parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = url__default[\"default\"].parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert__default[\"default\"].equal(options.protocol, protocol, \"protocol mismatch\");\n debug_1(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert__default[\"default\"](isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nvar followRedirects = wrap({ http: http__default[\"default\"], https: https__default[\"default\"] });\nvar wrap_1 = wrap;\nfollowRedirects.wrap = wrap_1;\n\nvar data = {\n \"version\": \"0.26.1\"\n};\n\nvar httpFollow = followRedirects.http;\nvar httpsFollow = followRedirects.https;\n\n\nvar VERSION$1 = data.version;\n\n\n\n\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nvar http_1 = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION$1;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url__default[\"default\"].parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url__default[\"default\"].parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https__default[\"default\"] : http__default[\"default\"];\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib__default[\"default\"].createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional$1 = config.transitional || transitional;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = xhr;\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = http_1;\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitional,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults_1 = defaults;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nvar transformData = function transformData(data, headers, fns) {\n var context = this || defaults_1;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n\nvar isCancel = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel_1('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nvar dispatchRequest = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults_1.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nvar mergeConfig = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n\nvar VERSION = data.version;\n\nvar validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nvar validator = {\n assertOptions: assertOptions,\n validators: validators$1\n};\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_1(),\n response: new InterceptorManager_1()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nvar Axios_1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel_1(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nvar CancelToken_1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nvar spread = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nvar isAxiosError = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios_1(defaultConfig);\n var instance = bind(Axios_1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios_1.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios$1 = createInstance(defaults_1);\n\n// Expose Axios class to allow class inheritance\naxios$1.Axios = Axios_1;\n\n// Expose Cancel & CancelToken\naxios$1.Cancel = Cancel_1;\naxios$1.CancelToken = CancelToken_1;\naxios$1.isCancel = isCancel;\naxios$1.VERSION = data.version;\n\n// Expose all/spread\naxios$1.all = function all(promises) {\n return Promise.all(promises);\n};\naxios$1.spread = spread;\n\n// Expose isAxiosError\naxios$1.isAxiosError = isAxiosError;\n\nvar axios_1 = axios$1;\n\n// Allow use of default import syntax in TypeScript\nvar _default = axios$1;\naxios_1.default = _default;\n\nvar axios = axios_1;\n\ncreateCommonjsModule(function (module) {\n// Generated by CoffeeScript 2.5.1\n(function() {\n // This file's name is set up in such a way that it will always show up first in\n // the list of files given to coffee --join, so that the other files can assume\n // that XMLHttpRequestEventTarget was already defined.\n\n // The DOM EventTarget subclass used by XMLHttpRequest.\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n var InvalidStateError, NetworkError, ProgressEvent, SecurityError, SyntaxError, XMLHttpRequest, XMLHttpRequestEventTarget, XMLHttpRequestUpload, http, https, os, url;\n\n XMLHttpRequestEventTarget = (function() {\n class XMLHttpRequestEventTarget {\n // @private\n // This is an abstract class and should not be instantiated directly.\n constructor() {\n this.onloadstart = null;\n this.onprogress = null;\n this.onabort = null;\n this.onerror = null;\n this.onload = null;\n this.ontimeout = null;\n this.onloadend = null;\n this._listeners = {};\n }\n\n // Adds a new-style listener for one of the XHR events.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#events\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener function that will be called when\n // the event fires\n // @return {undefined} undefined\n addEventListener(eventType, listener) {\n var base;\n eventType = eventType.toLowerCase();\n (base = this._listeners)[eventType] || (base[eventType] = []);\n this._listeners[eventType].push(listener);\n return void 0;\n }\n\n // Removes an event listener added by calling addEventListener.\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener the value passed in a previous\n // call to addEventListener.\n // @return {undefined} undefined\n removeEventListener(eventType, listener) {\n var index;\n eventType = eventType.toLowerCase();\n if (this._listeners[eventType]) {\n index = this._listeners[eventType].indexOf(listener);\n if (index !== -1) {\n this._listeners[eventType].splice(index, 1);\n }\n }\n return void 0;\n }\n\n // Calls all the listeners for an event.\n\n // @param {ProgressEvent} event the event to be dispatched\n // @return {undefined} undefined\n dispatchEvent(event) {\n var eventType, j, len, listener, listeners;\n event.currentTarget = event.target = this;\n eventType = event.type;\n if (listeners = this._listeners[eventType]) {\n for (j = 0, len = listeners.length; j < len; j++) {\n listener = listeners[j];\n listener.call(this, event);\n }\n }\n if (listener = this[`on${eventType}`]) {\n listener.call(this, event);\n }\n return void 0;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadstart' event\n XMLHttpRequestEventTarget.prototype.onloadstart = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'progress' event\n XMLHttpRequestEventTarget.prototype.onprogress = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'abort' event\n XMLHttpRequestEventTarget.prototype.onabort = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'error' event\n XMLHttpRequestEventTarget.prototype.onerror = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'load' event\n XMLHttpRequestEventTarget.prototype.onload = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'timeout' event\n XMLHttpRequestEventTarget.prototype.ontimeout = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadend' event\n XMLHttpRequestEventTarget.prototype.onloadend = null;\n\n return XMLHttpRequestEventTarget;\n\n }).call(this);\n\n // This file's name is set up in such a way that it will always show up second\n // in the list of files given to coffee --join, so it can use the\n // XMLHttpRequestEventTarget definition and so that the other files can assume\n // that XMLHttpRequest was already defined.\n http = http__default[\"default\"];\n\n https = https__default[\"default\"];\n\n os = os__default[\"default\"];\n\n url = url__default[\"default\"];\n\n XMLHttpRequest = (function() {\n // The ECMAScript HTTP API.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#introduction\n class XMLHttpRequest extends XMLHttpRequestEventTarget {\n // Creates a new request.\n\n // @param {Object} options one or more of the options below\n // @option options {Boolean} anon if true, the request's anonymous flag\n // will be set\n // @see http://www.w3.org/TR/XMLHttpRequest/#constructors\n // @see http://www.w3.org/TR/XMLHttpRequest/#anonymous-flag\n constructor(options) {\n super();\n this.onreadystatechange = null;\n this._anonymous = options && options.anon;\n this.readyState = XMLHttpRequest.UNSENT;\n this.response = null;\n this.responseText = '';\n this.responseType = '';\n this.responseURL = '';\n this.status = 0;\n this.statusText = '';\n this.timeout = 0;\n this.upload = new XMLHttpRequestUpload(this);\n this._method = null; // String\n this._url = null; // Return value of url.parse()\n this._sync = false;\n this._headers = null; // Object\n this._loweredHeaders = null; // Object\n this._mimeOverride = null;\n this._request = null; // http.ClientRequest\n this._response = null; // http.ClientResponse\n this._responseParts = null; // Array\n this._responseHeaders = null; // Object\n this._aborting = null;\n this._error = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n }\n\n // Sets the XHR's method, URL, synchronous flag, and authentication params.\n\n // @param {String} method the HTTP method to be used\n // @param {String} url the URL that the request will be made to\n // @param {?Boolean} async if false, the XHR should be processed\n // synchronously; true by default\n // @param {?String} user the user credential to be used in HTTP basic\n // authentication\n // @param {?String} password the password credential to be used in HTTP basic\n // authentication\n // @return {undefined} undefined\n // @throw {SecurityError} method is not one of the allowed methods\n // @throw {SyntaxError} urlString is not a valid URL\n // @throw {Error} the URL contains an unsupported protocol; the supported\n // protocols are file, http and https\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n open(method, url, async, user, password) {\n var xhrUrl;\n method = method.toUpperCase();\n if (method in this._restrictedMethods) {\n throw new SecurityError(`HTTP method ${method} is not allowed in XHR`);\n }\n xhrUrl = this._parseUrl(url);\n if (async === void 0) {\n async = true;\n }\n switch (this.readyState) {\n case XMLHttpRequest.UNSENT:\n case XMLHttpRequest.OPENED:\n case XMLHttpRequest.DONE:\n break;\n case XMLHttpRequest.HEADERS_RECEIVED:\n case XMLHttpRequest.LOADING:\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n return void 0;\n }\n\n // Appends a header to the list of author request headers.\n\n // @param {String} name the HTTP header name\n // @param {String} value the HTTP header value\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @throw {SyntaxError} name is not a valid HTTP header name or value is not\n // a valid HTTP header value\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n setRequestHeader(name, value) {\n var loweredName;\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec\\-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(`Refused to set unsafe header \\\"${name}\\\"`);\n return void 0;\n }\n value = value.toString();\n if (loweredName in this._loweredHeaders) {\n // Combine value with the existing header value.\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + ', ' + value;\n } else {\n // New header.\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n return void 0;\n }\n\n // Initiates the request.\n\n // @param {?String, ?ArrayBufferView} data the data to be sent; ignored for\n // GET and HEAD requests\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n send(data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n if (this._request) {\n throw new InvalidStateError(\"send() already called\");\n }\n switch (this._url.protocol) {\n case 'file:':\n this._sendFile(data);\n break;\n case 'http:':\n case 'https:':\n this._sendHttp(data);\n break;\n default:\n throw new NetworkError(`Unsupported protocol ${this._url.protocol}`);\n }\n return void 0;\n }\n\n // Cancels the network activity performed by this request.\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method\n abort() {\n if (!this._request) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n return void 0;\n }\n\n // Returns a header value in the HTTP response for this XHR.\n\n // @param {String} name case-insensitive HTTP header name\n // @return {?String} value the value of the header whose name matches the\n // given name, or null if there is no such header\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n getResponseHeader(name) {\n var loweredName;\n if (!this._responseHeaders) {\n return null;\n }\n loweredName = name.toLowerCase();\n if (loweredName in this._responseHeaders) {\n return this._responseHeaders[loweredName];\n } else {\n return null;\n }\n }\n\n // Returns all the HTTP headers in this XHR's response.\n\n // @return {String} header lines separated by CR LF, where each header line\n // has the name and value separated by a \": \" (colon, space); the empty\n // string is returned if the headers are not available\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n getAllResponseHeaders() {\n var lines, name, value;\n if (!this._responseHeaders) {\n return '';\n }\n lines = (function() {\n var ref, results;\n ref = this._responseHeaders;\n results = [];\n for (name in ref) {\n value = ref[name];\n results.push(`${name}: ${value}`);\n }\n return results;\n }).call(this);\n return lines.join(\"\\r\\n\");\n }\n\n // Overrides the Content-Type\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-overridemimetype()-method\n overrideMimeType(newMimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new InvalidStateError(\"overrideMimeType() not allowed in LOADING or DONE\");\n }\n this._mimeOverride = newMimeType.toLowerCase();\n return void 0;\n }\n\n // Network configuration not exposed in the XHR API.\n\n // Although the XMLHttpRequest specification calls itself \"ECMAScript HTTP\",\n // it assumes that requests are always performed in the context of a browser\n // application, where some network parameters are set by the browser user and\n // should not be modified by Web applications. This API provides access to\n // these network parameters.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the value for the nodejsHttpAgent\n // property (the agent used for HTTP requests)\n // @option options {?https.Agent} httpsAgent the value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n nodejsSet(options) {\n var baseUrl, parsedUrl;\n if ('httpAgent' in options) {\n this.nodejsHttpAgent = options.httpAgent;\n }\n if ('httpsAgent' in options) {\n this.nodejsHttpsAgent = options.httpsAgent;\n }\n if ('baseUrl' in options) {\n baseUrl = options.baseUrl;\n if (baseUrl !== null) {\n parsedUrl = url.parse(baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = baseUrl;\n }\n return void 0;\n }\n\n // Default settings for the network configuration not exposed in the XHR API.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the default value for the\n // nodejsHttpAgent property (the agent used for HTTP requests)\n // @option options {https.Agent} httpsAgent the default value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n // @see XMLHttpRequest.nodejsSet\n static nodejsSet(options) {\n // \"this\" will be set to XMLHttpRequest.prototype, so the instance nodejsSet\n // operates on default property values.\n XMLHttpRequest.prototype.nodejsSet(options);\n return void 0;\n }\n\n // Sets the readyState property and fires the readystatechange event.\n\n // @private\n // @param {Number} newReadyState the new value of readyState\n // @return {undefined} undefined\n _setReadyState(newReadyState) {\n var event;\n this.readyState = newReadyState;\n event = new ProgressEvent('readystatechange');\n this.dispatchEvent(event);\n return void 0;\n }\n\n // XMLHttpRequest#send() implementation for the file: protocol.\n\n // @private\n _sendFile() {\n if (this._url.method !== 'GET') {\n throw new NetworkError('The file protocol only supports GET');\n }\n throw new Error(\"Protocol file: not implemented\");\n }\n\n // XMLHttpRequest#send() implementation for the http: and https: protocols.\n\n // @private\n // This method sets the instance variables and calls _sendHxxpRequest(), which\n // is responsible for building a node.js request and firing it off. The code\n // in _sendHxxpRequest() is separated off so it can be reused when handling\n // redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHttp(data) {\n if (this._sync) {\n throw new Error(\"Synchronous XHR processing not implemented\");\n }\n if ((data != null) && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(`Discarding entity body for ${this._method} requests`);\n data = null;\n } else {\n // Send Content-Length: 0\n data || (data = '');\n }\n // NOTE: this is called before finalizeHeaders so that the uploader can\n // figure out Content-Length and Content-Type.\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return void 0;\n }\n\n // Sets up and fires off a HTTP/HTTPS request using the node.js API.\n\n // @private\n // This method contains the bulk of the XMLHttpRequest#send() implementation,\n // and is also used to issue new HTTP requests when handling HTTP redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHxxpRequest() {\n var agent, hxxp, request;\n if (this._url.protocol === 'http:') {\n hxxp = http;\n agent = this.nodejsHttpAgent;\n } else {\n hxxp = https;\n agent = this.nodejsHttpsAgent;\n }\n request = hxxp.request({\n hostname: this._url.hostname,\n port: this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, () => {\n return this._onHttpTimeout(request);\n });\n }\n request.on('response', (response) => {\n return this._onHttpResponse(request, response);\n });\n request.on('error', (error) => {\n return this._onHttpRequestError(request, error);\n });\n this.upload._startUpload(request);\n if (this._request === request) { // An http error might have already fired.\n this._dispatchProgress('loadstart');\n }\n return void 0;\n }\n\n // Fills in the restricted HTTP headers with default values.\n\n // This is called right before the HTTP request is sent off.\n\n // @private\n // @return {undefined} undefined\n _finalizeHeaders() {\n var base;\n this._headers['Connection'] = 'keep-alive';\n this._headers['Host'] = this._url.host;\n if (this._anonymous) {\n this._headers['Referer'] = 'about:blank';\n }\n (base = this._headers)['User-Agent'] || (base['User-Agent'] = this._userAgent);\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n return void 0;\n }\n\n // Called when the headers of an HTTP response have been received.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // produced this response\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // passed to\n _onHttpResponse(request, response) {\n var lengthString;\n if (this._request !== request) {\n return;\n }\n // Transparent redirection handling.\n switch (response.statusCode) {\n case 301:\n case 302:\n case 303:\n case 307:\n case 308:\n this._url = this._parseUrl(response.headers['location']);\n this._method = 'GET';\n if ('content-type' in this._loweredHeaders) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n // XMLHttpRequestUpload#_finalizeHeaders() sets Content-Type directly.\n if ('Content-Type' in this._headers) {\n delete this._headers['Content-Type'];\n }\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', (data) => {\n return this._onHttpResponseData(response, data);\n });\n this._response.on('end', () => {\n return this._onHttpResponseEnd(response);\n });\n this._response.on('close', () => {\n return this._onHttpResponseClose(response);\n });\n this.responseURL = this._url.href.split('#')[0];\n this.status = this._response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n if (lengthString = this._responseHeaders['content-length']) {\n this._totalBytes = parseInt(lengthString);\n this._lengthComputable = true;\n } else {\n this._lengthComputable = false;\n }\n return this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n }\n\n // Called when some data has been received on a HTTP connection.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n // @param {String, Buffer} data the data that has been received\n _onHttpResponseData(response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(data);\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n return this._dispatchProgress('progress');\n }\n\n // Called when the HTTP request finished processing.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseEnd(response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the underlying HTTP connection was closed prematurely.\n\n // If this method is called, it will be called after or instead of\n // onHttpResponseEnd.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseClose(response) {\n var request;\n if (this._response !== response) {\n return;\n }\n request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the timeout set on the HTTP socket expires.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n _onHttpTimeout(request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n return this._dispatchProgress('loadend');\n }\n\n // Called when something wrong happens on the HTTP socket\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n // @param {Error} error emitted exception\n _onHttpRequestError(request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Fires an XHR progress event.\n\n // @private\n // @param {String} eventType one of the XHR progress event types, such as\n // 'load' and 'progress'\n _dispatchProgress(eventType) {\n var event;\n event = new ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n return void 0;\n }\n\n // Sets up the XHR to reflect the fact that an error has occurred.\n\n // The possible errors are a network error, a timeout, or an abort.\n\n // @private\n _setError() {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n return void 0;\n }\n\n // Parses a request URL string.\n\n // @private\n // This method is a thin wrapper around url.parse() that normalizes HTTP\n // user/password credentials. It is used to parse the URL string passed to\n // XMLHttpRequest#open() and the URLs in the Location headers of HTTP redirect\n // responses.\n\n // @param {String} urlString the URL to be parsed\n // @return {Object} parsed URL\n _parseUrl(urlString) {\n var absoluteUrlString, index, password, user, xhrUrl;\n if (this.nodejsBaseUrl === null) {\n absoluteUrlString = urlString;\n } else {\n absoluteUrlString = url.resolve(this.nodejsBaseUrl, urlString);\n }\n xhrUrl = url.parse(absoluteUrlString, false, true);\n xhrUrl.hash = null;\n if (xhrUrl.auth && ((typeof user !== \"undefined\" && user !== null) || (typeof password !== \"undefined\" && password !== null))) {\n index = xhrUrl.auth.indexOf(':');\n if (index === -1) {\n if (!user) {\n user = xhrUrl.auth;\n }\n } else {\n if (!user) {\n user = xhrUrl.substring(0, index);\n }\n if (!password) {\n password = xhrUrl.substring(index + 1);\n }\n }\n }\n if (user || password) {\n xhrUrl.auth = `${user}:${password}`;\n }\n return xhrUrl;\n }\n\n // Reads the headers from a node.js ClientResponse instance.\n\n // @private\n // @param {http.ClientResponse} response the response whose headers will be\n // imported into this XMLHttpRequest's state\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n _parseResponseHeaders(response) {\n var loweredName, name, ref, value;\n this._responseHeaders = {};\n ref = response.headers;\n for (name in ref) {\n value = ref[name];\n loweredName = name.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n if (this._mimeOverride !== null && loweredName === 'content-type') {\n value = this._mimeOverride;\n }\n this._responseHeaders[loweredName] = value;\n }\n if (this._mimeOverride !== null && !('content-type' in this._responseHeaders)) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n return void 0;\n }\n\n // Sets the response and responseText properties when an XHR completes.\n\n // @private\n // @return {undefined} undefined\n _parseResponse() {\n var arrayBuffer, buffer, i, j, ref, view;\n if (Buffer.concat) {\n buffer = Buffer.concat(this._responseParts);\n } else {\n // node 0.6\n buffer = this._concatBuffers(this._responseParts);\n }\n this._responseParts = null;\n switch (this.responseType) {\n case 'text':\n this._parseTextResponse(buffer);\n break;\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n } catch (error1) {\n this.response = null;\n }\n break;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n break;\n case 'arraybuffer':\n this.responseText = null;\n arrayBuffer = new ArrayBuffer(buffer.length);\n view = new Uint8Array(arrayBuffer);\n for (i = j = 0, ref = buffer.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n break;\n default:\n // TODO(pwnall): content-base detection\n this._parseTextResponse(buffer);\n }\n return void 0;\n }\n\n // Sets response and responseText for a 'text' response type.\n\n // @private\n // @param {Buffer} buffer the node.js Buffer containing the binary response\n // @return {undefined} undefined\n _parseTextResponse(buffer) {\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n } catch (error1) {\n // Unknown encoding.\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n return void 0;\n }\n\n // Figures out the string encoding of the XHR's response.\n\n // This is called to determine the encoding when responseText is set.\n\n // @private\n // @return {String} a string encoding, e.g. 'utf-8'\n _parseResponseEncoding() {\n var contentType, match;\n if (contentType = this._responseHeaders['content-type']) {\n if (match = /\\;\\s*charset\\=(.*)$/.exec(contentType)) {\n return match[1];\n }\n }\n return 'utf-8';\n }\n\n // Buffer.concat implementation for node 0.6.\n\n // @private\n // @param {Array} buffers the buffers whose contents will be merged\n // @return {Buffer} same as Buffer.concat(buffers) in node 0.8 and above\n _concatBuffers(buffers) {\n var buffer, j, k, len, len1, length, target;\n if (buffers.length === 0) {\n return Buffer.alloc(0);\n }\n if (buffers.length === 1) {\n return buffers[0];\n }\n length = 0;\n for (j = 0, len = buffers.length; j < len; j++) {\n buffer = buffers[j];\n length += buffer.length;\n }\n target = Buffer.alloc(length);\n length = 0;\n for (k = 0, len1 = buffers.length; k < len1; k++) {\n buffer = buffers[k];\n buffer.copy(target, length);\n length += buffer.length;\n }\n return target;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler for the\n // 'readystatechange' event\n XMLHttpRequest.prototype.onreadystatechange = null;\n\n // @property {Number} the current state of the XHR object\n // @see http://www.w3.org/TR/XMLHttpRequest/#states\n XMLHttpRequest.prototype.readyState = null;\n\n // @property {String, ArrayBuffer, Buffer, Object} processed XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-response-attribute\n XMLHttpRequest.prototype.response = null;\n\n // @property {String} response string, if responseType is '' or 'text'\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute\n XMLHttpRequest.prototype.responseText = null;\n\n // @property {String} sets the parsing method for the XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetype-attribute\n XMLHttpRequest.prototype.responseType = null;\n\n // @property {Number} the HTTP\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute\n XMLHttpRequest.prototype.status = null;\n\n // @property {Number} milliseconds to wait for the request to complete\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute\n XMLHttpRequest.prototype.timeout = null;\n\n // @property {XMLHttpRequestUpload} the associated upload information\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute\n XMLHttpRequest.prototype.upload = null;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.prototype.UNSENT = 0;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.UNSENT = 0;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.prototype.OPENED = 1;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.OPENED = 1;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.prototype.HEADERS_RECEIVED = 2;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.prototype.LOADING = 3;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.LOADING = 3;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.prototype.DONE = 4;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.DONE = 4;\n\n // @property {http.Agent} the agent option passed to HTTP requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\n\n // @property {https.Agent} the agent option passed to HTTPS requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpsAgent = https.globalAgent;\n\n // @property {String} the base URL that relative URLs get resolved to\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // Its browser equivalent is the base URL of the document associated with the\n // Window object. It is a stable node-xhr2 API provided for libraries such as\n // Angular Universal.\n XMLHttpRequest.prototype.nodejsBaseUrl = null;\n\n // HTTP methods that are disallowed in the XHR spec.\n\n // @private\n // @see Step 6 in http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n XMLHttpRequest.prototype._restrictedMethods = {\n CONNECT: true,\n TRACE: true,\n TRACK: true\n };\n\n // HTTP request headers that are disallowed in the XHR spec.\n\n // @private\n // @see Step 5 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n XMLHttpRequest.prototype._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true\n };\n\n // HTTP response headers that should not be exposed according to the XHR spec.\n\n // @private\n // @see Step 3 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n XMLHttpRequest.prototype._privateHeaders = {\n 'set-cookie': true,\n 'set-cookie2': true\n };\n\n // The default value of the User-Agent header.\n XMLHttpRequest.prototype._userAgent = `Mozilla/5.0 (${os.type()} ${os.arch()}) ` + `node.js/${process.versions.node} v8/${process.versions.v8}`;\n\n return XMLHttpRequest;\n\n }).call(this);\n\n // XMLHttpRequest is the result of require('node-xhr2').\n module.exports = XMLHttpRequest;\n\n // Make node-xhr2 work as a drop-in replacement for libraries that promote the\n // following usage pattern:\n // var XMLHttpRequest = require('xhr-library-name').XMLHttpRequest\n XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;\n\n // This file defines the custom errors used in the XMLHttpRequest specification.\n\n // Thrown if the XHR security policy is violated.\n SecurityError = class SecurityError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if the XHR security policy is violated.\n XMLHttpRequest.SecurityError = SecurityError;\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {};\n\n XMLHttpRequest.InvalidStateError = InvalidStateError;\n\n // Thrown if there is a problem with the URL passed to the XHR.\n NetworkError = class NetworkError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if parsing URLs errors out.\n XMLHttpRequest.SyntaxError = SyntaxError;\n\n SyntaxError = class SyntaxError extends Error {\n // @private:\n constructor() {\n super();\n }\n\n };\n\n ProgressEvent = (function() {\n // http://xhr.spec.whatwg.org/#interface-progressevent\n class ProgressEvent {\n // Creates a new event.\n\n // @param {String} type the event type, e.g. 'readystatechange'; must be\n // lowercased\n constructor(type) {\n this.type = type;\n this.target = null;\n this.currentTarget = null;\n this.lengthComputable = false;\n this.loaded = 0;\n this.total = 0;\n }\n\n }\n // Getting the time from the OS is expensive, skip on that for now.\n // @timeStamp = Date.now()\n\n // @property {Boolean} for compatibility with DOM events\n ProgressEvent.prototype.bubbles = false;\n\n // @property {Boolean} for fompatibility with DOM events\n ProgressEvent.prototype.cancelable = false;\n\n // @property {XMLHttpRequest} the request that caused this event\n ProgressEvent.prototype.target = null;\n\n // @property {Number} number of bytes that have already been downloaded or\n // uploaded\n ProgressEvent.prototype.loaded = null;\n\n // @property {Boolean} true if the Content-Length response header is available\n // and the value of the event's total property is meaningful\n ProgressEvent.prototype.lengthComputable = null;\n\n // @property {Number} number of bytes that will be downloaded or uploaded by\n // the request that fired the event\n ProgressEvent.prototype.total = null;\n\n return ProgressEvent;\n\n }).call(this);\n\n // The XHR spec exports the ProgressEvent constructor.\n XMLHttpRequest.ProgressEvent = ProgressEvent;\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n XMLHttpRequestUpload = class XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n // @private\n // @param {XMLHttpRequest} the XMLHttpRequest that this upload object is\n // associated with\n constructor(request) {\n super();\n this._request = request;\n this._reset();\n }\n\n // Sets up this Upload to handle a new request.\n\n // @private\n // @return {undefined} undefined\n _reset() {\n this._contentType = null;\n this._body = null;\n return void 0;\n }\n\n // Implements the upload-related part of the send() XHR specification.\n\n // @private\n // @param {?String, ?Buffer, ?ArrayBufferView} data the argument passed to\n // XMLHttpRequest#send()\n // @return {undefined} undefined\n // @see step 4 of http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n _setData(data) {\n var body, i, j, k, offset, ref, ref1, view;\n if (typeof data === 'undefined' || data === null) {\n return;\n }\n if (typeof data === 'string') {\n // DOMString\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = Buffer.from(data, 'utf8');\n } else if (Buffer.isBuffer(data)) {\n // node.js Buffer\n this._body = data;\n } else if (data instanceof ArrayBuffer) {\n // ArrayBuffer arguments were supported in an old revision of the spec.\n body = Buffer.alloc(data.byteLength);\n view = new Uint8Array(data);\n for (i = j = 0, ref = data.byteLength; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n body[i] = view[i];\n }\n this._body = body;\n } else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n // ArrayBufferView\n body = Buffer.alloc(data.byteLength);\n offset = data.byteOffset;\n view = new Uint8Array(data.buffer);\n for (i = k = 0, ref1 = data.byteLength; (0 <= ref1 ? k < ref1 : k > ref1); i = 0 <= ref1 ? ++k : --k) {\n body[i] = view[i + offset];\n }\n this._body = body;\n } else {\n // NOTE: diverging from the XHR specification of coercing everything else\n // to Strings via toString() because that behavior masks bugs and is\n // rarely useful\n throw new Error(`Unsupported send() data ${data}`);\n }\n return void 0;\n }\n\n // Updates the HTTP headers right before the request is sent.\n\n // This is used to set data-dependent headers such as Content-Length and\n // Content-Type.\n\n // @private\n // @param {Object} headers the HTTP headers to be sent\n // @param {Object} loweredHeaders maps lowercased HTTP header\n // names (e.g., 'content-type') to the actual names used in the headers\n // parameter (e.g., 'Content-Type')\n // @return {undefined} undefined\n _finalizeHeaders(headers, loweredHeaders) {\n if (this._contentType) {\n if (!('content-type' in loweredHeaders)) {\n headers['Content-Type'] = this._contentType;\n }\n }\n if (this._body) {\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n headers['Content-Length'] = this._body.length.toString();\n }\n return void 0;\n }\n\n // Starts sending the HTTP request data.\n\n // @private\n // @param {http.ClientRequest} request the HTTP request\n // @return {undefined} undefined\n _startUpload(request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n return void 0;\n }\n\n };\n\n // Export the XMLHttpRequestUpload constructor.\n XMLHttpRequest.XMLHttpRequestUpload = XMLHttpRequestUpload;\n\n}).call(commonjsGlobal);\n});\n\nclass LangAdapter {\n constructor(context) {\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw (e);\n }\n let languageSource;\n try {\n const getLanguageSource = await axios.get(presignedUrl);\n languageSource = getLanguageSource.data;\n }\n catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw (e);\n }\n return languageSource;\n }\n}\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CloudflarePutAdapter_agent, _CloudflarePutAdapter_IPFS;\nclass CloudflarePutAdapter {\n constructor(context) {\n _CloudflarePutAdapter_agent.set(this, void 0);\n _CloudflarePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet(this, _CloudflarePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet(this, _CloudflarePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet(this, _CloudflarePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet(this, _CloudflarePutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n //Build the key value object for the meta object\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n // Content of the new object.\n value: JSON.stringify(expression),\n };\n //Save the meta information to the KV store\n const httpsAgent = new https__default[\"default\"].Agent({\n rejectUnauthorized: false\n });\n try {\n const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent });\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n //Build the key value object for the language bundle\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString(),\n };\n //Save the language bundle to the KV store\n const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent });\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n}\n_CloudflarePutAdapter_agent = new WeakMap(), _CloudflarePutAdapter_IPFS = new WeakMap();\n\nclass Adapter {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axios.get(presignedUrl);\n metaObject = getMetaObject.data;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\n\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports.PROXY_URL = PROXY_URL;\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" + "directMessageLanguage": "Qmf8hHxbyyZBZkEZtkHyqZ93V6YkULhEKgafhJ2XpY8CNf", + "agentLanguage": "QmfYnjX2Bq7EG61SGrNtXBeup9UBfsqaWciTCMNBgPUEke", + "perspectiveLanguage": "QmPC3MydgKHUpEXA5JZdp8eyqvw1TTPdKsAbMN7Rb3muqp", + "neighbourhoodLanguage": "QmcFUVRL5iQM1AaE3H9UnZ8rRRJQij65qYbBHW7P2oewEH", + "languageLanguageBundle":"var bind = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString$1 = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray$3(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined$1(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer$3(val) {\n return val !== null && !isUndefined$1(val) && val.constructor !== null && !isUndefined$1(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString$1.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString$1.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString$2(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber$1(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject$1(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString$1.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate$1(val) {\n return toString$1.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString$1.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString$1.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction$3(val) {\n return toString$1.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject$1(val) && isFunction$3(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString$1.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach$1(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray$3(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray$3(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach$1(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach$1(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nvar utils = {\n isArray: isArray$3,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer$3,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString$2,\n isNumber: isNumber$1,\n isObject: isObject$1,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined$1,\n isDate: isDate$1,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction$3,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach$1,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\nfunction encode$1(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nvar buildURL = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode$1(key) + '=' + encode$1(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nvar InterceptorManager_1 = InterceptorManager;\n\nvar normalizeHeaderName = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nvar enhanceError = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n\nvar transitional = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nvar createError = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nvar settle = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\nvar cookies = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nvar isAbsoluteURL = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nvar combineURLs = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nvar buildFullPath = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\nvar isURLSameOrigin = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nvar Cancel_1 = Cancel;\n\nvar xhr$1 = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional$1 = config.transitional || transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\nvar hasFetch = isFunction$2(global.fetch) && isFunction$2(global.ReadableStream);\n\nvar _blobConstructor;\nfunction blobConstructor() {\n if (typeof _blobConstructor !== 'undefined') {\n return _blobConstructor;\n }\n try {\n new global.Blob([new ArrayBuffer(1)]);\n _blobConstructor = true;\n } catch (e) {\n _blobConstructor = false;\n }\n return _blobConstructor\n}\nvar xhr;\n\nfunction checkTypeSupport(type) {\n if (!xhr) {\n xhr = new global.XMLHttpRequest();\n // If location.host is empty, e.g. if this page/worker was loaded\n // from a Blob, then use example.com to avoid an error\n xhr.open('GET', global.location.host ? '/' : 'https://example.com');\n }\n try {\n xhr.responseType = type;\n return xhr.responseType === type\n } catch (e) {\n return false\n }\n\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined';\nvar haveSlice = haveArrayBuffer && isFunction$2(global.ArrayBuffer.prototype.slice);\n\nvar arraybuffer = haveArrayBuffer && checkTypeSupport('arraybuffer');\n // These next two tests unavoidably show warnings in Chrome. Since fetch will always\n // be used if it's available, just return false for these to avoid the warnings.\nvar msstream = !hasFetch && haveSlice && checkTypeSupport('ms-stream');\nvar mozchunkedarraybuffer = !hasFetch && haveArrayBuffer &&\n checkTypeSupport('moz-chunked-arraybuffer');\nvar overrideMimeType = isFunction$2(xhr.overrideMimeType);\nvar vbArray = isFunction$2(global.VBArray);\n\nfunction isFunction$2(value) {\n return typeof value === 'function'\n}\n\nxhr = null; // Help gc\n\n// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser$1 = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release$1 = {};\nvar config = {};\n\nfunction noop$1() {}\n\nvar on = noop$1;\nvar addListener = noop$1;\nvar once = noop$1;\nvar off = noop$1;\nvar removeListener = noop$1;\nvar removeAllListeners = noop$1;\nvar emit = noop$1;\n\nfunction binding$1(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime$1() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar process$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser$1,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding$1,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release$1,\n config: config,\n uptime: uptime$1\n};\n\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n}\nvar inherits$1 = inherits;\n\n// Copyright Joyent, Inc. and other Node contributors.\nvar formatRegExp = /%[sdj%]/g;\nfunction format$1(f) {\n if (!isString$1(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect$1(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect$1(x);\n }\n }\n return str;\n}\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nfunction deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process$1.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process$1.throwDeprecation) {\n throw new Error(msg);\n } else if (process$1.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\nvar debugs = {};\nvar debugEnviron;\nfunction debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process$1.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format$1.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n}\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect$1(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect$1.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect$1.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect$1.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect$1.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect$1.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction$1(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect$1 &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString$1(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction$1(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray$2(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction$1(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString$1(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty$1(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty$1(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var length = output.reduce(function(prev, cur) {\n if (cur.indexOf('\\n') >= 0) ;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray$2(ar) {\n return Array.isArray(ar);\n}\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isString$1(arg) {\n return typeof arg === 'string';\n}\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nfunction isFunction$1(arg) {\n return typeof arg === 'function';\n}\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nfunction isBuffer$2(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nfunction log() {\n console.log('%s - %s', timestamp(), format$1.apply(null, arguments));\n}\n\nfunction _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n}\nfunction hasOwnProperty$1(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar util = {\n inherits: inherits$1,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer$2,\n isPrimitive: isPrimitive,\n isFunction: isFunction$1,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString$1,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray$2,\n inspect: inspect$1,\n deprecate: deprecate,\n format: format$1,\n debuglog: debuglog\n};\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active ) ;\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount$1.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount$1;\nfunction listenerCount$1(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray$1 = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer$1.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true;\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nkMaxLength();\n\nfunction kMaxLength () {\n return Buffer$1.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer$1(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer$1 (arg, encodingOrOffset, length) {\n if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) {\n return new Buffer$1(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer$1.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer$1._augment = function (arr) {\n arr.__proto__ = Buffer$1.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer$1.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n};\n\nif (Buffer$1.TYPED_ARRAY_SUPPORT) {\n Buffer$1.prototype.__proto__ = Uint8Array.prototype;\n Buffer$1.__proto__ = Uint8Array;\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer$1[Symbol.species] === Buffer$1) ;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer$1.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer$1.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer$1.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer$1.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray$1(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\nBuffer$1.isBuffer = isBuffer$1;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer$1.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer$1.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer$1.concat = function concat (list, length) {\n if (!isArray$1(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer$1.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer$1.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer$1.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer$1.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer$1.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer$1.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer$1.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer$1.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer$1.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer$1.compare(this, b) === 0\n};\n\nBuffer$1.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return ''\n};\n\nBuffer$1.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer$1.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer$1.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer$1.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer$1.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer$1.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer$1.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer$1.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer$1.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer$1.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer$1(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer$1.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer$1.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer$1.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer$1.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer$1.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer$1.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer$1.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer$1.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer$1.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer$1.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer$1.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer$1.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer$1.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer$1.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer$1.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer$1.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer$1.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer$1.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer$1.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer$1.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer$1.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer$1.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer$1.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer$1.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer$1.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer$1.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer$1.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer$1.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer$1.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer$1.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer$1.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer$1.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer$1.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer$1.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer$1.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer$1.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer$1(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer$1(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer$1.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer$1.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n};\n\n// Copyright Joyent, Inc. and other Node contributors.\nvar isBufferEncoding = Buffer$1.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n };\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nfunction StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer$1(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n}\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n\nReadable.ReadableState = ReadableState;\n\nvar debug$2 = debuglog('stream');\ninherits$1(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug$2('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug$2('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug$2('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug$2('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug$2('reading or ended', doRead);\n } else if (doRead) {\n debug$2('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug$2('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug$2('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug$2('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug$2('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug$2('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug$2('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug$2('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug$2('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug$2('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug$2('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug$2('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug$2('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug$2('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug$2('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug$2('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug$2('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug$2('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug$2('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug$2('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug$2('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug$2('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug$2('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug$2('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n// A bit simpler than readable streams.\nWritable$1.WritableState = WritableState;\ninherits$1(Writable$1, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\nfunction Writable$1(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable$1) && !(this instanceof Duplex)) return new Writable$1(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable$1.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable$1.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable$1.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable$1.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable$1.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer$1.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n nextTick(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable$1.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable$1.prototype._writev = null;\n\nWritable$1.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n\ninherits$1(Duplex, Readable);\n\nvar keys = Object.keys(Writable$1.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable$1.prototype[method];\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable$1.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\n// a transform stream is a readable/writable stream where you do\ninherits$1(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n\ninherits$1(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\ninherits$1(Stream, EventEmitter);\nStream.Readable = Readable;\nStream.Writable = Writable$1;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EventEmitter.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EventEmitter.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n\nvar rStates = {\n UNSENT: 0,\n OPENED: 1,\n HEADERS_RECEIVED: 2,\n LOADING: 3,\n DONE: 4\n};\nfunction IncomingMessage(xhr, response, mode) {\n var self = this;\n Readable.call(self);\n\n self._mode = mode;\n self.headers = {};\n self.rawHeaders = [];\n self.trailers = {};\n self.rawTrailers = [];\n\n // Fake the 'close' event, but only once 'end' fires\n self.on('end', function() {\n // The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n process.nextTick(function() {\n self.emit('close');\n });\n });\n var read;\n if (mode === 'fetch') {\n self._fetchResponse = response;\n\n self.url = response.url;\n self.statusCode = response.status;\n self.statusMessage = response.statusText;\n // backwards compatible version of for ( of ):\n // for (var ,_i,_it = [Symbol.iterator](); = (_i = _it.next()).value,!_i.done;)\n for (var header, _i, _it = response.headers[Symbol.iterator](); header = (_i = _it.next()).value, !_i.done;) {\n self.headers[header[0].toLowerCase()] = header[1];\n self.rawHeaders.push(header[0], header[1]);\n }\n\n // TODO: this doesn't respect backpressure. Once WritableStream is available, this can be fixed\n var reader = response.body.getReader();\n\n read = function () {\n reader.read().then(function(result) {\n if (self._destroyed)\n return\n if (result.done) {\n self.push(null);\n return\n }\n self.push(new Buffer(result.value));\n read();\n });\n };\n read();\n\n } else {\n self._xhr = xhr;\n self._pos = 0;\n\n self.url = xhr.responseURL;\n self.statusCode = xhr.status;\n self.statusMessage = xhr.statusText;\n var headers = xhr.getAllResponseHeaders().split(/\\r?\\n/);\n headers.forEach(function(header) {\n var matches = header.match(/^([^:]+):\\s*(.*)/);\n if (matches) {\n var key = matches[1].toLowerCase();\n if (key === 'set-cookie') {\n if (self.headers[key] === undefined) {\n self.headers[key] = [];\n }\n self.headers[key].push(matches[2]);\n } else if (self.headers[key] !== undefined) {\n self.headers[key] += ', ' + matches[2];\n } else {\n self.headers[key] = matches[2];\n }\n self.rawHeaders.push(matches[1], matches[2]);\n }\n });\n\n self._charset = 'x-user-defined';\n if (!overrideMimeType) {\n var mimeType = self.rawHeaders['mime-type'];\n if (mimeType) {\n var charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/);\n if (charsetMatch) {\n self._charset = charsetMatch[1].toLowerCase();\n }\n }\n if (!self._charset)\n self._charset = 'utf-8'; // best guess\n }\n }\n}\n\ninherits$1(IncomingMessage, Readable);\n\nIncomingMessage.prototype._read = function() {};\n\nIncomingMessage.prototype._onXHRProgress = function() {\n var self = this;\n\n var xhr = self._xhr;\n\n var response = null;\n switch (self._mode) {\n case 'text:vbarray': // For IE9\n if (xhr.readyState !== rStates.DONE)\n break\n try {\n // This fails in IE8\n response = new global.VBArray(xhr.responseBody).toArray();\n } catch (e) {\n // pass\n }\n if (response !== null) {\n self.push(new Buffer(response));\n break\n }\n // Falls through in IE8\n case 'text':\n try { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n response = xhr.responseText;\n } catch (e) {\n self._mode = 'text:vbarray';\n break\n }\n if (response.length > self._pos) {\n var newData = response.substr(self._pos);\n if (self._charset === 'x-user-defined') {\n var buffer = new Buffer(newData.length);\n for (var i = 0; i < newData.length; i++)\n buffer[i] = newData.charCodeAt(i) & 0xff;\n\n self.push(buffer);\n } else {\n self.push(newData, self._charset);\n }\n self._pos = response.length;\n }\n break\n case 'arraybuffer':\n if (xhr.readyState !== rStates.DONE || !xhr.response)\n break\n response = xhr.response;\n self.push(new Buffer(new Uint8Array(response)));\n break\n case 'moz-chunked-arraybuffer': // take whole\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING || !response)\n break\n self.push(new Buffer(new Uint8Array(response)));\n break\n case 'ms-stream':\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING)\n break\n var reader = new global.MSStreamReader();\n reader.onprogress = function() {\n if (reader.result.byteLength > self._pos) {\n self.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))));\n self._pos = reader.result.byteLength;\n }\n };\n reader.onload = function() {\n self.push(null);\n };\n // reader.onerror = ??? // TODO: this\n reader.readAsArrayBuffer(response);\n break\n }\n\n // The ms-stream case handles end separately in reader.onload()\n if (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n self.push(null);\n }\n};\n\n// from https://github.com/jhiesey/to-arraybuffer/blob/6502d9850e70ba7935a7df4ad86b358fc216f9f0/index.js\nfunction toArrayBuffer (buf) {\n // If the buffer is backed by a Uint8Array, a faster version will work\n if (buf instanceof Uint8Array) {\n // If the buffer isn't a subarray, return the underlying ArrayBuffer\n if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer\n } else if (typeof buf.buffer.slice === 'function') {\n // Otherwise we need to get a proper copy\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)\n }\n }\n\n if (isBuffer$1(buf)) {\n // This is the slow version that will work with any Buffer\n // implementation (even in old browsers)\n var arrayCopy = new Uint8Array(buf.length);\n var len = buf.length;\n for (var i = 0; i < len; i++) {\n arrayCopy[i] = buf[i];\n }\n return arrayCopy.buffer\n } else {\n throw new Error('Argument must be a Buffer')\n }\n}\n\nfunction decideMode(preferBinary, useFetch) {\n if (hasFetch && useFetch) {\n return 'fetch'\n } else if (mozchunkedarraybuffer) {\n return 'moz-chunked-arraybuffer'\n } else if (msstream) {\n return 'ms-stream'\n } else if (arraybuffer && preferBinary) {\n return 'arraybuffer'\n } else if (vbArray && preferBinary) {\n return 'text:vbarray'\n } else {\n return 'text'\n }\n}\n\nfunction ClientRequest(opts) {\n var self = this;\n Writable$1.call(self);\n\n self._opts = opts;\n self._body = [];\n self._headers = {};\n if (opts.auth)\n self.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'));\n Object.keys(opts.headers).forEach(function(name) {\n self.setHeader(name, opts.headers[name]);\n });\n\n var preferBinary;\n var useFetch = true;\n if (opts.mode === 'disable-fetch') {\n // If the use of XHR should be preferred and includes preserving the 'content-type' header\n useFetch = false;\n preferBinary = true;\n } else if (opts.mode === 'prefer-streaming') {\n // If streaming is a high priority but binary compatibility and\n // the accuracy of the 'content-type' header aren't\n preferBinary = false;\n } else if (opts.mode === 'allow-wrong-content-type') {\n // If streaming is more important than preserving the 'content-type' header\n preferBinary = !overrideMimeType;\n } else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n // Use binary if text streaming may corrupt data or the content-type header, or for speed\n preferBinary = true;\n } else {\n throw new Error('Invalid value for opts.mode')\n }\n self._mode = decideMode(preferBinary, useFetch);\n\n self.on('finish', function() {\n self._onFinish();\n });\n}\n\ninherits$1(ClientRequest, Writable$1);\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n 'accept-charset',\n 'accept-encoding',\n 'access-control-request-headers',\n 'access-control-request-method',\n 'connection',\n 'content-length',\n 'cookie',\n 'cookie2',\n 'date',\n 'dnt',\n 'expect',\n 'host',\n 'keep-alive',\n 'origin',\n 'referer',\n 'te',\n 'trailer',\n 'transfer-encoding',\n 'upgrade',\n 'user-agent',\n 'via'\n];\nClientRequest.prototype.setHeader = function(name, value) {\n var self = this;\n var lowerName = name.toLowerCase();\n // This check is not necessary, but it prevents warnings from browsers about setting unsafe\n // headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n // http-browserify did it, so I will too.\n if (unsafeHeaders.indexOf(lowerName) !== -1)\n return\n\n self._headers[lowerName] = {\n name: name,\n value: value\n };\n};\n\nClientRequest.prototype.getHeader = function(name) {\n var self = this;\n return self._headers[name.toLowerCase()].value\n};\n\nClientRequest.prototype.removeHeader = function(name) {\n var self = this;\n delete self._headers[name.toLowerCase()];\n};\n\nClientRequest.prototype._onFinish = function() {\n var self = this;\n\n if (self._destroyed)\n return\n var opts = self._opts;\n\n var headersObj = self._headers;\n var body;\n if (opts.method === 'POST' || opts.method === 'PUT' || opts.method === 'PATCH') {\n if (blobConstructor()) {\n body = new global.Blob(self._body.map(function(buffer) {\n return toArrayBuffer(buffer)\n }), {\n type: (headersObj['content-type'] || {}).value || ''\n });\n } else {\n // get utf8 string\n body = Buffer.concat(self._body).toString();\n }\n }\n\n if (self._mode === 'fetch') {\n var headers = Object.keys(headersObj).map(function(name) {\n return [headersObj[name].name, headersObj[name].value]\n });\n\n global.fetch(self._opts.url, {\n method: self._opts.method,\n headers: headers,\n body: body,\n mode: 'cors',\n credentials: opts.withCredentials ? 'include' : 'same-origin'\n }).then(function(response) {\n self._fetchResponse = response;\n self._connect();\n }, function(reason) {\n self.emit('error', reason);\n });\n } else {\n var xhr = self._xhr = new global.XMLHttpRequest();\n try {\n xhr.open(self._opts.method, self._opts.url, true);\n } catch (err) {\n process.nextTick(function() {\n self.emit('error', err);\n });\n return\n }\n\n // Can't set responseType on really old browsers\n if ('responseType' in xhr)\n xhr.responseType = self._mode.split(':')[0];\n\n if ('withCredentials' in xhr)\n xhr.withCredentials = !!opts.withCredentials;\n\n if (self._mode === 'text' && 'overrideMimeType' in xhr)\n xhr.overrideMimeType('text/plain; charset=x-user-defined');\n\n Object.keys(headersObj).forEach(function(name) {\n xhr.setRequestHeader(headersObj[name].name, headersObj[name].value);\n });\n\n self._response = null;\n xhr.onreadystatechange = function() {\n switch (xhr.readyState) {\n case rStates.LOADING:\n case rStates.DONE:\n self._onXHRProgress();\n break\n }\n };\n // Necessary for streaming in Firefox, since xhr.response is ONLY defined\n // in onprogress, not in onreadystatechange with xhr.readyState = 3\n if (self._mode === 'moz-chunked-arraybuffer') {\n xhr.onprogress = function() {\n self._onXHRProgress();\n };\n }\n\n xhr.onerror = function() {\n if (self._destroyed)\n return\n self.emit('error', new Error('XHR error'));\n };\n\n try {\n xhr.send(body);\n } catch (err) {\n process.nextTick(function() {\n self.emit('error', err);\n });\n return\n }\n }\n};\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid(xhr) {\n try {\n var status = xhr.status;\n return (status !== null && status !== 0)\n } catch (e) {\n return false\n }\n}\n\nClientRequest.prototype._onXHRProgress = function() {\n var self = this;\n\n if (!statusValid(self._xhr) || self._destroyed)\n return\n\n if (!self._response)\n self._connect();\n\n self._response._onXHRProgress();\n};\n\nClientRequest.prototype._connect = function() {\n var self = this;\n\n if (self._destroyed)\n return\n\n self._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode);\n self.emit('response', self._response);\n};\n\nClientRequest.prototype._write = function(chunk, encoding, cb) {\n var self = this;\n\n self._body.push(chunk);\n cb();\n};\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function() {\n var self = this;\n self._destroyed = true;\n if (self._response)\n self._response._destroyed = true;\n if (self._xhr)\n self._xhr.abort();\n // Currently, there isn't a way to truly abort a fetch.\n // If you like bikeshedding, see https://github.com/whatwg/fetch/issues/27\n};\n\nClientRequest.prototype.end = function(data, encoding, cb) {\n var self = this;\n if (typeof data === 'function') {\n cb = data;\n data = undefined;\n }\n\n Writable$1.prototype.end.call(self, data, encoding, cb);\n};\n\nClientRequest.prototype.flushHeaders = function() {};\nClientRequest.prototype.setTimeout = function() {};\nClientRequest.prototype.setNoDelay = function() {};\nClientRequest.prototype.setSocketKeepAlive = function() {};\n\n/*! https://mths.be/punycode v1.4.1 by @mathias */\n\n\n/** Highest positive signed 32-bit float value */\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\x20-\\x7E]/; // unprintable ASCII chars + non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n throw new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map$1(array, fn) {\n var length = array.length;\n var result = [];\n while (length--) {\n result[length] = fn(array[length]);\n }\n return result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n }\n // Avoid `split(regex)` for IE8 compatibility. See #17.\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map$1(labels, fn).join('.');\n return result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n while (counter < length) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nfunction digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n}\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nfunction adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for ( /* no initialization */ ; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n}\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nfunction encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT;\n\n // Convert the input in UCS-2 to Unicode\n input = ucs2decode(input);\n\n // Cache the length\n inputLength = input.length;\n\n // Initialize the state\n n = initialN;\n delta = 0;\n bias = initialBias;\n\n // Handle the basic code points\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length;\n\n // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n\n // Finish the basic string - if it is not empty - with a delimiter\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to ,\n // but guard against overflow\n handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base; /* no condition */ ; k += base) {\n t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) {\n break;\n }\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(\n stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n );\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n\n }\n return output.join('');\n}\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nfunction toASCII(input) {\n return mapDomain(input, function(string) {\n return regexNonASCII.test(string) ?\n 'xn--' + encode(string) :\n string;\n });\n}\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\nfunction stringifyPrimitive(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n}\n\nfunction stringify (obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys$1(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n}\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys$1 = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n\nfunction parse$2(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n}\n\n// Copyright Joyent, Inc. and other Node contributors.\nvar require$$3 = {\n parse: urlParse,\n resolve: urlResolve,\n resolveObject: urlResolveObject,\n format: urlFormat,\n Url: Url\n};\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n };\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n return parse$1(this, url, parseQueryString, slashesDenoteHost);\n};\n\nfunction parse$1(self, url, parseQueryString, slashesDenoteHost) {\n if (!isString$1(url)) {\n throw new TypeError('Parameter \\'url\\' must be a string, not ' + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n self.path = rest;\n self.href = rest;\n self.pathname = simplePath[1];\n if (simplePath[2]) {\n self.search = simplePath[2];\n if (parseQueryString) {\n self.query = parse$2(self.search.substr(1));\n } else {\n self.query = self.search.substr(1);\n }\n } else if (parseQueryString) {\n self.search = '';\n self.query = {};\n }\n return self;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n self.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n self.slashes = true;\n }\n }\n var i, hec, l, p;\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n self.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n self.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n parseHost(self);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n self.hostname = self.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = self.hostname[0] === '[' &&\n self.hostname[self.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = self.hostname.split(/\\./);\n for (i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n self.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (self.hostname.length > hostnameMaxLen) {\n self.hostname = '';\n } else {\n // hostnames are always lower case.\n self.hostname = self.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n self.hostname = toASCII(self.hostname);\n }\n\n p = self.port ? ':' + self.port : '';\n var h = self.hostname || '';\n self.host = h + p;\n self.href += self.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n self.hostname = self.hostname.substr(1, self.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n self.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n self.search = rest.substr(qm);\n self.query = rest.substr(qm + 1);\n if (parseQueryString) {\n self.query = parse$2(self.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n self.search = '';\n self.query = {};\n }\n if (rest) self.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n self.hostname && !self.pathname) {\n self.pathname = '/';\n }\n\n //to support http.request\n if (self.pathname || self.search) {\n p = self.pathname || '';\n var s = self.search || '';\n self.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n self.href = format(self);\n return self;\n}\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (isString$1(obj)) obj = parse$1({}, obj);\n return format(obj);\n}\n\nfunction format(self) {\n var auth = self.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = self.protocol || '',\n pathname = self.pathname || '',\n hash = self.hash || '',\n host = false,\n query = '';\n\n if (self.host) {\n host = auth + self.host;\n } else if (self.hostname) {\n host = auth + (self.hostname.indexOf(':') === -1 ?\n self.hostname :\n '[' + this.hostname + ']');\n if (self.port) {\n host += ':' + self.port;\n }\n }\n\n if (self.query &&\n isObject(self.query) &&\n Object.keys(self.query).length) {\n query = stringify(self.query);\n }\n\n var search = self.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (self.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n}\n\nUrl.prototype.format = function() {\n return format(this);\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (isString$1(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n var relPath;\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n relPath = relative.pathname && relative.pathname.split('/') || [];\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n var authInHost;\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n return parseHost(this);\n};\n\nfunction parseHost(self) {\n var host = self.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n self.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) self.hostname = host;\n}\n\n/*\nthis and http-lib folder\n\nThe MIT License\n\nCopyright (c) 2015 John Hiesey\n\nPermission is hereby granted, free of charge,\nto any person obtaining a copy of this software and\nassociated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify,\nmerge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom\nthe Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice\nshall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR\nANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\nfunction request(opts, cb) {\n if (typeof opts === 'string')\n opts = urlParse(opts);\n\n\n // Normally, the page is loaded from http or https, so not specifying a protocol\n // will result in a (valid) protocol-relative url. However, this won't work if\n // the protocol is something else, like 'file:'\n var defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : '';\n\n var protocol = opts.protocol || defaultProtocol;\n var host = opts.hostname || opts.host;\n var port = opts.port;\n var path = opts.path || '/';\n\n // Necessary for IPv6 addresses\n if (host && host.indexOf(':') !== -1)\n host = '[' + host + ']';\n\n // This may be a relative url. The browser should always be able to interpret it correctly.\n opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path;\n opts.method = (opts.method || 'GET').toUpperCase();\n opts.headers = opts.headers || {};\n\n // Also valid opts.auth, opts.mode\n\n var req = new ClientRequest(opts);\n if (cb)\n req.on('response', cb);\n return req\n}\n\nfunction get(opts, cb) {\n var req = request(opts, cb);\n req.end();\n return req\n}\n\nfunction Agent() {}\nAgent.defaultMaxSockets = 4;\n\nvar METHODS = [\n 'CHECKOUT',\n 'CONNECT',\n 'COPY',\n 'DELETE',\n 'GET',\n 'HEAD',\n 'LOCK',\n 'M-SEARCH',\n 'MERGE',\n 'MKACTIVITY',\n 'MKCOL',\n 'MOVE',\n 'NOTIFY',\n 'OPTIONS',\n 'PATCH',\n 'POST',\n 'PROPFIND',\n 'PROPPATCH',\n 'PURGE',\n 'PUT',\n 'REPORT',\n 'SEARCH',\n 'SUBSCRIBE',\n 'TRACE',\n 'UNLOCK',\n 'UNSUBSCRIBE'\n];\nvar STATUS_CODES = {\n 100: 'Continue',\n 101: 'Switching Protocols',\n 102: 'Processing', // RFC 2518, obsoleted by RFC 4918\n 200: 'OK',\n 201: 'Created',\n 202: 'Accepted',\n 203: 'Non-Authoritative Information',\n 204: 'No Content',\n 205: 'Reset Content',\n 206: 'Partial Content',\n 207: 'Multi-Status', // RFC 4918\n 300: 'Multiple Choices',\n 301: 'Moved Permanently',\n 302: 'Moved Temporarily',\n 303: 'See Other',\n 304: 'Not Modified',\n 305: 'Use Proxy',\n 307: 'Temporary Redirect',\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 402: 'Payment Required',\n 403: 'Forbidden',\n 404: 'Not Found',\n 405: 'Method Not Allowed',\n 406: 'Not Acceptable',\n 407: 'Proxy Authentication Required',\n 408: 'Request Time-out',\n 409: 'Conflict',\n 410: 'Gone',\n 411: 'Length Required',\n 412: 'Precondition Failed',\n 413: 'Request Entity Too Large',\n 414: 'Request-URI Too Large',\n 415: 'Unsupported Media Type',\n 416: 'Requested Range Not Satisfiable',\n 417: 'Expectation Failed',\n 418: 'I\\'m a teapot', // RFC 2324\n 422: 'Unprocessable Entity', // RFC 4918\n 423: 'Locked', // RFC 4918\n 424: 'Failed Dependency', // RFC 4918\n 425: 'Unordered Collection', // RFC 4918\n 426: 'Upgrade Required', // RFC 2817\n 428: 'Precondition Required', // RFC 6585\n 429: 'Too Many Requests', // RFC 6585\n 431: 'Request Header Fields Too Large', // RFC 6585\n 500: 'Internal Server Error',\n 501: 'Not Implemented',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n 504: 'Gateway Time-out',\n 505: 'HTTP Version Not Supported',\n 506: 'Variant Also Negotiates', // RFC 2295\n 507: 'Insufficient Storage', // RFC 4918\n 509: 'Bandwidth Limit Exceeded',\n 510: 'Not Extended', // RFC 2774\n 511: 'Network Authentication Required' // RFC 6585\n};\n\nvar https = {\n request,\n get,\n Agent,\n METHODS,\n STATUS_CODES\n};\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\nvar pSlice = Array.prototype.slice;\nvar _functionsHaveNames;\nfunction functionsHaveNames() {\n if (typeof _functionsHaveNames !== 'undefined') {\n return _functionsHaveNames;\n }\n return _functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n }());\n}\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer$1(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nfunction assert$1(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!isFunction$1(func)) {\n return;\n }\n if (functionsHaveNames()) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert$1.AssertionError = AssertionError;\nfunction AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n}\n\n// assert.AssertionError instanceof Error\ninherits$1(AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames() || !isFunction$1(something)) {\n return inspect$1(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert$1.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\nassert$1.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\nassert$1.equal = equal;\nfunction equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', equal);\n}\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\nassert$1.notEqual = notEqual;\nfunction notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', notEqual);\n }\n}\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\nassert$1.deepEqual = deepEqual;\nfunction deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', deepEqual);\n }\n}\nassert$1.deepStrictEqual = deepStrictEqual;\nfunction deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', deepStrictEqual);\n }\n}\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer$1(actual) && isBuffer$1(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (isDate(actual) && isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (isRegExp(actual) && isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer$1(actual) !== isBuffer$1(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (isPrimitive(a) || isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\nassert$1.notDeepEqual = notDeepEqual;\nfunction notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', notDeepEqual);\n }\n}\n\nassert$1.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\nassert$1.strictEqual = strictEqual;\nfunction strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', strictEqual);\n }\n}\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\nassert$1.notStrictEqual = notStrictEqual;\nfunction notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', notStrictEqual);\n }\n}\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\nassert$1.throws = throws;\nfunction throws(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n}\n\n// EXTENSION! This is annoying to write outside this module.\nassert$1.doesNotThrow = doesNotThrow;\nfunction doesNotThrow(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n}\n\nassert$1.ifError = ifError;\nfunction ifError(err) {\n if (err) throw err;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nvar ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\nvar debug$1 = createCommonjsModule(function (module, exports) {\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = ms;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n});\n\nvar browser = createCommonjsModule(function (module, exports) {\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n});\n\n// MIT lisence\n// from https://github.com/substack/tty-browserify/blob/1ba769a6429d242f36226538835b4034bf6b7886/index.js\n\nfunction isatty() {\n return false;\n}\n\nfunction ReadStream() {\n throw new Error('tty.ReadStream is not implemented');\n}\n\nfunction WriteStream() {\n throw new Error('tty.ReadStream is not implemented');\n}\n\nvar tty = {\n isatty: isatty,\n ReadStream: ReadStream,\n WriteStream: WriteStream\n};\n\nvar require$$2$1 = {};\n\nvar node = createCommonjsModule(function (module, exports) {\n/**\n * Module dependencies.\n */\n\n\n\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')();\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = require$$2$1;\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = require$$2$1;\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n});\n\nvar src = createCommonjsModule(function (module) {\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = browser;\n} else {\n module.exports = node;\n}\n});\n\nvar debug;\n\nvar debug_1 = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = src(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n\nvar URL = require$$3.URL;\n\n\nvar Writable = Stream.Writable;\n\n\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n require$$3.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = require$$3.parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n require$$3.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = require$$3.resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug_1(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = require$$3.parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = require$$3.parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert$1.equal(options.protocol, protocol, \"protocol mismatch\");\n debug_1(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert$1(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nvar followRedirects = wrap({ http: https, https: https });\nvar wrap_1 = wrap;\nfollowRedirects.wrap = wrap_1;\n\nvar msg = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nfunction arraySet(dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n}\n\n\nvar Buf8 = Uint8Array;\nvar Buf16 = Uint16Array;\nvar Buf32 = Int32Array;\n// Enable/Disable typed arrays use, for testing\n//\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED$2 = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY$1 = 0;\nvar Z_TEXT$1 = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN$2 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) {\n var len = buf.length;\n while (--len >= 0) {\n buf[len] = 0;\n }\n}\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH$1 = 3;\nvar MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES$1 = 30;\n/* number of distance codes */\n\nvar BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nvar MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */ [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];\n\nvar extra_dbits = /* extra bits for each distance code */ [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];\n\nvar extra_blbits = /* extra bits for each bit length code */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];\n\nvar bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n // put_byte(s, (uch)((w) & 0xff));\n // put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2] /*.Code*/ , tree[c * 2 + 1] /*.Len*/ );\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc) {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1] /*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1] /*.Dad*/ * 2 + 1] /*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1] /*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) {\n continue;\n } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2] /*.Freq*/ ;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1] /*.Len*/ + xbits);\n }\n }\n if (overflow === 0) {\n return;\n }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) {\n bits--;\n }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) {\n continue;\n }\n if (tree[m * 2 + 1] /*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1] /*.Len*/ ) * tree[m * 2] /*.Freq*/ ;\n tree[m * 2 + 1] /*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count) {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n var next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1] /*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1] /*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1] /*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1] /*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1] /*.Len*/ = 5;\n static_dtree[n * 2] /*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) {\n s.dyn_ltree[n * 2] /*.Freq*/ = 0;\n }\n for (n = 0; n < D_CODES$1; n++) {\n s.dyn_dtree[n * 2] /*.Freq*/ = 0;\n }\n for (n = 0; n < BL_CODES$1; n++) {\n s.bl_tree[n * 2] /*.Freq*/ = 0;\n }\n\n s.dyn_ltree[END_BLOCK * 2] /*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s) {\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header) {\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n // while (len--) {\n // put_byte(s, *buf++);\n // }\n arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2] /*.Freq*/ < tree[_m2] /*.Freq*/ ||\n (tree[_n2] /*.Freq*/ === tree[_m2] /*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) {\n break;\n }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2] /*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1] /*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2] /*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1] /*.Len*/ ;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1 /*int /2*/ ); n >= 1; n--) {\n pqdownheap(s, tree, n);\n }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1 /*SMALLEST*/ ];\n s.heap[1 /*SMALLEST*/ ] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1 /*SMALLEST*/ );\n /***/\n\n m = s.heap[1 /*SMALLEST*/ ]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2] /*.Freq*/ = tree[n * 2] /*.Freq*/ + tree[m * 2] /*.Freq*/ ;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1] /*.Dad*/ = tree[m * 2 + 1] /*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1 /*SMALLEST*/ ] = node++;\n pqdownheap(s, tree, 1 /*SMALLEST*/ );\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1 /*SMALLEST*/ ];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1] /*.Len*/ ; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1] /*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1] /*.Len*/ ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2] /*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) {\n s.bl_tree[curlen * 2] /*.Freq*/ ++;\n }\n s.bl_tree[REP_3_6 * 2] /*.Freq*/ ++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2] /*.Freq*/ ++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2] /*.Freq*/ ++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1] /*.Len*/ ; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */\n /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1] /*.Len*/ ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do {\n send_code(s, curlen, s.bl_tree);\n } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1] /*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1] /*.Len*/ , 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2] /*.Freq*/ !== 0)) {\n return Z_BINARY$1;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2] /*.Freq*/ !== 0 || s.dyn_ltree[10 * 2] /*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2] /*.Freq*/ !== 0) {\n return Z_TEXT$1;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2] /*.Freq*/ !== 0) {\n return Z_TEXT$1;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY$1;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s) {\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$2) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) {\n opt_lenb = static_lenb;\n }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$2 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2] /*.Freq*/ ++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2] /*.Freq*/ ++;\n s.dyn_dtree[d_code(dist) * 2] /*.Freq*/ ++;\n }\n\n // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n\n //#ifdef TRUNCATE_BLOCK\n // /* Try to guess if it is profitable to stop the current block here */\n // if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n // /* Compute an upper bound for the compressed length */\n // out_length = s.last_lit*8;\n // in_length = s.strstart - s.block_start;\n //\n // for (dcode = 0; dcode < D_CODES; dcode++) {\n // out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n // }\n // out_length >>>= 3;\n // //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n // // s->last_lit, in_length, out_length,\n // // 100L - out_length*100L/in_length));\n // if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n // return true;\n // }\n // }\n //#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH$1 = 0;\nvar Z_PARTIAL_FLUSH$1 = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH$1 = 3;\nvar Z_FINISH$2 = 4;\nvar Z_BLOCK$2 = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK$2 = 0;\nvar Z_STREAM_END$2 = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR$2 = -2;\nvar Z_DATA_ERROR$2 = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR$2 = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION$1 = -1;\n\n\nvar Z_FILTERED$1 = 1;\nvar Z_HUFFMAN_ONLY$1 = 2;\nvar Z_RLE$1 = 3;\nvar Z_FIXED$1 = 4;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN$1 = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED$2 = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) {\n var len = buf.length;\n while (--len >= 0) {\n buf[len] = 0;\n }\n}\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) {\n return;\n }\n\n arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n // put_byte(s, (Byte)(b >> 8));\n // put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) {\n len = size;\n }\n if (len === 0) {\n return 0;\n }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n } else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0 /*NIL*/ ;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) {\n nice_match = s.lookahead;\n }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n //#if MIN_MATCH != 3\n // Call update_hash() MIN_MATCH-3 more times\n //#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n // if (s.high_water < s.window_size) {\n // var curr = s.strstart + s.lookahead;\n // var init = 0;\n //\n // if (s.high_water < curr) {\n // /* Previous high water mark below current data -- zero WIN_INIT\n // * bytes or up to end of window, whichever is less.\n // */\n // init = s.window_size - curr;\n // if (init > WIN_INIT)\n // init = WIN_INIT;\n // zmemzero(s->window + curr, (unsigned)init);\n // s->high_water = curr + init;\n // }\n // else if (s->high_water < (ulg)curr + WIN_INIT) {\n // /* High water mark at or above current data, but below current data\n // * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n // * to end of window, whichever is less.\n // */\n // init = (ulg)curr + WIN_INIT - s->high_water;\n // if (init > s->window_size - s->high_water)\n // init = s->window_size - s->high_water;\n // zmemzero(s->window + s->high_water, (unsigned)init);\n // s->high_water += init;\n // }\n // }\n //\n // Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n // \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n // if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n // s.block_start >= s.w_size)) {\n // throw new Error(\"slide too late\");\n // }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n // if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0 /*NIL*/ ;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0 /*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match /*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n //#if MIN_MATCH != 3\n // Call UPDATE_HASH() MIN_MATCH-3 more times\n //#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break;\n } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0 /*NIL*/ ;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0 /*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD) /*MAX_DIST(s)*/ ) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED$1 || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096 /*TOO_FAR*/ ))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break;\n } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all\n */\n\n this.depth = new Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN$1;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$1;\n _tr_init(s);\n return Z_OK$2;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK$2) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n } else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED$1) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Buf8(s.w_size * 2);\n s.head = new Buf16(s.hash_size);\n s.prev = new Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\n\nfunction deflate$1(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$2 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$2)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$2 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n if (s.wrap === 2) {\n // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY$1 || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n } else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY$1 || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n } else // DEFLATE header\n {\n var header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY$1 || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) {\n header |= PRESET_DICT;\n }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n //#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra /* != Z_NULL*/ ) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n } else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name /* != Z_NULL*/ ) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n } else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment /* != Z_NULL*/ ) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n } else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n } else {\n s.status = BUSY_STATE;\n }\n }\n //#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$2;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$2) {\n return err(strm, Z_BUF_ERROR$2);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$2);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$1 && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY$1) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE$1 ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$2;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH$1) {\n _tr_align(s);\n } else if (flush !== Z_BLOCK$2) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/\n /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$2;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$2) {\n return Z_OK$2;\n }\n if (s.wrap <= 0) {\n return Z_STREAM_END$2;\n }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n } else {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) {\n s.wrap = -s.wrap;\n }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$2 : Z_STREAM_END$2;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm /*== Z_NULL*/ || !strm.state /*== Z_NULL*/ ) {\n return Z_STREAM_ERROR$2;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$2;\n}\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n\n// See state defs from inflate.js\nvar BAD$1 = 30; /* got a data error -- remain here until reset */\nvar TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nfunction inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n}\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS$1 = 852;\nvar ENOUGH_DISTS$1 = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES$1 = 0;\nvar LENS$1 = 1;\nvar DISTS$1 = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nfunction inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0,\n max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n // var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) {\n break;\n }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) {\n break;\n }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n } else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n } else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val | 0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) {\n break;\n }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) {\n break;\n }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) | 0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) | 0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n}\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH$1 = 4;\nvar Z_BLOCK$1 = 5;\nvar Z_TREES$1 = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK$1 = 0;\nvar Z_STREAM_END$1 = 1;\nvar Z_NEED_DICT$1 = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR$1 = -2;\nvar Z_DATA_ERROR$1 = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR$1 = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED$1 = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Buf16(320); /* temporary storage for code lengths */\n this.work = new Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null /*Z_NULL*/ ;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n } else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) {\n return Z_STREAM_ERROR$1;\n }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null /*Z_NULL*/ ;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null /*Z_NULL*/ ;\n }\n return ret;\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new Buf32(512);\n distfix = new Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) {\n state.lens[sym++] = 8;\n }\n while (sym < 256) {\n state.lens[sym++] = 9;\n }\n while (sym < 280) {\n state.lens[sym++] = 7;\n }\n while (sym < 288) {\n state.lens[sym++] = 8;\n }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {\n bits: 9\n });\n\n /* distance table */\n sym = 0;\n while (sym < 32) {\n state.lens[sym++] = 5;\n }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {\n bits: 5\n });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n } else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n } else {\n state.wnext += dist;\n if (state.wnext === state.wsize) {\n state.wnext = 0;\n }\n if (state.whave < state.wsize) {\n state.whave += dist;\n }\n }\n }\n return 0;\n}\n\nfunction inflate$1(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */ [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) {\n state.mode = TYPEDO;\n } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0 /*crc32(0L, Z_NULL, 0)*/ ;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff) /*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f) /*BITS(4)*/ !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f) /*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n } else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1 /*adler32(0L, Z_NULL, 0)*/ ;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n } else if (state.head) {\n state.head.extra = null /*Z_NULL*/ ;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) {\n copy = have;\n }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) {\n break inf_leave;\n }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) {\n break inf_leave;\n }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/ )) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) {\n break inf_leave;\n }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/ )) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1 /*adler32(0L, Z_NULL, 0)*/ ;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK$1 || flush === Z_TREES$1) {\n break inf_leave;\n }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01) /*BITS(1)*/ ;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03) /*BITS(2)*/ ) {\n case 0:\n /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1:\n /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES$1) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2:\n /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES$1) {\n break inf_leave;\n }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) {\n copy = have;\n }\n if (copy > left) {\n copy = left;\n }\n if (copy === 0) {\n break inf_leave;\n }\n //--- zmemcpy(put, next, copy); ---\n arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f) /*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f) /*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f) /*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n //#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n //#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n } else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03); //BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n } else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n } else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f); //BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) {\n break;\n }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = {\n bits: state.distbits\n };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES$1) {\n break inf_leave;\n }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1)) /*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1) /*BITS(state.extra)*/ ;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)]; /*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1)) /*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1) /*BITS(state.extra)*/ ;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n //#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) {\n break inf_leave;\n }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // Trace((stderr, \"inflate.c too far\\n\"));\n // copy -= state.whave;\n // if (copy > state.length) { copy = state.length; }\n // if (copy > left) { copy = left; }\n // left -= copy;\n // state.length -= copy;\n // do {\n // output[put++] = 0;\n // } while (--copy);\n // if (state.length === 0) { state.mode = LEN; }\n // break;\n //#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n } else {\n from = state.wnext - copy;\n }\n if (copy > state.length) {\n copy = state.length;\n }\n from_source = state.window;\n } else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) {\n copy = left;\n }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) {\n state.mode = LEN;\n }\n break;\n case LIT:\n if (left === 0) {\n break inf_leave;\n }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n // Use '|' insdead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR$1;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/ ) {\n return Z_STREAM_ERROR$1;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n}\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n\n// import constants from './constants';\n\n\n// zlib modes\nvar NONE = 0;\nvar DEFLATE = 1;\nvar INFLATE = 2;\nvar GZIP = 3;\nvar GUNZIP = 4;\nvar DEFLATERAW = 5;\nvar INFLATERAW = 6;\nvar UNZIP = 7;\nvar Z_NO_FLUSH= 0,\n Z_PARTIAL_FLUSH= 1,\n Z_SYNC_FLUSH= 2,\n Z_FULL_FLUSH= 3,\n Z_FINISH= 4,\n Z_BLOCK= 5,\n Z_TREES= 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK= 0,\n Z_STREAM_END= 1,\n Z_NEED_DICT= 2,\n Z_ERRNO= -1,\n Z_STREAM_ERROR= -2,\n Z_DATA_ERROR= -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR= -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION= 0,\n Z_BEST_SPEED= 1,\n Z_BEST_COMPRESSION= 9,\n Z_DEFAULT_COMPRESSION= -1,\n\n\n Z_FILTERED= 1,\n Z_HUFFMAN_ONLY= 2,\n Z_RLE= 3,\n Z_FIXED= 4,\n Z_DEFAULT_STRATEGY= 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY= 0,\n Z_TEXT= 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN= 2,\n\n /* The deflate compression method */\n Z_DEFLATED= 8;\nfunction Zlib$1(mode) {\n if (mode < DEFLATE || mode > UNZIP)\n throw new TypeError('Bad argument');\n\n this.mode = mode;\n this.init_done = false;\n this.write_in_progress = false;\n this.pending_close = false;\n this.windowBits = 0;\n this.level = 0;\n this.memLevel = 0;\n this.strategy = 0;\n this.dictionary = null;\n}\n\nZlib$1.prototype.init = function(windowBits, level, memLevel, strategy, dictionary) {\n this.windowBits = windowBits;\n this.level = level;\n this.memLevel = memLevel;\n this.strategy = strategy;\n // dictionary not supported.\n\n if (this.mode === GZIP || this.mode === GUNZIP)\n this.windowBits += 16;\n\n if (this.mode === UNZIP)\n this.windowBits += 32;\n\n if (this.mode === DEFLATERAW || this.mode === INFLATERAW)\n this.windowBits = -this.windowBits;\n\n this.strm = new ZStream();\n var status;\n switch (this.mode) {\n case DEFLATE:\n case GZIP:\n case DEFLATERAW:\n status = deflateInit2(\n this.strm,\n this.level,\n Z_DEFLATED,\n this.windowBits,\n this.memLevel,\n this.strategy\n );\n break;\n case INFLATE:\n case GUNZIP:\n case INFLATERAW:\n case UNZIP:\n status = inflateInit2(\n this.strm,\n this.windowBits\n );\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (status !== Z_OK) {\n this._error(status);\n return;\n }\n\n this.write_in_progress = false;\n this.init_done = true;\n};\n\nZlib$1.prototype.params = function() {\n throw new Error('deflateParams Not supported');\n};\n\nZlib$1.prototype._writeCheck = function() {\n if (!this.init_done)\n throw new Error('write before init');\n\n if (this.mode === NONE)\n throw new Error('already finalized');\n\n if (this.write_in_progress)\n throw new Error('write already in progress');\n\n if (this.pending_close)\n throw new Error('close is pending');\n};\n\nZlib$1.prototype.write = function(flush, input, in_off, in_len, out, out_off, out_len) {\n this._writeCheck();\n this.write_in_progress = true;\n\n var self = this;\n process.nextTick(function() {\n self.write_in_progress = false;\n var res = self._write(flush, input, in_off, in_len, out, out_off, out_len);\n self.callback(res[0], res[1]);\n\n if (self.pending_close)\n self.close();\n });\n\n return this;\n};\n\n// set method for Node buffers, used by pako\nfunction bufferSet(data, offset) {\n for (var i = 0; i < data.length; i++) {\n this[offset + i] = data[i];\n }\n}\n\nZlib$1.prototype.writeSync = function(flush, input, in_off, in_len, out, out_off, out_len) {\n this._writeCheck();\n return this._write(flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib$1.prototype._write = function(flush, input, in_off, in_len, out, out_off, out_len) {\n this.write_in_progress = true;\n\n if (flush !== Z_NO_FLUSH &&\n flush !== Z_PARTIAL_FLUSH &&\n flush !== Z_SYNC_FLUSH &&\n flush !== Z_FULL_FLUSH &&\n flush !== Z_FINISH &&\n flush !== Z_BLOCK) {\n throw new Error('Invalid flush value');\n }\n\n if (input == null) {\n input = new Buffer(0);\n in_len = 0;\n in_off = 0;\n }\n\n if (out._set)\n out.set = out._set;\n else\n out.set = bufferSet;\n\n var strm = this.strm;\n strm.avail_in = in_len;\n strm.input = input;\n strm.next_in = in_off;\n strm.avail_out = out_len;\n strm.output = out;\n strm.next_out = out_off;\n var status;\n switch (this.mode) {\n case DEFLATE:\n case GZIP:\n case DEFLATERAW:\n status = deflate$1(strm, flush);\n break;\n case UNZIP:\n case INFLATE:\n case GUNZIP:\n case INFLATERAW:\n status = inflate$1(strm, flush);\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this._error(status);\n }\n\n this.write_in_progress = false;\n return [strm.avail_in, strm.avail_out];\n};\n\nZlib$1.prototype.close = function() {\n if (this.write_in_progress) {\n this.pending_close = true;\n return;\n }\n\n this.pending_close = false;\n\n if (this.mode === DEFLATE || this.mode === GZIP || this.mode === DEFLATERAW) {\n deflateEnd(this.strm);\n } else {\n inflateEnd(this.strm);\n }\n\n this.mode = NONE;\n};\nvar status;\nZlib$1.prototype.reset = function() {\n switch (this.mode) {\n case DEFLATE:\n case DEFLATERAW:\n status = deflateReset(this.strm);\n break;\n case INFLATE:\n case INFLATERAW:\n status = inflateReset(this.strm);\n break;\n }\n\n if (status !== Z_OK) {\n this._error(status);\n }\n};\n\nZlib$1.prototype._error = function(status) {\n this.onerror(msg[status] + ': ' + this.strm.msg, status);\n\n this.write_in_progress = false;\n if (this.pending_close)\n this.close();\n};\n\nvar _binding = /*#__PURE__*/Object.freeze({\n __proto__: null,\n NONE: NONE,\n DEFLATE: DEFLATE,\n INFLATE: INFLATE,\n GZIP: GZIP,\n GUNZIP: GUNZIP,\n DEFLATERAW: DEFLATERAW,\n INFLATERAW: INFLATERAW,\n UNZIP: UNZIP,\n Z_NO_FLUSH: Z_NO_FLUSH,\n Z_PARTIAL_FLUSH: Z_PARTIAL_FLUSH,\n Z_SYNC_FLUSH: Z_SYNC_FLUSH,\n Z_FULL_FLUSH: Z_FULL_FLUSH,\n Z_FINISH: Z_FINISH,\n Z_BLOCK: Z_BLOCK,\n Z_TREES: Z_TREES,\n Z_OK: Z_OK,\n Z_STREAM_END: Z_STREAM_END,\n Z_NEED_DICT: Z_NEED_DICT,\n Z_ERRNO: Z_ERRNO,\n Z_STREAM_ERROR: Z_STREAM_ERROR,\n Z_DATA_ERROR: Z_DATA_ERROR,\n Z_BUF_ERROR: Z_BUF_ERROR,\n Z_NO_COMPRESSION: Z_NO_COMPRESSION,\n Z_BEST_SPEED: Z_BEST_SPEED,\n Z_BEST_COMPRESSION: Z_BEST_COMPRESSION,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION,\n Z_FILTERED: Z_FILTERED,\n Z_HUFFMAN_ONLY: Z_HUFFMAN_ONLY,\n Z_RLE: Z_RLE,\n Z_FIXED: Z_FIXED,\n Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY,\n Z_BINARY: Z_BINARY,\n Z_TEXT: Z_TEXT,\n Z_UNKNOWN: Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED,\n Zlib: Zlib$1\n});\n\n// Copyright Joyent, Inc. and other Node contributors.\nfunction assert (a, msg) {\n if (!a) {\n throw new Error(msg);\n }\n}\nvar binding = {};\nObject.keys(_binding).forEach(function (key) {\n binding[key] = _binding[key];\n});\n// zlib doesn't provide these, so kludge them in following the same\n// const naming scheme zlib uses.\nbinding.Z_MIN_WINDOWBITS = 8;\nbinding.Z_MAX_WINDOWBITS = 15;\nbinding.Z_DEFAULT_WINDOWBITS = 15;\n\n// fewer than 64 bytes per chunk is stupid.\n// technically it could work with as few as 8, but even 64 bytes\n// is absurdly low. Usually a MB or more is best.\nbinding.Z_MIN_CHUNK = 64;\nbinding.Z_MAX_CHUNK = Infinity;\nbinding.Z_DEFAULT_CHUNK = (16 * 1024);\n\nbinding.Z_MIN_MEMLEVEL = 1;\nbinding.Z_MAX_MEMLEVEL = 9;\nbinding.Z_DEFAULT_MEMLEVEL = 8;\n\nbinding.Z_MIN_LEVEL = -1;\nbinding.Z_MAX_LEVEL = 9;\nbinding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION;\n\n\n// translation table for return codes.\nvar codes = {\n Z_OK: binding.Z_OK,\n Z_STREAM_END: binding.Z_STREAM_END,\n Z_NEED_DICT: binding.Z_NEED_DICT,\n Z_ERRNO: binding.Z_ERRNO,\n Z_STREAM_ERROR: binding.Z_STREAM_ERROR,\n Z_DATA_ERROR: binding.Z_DATA_ERROR,\n Z_MEM_ERROR: binding.Z_MEM_ERROR,\n Z_BUF_ERROR: binding.Z_BUF_ERROR,\n Z_VERSION_ERROR: binding.Z_VERSION_ERROR\n};\n\nObject.keys(codes).forEach(function(k) {\n codes[codes[k]] = k;\n});\n\nfunction createDeflate(o) {\n return new Deflate(o);\n}\n\nfunction createInflate(o) {\n return new Inflate(o);\n}\n\nfunction createDeflateRaw(o) {\n return new DeflateRaw(o);\n}\n\nfunction createInflateRaw(o) {\n return new InflateRaw(o);\n}\n\nfunction createGzip(o) {\n return new Gzip(o);\n}\n\nfunction createGunzip(o) {\n return new Gunzip(o);\n}\n\nfunction createUnzip(o) {\n return new Unzip(o);\n}\n\n\n// Convenience methods.\n// compress/decompress a string or buffer in one step.\nfunction deflate(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Deflate(opts), buffer, callback);\n}\n\nfunction deflateSync(buffer, opts) {\n return zlibBufferSync(new Deflate(opts), buffer);\n}\n\nfunction gzip(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gzip(opts), buffer, callback);\n}\n\nfunction gzipSync(buffer, opts) {\n return zlibBufferSync(new Gzip(opts), buffer);\n}\n\nfunction deflateRaw(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n}\n\nfunction deflateRawSync(buffer, opts) {\n return zlibBufferSync(new DeflateRaw(opts), buffer);\n}\n\nfunction unzip(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Unzip(opts), buffer, callback);\n}\n\nfunction unzipSync(buffer, opts) {\n return zlibBufferSync(new Unzip(opts), buffer);\n}\n\nfunction inflate(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Inflate(opts), buffer, callback);\n}\n\nfunction inflateSync(buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n}\n\nfunction gunzip(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gunzip(opts), buffer, callback);\n}\n\nfunction gunzipSync(buffer, opts) {\n return zlibBufferSync(new Gunzip(opts), buffer);\n}\n\nfunction inflateRaw(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new InflateRaw(opts), buffer, callback);\n}\n\nfunction inflateRawSync(buffer, opts) {\n return zlibBufferSync(new InflateRaw(opts), buffer);\n}\n\nfunction zlibBuffer(engine, buffer, callback) {\n var buffers = [];\n var nread = 0;\n\n engine.on('error', onError);\n engine.on('end', onEnd);\n\n engine.end(buffer);\n flow();\n\n function flow() {\n var chunk;\n while (null !== (chunk = engine.read())) {\n buffers.push(chunk);\n nread += chunk.length;\n }\n engine.once('readable', flow);\n }\n\n function onError(err) {\n engine.removeListener('end', onEnd);\n engine.removeListener('readable', flow);\n callback(err);\n }\n\n function onEnd() {\n var buf = Buffer.concat(buffers, nread);\n buffers = [];\n callback(null, buf);\n engine.close();\n }\n}\n\nfunction zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string')\n buffer = new Buffer(buffer);\n if (!Buffer.isBuffer(buffer))\n throw new TypeError('Not a string or buffer');\n\n var flushFlag = binding.Z_FINISH;\n\n return engine._processChunk(buffer, flushFlag);\n}\n\n// generic zlib\n// minimal 2-byte header\nfunction Deflate(opts) {\n if (!(this instanceof Deflate)) return new Deflate(opts);\n Zlib.call(this, opts, binding.DEFLATE);\n}\n\nfunction Inflate(opts) {\n if (!(this instanceof Inflate)) return new Inflate(opts);\n Zlib.call(this, opts, binding.INFLATE);\n}\n\n\n\n// gzip - bigger header, same deflate compression\nfunction Gzip(opts) {\n if (!(this instanceof Gzip)) return new Gzip(opts);\n Zlib.call(this, opts, binding.GZIP);\n}\n\nfunction Gunzip(opts) {\n if (!(this instanceof Gunzip)) return new Gunzip(opts);\n Zlib.call(this, opts, binding.GUNZIP);\n}\n\n\n\n// raw - no header\nfunction DeflateRaw(opts) {\n if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n Zlib.call(this, opts, binding.DEFLATERAW);\n}\n\nfunction InflateRaw(opts) {\n if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n Zlib.call(this, opts, binding.INFLATERAW);\n}\n\n\n// auto-detect header.\nfunction Unzip(opts) {\n if (!(this instanceof Unzip)) return new Unzip(opts);\n Zlib.call(this, opts, binding.UNZIP);\n}\n\n\n// the Zlib class they all inherit from\n// This thing manages the queue of requests, and returns\n// true or false if there is anything in the queue when\n// you call the .write() method.\n\nfunction Zlib(opts, mode) {\n this._opts = opts = opts || {};\n this._chunkSize = opts.chunkSize || binding.Z_DEFAULT_CHUNK;\n\n Transform.call(this, opts);\n\n if (opts.flush) {\n if (opts.flush !== binding.Z_NO_FLUSH &&\n opts.flush !== binding.Z_PARTIAL_FLUSH &&\n opts.flush !== binding.Z_SYNC_FLUSH &&\n opts.flush !== binding.Z_FULL_FLUSH &&\n opts.flush !== binding.Z_FINISH &&\n opts.flush !== binding.Z_BLOCK) {\n throw new Error('Invalid flush flag: ' + opts.flush);\n }\n }\n this._flushFlag = opts.flush || binding.Z_NO_FLUSH;\n\n if (opts.chunkSize) {\n if (opts.chunkSize < binding.Z_MIN_CHUNK ||\n opts.chunkSize > binding.Z_MAX_CHUNK) {\n throw new Error('Invalid chunk size: ' + opts.chunkSize);\n }\n }\n\n if (opts.windowBits) {\n if (opts.windowBits < binding.Z_MIN_WINDOWBITS ||\n opts.windowBits > binding.Z_MAX_WINDOWBITS) {\n throw new Error('Invalid windowBits: ' + opts.windowBits);\n }\n }\n\n if (opts.level) {\n if (opts.level < binding.Z_MIN_LEVEL ||\n opts.level > binding.Z_MAX_LEVEL) {\n throw new Error('Invalid compression level: ' + opts.level);\n }\n }\n\n if (opts.memLevel) {\n if (opts.memLevel < binding.Z_MIN_MEMLEVEL ||\n opts.memLevel > binding.Z_MAX_MEMLEVEL) {\n throw new Error('Invalid memLevel: ' + opts.memLevel);\n }\n }\n\n if (opts.strategy) {\n if (opts.strategy != binding.Z_FILTERED &&\n opts.strategy != binding.Z_HUFFMAN_ONLY &&\n opts.strategy != binding.Z_RLE &&\n opts.strategy != binding.Z_FIXED &&\n opts.strategy != binding.Z_DEFAULT_STRATEGY) {\n throw new Error('Invalid strategy: ' + opts.strategy);\n }\n }\n\n if (opts.dictionary) {\n if (!Buffer.isBuffer(opts.dictionary)) {\n throw new Error('Invalid dictionary: it should be a Buffer instance');\n }\n }\n\n this._binding = new binding.Zlib(mode);\n\n var self = this;\n this._hadError = false;\n this._binding.onerror = function(message, errno) {\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n self._binding = null;\n self._hadError = true;\n\n var error = new Error(message);\n error.errno = errno;\n error.code = binding.codes[errno];\n self.emit('error', error);\n };\n\n var level = binding.Z_DEFAULT_COMPRESSION;\n if (typeof opts.level === 'number') level = opts.level;\n\n var strategy = binding.Z_DEFAULT_STRATEGY;\n if (typeof opts.strategy === 'number') strategy = opts.strategy;\n\n this._binding.init(opts.windowBits || binding.Z_DEFAULT_WINDOWBITS,\n level,\n opts.memLevel || binding.Z_DEFAULT_MEMLEVEL,\n strategy,\n opts.dictionary);\n\n this._buffer = new Buffer(this._chunkSize);\n this._offset = 0;\n this._closed = false;\n this._level = level;\n this._strategy = strategy;\n\n this.once('end', this.close);\n}\n\ninherits$1(Zlib, Transform);\n\nZlib.prototype.params = function(level, strategy, callback) {\n if (level < binding.Z_MIN_LEVEL ||\n level > binding.Z_MAX_LEVEL) {\n throw new RangeError('Invalid compression level: ' + level);\n }\n if (strategy != binding.Z_FILTERED &&\n strategy != binding.Z_HUFFMAN_ONLY &&\n strategy != binding.Z_RLE &&\n strategy != binding.Z_FIXED &&\n strategy != binding.Z_DEFAULT_STRATEGY) {\n throw new TypeError('Invalid strategy: ' + strategy);\n }\n\n if (this._level !== level || this._strategy !== strategy) {\n var self = this;\n this.flush(binding.Z_SYNC_FLUSH, function() {\n self._binding.params(level, strategy);\n if (!self._hadError) {\n self._level = level;\n self._strategy = strategy;\n if (callback) callback();\n }\n });\n } else {\n process.nextTick(callback);\n }\n};\n\nZlib.prototype.reset = function() {\n return this._binding.reset();\n};\n\n// This is the _flush function called by the transform class,\n// internally, when the last chunk has been written.\nZlib.prototype._flush = function(callback) {\n this._transform(new Buffer(0), '', callback);\n};\n\nZlib.prototype.flush = function(kind, callback) {\n var ws = this._writableState;\n\n if (typeof kind === 'function' || (kind === void 0 && !callback)) {\n callback = kind;\n kind = binding.Z_FULL_FLUSH;\n }\n\n if (ws.ended) {\n if (callback)\n process.nextTick(callback);\n } else if (ws.ending) {\n if (callback)\n this.once('end', callback);\n } else if (ws.needDrain) {\n var self = this;\n this.once('drain', function() {\n self.flush(callback);\n });\n } else {\n this._flushFlag = kind;\n this.write(new Buffer(0), '', callback);\n }\n};\n\nZlib.prototype.close = function(callback) {\n if (callback)\n process.nextTick(callback);\n\n if (this._closed)\n return;\n\n this._closed = true;\n\n this._binding.close();\n\n var self = this;\n process.nextTick(function() {\n self.emit('close');\n });\n};\n\nZlib.prototype._transform = function(chunk, encoding, cb) {\n var flushFlag;\n var ws = this._writableState;\n var ending = ws.ending || ws.ended;\n var last = ending && (!chunk || ws.length === chunk.length);\n\n if (!chunk === null && !Buffer.isBuffer(chunk))\n return cb(new Error('invalid input'));\n\n // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag.\n // If it's explicitly flushing at some other time, then we use\n // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n // goodness.\n if (last)\n flushFlag = binding.Z_FINISH;\n else {\n flushFlag = this._flushFlag;\n // once we've flushed the last of the queue, stop flushing and\n // go back to the normal behavior.\n if (chunk.length >= ws.length) {\n this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;\n }\n }\n\n this._processChunk(chunk, flushFlag, cb);\n};\n\nZlib.prototype._processChunk = function(chunk, flushFlag, cb) {\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var inOff = 0;\n\n var self = this;\n\n var async = typeof cb === 'function';\n\n if (!async) {\n var buffers = [];\n var nread = 0;\n\n var error;\n this.on('error', function(er) {\n error = er;\n });\n\n do {\n var res = this._binding.writeSync(flushFlag,\n chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n } while (!this._hadError && callback(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n var buf = Buffer.concat(buffers, nread);\n this.close();\n\n return buf;\n }\n\n var req = this._binding.write(flushFlag,\n chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n\n req.buffer = chunk;\n req.callback = callback;\n\n function callback(availInAfter, availOutAfter) {\n if (self._hadError)\n return;\n\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n // serve some output to the consumer.\n if (async) {\n self.push(out);\n } else {\n buffers.push(out);\n nread += out.length;\n }\n }\n\n // exhausted the output buffer, or used all the input create a new one.\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = new Buffer(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n // Not actually done. Need to reprocess.\n // Also, update the availInBefore to the availInAfter value,\n // so that if we have to hit it a third (fourth, etc.) time,\n // it'll have the correct byte counts.\n inOff += (availInBefore - availInAfter);\n availInBefore = availInAfter;\n\n if (!async)\n return true;\n\n var newReq = self._binding.write(flushFlag,\n chunk,\n inOff,\n availInBefore,\n self._buffer,\n self._offset,\n self._chunkSize);\n newReq.callback = callback; // this same function\n newReq.buffer = chunk;\n return;\n }\n\n if (!async)\n return false;\n\n // finished with the chunk.\n cb();\n }\n};\n\ninherits$1(Deflate, Zlib);\ninherits$1(Inflate, Zlib);\ninherits$1(Gzip, Zlib);\ninherits$1(Gunzip, Zlib);\ninherits$1(DeflateRaw, Zlib);\ninherits$1(InflateRaw, Zlib);\ninherits$1(Unzip, Zlib);\nvar zlib = {\n codes: codes,\n createDeflate: createDeflate,\n createInflate: createInflate,\n createDeflateRaw: createDeflateRaw,\n createInflateRaw: createInflateRaw,\n createGzip: createGzip,\n createGunzip: createGunzip,\n createUnzip: createUnzip,\n deflate: deflate,\n deflateSync: deflateSync,\n gzip: gzip,\n gzipSync: gzipSync,\n deflateRaw: deflateRaw,\n deflateRawSync: deflateRawSync,\n unzip: unzip,\n unzipSync: unzipSync,\n inflate: inflate,\n inflateSync: inflateSync,\n gunzip: gunzip,\n gunzipSync: gunzipSync,\n inflateRaw: inflateRaw,\n inflateRawSync: inflateRawSync,\n Deflate: Deflate,\n Inflate: Inflate,\n Gzip: Gzip,\n Gunzip: Gunzip,\n DeflateRaw: DeflateRaw,\n InflateRaw: InflateRaw,\n Unzip: Unzip,\n Zlib: Zlib\n};\n\nvar data = {\n \"version\": \"0.26.1\"\n};\n\nvar httpFollow = followRedirects.http;\nvar httpsFollow = followRedirects.https;\n\n\nvar VERSION$1 = data.version;\n\n\n\n\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nvar http_1 = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION$1;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = require$$3.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = require$$3.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : https;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional$1 = config.transitional || transitional;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = xhr$1;\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = http_1;\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitional,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults_1 = defaults;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nvar transformData = function transformData(data, headers, fns) {\n var context = this || defaults_1;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n\nvar isCancel = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel_1('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nvar dispatchRequest = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults_1.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nvar mergeConfig = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n\nvar VERSION = data.version;\n\nvar validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nvar validator = {\n assertOptions: assertOptions,\n validators: validators$1\n};\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_1(),\n response: new InterceptorManager_1()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nvar Axios_1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel_1(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nvar CancelToken_1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nvar spread = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nvar isAxiosError = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios_1(defaultConfig);\n var instance = bind(Axios_1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios_1.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios$1 = createInstance(defaults_1);\n\n// Expose Axios class to allow class inheritance\naxios$1.Axios = Axios_1;\n\n// Expose Cancel & CancelToken\naxios$1.Cancel = Cancel_1;\naxios$1.CancelToken = CancelToken_1;\naxios$1.isCancel = isCancel;\naxios$1.VERSION = data.version;\n\n// Expose all/spread\naxios$1.all = function all(promises) {\n return Promise.all(promises);\n};\naxios$1.spread = spread;\n\n// Expose isAxiosError\naxios$1.isAxiosError = isAxiosError;\n\nvar axios_1 = axios$1;\n\n// Allow use of default import syntax in TypeScript\nvar _default = axios$1;\naxios_1.default = _default;\n\nvar axios = axios_1;\n\n/*\nThe MIT License (MIT)\n\nCopyright (c) 2016 CoderPuppy\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n*/\nvar _endianness;\nfunction endianness() {\n if (typeof _endianness === 'undefined') {\n var a = new ArrayBuffer(2);\n var b = new Uint8Array(a);\n var c = new Uint16Array(a);\n b[0] = 1;\n b[1] = 2;\n if (c[0] === 258) {\n _endianness = 'BE';\n } else if (c[0] === 513){\n _endianness = 'LE';\n } else {\n throw new Error('unable to figure out endianess');\n }\n }\n return _endianness;\n}\n\nfunction hostname() {\n if (typeof global.location !== 'undefined') {\n return global.location.hostname\n } else return '';\n}\n\nfunction loadavg() {\n return [];\n}\n\nfunction uptime() {\n return 0;\n}\n\nfunction freemem() {\n return Number.MAX_VALUE;\n}\n\nfunction totalmem() {\n return Number.MAX_VALUE;\n}\n\nfunction cpus() {\n return [];\n}\n\nfunction type() {\n return 'Browser';\n}\n\nfunction release () {\n if (typeof global.navigator !== 'undefined') {\n return global.navigator.appVersion;\n }\n return '';\n}\n\nfunction networkInterfaces(){}\nfunction getNetworkInterfaces(){}\n\nfunction tmpDir() {\n return '/tmp';\n}\nvar tmpdir = tmpDir;\n\nvar EOL = '\\n';\nvar require$$2 = {\n EOL: EOL,\n tmpdir: tmpdir,\n tmpDir: tmpDir,\n networkInterfaces:networkInterfaces,\n getNetworkInterfaces: getNetworkInterfaces,\n release: release,\n type: type,\n cpus: cpus,\n totalmem: totalmem,\n freemem: freemem,\n uptime: uptime,\n loadavg: loadavg,\n hostname: hostname,\n endianness: endianness,\n};\n\ncreateCommonjsModule(function (module) {\n// Generated by CoffeeScript 2.5.1\n(function() {\n // This file's name is set up in such a way that it will always show up first in\n // the list of files given to coffee --join, so that the other files can assume\n // that XMLHttpRequestEventTarget was already defined.\n\n // The DOM EventTarget subclass used by XMLHttpRequest.\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n var InvalidStateError, NetworkError, ProgressEvent, SecurityError, SyntaxError, XMLHttpRequest, XMLHttpRequestEventTarget, XMLHttpRequestUpload, http, https$1, os, url;\n\n XMLHttpRequestEventTarget = (function() {\n class XMLHttpRequestEventTarget {\n // @private\n // This is an abstract class and should not be instantiated directly.\n constructor() {\n this.onloadstart = null;\n this.onprogress = null;\n this.onabort = null;\n this.onerror = null;\n this.onload = null;\n this.ontimeout = null;\n this.onloadend = null;\n this._listeners = {};\n }\n\n // Adds a new-style listener for one of the XHR events.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#events\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener function that will be called when\n // the event fires\n // @return {undefined} undefined\n addEventListener(eventType, listener) {\n var base;\n eventType = eventType.toLowerCase();\n (base = this._listeners)[eventType] || (base[eventType] = []);\n this._listeners[eventType].push(listener);\n return void 0;\n }\n\n // Removes an event listener added by calling addEventListener.\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener the value passed in a previous\n // call to addEventListener.\n // @return {undefined} undefined\n removeEventListener(eventType, listener) {\n var index;\n eventType = eventType.toLowerCase();\n if (this._listeners[eventType]) {\n index = this._listeners[eventType].indexOf(listener);\n if (index !== -1) {\n this._listeners[eventType].splice(index, 1);\n }\n }\n return void 0;\n }\n\n // Calls all the listeners for an event.\n\n // @param {ProgressEvent} event the event to be dispatched\n // @return {undefined} undefined\n dispatchEvent(event) {\n var eventType, j, len, listener, listeners;\n event.currentTarget = event.target = this;\n eventType = event.type;\n if (listeners = this._listeners[eventType]) {\n for (j = 0, len = listeners.length; j < len; j++) {\n listener = listeners[j];\n listener.call(this, event);\n }\n }\n if (listener = this[`on${eventType}`]) {\n listener.call(this, event);\n }\n return void 0;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadstart' event\n XMLHttpRequestEventTarget.prototype.onloadstart = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'progress' event\n XMLHttpRequestEventTarget.prototype.onprogress = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'abort' event\n XMLHttpRequestEventTarget.prototype.onabort = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'error' event\n XMLHttpRequestEventTarget.prototype.onerror = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'load' event\n XMLHttpRequestEventTarget.prototype.onload = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'timeout' event\n XMLHttpRequestEventTarget.prototype.ontimeout = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadend' event\n XMLHttpRequestEventTarget.prototype.onloadend = null;\n\n return XMLHttpRequestEventTarget;\n\n }).call(this);\n\n // This file's name is set up in such a way that it will always show up second\n // in the list of files given to coffee --join, so it can use the\n // XMLHttpRequestEventTarget definition and so that the other files can assume\n // that XMLHttpRequest was already defined.\n http = https;\n\n https$1 = https;\n\n os = require$$2;\n\n url = require$$3;\n\n XMLHttpRequest = (function() {\n // The ECMAScript HTTP API.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#introduction\n class XMLHttpRequest extends XMLHttpRequestEventTarget {\n // Creates a new request.\n\n // @param {Object} options one or more of the options below\n // @option options {Boolean} anon if true, the request's anonymous flag\n // will be set\n // @see http://www.w3.org/TR/XMLHttpRequest/#constructors\n // @see http://www.w3.org/TR/XMLHttpRequest/#anonymous-flag\n constructor(options) {\n super();\n this.onreadystatechange = null;\n this._anonymous = options && options.anon;\n this.readyState = XMLHttpRequest.UNSENT;\n this.response = null;\n this.responseText = '';\n this.responseType = '';\n this.responseURL = '';\n this.status = 0;\n this.statusText = '';\n this.timeout = 0;\n this.upload = new XMLHttpRequestUpload(this);\n this._method = null; // String\n this._url = null; // Return value of url.parse()\n this._sync = false;\n this._headers = null; // Object\n this._loweredHeaders = null; // Object\n this._mimeOverride = null;\n this._request = null; // http.ClientRequest\n this._response = null; // http.ClientResponse\n this._responseParts = null; // Array\n this._responseHeaders = null; // Object\n this._aborting = null;\n this._error = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n }\n\n // Sets the XHR's method, URL, synchronous flag, and authentication params.\n\n // @param {String} method the HTTP method to be used\n // @param {String} url the URL that the request will be made to\n // @param {?Boolean} async if false, the XHR should be processed\n // synchronously; true by default\n // @param {?String} user the user credential to be used in HTTP basic\n // authentication\n // @param {?String} password the password credential to be used in HTTP basic\n // authentication\n // @return {undefined} undefined\n // @throw {SecurityError} method is not one of the allowed methods\n // @throw {SyntaxError} urlString is not a valid URL\n // @throw {Error} the URL contains an unsupported protocol; the supported\n // protocols are file, http and https\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n open(method, url, async, user, password) {\n var xhrUrl;\n method = method.toUpperCase();\n if (method in this._restrictedMethods) {\n throw new SecurityError(`HTTP method ${method} is not allowed in XHR`);\n }\n xhrUrl = this._parseUrl(url);\n if (async === void 0) {\n async = true;\n }\n switch (this.readyState) {\n case XMLHttpRequest.UNSENT:\n case XMLHttpRequest.OPENED:\n case XMLHttpRequest.DONE:\n break;\n case XMLHttpRequest.HEADERS_RECEIVED:\n case XMLHttpRequest.LOADING:\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n return void 0;\n }\n\n // Appends a header to the list of author request headers.\n\n // @param {String} name the HTTP header name\n // @param {String} value the HTTP header value\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @throw {SyntaxError} name is not a valid HTTP header name or value is not\n // a valid HTTP header value\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n setRequestHeader(name, value) {\n var loweredName;\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec\\-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(`Refused to set unsafe header \\\"${name}\\\"`);\n return void 0;\n }\n value = value.toString();\n if (loweredName in this._loweredHeaders) {\n // Combine value with the existing header value.\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + ', ' + value;\n } else {\n // New header.\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n return void 0;\n }\n\n // Initiates the request.\n\n // @param {?String, ?ArrayBufferView} data the data to be sent; ignored for\n // GET and HEAD requests\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n send(data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n if (this._request) {\n throw new InvalidStateError(\"send() already called\");\n }\n switch (this._url.protocol) {\n case 'file:':\n this._sendFile(data);\n break;\n case 'http:':\n case 'https:':\n this._sendHttp(data);\n break;\n default:\n throw new NetworkError(`Unsupported protocol ${this._url.protocol}`);\n }\n return void 0;\n }\n\n // Cancels the network activity performed by this request.\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method\n abort() {\n if (!this._request) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n return void 0;\n }\n\n // Returns a header value in the HTTP response for this XHR.\n\n // @param {String} name case-insensitive HTTP header name\n // @return {?String} value the value of the header whose name matches the\n // given name, or null if there is no such header\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n getResponseHeader(name) {\n var loweredName;\n if (!this._responseHeaders) {\n return null;\n }\n loweredName = name.toLowerCase();\n if (loweredName in this._responseHeaders) {\n return this._responseHeaders[loweredName];\n } else {\n return null;\n }\n }\n\n // Returns all the HTTP headers in this XHR's response.\n\n // @return {String} header lines separated by CR LF, where each header line\n // has the name and value separated by a \": \" (colon, space); the empty\n // string is returned if the headers are not available\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n getAllResponseHeaders() {\n var lines, name, value;\n if (!this._responseHeaders) {\n return '';\n }\n lines = (function() {\n var ref, results;\n ref = this._responseHeaders;\n results = [];\n for (name in ref) {\n value = ref[name];\n results.push(`${name}: ${value}`);\n }\n return results;\n }).call(this);\n return lines.join(\"\\r\\n\");\n }\n\n // Overrides the Content-Type\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-overridemimetype()-method\n overrideMimeType(newMimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new InvalidStateError(\"overrideMimeType() not allowed in LOADING or DONE\");\n }\n this._mimeOverride = newMimeType.toLowerCase();\n return void 0;\n }\n\n // Network configuration not exposed in the XHR API.\n\n // Although the XMLHttpRequest specification calls itself \"ECMAScript HTTP\",\n // it assumes that requests are always performed in the context of a browser\n // application, where some network parameters are set by the browser user and\n // should not be modified by Web applications. This API provides access to\n // these network parameters.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the value for the nodejsHttpAgent\n // property (the agent used for HTTP requests)\n // @option options {?https.Agent} httpsAgent the value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n nodejsSet(options) {\n var baseUrl, parsedUrl;\n if ('httpAgent' in options) {\n this.nodejsHttpAgent = options.httpAgent;\n }\n if ('httpsAgent' in options) {\n this.nodejsHttpsAgent = options.httpsAgent;\n }\n if ('baseUrl' in options) {\n baseUrl = options.baseUrl;\n if (baseUrl !== null) {\n parsedUrl = url.parse(baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = baseUrl;\n }\n return void 0;\n }\n\n // Default settings for the network configuration not exposed in the XHR API.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the default value for the\n // nodejsHttpAgent property (the agent used for HTTP requests)\n // @option options {https.Agent} httpsAgent the default value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n // @see XMLHttpRequest.nodejsSet\n static nodejsSet(options) {\n // \"this\" will be set to XMLHttpRequest.prototype, so the instance nodejsSet\n // operates on default property values.\n XMLHttpRequest.prototype.nodejsSet(options);\n return void 0;\n }\n\n // Sets the readyState property and fires the readystatechange event.\n\n // @private\n // @param {Number} newReadyState the new value of readyState\n // @return {undefined} undefined\n _setReadyState(newReadyState) {\n var event;\n this.readyState = newReadyState;\n event = new ProgressEvent('readystatechange');\n this.dispatchEvent(event);\n return void 0;\n }\n\n // XMLHttpRequest#send() implementation for the file: protocol.\n\n // @private\n _sendFile() {\n if (this._url.method !== 'GET') {\n throw new NetworkError('The file protocol only supports GET');\n }\n throw new Error(\"Protocol file: not implemented\");\n }\n\n // XMLHttpRequest#send() implementation for the http: and https: protocols.\n\n // @private\n // This method sets the instance variables and calls _sendHxxpRequest(), which\n // is responsible for building a node.js request and firing it off. The code\n // in _sendHxxpRequest() is separated off so it can be reused when handling\n // redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHttp(data) {\n if (this._sync) {\n throw new Error(\"Synchronous XHR processing not implemented\");\n }\n if ((data != null) && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(`Discarding entity body for ${this._method} requests`);\n data = null;\n } else {\n // Send Content-Length: 0\n data || (data = '');\n }\n // NOTE: this is called before finalizeHeaders so that the uploader can\n // figure out Content-Length and Content-Type.\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return void 0;\n }\n\n // Sets up and fires off a HTTP/HTTPS request using the node.js API.\n\n // @private\n // This method contains the bulk of the XMLHttpRequest#send() implementation,\n // and is also used to issue new HTTP requests when handling HTTP redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHxxpRequest() {\n var agent, hxxp, request;\n if (this._url.protocol === 'http:') {\n hxxp = http;\n agent = this.nodejsHttpAgent;\n } else {\n hxxp = https$1;\n agent = this.nodejsHttpsAgent;\n }\n request = hxxp.request({\n hostname: this._url.hostname,\n port: this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, () => {\n return this._onHttpTimeout(request);\n });\n }\n request.on('response', (response) => {\n return this._onHttpResponse(request, response);\n });\n request.on('error', (error) => {\n return this._onHttpRequestError(request, error);\n });\n this.upload._startUpload(request);\n if (this._request === request) { // An http error might have already fired.\n this._dispatchProgress('loadstart');\n }\n return void 0;\n }\n\n // Fills in the restricted HTTP headers with default values.\n\n // This is called right before the HTTP request is sent off.\n\n // @private\n // @return {undefined} undefined\n _finalizeHeaders() {\n var base;\n this._headers['Connection'] = 'keep-alive';\n this._headers['Host'] = this._url.host;\n if (this._anonymous) {\n this._headers['Referer'] = 'about:blank';\n }\n (base = this._headers)['User-Agent'] || (base['User-Agent'] = this._userAgent);\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n return void 0;\n }\n\n // Called when the headers of an HTTP response have been received.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // produced this response\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // passed to\n _onHttpResponse(request, response) {\n var lengthString;\n if (this._request !== request) {\n return;\n }\n // Transparent redirection handling.\n switch (response.statusCode) {\n case 301:\n case 302:\n case 303:\n case 307:\n case 308:\n this._url = this._parseUrl(response.headers['location']);\n this._method = 'GET';\n if ('content-type' in this._loweredHeaders) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n // XMLHttpRequestUpload#_finalizeHeaders() sets Content-Type directly.\n if ('Content-Type' in this._headers) {\n delete this._headers['Content-Type'];\n }\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', (data) => {\n return this._onHttpResponseData(response, data);\n });\n this._response.on('end', () => {\n return this._onHttpResponseEnd(response);\n });\n this._response.on('close', () => {\n return this._onHttpResponseClose(response);\n });\n this.responseURL = this._url.href.split('#')[0];\n this.status = this._response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n if (lengthString = this._responseHeaders['content-length']) {\n this._totalBytes = parseInt(lengthString);\n this._lengthComputable = true;\n } else {\n this._lengthComputable = false;\n }\n return this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n }\n\n // Called when some data has been received on a HTTP connection.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n // @param {String, Buffer} data the data that has been received\n _onHttpResponseData(response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(data);\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n return this._dispatchProgress('progress');\n }\n\n // Called when the HTTP request finished processing.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseEnd(response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the underlying HTTP connection was closed prematurely.\n\n // If this method is called, it will be called after or instead of\n // onHttpResponseEnd.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseClose(response) {\n var request;\n if (this._response !== response) {\n return;\n }\n request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the timeout set on the HTTP socket expires.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n _onHttpTimeout(request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n return this._dispatchProgress('loadend');\n }\n\n // Called when something wrong happens on the HTTP socket\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n // @param {Error} error emitted exception\n _onHttpRequestError(request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Fires an XHR progress event.\n\n // @private\n // @param {String} eventType one of the XHR progress event types, such as\n // 'load' and 'progress'\n _dispatchProgress(eventType) {\n var event;\n event = new ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n return void 0;\n }\n\n // Sets up the XHR to reflect the fact that an error has occurred.\n\n // The possible errors are a network error, a timeout, or an abort.\n\n // @private\n _setError() {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n return void 0;\n }\n\n // Parses a request URL string.\n\n // @private\n // This method is a thin wrapper around url.parse() that normalizes HTTP\n // user/password credentials. It is used to parse the URL string passed to\n // XMLHttpRequest#open() and the URLs in the Location headers of HTTP redirect\n // responses.\n\n // @param {String} urlString the URL to be parsed\n // @return {Object} parsed URL\n _parseUrl(urlString) {\n var absoluteUrlString, index, password, user, xhrUrl;\n if (this.nodejsBaseUrl === null) {\n absoluteUrlString = urlString;\n } else {\n absoluteUrlString = url.resolve(this.nodejsBaseUrl, urlString);\n }\n xhrUrl = url.parse(absoluteUrlString, false, true);\n xhrUrl.hash = null;\n if (xhrUrl.auth && ((typeof user !== \"undefined\" && user !== null) || (typeof password !== \"undefined\" && password !== null))) {\n index = xhrUrl.auth.indexOf(':');\n if (index === -1) {\n if (!user) {\n user = xhrUrl.auth;\n }\n } else {\n if (!user) {\n user = xhrUrl.substring(0, index);\n }\n if (!password) {\n password = xhrUrl.substring(index + 1);\n }\n }\n }\n if (user || password) {\n xhrUrl.auth = `${user}:${password}`;\n }\n return xhrUrl;\n }\n\n // Reads the headers from a node.js ClientResponse instance.\n\n // @private\n // @param {http.ClientResponse} response the response whose headers will be\n // imported into this XMLHttpRequest's state\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n _parseResponseHeaders(response) {\n var loweredName, name, ref, value;\n this._responseHeaders = {};\n ref = response.headers;\n for (name in ref) {\n value = ref[name];\n loweredName = name.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n if (this._mimeOverride !== null && loweredName === 'content-type') {\n value = this._mimeOverride;\n }\n this._responseHeaders[loweredName] = value;\n }\n if (this._mimeOverride !== null && !('content-type' in this._responseHeaders)) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n return void 0;\n }\n\n // Sets the response and responseText properties when an XHR completes.\n\n // @private\n // @return {undefined} undefined\n _parseResponse() {\n var arrayBuffer, buffer, i, j, ref, view;\n if (Buffer.concat) {\n buffer = Buffer.concat(this._responseParts);\n } else {\n // node 0.6\n buffer = this._concatBuffers(this._responseParts);\n }\n this._responseParts = null;\n switch (this.responseType) {\n case 'text':\n this._parseTextResponse(buffer);\n break;\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n } catch (error1) {\n this.response = null;\n }\n break;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n break;\n case 'arraybuffer':\n this.responseText = null;\n arrayBuffer = new ArrayBuffer(buffer.length);\n view = new Uint8Array(arrayBuffer);\n for (i = j = 0, ref = buffer.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n break;\n default:\n // TODO(pwnall): content-base detection\n this._parseTextResponse(buffer);\n }\n return void 0;\n }\n\n // Sets response and responseText for a 'text' response type.\n\n // @private\n // @param {Buffer} buffer the node.js Buffer containing the binary response\n // @return {undefined} undefined\n _parseTextResponse(buffer) {\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n } catch (error1) {\n // Unknown encoding.\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n return void 0;\n }\n\n // Figures out the string encoding of the XHR's response.\n\n // This is called to determine the encoding when responseText is set.\n\n // @private\n // @return {String} a string encoding, e.g. 'utf-8'\n _parseResponseEncoding() {\n var contentType, match;\n if (contentType = this._responseHeaders['content-type']) {\n if (match = /\\;\\s*charset\\=(.*)$/.exec(contentType)) {\n return match[1];\n }\n }\n return 'utf-8';\n }\n\n // Buffer.concat implementation for node 0.6.\n\n // @private\n // @param {Array} buffers the buffers whose contents will be merged\n // @return {Buffer} same as Buffer.concat(buffers) in node 0.8 and above\n _concatBuffers(buffers) {\n var buffer, j, k, len, len1, length, target;\n if (buffers.length === 0) {\n return Buffer.alloc(0);\n }\n if (buffers.length === 1) {\n return buffers[0];\n }\n length = 0;\n for (j = 0, len = buffers.length; j < len; j++) {\n buffer = buffers[j];\n length += buffer.length;\n }\n target = Buffer.alloc(length);\n length = 0;\n for (k = 0, len1 = buffers.length; k < len1; k++) {\n buffer = buffers[k];\n buffer.copy(target, length);\n length += buffer.length;\n }\n return target;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler for the\n // 'readystatechange' event\n XMLHttpRequest.prototype.onreadystatechange = null;\n\n // @property {Number} the current state of the XHR object\n // @see http://www.w3.org/TR/XMLHttpRequest/#states\n XMLHttpRequest.prototype.readyState = null;\n\n // @property {String, ArrayBuffer, Buffer, Object} processed XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-response-attribute\n XMLHttpRequest.prototype.response = null;\n\n // @property {String} response string, if responseType is '' or 'text'\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute\n XMLHttpRequest.prototype.responseText = null;\n\n // @property {String} sets the parsing method for the XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetype-attribute\n XMLHttpRequest.prototype.responseType = null;\n\n // @property {Number} the HTTP\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute\n XMLHttpRequest.prototype.status = null;\n\n // @property {Number} milliseconds to wait for the request to complete\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute\n XMLHttpRequest.prototype.timeout = null;\n\n // @property {XMLHttpRequestUpload} the associated upload information\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute\n XMLHttpRequest.prototype.upload = null;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.prototype.UNSENT = 0;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.UNSENT = 0;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.prototype.OPENED = 1;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.OPENED = 1;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.prototype.HEADERS_RECEIVED = 2;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.prototype.LOADING = 3;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.LOADING = 3;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.prototype.DONE = 4;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.DONE = 4;\n\n // @property {http.Agent} the agent option passed to HTTP requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\n\n // @property {https.Agent} the agent option passed to HTTPS requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpsAgent = https$1.globalAgent;\n\n // @property {String} the base URL that relative URLs get resolved to\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // Its browser equivalent is the base URL of the document associated with the\n // Window object. It is a stable node-xhr2 API provided for libraries such as\n // Angular Universal.\n XMLHttpRequest.prototype.nodejsBaseUrl = null;\n\n // HTTP methods that are disallowed in the XHR spec.\n\n // @private\n // @see Step 6 in http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n XMLHttpRequest.prototype._restrictedMethods = {\n CONNECT: true,\n TRACE: true,\n TRACK: true\n };\n\n // HTTP request headers that are disallowed in the XHR spec.\n\n // @private\n // @see Step 5 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n XMLHttpRequest.prototype._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true\n };\n\n // HTTP response headers that should not be exposed according to the XHR spec.\n\n // @private\n // @see Step 3 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n XMLHttpRequest.prototype._privateHeaders = {\n 'set-cookie': true,\n 'set-cookie2': true\n };\n\n // The default value of the User-Agent header.\n XMLHttpRequest.prototype._userAgent = `Mozilla/5.0 (${os.type()} ${os.arch()}) ` + `node.js/${process.versions.node} v8/${process.versions.v8}`;\n\n return XMLHttpRequest;\n\n }).call(this);\n\n // XMLHttpRequest is the result of require('node-xhr2').\n module.exports = XMLHttpRequest;\n\n // Make node-xhr2 work as a drop-in replacement for libraries that promote the\n // following usage pattern:\n // var XMLHttpRequest = require('xhr-library-name').XMLHttpRequest\n XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;\n\n // This file defines the custom errors used in the XMLHttpRequest specification.\n\n // Thrown if the XHR security policy is violated.\n SecurityError = class SecurityError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if the XHR security policy is violated.\n XMLHttpRequest.SecurityError = SecurityError;\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {};\n\n XMLHttpRequest.InvalidStateError = InvalidStateError;\n\n // Thrown if there is a problem with the URL passed to the XHR.\n NetworkError = class NetworkError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if parsing URLs errors out.\n XMLHttpRequest.SyntaxError = SyntaxError;\n\n SyntaxError = class SyntaxError extends Error {\n // @private:\n constructor() {\n super();\n }\n\n };\n\n ProgressEvent = (function() {\n // http://xhr.spec.whatwg.org/#interface-progressevent\n class ProgressEvent {\n // Creates a new event.\n\n // @param {String} type the event type, e.g. 'readystatechange'; must be\n // lowercased\n constructor(type) {\n this.type = type;\n this.target = null;\n this.currentTarget = null;\n this.lengthComputable = false;\n this.loaded = 0;\n this.total = 0;\n }\n\n }\n // Getting the time from the OS is expensive, skip on that for now.\n // @timeStamp = Date.now()\n\n // @property {Boolean} for compatibility with DOM events\n ProgressEvent.prototype.bubbles = false;\n\n // @property {Boolean} for fompatibility with DOM events\n ProgressEvent.prototype.cancelable = false;\n\n // @property {XMLHttpRequest} the request that caused this event\n ProgressEvent.prototype.target = null;\n\n // @property {Number} number of bytes that have already been downloaded or\n // uploaded\n ProgressEvent.prototype.loaded = null;\n\n // @property {Boolean} true if the Content-Length response header is available\n // and the value of the event's total property is meaningful\n ProgressEvent.prototype.lengthComputable = null;\n\n // @property {Number} number of bytes that will be downloaded or uploaded by\n // the request that fired the event\n ProgressEvent.prototype.total = null;\n\n return ProgressEvent;\n\n }).call(this);\n\n // The XHR spec exports the ProgressEvent constructor.\n XMLHttpRequest.ProgressEvent = ProgressEvent;\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n XMLHttpRequestUpload = class XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n // @private\n // @param {XMLHttpRequest} the XMLHttpRequest that this upload object is\n // associated with\n constructor(request) {\n super();\n this._request = request;\n this._reset();\n }\n\n // Sets up this Upload to handle a new request.\n\n // @private\n // @return {undefined} undefined\n _reset() {\n this._contentType = null;\n this._body = null;\n return void 0;\n }\n\n // Implements the upload-related part of the send() XHR specification.\n\n // @private\n // @param {?String, ?Buffer, ?ArrayBufferView} data the argument passed to\n // XMLHttpRequest#send()\n // @return {undefined} undefined\n // @see step 4 of http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n _setData(data) {\n var body, i, j, k, offset, ref, ref1, view;\n if (typeof data === 'undefined' || data === null) {\n return;\n }\n if (typeof data === 'string') {\n // DOMString\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = Buffer.from(data, 'utf8');\n } else if (Buffer.isBuffer(data)) {\n // node.js Buffer\n this._body = data;\n } else if (data instanceof ArrayBuffer) {\n // ArrayBuffer arguments were supported in an old revision of the spec.\n body = Buffer.alloc(data.byteLength);\n view = new Uint8Array(data);\n for (i = j = 0, ref = data.byteLength; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n body[i] = view[i];\n }\n this._body = body;\n } else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n // ArrayBufferView\n body = Buffer.alloc(data.byteLength);\n offset = data.byteOffset;\n view = new Uint8Array(data.buffer);\n for (i = k = 0, ref1 = data.byteLength; (0 <= ref1 ? k < ref1 : k > ref1); i = 0 <= ref1 ? ++k : --k) {\n body[i] = view[i + offset];\n }\n this._body = body;\n } else {\n // NOTE: diverging from the XHR specification of coercing everything else\n // to Strings via toString() because that behavior masks bugs and is\n // rarely useful\n throw new Error(`Unsupported send() data ${data}`);\n }\n return void 0;\n }\n\n // Updates the HTTP headers right before the request is sent.\n\n // This is used to set data-dependent headers such as Content-Length and\n // Content-Type.\n\n // @private\n // @param {Object} headers the HTTP headers to be sent\n // @param {Object} loweredHeaders maps lowercased HTTP header\n // names (e.g., 'content-type') to the actual names used in the headers\n // parameter (e.g., 'Content-Type')\n // @return {undefined} undefined\n _finalizeHeaders(headers, loweredHeaders) {\n if (this._contentType) {\n if (!('content-type' in loweredHeaders)) {\n headers['Content-Type'] = this._contentType;\n }\n }\n if (this._body) {\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n headers['Content-Length'] = this._body.length.toString();\n }\n return void 0;\n }\n\n // Starts sending the HTTP request data.\n\n // @private\n // @param {http.ClientRequest} request the HTTP request\n // @return {undefined} undefined\n _startUpload(request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n return void 0;\n }\n\n };\n\n // Export the XMLHttpRequestUpload constructor.\n XMLHttpRequest.XMLHttpRequestUpload = XMLHttpRequestUpload;\n\n}).call(commonjsGlobal);\n});\n\nclass LangAdapter {\n constructor(context) {\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw (e);\n }\n let languageSource;\n try {\n const getLanguageSource = await axios.get(presignedUrl);\n languageSource = getLanguageSource.data;\n }\n catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw (e);\n }\n return languageSource;\n }\n}\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CloudflarePutAdapter_agent, _CloudflarePutAdapter_IPFS;\nclass CloudflarePutAdapter {\n constructor(context) {\n _CloudflarePutAdapter_agent.set(this, void 0);\n _CloudflarePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet(this, _CloudflarePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet(this, _CloudflarePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n // @ts-ignore\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet(this, _CloudflarePutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n //Build the key value object for the meta object\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n // Content of the new object.\n value: JSON.stringify(expression),\n };\n //Save the meta information to the KV store\n const httpsAgent = new https.Agent({\n rejectUnauthorized: false\n });\n const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent });\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n //Build the key value object for the language bundle\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString(),\n };\n //Save the language bundle to the KV store\n const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent });\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n}\n_CloudflarePutAdapter_agent = new WeakMap(), _CloudflarePutAdapter_IPFS = new WeakMap();\n\nclass Adapter {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axios.get(presignedUrl);\n metaObject = getMetaObject.data;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\n\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexport { PROXY_URL, create as default, name };\n" } \ No newline at end of file From 9a083839080d2bc368443e299f3f679ece2c30bf Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 17 Apr 2023 20:31:18 +0100 Subject: [PATCH 167/722] change bundle config to esnext --- bootstrap-languages/p-diff-sync/rollup.config.js | 2 +- executor/scripts/bundle.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap-languages/p-diff-sync/rollup.config.js b/bootstrap-languages/p-diff-sync/rollup.config.js index 24ba11ace..667127b07 100644 --- a/bootstrap-languages/p-diff-sync/rollup.config.js +++ b/bootstrap-languages/p-diff-sync/rollup.config.js @@ -15,7 +15,7 @@ export default { external: [], output: { sourcemap: true, - format: "cjs", + format: "esm", name: "JuntoPerspective", file: "build/bundle.js", interop: "esModule", diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js index 1e9e862eb..92d1ff13c 100644 --- a/executor/scripts/bundle.js +++ b/executor/scripts/bundle.js @@ -41,7 +41,7 @@ esbuild outfile: 'lib/bundle.js', bundle: true, platform: 'node', - target: 'deno1.3', + target: 'esnext', format: 'esm', globalName: 'executor', charset: 'ascii', From 30789609965054603d72c991020c4ff72c8c7b2f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 17 Apr 2023 21:19:15 +0100 Subject: [PATCH 168/722] remove try/catch to get error traces for languages & add media types deno polyfill --- executor/.gitignore | 2 ++ executor/lib/deno.js | 1 + executor/scripts/bundle.js | 8 +++++ executor/src/core/LanguageController.ts | 44 ++++++++++--------------- 4 files changed, 29 insertions(+), 26 deletions(-) diff --git a/executor/.gitignore b/executor/.gitignore index aa3cd1cca..98a37c488 100644 --- a/executor/.gitignore +++ b/executor/.gitignore @@ -3,3 +3,5 @@ temp deno* AloeDB-0.9.0 + +xhr \ No newline at end of file diff --git a/executor/lib/deno.js b/executor/lib/deno.js index 726ed0514..388e5a5b8 100644 --- a/executor/lib/deno.js +++ b/executor/lib/deno.js @@ -14,3 +14,4 @@ export const init = internalInit export const path = internalPath export const os = internalOs +import "../xhr/mod.ts"; diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js index 92d1ff13c..98b4a7c7b 100644 --- a/executor/scripts/bundle.js +++ b/executor/scripts/bundle.js @@ -91,6 +91,14 @@ esbuild return { path: path.resolve(`AloeDB-0.9.0/mod.ts`), external: false }; }); }, + }, + { + name: "https://deno.land/std@0.150.0/media_types/mod.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.150.0/media_types/mod.ts$`) }, (args) => { + return { path: path.resolve(`deno_std-0.177.0/media_types/mod.ts`), external: false }; + }); + }, } ], diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 010086931..cc0299996 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -56,11 +56,7 @@ const loadModule = async (modulePath: string) => { } const res = await UTILS.loadModule(`file://${modulePath}`); - try { - return await importModule(modulePath) - } catch (e1) { - throw new ImportError(`Unable to import module at path: ${modulePath}. Got error: ${e1}}`) - } + return await importModule(modulePath) } export default class LanguageController { @@ -98,12 +94,8 @@ export default class LanguageController { } async loadLanguages() { - try { - await this.loadSystemLanguages() - if (!this.#config.languageLanguageOnly) await this.loadInstalledLanguages() - } catch (e) { - throw new Error(`LanguageController.loadLanguages: Error loading languages ${e}`); - } + await this.loadSystemLanguages() + if (!this.#config.languageLanguageOnly) await this.loadInstalledLanguages() } async loadSystemLanguages() { @@ -220,21 +212,21 @@ export default class LanguageController { const hash = await this.ipfsHash(bundleBytes) console.debug("LanguageController.loadLanguage: loading language at path", sourceFilePath, "with hash", hash); let languageSource; - try { - languageSource = await loadModule(sourceFilePath); - } catch (e) { - const errMsg = `Could not load language ${e}`; - console.error(errMsg); - this.pubSub.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, - { - title: "Failed to load installed language", - message: errMsg, - type: ExceptionType.LanguageIsNotLoaded - } as ExceptionInfo - ); - throw new Error(errMsg); - } + //try { + languageSource = await loadModule(sourceFilePath); + // } catch (e) { + // const errMsg = `Could not load language ${e}`; + // console.error(errMsg); + // this.pubSub.publish( + // PubSub.EXCEPTION_OCCURRED_TOPIC, + // { + // title: "Failed to load installed language", + // message: errMsg, + // type: ExceptionType.LanguageIsNotLoaded + // } as ExceptionInfo + // ); + // throw new Error(errMsg); + // } console.warn("LanguageController.loadLanguage: language loaded!"); let create; if (!languageSource.default) { From 604408e195d7fdc14e7a4ffc59d28a1a65fd5a6f Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Mon, 17 Apr 2023 22:28:16 +0200 Subject: [PATCH 169/722] start using axiod instead of axios --- bootstrap-languages/language-language/adapter.ts | 7 ++++--- .../language-language/languageAdapter.ts | 7 ++++--- .../language-language/package.json | 4 +++- .../language-language/putAdapter.ts | 13 +++++-------- .../language-language/rollup.config.js | 16 ++++++++++------ 5 files changed, 26 insertions(+), 21 deletions(-) diff --git a/bootstrap-languages/language-language/adapter.ts b/bootstrap-languages/language-language/adapter.ts index dfc5e118e..a3053956b 100644 --- a/bootstrap-languages/language-language/adapter.ts +++ b/bootstrap-languages/language-language/adapter.ts @@ -1,6 +1,7 @@ import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; import { CloudflarePutAdapter } from "./putAdapter"; -import axios from "axios"; +//@ts-ignore +import axiod from "https://deno.land/x/axiod/mod.ts"; import { PROXY_URL } from "."; export default class Adapter implements ExpressionAdapter { @@ -20,7 +21,7 @@ export default class Adapter implements ExpressionAdapter { let presignedUrl; try { - const getPresignedUrl = await axios.get(PROXY_URL+`?key=${metaDataKey}`); + const getPresignedUrl = await axiod.get(PROXY_URL+`?key=${metaDataKey}`); presignedUrl = getPresignedUrl.data.url; } catch (e) { console.error("Get meta information failed at getting presigned url", address); @@ -29,7 +30,7 @@ export default class Adapter implements ExpressionAdapter { let metaObject; try { - const getMetaObject = await axios.get(presignedUrl); + const getMetaObject = await axiod.get(presignedUrl); metaObject = getMetaObject.data; } catch (e) { console.error("Get meta information failed at getting meta information", presignedUrl); diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index 1430a7a3d..e0749f89b 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -1,5 +1,6 @@ import type { Address, LanguageAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; -import axios from "axios"; +//@ts-ignore +import axiod from "https://deno.land/x/axiod/mod.ts"; import { PROXY_URL } from "."; import XMLHttpRequest from 'xhr2'; @@ -19,7 +20,7 @@ export default class LangAdapter implements LanguageAdapter { let presignedUrl; try { - const getPresignedUrl = await axios.get(PROXY_URL+`?key=${cid}`); + const getPresignedUrl = await axiod.get(PROXY_URL+`?key=${cid}`); presignedUrl = getPresignedUrl.data.url; } catch (e) { console.error("Get language source failed at getting presigned url", address); @@ -28,7 +29,7 @@ export default class LangAdapter implements LanguageAdapter { let languageSource; try { - const getLanguageSource = await axios.get(presignedUrl); + const getLanguageSource = await axiod.get(presignedUrl); languageSource = getLanguageSource.data; } catch (e) { console.error("Get language source failed at getting language source", address); diff --git a/bootstrap-languages/language-language/package.json b/bootstrap-languages/language-language/package.json index a7c893ead..ae5882c1f 100644 --- a/bootstrap-languages/language-language/package.json +++ b/bootstrap-languages/language-language/package.json @@ -13,7 +13,9 @@ "devDependencies": { "@perspect3vism/ad4m": "*", "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", + "@rollup/plugin-node-resolve": "^8.4.0", + "rollup-plugin-url-import": "*", + "rollup-plugin-node-builtins": "*", "@rollup/plugin-typescript": "^4.0.0", "@tsconfig/svelte": "^1.0.0", "ipfs-core-types": "0.10.1", diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index 03505f4f4..dcf5b2896 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -1,6 +1,7 @@ import type { Address, AgentService, PublicSharing, LanguageContext, LanguageLanguageInput} from "@perspect3vism/ad4m"; import type { IPFS } from "ipfs-core-types" -import axios from "axios"; +//@ts-ignore +import axiod from "https://deno.land/x/axiod/mod.ts"; import https from "https"; import { PROXY_URL } from "."; @@ -14,12 +15,8 @@ export class CloudflarePutAdapter implements PublicSharing { } async createPublic(language: LanguageLanguageInput): Promise
{ - const ipfsAddress = await this.#IPFS.add( - { content: language.bundle.toString()}, - { onlyHash: true}, - ); // @ts-ignore - const hash = ipfsAddress.cid.toString(); + const hash = UTILS.hash(language.bundle.toString()); if(hash != language.meta.address) throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`) @@ -38,7 +35,7 @@ export class CloudflarePutAdapter implements PublicSharing { const httpsAgent = new https.Agent({ rejectUnauthorized: false }); - const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent }); + const metaPostResult = await axiod.post(PROXY_URL, metaPostData, { httpsAgent }); if (metaPostResult.status != 200) { console.error("Upload language meta data gets error: ", metaPostResult); } @@ -50,7 +47,7 @@ export class CloudflarePutAdapter implements PublicSharing { value: language.bundle.toString(), }; //Save the language bundle to the KV store - const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent }); + const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams, { httpsAgent }); if (bundlePostResult.status != 200) { console.error("Upload language bundle data gets error: ", metaPostResult); } diff --git a/bootstrap-languages/language-language/rollup.config.js b/bootstrap-languages/language-language/rollup.config.js index 983a568e1..bc9f67549 100644 --- a/bootstrap-languages/language-language/rollup.config.js +++ b/bootstrap-languages/language-language/rollup.config.js @@ -1,18 +1,21 @@ import svelte from "rollup-plugin-svelte"; -import resolve from "@rollup/plugin-node-resolve"; +import { nodeResolve } from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; //import { terser } from 'rollup-plugin-terser'; import sveltePreprocess from "svelte-preprocess"; import postcss from "rollup-plugin-postcss"; import { string } from "rollup-plugin-string"; +import builtins from 'rollup-plugin-node-builtins'; +import urlImport from 'rollup-plugin-url-import' const production = !process.env.ROLLUP_WATCH; export default { input: "index.js", output: { - sourcemap: true, - format: "cjs", + sourcemap: false, + format: "esm", + target: "", name: "LanguageLanguage", file: "build/bundle.js", }, @@ -36,11 +39,12 @@ export default { // some cases you'll need additional configuration - // consult the documentation for details: // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: false, + commonjs({transformMixedEsModules: true}), + nodeResolve({ dedupe: ["svelte"], }), - commonjs(), + builtins(), + urlImport(), postcss({ extract: true, minimize: true, From e79b6d5b1508855de8d5ee77397944512d200fb5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 12:21:12 +0100 Subject: [PATCH 170/722] add simple temp script for writing language language to mainnet seed --- rust-executor/create-mainnet-simple.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 rust-executor/create-mainnet-simple.js diff --git a/rust-executor/create-mainnet-simple.js b/rust-executor/create-mainnet-simple.js new file mode 100644 index 000000000..edbf3c1d8 --- /dev/null +++ b/rust-executor/create-mainnet-simple.js @@ -0,0 +1,16 @@ +const fs = require("fs"); + +//get first command line argument +const arg = process.argv[2]; +const mainnetSeedPath = process.argv[3]; + +//read file +const data = fs.readFileSync(arg).toString(); +const mainnet = JSON.parse(fs.readFileSync(mainnetSeedPath)); +mainnet["languageLanguageBundle"] = data; + +//write file +fs.writeFileSync(mainnetSeedPath, JSON.stringify(mainnet)); + + + From dad56cdebffe16b954dca61640720b76a548b48e Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 18 Apr 2023 14:00:38 +0200 Subject: [PATCH 171/722] Language language all Deno compatible imports --- bootstrap-languages/language-language/adapter.ts | 6 +++--- bootstrap-languages/language-language/index.ts | 6 +++--- .../language-language/languageAdapter.ts | 7 ++----- .../language-language/putAdapter.ts | 15 ++++----------- .../language-language/tsconfig.json | 2 +- 5 files changed, 13 insertions(+), 23 deletions(-) diff --git a/bootstrap-languages/language-language/adapter.ts b/bootstrap-languages/language-language/adapter.ts index a3053956b..845cd7b0f 100644 --- a/bootstrap-languages/language-language/adapter.ts +++ b/bootstrap-languages/language-language/adapter.ts @@ -1,8 +1,8 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; -import { CloudflarePutAdapter } from "./putAdapter"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import { CloudflarePutAdapter } from "./putAdapter.ts"; //@ts-ignore import axiod from "https://deno.land/x/axiod/mod.ts"; -import { PROXY_URL } from "."; +import { PROXY_URL } from "./index.ts"; export default class Adapter implements ExpressionAdapter { putAdapter: PublicSharing; diff --git a/bootstrap-languages/language-language/index.ts b/bootstrap-languages/language-language/index.ts index ae7903aa0..bcfaeac8d 100644 --- a/bootstrap-languages/language-language/index.ts +++ b/bootstrap-languages/language-language/index.ts @@ -1,6 +1,6 @@ -import type { Address, Language, HolochainLanguageDelegate, LanguageContext, Interaction, ExpressionUI } from "@perspect3vism/ad4m"; -import LangAdapter from "./languageAdapter"; -import Adapter from "./adapter"; +import type { Address, Language, LanguageContext, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import LangAdapter from "./languageAdapter.ts"; +import Adapter from "./adapter.ts"; export const name = "languages"; diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index e0749f89b..3afc86cde 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -1,12 +1,9 @@ -import type { Address, LanguageAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; +import type { Address, LanguageAdapter, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; //@ts-ignore import axiod from "https://deno.land/x/axiod/mod.ts"; -import { PROXY_URL } from "."; -import XMLHttpRequest from 'xhr2'; +import { PROXY_URL } from "./index.ts"; export default class LangAdapter implements LanguageAdapter { - putAdapter: PublicSharing; - constructor(context: LanguageContext) { } diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index dcf5b2896..edc85581d 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -1,17 +1,13 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, LanguageLanguageInput} from "@perspect3vism/ad4m"; -import type { IPFS } from "ipfs-core-types" +import type { Address, AgentService, PublicSharing, LanguageContext, LanguageLanguageInput} from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; //@ts-ignore import axiod from "https://deno.land/x/axiod/mod.ts"; -import https from "https"; -import { PROXY_URL } from "."; +import { PROXY_URL } from "./index.ts"; export class CloudflarePutAdapter implements PublicSharing { #agent: AgentService; - #IPFS: IPFS; constructor(context: LanguageContext) { this.#agent = context.agent; - this.#IPFS = context.IPFS; } async createPublic(language: LanguageLanguageInput): Promise
{ @@ -32,10 +28,7 @@ export class CloudflarePutAdapter implements PublicSharing { value: JSON.stringify(expression), }; //Save the meta information to the KV store - const httpsAgent = new https.Agent({ - rejectUnauthorized: false - }); - const metaPostResult = await axiod.post(PROXY_URL, metaPostData, { httpsAgent }); + const metaPostResult = await axiod.post(PROXY_URL, metaPostData); if (metaPostResult.status != 200) { console.error("Upload language meta data gets error: ", metaPostResult); } @@ -47,7 +40,7 @@ export class CloudflarePutAdapter implements PublicSharing { value: language.bundle.toString(), }; //Save the language bundle to the KV store - const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams, { httpsAgent }); + const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams); if (bundlePostResult.status != 200) { console.error("Upload language bundle data gets error: ", metaPostResult); } diff --git a/bootstrap-languages/language-language/tsconfig.json b/bootstrap-languages/language-language/tsconfig.json index cfbc9c197..8de2f1a55 100644 --- a/bootstrap-languages/language-language/tsconfig.json +++ b/bootstrap-languages/language-language/tsconfig.json @@ -8,7 +8,7 @@ Svelte Preprocess cannot figure out whether you have a value or a type, so tell TypeScript to enforce using `import type` instead of `import` for Types. */ - "importsNotUsedAsValues": "error", + //"importsNotUsedAsValues": "error", "isolatedModules": true, /** To have warnings/errors of the Svelte compiler at the correct position, From 432cd0eb656fceaa18868b031c7dc67994673e0b Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 18 Apr 2023 14:22:02 +0200 Subject: [PATCH 172/722] Switch language language from rollup to deno bundle --- .../language-language/package.json | 32 +--------- .../language-language/rollup.config.js | 64 ------------------- 2 files changed, 3 insertions(+), 93 deletions(-) delete mode 100644 bootstrap-languages/language-language/rollup.config.js diff --git a/bootstrap-languages/language-language/package.json b/bootstrap-languages/language-language/package.json index ae5882c1f..3cbf6d414 100644 --- a/bootstrap-languages/language-language/package.json +++ b/bootstrap-languages/language-language/package.json @@ -1,38 +1,12 @@ { "name": "@perspect3vism/language-language", - "version": "0.3.2", + "version": "0.4.0", "description": "An AD4M Language for storing of language bundles on Cloudflare", "main": "index.js", "scripts": { "test": "echo \"No language language integration tests\"", - "build": "tsc && rollup -c", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + "build": "deno bundle index.ts > build/bundle.js" }, "author": "joshuadparkin@gmail.com", - "license": "ISC", - "devDependencies": { - "@perspect3vism/ad4m": "*", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.4.0", - "rollup-plugin-url-import": "*", - "rollup-plugin-node-builtins": "*", - "@rollup/plugin-typescript": "^4.0.0", - "@tsconfig/svelte": "^1.0.0", - "ipfs-core-types": "0.10.1", - "rollup": "^2.3.4", - "rollup-plugin-postcss": "^3.1.8", - "rollup-plugin-string": "^3.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", - "svelte": "^3.0.0", - "svelte-check": "^1.0.0", - "svelte-preprocess": "^4.0.0", - "tslib": "^2.0.0", - "typescript": "^4.2.4" - }, - "dependencies": { - "@types/node": "^18.0.0", - "axios": "^0.26.1", - "xhr2": "^0.2.1" - } + "license": "ISC" } diff --git a/bootstrap-languages/language-language/rollup.config.js b/bootstrap-languages/language-language/rollup.config.js deleted file mode 100644 index bc9f67549..000000000 --- a/bootstrap-languages/language-language/rollup.config.js +++ /dev/null @@ -1,64 +0,0 @@ -import svelte from "rollup-plugin-svelte"; -import { nodeResolve } from "@rollup/plugin-node-resolve"; -import commonjs from "@rollup/plugin-commonjs"; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from "svelte-preprocess"; -import postcss from "rollup-plugin-postcss"; -import { string } from "rollup-plugin-string"; -import builtins from 'rollup-plugin-node-builtins'; -import urlImport from 'rollup-plugin-url-import' - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: "index.js", - output: { - sourcemap: false, - format: "esm", - target: "", - name: "LanguageLanguage", - file: "build/bundle.js", - }, - plugins: [ - string({ - include: "build/*.js", - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - commonjs({transformMixedEsModules: true}), - nodeResolve({ - dedupe: ["svelte"], - }), - builtins(), - urlImport(), - postcss({ - extract: true, - minimize: true, - use: [ - [ - "sass", - { - includePaths: ["./src/ui/theme", "./node_modules"], - }, - ], - ], - }) - ], - watch: { - clearScreen: false, - }, -}; From c470d718e63c59321191fbbe4203e89681954f34 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 18 Apr 2023 14:22:27 +0200 Subject: [PATCH 173/722] Suppress wasmer log info --- rust-executor/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 6f7c95d4b..79c7cb938 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -17,7 +17,7 @@ pub use config::Ad4mConfig; /// Runs the GraphQL server and the deno core runtime pub async fn run(config: Ad4mConfig) { - env::set_var("RUST_LOG", "info"); + env::set_var("RUST_LOG", "rust_executor=info"); env_logger::init(); info!("Starting js_core..."); From 35da9aa6dee5f8785e2589d971a06e855b78abee Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 18 Apr 2023 14:23:07 +0200 Subject: [PATCH 174/722] Mainnet seed with Deno compatible language language build --- rust-executor/src/mainnet_seed.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index 30651b7c3..3d503f8d7 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -9,5 +9,5 @@ "agentLanguage": "QmfYnjX2Bq7EG61SGrNtXBeup9UBfsqaWciTCMNBgPUEke", "perspectiveLanguage": "QmPC3MydgKHUpEXA5JZdp8eyqvw1TTPdKsAbMN7Rb3muqp", "neighbourhoodLanguage": "QmcFUVRL5iQM1AaE3H9UnZ8rRRJQij65qYbBHW7P2oewEH", - "languageLanguageBundle":"var bind = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString$1 = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray$3(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined$1(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer$3(val) {\n return val !== null && !isUndefined$1(val) && val.constructor !== null && !isUndefined$1(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString$1.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString$1.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString$2(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber$1(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject$1(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString$1.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate$1(val) {\n return toString$1.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString$1.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString$1.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction$3(val) {\n return toString$1.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject$1(val) && isFunction$3(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString$1.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach$1(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray$3(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray$3(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach$1(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach$1(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nvar utils = {\n isArray: isArray$3,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer$3,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString$2,\n isNumber: isNumber$1,\n isObject: isObject$1,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined$1,\n isDate: isDate$1,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction$3,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach$1,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\nfunction encode$1(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nvar buildURL = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode$1(key) + '=' + encode$1(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nvar InterceptorManager_1 = InterceptorManager;\n\nvar normalizeHeaderName = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nvar enhanceError = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n\nvar transitional = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nvar createError = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nvar settle = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\nvar cookies = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nvar isAbsoluteURL = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nvar combineURLs = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nvar buildFullPath = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\nvar isURLSameOrigin = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nvar Cancel_1 = Cancel;\n\nvar xhr$1 = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional$1 = config.transitional || transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\nvar hasFetch = isFunction$2(global.fetch) && isFunction$2(global.ReadableStream);\n\nvar _blobConstructor;\nfunction blobConstructor() {\n if (typeof _blobConstructor !== 'undefined') {\n return _blobConstructor;\n }\n try {\n new global.Blob([new ArrayBuffer(1)]);\n _blobConstructor = true;\n } catch (e) {\n _blobConstructor = false;\n }\n return _blobConstructor\n}\nvar xhr;\n\nfunction checkTypeSupport(type) {\n if (!xhr) {\n xhr = new global.XMLHttpRequest();\n // If location.host is empty, e.g. if this page/worker was loaded\n // from a Blob, then use example.com to avoid an error\n xhr.open('GET', global.location.host ? '/' : 'https://example.com');\n }\n try {\n xhr.responseType = type;\n return xhr.responseType === type\n } catch (e) {\n return false\n }\n\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined';\nvar haveSlice = haveArrayBuffer && isFunction$2(global.ArrayBuffer.prototype.slice);\n\nvar arraybuffer = haveArrayBuffer && checkTypeSupport('arraybuffer');\n // These next two tests unavoidably show warnings in Chrome. Since fetch will always\n // be used if it's available, just return false for these to avoid the warnings.\nvar msstream = !hasFetch && haveSlice && checkTypeSupport('ms-stream');\nvar mozchunkedarraybuffer = !hasFetch && haveArrayBuffer &&\n checkTypeSupport('moz-chunked-arraybuffer');\nvar overrideMimeType = isFunction$2(xhr.overrideMimeType);\nvar vbArray = isFunction$2(global.VBArray);\n\nfunction isFunction$2(value) {\n return typeof value === 'function'\n}\n\nxhr = null; // Help gc\n\n// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser$1 = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release$1 = {};\nvar config = {};\n\nfunction noop$1() {}\n\nvar on = noop$1;\nvar addListener = noop$1;\nvar once = noop$1;\nvar off = noop$1;\nvar removeListener = noop$1;\nvar removeAllListeners = noop$1;\nvar emit = noop$1;\n\nfunction binding$1(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime$1() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar process$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser$1,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding$1,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release$1,\n config: config,\n uptime: uptime$1\n};\n\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n}\nvar inherits$1 = inherits;\n\n// Copyright Joyent, Inc. and other Node contributors.\nvar formatRegExp = /%[sdj%]/g;\nfunction format$1(f) {\n if (!isString$1(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect$1(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect$1(x);\n }\n }\n return str;\n}\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nfunction deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process$1.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process$1.throwDeprecation) {\n throw new Error(msg);\n } else if (process$1.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\nvar debugs = {};\nvar debugEnviron;\nfunction debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process$1.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format$1.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n}\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect$1(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect$1.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect$1.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect$1.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect$1.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect$1.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction$1(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect$1 &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString$1(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction$1(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray$2(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction$1(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString$1(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty$1(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty$1(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var length = output.reduce(function(prev, cur) {\n if (cur.indexOf('\\n') >= 0) ;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray$2(ar) {\n return Array.isArray(ar);\n}\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isString$1(arg) {\n return typeof arg === 'string';\n}\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nfunction isFunction$1(arg) {\n return typeof arg === 'function';\n}\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nfunction isBuffer$2(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nfunction log() {\n console.log('%s - %s', timestamp(), format$1.apply(null, arguments));\n}\n\nfunction _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n}\nfunction hasOwnProperty$1(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar util = {\n inherits: inherits$1,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer$2,\n isPrimitive: isPrimitive,\n isFunction: isFunction$1,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString$1,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray$2,\n inspect: inspect$1,\n deprecate: deprecate,\n format: format$1,\n debuglog: debuglog\n};\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active ) ;\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount$1.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount$1;\nfunction listenerCount$1(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray$1 = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer$1.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true;\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nkMaxLength();\n\nfunction kMaxLength () {\n return Buffer$1.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer$1(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer$1 (arg, encodingOrOffset, length) {\n if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) {\n return new Buffer$1(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer$1.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer$1._augment = function (arr) {\n arr.__proto__ = Buffer$1.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer$1.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n};\n\nif (Buffer$1.TYPED_ARRAY_SUPPORT) {\n Buffer$1.prototype.__proto__ = Uint8Array.prototype;\n Buffer$1.__proto__ = Uint8Array;\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer$1[Symbol.species] === Buffer$1) ;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer$1.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer$1.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer$1.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer$1.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray$1(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\nBuffer$1.isBuffer = isBuffer$1;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer$1.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer$1.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer$1.concat = function concat (list, length) {\n if (!isArray$1(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer$1.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer$1.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer$1.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer$1.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer$1.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer$1.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer$1.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer$1.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer$1.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer$1.compare(this, b) === 0\n};\n\nBuffer$1.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return ''\n};\n\nBuffer$1.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer$1.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer$1.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer$1.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer$1.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer$1.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer$1.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer$1.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer$1.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer$1.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer$1(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer$1.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer$1.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer$1.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer$1.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer$1.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer$1.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer$1.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer$1.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer$1.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer$1.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer$1.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer$1.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer$1.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer$1.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer$1.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer$1.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer$1.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer$1.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer$1.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer$1.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer$1.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer$1.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer$1.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer$1.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer$1.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer$1.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer$1.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer$1.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer$1.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer$1.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer$1.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer$1.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer$1.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer$1.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer$1.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer$1.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer$1(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer$1(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer$1.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer$1.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n};\n\n// Copyright Joyent, Inc. and other Node contributors.\nvar isBufferEncoding = Buffer$1.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n };\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nfunction StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer$1(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n}\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n\nReadable.ReadableState = ReadableState;\n\nvar debug$2 = debuglog('stream');\ninherits$1(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug$2('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug$2('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug$2('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug$2('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug$2('reading or ended', doRead);\n } else if (doRead) {\n debug$2('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug$2('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug$2('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug$2('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug$2('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug$2('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug$2('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug$2('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug$2('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug$2('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug$2('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug$2('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug$2('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug$2('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug$2('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug$2('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug$2('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug$2('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug$2('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug$2('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug$2('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug$2('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug$2('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug$2('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n// A bit simpler than readable streams.\nWritable$1.WritableState = WritableState;\ninherits$1(Writable$1, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\nfunction Writable$1(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable$1) && !(this instanceof Duplex)) return new Writable$1(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable$1.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable$1.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable$1.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable$1.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable$1.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer$1.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n nextTick(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable$1.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable$1.prototype._writev = null;\n\nWritable$1.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n\ninherits$1(Duplex, Readable);\n\nvar keys = Object.keys(Writable$1.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable$1.prototype[method];\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable$1.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\n// a transform stream is a readable/writable stream where you do\ninherits$1(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n\ninherits$1(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\ninherits$1(Stream, EventEmitter);\nStream.Readable = Readable;\nStream.Writable = Writable$1;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EventEmitter.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EventEmitter.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n\nvar rStates = {\n UNSENT: 0,\n OPENED: 1,\n HEADERS_RECEIVED: 2,\n LOADING: 3,\n DONE: 4\n};\nfunction IncomingMessage(xhr, response, mode) {\n var self = this;\n Readable.call(self);\n\n self._mode = mode;\n self.headers = {};\n self.rawHeaders = [];\n self.trailers = {};\n self.rawTrailers = [];\n\n // Fake the 'close' event, but only once 'end' fires\n self.on('end', function() {\n // The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n process.nextTick(function() {\n self.emit('close');\n });\n });\n var read;\n if (mode === 'fetch') {\n self._fetchResponse = response;\n\n self.url = response.url;\n self.statusCode = response.status;\n self.statusMessage = response.statusText;\n // backwards compatible version of for ( of ):\n // for (var ,_i,_it = [Symbol.iterator](); = (_i = _it.next()).value,!_i.done;)\n for (var header, _i, _it = response.headers[Symbol.iterator](); header = (_i = _it.next()).value, !_i.done;) {\n self.headers[header[0].toLowerCase()] = header[1];\n self.rawHeaders.push(header[0], header[1]);\n }\n\n // TODO: this doesn't respect backpressure. Once WritableStream is available, this can be fixed\n var reader = response.body.getReader();\n\n read = function () {\n reader.read().then(function(result) {\n if (self._destroyed)\n return\n if (result.done) {\n self.push(null);\n return\n }\n self.push(new Buffer(result.value));\n read();\n });\n };\n read();\n\n } else {\n self._xhr = xhr;\n self._pos = 0;\n\n self.url = xhr.responseURL;\n self.statusCode = xhr.status;\n self.statusMessage = xhr.statusText;\n var headers = xhr.getAllResponseHeaders().split(/\\r?\\n/);\n headers.forEach(function(header) {\n var matches = header.match(/^([^:]+):\\s*(.*)/);\n if (matches) {\n var key = matches[1].toLowerCase();\n if (key === 'set-cookie') {\n if (self.headers[key] === undefined) {\n self.headers[key] = [];\n }\n self.headers[key].push(matches[2]);\n } else if (self.headers[key] !== undefined) {\n self.headers[key] += ', ' + matches[2];\n } else {\n self.headers[key] = matches[2];\n }\n self.rawHeaders.push(matches[1], matches[2]);\n }\n });\n\n self._charset = 'x-user-defined';\n if (!overrideMimeType) {\n var mimeType = self.rawHeaders['mime-type'];\n if (mimeType) {\n var charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/);\n if (charsetMatch) {\n self._charset = charsetMatch[1].toLowerCase();\n }\n }\n if (!self._charset)\n self._charset = 'utf-8'; // best guess\n }\n }\n}\n\ninherits$1(IncomingMessage, Readable);\n\nIncomingMessage.prototype._read = function() {};\n\nIncomingMessage.prototype._onXHRProgress = function() {\n var self = this;\n\n var xhr = self._xhr;\n\n var response = null;\n switch (self._mode) {\n case 'text:vbarray': // For IE9\n if (xhr.readyState !== rStates.DONE)\n break\n try {\n // This fails in IE8\n response = new global.VBArray(xhr.responseBody).toArray();\n } catch (e) {\n // pass\n }\n if (response !== null) {\n self.push(new Buffer(response));\n break\n }\n // Falls through in IE8\n case 'text':\n try { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n response = xhr.responseText;\n } catch (e) {\n self._mode = 'text:vbarray';\n break\n }\n if (response.length > self._pos) {\n var newData = response.substr(self._pos);\n if (self._charset === 'x-user-defined') {\n var buffer = new Buffer(newData.length);\n for (var i = 0; i < newData.length; i++)\n buffer[i] = newData.charCodeAt(i) & 0xff;\n\n self.push(buffer);\n } else {\n self.push(newData, self._charset);\n }\n self._pos = response.length;\n }\n break\n case 'arraybuffer':\n if (xhr.readyState !== rStates.DONE || !xhr.response)\n break\n response = xhr.response;\n self.push(new Buffer(new Uint8Array(response)));\n break\n case 'moz-chunked-arraybuffer': // take whole\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING || !response)\n break\n self.push(new Buffer(new Uint8Array(response)));\n break\n case 'ms-stream':\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING)\n break\n var reader = new global.MSStreamReader();\n reader.onprogress = function() {\n if (reader.result.byteLength > self._pos) {\n self.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))));\n self._pos = reader.result.byteLength;\n }\n };\n reader.onload = function() {\n self.push(null);\n };\n // reader.onerror = ??? // TODO: this\n reader.readAsArrayBuffer(response);\n break\n }\n\n // The ms-stream case handles end separately in reader.onload()\n if (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n self.push(null);\n }\n};\n\n// from https://github.com/jhiesey/to-arraybuffer/blob/6502d9850e70ba7935a7df4ad86b358fc216f9f0/index.js\nfunction toArrayBuffer (buf) {\n // If the buffer is backed by a Uint8Array, a faster version will work\n if (buf instanceof Uint8Array) {\n // If the buffer isn't a subarray, return the underlying ArrayBuffer\n if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer\n } else if (typeof buf.buffer.slice === 'function') {\n // Otherwise we need to get a proper copy\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)\n }\n }\n\n if (isBuffer$1(buf)) {\n // This is the slow version that will work with any Buffer\n // implementation (even in old browsers)\n var arrayCopy = new Uint8Array(buf.length);\n var len = buf.length;\n for (var i = 0; i < len; i++) {\n arrayCopy[i] = buf[i];\n }\n return arrayCopy.buffer\n } else {\n throw new Error('Argument must be a Buffer')\n }\n}\n\nfunction decideMode(preferBinary, useFetch) {\n if (hasFetch && useFetch) {\n return 'fetch'\n } else if (mozchunkedarraybuffer) {\n return 'moz-chunked-arraybuffer'\n } else if (msstream) {\n return 'ms-stream'\n } else if (arraybuffer && preferBinary) {\n return 'arraybuffer'\n } else if (vbArray && preferBinary) {\n return 'text:vbarray'\n } else {\n return 'text'\n }\n}\n\nfunction ClientRequest(opts) {\n var self = this;\n Writable$1.call(self);\n\n self._opts = opts;\n self._body = [];\n self._headers = {};\n if (opts.auth)\n self.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'));\n Object.keys(opts.headers).forEach(function(name) {\n self.setHeader(name, opts.headers[name]);\n });\n\n var preferBinary;\n var useFetch = true;\n if (opts.mode === 'disable-fetch') {\n // If the use of XHR should be preferred and includes preserving the 'content-type' header\n useFetch = false;\n preferBinary = true;\n } else if (opts.mode === 'prefer-streaming') {\n // If streaming is a high priority but binary compatibility and\n // the accuracy of the 'content-type' header aren't\n preferBinary = false;\n } else if (opts.mode === 'allow-wrong-content-type') {\n // If streaming is more important than preserving the 'content-type' header\n preferBinary = !overrideMimeType;\n } else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n // Use binary if text streaming may corrupt data or the content-type header, or for speed\n preferBinary = true;\n } else {\n throw new Error('Invalid value for opts.mode')\n }\n self._mode = decideMode(preferBinary, useFetch);\n\n self.on('finish', function() {\n self._onFinish();\n });\n}\n\ninherits$1(ClientRequest, Writable$1);\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n 'accept-charset',\n 'accept-encoding',\n 'access-control-request-headers',\n 'access-control-request-method',\n 'connection',\n 'content-length',\n 'cookie',\n 'cookie2',\n 'date',\n 'dnt',\n 'expect',\n 'host',\n 'keep-alive',\n 'origin',\n 'referer',\n 'te',\n 'trailer',\n 'transfer-encoding',\n 'upgrade',\n 'user-agent',\n 'via'\n];\nClientRequest.prototype.setHeader = function(name, value) {\n var self = this;\n var lowerName = name.toLowerCase();\n // This check is not necessary, but it prevents warnings from browsers about setting unsafe\n // headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n // http-browserify did it, so I will too.\n if (unsafeHeaders.indexOf(lowerName) !== -1)\n return\n\n self._headers[lowerName] = {\n name: name,\n value: value\n };\n};\n\nClientRequest.prototype.getHeader = function(name) {\n var self = this;\n return self._headers[name.toLowerCase()].value\n};\n\nClientRequest.prototype.removeHeader = function(name) {\n var self = this;\n delete self._headers[name.toLowerCase()];\n};\n\nClientRequest.prototype._onFinish = function() {\n var self = this;\n\n if (self._destroyed)\n return\n var opts = self._opts;\n\n var headersObj = self._headers;\n var body;\n if (opts.method === 'POST' || opts.method === 'PUT' || opts.method === 'PATCH') {\n if (blobConstructor()) {\n body = new global.Blob(self._body.map(function(buffer) {\n return toArrayBuffer(buffer)\n }), {\n type: (headersObj['content-type'] || {}).value || ''\n });\n } else {\n // get utf8 string\n body = Buffer.concat(self._body).toString();\n }\n }\n\n if (self._mode === 'fetch') {\n var headers = Object.keys(headersObj).map(function(name) {\n return [headersObj[name].name, headersObj[name].value]\n });\n\n global.fetch(self._opts.url, {\n method: self._opts.method,\n headers: headers,\n body: body,\n mode: 'cors',\n credentials: opts.withCredentials ? 'include' : 'same-origin'\n }).then(function(response) {\n self._fetchResponse = response;\n self._connect();\n }, function(reason) {\n self.emit('error', reason);\n });\n } else {\n var xhr = self._xhr = new global.XMLHttpRequest();\n try {\n xhr.open(self._opts.method, self._opts.url, true);\n } catch (err) {\n process.nextTick(function() {\n self.emit('error', err);\n });\n return\n }\n\n // Can't set responseType on really old browsers\n if ('responseType' in xhr)\n xhr.responseType = self._mode.split(':')[0];\n\n if ('withCredentials' in xhr)\n xhr.withCredentials = !!opts.withCredentials;\n\n if (self._mode === 'text' && 'overrideMimeType' in xhr)\n xhr.overrideMimeType('text/plain; charset=x-user-defined');\n\n Object.keys(headersObj).forEach(function(name) {\n xhr.setRequestHeader(headersObj[name].name, headersObj[name].value);\n });\n\n self._response = null;\n xhr.onreadystatechange = function() {\n switch (xhr.readyState) {\n case rStates.LOADING:\n case rStates.DONE:\n self._onXHRProgress();\n break\n }\n };\n // Necessary for streaming in Firefox, since xhr.response is ONLY defined\n // in onprogress, not in onreadystatechange with xhr.readyState = 3\n if (self._mode === 'moz-chunked-arraybuffer') {\n xhr.onprogress = function() {\n self._onXHRProgress();\n };\n }\n\n xhr.onerror = function() {\n if (self._destroyed)\n return\n self.emit('error', new Error('XHR error'));\n };\n\n try {\n xhr.send(body);\n } catch (err) {\n process.nextTick(function() {\n self.emit('error', err);\n });\n return\n }\n }\n};\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid(xhr) {\n try {\n var status = xhr.status;\n return (status !== null && status !== 0)\n } catch (e) {\n return false\n }\n}\n\nClientRequest.prototype._onXHRProgress = function() {\n var self = this;\n\n if (!statusValid(self._xhr) || self._destroyed)\n return\n\n if (!self._response)\n self._connect();\n\n self._response._onXHRProgress();\n};\n\nClientRequest.prototype._connect = function() {\n var self = this;\n\n if (self._destroyed)\n return\n\n self._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode);\n self.emit('response', self._response);\n};\n\nClientRequest.prototype._write = function(chunk, encoding, cb) {\n var self = this;\n\n self._body.push(chunk);\n cb();\n};\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function() {\n var self = this;\n self._destroyed = true;\n if (self._response)\n self._response._destroyed = true;\n if (self._xhr)\n self._xhr.abort();\n // Currently, there isn't a way to truly abort a fetch.\n // If you like bikeshedding, see https://github.com/whatwg/fetch/issues/27\n};\n\nClientRequest.prototype.end = function(data, encoding, cb) {\n var self = this;\n if (typeof data === 'function') {\n cb = data;\n data = undefined;\n }\n\n Writable$1.prototype.end.call(self, data, encoding, cb);\n};\n\nClientRequest.prototype.flushHeaders = function() {};\nClientRequest.prototype.setTimeout = function() {};\nClientRequest.prototype.setNoDelay = function() {};\nClientRequest.prototype.setSocketKeepAlive = function() {};\n\n/*! https://mths.be/punycode v1.4.1 by @mathias */\n\n\n/** Highest positive signed 32-bit float value */\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\x20-\\x7E]/; // unprintable ASCII chars + non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n throw new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map$1(array, fn) {\n var length = array.length;\n var result = [];\n while (length--) {\n result[length] = fn(array[length]);\n }\n return result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n }\n // Avoid `split(regex)` for IE8 compatibility. See #17.\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map$1(labels, fn).join('.');\n return result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n while (counter < length) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nfunction digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n}\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nfunction adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for ( /* no initialization */ ; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n}\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nfunction encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT;\n\n // Convert the input in UCS-2 to Unicode\n input = ucs2decode(input);\n\n // Cache the length\n inputLength = input.length;\n\n // Initialize the state\n n = initialN;\n delta = 0;\n bias = initialBias;\n\n // Handle the basic code points\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length;\n\n // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n\n // Finish the basic string - if it is not empty - with a delimiter\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to ,\n // but guard against overflow\n handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base; /* no condition */ ; k += base) {\n t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) {\n break;\n }\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(\n stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n );\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n\n }\n return output.join('');\n}\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nfunction toASCII(input) {\n return mapDomain(input, function(string) {\n return regexNonASCII.test(string) ?\n 'xn--' + encode(string) :\n string;\n });\n}\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\nfunction stringifyPrimitive(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n}\n\nfunction stringify (obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys$1(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n}\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys$1 = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n\nfunction parse$2(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n}\n\n// Copyright Joyent, Inc. and other Node contributors.\nvar require$$3 = {\n parse: urlParse,\n resolve: urlResolve,\n resolveObject: urlResolveObject,\n format: urlFormat,\n Url: Url\n};\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n };\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n return parse$1(this, url, parseQueryString, slashesDenoteHost);\n};\n\nfunction parse$1(self, url, parseQueryString, slashesDenoteHost) {\n if (!isString$1(url)) {\n throw new TypeError('Parameter \\'url\\' must be a string, not ' + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n self.path = rest;\n self.href = rest;\n self.pathname = simplePath[1];\n if (simplePath[2]) {\n self.search = simplePath[2];\n if (parseQueryString) {\n self.query = parse$2(self.search.substr(1));\n } else {\n self.query = self.search.substr(1);\n }\n } else if (parseQueryString) {\n self.search = '';\n self.query = {};\n }\n return self;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n self.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n self.slashes = true;\n }\n }\n var i, hec, l, p;\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n self.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n self.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n parseHost(self);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n self.hostname = self.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = self.hostname[0] === '[' &&\n self.hostname[self.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = self.hostname.split(/\\./);\n for (i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n self.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (self.hostname.length > hostnameMaxLen) {\n self.hostname = '';\n } else {\n // hostnames are always lower case.\n self.hostname = self.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n self.hostname = toASCII(self.hostname);\n }\n\n p = self.port ? ':' + self.port : '';\n var h = self.hostname || '';\n self.host = h + p;\n self.href += self.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n self.hostname = self.hostname.substr(1, self.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n self.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n self.search = rest.substr(qm);\n self.query = rest.substr(qm + 1);\n if (parseQueryString) {\n self.query = parse$2(self.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n self.search = '';\n self.query = {};\n }\n if (rest) self.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n self.hostname && !self.pathname) {\n self.pathname = '/';\n }\n\n //to support http.request\n if (self.pathname || self.search) {\n p = self.pathname || '';\n var s = self.search || '';\n self.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n self.href = format(self);\n return self;\n}\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (isString$1(obj)) obj = parse$1({}, obj);\n return format(obj);\n}\n\nfunction format(self) {\n var auth = self.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = self.protocol || '',\n pathname = self.pathname || '',\n hash = self.hash || '',\n host = false,\n query = '';\n\n if (self.host) {\n host = auth + self.host;\n } else if (self.hostname) {\n host = auth + (self.hostname.indexOf(':') === -1 ?\n self.hostname :\n '[' + this.hostname + ']');\n if (self.port) {\n host += ':' + self.port;\n }\n }\n\n if (self.query &&\n isObject(self.query) &&\n Object.keys(self.query).length) {\n query = stringify(self.query);\n }\n\n var search = self.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (self.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n}\n\nUrl.prototype.format = function() {\n return format(this);\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (isString$1(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n var relPath;\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n relPath = relative.pathname && relative.pathname.split('/') || [];\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n var authInHost;\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n return parseHost(this);\n};\n\nfunction parseHost(self) {\n var host = self.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n self.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) self.hostname = host;\n}\n\n/*\nthis and http-lib folder\n\nThe MIT License\n\nCopyright (c) 2015 John Hiesey\n\nPermission is hereby granted, free of charge,\nto any person obtaining a copy of this software and\nassociated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify,\nmerge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom\nthe Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice\nshall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR\nANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\nfunction request(opts, cb) {\n if (typeof opts === 'string')\n opts = urlParse(opts);\n\n\n // Normally, the page is loaded from http or https, so not specifying a protocol\n // will result in a (valid) protocol-relative url. However, this won't work if\n // the protocol is something else, like 'file:'\n var defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : '';\n\n var protocol = opts.protocol || defaultProtocol;\n var host = opts.hostname || opts.host;\n var port = opts.port;\n var path = opts.path || '/';\n\n // Necessary for IPv6 addresses\n if (host && host.indexOf(':') !== -1)\n host = '[' + host + ']';\n\n // This may be a relative url. The browser should always be able to interpret it correctly.\n opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path;\n opts.method = (opts.method || 'GET').toUpperCase();\n opts.headers = opts.headers || {};\n\n // Also valid opts.auth, opts.mode\n\n var req = new ClientRequest(opts);\n if (cb)\n req.on('response', cb);\n return req\n}\n\nfunction get(opts, cb) {\n var req = request(opts, cb);\n req.end();\n return req\n}\n\nfunction Agent() {}\nAgent.defaultMaxSockets = 4;\n\nvar METHODS = [\n 'CHECKOUT',\n 'CONNECT',\n 'COPY',\n 'DELETE',\n 'GET',\n 'HEAD',\n 'LOCK',\n 'M-SEARCH',\n 'MERGE',\n 'MKACTIVITY',\n 'MKCOL',\n 'MOVE',\n 'NOTIFY',\n 'OPTIONS',\n 'PATCH',\n 'POST',\n 'PROPFIND',\n 'PROPPATCH',\n 'PURGE',\n 'PUT',\n 'REPORT',\n 'SEARCH',\n 'SUBSCRIBE',\n 'TRACE',\n 'UNLOCK',\n 'UNSUBSCRIBE'\n];\nvar STATUS_CODES = {\n 100: 'Continue',\n 101: 'Switching Protocols',\n 102: 'Processing', // RFC 2518, obsoleted by RFC 4918\n 200: 'OK',\n 201: 'Created',\n 202: 'Accepted',\n 203: 'Non-Authoritative Information',\n 204: 'No Content',\n 205: 'Reset Content',\n 206: 'Partial Content',\n 207: 'Multi-Status', // RFC 4918\n 300: 'Multiple Choices',\n 301: 'Moved Permanently',\n 302: 'Moved Temporarily',\n 303: 'See Other',\n 304: 'Not Modified',\n 305: 'Use Proxy',\n 307: 'Temporary Redirect',\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 402: 'Payment Required',\n 403: 'Forbidden',\n 404: 'Not Found',\n 405: 'Method Not Allowed',\n 406: 'Not Acceptable',\n 407: 'Proxy Authentication Required',\n 408: 'Request Time-out',\n 409: 'Conflict',\n 410: 'Gone',\n 411: 'Length Required',\n 412: 'Precondition Failed',\n 413: 'Request Entity Too Large',\n 414: 'Request-URI Too Large',\n 415: 'Unsupported Media Type',\n 416: 'Requested Range Not Satisfiable',\n 417: 'Expectation Failed',\n 418: 'I\\'m a teapot', // RFC 2324\n 422: 'Unprocessable Entity', // RFC 4918\n 423: 'Locked', // RFC 4918\n 424: 'Failed Dependency', // RFC 4918\n 425: 'Unordered Collection', // RFC 4918\n 426: 'Upgrade Required', // RFC 2817\n 428: 'Precondition Required', // RFC 6585\n 429: 'Too Many Requests', // RFC 6585\n 431: 'Request Header Fields Too Large', // RFC 6585\n 500: 'Internal Server Error',\n 501: 'Not Implemented',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n 504: 'Gateway Time-out',\n 505: 'HTTP Version Not Supported',\n 506: 'Variant Also Negotiates', // RFC 2295\n 507: 'Insufficient Storage', // RFC 4918\n 509: 'Bandwidth Limit Exceeded',\n 510: 'Not Extended', // RFC 2774\n 511: 'Network Authentication Required' // RFC 6585\n};\n\nvar https = {\n request,\n get,\n Agent,\n METHODS,\n STATUS_CODES\n};\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\nvar pSlice = Array.prototype.slice;\nvar _functionsHaveNames;\nfunction functionsHaveNames() {\n if (typeof _functionsHaveNames !== 'undefined') {\n return _functionsHaveNames;\n }\n return _functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n }());\n}\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer$1(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nfunction assert$1(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!isFunction$1(func)) {\n return;\n }\n if (functionsHaveNames()) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert$1.AssertionError = AssertionError;\nfunction AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n}\n\n// assert.AssertionError instanceof Error\ninherits$1(AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames() || !isFunction$1(something)) {\n return inspect$1(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert$1.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\nassert$1.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\nassert$1.equal = equal;\nfunction equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', equal);\n}\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\nassert$1.notEqual = notEqual;\nfunction notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', notEqual);\n }\n}\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\nassert$1.deepEqual = deepEqual;\nfunction deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', deepEqual);\n }\n}\nassert$1.deepStrictEqual = deepStrictEqual;\nfunction deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', deepStrictEqual);\n }\n}\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer$1(actual) && isBuffer$1(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (isDate(actual) && isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (isRegExp(actual) && isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer$1(actual) !== isBuffer$1(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (isPrimitive(a) || isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\nassert$1.notDeepEqual = notDeepEqual;\nfunction notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', notDeepEqual);\n }\n}\n\nassert$1.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\nassert$1.strictEqual = strictEqual;\nfunction strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', strictEqual);\n }\n}\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\nassert$1.notStrictEqual = notStrictEqual;\nfunction notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', notStrictEqual);\n }\n}\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\nassert$1.throws = throws;\nfunction throws(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n}\n\n// EXTENSION! This is annoying to write outside this module.\nassert$1.doesNotThrow = doesNotThrow;\nfunction doesNotThrow(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n}\n\nassert$1.ifError = ifError;\nfunction ifError(err) {\n if (err) throw err;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nvar ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\nvar debug$1 = createCommonjsModule(function (module, exports) {\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = ms;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n});\n\nvar browser = createCommonjsModule(function (module, exports) {\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n});\n\n// MIT lisence\n// from https://github.com/substack/tty-browserify/blob/1ba769a6429d242f36226538835b4034bf6b7886/index.js\n\nfunction isatty() {\n return false;\n}\n\nfunction ReadStream() {\n throw new Error('tty.ReadStream is not implemented');\n}\n\nfunction WriteStream() {\n throw new Error('tty.ReadStream is not implemented');\n}\n\nvar tty = {\n isatty: isatty,\n ReadStream: ReadStream,\n WriteStream: WriteStream\n};\n\nvar require$$2$1 = {};\n\nvar node = createCommonjsModule(function (module, exports) {\n/**\n * Module dependencies.\n */\n\n\n\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')();\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = require$$2$1;\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = require$$2$1;\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n});\n\nvar src = createCommonjsModule(function (module) {\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = browser;\n} else {\n module.exports = node;\n}\n});\n\nvar debug;\n\nvar debug_1 = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = src(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n\nvar URL = require$$3.URL;\n\n\nvar Writable = Stream.Writable;\n\n\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n require$$3.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = require$$3.parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n require$$3.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = require$$3.resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug_1(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = require$$3.parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = require$$3.parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert$1.equal(options.protocol, protocol, \"protocol mismatch\");\n debug_1(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert$1(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nvar followRedirects = wrap({ http: https, https: https });\nvar wrap_1 = wrap;\nfollowRedirects.wrap = wrap_1;\n\nvar msg = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nfunction arraySet(dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n}\n\n\nvar Buf8 = Uint8Array;\nvar Buf16 = Uint16Array;\nvar Buf32 = Int32Array;\n// Enable/Disable typed arrays use, for testing\n//\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED$2 = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY$1 = 0;\nvar Z_TEXT$1 = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN$2 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) {\n var len = buf.length;\n while (--len >= 0) {\n buf[len] = 0;\n }\n}\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH$1 = 3;\nvar MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES$1 = 30;\n/* number of distance codes */\n\nvar BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nvar MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */ [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];\n\nvar extra_dbits = /* extra bits for each distance code */ [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];\n\nvar extra_blbits = /* extra bits for each bit length code */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];\n\nvar bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n // put_byte(s, (uch)((w) & 0xff));\n // put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2] /*.Code*/ , tree[c * 2 + 1] /*.Len*/ );\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc) {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1] /*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1] /*.Dad*/ * 2 + 1] /*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1] /*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) {\n continue;\n } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2] /*.Freq*/ ;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1] /*.Len*/ + xbits);\n }\n }\n if (overflow === 0) {\n return;\n }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) {\n bits--;\n }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) {\n continue;\n }\n if (tree[m * 2 + 1] /*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1] /*.Len*/ ) * tree[m * 2] /*.Freq*/ ;\n tree[m * 2 + 1] /*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count) {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n var next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1] /*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1] /*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1] /*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1] /*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1] /*.Len*/ = 5;\n static_dtree[n * 2] /*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) {\n s.dyn_ltree[n * 2] /*.Freq*/ = 0;\n }\n for (n = 0; n < D_CODES$1; n++) {\n s.dyn_dtree[n * 2] /*.Freq*/ = 0;\n }\n for (n = 0; n < BL_CODES$1; n++) {\n s.bl_tree[n * 2] /*.Freq*/ = 0;\n }\n\n s.dyn_ltree[END_BLOCK * 2] /*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s) {\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header) {\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n // while (len--) {\n // put_byte(s, *buf++);\n // }\n arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2] /*.Freq*/ < tree[_m2] /*.Freq*/ ||\n (tree[_n2] /*.Freq*/ === tree[_m2] /*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) {\n break;\n }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2] /*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1] /*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2] /*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1] /*.Len*/ ;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1 /*int /2*/ ); n >= 1; n--) {\n pqdownheap(s, tree, n);\n }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1 /*SMALLEST*/ ];\n s.heap[1 /*SMALLEST*/ ] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1 /*SMALLEST*/ );\n /***/\n\n m = s.heap[1 /*SMALLEST*/ ]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2] /*.Freq*/ = tree[n * 2] /*.Freq*/ + tree[m * 2] /*.Freq*/ ;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1] /*.Dad*/ = tree[m * 2 + 1] /*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1 /*SMALLEST*/ ] = node++;\n pqdownheap(s, tree, 1 /*SMALLEST*/ );\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1 /*SMALLEST*/ ];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1] /*.Len*/ ; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1] /*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1] /*.Len*/ ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2] /*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) {\n s.bl_tree[curlen * 2] /*.Freq*/ ++;\n }\n s.bl_tree[REP_3_6 * 2] /*.Freq*/ ++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2] /*.Freq*/ ++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2] /*.Freq*/ ++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1] /*.Len*/ ; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */\n /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1] /*.Len*/ ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do {\n send_code(s, curlen, s.bl_tree);\n } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1] /*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1] /*.Len*/ , 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2] /*.Freq*/ !== 0)) {\n return Z_BINARY$1;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2] /*.Freq*/ !== 0 || s.dyn_ltree[10 * 2] /*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2] /*.Freq*/ !== 0) {\n return Z_TEXT$1;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2] /*.Freq*/ !== 0) {\n return Z_TEXT$1;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY$1;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s) {\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$2) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) {\n opt_lenb = static_lenb;\n }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$2 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2] /*.Freq*/ ++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2] /*.Freq*/ ++;\n s.dyn_dtree[d_code(dist) * 2] /*.Freq*/ ++;\n }\n\n // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n\n //#ifdef TRUNCATE_BLOCK\n // /* Try to guess if it is profitable to stop the current block here */\n // if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n // /* Compute an upper bound for the compressed length */\n // out_length = s.last_lit*8;\n // in_length = s.strstart - s.block_start;\n //\n // for (dcode = 0; dcode < D_CODES; dcode++) {\n // out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n // }\n // out_length >>>= 3;\n // //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n // // s->last_lit, in_length, out_length,\n // // 100L - out_length*100L/in_length));\n // if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n // return true;\n // }\n // }\n //#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH$1 = 0;\nvar Z_PARTIAL_FLUSH$1 = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH$1 = 3;\nvar Z_FINISH$2 = 4;\nvar Z_BLOCK$2 = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK$2 = 0;\nvar Z_STREAM_END$2 = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR$2 = -2;\nvar Z_DATA_ERROR$2 = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR$2 = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION$1 = -1;\n\n\nvar Z_FILTERED$1 = 1;\nvar Z_HUFFMAN_ONLY$1 = 2;\nvar Z_RLE$1 = 3;\nvar Z_FIXED$1 = 4;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN$1 = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED$2 = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) {\n var len = buf.length;\n while (--len >= 0) {\n buf[len] = 0;\n }\n}\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) {\n return;\n }\n\n arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n // put_byte(s, (Byte)(b >> 8));\n // put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) {\n len = size;\n }\n if (len === 0) {\n return 0;\n }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n } else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0 /*NIL*/ ;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) {\n nice_match = s.lookahead;\n }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n //#if MIN_MATCH != 3\n // Call update_hash() MIN_MATCH-3 more times\n //#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n // if (s.high_water < s.window_size) {\n // var curr = s.strstart + s.lookahead;\n // var init = 0;\n //\n // if (s.high_water < curr) {\n // /* Previous high water mark below current data -- zero WIN_INIT\n // * bytes or up to end of window, whichever is less.\n // */\n // init = s.window_size - curr;\n // if (init > WIN_INIT)\n // init = WIN_INIT;\n // zmemzero(s->window + curr, (unsigned)init);\n // s->high_water = curr + init;\n // }\n // else if (s->high_water < (ulg)curr + WIN_INIT) {\n // /* High water mark at or above current data, but below current data\n // * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n // * to end of window, whichever is less.\n // */\n // init = (ulg)curr + WIN_INIT - s->high_water;\n // if (init > s->window_size - s->high_water)\n // init = s->window_size - s->high_water;\n // zmemzero(s->window + s->high_water, (unsigned)init);\n // s->high_water += init;\n // }\n // }\n //\n // Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n // \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n // if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n // s.block_start >= s.w_size)) {\n // throw new Error(\"slide too late\");\n // }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n // if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0 /*NIL*/ ;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0 /*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match /*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n //#if MIN_MATCH != 3\n // Call UPDATE_HASH() MIN_MATCH-3 more times\n //#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break;\n } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0 /*NIL*/ ;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0 /*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD) /*MAX_DIST(s)*/ ) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED$1 || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096 /*TOO_FAR*/ ))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break;\n } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all\n */\n\n this.depth = new Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN$1;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$1;\n _tr_init(s);\n return Z_OK$2;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK$2) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n } else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED$1) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Buf8(s.w_size * 2);\n s.head = new Buf16(s.hash_size);\n s.prev = new Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\n\nfunction deflate$1(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$2 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$2)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$2 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n if (s.wrap === 2) {\n // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY$1 || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n } else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY$1 || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n } else // DEFLATE header\n {\n var header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY$1 || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) {\n header |= PRESET_DICT;\n }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n //#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra /* != Z_NULL*/ ) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n } else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name /* != Z_NULL*/ ) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n } else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment /* != Z_NULL*/ ) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n } else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n } else {\n s.status = BUSY_STATE;\n }\n }\n //#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$2;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$2) {\n return err(strm, Z_BUF_ERROR$2);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$2);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$1 && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY$1) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE$1 ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$2;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH$1) {\n _tr_align(s);\n } else if (flush !== Z_BLOCK$2) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/\n /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$2;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$2) {\n return Z_OK$2;\n }\n if (s.wrap <= 0) {\n return Z_STREAM_END$2;\n }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n } else {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) {\n s.wrap = -s.wrap;\n }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$2 : Z_STREAM_END$2;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm /*== Z_NULL*/ || !strm.state /*== Z_NULL*/ ) {\n return Z_STREAM_ERROR$2;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$2;\n}\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n\n// See state defs from inflate.js\nvar BAD$1 = 30; /* got a data error -- remain here until reset */\nvar TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nfunction inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n}\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS$1 = 852;\nvar ENOUGH_DISTS$1 = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES$1 = 0;\nvar LENS$1 = 1;\nvar DISTS$1 = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nfunction inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0,\n max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n // var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) {\n break;\n }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) {\n break;\n }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n } else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n } else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val | 0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) {\n break;\n }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) {\n break;\n }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) | 0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) | 0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n}\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH$1 = 4;\nvar Z_BLOCK$1 = 5;\nvar Z_TREES$1 = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK$1 = 0;\nvar Z_STREAM_END$1 = 1;\nvar Z_NEED_DICT$1 = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR$1 = -2;\nvar Z_DATA_ERROR$1 = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR$1 = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED$1 = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Buf16(320); /* temporary storage for code lengths */\n this.work = new Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null /*Z_NULL*/ ;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n } else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) {\n return Z_STREAM_ERROR$1;\n }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null /*Z_NULL*/ ;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null /*Z_NULL*/ ;\n }\n return ret;\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new Buf32(512);\n distfix = new Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) {\n state.lens[sym++] = 8;\n }\n while (sym < 256) {\n state.lens[sym++] = 9;\n }\n while (sym < 280) {\n state.lens[sym++] = 7;\n }\n while (sym < 288) {\n state.lens[sym++] = 8;\n }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {\n bits: 9\n });\n\n /* distance table */\n sym = 0;\n while (sym < 32) {\n state.lens[sym++] = 5;\n }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {\n bits: 5\n });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n } else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n } else {\n state.wnext += dist;\n if (state.wnext === state.wsize) {\n state.wnext = 0;\n }\n if (state.whave < state.wsize) {\n state.whave += dist;\n }\n }\n }\n return 0;\n}\n\nfunction inflate$1(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */ [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) {\n state.mode = TYPEDO;\n } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0 /*crc32(0L, Z_NULL, 0)*/ ;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff) /*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f) /*BITS(4)*/ !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f) /*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n } else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1 /*adler32(0L, Z_NULL, 0)*/ ;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n } else if (state.head) {\n state.head.extra = null /*Z_NULL*/ ;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) {\n copy = have;\n }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) {\n break inf_leave;\n }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) {\n break inf_leave;\n }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/ )) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) {\n break inf_leave;\n }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/ )) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1 /*adler32(0L, Z_NULL, 0)*/ ;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK$1 || flush === Z_TREES$1) {\n break inf_leave;\n }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01) /*BITS(1)*/ ;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03) /*BITS(2)*/ ) {\n case 0:\n /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1:\n /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES$1) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2:\n /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES$1) {\n break inf_leave;\n }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) {\n copy = have;\n }\n if (copy > left) {\n copy = left;\n }\n if (copy === 0) {\n break inf_leave;\n }\n //--- zmemcpy(put, next, copy); ---\n arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f) /*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f) /*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f) /*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n //#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n //#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n } else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03); //BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n } else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n } else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f); //BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) {\n break;\n }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = {\n bits: state.distbits\n };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES$1) {\n break inf_leave;\n }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1)) /*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1) /*BITS(state.extra)*/ ;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)]; /*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1)) /*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1) /*BITS(state.extra)*/ ;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n //#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) {\n break inf_leave;\n }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // Trace((stderr, \"inflate.c too far\\n\"));\n // copy -= state.whave;\n // if (copy > state.length) { copy = state.length; }\n // if (copy > left) { copy = left; }\n // left -= copy;\n // state.length -= copy;\n // do {\n // output[put++] = 0;\n // } while (--copy);\n // if (state.length === 0) { state.mode = LEN; }\n // break;\n //#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n } else {\n from = state.wnext - copy;\n }\n if (copy > state.length) {\n copy = state.length;\n }\n from_source = state.window;\n } else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) {\n copy = left;\n }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) {\n state.mode = LEN;\n }\n break;\n case LIT:\n if (left === 0) {\n break inf_leave;\n }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n // Use '|' insdead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR$1;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/ ) {\n return Z_STREAM_ERROR$1;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n}\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n\n// import constants from './constants';\n\n\n// zlib modes\nvar NONE = 0;\nvar DEFLATE = 1;\nvar INFLATE = 2;\nvar GZIP = 3;\nvar GUNZIP = 4;\nvar DEFLATERAW = 5;\nvar INFLATERAW = 6;\nvar UNZIP = 7;\nvar Z_NO_FLUSH= 0,\n Z_PARTIAL_FLUSH= 1,\n Z_SYNC_FLUSH= 2,\n Z_FULL_FLUSH= 3,\n Z_FINISH= 4,\n Z_BLOCK= 5,\n Z_TREES= 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK= 0,\n Z_STREAM_END= 1,\n Z_NEED_DICT= 2,\n Z_ERRNO= -1,\n Z_STREAM_ERROR= -2,\n Z_DATA_ERROR= -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR= -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION= 0,\n Z_BEST_SPEED= 1,\n Z_BEST_COMPRESSION= 9,\n Z_DEFAULT_COMPRESSION= -1,\n\n\n Z_FILTERED= 1,\n Z_HUFFMAN_ONLY= 2,\n Z_RLE= 3,\n Z_FIXED= 4,\n Z_DEFAULT_STRATEGY= 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY= 0,\n Z_TEXT= 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN= 2,\n\n /* The deflate compression method */\n Z_DEFLATED= 8;\nfunction Zlib$1(mode) {\n if (mode < DEFLATE || mode > UNZIP)\n throw new TypeError('Bad argument');\n\n this.mode = mode;\n this.init_done = false;\n this.write_in_progress = false;\n this.pending_close = false;\n this.windowBits = 0;\n this.level = 0;\n this.memLevel = 0;\n this.strategy = 0;\n this.dictionary = null;\n}\n\nZlib$1.prototype.init = function(windowBits, level, memLevel, strategy, dictionary) {\n this.windowBits = windowBits;\n this.level = level;\n this.memLevel = memLevel;\n this.strategy = strategy;\n // dictionary not supported.\n\n if (this.mode === GZIP || this.mode === GUNZIP)\n this.windowBits += 16;\n\n if (this.mode === UNZIP)\n this.windowBits += 32;\n\n if (this.mode === DEFLATERAW || this.mode === INFLATERAW)\n this.windowBits = -this.windowBits;\n\n this.strm = new ZStream();\n var status;\n switch (this.mode) {\n case DEFLATE:\n case GZIP:\n case DEFLATERAW:\n status = deflateInit2(\n this.strm,\n this.level,\n Z_DEFLATED,\n this.windowBits,\n this.memLevel,\n this.strategy\n );\n break;\n case INFLATE:\n case GUNZIP:\n case INFLATERAW:\n case UNZIP:\n status = inflateInit2(\n this.strm,\n this.windowBits\n );\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (status !== Z_OK) {\n this._error(status);\n return;\n }\n\n this.write_in_progress = false;\n this.init_done = true;\n};\n\nZlib$1.prototype.params = function() {\n throw new Error('deflateParams Not supported');\n};\n\nZlib$1.prototype._writeCheck = function() {\n if (!this.init_done)\n throw new Error('write before init');\n\n if (this.mode === NONE)\n throw new Error('already finalized');\n\n if (this.write_in_progress)\n throw new Error('write already in progress');\n\n if (this.pending_close)\n throw new Error('close is pending');\n};\n\nZlib$1.prototype.write = function(flush, input, in_off, in_len, out, out_off, out_len) {\n this._writeCheck();\n this.write_in_progress = true;\n\n var self = this;\n process.nextTick(function() {\n self.write_in_progress = false;\n var res = self._write(flush, input, in_off, in_len, out, out_off, out_len);\n self.callback(res[0], res[1]);\n\n if (self.pending_close)\n self.close();\n });\n\n return this;\n};\n\n// set method for Node buffers, used by pako\nfunction bufferSet(data, offset) {\n for (var i = 0; i < data.length; i++) {\n this[offset + i] = data[i];\n }\n}\n\nZlib$1.prototype.writeSync = function(flush, input, in_off, in_len, out, out_off, out_len) {\n this._writeCheck();\n return this._write(flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib$1.prototype._write = function(flush, input, in_off, in_len, out, out_off, out_len) {\n this.write_in_progress = true;\n\n if (flush !== Z_NO_FLUSH &&\n flush !== Z_PARTIAL_FLUSH &&\n flush !== Z_SYNC_FLUSH &&\n flush !== Z_FULL_FLUSH &&\n flush !== Z_FINISH &&\n flush !== Z_BLOCK) {\n throw new Error('Invalid flush value');\n }\n\n if (input == null) {\n input = new Buffer(0);\n in_len = 0;\n in_off = 0;\n }\n\n if (out._set)\n out.set = out._set;\n else\n out.set = bufferSet;\n\n var strm = this.strm;\n strm.avail_in = in_len;\n strm.input = input;\n strm.next_in = in_off;\n strm.avail_out = out_len;\n strm.output = out;\n strm.next_out = out_off;\n var status;\n switch (this.mode) {\n case DEFLATE:\n case GZIP:\n case DEFLATERAW:\n status = deflate$1(strm, flush);\n break;\n case UNZIP:\n case INFLATE:\n case GUNZIP:\n case INFLATERAW:\n status = inflate$1(strm, flush);\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this._error(status);\n }\n\n this.write_in_progress = false;\n return [strm.avail_in, strm.avail_out];\n};\n\nZlib$1.prototype.close = function() {\n if (this.write_in_progress) {\n this.pending_close = true;\n return;\n }\n\n this.pending_close = false;\n\n if (this.mode === DEFLATE || this.mode === GZIP || this.mode === DEFLATERAW) {\n deflateEnd(this.strm);\n } else {\n inflateEnd(this.strm);\n }\n\n this.mode = NONE;\n};\nvar status;\nZlib$1.prototype.reset = function() {\n switch (this.mode) {\n case DEFLATE:\n case DEFLATERAW:\n status = deflateReset(this.strm);\n break;\n case INFLATE:\n case INFLATERAW:\n status = inflateReset(this.strm);\n break;\n }\n\n if (status !== Z_OK) {\n this._error(status);\n }\n};\n\nZlib$1.prototype._error = function(status) {\n this.onerror(msg[status] + ': ' + this.strm.msg, status);\n\n this.write_in_progress = false;\n if (this.pending_close)\n this.close();\n};\n\nvar _binding = /*#__PURE__*/Object.freeze({\n __proto__: null,\n NONE: NONE,\n DEFLATE: DEFLATE,\n INFLATE: INFLATE,\n GZIP: GZIP,\n GUNZIP: GUNZIP,\n DEFLATERAW: DEFLATERAW,\n INFLATERAW: INFLATERAW,\n UNZIP: UNZIP,\n Z_NO_FLUSH: Z_NO_FLUSH,\n Z_PARTIAL_FLUSH: Z_PARTIAL_FLUSH,\n Z_SYNC_FLUSH: Z_SYNC_FLUSH,\n Z_FULL_FLUSH: Z_FULL_FLUSH,\n Z_FINISH: Z_FINISH,\n Z_BLOCK: Z_BLOCK,\n Z_TREES: Z_TREES,\n Z_OK: Z_OK,\n Z_STREAM_END: Z_STREAM_END,\n Z_NEED_DICT: Z_NEED_DICT,\n Z_ERRNO: Z_ERRNO,\n Z_STREAM_ERROR: Z_STREAM_ERROR,\n Z_DATA_ERROR: Z_DATA_ERROR,\n Z_BUF_ERROR: Z_BUF_ERROR,\n Z_NO_COMPRESSION: Z_NO_COMPRESSION,\n Z_BEST_SPEED: Z_BEST_SPEED,\n Z_BEST_COMPRESSION: Z_BEST_COMPRESSION,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION,\n Z_FILTERED: Z_FILTERED,\n Z_HUFFMAN_ONLY: Z_HUFFMAN_ONLY,\n Z_RLE: Z_RLE,\n Z_FIXED: Z_FIXED,\n Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY,\n Z_BINARY: Z_BINARY,\n Z_TEXT: Z_TEXT,\n Z_UNKNOWN: Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED,\n Zlib: Zlib$1\n});\n\n// Copyright Joyent, Inc. and other Node contributors.\nfunction assert (a, msg) {\n if (!a) {\n throw new Error(msg);\n }\n}\nvar binding = {};\nObject.keys(_binding).forEach(function (key) {\n binding[key] = _binding[key];\n});\n// zlib doesn't provide these, so kludge them in following the same\n// const naming scheme zlib uses.\nbinding.Z_MIN_WINDOWBITS = 8;\nbinding.Z_MAX_WINDOWBITS = 15;\nbinding.Z_DEFAULT_WINDOWBITS = 15;\n\n// fewer than 64 bytes per chunk is stupid.\n// technically it could work with as few as 8, but even 64 bytes\n// is absurdly low. Usually a MB or more is best.\nbinding.Z_MIN_CHUNK = 64;\nbinding.Z_MAX_CHUNK = Infinity;\nbinding.Z_DEFAULT_CHUNK = (16 * 1024);\n\nbinding.Z_MIN_MEMLEVEL = 1;\nbinding.Z_MAX_MEMLEVEL = 9;\nbinding.Z_DEFAULT_MEMLEVEL = 8;\n\nbinding.Z_MIN_LEVEL = -1;\nbinding.Z_MAX_LEVEL = 9;\nbinding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION;\n\n\n// translation table for return codes.\nvar codes = {\n Z_OK: binding.Z_OK,\n Z_STREAM_END: binding.Z_STREAM_END,\n Z_NEED_DICT: binding.Z_NEED_DICT,\n Z_ERRNO: binding.Z_ERRNO,\n Z_STREAM_ERROR: binding.Z_STREAM_ERROR,\n Z_DATA_ERROR: binding.Z_DATA_ERROR,\n Z_MEM_ERROR: binding.Z_MEM_ERROR,\n Z_BUF_ERROR: binding.Z_BUF_ERROR,\n Z_VERSION_ERROR: binding.Z_VERSION_ERROR\n};\n\nObject.keys(codes).forEach(function(k) {\n codes[codes[k]] = k;\n});\n\nfunction createDeflate(o) {\n return new Deflate(o);\n}\n\nfunction createInflate(o) {\n return new Inflate(o);\n}\n\nfunction createDeflateRaw(o) {\n return new DeflateRaw(o);\n}\n\nfunction createInflateRaw(o) {\n return new InflateRaw(o);\n}\n\nfunction createGzip(o) {\n return new Gzip(o);\n}\n\nfunction createGunzip(o) {\n return new Gunzip(o);\n}\n\nfunction createUnzip(o) {\n return new Unzip(o);\n}\n\n\n// Convenience methods.\n// compress/decompress a string or buffer in one step.\nfunction deflate(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Deflate(opts), buffer, callback);\n}\n\nfunction deflateSync(buffer, opts) {\n return zlibBufferSync(new Deflate(opts), buffer);\n}\n\nfunction gzip(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gzip(opts), buffer, callback);\n}\n\nfunction gzipSync(buffer, opts) {\n return zlibBufferSync(new Gzip(opts), buffer);\n}\n\nfunction deflateRaw(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n}\n\nfunction deflateRawSync(buffer, opts) {\n return zlibBufferSync(new DeflateRaw(opts), buffer);\n}\n\nfunction unzip(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Unzip(opts), buffer, callback);\n}\n\nfunction unzipSync(buffer, opts) {\n return zlibBufferSync(new Unzip(opts), buffer);\n}\n\nfunction inflate(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Inflate(opts), buffer, callback);\n}\n\nfunction inflateSync(buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n}\n\nfunction gunzip(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gunzip(opts), buffer, callback);\n}\n\nfunction gunzipSync(buffer, opts) {\n return zlibBufferSync(new Gunzip(opts), buffer);\n}\n\nfunction inflateRaw(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new InflateRaw(opts), buffer, callback);\n}\n\nfunction inflateRawSync(buffer, opts) {\n return zlibBufferSync(new InflateRaw(opts), buffer);\n}\n\nfunction zlibBuffer(engine, buffer, callback) {\n var buffers = [];\n var nread = 0;\n\n engine.on('error', onError);\n engine.on('end', onEnd);\n\n engine.end(buffer);\n flow();\n\n function flow() {\n var chunk;\n while (null !== (chunk = engine.read())) {\n buffers.push(chunk);\n nread += chunk.length;\n }\n engine.once('readable', flow);\n }\n\n function onError(err) {\n engine.removeListener('end', onEnd);\n engine.removeListener('readable', flow);\n callback(err);\n }\n\n function onEnd() {\n var buf = Buffer.concat(buffers, nread);\n buffers = [];\n callback(null, buf);\n engine.close();\n }\n}\n\nfunction zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string')\n buffer = new Buffer(buffer);\n if (!Buffer.isBuffer(buffer))\n throw new TypeError('Not a string or buffer');\n\n var flushFlag = binding.Z_FINISH;\n\n return engine._processChunk(buffer, flushFlag);\n}\n\n// generic zlib\n// minimal 2-byte header\nfunction Deflate(opts) {\n if (!(this instanceof Deflate)) return new Deflate(opts);\n Zlib.call(this, opts, binding.DEFLATE);\n}\n\nfunction Inflate(opts) {\n if (!(this instanceof Inflate)) return new Inflate(opts);\n Zlib.call(this, opts, binding.INFLATE);\n}\n\n\n\n// gzip - bigger header, same deflate compression\nfunction Gzip(opts) {\n if (!(this instanceof Gzip)) return new Gzip(opts);\n Zlib.call(this, opts, binding.GZIP);\n}\n\nfunction Gunzip(opts) {\n if (!(this instanceof Gunzip)) return new Gunzip(opts);\n Zlib.call(this, opts, binding.GUNZIP);\n}\n\n\n\n// raw - no header\nfunction DeflateRaw(opts) {\n if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n Zlib.call(this, opts, binding.DEFLATERAW);\n}\n\nfunction InflateRaw(opts) {\n if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n Zlib.call(this, opts, binding.INFLATERAW);\n}\n\n\n// auto-detect header.\nfunction Unzip(opts) {\n if (!(this instanceof Unzip)) return new Unzip(opts);\n Zlib.call(this, opts, binding.UNZIP);\n}\n\n\n// the Zlib class they all inherit from\n// This thing manages the queue of requests, and returns\n// true or false if there is anything in the queue when\n// you call the .write() method.\n\nfunction Zlib(opts, mode) {\n this._opts = opts = opts || {};\n this._chunkSize = opts.chunkSize || binding.Z_DEFAULT_CHUNK;\n\n Transform.call(this, opts);\n\n if (opts.flush) {\n if (opts.flush !== binding.Z_NO_FLUSH &&\n opts.flush !== binding.Z_PARTIAL_FLUSH &&\n opts.flush !== binding.Z_SYNC_FLUSH &&\n opts.flush !== binding.Z_FULL_FLUSH &&\n opts.flush !== binding.Z_FINISH &&\n opts.flush !== binding.Z_BLOCK) {\n throw new Error('Invalid flush flag: ' + opts.flush);\n }\n }\n this._flushFlag = opts.flush || binding.Z_NO_FLUSH;\n\n if (opts.chunkSize) {\n if (opts.chunkSize < binding.Z_MIN_CHUNK ||\n opts.chunkSize > binding.Z_MAX_CHUNK) {\n throw new Error('Invalid chunk size: ' + opts.chunkSize);\n }\n }\n\n if (opts.windowBits) {\n if (opts.windowBits < binding.Z_MIN_WINDOWBITS ||\n opts.windowBits > binding.Z_MAX_WINDOWBITS) {\n throw new Error('Invalid windowBits: ' + opts.windowBits);\n }\n }\n\n if (opts.level) {\n if (opts.level < binding.Z_MIN_LEVEL ||\n opts.level > binding.Z_MAX_LEVEL) {\n throw new Error('Invalid compression level: ' + opts.level);\n }\n }\n\n if (opts.memLevel) {\n if (opts.memLevel < binding.Z_MIN_MEMLEVEL ||\n opts.memLevel > binding.Z_MAX_MEMLEVEL) {\n throw new Error('Invalid memLevel: ' + opts.memLevel);\n }\n }\n\n if (opts.strategy) {\n if (opts.strategy != binding.Z_FILTERED &&\n opts.strategy != binding.Z_HUFFMAN_ONLY &&\n opts.strategy != binding.Z_RLE &&\n opts.strategy != binding.Z_FIXED &&\n opts.strategy != binding.Z_DEFAULT_STRATEGY) {\n throw new Error('Invalid strategy: ' + opts.strategy);\n }\n }\n\n if (opts.dictionary) {\n if (!Buffer.isBuffer(opts.dictionary)) {\n throw new Error('Invalid dictionary: it should be a Buffer instance');\n }\n }\n\n this._binding = new binding.Zlib(mode);\n\n var self = this;\n this._hadError = false;\n this._binding.onerror = function(message, errno) {\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n self._binding = null;\n self._hadError = true;\n\n var error = new Error(message);\n error.errno = errno;\n error.code = binding.codes[errno];\n self.emit('error', error);\n };\n\n var level = binding.Z_DEFAULT_COMPRESSION;\n if (typeof opts.level === 'number') level = opts.level;\n\n var strategy = binding.Z_DEFAULT_STRATEGY;\n if (typeof opts.strategy === 'number') strategy = opts.strategy;\n\n this._binding.init(opts.windowBits || binding.Z_DEFAULT_WINDOWBITS,\n level,\n opts.memLevel || binding.Z_DEFAULT_MEMLEVEL,\n strategy,\n opts.dictionary);\n\n this._buffer = new Buffer(this._chunkSize);\n this._offset = 0;\n this._closed = false;\n this._level = level;\n this._strategy = strategy;\n\n this.once('end', this.close);\n}\n\ninherits$1(Zlib, Transform);\n\nZlib.prototype.params = function(level, strategy, callback) {\n if (level < binding.Z_MIN_LEVEL ||\n level > binding.Z_MAX_LEVEL) {\n throw new RangeError('Invalid compression level: ' + level);\n }\n if (strategy != binding.Z_FILTERED &&\n strategy != binding.Z_HUFFMAN_ONLY &&\n strategy != binding.Z_RLE &&\n strategy != binding.Z_FIXED &&\n strategy != binding.Z_DEFAULT_STRATEGY) {\n throw new TypeError('Invalid strategy: ' + strategy);\n }\n\n if (this._level !== level || this._strategy !== strategy) {\n var self = this;\n this.flush(binding.Z_SYNC_FLUSH, function() {\n self._binding.params(level, strategy);\n if (!self._hadError) {\n self._level = level;\n self._strategy = strategy;\n if (callback) callback();\n }\n });\n } else {\n process.nextTick(callback);\n }\n};\n\nZlib.prototype.reset = function() {\n return this._binding.reset();\n};\n\n// This is the _flush function called by the transform class,\n// internally, when the last chunk has been written.\nZlib.prototype._flush = function(callback) {\n this._transform(new Buffer(0), '', callback);\n};\n\nZlib.prototype.flush = function(kind, callback) {\n var ws = this._writableState;\n\n if (typeof kind === 'function' || (kind === void 0 && !callback)) {\n callback = kind;\n kind = binding.Z_FULL_FLUSH;\n }\n\n if (ws.ended) {\n if (callback)\n process.nextTick(callback);\n } else if (ws.ending) {\n if (callback)\n this.once('end', callback);\n } else if (ws.needDrain) {\n var self = this;\n this.once('drain', function() {\n self.flush(callback);\n });\n } else {\n this._flushFlag = kind;\n this.write(new Buffer(0), '', callback);\n }\n};\n\nZlib.prototype.close = function(callback) {\n if (callback)\n process.nextTick(callback);\n\n if (this._closed)\n return;\n\n this._closed = true;\n\n this._binding.close();\n\n var self = this;\n process.nextTick(function() {\n self.emit('close');\n });\n};\n\nZlib.prototype._transform = function(chunk, encoding, cb) {\n var flushFlag;\n var ws = this._writableState;\n var ending = ws.ending || ws.ended;\n var last = ending && (!chunk || ws.length === chunk.length);\n\n if (!chunk === null && !Buffer.isBuffer(chunk))\n return cb(new Error('invalid input'));\n\n // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag.\n // If it's explicitly flushing at some other time, then we use\n // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n // goodness.\n if (last)\n flushFlag = binding.Z_FINISH;\n else {\n flushFlag = this._flushFlag;\n // once we've flushed the last of the queue, stop flushing and\n // go back to the normal behavior.\n if (chunk.length >= ws.length) {\n this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;\n }\n }\n\n this._processChunk(chunk, flushFlag, cb);\n};\n\nZlib.prototype._processChunk = function(chunk, flushFlag, cb) {\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var inOff = 0;\n\n var self = this;\n\n var async = typeof cb === 'function';\n\n if (!async) {\n var buffers = [];\n var nread = 0;\n\n var error;\n this.on('error', function(er) {\n error = er;\n });\n\n do {\n var res = this._binding.writeSync(flushFlag,\n chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n } while (!this._hadError && callback(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n var buf = Buffer.concat(buffers, nread);\n this.close();\n\n return buf;\n }\n\n var req = this._binding.write(flushFlag,\n chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n\n req.buffer = chunk;\n req.callback = callback;\n\n function callback(availInAfter, availOutAfter) {\n if (self._hadError)\n return;\n\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n // serve some output to the consumer.\n if (async) {\n self.push(out);\n } else {\n buffers.push(out);\n nread += out.length;\n }\n }\n\n // exhausted the output buffer, or used all the input create a new one.\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = new Buffer(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n // Not actually done. Need to reprocess.\n // Also, update the availInBefore to the availInAfter value,\n // so that if we have to hit it a third (fourth, etc.) time,\n // it'll have the correct byte counts.\n inOff += (availInBefore - availInAfter);\n availInBefore = availInAfter;\n\n if (!async)\n return true;\n\n var newReq = self._binding.write(flushFlag,\n chunk,\n inOff,\n availInBefore,\n self._buffer,\n self._offset,\n self._chunkSize);\n newReq.callback = callback; // this same function\n newReq.buffer = chunk;\n return;\n }\n\n if (!async)\n return false;\n\n // finished with the chunk.\n cb();\n }\n};\n\ninherits$1(Deflate, Zlib);\ninherits$1(Inflate, Zlib);\ninherits$1(Gzip, Zlib);\ninherits$1(Gunzip, Zlib);\ninherits$1(DeflateRaw, Zlib);\ninherits$1(InflateRaw, Zlib);\ninherits$1(Unzip, Zlib);\nvar zlib = {\n codes: codes,\n createDeflate: createDeflate,\n createInflate: createInflate,\n createDeflateRaw: createDeflateRaw,\n createInflateRaw: createInflateRaw,\n createGzip: createGzip,\n createGunzip: createGunzip,\n createUnzip: createUnzip,\n deflate: deflate,\n deflateSync: deflateSync,\n gzip: gzip,\n gzipSync: gzipSync,\n deflateRaw: deflateRaw,\n deflateRawSync: deflateRawSync,\n unzip: unzip,\n unzipSync: unzipSync,\n inflate: inflate,\n inflateSync: inflateSync,\n gunzip: gunzip,\n gunzipSync: gunzipSync,\n inflateRaw: inflateRaw,\n inflateRawSync: inflateRawSync,\n Deflate: Deflate,\n Inflate: Inflate,\n Gzip: Gzip,\n Gunzip: Gunzip,\n DeflateRaw: DeflateRaw,\n InflateRaw: InflateRaw,\n Unzip: Unzip,\n Zlib: Zlib\n};\n\nvar data = {\n \"version\": \"0.26.1\"\n};\n\nvar httpFollow = followRedirects.http;\nvar httpsFollow = followRedirects.https;\n\n\nvar VERSION$1 = data.version;\n\n\n\n\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nvar http_1 = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION$1;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = require$$3.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = require$$3.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : https;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional$1 = config.transitional || transitional;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = xhr$1;\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = http_1;\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitional,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults_1 = defaults;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nvar transformData = function transformData(data, headers, fns) {\n var context = this || defaults_1;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n\nvar isCancel = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel_1('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nvar dispatchRequest = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults_1.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nvar mergeConfig = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n\nvar VERSION = data.version;\n\nvar validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nvar validator = {\n assertOptions: assertOptions,\n validators: validators$1\n};\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_1(),\n response: new InterceptorManager_1()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nvar Axios_1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel_1(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nvar CancelToken_1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nvar spread = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nvar isAxiosError = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios_1(defaultConfig);\n var instance = bind(Axios_1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios_1.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios$1 = createInstance(defaults_1);\n\n// Expose Axios class to allow class inheritance\naxios$1.Axios = Axios_1;\n\n// Expose Cancel & CancelToken\naxios$1.Cancel = Cancel_1;\naxios$1.CancelToken = CancelToken_1;\naxios$1.isCancel = isCancel;\naxios$1.VERSION = data.version;\n\n// Expose all/spread\naxios$1.all = function all(promises) {\n return Promise.all(promises);\n};\naxios$1.spread = spread;\n\n// Expose isAxiosError\naxios$1.isAxiosError = isAxiosError;\n\nvar axios_1 = axios$1;\n\n// Allow use of default import syntax in TypeScript\nvar _default = axios$1;\naxios_1.default = _default;\n\nvar axios = axios_1;\n\n/*\nThe MIT License (MIT)\n\nCopyright (c) 2016 CoderPuppy\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n*/\nvar _endianness;\nfunction endianness() {\n if (typeof _endianness === 'undefined') {\n var a = new ArrayBuffer(2);\n var b = new Uint8Array(a);\n var c = new Uint16Array(a);\n b[0] = 1;\n b[1] = 2;\n if (c[0] === 258) {\n _endianness = 'BE';\n } else if (c[0] === 513){\n _endianness = 'LE';\n } else {\n throw new Error('unable to figure out endianess');\n }\n }\n return _endianness;\n}\n\nfunction hostname() {\n if (typeof global.location !== 'undefined') {\n return global.location.hostname\n } else return '';\n}\n\nfunction loadavg() {\n return [];\n}\n\nfunction uptime() {\n return 0;\n}\n\nfunction freemem() {\n return Number.MAX_VALUE;\n}\n\nfunction totalmem() {\n return Number.MAX_VALUE;\n}\n\nfunction cpus() {\n return [];\n}\n\nfunction type() {\n return 'Browser';\n}\n\nfunction release () {\n if (typeof global.navigator !== 'undefined') {\n return global.navigator.appVersion;\n }\n return '';\n}\n\nfunction networkInterfaces(){}\nfunction getNetworkInterfaces(){}\n\nfunction tmpDir() {\n return '/tmp';\n}\nvar tmpdir = tmpDir;\n\nvar EOL = '\\n';\nvar require$$2 = {\n EOL: EOL,\n tmpdir: tmpdir,\n tmpDir: tmpDir,\n networkInterfaces:networkInterfaces,\n getNetworkInterfaces: getNetworkInterfaces,\n release: release,\n type: type,\n cpus: cpus,\n totalmem: totalmem,\n freemem: freemem,\n uptime: uptime,\n loadavg: loadavg,\n hostname: hostname,\n endianness: endianness,\n};\n\ncreateCommonjsModule(function (module) {\n// Generated by CoffeeScript 2.5.1\n(function() {\n // This file's name is set up in such a way that it will always show up first in\n // the list of files given to coffee --join, so that the other files can assume\n // that XMLHttpRequestEventTarget was already defined.\n\n // The DOM EventTarget subclass used by XMLHttpRequest.\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n var InvalidStateError, NetworkError, ProgressEvent, SecurityError, SyntaxError, XMLHttpRequest, XMLHttpRequestEventTarget, XMLHttpRequestUpload, http, https$1, os, url;\n\n XMLHttpRequestEventTarget = (function() {\n class XMLHttpRequestEventTarget {\n // @private\n // This is an abstract class and should not be instantiated directly.\n constructor() {\n this.onloadstart = null;\n this.onprogress = null;\n this.onabort = null;\n this.onerror = null;\n this.onload = null;\n this.ontimeout = null;\n this.onloadend = null;\n this._listeners = {};\n }\n\n // Adds a new-style listener for one of the XHR events.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#events\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener function that will be called when\n // the event fires\n // @return {undefined} undefined\n addEventListener(eventType, listener) {\n var base;\n eventType = eventType.toLowerCase();\n (base = this._listeners)[eventType] || (base[eventType] = []);\n this._listeners[eventType].push(listener);\n return void 0;\n }\n\n // Removes an event listener added by calling addEventListener.\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener the value passed in a previous\n // call to addEventListener.\n // @return {undefined} undefined\n removeEventListener(eventType, listener) {\n var index;\n eventType = eventType.toLowerCase();\n if (this._listeners[eventType]) {\n index = this._listeners[eventType].indexOf(listener);\n if (index !== -1) {\n this._listeners[eventType].splice(index, 1);\n }\n }\n return void 0;\n }\n\n // Calls all the listeners for an event.\n\n // @param {ProgressEvent} event the event to be dispatched\n // @return {undefined} undefined\n dispatchEvent(event) {\n var eventType, j, len, listener, listeners;\n event.currentTarget = event.target = this;\n eventType = event.type;\n if (listeners = this._listeners[eventType]) {\n for (j = 0, len = listeners.length; j < len; j++) {\n listener = listeners[j];\n listener.call(this, event);\n }\n }\n if (listener = this[`on${eventType}`]) {\n listener.call(this, event);\n }\n return void 0;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadstart' event\n XMLHttpRequestEventTarget.prototype.onloadstart = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'progress' event\n XMLHttpRequestEventTarget.prototype.onprogress = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'abort' event\n XMLHttpRequestEventTarget.prototype.onabort = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'error' event\n XMLHttpRequestEventTarget.prototype.onerror = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'load' event\n XMLHttpRequestEventTarget.prototype.onload = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'timeout' event\n XMLHttpRequestEventTarget.prototype.ontimeout = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadend' event\n XMLHttpRequestEventTarget.prototype.onloadend = null;\n\n return XMLHttpRequestEventTarget;\n\n }).call(this);\n\n // This file's name is set up in such a way that it will always show up second\n // in the list of files given to coffee --join, so it can use the\n // XMLHttpRequestEventTarget definition and so that the other files can assume\n // that XMLHttpRequest was already defined.\n http = https;\n\n https$1 = https;\n\n os = require$$2;\n\n url = require$$3;\n\n XMLHttpRequest = (function() {\n // The ECMAScript HTTP API.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#introduction\n class XMLHttpRequest extends XMLHttpRequestEventTarget {\n // Creates a new request.\n\n // @param {Object} options one or more of the options below\n // @option options {Boolean} anon if true, the request's anonymous flag\n // will be set\n // @see http://www.w3.org/TR/XMLHttpRequest/#constructors\n // @see http://www.w3.org/TR/XMLHttpRequest/#anonymous-flag\n constructor(options) {\n super();\n this.onreadystatechange = null;\n this._anonymous = options && options.anon;\n this.readyState = XMLHttpRequest.UNSENT;\n this.response = null;\n this.responseText = '';\n this.responseType = '';\n this.responseURL = '';\n this.status = 0;\n this.statusText = '';\n this.timeout = 0;\n this.upload = new XMLHttpRequestUpload(this);\n this._method = null; // String\n this._url = null; // Return value of url.parse()\n this._sync = false;\n this._headers = null; // Object\n this._loweredHeaders = null; // Object\n this._mimeOverride = null;\n this._request = null; // http.ClientRequest\n this._response = null; // http.ClientResponse\n this._responseParts = null; // Array\n this._responseHeaders = null; // Object\n this._aborting = null;\n this._error = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n }\n\n // Sets the XHR's method, URL, synchronous flag, and authentication params.\n\n // @param {String} method the HTTP method to be used\n // @param {String} url the URL that the request will be made to\n // @param {?Boolean} async if false, the XHR should be processed\n // synchronously; true by default\n // @param {?String} user the user credential to be used in HTTP basic\n // authentication\n // @param {?String} password the password credential to be used in HTTP basic\n // authentication\n // @return {undefined} undefined\n // @throw {SecurityError} method is not one of the allowed methods\n // @throw {SyntaxError} urlString is not a valid URL\n // @throw {Error} the URL contains an unsupported protocol; the supported\n // protocols are file, http and https\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n open(method, url, async, user, password) {\n var xhrUrl;\n method = method.toUpperCase();\n if (method in this._restrictedMethods) {\n throw new SecurityError(`HTTP method ${method} is not allowed in XHR`);\n }\n xhrUrl = this._parseUrl(url);\n if (async === void 0) {\n async = true;\n }\n switch (this.readyState) {\n case XMLHttpRequest.UNSENT:\n case XMLHttpRequest.OPENED:\n case XMLHttpRequest.DONE:\n break;\n case XMLHttpRequest.HEADERS_RECEIVED:\n case XMLHttpRequest.LOADING:\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n return void 0;\n }\n\n // Appends a header to the list of author request headers.\n\n // @param {String} name the HTTP header name\n // @param {String} value the HTTP header value\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @throw {SyntaxError} name is not a valid HTTP header name or value is not\n // a valid HTTP header value\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n setRequestHeader(name, value) {\n var loweredName;\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec\\-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(`Refused to set unsafe header \\\"${name}\\\"`);\n return void 0;\n }\n value = value.toString();\n if (loweredName in this._loweredHeaders) {\n // Combine value with the existing header value.\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + ', ' + value;\n } else {\n // New header.\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n return void 0;\n }\n\n // Initiates the request.\n\n // @param {?String, ?ArrayBufferView} data the data to be sent; ignored for\n // GET and HEAD requests\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n send(data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n if (this._request) {\n throw new InvalidStateError(\"send() already called\");\n }\n switch (this._url.protocol) {\n case 'file:':\n this._sendFile(data);\n break;\n case 'http:':\n case 'https:':\n this._sendHttp(data);\n break;\n default:\n throw new NetworkError(`Unsupported protocol ${this._url.protocol}`);\n }\n return void 0;\n }\n\n // Cancels the network activity performed by this request.\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method\n abort() {\n if (!this._request) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n return void 0;\n }\n\n // Returns a header value in the HTTP response for this XHR.\n\n // @param {String} name case-insensitive HTTP header name\n // @return {?String} value the value of the header whose name matches the\n // given name, or null if there is no such header\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n getResponseHeader(name) {\n var loweredName;\n if (!this._responseHeaders) {\n return null;\n }\n loweredName = name.toLowerCase();\n if (loweredName in this._responseHeaders) {\n return this._responseHeaders[loweredName];\n } else {\n return null;\n }\n }\n\n // Returns all the HTTP headers in this XHR's response.\n\n // @return {String} header lines separated by CR LF, where each header line\n // has the name and value separated by a \": \" (colon, space); the empty\n // string is returned if the headers are not available\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n getAllResponseHeaders() {\n var lines, name, value;\n if (!this._responseHeaders) {\n return '';\n }\n lines = (function() {\n var ref, results;\n ref = this._responseHeaders;\n results = [];\n for (name in ref) {\n value = ref[name];\n results.push(`${name}: ${value}`);\n }\n return results;\n }).call(this);\n return lines.join(\"\\r\\n\");\n }\n\n // Overrides the Content-Type\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-overridemimetype()-method\n overrideMimeType(newMimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new InvalidStateError(\"overrideMimeType() not allowed in LOADING or DONE\");\n }\n this._mimeOverride = newMimeType.toLowerCase();\n return void 0;\n }\n\n // Network configuration not exposed in the XHR API.\n\n // Although the XMLHttpRequest specification calls itself \"ECMAScript HTTP\",\n // it assumes that requests are always performed in the context of a browser\n // application, where some network parameters are set by the browser user and\n // should not be modified by Web applications. This API provides access to\n // these network parameters.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the value for the nodejsHttpAgent\n // property (the agent used for HTTP requests)\n // @option options {?https.Agent} httpsAgent the value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n nodejsSet(options) {\n var baseUrl, parsedUrl;\n if ('httpAgent' in options) {\n this.nodejsHttpAgent = options.httpAgent;\n }\n if ('httpsAgent' in options) {\n this.nodejsHttpsAgent = options.httpsAgent;\n }\n if ('baseUrl' in options) {\n baseUrl = options.baseUrl;\n if (baseUrl !== null) {\n parsedUrl = url.parse(baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = baseUrl;\n }\n return void 0;\n }\n\n // Default settings for the network configuration not exposed in the XHR API.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the default value for the\n // nodejsHttpAgent property (the agent used for HTTP requests)\n // @option options {https.Agent} httpsAgent the default value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n // @see XMLHttpRequest.nodejsSet\n static nodejsSet(options) {\n // \"this\" will be set to XMLHttpRequest.prototype, so the instance nodejsSet\n // operates on default property values.\n XMLHttpRequest.prototype.nodejsSet(options);\n return void 0;\n }\n\n // Sets the readyState property and fires the readystatechange event.\n\n // @private\n // @param {Number} newReadyState the new value of readyState\n // @return {undefined} undefined\n _setReadyState(newReadyState) {\n var event;\n this.readyState = newReadyState;\n event = new ProgressEvent('readystatechange');\n this.dispatchEvent(event);\n return void 0;\n }\n\n // XMLHttpRequest#send() implementation for the file: protocol.\n\n // @private\n _sendFile() {\n if (this._url.method !== 'GET') {\n throw new NetworkError('The file protocol only supports GET');\n }\n throw new Error(\"Protocol file: not implemented\");\n }\n\n // XMLHttpRequest#send() implementation for the http: and https: protocols.\n\n // @private\n // This method sets the instance variables and calls _sendHxxpRequest(), which\n // is responsible for building a node.js request and firing it off. The code\n // in _sendHxxpRequest() is separated off so it can be reused when handling\n // redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHttp(data) {\n if (this._sync) {\n throw new Error(\"Synchronous XHR processing not implemented\");\n }\n if ((data != null) && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(`Discarding entity body for ${this._method} requests`);\n data = null;\n } else {\n // Send Content-Length: 0\n data || (data = '');\n }\n // NOTE: this is called before finalizeHeaders so that the uploader can\n // figure out Content-Length and Content-Type.\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return void 0;\n }\n\n // Sets up and fires off a HTTP/HTTPS request using the node.js API.\n\n // @private\n // This method contains the bulk of the XMLHttpRequest#send() implementation,\n // and is also used to issue new HTTP requests when handling HTTP redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHxxpRequest() {\n var agent, hxxp, request;\n if (this._url.protocol === 'http:') {\n hxxp = http;\n agent = this.nodejsHttpAgent;\n } else {\n hxxp = https$1;\n agent = this.nodejsHttpsAgent;\n }\n request = hxxp.request({\n hostname: this._url.hostname,\n port: this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, () => {\n return this._onHttpTimeout(request);\n });\n }\n request.on('response', (response) => {\n return this._onHttpResponse(request, response);\n });\n request.on('error', (error) => {\n return this._onHttpRequestError(request, error);\n });\n this.upload._startUpload(request);\n if (this._request === request) { // An http error might have already fired.\n this._dispatchProgress('loadstart');\n }\n return void 0;\n }\n\n // Fills in the restricted HTTP headers with default values.\n\n // This is called right before the HTTP request is sent off.\n\n // @private\n // @return {undefined} undefined\n _finalizeHeaders() {\n var base;\n this._headers['Connection'] = 'keep-alive';\n this._headers['Host'] = this._url.host;\n if (this._anonymous) {\n this._headers['Referer'] = 'about:blank';\n }\n (base = this._headers)['User-Agent'] || (base['User-Agent'] = this._userAgent);\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n return void 0;\n }\n\n // Called when the headers of an HTTP response have been received.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // produced this response\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // passed to\n _onHttpResponse(request, response) {\n var lengthString;\n if (this._request !== request) {\n return;\n }\n // Transparent redirection handling.\n switch (response.statusCode) {\n case 301:\n case 302:\n case 303:\n case 307:\n case 308:\n this._url = this._parseUrl(response.headers['location']);\n this._method = 'GET';\n if ('content-type' in this._loweredHeaders) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n // XMLHttpRequestUpload#_finalizeHeaders() sets Content-Type directly.\n if ('Content-Type' in this._headers) {\n delete this._headers['Content-Type'];\n }\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', (data) => {\n return this._onHttpResponseData(response, data);\n });\n this._response.on('end', () => {\n return this._onHttpResponseEnd(response);\n });\n this._response.on('close', () => {\n return this._onHttpResponseClose(response);\n });\n this.responseURL = this._url.href.split('#')[0];\n this.status = this._response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n if (lengthString = this._responseHeaders['content-length']) {\n this._totalBytes = parseInt(lengthString);\n this._lengthComputable = true;\n } else {\n this._lengthComputable = false;\n }\n return this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n }\n\n // Called when some data has been received on a HTTP connection.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n // @param {String, Buffer} data the data that has been received\n _onHttpResponseData(response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(data);\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n return this._dispatchProgress('progress');\n }\n\n // Called when the HTTP request finished processing.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseEnd(response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the underlying HTTP connection was closed prematurely.\n\n // If this method is called, it will be called after or instead of\n // onHttpResponseEnd.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseClose(response) {\n var request;\n if (this._response !== response) {\n return;\n }\n request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the timeout set on the HTTP socket expires.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n _onHttpTimeout(request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n return this._dispatchProgress('loadend');\n }\n\n // Called when something wrong happens on the HTTP socket\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n // @param {Error} error emitted exception\n _onHttpRequestError(request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Fires an XHR progress event.\n\n // @private\n // @param {String} eventType one of the XHR progress event types, such as\n // 'load' and 'progress'\n _dispatchProgress(eventType) {\n var event;\n event = new ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n return void 0;\n }\n\n // Sets up the XHR to reflect the fact that an error has occurred.\n\n // The possible errors are a network error, a timeout, or an abort.\n\n // @private\n _setError() {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n return void 0;\n }\n\n // Parses a request URL string.\n\n // @private\n // This method is a thin wrapper around url.parse() that normalizes HTTP\n // user/password credentials. It is used to parse the URL string passed to\n // XMLHttpRequest#open() and the URLs in the Location headers of HTTP redirect\n // responses.\n\n // @param {String} urlString the URL to be parsed\n // @return {Object} parsed URL\n _parseUrl(urlString) {\n var absoluteUrlString, index, password, user, xhrUrl;\n if (this.nodejsBaseUrl === null) {\n absoluteUrlString = urlString;\n } else {\n absoluteUrlString = url.resolve(this.nodejsBaseUrl, urlString);\n }\n xhrUrl = url.parse(absoluteUrlString, false, true);\n xhrUrl.hash = null;\n if (xhrUrl.auth && ((typeof user !== \"undefined\" && user !== null) || (typeof password !== \"undefined\" && password !== null))) {\n index = xhrUrl.auth.indexOf(':');\n if (index === -1) {\n if (!user) {\n user = xhrUrl.auth;\n }\n } else {\n if (!user) {\n user = xhrUrl.substring(0, index);\n }\n if (!password) {\n password = xhrUrl.substring(index + 1);\n }\n }\n }\n if (user || password) {\n xhrUrl.auth = `${user}:${password}`;\n }\n return xhrUrl;\n }\n\n // Reads the headers from a node.js ClientResponse instance.\n\n // @private\n // @param {http.ClientResponse} response the response whose headers will be\n // imported into this XMLHttpRequest's state\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n _parseResponseHeaders(response) {\n var loweredName, name, ref, value;\n this._responseHeaders = {};\n ref = response.headers;\n for (name in ref) {\n value = ref[name];\n loweredName = name.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n if (this._mimeOverride !== null && loweredName === 'content-type') {\n value = this._mimeOverride;\n }\n this._responseHeaders[loweredName] = value;\n }\n if (this._mimeOverride !== null && !('content-type' in this._responseHeaders)) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n return void 0;\n }\n\n // Sets the response and responseText properties when an XHR completes.\n\n // @private\n // @return {undefined} undefined\n _parseResponse() {\n var arrayBuffer, buffer, i, j, ref, view;\n if (Buffer.concat) {\n buffer = Buffer.concat(this._responseParts);\n } else {\n // node 0.6\n buffer = this._concatBuffers(this._responseParts);\n }\n this._responseParts = null;\n switch (this.responseType) {\n case 'text':\n this._parseTextResponse(buffer);\n break;\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n } catch (error1) {\n this.response = null;\n }\n break;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n break;\n case 'arraybuffer':\n this.responseText = null;\n arrayBuffer = new ArrayBuffer(buffer.length);\n view = new Uint8Array(arrayBuffer);\n for (i = j = 0, ref = buffer.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n break;\n default:\n // TODO(pwnall): content-base detection\n this._parseTextResponse(buffer);\n }\n return void 0;\n }\n\n // Sets response and responseText for a 'text' response type.\n\n // @private\n // @param {Buffer} buffer the node.js Buffer containing the binary response\n // @return {undefined} undefined\n _parseTextResponse(buffer) {\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n } catch (error1) {\n // Unknown encoding.\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n return void 0;\n }\n\n // Figures out the string encoding of the XHR's response.\n\n // This is called to determine the encoding when responseText is set.\n\n // @private\n // @return {String} a string encoding, e.g. 'utf-8'\n _parseResponseEncoding() {\n var contentType, match;\n if (contentType = this._responseHeaders['content-type']) {\n if (match = /\\;\\s*charset\\=(.*)$/.exec(contentType)) {\n return match[1];\n }\n }\n return 'utf-8';\n }\n\n // Buffer.concat implementation for node 0.6.\n\n // @private\n // @param {Array} buffers the buffers whose contents will be merged\n // @return {Buffer} same as Buffer.concat(buffers) in node 0.8 and above\n _concatBuffers(buffers) {\n var buffer, j, k, len, len1, length, target;\n if (buffers.length === 0) {\n return Buffer.alloc(0);\n }\n if (buffers.length === 1) {\n return buffers[0];\n }\n length = 0;\n for (j = 0, len = buffers.length; j < len; j++) {\n buffer = buffers[j];\n length += buffer.length;\n }\n target = Buffer.alloc(length);\n length = 0;\n for (k = 0, len1 = buffers.length; k < len1; k++) {\n buffer = buffers[k];\n buffer.copy(target, length);\n length += buffer.length;\n }\n return target;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler for the\n // 'readystatechange' event\n XMLHttpRequest.prototype.onreadystatechange = null;\n\n // @property {Number} the current state of the XHR object\n // @see http://www.w3.org/TR/XMLHttpRequest/#states\n XMLHttpRequest.prototype.readyState = null;\n\n // @property {String, ArrayBuffer, Buffer, Object} processed XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-response-attribute\n XMLHttpRequest.prototype.response = null;\n\n // @property {String} response string, if responseType is '' or 'text'\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute\n XMLHttpRequest.prototype.responseText = null;\n\n // @property {String} sets the parsing method for the XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetype-attribute\n XMLHttpRequest.prototype.responseType = null;\n\n // @property {Number} the HTTP\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute\n XMLHttpRequest.prototype.status = null;\n\n // @property {Number} milliseconds to wait for the request to complete\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute\n XMLHttpRequest.prototype.timeout = null;\n\n // @property {XMLHttpRequestUpload} the associated upload information\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute\n XMLHttpRequest.prototype.upload = null;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.prototype.UNSENT = 0;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.UNSENT = 0;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.prototype.OPENED = 1;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.OPENED = 1;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.prototype.HEADERS_RECEIVED = 2;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.prototype.LOADING = 3;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.LOADING = 3;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.prototype.DONE = 4;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.DONE = 4;\n\n // @property {http.Agent} the agent option passed to HTTP requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\n\n // @property {https.Agent} the agent option passed to HTTPS requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpsAgent = https$1.globalAgent;\n\n // @property {String} the base URL that relative URLs get resolved to\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // Its browser equivalent is the base URL of the document associated with the\n // Window object. It is a stable node-xhr2 API provided for libraries such as\n // Angular Universal.\n XMLHttpRequest.prototype.nodejsBaseUrl = null;\n\n // HTTP methods that are disallowed in the XHR spec.\n\n // @private\n // @see Step 6 in http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n XMLHttpRequest.prototype._restrictedMethods = {\n CONNECT: true,\n TRACE: true,\n TRACK: true\n };\n\n // HTTP request headers that are disallowed in the XHR spec.\n\n // @private\n // @see Step 5 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n XMLHttpRequest.prototype._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true\n };\n\n // HTTP response headers that should not be exposed according to the XHR spec.\n\n // @private\n // @see Step 3 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n XMLHttpRequest.prototype._privateHeaders = {\n 'set-cookie': true,\n 'set-cookie2': true\n };\n\n // The default value of the User-Agent header.\n XMLHttpRequest.prototype._userAgent = `Mozilla/5.0 (${os.type()} ${os.arch()}) ` + `node.js/${process.versions.node} v8/${process.versions.v8}`;\n\n return XMLHttpRequest;\n\n }).call(this);\n\n // XMLHttpRequest is the result of require('node-xhr2').\n module.exports = XMLHttpRequest;\n\n // Make node-xhr2 work as a drop-in replacement for libraries that promote the\n // following usage pattern:\n // var XMLHttpRequest = require('xhr-library-name').XMLHttpRequest\n XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;\n\n // This file defines the custom errors used in the XMLHttpRequest specification.\n\n // Thrown if the XHR security policy is violated.\n SecurityError = class SecurityError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if the XHR security policy is violated.\n XMLHttpRequest.SecurityError = SecurityError;\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {};\n\n XMLHttpRequest.InvalidStateError = InvalidStateError;\n\n // Thrown if there is a problem with the URL passed to the XHR.\n NetworkError = class NetworkError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if parsing URLs errors out.\n XMLHttpRequest.SyntaxError = SyntaxError;\n\n SyntaxError = class SyntaxError extends Error {\n // @private:\n constructor() {\n super();\n }\n\n };\n\n ProgressEvent = (function() {\n // http://xhr.spec.whatwg.org/#interface-progressevent\n class ProgressEvent {\n // Creates a new event.\n\n // @param {String} type the event type, e.g. 'readystatechange'; must be\n // lowercased\n constructor(type) {\n this.type = type;\n this.target = null;\n this.currentTarget = null;\n this.lengthComputable = false;\n this.loaded = 0;\n this.total = 0;\n }\n\n }\n // Getting the time from the OS is expensive, skip on that for now.\n // @timeStamp = Date.now()\n\n // @property {Boolean} for compatibility with DOM events\n ProgressEvent.prototype.bubbles = false;\n\n // @property {Boolean} for fompatibility with DOM events\n ProgressEvent.prototype.cancelable = false;\n\n // @property {XMLHttpRequest} the request that caused this event\n ProgressEvent.prototype.target = null;\n\n // @property {Number} number of bytes that have already been downloaded or\n // uploaded\n ProgressEvent.prototype.loaded = null;\n\n // @property {Boolean} true if the Content-Length response header is available\n // and the value of the event's total property is meaningful\n ProgressEvent.prototype.lengthComputable = null;\n\n // @property {Number} number of bytes that will be downloaded or uploaded by\n // the request that fired the event\n ProgressEvent.prototype.total = null;\n\n return ProgressEvent;\n\n }).call(this);\n\n // The XHR spec exports the ProgressEvent constructor.\n XMLHttpRequest.ProgressEvent = ProgressEvent;\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n XMLHttpRequestUpload = class XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n // @private\n // @param {XMLHttpRequest} the XMLHttpRequest that this upload object is\n // associated with\n constructor(request) {\n super();\n this._request = request;\n this._reset();\n }\n\n // Sets up this Upload to handle a new request.\n\n // @private\n // @return {undefined} undefined\n _reset() {\n this._contentType = null;\n this._body = null;\n return void 0;\n }\n\n // Implements the upload-related part of the send() XHR specification.\n\n // @private\n // @param {?String, ?Buffer, ?ArrayBufferView} data the argument passed to\n // XMLHttpRequest#send()\n // @return {undefined} undefined\n // @see step 4 of http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n _setData(data) {\n var body, i, j, k, offset, ref, ref1, view;\n if (typeof data === 'undefined' || data === null) {\n return;\n }\n if (typeof data === 'string') {\n // DOMString\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = Buffer.from(data, 'utf8');\n } else if (Buffer.isBuffer(data)) {\n // node.js Buffer\n this._body = data;\n } else if (data instanceof ArrayBuffer) {\n // ArrayBuffer arguments were supported in an old revision of the spec.\n body = Buffer.alloc(data.byteLength);\n view = new Uint8Array(data);\n for (i = j = 0, ref = data.byteLength; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n body[i] = view[i];\n }\n this._body = body;\n } else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n // ArrayBufferView\n body = Buffer.alloc(data.byteLength);\n offset = data.byteOffset;\n view = new Uint8Array(data.buffer);\n for (i = k = 0, ref1 = data.byteLength; (0 <= ref1 ? k < ref1 : k > ref1); i = 0 <= ref1 ? ++k : --k) {\n body[i] = view[i + offset];\n }\n this._body = body;\n } else {\n // NOTE: diverging from the XHR specification of coercing everything else\n // to Strings via toString() because that behavior masks bugs and is\n // rarely useful\n throw new Error(`Unsupported send() data ${data}`);\n }\n return void 0;\n }\n\n // Updates the HTTP headers right before the request is sent.\n\n // This is used to set data-dependent headers such as Content-Length and\n // Content-Type.\n\n // @private\n // @param {Object} headers the HTTP headers to be sent\n // @param {Object} loweredHeaders maps lowercased HTTP header\n // names (e.g., 'content-type') to the actual names used in the headers\n // parameter (e.g., 'Content-Type')\n // @return {undefined} undefined\n _finalizeHeaders(headers, loweredHeaders) {\n if (this._contentType) {\n if (!('content-type' in loweredHeaders)) {\n headers['Content-Type'] = this._contentType;\n }\n }\n if (this._body) {\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n headers['Content-Length'] = this._body.length.toString();\n }\n return void 0;\n }\n\n // Starts sending the HTTP request data.\n\n // @private\n // @param {http.ClientRequest} request the HTTP request\n // @return {undefined} undefined\n _startUpload(request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n return void 0;\n }\n\n };\n\n // Export the XMLHttpRequestUpload constructor.\n XMLHttpRequest.XMLHttpRequestUpload = XMLHttpRequestUpload;\n\n}).call(commonjsGlobal);\n});\n\nclass LangAdapter {\n constructor(context) {\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw (e);\n }\n let languageSource;\n try {\n const getLanguageSource = await axios.get(presignedUrl);\n languageSource = getLanguageSource.data;\n }\n catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw (e);\n }\n return languageSource;\n }\n}\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CloudflarePutAdapter_agent, _CloudflarePutAdapter_IPFS;\nclass CloudflarePutAdapter {\n constructor(context) {\n _CloudflarePutAdapter_agent.set(this, void 0);\n _CloudflarePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet(this, _CloudflarePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet(this, _CloudflarePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n // @ts-ignore\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet(this, _CloudflarePutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n //Build the key value object for the meta object\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n // Content of the new object.\n value: JSON.stringify(expression),\n };\n //Save the meta information to the KV store\n const httpsAgent = new https.Agent({\n rejectUnauthorized: false\n });\n const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent });\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n //Build the key value object for the language bundle\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString(),\n };\n //Save the language bundle to the KV store\n const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent });\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n}\n_CloudflarePutAdapter_agent = new WeakMap(), _CloudflarePutAdapter_IPFS = new WeakMap();\n\nclass Adapter {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axios.get(presignedUrl);\n metaObject = getMetaObject.data;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\n\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexport { PROXY_URL, create as default, name };\n" + "languageLanguageBundle":"const t=function(...t){let s;return s=\"object\"==typeof t[0]?t[0]:[].slice.call(t),e(s)},e=t=>{const e=[];if(0===t.length)return\"\";if(\"string\"!=typeof t[0])throw new TypeError(\"Url must be a string. Received \"+t[0]);if(t[0].match(/^[^/:]+:\\/*$/)&&t.length>1){const e=t.shift();t[0]=e+t[0]}t[0].match(/^file:\\/\\/\\//)?t[0]=t[0].replace(/^([^/:]+):\\/*/,\"$1:///\"):t[0]=t[0].replace(/^([^/:]+):\\/*/,\"$1://\");for(let s=0;s0&&(r=r.replace(/^[\\/]+/,\"\")),r=s0?\"?\":\"\")+r.join(\"&\"),s},s=[\"get\",\"post\",\"put\",\"delete\",\"options\",\"head\",\"connect\",\"trace\",\"patch\"];function r(t,e){return\"string\"==typeof t?r.request(Object.assign({},r.defaults,{url:t},e)):r.request(Object.assign({},r.defaults,t))}async function a(e){if(this.interceptors.request.list.length>0)for(const t of this.interceptors.request.list)if(t){const{fulfilled:s}=t;s&&e&&(e=await s(e))}let{url:r=\"/\",baseURL:a,method:n,headers:o,params:i={},data:l,timeout:u,withCredentials:c,auth:d,validateStatus:g,paramsSerializer:h,transformRequest:p,transformResponse:f,redirect:m,responseType:b=\"json\"}=e;if(a&&(r=t(a,r)),n){if(-1===s.indexOf(n.toLowerCase().trim()))throw new Error(`Method ${n} is not supported`);n=n.toLowerCase().trim()}else n=\"get\";let j=\"\";i&&(j=h?h(i):Object.keys(i).map((t=>encodeURIComponent(t)+\"=\"+encodeURIComponent(i[t]))).join(\"&\")),c&&d?.username&&d?.password&&(o||(o={}),o.Authorization=\"Basic \"+btoa(unescape(encodeURIComponent(`${d.username}:${d.password}`))));const w={};if(\"get\"!==n&&(w.method=n.toUpperCase()),j&&(r=t(r,`?${j}`)),l&&\"get\"!==n){if(p&&Array.isArray(p)&&p.length>0)for(var y=0;y<(p||[]).length;y++)p&&p[y]&&(l=p[y](l,o));if(\"string\"==typeof l||l instanceof FormData||l instanceof URLSearchParams)w.body=l;else try{w.body=JSON.stringify(l),o||(o={}),o.Accept=\"application/json\",o[\"Content-Type\"]=\"application/json\"}catch(t){}}if(o){const t=new Headers;Object.keys(o).forEach((e=>{o&&o[e]&&t.set(e,o[e])})),w.headers=t}const q=new AbortController;w.signal=q.signal;let O=0;return(u||0)>0&&(O=setTimeout((()=>{O=0,q.abort()}),u)),m&&(w.redirect=m),fetch(r,w).then((async t=>{O&&clearTimeout(O);const e=t.status,s=t.statusText;let p=null;try{const e=t.clone();p=\"json\"===b?await e.json():\"text\"===b?await e.text():\"arraybuffer\"===b?await e.arrayBuffer():\"blob\"===b?await e.blob():\"stream\"===b?(await e.blob()).stream():await e.text()}catch(e){p=await t.clone().text()}if(f&&f&&Array.isArray(f)&&f.length>0)for(var j=0;j<(f||[]).length;j++)f&&f[j]&&(p=f[j](p));const w=t.headers,y={url:r,baseURL:a,method:n,headers:o,params:i,data:l,timeout:u,withCredentials:c,auth:d,paramsSerializer:h,redirect:m,responseType:b};let q=!0;q=g?g(e):e>=200&&e<=303;let $=null,S=null;if(q?$={status:e,statusText:s,data:p,headers:w,config:y}:S={response:{status:e,statusText:s,data:p,headers:w},config:y},this.interceptors.response.list.length>0)for(const t of this.interceptors.response.list)if(t){const{fulfilled:e,rejected:s}=t;e&&$&&($=await e($)),s&&S&&(S=await s(S))}return S?Promise.reject(S):Promise.resolve($)}))}r.defaults={url:\"/\",method:\"get\",timeout:0,withCredentials:!1,validateStatus:t=>t>=200&&t<300},r.create=t=>{const e=r.bind({});return e.defaults=Object.assign({},r.defaults,t),e._request=a,e.request=t=>e._request(Object.assign({},e.defaults,t)),e.get=(t,s)=>e.request(Object.assign({},{url:t},s,{method:\"get\"})),e.post=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"post\",data:s})),e.put=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"put\",data:s})),e.delete=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"delete\",data:s})),e.options=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"options\",data:s})),e.head=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"head\",data:s})),e.connect=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"connect\",data:s})),e.trace=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"trace\",data:s})),e.patch=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"patch\",data:s})),e.interceptors={request:{list:[],use:function(t,e){const s=this.list.length;return this.list.push({fulfilled:t,rejected:e}),s},eject:function(t){this.list[t]&&(this.list[t]=null)}},response:{list:[],use:function(t,e){const s=this.list.length;return this.list.push({fulfilled:t,rejected:e}),s},eject:function(t){this.list[t]&&(this.list[t]=null)}}},e.interceptors.request.list=[],e.interceptors.response.list=[],e},r._request=a,r.request=a,r.get=(t,e)=>r.request(Object.assign({},{url:t},e,{method:\"get\"})),r.post=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"post\",data:e})),r.put=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"put\",data:e})),r.delete=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"delete\",data:e})),r.options=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"options\",data:e})),r.head=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"head\",data:e})),r.connect=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"connect\",data:e})),r.trace=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"trace\",data:e})),r.patch=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"patch\",data:e})),r.interceptors={request:{list:[],use:function(t,e){const s=this.list.length;return this.list.push({fulfilled:t,rejected:e}),s},eject:function(t){this.list[t]&&(this.list[t]=null)}},response:{list:[],use:function(t,e){const s=this.list.length;return this.list.push({fulfilled:t,rejected:e}),s},eject:function(t){this.list[t]&&(this.list[t]=null)}}};const n=\"languages\",o=\"https://bootstrap-store-gateway.perspect3vism.workers.dev\";class i{constructor(t){}async getLanguageSource(t){if(\"Qm\"!=t.substring(0,2))return console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\"),\"\";const e=t.toString();let s,a;try{s=(await r.get(o+`?key=${e}`)).data.url}catch(e){throw console.error(\"Get language source failed at getting presigned url\",t),e}try{a=(await r.get(s)).data}catch(e){throw console.error(\"Get language source failed at getting language source\",t),e}return a}}class l{#t;constructor(t){this.#t=t.agent}async createPublic(t){const e=UTILS.hash(t.bundle.toString());if(e!=t.meta.address)throw new Error(`Language Persistence: Can\'t store language. Address stated in meta differs from actual file\\nWanted: ${t.meta.address}\\nGot: ${e}`);const s=this.#t.createSignedExpression(t.meta),a={key:`meta-${e}`,value:JSON.stringify(s)},n=await r.post(o,a);200!=n.status&&console.error(\"Upload language meta data gets error: \",n);const i={key:e,value:t.bundle.toString()};return 200!=(await r.post(o,i)).status&&console.error(\"Upload language bundle data gets error: \",n),e}}class u{putAdapter;constructor(t){this.putAdapter=new l(t)}async get(t){if(\"Qm\"!=t.substring(0,2))return console.error(\"LanguageLanguage.get(): The address is not a valid hash\"),null;const e=`meta-${t}`;let s,a;try{s=(await r.get(o+`?key=${e}`)).data.url}catch(e){return console.error(\"Get meta information failed at getting presigned url\",t),null}try{a=(await r.get(s)).data}catch(t){return console.error(\"Get meta information failed at getting meta information\",s),null}return a}}function c(t){return[]}async function d(t){const e=new u(t),s=new i(t);return{name:n,expressionAdapter:e,languageAdapter:s,interactions:c}}export{n as name};export{o as PROXY_URL};export{d as default};" } \ No newline at end of file From 14c9d5f9003c034d2e6d1fb42c497cbc292bb973 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 18 Apr 2023 14:40:38 +0200 Subject: [PATCH 175/722] Switch neighbourhood language over to deno bundle --- .../neighbourhood-language/adapter.ts | 26 +++++------------- .../neighbourhood-language/index.ts | 4 +-- .../neighbourhood-language/package.json | 27 ++----------------- 3 files changed, 11 insertions(+), 46 deletions(-) diff --git a/bootstrap-languages/neighbourhood-language/adapter.ts b/bootstrap-languages/neighbourhood-language/adapter.ts index 8a42b2dd6..124105759 100644 --- a/bootstrap-languages/neighbourhood-language/adapter.ts +++ b/bootstrap-languages/neighbourhood-language/adapter.ts @@ -1,26 +1,17 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService } from "@perspect3vism/ad4m"; -import type { IPFS } from "ipfs-core-types" -import axios from "axios"; -import https from "https"; -import { PROXY_URL } from "."; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import axiod from "https://deno.land/x/axiod/mod.ts"; +import { PROXY_URL } from "./index.ts"; class NeighbourhoodPutAdapter implements PublicSharing { #agent: AgentService; - #IPFS: IPFS constructor(context: LanguageContext) { this.#agent = context.agent; - this.#IPFS = context.IPFS; } async createPublic(neighbourhood: object): Promise
{ - const ipfsAddress = await this.#IPFS.add( - { content: JSON.stringify(neighbourhood)}, - { onlyHash: true}, - ); // @ts-ignore - const hash = ipfsAddress.cid.toString(); - + const hash = UTILS.hash(JSON.stringify(neighbourhood)); const agent = this.#agent; const expression = agent.createSignedExpression(neighbourhood); @@ -32,10 +23,7 @@ class NeighbourhoodPutAdapter implements PublicSharing { value: JSON.stringify(expression), }; //Save the neighbourhood information to the KV store - const httpsAgent = new https.Agent({ - rejectUnauthorized: false - }); - const neighbourhoodPostResult = await axios.post(PROXY_URL, neighbourhoodPostData, { httpsAgent }); + const neighbourhoodPostResult = await axiod.post(PROXY_URL, neighbourhoodPostData); if (neighbourhoodPostResult.status != 200) { console.error("Upload neighbourhood data gets error: ", neighbourhoodPostResult); } @@ -56,7 +44,7 @@ export default class Adapter implements ExpressionAdapter { let presignedUrl; try { - const getPresignedUrl = await axios.get(PROXY_URL+`?key=${cid}`); + const getPresignedUrl = await axiod.get(PROXY_URL+`?key=${cid}`); presignedUrl = getPresignedUrl.data.url; } catch (e) { console.error("Get neighbourhood failed at getting presigned url", e); @@ -64,7 +52,7 @@ export default class Adapter implements ExpressionAdapter { let neighbourhoodObject; try { - const getneighbourhoodObject = await axios.get(presignedUrl); + const getneighbourhoodObject = await axiod.get(presignedUrl); neighbourhoodObject = getneighbourhoodObject.data; } catch (e) { console.error("Get meta information failed at getting meta information", e); diff --git a/bootstrap-languages/neighbourhood-language/index.ts b/bootstrap-languages/neighbourhood-language/index.ts index cc7c7c032..43749a1f7 100644 --- a/bootstrap-languages/neighbourhood-language/index.ts +++ b/bootstrap-languages/neighbourhood-language/index.ts @@ -1,5 +1,5 @@ -import type { Address, Language, LanguageContext, ExpressionUI, Interaction } from "@perspect3vism/ad4m"; -import Adapter from "./adapter"; +import type { Address, Language, LanguageContext, ExpressionUI, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import Adapter from "./adapter.ts"; function interactions(expression: Address): Interaction[] { return []; diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index 034117126..faa3f77c6 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -5,31 +5,8 @@ "main": "index.js", "scripts": { "test": "echo \"No neighbourhood language integration tests\"", - "build": "tsc && rollup -c", - "dev": "tsc && rollup -c -w" + "build": "deno bundle index.ts > bundle.js" }, "author": "joshuadparkin@gmail.com", - "license": "ISC", - "devDependencies": { - "@perspect3vism/ad4m": "*", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", - "@tsconfig/svelte": "^1.0.0", - "ipfs-core-types": "0.10.1", - "rollup": "^2.3.4", - "rollup-plugin-postcss": "^3.1.8", - "rollup-plugin-string": "^3.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", - "svelte": "^3.0.0", - "svelte-check": "^1.0.0", - "svelte-preprocess": "^4.0.0", - "tslib": "^2.0.0", - "typescript": "^4.5.5" - }, - "dependencies": { - "@types/node": "^18.0.0", - "axios": "^0.26.1" - } + "license": "ISC" } From 079c15e7fe49c0562c43225e809ff916744e80a9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 13:53:58 +0100 Subject: [PATCH 176/722] ensure existence of signing credentials before trying to call signing service --- .../Holochain/HolochainService.ts | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 09c26223f..be7e7a4ab 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -227,6 +227,7 @@ export default class HolochainService { throw new Error("Could not install signing service DNA"); } } else { + console.debug("HolochainService: Signing service already installed... activating"); const activeApps = await this.#adminWebsocket!.listApps({}); let signingService = activeApps.find(app => app.installed_app_id === "signing_service"); if (!signingService) { @@ -283,6 +284,24 @@ export default class HolochainService { throw new Error("Signing service DNA is not init'd yet!") } const pubKey = await this.pubKeyForLanguage("main"); + + //Check that signZomeCall will be able to find the signing credentials + const signingKeyExists = getSigningCredentials(this.#signingService!); + + if (!signingKeyExists) { + const cellIdB64 = this.cellIdToB64(this.#signingService!); + //Check if we already have some in the database + let signingCredentials = await this.#signingCredentialsDb.findOne({cellId: cellIdB64}) + if (!signingCredentials) { + console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "generating new ones..."); + await this.generateSigningKeys(this.#signingService!); + } else { + console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "but found them in the database, setting them...", signingCredentials); + //We have some but they are not present in the holochain client... set them + setSigningCredentials(this.#signingService!, JSON.parse(signingCredentials.signingCredentials)); + } + } + const result = await this.#appWebsocket!.callZome({ cap_secret: null, cell_id: this.#signingService!, @@ -431,7 +450,7 @@ export default class HolochainService { } }) - // console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); + console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); } catch(e) { console.error("HolochainService: InstallApp, got error: ", e); return []; From dacb40a792959153e970639e063db2bb0c3951e4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 13:54:16 +0100 Subject: [PATCH 177/722] fix up mainnet seed --- rust-executor/src/mainnet_seed.json | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index 3d503f8d7..81866c6ac 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -1,13 +1 @@ -{ - "trustedAgents": [ - "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" - ], - "knownLinkLanguages": [ - "Qmf7WoxtS93VaWswjDzQqWEcL8pF2W7PZ9QRJb8XYkSfAg" - ], - "directMessageLanguage": "Qmf8hHxbyyZBZkEZtkHyqZ93V6YkULhEKgafhJ2XpY8CNf", - "agentLanguage": "QmfYnjX2Bq7EG61SGrNtXBeup9UBfsqaWciTCMNBgPUEke", - "perspectiveLanguage": "QmPC3MydgKHUpEXA5JZdp8eyqvw1TTPdKsAbMN7Rb3muqp", - "neighbourhoodLanguage": "QmcFUVRL5iQM1AaE3H9UnZ8rRRJQij65qYbBHW7P2oewEH", - "languageLanguageBundle":"const t=function(...t){let s;return s=\"object\"==typeof t[0]?t[0]:[].slice.call(t),e(s)},e=t=>{const e=[];if(0===t.length)return\"\";if(\"string\"!=typeof t[0])throw new TypeError(\"Url must be a string. Received \"+t[0]);if(t[0].match(/^[^/:]+:\\/*$/)&&t.length>1){const e=t.shift();t[0]=e+t[0]}t[0].match(/^file:\\/\\/\\//)?t[0]=t[0].replace(/^([^/:]+):\\/*/,\"$1:///\"):t[0]=t[0].replace(/^([^/:]+):\\/*/,\"$1://\");for(let s=0;s0&&(r=r.replace(/^[\\/]+/,\"\")),r=s0?\"?\":\"\")+r.join(\"&\"),s},s=[\"get\",\"post\",\"put\",\"delete\",\"options\",\"head\",\"connect\",\"trace\",\"patch\"];function r(t,e){return\"string\"==typeof t?r.request(Object.assign({},r.defaults,{url:t},e)):r.request(Object.assign({},r.defaults,t))}async function a(e){if(this.interceptors.request.list.length>0)for(const t of this.interceptors.request.list)if(t){const{fulfilled:s}=t;s&&e&&(e=await s(e))}let{url:r=\"/\",baseURL:a,method:n,headers:o,params:i={},data:l,timeout:u,withCredentials:c,auth:d,validateStatus:g,paramsSerializer:h,transformRequest:p,transformResponse:f,redirect:m,responseType:b=\"json\"}=e;if(a&&(r=t(a,r)),n){if(-1===s.indexOf(n.toLowerCase().trim()))throw new Error(`Method ${n} is not supported`);n=n.toLowerCase().trim()}else n=\"get\";let j=\"\";i&&(j=h?h(i):Object.keys(i).map((t=>encodeURIComponent(t)+\"=\"+encodeURIComponent(i[t]))).join(\"&\")),c&&d?.username&&d?.password&&(o||(o={}),o.Authorization=\"Basic \"+btoa(unescape(encodeURIComponent(`${d.username}:${d.password}`))));const w={};if(\"get\"!==n&&(w.method=n.toUpperCase()),j&&(r=t(r,`?${j}`)),l&&\"get\"!==n){if(p&&Array.isArray(p)&&p.length>0)for(var y=0;y<(p||[]).length;y++)p&&p[y]&&(l=p[y](l,o));if(\"string\"==typeof l||l instanceof FormData||l instanceof URLSearchParams)w.body=l;else try{w.body=JSON.stringify(l),o||(o={}),o.Accept=\"application/json\",o[\"Content-Type\"]=\"application/json\"}catch(t){}}if(o){const t=new Headers;Object.keys(o).forEach((e=>{o&&o[e]&&t.set(e,o[e])})),w.headers=t}const q=new AbortController;w.signal=q.signal;let O=0;return(u||0)>0&&(O=setTimeout((()=>{O=0,q.abort()}),u)),m&&(w.redirect=m),fetch(r,w).then((async t=>{O&&clearTimeout(O);const e=t.status,s=t.statusText;let p=null;try{const e=t.clone();p=\"json\"===b?await e.json():\"text\"===b?await e.text():\"arraybuffer\"===b?await e.arrayBuffer():\"blob\"===b?await e.blob():\"stream\"===b?(await e.blob()).stream():await e.text()}catch(e){p=await t.clone().text()}if(f&&f&&Array.isArray(f)&&f.length>0)for(var j=0;j<(f||[]).length;j++)f&&f[j]&&(p=f[j](p));const w=t.headers,y={url:r,baseURL:a,method:n,headers:o,params:i,data:l,timeout:u,withCredentials:c,auth:d,paramsSerializer:h,redirect:m,responseType:b};let q=!0;q=g?g(e):e>=200&&e<=303;let $=null,S=null;if(q?$={status:e,statusText:s,data:p,headers:w,config:y}:S={response:{status:e,statusText:s,data:p,headers:w},config:y},this.interceptors.response.list.length>0)for(const t of this.interceptors.response.list)if(t){const{fulfilled:e,rejected:s}=t;e&&$&&($=await e($)),s&&S&&(S=await s(S))}return S?Promise.reject(S):Promise.resolve($)}))}r.defaults={url:\"/\",method:\"get\",timeout:0,withCredentials:!1,validateStatus:t=>t>=200&&t<300},r.create=t=>{const e=r.bind({});return e.defaults=Object.assign({},r.defaults,t),e._request=a,e.request=t=>e._request(Object.assign({},e.defaults,t)),e.get=(t,s)=>e.request(Object.assign({},{url:t},s,{method:\"get\"})),e.post=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"post\",data:s})),e.put=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"put\",data:s})),e.delete=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"delete\",data:s})),e.options=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"options\",data:s})),e.head=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"head\",data:s})),e.connect=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"connect\",data:s})),e.trace=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"trace\",data:s})),e.patch=(t,s,r)=>e.request(Object.assign({},{url:t},r,{method:\"patch\",data:s})),e.interceptors={request:{list:[],use:function(t,e){const s=this.list.length;return this.list.push({fulfilled:t,rejected:e}),s},eject:function(t){this.list[t]&&(this.list[t]=null)}},response:{list:[],use:function(t,e){const s=this.list.length;return this.list.push({fulfilled:t,rejected:e}),s},eject:function(t){this.list[t]&&(this.list[t]=null)}}},e.interceptors.request.list=[],e.interceptors.response.list=[],e},r._request=a,r.request=a,r.get=(t,e)=>r.request(Object.assign({},{url:t},e,{method:\"get\"})),r.post=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"post\",data:e})),r.put=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"put\",data:e})),r.delete=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"delete\",data:e})),r.options=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"options\",data:e})),r.head=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"head\",data:e})),r.connect=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"connect\",data:e})),r.trace=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"trace\",data:e})),r.patch=(t,e,s)=>r.request(Object.assign({},{url:t},s,{method:\"patch\",data:e})),r.interceptors={request:{list:[],use:function(t,e){const s=this.list.length;return this.list.push({fulfilled:t,rejected:e}),s},eject:function(t){this.list[t]&&(this.list[t]=null)}},response:{list:[],use:function(t,e){const s=this.list.length;return this.list.push({fulfilled:t,rejected:e}),s},eject:function(t){this.list[t]&&(this.list[t]=null)}}};const n=\"languages\",o=\"https://bootstrap-store-gateway.perspect3vism.workers.dev\";class i{constructor(t){}async getLanguageSource(t){if(\"Qm\"!=t.substring(0,2))return console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\"),\"\";const e=t.toString();let s,a;try{s=(await r.get(o+`?key=${e}`)).data.url}catch(e){throw console.error(\"Get language source failed at getting presigned url\",t),e}try{a=(await r.get(s)).data}catch(e){throw console.error(\"Get language source failed at getting language source\",t),e}return a}}class l{#t;constructor(t){this.#t=t.agent}async createPublic(t){const e=UTILS.hash(t.bundle.toString());if(e!=t.meta.address)throw new Error(`Language Persistence: Can\'t store language. Address stated in meta differs from actual file\\nWanted: ${t.meta.address}\\nGot: ${e}`);const s=this.#t.createSignedExpression(t.meta),a={key:`meta-${e}`,value:JSON.stringify(s)},n=await r.post(o,a);200!=n.status&&console.error(\"Upload language meta data gets error: \",n);const i={key:e,value:t.bundle.toString()};return 200!=(await r.post(o,i)).status&&console.error(\"Upload language bundle data gets error: \",n),e}}class u{putAdapter;constructor(t){this.putAdapter=new l(t)}async get(t){if(\"Qm\"!=t.substring(0,2))return console.error(\"LanguageLanguage.get(): The address is not a valid hash\"),null;const e=`meta-${t}`;let s,a;try{s=(await r.get(o+`?key=${e}`)).data.url}catch(e){return console.error(\"Get meta information failed at getting presigned url\",t),null}try{a=(await r.get(s)).data}catch(t){return console.error(\"Get meta information failed at getting meta information\",s),null}return a}}function c(t){return[]}async function d(t){const e=new u(t),s=new i(t);return{name:n,expressionAdapter:e,languageAdapter:s,interactions:c}}export{n as name};export{o as PROXY_URL};export{d as default};" -} \ No newline at end of file +{"trustedAgents":["did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S"],"knownLinkLanguages":["Qmf7WoxtS93VaWswjDzQqWEcL8pF2W7PZ9QRJb8XYkSfAg"],"directMessageLanguage":"Qmf8hHxbyyZBZkEZtkHyqZ93V6YkULhEKgafhJ2XpY8CNf","agentLanguage":"QmfYnjX2Bq7EG61SGrNtXBeup9UBfsqaWciTCMNBgPUEke","perspectiveLanguage":"QmPC3MydgKHUpEXA5JZdp8eyqvw1TTPdKsAbMN7Rb3muqp","neighbourhoodLanguage":"QmcFUVRL5iQM1AaE3H9UnZ8rRRJQij65qYbBHW7P2oewEH","languageLanguageBundle":"// deno-fmt-ignore-file\n// deno-lint-ignore-file\n// This code was bundled using `deno bundle` and it's not recommended to edit it manually\n\nconst urlJoin = function(...args) {\n let input;\n if (typeof args[0] === 'object') {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nconst normalize = (strArray)=>{\n const resultArray = [];\n if (strArray.length === 0) {\n return '';\n }\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n for(let i = 0; i < strArray.length; i++){\n let component = strArray[i];\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n if (component === '') {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, '');\n } else {\n component = component.replace(/[\\/]+$/, '/');\n }\n resultArray.push(component);\n }\n let str = resultArray.join('/');\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n let parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');\n return str;\n};\nconst methods = [\n 'get',\n 'post',\n 'put',\n 'delete',\n 'options',\n 'head',\n 'connect',\n 'trace',\n 'patch'\n];\nconst addInterceptor = ()=>{\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\nfunction axiod(url, config) {\n if (typeof url === 'string') {\n return axiod.request(Object.assign({}, axiod.defaults, {\n url\n }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: '/',\n method: 'get',\n timeout: 0,\n withCredentials: false,\n validateStatus: (status)=>{\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config)=>{\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options)=>{\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n };\n instance.post = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n };\n instance.put = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n };\n instance.delete = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n };\n instance.options = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n };\n instance.head = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n };\n instance.connect = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n };\n instance.trace = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n };\n instance.patch = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list){\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let { url ='/' , baseURL , method , headers , params ={} , data , timeout , withCredentials , auth , validateStatus , paramsSerializer , transformRequest , transformResponse , redirect , responseType ='json' } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = 'get';\n }\n let _params = '';\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key)=>{\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers['Authorization'] = 'Basic ' + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== 'get') {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== 'get') {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for(var i = 0; i < (transformRequest || []).length; i++){\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === 'string' || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers['Accept'] = 'application/json';\n headers['Content-Type'] = 'application/json';\n } catch (ex) {}\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header)=>{\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(()=>{\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x)=>{\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response = x.clone();\n if (responseType === 'json') {\n _data = await response.json();\n } else if (responseType === 'text') {\n _data = await response.text();\n } else if (responseType === 'arraybuffer') {\n _data = await response.arrayBuffer();\n } else if (responseType === 'blob') {\n _data = await response.blob();\n } else if (responseType === 'stream') {\n _data = (await response.blob()).stream();\n } else {\n _data = await response.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for(var i = 0; i < (transformResponse || []).length; i++){\n if (transformResponse && transformResponse[i]) {\n _data = transformResponse[i](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list){\n if (interceptor) {\n const { fulfilled , rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n};\naxiod.post = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n};\naxiod.put = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n};\naxiod.delete = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n};\naxiod.options = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n};\naxiod.head = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n};\naxiod.connect = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n};\naxiod.trace = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n};\naxiod.patch = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nclass LangAdapter {\n constructor(context){}\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await axiod.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n}\nclass CloudflarePutAdapter {\n #agent;\n constructor(context){\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address) throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n value: JSON.stringify(expression)\n };\n const metaPostResult = await axiod.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n value: language.bundle.toString()\n };\n const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n}\nclass Adapter {\n putAdapter;\n constructor(context){\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axiod.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport { name as name };\nexport { PROXY_URL as PROXY_URL };\nexport { create as default };\n\n"} \ No newline at end of file From 7fffe54303a0987f30e16416821f8007eb1fb118 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 18 Apr 2023 15:28:18 +0200 Subject: [PATCH 178/722] Denoify agent language. Build Icons and hc-dna with rollup and bundle with deno bundle. --- bootstrap-languages/agent-language/adapter.ts | 10 +++--- bootstrap-languages/agent-language/index.ts | 12 +++---- .../agent-language/package.json | 18 ++++++---- .../rollup.config.expression-ui.js | 35 +++++++++++++++++++ ...llup.config.js => rollup.config.hc-dna.js} | 6 ++-- .../agent-language/rollup.config.icons.js | 2 +- 6 files changed, 61 insertions(+), 22 deletions(-) create mode 100644 bootstrap-languages/agent-language/rollup.config.expression-ui.js rename bootstrap-languages/agent-language/{rollup.config.js => rollup.config.hc-dna.js} (96%) diff --git a/bootstrap-languages/agent-language/adapter.ts b/bootstrap-languages/agent-language/adapter.ts index 431544002..39fc1c57e 100644 --- a/bootstrap-languages/agent-language/adapter.ts +++ b/bootstrap-languages/agent-language/adapter.ts @@ -1,5 +1,5 @@ -import type { Address, Agent, Expression, PublicSharing, LanguageContext, HolochainLanguageDelegate, ExpressionAdapter, AgentService } from "@perspect3vism/ad4m"; -import { DNA_NICK } from "./dna"; +import type { Address, Agent, Expression, PublicSharing, LanguageContext, HolochainLanguageDelegate, ExpressionAdapter, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import { DNA_NICK } from "./build/dna.js"; export default class ExpressionAdapterImpl implements ExpressionAdapter { #DNA: HolochainLanguageDelegate; @@ -34,7 +34,7 @@ class Sharing implements PublicSharing { this.#agent = context.agent; } - async createPublic(content: object): Promise
{ + async createPublic(content: Agent): Promise
{ if(!content['did'] || !content['perspective'] || !content['perspective'].links) throw "Content must be an Agent object" @@ -44,9 +44,9 @@ class Sharing implements PublicSharing { throw "Can't set Agent Expression for foreign DID - only for self" if(!agent.directMessageLanguage) - agent.directMessageLanguage = null + agent.directMessageLanguage = undefined - agent.perspective.links.forEach(link => { + agent.perspective!.links.forEach(link => { delete link.proof.valid delete link.proof.invalid }) diff --git a/bootstrap-languages/agent-language/index.ts b/bootstrap-languages/agent-language/index.ts index 5f288fcfe..c7a111f15 100644 --- a/bootstrap-languages/agent-language/index.ts +++ b/bootstrap-languages/agent-language/index.ts @@ -1,16 +1,16 @@ -import type { Address, Language, LanguageContext, HolochainLanguageDelegate, Interaction } from "@perspect3vism/ad4m"; -import ExpressionAdapter from "./adapter"; +import type { Address, Language, LanguageContext, HolochainLanguageDelegate, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import ExpressionAdapter from "./adapter.ts"; import Icon from "./build/Icon.js"; import ConstructorIcon from "./build/ConstructorIcon.js"; -import { UI } from "./expressionUI"; -import { DNA, DNA_NICK } from "./dna"; +import { UI } from "./build/expressionUI.js"; +import { DNA, DNA_NICK } from "./build/dna.js"; function iconFor(expression: Address): string { - return Icon; + return Icon as unknown as string; } function constructorIcon(): string { - return ConstructorIcon; + return ConstructorIcon as unknown as string; } function interactions(expression: Address): Interaction[] { diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index eeef27620..2dc8fdd19 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -5,13 +5,17 @@ "main": "index.js", "scripts": { "test": "echo \"No agent language integration tests\"", - "build-icons": "rollup -c rollup.config.icons.js", + "rollup-icons": "rollup -c rollup.config.icons.js", + "rollup-dna": "rollup -c rollup.config.hc-dna.js", + "rollup-expression-ui": "rollup -c rollup.config.expression-ui.js", + "compile-dna": "cd hc-dna && ./build.sh && cd ..", + "compile-dna-windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd ..", + "deno-bundle": "deno bundle index.ts build/bundle.js", "build": "run-script-os", - "build:linux": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", - "build:macos": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", - "build:windows": "yarn run build-icons && cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", - "build-dna": "cd hc-dna && ./build.sh && cd ..", - "build-nix": "yarn run build-dna && yarn run build-icons && tsc && rollup -c", + "build:linux": "yarn compile-dna && yarn build:common", + "build:macos": "yarn compile-dna && yarn build:common", + "build:windows": "yarn compile-dna-windows && yarn build:common", + "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && yarn deno-bundle", "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" }, "author": "", @@ -22,7 +26,7 @@ "@rollup/plugin-commonjs": "^17.0.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", + "@rollup/plugin-typescript": "^11.1.0", "@tsconfig/svelte": "^1.0.0", "@types/node": "^18.0.0", "rollup": "^2.3.4", diff --git a/bootstrap-languages/agent-language/rollup.config.expression-ui.js b/bootstrap-languages/agent-language/rollup.config.expression-ui.js new file mode 100644 index 000000000..ea9cf6ac0 --- /dev/null +++ b/bootstrap-languages/agent-language/rollup.config.expression-ui.js @@ -0,0 +1,35 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +//import { terser } from 'rollup-plugin-terser'; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; +import { string } from "rollup-plugin-string"; +import json from "@rollup/plugin-json"; +import typescript from '@rollup/plugin-typescript'; +import dna from "@perspect3vism/rollup-plugin-dna"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: "expressionUI.ts", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "AgentExpressionUI", + file: "build/expressionUI.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + typescript({include: "expressionUI.ts"}), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/agent-language/rollup.config.js b/bootstrap-languages/agent-language/rollup.config.hc-dna.js similarity index 96% rename from bootstrap-languages/agent-language/rollup.config.js rename to bootstrap-languages/agent-language/rollup.config.hc-dna.js index 9a3330377..65c885231 100644 --- a/bootstrap-languages/agent-language/rollup.config.js +++ b/bootstrap-languages/agent-language/rollup.config.hc-dna.js @@ -11,13 +11,13 @@ import dna from "@perspect3vism/rollup-plugin-dna"; const production = !process.env.ROLLUP_WATCH; export default { - input: "index.js", + input: "dna.js", external: [], output: { sourcemap: true, - format: "cjs", + format: "esm", name: "AgentLanguage", - file: "build/bundle.js", + file: "build/dna.js", interop: "esModule", globals: {}, }, diff --git a/bootstrap-languages/agent-language/rollup.config.icons.js b/bootstrap-languages/agent-language/rollup.config.icons.js index 0bdc2186c..40723708f 100644 --- a/bootstrap-languages/agent-language/rollup.config.icons.js +++ b/bootstrap-languages/agent-language/rollup.config.icons.js @@ -12,7 +12,7 @@ export default [ input: "ConstructorIcon.svelte", output: { sourcemap: true, - format: "es", + format: "esm", name: "ConstructorIcon", file: "build/ConstructorIcon.js", }, From 197ac94f7ef8933c45dd05ca861c7d56421c7486 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 15:25:28 +0100 Subject: [PATCH 179/722] cleanup agent language --- bootstrap-languages/agent-language/.gitignore | 3 ++- .../agent-language/rollup.config.expression-ui.js | 10 ---------- .../agent-language/rollup.config.icons.js | 1 - cli/mainnet_seed.json | 13 +++++++++++++ rust-executor/src/js_core/utils_extension.rs | 6 +++--- 5 files changed, 18 insertions(+), 15 deletions(-) create mode 100644 cli/mainnet_seed.json diff --git a/bootstrap-languages/agent-language/.gitignore b/bootstrap-languages/agent-language/.gitignore index ae8c71ffa..f66d708df 100644 --- a/bootstrap-languages/agent-language/.gitignore +++ b/bootstrap-languages/agent-language/.gitignore @@ -10,4 +10,5 @@ build/* *.js.map !*.config.icons.js !*.config.js -!dna.js \ No newline at end of file +!dna.js +build/dna.js \ No newline at end of file diff --git a/bootstrap-languages/agent-language/rollup.config.expression-ui.js b/bootstrap-languages/agent-language/rollup.config.expression-ui.js index ea9cf6ac0..feb747f71 100644 --- a/bootstrap-languages/agent-language/rollup.config.expression-ui.js +++ b/bootstrap-languages/agent-language/rollup.config.expression-ui.js @@ -1,15 +1,5 @@ -import svelte from "rollup-plugin-svelte"; -import resolve from "@rollup/plugin-node-resolve"; -import commonjs from "@rollup/plugin-commonjs"; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from "svelte-preprocess"; -import postcss from "rollup-plugin-postcss"; import { string } from "rollup-plugin-string"; -import json from "@rollup/plugin-json"; import typescript from '@rollup/plugin-typescript'; -import dna from "@perspect3vism/rollup-plugin-dna"; - -const production = !process.env.ROLLUP_WATCH; export default { input: "expressionUI.ts", diff --git a/bootstrap-languages/agent-language/rollup.config.icons.js b/bootstrap-languages/agent-language/rollup.config.icons.js index 40723708f..557135681 100644 --- a/bootstrap-languages/agent-language/rollup.config.icons.js +++ b/bootstrap-languages/agent-language/rollup.config.icons.js @@ -1,7 +1,6 @@ import svelte from "rollup-plugin-svelte"; import resolve from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; -//import { terser } from 'rollup-plugin-terser'; import sveltePreprocess from "svelte-preprocess"; import postcss from "rollup-plugin-postcss"; diff --git a/cli/mainnet_seed.json b/cli/mainnet_seed.json new file mode 100644 index 000000000..c1ac10245 --- /dev/null +++ b/cli/mainnet_seed.json @@ -0,0 +1,13 @@ +{ + "trustedAgents": [ + "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" + ], + "knownLinkLanguages": [ + "Qmf7WoxtS93VaWswjDzQqWEcL8pF2W7PZ9QRJb8XYkSfAg" + ], + "directMessageLanguage": "Qmf8hHxbyyZBZkEZtkHyqZ93V6YkULhEKgafhJ2XpY8CNf", + "agentLanguage": "QmfYnjX2Bq7EG61SGrNtXBeup9UBfsqaWciTCMNBgPUEke", + "perspectiveLanguage": "QmPC3MydgKHUpEXA5JZdp8eyqvw1TTPdKsAbMN7Rb3muqp", + "neighbourhoodLanguage": "QmcFUVRL5iQM1AaE3H9UnZ8rRRJQij65qYbBHW7P2oewEH", + "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar http = require('http');\nvar https = require('https');\nvar url = require('url');\nvar stream = require('stream');\nvar assert = require('assert');\nvar tty = require('tty');\nvar util = require('util');\nvar fs = require('fs');\nvar net = require('net');\nvar zlib = require('zlib');\nvar os = require('os');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar http__default = /*#__PURE__*/_interopDefaultLegacy(http);\nvar https__default = /*#__PURE__*/_interopDefaultLegacy(https);\nvar url__default = /*#__PURE__*/_interopDefaultLegacy(url);\nvar stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);\nvar assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);\nvar tty__default = /*#__PURE__*/_interopDefaultLegacy(tty);\nvar util__default = /*#__PURE__*/_interopDefaultLegacy(util);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\nvar net__default = /*#__PURE__*/_interopDefaultLegacy(net);\nvar zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);\nvar os__default = /*#__PURE__*/_interopDefaultLegacy(os);\n\nvar bind = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer$1(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString$1(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction$1(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction$1(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nvar utils = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer$1,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString$1,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction$1,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nvar buildURL = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nvar InterceptorManager_1 = InterceptorManager;\n\nvar normalizeHeaderName = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nvar enhanceError = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n\nvar transitional = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nvar createError = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nvar settle = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\nvar cookies = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nvar isAbsoluteURL = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nvar combineURLs = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nvar buildFullPath = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\nvar isURLSameOrigin = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nvar Cancel_1 = Cancel;\n\nvar xhr = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional$1 = config.transitional || transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nvar ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\nvar debug$1 = createCommonjsModule(function (module, exports) {\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = ms;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n});\n\nvar browser = createCommonjsModule(function (module, exports) {\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n});\n\nvar node = createCommonjsModule(function (module, exports) {\n/**\n * Module dependencies.\n */\n\n\n\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util__default[\"default\"].deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')();\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty__default[\"default\"].isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util__default[\"default\"].format.apply(util__default[\"default\"], arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty__default[\"default\"].WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = fs__default[\"default\"];\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = net__default[\"default\"];\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n});\n\nvar src = createCommonjsModule(function (module) {\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = browser;\n} else {\n module.exports = node;\n}\n});\n\nvar debug;\n\nvar debug_1 = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = src(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n\nvar URL = url__default[\"default\"].URL;\n\n\nvar Writable = stream__default[\"default\"].Writable;\n\n\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url__default[\"default\"].format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url__default[\"default\"].parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url__default[\"default\"].format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url__default[\"default\"].resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug_1(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url__default[\"default\"].parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = url__default[\"default\"].parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert__default[\"default\"].equal(options.protocol, protocol, \"protocol mismatch\");\n debug_1(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert__default[\"default\"](isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nvar followRedirects = wrap({ http: http__default[\"default\"], https: https__default[\"default\"] });\nvar wrap_1 = wrap;\nfollowRedirects.wrap = wrap_1;\n\nvar data = {\n \"version\": \"0.26.1\"\n};\n\nvar httpFollow = followRedirects.http;\nvar httpsFollow = followRedirects.https;\n\n\nvar VERSION$1 = data.version;\n\n\n\n\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nvar http_1 = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION$1;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url__default[\"default\"].parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url__default[\"default\"].parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https__default[\"default\"] : http__default[\"default\"];\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib__default[\"default\"].createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional$1 = config.transitional || transitional;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = xhr;\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = http_1;\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitional,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults_1 = defaults;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nvar transformData = function transformData(data, headers, fns) {\n var context = this || defaults_1;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n\nvar isCancel = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel_1('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nvar dispatchRequest = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults_1.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nvar mergeConfig = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n\nvar VERSION = data.version;\n\nvar validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nvar validator = {\n assertOptions: assertOptions,\n validators: validators$1\n};\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_1(),\n response: new InterceptorManager_1()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nvar Axios_1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel_1(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nvar CancelToken_1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nvar spread = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nvar isAxiosError = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios_1(defaultConfig);\n var instance = bind(Axios_1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios_1.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios$1 = createInstance(defaults_1);\n\n// Expose Axios class to allow class inheritance\naxios$1.Axios = Axios_1;\n\n// Expose Cancel & CancelToken\naxios$1.Cancel = Cancel_1;\naxios$1.CancelToken = CancelToken_1;\naxios$1.isCancel = isCancel;\naxios$1.VERSION = data.version;\n\n// Expose all/spread\naxios$1.all = function all(promises) {\n return Promise.all(promises);\n};\naxios$1.spread = spread;\n\n// Expose isAxiosError\naxios$1.isAxiosError = isAxiosError;\n\nvar axios_1 = axios$1;\n\n// Allow use of default import syntax in TypeScript\nvar _default = axios$1;\naxios_1.default = _default;\n\nvar axios = axios_1;\n\ncreateCommonjsModule(function (module) {\n// Generated by CoffeeScript 2.5.1\n(function() {\n // This file's name is set up in such a way that it will always show up first in\n // the list of files given to coffee --join, so that the other files can assume\n // that XMLHttpRequestEventTarget was already defined.\n\n // The DOM EventTarget subclass used by XMLHttpRequest.\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n var InvalidStateError, NetworkError, ProgressEvent, SecurityError, SyntaxError, XMLHttpRequest, XMLHttpRequestEventTarget, XMLHttpRequestUpload, http, https, os, url;\n\n XMLHttpRequestEventTarget = (function() {\n class XMLHttpRequestEventTarget {\n // @private\n // This is an abstract class and should not be instantiated directly.\n constructor() {\n this.onloadstart = null;\n this.onprogress = null;\n this.onabort = null;\n this.onerror = null;\n this.onload = null;\n this.ontimeout = null;\n this.onloadend = null;\n this._listeners = {};\n }\n\n // Adds a new-style listener for one of the XHR events.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#events\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener function that will be called when\n // the event fires\n // @return {undefined} undefined\n addEventListener(eventType, listener) {\n var base;\n eventType = eventType.toLowerCase();\n (base = this._listeners)[eventType] || (base[eventType] = []);\n this._listeners[eventType].push(listener);\n return void 0;\n }\n\n // Removes an event listener added by calling addEventListener.\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener the value passed in a previous\n // call to addEventListener.\n // @return {undefined} undefined\n removeEventListener(eventType, listener) {\n var index;\n eventType = eventType.toLowerCase();\n if (this._listeners[eventType]) {\n index = this._listeners[eventType].indexOf(listener);\n if (index !== -1) {\n this._listeners[eventType].splice(index, 1);\n }\n }\n return void 0;\n }\n\n // Calls all the listeners for an event.\n\n // @param {ProgressEvent} event the event to be dispatched\n // @return {undefined} undefined\n dispatchEvent(event) {\n var eventType, j, len, listener, listeners;\n event.currentTarget = event.target = this;\n eventType = event.type;\n if (listeners = this._listeners[eventType]) {\n for (j = 0, len = listeners.length; j < len; j++) {\n listener = listeners[j];\n listener.call(this, event);\n }\n }\n if (listener = this[`on${eventType}`]) {\n listener.call(this, event);\n }\n return void 0;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadstart' event\n XMLHttpRequestEventTarget.prototype.onloadstart = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'progress' event\n XMLHttpRequestEventTarget.prototype.onprogress = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'abort' event\n XMLHttpRequestEventTarget.prototype.onabort = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'error' event\n XMLHttpRequestEventTarget.prototype.onerror = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'load' event\n XMLHttpRequestEventTarget.prototype.onload = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'timeout' event\n XMLHttpRequestEventTarget.prototype.ontimeout = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadend' event\n XMLHttpRequestEventTarget.prototype.onloadend = null;\n\n return XMLHttpRequestEventTarget;\n\n }).call(this);\n\n // This file's name is set up in such a way that it will always show up second\n // in the list of files given to coffee --join, so it can use the\n // XMLHttpRequestEventTarget definition and so that the other files can assume\n // that XMLHttpRequest was already defined.\n http = http__default[\"default\"];\n\n https = https__default[\"default\"];\n\n os = os__default[\"default\"];\n\n url = url__default[\"default\"];\n\n XMLHttpRequest = (function() {\n // The ECMAScript HTTP API.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#introduction\n class XMLHttpRequest extends XMLHttpRequestEventTarget {\n // Creates a new request.\n\n // @param {Object} options one or more of the options below\n // @option options {Boolean} anon if true, the request's anonymous flag\n // will be set\n // @see http://www.w3.org/TR/XMLHttpRequest/#constructors\n // @see http://www.w3.org/TR/XMLHttpRequest/#anonymous-flag\n constructor(options) {\n super();\n this.onreadystatechange = null;\n this._anonymous = options && options.anon;\n this.readyState = XMLHttpRequest.UNSENT;\n this.response = null;\n this.responseText = '';\n this.responseType = '';\n this.responseURL = '';\n this.status = 0;\n this.statusText = '';\n this.timeout = 0;\n this.upload = new XMLHttpRequestUpload(this);\n this._method = null; // String\n this._url = null; // Return value of url.parse()\n this._sync = false;\n this._headers = null; // Object\n this._loweredHeaders = null; // Object\n this._mimeOverride = null;\n this._request = null; // http.ClientRequest\n this._response = null; // http.ClientResponse\n this._responseParts = null; // Array\n this._responseHeaders = null; // Object\n this._aborting = null;\n this._error = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n }\n\n // Sets the XHR's method, URL, synchronous flag, and authentication params.\n\n // @param {String} method the HTTP method to be used\n // @param {String} url the URL that the request will be made to\n // @param {?Boolean} async if false, the XHR should be processed\n // synchronously; true by default\n // @param {?String} user the user credential to be used in HTTP basic\n // authentication\n // @param {?String} password the password credential to be used in HTTP basic\n // authentication\n // @return {undefined} undefined\n // @throw {SecurityError} method is not one of the allowed methods\n // @throw {SyntaxError} urlString is not a valid URL\n // @throw {Error} the URL contains an unsupported protocol; the supported\n // protocols are file, http and https\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n open(method, url, async, user, password) {\n var xhrUrl;\n method = method.toUpperCase();\n if (method in this._restrictedMethods) {\n throw new SecurityError(`HTTP method ${method} is not allowed in XHR`);\n }\n xhrUrl = this._parseUrl(url);\n if (async === void 0) {\n async = true;\n }\n switch (this.readyState) {\n case XMLHttpRequest.UNSENT:\n case XMLHttpRequest.OPENED:\n case XMLHttpRequest.DONE:\n break;\n case XMLHttpRequest.HEADERS_RECEIVED:\n case XMLHttpRequest.LOADING:\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n return void 0;\n }\n\n // Appends a header to the list of author request headers.\n\n // @param {String} name the HTTP header name\n // @param {String} value the HTTP header value\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @throw {SyntaxError} name is not a valid HTTP header name or value is not\n // a valid HTTP header value\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n setRequestHeader(name, value) {\n var loweredName;\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec\\-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(`Refused to set unsafe header \\\"${name}\\\"`);\n return void 0;\n }\n value = value.toString();\n if (loweredName in this._loweredHeaders) {\n // Combine value with the existing header value.\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + ', ' + value;\n } else {\n // New header.\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n return void 0;\n }\n\n // Initiates the request.\n\n // @param {?String, ?ArrayBufferView} data the data to be sent; ignored for\n // GET and HEAD requests\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n send(data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n if (this._request) {\n throw new InvalidStateError(\"send() already called\");\n }\n switch (this._url.protocol) {\n case 'file:':\n this._sendFile(data);\n break;\n case 'http:':\n case 'https:':\n this._sendHttp(data);\n break;\n default:\n throw new NetworkError(`Unsupported protocol ${this._url.protocol}`);\n }\n return void 0;\n }\n\n // Cancels the network activity performed by this request.\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method\n abort() {\n if (!this._request) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n return void 0;\n }\n\n // Returns a header value in the HTTP response for this XHR.\n\n // @param {String} name case-insensitive HTTP header name\n // @return {?String} value the value of the header whose name matches the\n // given name, or null if there is no such header\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n getResponseHeader(name) {\n var loweredName;\n if (!this._responseHeaders) {\n return null;\n }\n loweredName = name.toLowerCase();\n if (loweredName in this._responseHeaders) {\n return this._responseHeaders[loweredName];\n } else {\n return null;\n }\n }\n\n // Returns all the HTTP headers in this XHR's response.\n\n // @return {String} header lines separated by CR LF, where each header line\n // has the name and value separated by a \": \" (colon, space); the empty\n // string is returned if the headers are not available\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n getAllResponseHeaders() {\n var lines, name, value;\n if (!this._responseHeaders) {\n return '';\n }\n lines = (function() {\n var ref, results;\n ref = this._responseHeaders;\n results = [];\n for (name in ref) {\n value = ref[name];\n results.push(`${name}: ${value}`);\n }\n return results;\n }).call(this);\n return lines.join(\"\\r\\n\");\n }\n\n // Overrides the Content-Type\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-overridemimetype()-method\n overrideMimeType(newMimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new InvalidStateError(\"overrideMimeType() not allowed in LOADING or DONE\");\n }\n this._mimeOverride = newMimeType.toLowerCase();\n return void 0;\n }\n\n // Network configuration not exposed in the XHR API.\n\n // Although the XMLHttpRequest specification calls itself \"ECMAScript HTTP\",\n // it assumes that requests are always performed in the context of a browser\n // application, where some network parameters are set by the browser user and\n // should not be modified by Web applications. This API provides access to\n // these network parameters.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the value for the nodejsHttpAgent\n // property (the agent used for HTTP requests)\n // @option options {?https.Agent} httpsAgent the value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n nodejsSet(options) {\n var baseUrl, parsedUrl;\n if ('httpAgent' in options) {\n this.nodejsHttpAgent = options.httpAgent;\n }\n if ('httpsAgent' in options) {\n this.nodejsHttpsAgent = options.httpsAgent;\n }\n if ('baseUrl' in options) {\n baseUrl = options.baseUrl;\n if (baseUrl !== null) {\n parsedUrl = url.parse(baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = baseUrl;\n }\n return void 0;\n }\n\n // Default settings for the network configuration not exposed in the XHR API.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the default value for the\n // nodejsHttpAgent property (the agent used for HTTP requests)\n // @option options {https.Agent} httpsAgent the default value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n // @see XMLHttpRequest.nodejsSet\n static nodejsSet(options) {\n // \"this\" will be set to XMLHttpRequest.prototype, so the instance nodejsSet\n // operates on default property values.\n XMLHttpRequest.prototype.nodejsSet(options);\n return void 0;\n }\n\n // Sets the readyState property and fires the readystatechange event.\n\n // @private\n // @param {Number} newReadyState the new value of readyState\n // @return {undefined} undefined\n _setReadyState(newReadyState) {\n var event;\n this.readyState = newReadyState;\n event = new ProgressEvent('readystatechange');\n this.dispatchEvent(event);\n return void 0;\n }\n\n // XMLHttpRequest#send() implementation for the file: protocol.\n\n // @private\n _sendFile() {\n if (this._url.method !== 'GET') {\n throw new NetworkError('The file protocol only supports GET');\n }\n throw new Error(\"Protocol file: not implemented\");\n }\n\n // XMLHttpRequest#send() implementation for the http: and https: protocols.\n\n // @private\n // This method sets the instance variables and calls _sendHxxpRequest(), which\n // is responsible for building a node.js request and firing it off. The code\n // in _sendHxxpRequest() is separated off so it can be reused when handling\n // redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHttp(data) {\n if (this._sync) {\n throw new Error(\"Synchronous XHR processing not implemented\");\n }\n if ((data != null) && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(`Discarding entity body for ${this._method} requests`);\n data = null;\n } else {\n // Send Content-Length: 0\n data || (data = '');\n }\n // NOTE: this is called before finalizeHeaders so that the uploader can\n // figure out Content-Length and Content-Type.\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return void 0;\n }\n\n // Sets up and fires off a HTTP/HTTPS request using the node.js API.\n\n // @private\n // This method contains the bulk of the XMLHttpRequest#send() implementation,\n // and is also used to issue new HTTP requests when handling HTTP redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHxxpRequest() {\n var agent, hxxp, request;\n if (this._url.protocol === 'http:') {\n hxxp = http;\n agent = this.nodejsHttpAgent;\n } else {\n hxxp = https;\n agent = this.nodejsHttpsAgent;\n }\n request = hxxp.request({\n hostname: this._url.hostname,\n port: this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, () => {\n return this._onHttpTimeout(request);\n });\n }\n request.on('response', (response) => {\n return this._onHttpResponse(request, response);\n });\n request.on('error', (error) => {\n return this._onHttpRequestError(request, error);\n });\n this.upload._startUpload(request);\n if (this._request === request) { // An http error might have already fired.\n this._dispatchProgress('loadstart');\n }\n return void 0;\n }\n\n // Fills in the restricted HTTP headers with default values.\n\n // This is called right before the HTTP request is sent off.\n\n // @private\n // @return {undefined} undefined\n _finalizeHeaders() {\n var base;\n this._headers['Connection'] = 'keep-alive';\n this._headers['Host'] = this._url.host;\n if (this._anonymous) {\n this._headers['Referer'] = 'about:blank';\n }\n (base = this._headers)['User-Agent'] || (base['User-Agent'] = this._userAgent);\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n return void 0;\n }\n\n // Called when the headers of an HTTP response have been received.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // produced this response\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // passed to\n _onHttpResponse(request, response) {\n var lengthString;\n if (this._request !== request) {\n return;\n }\n // Transparent redirection handling.\n switch (response.statusCode) {\n case 301:\n case 302:\n case 303:\n case 307:\n case 308:\n this._url = this._parseUrl(response.headers['location']);\n this._method = 'GET';\n if ('content-type' in this._loweredHeaders) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n // XMLHttpRequestUpload#_finalizeHeaders() sets Content-Type directly.\n if ('Content-Type' in this._headers) {\n delete this._headers['Content-Type'];\n }\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', (data) => {\n return this._onHttpResponseData(response, data);\n });\n this._response.on('end', () => {\n return this._onHttpResponseEnd(response);\n });\n this._response.on('close', () => {\n return this._onHttpResponseClose(response);\n });\n this.responseURL = this._url.href.split('#')[0];\n this.status = this._response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n if (lengthString = this._responseHeaders['content-length']) {\n this._totalBytes = parseInt(lengthString);\n this._lengthComputable = true;\n } else {\n this._lengthComputable = false;\n }\n return this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n }\n\n // Called when some data has been received on a HTTP connection.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n // @param {String, Buffer} data the data that has been received\n _onHttpResponseData(response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(data);\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n return this._dispatchProgress('progress');\n }\n\n // Called when the HTTP request finished processing.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseEnd(response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the underlying HTTP connection was closed prematurely.\n\n // If this method is called, it will be called after or instead of\n // onHttpResponseEnd.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseClose(response) {\n var request;\n if (this._response !== response) {\n return;\n }\n request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the timeout set on the HTTP socket expires.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n _onHttpTimeout(request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n return this._dispatchProgress('loadend');\n }\n\n // Called when something wrong happens on the HTTP socket\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n // @param {Error} error emitted exception\n _onHttpRequestError(request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Fires an XHR progress event.\n\n // @private\n // @param {String} eventType one of the XHR progress event types, such as\n // 'load' and 'progress'\n _dispatchProgress(eventType) {\n var event;\n event = new ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n return void 0;\n }\n\n // Sets up the XHR to reflect the fact that an error has occurred.\n\n // The possible errors are a network error, a timeout, or an abort.\n\n // @private\n _setError() {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n return void 0;\n }\n\n // Parses a request URL string.\n\n // @private\n // This method is a thin wrapper around url.parse() that normalizes HTTP\n // user/password credentials. It is used to parse the URL string passed to\n // XMLHttpRequest#open() and the URLs in the Location headers of HTTP redirect\n // responses.\n\n // @param {String} urlString the URL to be parsed\n // @return {Object} parsed URL\n _parseUrl(urlString) {\n var absoluteUrlString, index, password, user, xhrUrl;\n if (this.nodejsBaseUrl === null) {\n absoluteUrlString = urlString;\n } else {\n absoluteUrlString = url.resolve(this.nodejsBaseUrl, urlString);\n }\n xhrUrl = url.parse(absoluteUrlString, false, true);\n xhrUrl.hash = null;\n if (xhrUrl.auth && ((typeof user !== \"undefined\" && user !== null) || (typeof password !== \"undefined\" && password !== null))) {\n index = xhrUrl.auth.indexOf(':');\n if (index === -1) {\n if (!user) {\n user = xhrUrl.auth;\n }\n } else {\n if (!user) {\n user = xhrUrl.substring(0, index);\n }\n if (!password) {\n password = xhrUrl.substring(index + 1);\n }\n }\n }\n if (user || password) {\n xhrUrl.auth = `${user}:${password}`;\n }\n return xhrUrl;\n }\n\n // Reads the headers from a node.js ClientResponse instance.\n\n // @private\n // @param {http.ClientResponse} response the response whose headers will be\n // imported into this XMLHttpRequest's state\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n _parseResponseHeaders(response) {\n var loweredName, name, ref, value;\n this._responseHeaders = {};\n ref = response.headers;\n for (name in ref) {\n value = ref[name];\n loweredName = name.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n if (this._mimeOverride !== null && loweredName === 'content-type') {\n value = this._mimeOverride;\n }\n this._responseHeaders[loweredName] = value;\n }\n if (this._mimeOverride !== null && !('content-type' in this._responseHeaders)) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n return void 0;\n }\n\n // Sets the response and responseText properties when an XHR completes.\n\n // @private\n // @return {undefined} undefined\n _parseResponse() {\n var arrayBuffer, buffer, i, j, ref, view;\n if (Buffer.concat) {\n buffer = Buffer.concat(this._responseParts);\n } else {\n // node 0.6\n buffer = this._concatBuffers(this._responseParts);\n }\n this._responseParts = null;\n switch (this.responseType) {\n case 'text':\n this._parseTextResponse(buffer);\n break;\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n } catch (error1) {\n this.response = null;\n }\n break;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n break;\n case 'arraybuffer':\n this.responseText = null;\n arrayBuffer = new ArrayBuffer(buffer.length);\n view = new Uint8Array(arrayBuffer);\n for (i = j = 0, ref = buffer.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n break;\n default:\n // TODO(pwnall): content-base detection\n this._parseTextResponse(buffer);\n }\n return void 0;\n }\n\n // Sets response and responseText for a 'text' response type.\n\n // @private\n // @param {Buffer} buffer the node.js Buffer containing the binary response\n // @return {undefined} undefined\n _parseTextResponse(buffer) {\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n } catch (error1) {\n // Unknown encoding.\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n return void 0;\n }\n\n // Figures out the string encoding of the XHR's response.\n\n // This is called to determine the encoding when responseText is set.\n\n // @private\n // @return {String} a string encoding, e.g. 'utf-8'\n _parseResponseEncoding() {\n var contentType, match;\n if (contentType = this._responseHeaders['content-type']) {\n if (match = /\\;\\s*charset\\=(.*)$/.exec(contentType)) {\n return match[1];\n }\n }\n return 'utf-8';\n }\n\n // Buffer.concat implementation for node 0.6.\n\n // @private\n // @param {Array} buffers the buffers whose contents will be merged\n // @return {Buffer} same as Buffer.concat(buffers) in node 0.8 and above\n _concatBuffers(buffers) {\n var buffer, j, k, len, len1, length, target;\n if (buffers.length === 0) {\n return Buffer.alloc(0);\n }\n if (buffers.length === 1) {\n return buffers[0];\n }\n length = 0;\n for (j = 0, len = buffers.length; j < len; j++) {\n buffer = buffers[j];\n length += buffer.length;\n }\n target = Buffer.alloc(length);\n length = 0;\n for (k = 0, len1 = buffers.length; k < len1; k++) {\n buffer = buffers[k];\n buffer.copy(target, length);\n length += buffer.length;\n }\n return target;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler for the\n // 'readystatechange' event\n XMLHttpRequest.prototype.onreadystatechange = null;\n\n // @property {Number} the current state of the XHR object\n // @see http://www.w3.org/TR/XMLHttpRequest/#states\n XMLHttpRequest.prototype.readyState = null;\n\n // @property {String, ArrayBuffer, Buffer, Object} processed XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-response-attribute\n XMLHttpRequest.prototype.response = null;\n\n // @property {String} response string, if responseType is '' or 'text'\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute\n XMLHttpRequest.prototype.responseText = null;\n\n // @property {String} sets the parsing method for the XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetype-attribute\n XMLHttpRequest.prototype.responseType = null;\n\n // @property {Number} the HTTP\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute\n XMLHttpRequest.prototype.status = null;\n\n // @property {Number} milliseconds to wait for the request to complete\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute\n XMLHttpRequest.prototype.timeout = null;\n\n // @property {XMLHttpRequestUpload} the associated upload information\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute\n XMLHttpRequest.prototype.upload = null;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.prototype.UNSENT = 0;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.UNSENT = 0;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.prototype.OPENED = 1;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.OPENED = 1;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.prototype.HEADERS_RECEIVED = 2;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.prototype.LOADING = 3;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.LOADING = 3;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.prototype.DONE = 4;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.DONE = 4;\n\n // @property {http.Agent} the agent option passed to HTTP requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\n\n // @property {https.Agent} the agent option passed to HTTPS requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpsAgent = https.globalAgent;\n\n // @property {String} the base URL that relative URLs get resolved to\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // Its browser equivalent is the base URL of the document associated with the\n // Window object. It is a stable node-xhr2 API provided for libraries such as\n // Angular Universal.\n XMLHttpRequest.prototype.nodejsBaseUrl = null;\n\n // HTTP methods that are disallowed in the XHR spec.\n\n // @private\n // @see Step 6 in http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n XMLHttpRequest.prototype._restrictedMethods = {\n CONNECT: true,\n TRACE: true,\n TRACK: true\n };\n\n // HTTP request headers that are disallowed in the XHR spec.\n\n // @private\n // @see Step 5 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n XMLHttpRequest.prototype._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true\n };\n\n // HTTP response headers that should not be exposed according to the XHR spec.\n\n // @private\n // @see Step 3 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n XMLHttpRequest.prototype._privateHeaders = {\n 'set-cookie': true,\n 'set-cookie2': true\n };\n\n // The default value of the User-Agent header.\n XMLHttpRequest.prototype._userAgent = `Mozilla/5.0 (${os.type()} ${os.arch()}) ` + `node.js/${process.versions.node} v8/${process.versions.v8}`;\n\n return XMLHttpRequest;\n\n }).call(this);\n\n // XMLHttpRequest is the result of require('node-xhr2').\n module.exports = XMLHttpRequest;\n\n // Make node-xhr2 work as a drop-in replacement for libraries that promote the\n // following usage pattern:\n // var XMLHttpRequest = require('xhr-library-name').XMLHttpRequest\n XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;\n\n // This file defines the custom errors used in the XMLHttpRequest specification.\n\n // Thrown if the XHR security policy is violated.\n SecurityError = class SecurityError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if the XHR security policy is violated.\n XMLHttpRequest.SecurityError = SecurityError;\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {};\n\n XMLHttpRequest.InvalidStateError = InvalidStateError;\n\n // Thrown if there is a problem with the URL passed to the XHR.\n NetworkError = class NetworkError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if parsing URLs errors out.\n XMLHttpRequest.SyntaxError = SyntaxError;\n\n SyntaxError = class SyntaxError extends Error {\n // @private:\n constructor() {\n super();\n }\n\n };\n\n ProgressEvent = (function() {\n // http://xhr.spec.whatwg.org/#interface-progressevent\n class ProgressEvent {\n // Creates a new event.\n\n // @param {String} type the event type, e.g. 'readystatechange'; must be\n // lowercased\n constructor(type) {\n this.type = type;\n this.target = null;\n this.currentTarget = null;\n this.lengthComputable = false;\n this.loaded = 0;\n this.total = 0;\n }\n\n }\n // Getting the time from the OS is expensive, skip on that for now.\n // @timeStamp = Date.now()\n\n // @property {Boolean} for compatibility with DOM events\n ProgressEvent.prototype.bubbles = false;\n\n // @property {Boolean} for fompatibility with DOM events\n ProgressEvent.prototype.cancelable = false;\n\n // @property {XMLHttpRequest} the request that caused this event\n ProgressEvent.prototype.target = null;\n\n // @property {Number} number of bytes that have already been downloaded or\n // uploaded\n ProgressEvent.prototype.loaded = null;\n\n // @property {Boolean} true if the Content-Length response header is available\n // and the value of the event's total property is meaningful\n ProgressEvent.prototype.lengthComputable = null;\n\n // @property {Number} number of bytes that will be downloaded or uploaded by\n // the request that fired the event\n ProgressEvent.prototype.total = null;\n\n return ProgressEvent;\n\n }).call(this);\n\n // The XHR spec exports the ProgressEvent constructor.\n XMLHttpRequest.ProgressEvent = ProgressEvent;\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n XMLHttpRequestUpload = class XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n // @private\n // @param {XMLHttpRequest} the XMLHttpRequest that this upload object is\n // associated with\n constructor(request) {\n super();\n this._request = request;\n this._reset();\n }\n\n // Sets up this Upload to handle a new request.\n\n // @private\n // @return {undefined} undefined\n _reset() {\n this._contentType = null;\n this._body = null;\n return void 0;\n }\n\n // Implements the upload-related part of the send() XHR specification.\n\n // @private\n // @param {?String, ?Buffer, ?ArrayBufferView} data the argument passed to\n // XMLHttpRequest#send()\n // @return {undefined} undefined\n // @see step 4 of http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n _setData(data) {\n var body, i, j, k, offset, ref, ref1, view;\n if (typeof data === 'undefined' || data === null) {\n return;\n }\n if (typeof data === 'string') {\n // DOMString\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = Buffer.from(data, 'utf8');\n } else if (Buffer.isBuffer(data)) {\n // node.js Buffer\n this._body = data;\n } else if (data instanceof ArrayBuffer) {\n // ArrayBuffer arguments were supported in an old revision of the spec.\n body = Buffer.alloc(data.byteLength);\n view = new Uint8Array(data);\n for (i = j = 0, ref = data.byteLength; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n body[i] = view[i];\n }\n this._body = body;\n } else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n // ArrayBufferView\n body = Buffer.alloc(data.byteLength);\n offset = data.byteOffset;\n view = new Uint8Array(data.buffer);\n for (i = k = 0, ref1 = data.byteLength; (0 <= ref1 ? k < ref1 : k > ref1); i = 0 <= ref1 ? ++k : --k) {\n body[i] = view[i + offset];\n }\n this._body = body;\n } else {\n // NOTE: diverging from the XHR specification of coercing everything else\n // to Strings via toString() because that behavior masks bugs and is\n // rarely useful\n throw new Error(`Unsupported send() data ${data}`);\n }\n return void 0;\n }\n\n // Updates the HTTP headers right before the request is sent.\n\n // This is used to set data-dependent headers such as Content-Length and\n // Content-Type.\n\n // @private\n // @param {Object} headers the HTTP headers to be sent\n // @param {Object} loweredHeaders maps lowercased HTTP header\n // names (e.g., 'content-type') to the actual names used in the headers\n // parameter (e.g., 'Content-Type')\n // @return {undefined} undefined\n _finalizeHeaders(headers, loweredHeaders) {\n if (this._contentType) {\n if (!('content-type' in loweredHeaders)) {\n headers['Content-Type'] = this._contentType;\n }\n }\n if (this._body) {\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n headers['Content-Length'] = this._body.length.toString();\n }\n return void 0;\n }\n\n // Starts sending the HTTP request data.\n\n // @private\n // @param {http.ClientRequest} request the HTTP request\n // @return {undefined} undefined\n _startUpload(request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n return void 0;\n }\n\n };\n\n // Export the XMLHttpRequestUpload constructor.\n XMLHttpRequest.XMLHttpRequestUpload = XMLHttpRequestUpload;\n\n}).call(commonjsGlobal);\n});\n\nclass LangAdapter {\n constructor(context) {\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw (e);\n }\n let languageSource;\n try {\n const getLanguageSource = await axios.get(presignedUrl);\n languageSource = getLanguageSource.data;\n }\n catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw (e);\n }\n return languageSource;\n }\n}\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CloudflarePutAdapter_agent, _CloudflarePutAdapter_IPFS;\nclass CloudflarePutAdapter {\n constructor(context) {\n _CloudflarePutAdapter_agent.set(this, void 0);\n _CloudflarePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet(this, _CloudflarePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet(this, _CloudflarePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet(this, _CloudflarePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet(this, _CloudflarePutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n //Build the key value object for the meta object\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n // Content of the new object.\n value: JSON.stringify(expression),\n };\n //Save the meta information to the KV store\n const httpsAgent = new https__default[\"default\"].Agent({\n rejectUnauthorized: false\n });\n const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent });\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n //Build the key value object for the language bundle\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString(),\n };\n //Save the language bundle to the KV store\n const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent });\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n}\n_CloudflarePutAdapter_agent = new WeakMap(), _CloudflarePutAdapter_IPFS = new WeakMap();\n\nclass Adapter {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axios.get(presignedUrl);\n metaObject = getMetaObject.data;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\n\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports.PROXY_URL = PROXY_URL;\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" +} \ No newline at end of file diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index d9a29ed44..27f0d4d7c 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -1,5 +1,6 @@ use cid::Cid; use deno_core::{error::AnyError, include_js_files, op, Extension}; +use log::info; use multibase::Base; use multihash::{Code, MultihashDigest}; @@ -28,13 +29,12 @@ fn hash(data: String) -> Result { #[op] async fn load_module(path: String) -> Result { - println!("Trying to load module: {}", path); + info!("Trying to load module: {}", path); let js_core_handle = JS_CORE_HANDLE .lock() .expect("Could not get lock on js_core_handle"); - let res = js_core_handle.clone().unwrap().load_module(path).await; - println!("load module res: {:?}", res); + let _res = js_core_handle.clone().unwrap().load_module(path).await; Ok(String::from("temp")) } From da77fbec2bcc9d9ea1a02e6f14544b363adfd49c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 15:34:22 +0100 Subject: [PATCH 180/722] use new build process for direct-message-language --- .../agent-language/package.json | 3 +- .../direct-message-language/.gitignore | 3 + .../direct-message-language/adapter.ts | 8 ++- .../direct-message-language/index.ts | 4 +- .../direct-message-language/package.json | 15 ++-- .../rollup.config.hc-dna.js | 70 +++++++++++++++++++ 6 files changed, 91 insertions(+), 12 deletions(-) create mode 100644 bootstrap-languages/direct-message-language/rollup.config.hc-dna.js diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index 2dc8fdd19..52384b1c8 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -15,8 +15,7 @@ "build:linux": "yarn compile-dna && yarn build:common", "build:macos": "yarn compile-dna && yarn build:common", "build:windows": "yarn compile-dna-windows && yarn build:common", - "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && yarn deno-bundle", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && yarn deno-bundle" }, "author": "", "license": "ISC", diff --git a/bootstrap-languages/direct-message-language/.gitignore b/bootstrap-languages/direct-message-language/.gitignore index 3db53879e..4c83f529c 100644 --- a/bootstrap-languages/direct-message-language/.gitignore +++ b/bootstrap-languages/direct-message-language/.gitignore @@ -8,7 +8,10 @@ build/* *.js *.js.map !*.config.js +!rollup.config.hc-dna.js !dna.js node_modules target + +build/dna.js \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/adapter.ts b/bootstrap-languages/direct-message-language/adapter.ts index 47fe46f51..998c3b501 100644 --- a/bootstrap-languages/direct-message-language/adapter.ts +++ b/bootstrap-languages/direct-message-language/adapter.ts @@ -1,9 +1,10 @@ -import { DirectMessageAdapter, HolochainLanguageDelegate, LanguageContext, MessageCallback, Perspective, PerspectiveExpression } from "@perspect3vism/ad4m"; -import { DNA, DNA_NICK } from "./dna"; +import { DirectMessageAdapter, HolochainLanguageDelegate, LanguageContext, MessageCallback, Perspective, PerspectiveExpression } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import { DNA, DNA_NICK } from "./build/dna.js"; //@ad4m-template-variable const recipient_did = "" +//@ts-ignore export const sleep = ms => new Promise(r => setTimeout(r, ms)) export default class DMAdapter implements DirectMessageAdapter { @@ -60,6 +61,7 @@ export default class DMAdapter implements DirectMessageAdapter { async status(): Promise { let status = null try { + //@ts-ignore status = await this.#holochain.call(DNA_NICK, "direct-message", "get_status", null) } catch(e) { console.debug("DirectMessage Language couldn't get status:", e) @@ -99,7 +101,9 @@ export default class DMAdapter implements DirectMessageAdapter { async inbox(filter?: string): Promise { this.onlyRecipient() + //@ts-ignore await this.#holochain.call(DNA_NICK, "direct-message", "fetch_inbox", null) + //@ts-ignore return await this.#holochain.call(DNA_NICK, "direct-message", "inbox", filter) } diff --git a/bootstrap-languages/direct-message-language/index.ts b/bootstrap-languages/direct-message-language/index.ts index 87e1ff2ef..ecb010881 100644 --- a/bootstrap-languages/direct-message-language/index.ts +++ b/bootstrap-languages/direct-message-language/index.ts @@ -1,5 +1,5 @@ -import type { Address, Language, LanguageContext, Interaction } from "@perspect3vism/ad4m"; -import DMAdapter from "./adapter"; +import type { Address, Language, LanguageContext, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import DMAdapter from "./adapter.ts"; export const name = "direct-message-language"; diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json index 13e181ead..006490cb3 100644 --- a/bootstrap-languages/direct-message-language/package.json +++ b/bootstrap-languages/direct-message-language/package.json @@ -5,13 +5,16 @@ "main": "index.js", "scripts": { "test": "echo \"No direct message integration tests\"", - "build": "run-script-os", - "build:linux": "yarn run build-dna && tsc && rollup -c", - "build:macos": "yarn run build-dna && tsc && rollup -c", - "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", - "build-dna": "cd hc-dna && ./build.sh && cd ..", + "rollup-dna": "rollup -c rollup.config.hc-dna.js", + "compile-dna": "cd hc-dna && ./build.sh && cd ..", "build-nix": "yarn run build-dna && tsc && rollup -c", - "dev": "tsc && rollup -c -w" + "compile-dna-windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd ..", + "deno-bundle": "deno bundle index.ts build/bundle.js", + "build": "run-script-os", + "build:linux": "yarn compile-dna && yarn build:common", + "build:macos": "yarn compile-dna && yarn build:common", + "build:windows": "yarn compile-dna-windows && yarn build:common", + "build:common": "yarn rollup-dna && yarn deno-bundle" }, "author": "", "license": "ISC", diff --git a/bootstrap-languages/direct-message-language/rollup.config.hc-dna.js b/bootstrap-languages/direct-message-language/rollup.config.hc-dna.js new file mode 100644 index 000000000..cc27cd3c9 --- /dev/null +++ b/bootstrap-languages/direct-message-language/rollup.config.hc-dna.js @@ -0,0 +1,70 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; +import { string } from "rollup-plugin-string"; +import json from "@rollup/plugin-json"; +import dna from "@perspect3vism/rollup-plugin-dna"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: "dna.js", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "DirectMessageLanguage", + file: "build/dna.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + // copy({ + // assets: ['package.unbundled.json'] + // }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + json(), + dna(), + ], + watch: { + clearScreen: false, + }, +}; From 0b6b14b46bad8aaf6e0c9e978ba99a42c366ae1c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 16:12:17 +0100 Subject: [PATCH 181/722] have file-storage use new build structure --- bootstrap-languages/file-storage/.gitignore | 5 +- bootstrap-languages/file-storage/adapter.ts | 12 +- .../{noteExpressionUI.ts => expressionUI.ts} | 0 .../file-storage/file-storage.ts | 4 +- .../file-storage/hc-dna/tests/index.ts | 2 +- bootstrap-languages/file-storage/index.ts | 8 +- bootstrap-languages/file-storage/package.json | 16 +- .../file-storage/putAdapter.ts | 12 +- .../rollup.config.expression-ui.js | 25 +++ .../file-storage/rollup.config.hc-dna.js | 70 ++++++ .../file-storage/rollup.config.icons copy.js | 106 ++++++++++ .../file-storage/rollup.config.icons.js | 199 +++++++++--------- .../file-storage/rollup.config.js | 62 ------ bootstrap-languages/file-storage/types.ts | 12 +- .../neighbourhood-language/package.json | 2 +- yarn.lock | 40 ++-- 16 files changed, 360 insertions(+), 215 deletions(-) rename bootstrap-languages/file-storage/{noteExpressionUI.ts => expressionUI.ts} (100%) create mode 100644 bootstrap-languages/file-storage/rollup.config.expression-ui.js create mode 100644 bootstrap-languages/file-storage/rollup.config.hc-dna.js create mode 100644 bootstrap-languages/file-storage/rollup.config.icons copy.js delete mode 100644 bootstrap-languages/file-storage/rollup.config.js diff --git a/bootstrap-languages/file-storage/.gitignore b/bootstrap-languages/file-storage/.gitignore index 367a2eb3e..64a95a5b6 100644 --- a/bootstrap-languages/file-storage/.gitignore +++ b/bootstrap-languages/file-storage/.gitignore @@ -13,4 +13,7 @@ ad4m-test.log yarn-error.log -!dna.js \ No newline at end of file +!dna.js + +!rollup.config* +build/dna.js \ No newline at end of file diff --git a/bootstrap-languages/file-storage/adapter.ts b/bootstrap-languages/file-storage/adapter.ts index 68e35c44c..bc3170fea 100644 --- a/bootstrap-languages/file-storage/adapter.ts +++ b/bootstrap-languages/file-storage/adapter.ts @@ -1,9 +1,9 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; -import { FileStoragePutAdapter } from './putAdapter' -import pako from "pako"; -import { FileStorage } from "./file-storage"; -import { DNA_NICK } from "./dna"; -import type { FileExpression } from "./types"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import { FileStoragePutAdapter } from './putAdapter.ts' +import pako from "https://esm.sh/pako@2.1.0"; +import { FileStorage } from "./file-storage.ts"; +import { DNA_NICK } from "./build/dna.js"; +import type { FileExpression } from "./types.ts"; export default class Adapter implements ExpressionAdapter { putAdapter: PublicSharing diff --git a/bootstrap-languages/file-storage/noteExpressionUI.ts b/bootstrap-languages/file-storage/expressionUI.ts similarity index 100% rename from bootstrap-languages/file-storage/noteExpressionUI.ts rename to bootstrap-languages/file-storage/expressionUI.ts diff --git a/bootstrap-languages/file-storage/file-storage.ts b/bootstrap-languages/file-storage/file-storage.ts index 81e7e2ddc..829065dd5 100644 --- a/bootstrap-languages/file-storage/file-storage.ts +++ b/bootstrap-languages/file-storage/file-storage.ts @@ -1,5 +1,5 @@ -import type { FileExpression, EntryHash } from "./types"; -import { Blob } from "buffer"; +import type { FileExpression, EntryHash } from "./types.ts"; +//import { Blob } from "https://esm.sh/buffer@6.0.3"; type ZomeCallFn = (fn: string, params: any) => Promise; diff --git a/bootstrap-languages/file-storage/hc-dna/tests/index.ts b/bootstrap-languages/file-storage/hc-dna/tests/index.ts index 6ef01ffbc..564e0b4a6 100644 --- a/bootstrap-languages/file-storage/hc-dna/tests/index.ts +++ b/bootstrap-languages/file-storage/hc-dna/tests/index.ts @@ -3,7 +3,7 @@ import test from "tape-promise/tape.js"; import path from "path"; import { resolve } from "path"; import { FileStorage } from "../../file-storage"; -import { Blob } from "buffer"; +import { Blob } from "node:buffer"; const dnas = [{ source: {path: path.join("../workdir/file-storage.dna") } }]; diff --git a/bootstrap-languages/file-storage/index.ts b/bootstrap-languages/file-storage/index.ts index 6ae00788d..e4b921124 100644 --- a/bootstrap-languages/file-storage/index.ts +++ b/bootstrap-languages/file-storage/index.ts @@ -1,7 +1,7 @@ -import type { Address, Interaction, Agent, Language, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; -import Adapter from './adapter' -import { FileStorageUI } from './noteExpressionUI' -import { DNA, DNA_NICK } from "./dna"; +import type { Address, Interaction, Language, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import Adapter from './adapter.ts' +import { FileStorageUI } from "./build/expressionUI.js"; +import { DNA, DNA_NICK } from "./build/dna.js"; function interactions(expression: Address): Interaction[] { return [] diff --git a/bootstrap-languages/file-storage/package.json b/bootstrap-languages/file-storage/package.json index e6d30b778..b20035eea 100644 --- a/bootstrap-languages/file-storage/package.json +++ b/bootstrap-languages/file-storage/package.json @@ -6,13 +6,17 @@ "type": "module", "scripts": { "integration-test": "node ../../test-runner/build/cli.js --test ./integration.test.cjs --bundle ./build/bundle.js --meta '{\"name\":\"file-storage\",\"description\":\"An AD4M Language for file storage leveraging a holochain DNA\",\"sourceCodeLink\":\"https://github.com/perspect3vism/file-storage-language\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", + "rollup-icons": "rollup -c rollup.config.icons.js", + "rollup-dna": "rollup -c rollup.config.hc-dna.js", + "rollup-expression-ui": "rollup -c rollup.config.expression-ui.js", + "compile-dna": "cd hc-dna && ./build.sh && cd ..", + "compile-dna-windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd ..", + "deno-bundle": "deno bundle index.ts build/bundle.js", "build": "run-script-os", - "build:linux": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", - "build:macos": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", - "build:windows": "yarn run build-icons && cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", - "build-icons": "rollup -c rollup.config.icons.js", - "build-dna": "cd ./hc-dna && ./build.sh && cd ..", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + "build:linux": "yarn compile-dna && yarn build:common", + "build:macos": "yarn compile-dna && yarn build:common", + "build:windows": "yarn compile-dna-windows && yarn build:common", + "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && yarn deno-bundle" }, "author": "", "license": "ISC", diff --git a/bootstrap-languages/file-storage/putAdapter.ts b/bootstrap-languages/file-storage/putAdapter.ts index 3c81417f5..8232496e8 100644 --- a/bootstrap-languages/file-storage/putAdapter.ts +++ b/bootstrap-languages/file-storage/putAdapter.ts @@ -1,9 +1,9 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; -import pako from "pako"; -import { FileStorage } from "./file-storage"; -import { DNA_NICK } from "./dna"; -import { Blob } from "buffer"; -import type { FileExpression, FileMetadata } from "./types"; +import type { Address, AgentService, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import pako from "https://esm.sh/pako@2.1.0"; +import { FileStorage } from "./file-storage.ts"; +import { DNA_NICK } from "./build/dna.js"; +//import { Blob } from "https://esm.sh/buffer@6.0.3"; +import type { FileExpression, FileMetadata } from "./types.ts"; export interface FileData { name: string; diff --git a/bootstrap-languages/file-storage/rollup.config.expression-ui.js b/bootstrap-languages/file-storage/rollup.config.expression-ui.js new file mode 100644 index 000000000..4e986d631 --- /dev/null +++ b/bootstrap-languages/file-storage/rollup.config.expression-ui.js @@ -0,0 +1,25 @@ +import { string } from "rollup-plugin-string"; +import typescript from '@rollup/plugin-typescript'; + +export default { + input: "expressionUI.ts", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "FileStorageExpressionUI", + file: "build/expressionUI.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + typescript({include: "expressionUI.ts"}), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/file-storage/rollup.config.hc-dna.js b/bootstrap-languages/file-storage/rollup.config.hc-dna.js new file mode 100644 index 000000000..017cc0cb2 --- /dev/null +++ b/bootstrap-languages/file-storage/rollup.config.hc-dna.js @@ -0,0 +1,70 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; +import { string } from "rollup-plugin-string"; +import json from "@rollup/plugin-json"; +import dna from "@perspect3vism/rollup-plugin-dna"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: "dna.js", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "FileStorageLanguage", + file: "build/dna.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + // copy({ + // assets: ['package.unbundled.json'] + // }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + json(), + dna(), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/file-storage/rollup.config.icons copy.js b/bootstrap-languages/file-storage/rollup.config.icons copy.js new file mode 100644 index 000000000..557135681 --- /dev/null +++ b/bootstrap-languages/file-storage/rollup.config.icons copy.js @@ -0,0 +1,106 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; + +const production = !process.env.ROLLUP_WATCH; + +export default [ + { + input: "ConstructorIcon.svelte", + output: { + sourcemap: true, + format: "esm", + name: "ConstructorIcon", + file: "build/ConstructorIcon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, + { + input: "Icon.svelte", + output: { + sourcemap: true, + format: "es", + name: "Icon", + file: "build/Icon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, +]; diff --git a/bootstrap-languages/file-storage/rollup.config.icons.js b/bootstrap-languages/file-storage/rollup.config.icons.js index 500ea3f14..557135681 100644 --- a/bootstrap-languages/file-storage/rollup.config.icons.js +++ b/bootstrap-languages/file-storage/rollup.config.icons.js @@ -1,107 +1,106 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; import postcss from "rollup-plugin-postcss"; const production = !process.env.ROLLUP_WATCH; export default [ -{ - input: 'ConstructorIcon.svelte', - output: { - sourcemap: true, - format: 'cjs', - name: 'ConstructorIcon', - file: 'build/ConstructorIcon.js' - }, - plugins: [ - svelte({ - // enable run-time checks when not in production - dev: !production, - preprocess: sveltePreprocess(), - customElement: true, - }), + { + input: "ConstructorIcon.svelte", + output: { + sourcemap: true, + format: "esm", + name: "ConstructorIcon", + file: "build/ConstructorIcon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - //typescript({ sourceMap: !production }), - - // If we're building for production (npm run build - // instead of npm run dev), minify - //production && terser() - ], - watch: { - clearScreen: false - } -}, -{ - input: 'Icon.svelte', - output: { - sourcemap: true, - format: 'cjs', - name: 'Icon', - file: 'build/Icon.js' - }, - plugins: [ - svelte({ - // enable run-time checks when not in production - dev: !production, - preprocess: sveltePreprocess(), - customElement: true, - }), + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - //typescript({ sourceMap: !production }), - - // If we're building for production (npm run build - // instead of npm run dev), minify - //production && terser() - ], - watch: { - clearScreen: false - } -} -] + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, + { + input: "Icon.svelte", + output: { + sourcemap: true, + format: "es", + name: "Icon", + file: "build/Icon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, +]; diff --git a/bootstrap-languages/file-storage/rollup.config.js b/bootstrap-languages/file-storage/rollup.config.js deleted file mode 100644 index 0e637b82c..000000000 --- a/bootstrap-languages/file-storage/rollup.config.js +++ /dev/null @@ -1,62 +0,0 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; -import postcss from "rollup-plugin-postcss"; -import { string } from 'rollup-plugin-string' -import dna from "@perspect3vism/rollup-plugin-dna"; - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: 'index.js', - output: { - sourcemap: true, - format: 'cjs', - name: 'NoteIpfs', - file: 'build/bundle.js' - }, - plugins: [ - string({ - include: 'build/*.js' - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - dna(), - ], - watch: { - clearScreen: false - } -} diff --git a/bootstrap-languages/file-storage/types.ts b/bootstrap-languages/file-storage/types.ts index 5a8d39dde..d76e82426 100644 --- a/bootstrap-languages/file-storage/types.ts +++ b/bootstrap-languages/file-storage/types.ts @@ -1,13 +1,13 @@ -import { ExpressionGeneric } from "@perspect3vism/ad4m"; +import { ExpressionGeneric } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; export type EntryHash = Uint8Array; export class FileMetadata { - name: string; - size: number; - file_type: string; - checksum: string; - chunks_hashes: Array; + name: string = ""; + size: number = 0; + file_type: string = ""; + checksum: string = ""; + chunks_hashes: Array = []; } export class FileExpression extends ExpressionGeneric(FileMetadata) {} ; diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index faa3f77c6..b848bafcb 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "test": "echo \"No neighbourhood language integration tests\"", - "build": "deno bundle index.ts > bundle.js" + "build": "deno bundle index.ts build/bundle.js" }, "author": "joshuadparkin@gmail.com", "license": "ISC" diff --git a/yarn.lock b/yarn.lock index f98446064..6af375ee8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2776,6 +2776,14 @@ "@rollup/pluginutils" "^3.1.0" magic-string "^0.25.7" +"@rollup/plugin-typescript@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.0.tgz#4dd2a98475a791200d3e4dd1b8234073ad96c535" + integrity sha512-86flrfE+bSHB69znnTV6kVjkncs2LBMhcTCyxWgRxLyfXfQrxg4UwlAqENnjrrxnSNS/XKCDJCl8EkdFJVHOxw== + dependencies: + "@rollup/pluginutils" "^5.0.1" + resolve "^1.22.1" + "@rollup/plugin-typescript@^4.0.0": version "4.1.2" resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-4.1.2.tgz#6f910430276ae3e53a47a12ad65820627e7b6ad9" @@ -2801,6 +2809,15 @@ estree-walker "^2.0.1" picomatch "^2.2.2" +"@rollup/pluginutils@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" + integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + "@rushstack/eslint-patch@^1.1.0", "@rushstack/eslint-patch@^1.1.3": version "1.2.0" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" @@ -3589,7 +3606,7 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": +"@types/estree@*", "@types/estree@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== @@ -5196,13 +5213,6 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== -axios@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - axobject-query@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" @@ -8827,7 +8837,7 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== -estree-walker@^2.0.1: +estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== @@ -9350,7 +9360,7 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@^1.0.0, follow-redirects@^1.14.8: +follow-redirects@^1.0.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -13859,11 +13869,6 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -multiformats@11.0.2: - version "11.0.2" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60" - integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg== - multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.1: version "9.9.0" resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" @@ -20214,11 +20219,6 @@ xdg-basedir@^4.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== -xhr2@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.2.1.tgz#4e73adc4f9cfec9cbd2157f73efdce3a5f108a93" - integrity sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw== - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" From 7e7877eb959cbe7515c3a379e4da868076289623 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 16:20:25 +0100 Subject: [PATCH 182/722] conver p diff sync to new build structure --- .../neighbourhood-language/rollup.config.js | 59 ------------------- bootstrap-languages/p-diff-sync/index.ts | 8 +-- .../p-diff-sync/linksAdapter.ts | 17 +++++- bootstrap-languages/p-diff-sync/package.json | 11 ++-- ...llup.config.js => rollup.config.hc-dna.js} | 6 +- .../p-diff-sync/telepresenceAdapter.ts | 5 +- 6 files changed, 30 insertions(+), 76 deletions(-) delete mode 100644 bootstrap-languages/neighbourhood-language/rollup.config.js rename bootstrap-languages/p-diff-sync/{rollup.config.js => rollup.config.hc-dna.js} (95%) diff --git a/bootstrap-languages/neighbourhood-language/rollup.config.js b/bootstrap-languages/neighbourhood-language/rollup.config.js deleted file mode 100644 index 86f4995c4..000000000 --- a/bootstrap-languages/neighbourhood-language/rollup.config.js +++ /dev/null @@ -1,59 +0,0 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -import sveltePreprocess from 'svelte-preprocess'; -import postcss from "rollup-plugin-postcss"; -import { string } from 'rollup-plugin-string' - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: 'index.js', - output: { - sourcemap: true, - format: 'cjs', - name: 'NoteIpfs', - file: 'build/bundle.js' - }, - plugins: [ - string({ - include: 'build/*.js' - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: false, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }) - ], - watch: { - clearScreen: false - } -} diff --git a/bootstrap-languages/p-diff-sync/index.ts b/bootstrap-languages/p-diff-sync/index.ts index 054b540a3..57256f6c3 100644 --- a/bootstrap-languages/p-diff-sync/index.ts +++ b/bootstrap-languages/p-diff-sync/index.ts @@ -1,7 +1,7 @@ -import type { Address, Language, Interaction, HolochainLanguageDelegate, LanguageContext, AgentService } from "@perspect3vism/ad4m"; -import { LinkAdapter } from "./linksAdapter"; -import { TelepresenceAdapterImplementation } from "./telepresenceAdapter"; -import { DNA, DNA_NICK, ZOME_NAME } from "./dna"; +import type { Address, Language, Interaction, HolochainLanguageDelegate, LanguageContext, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import { LinkAdapter } from "./linksAdapter.ts"; +import { TelepresenceAdapterImplementation } from "./telepresenceAdapter.ts"; +import { DNA, DNA_NICK, ZOME_NAME } from "./build/dna.js"; function interactions(expression: Address): Interaction[] { return []; diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index 225670292..c184f4950 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -1,10 +1,12 @@ import { LinkSyncAdapter, PerspectiveDiffObserver, HolochainLanguageDelegate, LanguageContext, PerspectiveDiff, - LinkExpression, DID, Perspective, PerspectiveState } from "@perspect3vism/ad4m"; -import type { SyncStateChangeObserver } from "@perspect3vism/ad4m"; -import { DNA_NICK, ZOME_NAME } from "./dna"; + LinkExpression, DID, Perspective, PerspectiveState } from "https://esm.sh/@perspect3vism/ad4m@0.3.4";; +import type { SyncStateChangeObserver } from "https://esm.sh/@perspect3vism/ad4m@0.3.4";; +import { DNA_NICK, ZOME_NAME } from "./build/dna.js"; class PeerInfo { + //@ts-ignore currentRevision: Buffer; + //@ts-ignore lastSeen: Date; }; @@ -34,10 +36,12 @@ export class LinkAdapter implements LinkSyncAdapter { } async others(): Promise { + //@ts-ignore return await this.hcDna.call(DNA_NICK, ZOME_NAME, "get_others", null); } async currentRevision(): Promise { + //@ts-ignore let res = await this.hcDna.call(DNA_NICK, ZOME_NAME, "current_revision", null); return res as string; } @@ -45,6 +49,7 @@ export class LinkAdapter implements LinkSyncAdapter { async sync(): Promise { try { await this.currentRevisionMutex.lock(); + //@ts-ignore let current_revision = await this.hcDna.call(DNA_NICK, ZOME_NAME, "sync", null); if (current_revision && Buffer.isBuffer(current_revision)) { this.myCurrentRevision = current_revision; @@ -117,8 +122,10 @@ export class LinkAdapter implements LinkSyncAdapter { } } + //@ts-ignore generateRevisionStates(this.myCurrentRevision); + //@ts-ignore checkSyncState(this.syncStateChangeCallback); for (const hash of Array.from(revisions)) { @@ -133,7 +140,9 @@ export class LinkAdapter implements LinkSyncAdapter { let myRevision = pullResult.current_revision; this.myCurrentRevision = myRevision; + //@ts-ignore generateRevisionStates(this.myCurrentRevision); + //@ts-ignore checkSyncState(this.syncStateChangeCallback); } } @@ -167,6 +176,7 @@ export class LinkAdapter implements LinkSyncAdapter { } async render(): Promise { + //@ts-ignore let res = await this.hcDna.call(DNA_NICK, ZOME_NAME, "render", null); return new Perspective(res.links); } @@ -235,6 +245,7 @@ export class LinkAdapter implements LinkSyncAdapter { DNA_NICK, ZOME_NAME, "add_active_agent_link", + //@ts-ignore null ); } diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index 7cf7aa87a..0596ed476 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -6,11 +6,12 @@ "scripts": { "build-dna": "cd hc-dna && ./build.sh && cd ..", "build": "run-script-os", - "build:linux": "yarn run build-dna && tsc && rollup -c", - "build:macos": "yarn run build-dna && tsc && rollup -c", - "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", - "build-lang": "tsc && rollup -c", - "dev": "tsc && rollup -c -w", + "build:linux": "yarn run build-dna && yarn run build-common", + "build:macos": "yarn run build-dna && yarn run build-common", + "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && yarn run build-common", + "deno-bundle": "deno bundle index.ts build/bundle.js", + "rollup-dna": "rollup -c rollup.config.hc-dna.js", + "build-common": "yarn run rollup-dna && yarn run deno-bundle", "integration-test": "node ../../test-runner/build/cli.js --test ./integration-test.js --bundle \"./build/bundle.js\" --meta '{\"name\":\"p-diff-sync\",\"description\":\"Holochain based language for sharing Perspectives\",\"sourceCodeLink\":\"https://github.com/perspect3vism/perspective-diff-sync\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'" }, "author": "", diff --git a/bootstrap-languages/p-diff-sync/rollup.config.js b/bootstrap-languages/p-diff-sync/rollup.config.hc-dna.js similarity index 95% rename from bootstrap-languages/p-diff-sync/rollup.config.js rename to bootstrap-languages/p-diff-sync/rollup.config.hc-dna.js index 667127b07..a1c1e1bbf 100644 --- a/bootstrap-languages/p-diff-sync/rollup.config.js +++ b/bootstrap-languages/p-diff-sync/rollup.config.hc-dna.js @@ -11,13 +11,13 @@ import dna from "@perspect3vism/rollup-plugin-dna"; const production = !process.env.ROLLUP_WATCH; export default { - input: "index.js", + input: "dna.js", external: [], output: { sourcemap: true, format: "esm", - name: "JuntoPerspective", - file: "build/bundle.js", + name: "PDiffSyncLanguage", + file: "build/dna.js", interop: "esModule", globals: {}, }, diff --git a/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts b/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts index adec989a8..3181e136c 100644 --- a/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts +++ b/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts @@ -1,5 +1,5 @@ -import type { TelepresenceAdapter, OnlineAgent, PerspectiveExpression, TelepresenceSignalCallback, HolochainLanguageDelegate, LanguageContext } from "@perspect3vism/ad4m"; -import { DNA_NICK, ZOME_NAME } from "./dna"; +import type { TelepresenceAdapter, OnlineAgent, PerspectiveExpression, TelepresenceSignalCallback, HolochainLanguageDelegate, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4";; +import { DNA_NICK, ZOME_NAME } from "./build/dna.js"; export class TelepresenceAdapterImplementation implements TelepresenceAdapter { hcDna: HolochainLanguageDelegate; @@ -14,6 +14,7 @@ export class TelepresenceAdapterImplementation implements TelepresenceAdapter { } async getOnlineAgents(): Promise { + //@ts-ignore const getActiveAgents = await this.hcDna.call(DNA_NICK, ZOME_NAME, "get_active_agents", null); let calls = []; for (const activeAgent of getActiveAgents) { From dc6f033f70d21e9b7f72ebfc65a040e0e5db5164 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 16:34:42 +0100 Subject: [PATCH 183/722] replace perspective-language implementation with dummy implementation (no ipfs) & use new build process --- .../perspective-language/.gitignore | 3 +- .../perspective-language/adapter.ts | 35 ++- .../{noteExpressionUI.ts => expressionUI.ts} | 2 +- .../perspective-language/index.ts | 8 +- .../perspective-language/package.json | 8 +- .../perspective-language/putAdapter.ts | 44 ++-- .../rollup.config.expression-ui.js | 25 +++ .../rollup.config.icons.js | 199 +++++++++--------- .../perspective-language/rollup.config.js | 60 ------ 9 files changed, 173 insertions(+), 211 deletions(-) rename bootstrap-languages/perspective-language/{noteExpressionUI.ts => expressionUI.ts} (82%) create mode 100644 bootstrap-languages/perspective-language/rollup.config.expression-ui.js delete mode 100644 bootstrap-languages/perspective-language/rollup.config.js diff --git a/bootstrap-languages/perspective-language/.gitignore b/bootstrap-languages/perspective-language/.gitignore index 75022ca18..22ce42e8b 100644 --- a/bootstrap-languages/perspective-language/.gitignore +++ b/bootstrap-languages/perspective-language/.gitignore @@ -4,4 +4,5 @@ node_modules build !rollup.config.js -!rollup.config.icons.js \ No newline at end of file +!rollup.config.icons.js +!rollup.config* \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/adapter.ts b/bootstrap-languages/perspective-language/adapter.ts index c368d4a2d..17b6c1b67 100644 --- a/bootstrap-languages/perspective-language/adapter.ts +++ b/bootstrap-languages/perspective-language/adapter.ts @@ -1,32 +1,29 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; -import { IpfsPutAdapter } from './putAdapter' -import { toString as uint8ArrayToString } from 'uint8arrays/to-string' -import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; -import type { IPFS } from "ipfs-core-types"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import { IpfsPutAdapter } from './putAdapter.ts' +// import { toString as uint8ArrayToString } from 'uint8arrays/to-string' +// import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; export default class Adapter implements ExpressionAdapter { - #IPFS: IPFS - putAdapter: PublicSharing constructor(context: LanguageContext) { - this.#IPFS = context.IPFS this.putAdapter = new IpfsPutAdapter(context) } async get(address: Address): Promise { - const cid = address.toString() + console.log("PerspectiveLanguage: Sorry language has not been implemented yet!"); + // const cid = address.toString() - const chunks = [] - // @ts-ignore - for await (const chunk of this.#IPFS.cat(cid)) { - chunks.push(chunk) - } + // const chunks = [] + // // @ts-ignore + // for await (const chunk of this.#IPFS.cat(cid)) { + // chunks.push(chunk) + // } - const fileString = uint8ArrayToString(uint8ArrayConcat(chunks)); - const fileJson = JSON.parse(fileString) - //pin file to help persistence - await this.#IPFS.pin.add(cid); - return fileJson + // const fileString = uint8ArrayToString(uint8ArrayConcat(chunks)); + // const fileJson = JSON.parse(fileString) + // //pin file to help persistence + // await this.#IPFS.pin.add(cid); + return null } } \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/noteExpressionUI.ts b/bootstrap-languages/perspective-language/expressionUI.ts similarity index 82% rename from bootstrap-languages/perspective-language/noteExpressionUI.ts rename to bootstrap-languages/perspective-language/expressionUI.ts index 713f0542a..310d1852c 100644 --- a/bootstrap-languages/perspective-language/noteExpressionUI.ts +++ b/bootstrap-languages/perspective-language/expressionUI.ts @@ -2,7 +2,7 @@ import type { ExpressionUI } from "@perspect3vism/ad4m"; import Icon from './build/Icon.js' import ConstructorIcon from './build/ConstructorIcon.js' -export class NoteExpressionUI implements ExpressionUI { +export class UI implements ExpressionUI { icon(): string { return Icon } diff --git a/bootstrap-languages/perspective-language/index.ts b/bootstrap-languages/perspective-language/index.ts index 3a34f51af..4dbc9c114 100644 --- a/bootstrap-languages/perspective-language/index.ts +++ b/bootstrap-languages/perspective-language/index.ts @@ -1,6 +1,6 @@ -import type { Address, Interaction, Agent, Language, LanguageContext } from "@perspect3vism/ad4m"; -import Adapter from './adapter' -import { NoteExpressionUI } from './noteExpressionUI' +import type { Address, Interaction, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import Adapter from './adapter.ts' +import { UI } from "./build/expressionUI.js"; function interactions(expression: Address): Interaction[] { return [] @@ -8,7 +8,7 @@ function interactions(expression: Address): Interaction[] { export default function create(context: LanguageContext): Language { const expressionAdapter = new Adapter(context) - const expressionUI = new NoteExpressionUI() + const expressionUI = new UI() return { name: 'perspective-language', diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index a6354dbd8..dea97c654 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -5,9 +5,11 @@ "main": "index.js", "scripts": { "test": "echo \"No perspective language integration tests\"", - "build-icons": "rollup -c rollup.config.icons.js", - "build": "yarn run build-icons && tsc && rollup -c", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + "rollup-icons": "rollup -c rollup.config.icons.js", + "rollup-expression-ui": "rollup -c rollup.config.expression-ui.js", + "deno-bundle": "deno bundle index.ts build/bundle.js", + "build": "yarn run build:common", + "build:common": "yarn rollup-icons && yarn rollup-expression-ui && yarn deno-bundle" }, "author": "", "license": "ISC", diff --git a/bootstrap-languages/perspective-language/putAdapter.ts b/bootstrap-languages/perspective-language/putAdapter.ts index 831b1cedf..573fc1d91 100644 --- a/bootstrap-languages/perspective-language/putAdapter.ts +++ b/bootstrap-languages/perspective-language/putAdapter.ts @@ -1,37 +1,35 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, Perspective } from "@perspect3vism/ad4m"; -import type { IPFS } from "ipfs-core-types"; +import type { Address, AgentService, PublicSharing, LanguageContext, Perspective } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; export class IpfsPutAdapter implements PublicSharing { #agent: AgentService - #IPFS: IPFS constructor(context: LanguageContext) { this.#agent = context.agent - this.#IPFS = context.IPFS } async createPublic(perspective: object): Promise
{ - try { - //@ts-ignore - perspective = JSON.parse(perspective) - }catch(e){ + console.log("PerspectiveLanguage: Sorry language has not been implemented yet!"); + // try { + // //@ts-ignore + // perspective = JSON.parse(perspective) + // }catch(e){ - } - if (typeof perspective === "object" && perspective.hasOwnProperty('links')) { - const P = perspective as Perspective - if (typeof P.links !== "object") { - throw new Error('invalid link property type') - } - } - else { - throw new Error('invalid object type') - } + // } + // if (typeof perspective === "object" && perspective.hasOwnProperty('links')) { + // const P = perspective as Perspective + // if (typeof P.links !== "object") { + // throw new Error('invalid link property type') + // } + // } + // else { + // throw new Error('invalid object type') + // } - const agent = this.#agent - const expression = agent.createSignedExpression(perspective) - const content = JSON.stringify(expression) - const result = await this.#IPFS.add({content}) + // const agent = this.#agent + // const expression = agent.createSignedExpression(perspective) + // const content = JSON.stringify(expression) + // const result = await this.#IPFS.add({content}) // @ts-ignore - return result.cid.toString() as Address + return "" as Address } } \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/rollup.config.expression-ui.js b/bootstrap-languages/perspective-language/rollup.config.expression-ui.js new file mode 100644 index 000000000..6ee1236d1 --- /dev/null +++ b/bootstrap-languages/perspective-language/rollup.config.expression-ui.js @@ -0,0 +1,25 @@ +import { string } from "rollup-plugin-string"; +import typescript from '@rollup/plugin-typescript'; + +export default { + input: "expressionUI.ts", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "PerspectiveLanguageExpressionUI", + file: "build/expressionUI.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + typescript({include: "expressionUI.ts"}), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/perspective-language/rollup.config.icons.js b/bootstrap-languages/perspective-language/rollup.config.icons.js index 500ea3f14..557135681 100644 --- a/bootstrap-languages/perspective-language/rollup.config.icons.js +++ b/bootstrap-languages/perspective-language/rollup.config.icons.js @@ -1,107 +1,106 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; import postcss from "rollup-plugin-postcss"; const production = !process.env.ROLLUP_WATCH; export default [ -{ - input: 'ConstructorIcon.svelte', - output: { - sourcemap: true, - format: 'cjs', - name: 'ConstructorIcon', - file: 'build/ConstructorIcon.js' - }, - plugins: [ - svelte({ - // enable run-time checks when not in production - dev: !production, - preprocess: sveltePreprocess(), - customElement: true, - }), + { + input: "ConstructorIcon.svelte", + output: { + sourcemap: true, + format: "esm", + name: "ConstructorIcon", + file: "build/ConstructorIcon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - //typescript({ sourceMap: !production }), - - // If we're building for production (npm run build - // instead of npm run dev), minify - //production && terser() - ], - watch: { - clearScreen: false - } -}, -{ - input: 'Icon.svelte', - output: { - sourcemap: true, - format: 'cjs', - name: 'Icon', - file: 'build/Icon.js' - }, - plugins: [ - svelte({ - // enable run-time checks when not in production - dev: !production, - preprocess: sveltePreprocess(), - customElement: true, - }), + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - //typescript({ sourceMap: !production }), - - // If we're building for production (npm run build - // instead of npm run dev), minify - //production && terser() - ], - watch: { - clearScreen: false - } -} -] + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, + { + input: "Icon.svelte", + output: { + sourcemap: true, + format: "es", + name: "Icon", + file: "build/Icon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, +]; diff --git a/bootstrap-languages/perspective-language/rollup.config.js b/bootstrap-languages/perspective-language/rollup.config.js deleted file mode 100644 index 18e1ed4c4..000000000 --- a/bootstrap-languages/perspective-language/rollup.config.js +++ /dev/null @@ -1,60 +0,0 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; -import postcss from "rollup-plugin-postcss"; -import { string } from 'rollup-plugin-string' - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: 'index.js', - output: { - sourcemap: true, - format: 'cjs', - name: 'NoteIpfs', - file: 'build/bundle.js' - }, - plugins: [ - string({ - include: 'build/*.js' - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - ], - watch: { - clearScreen: false - } -} From fd571bcded92b540f72c9cafcc1697fc358ec859 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 17:33:54 +0100 Subject: [PATCH 184/722] fix language build errors --- bootstrap-languages/language-language/package.json | 2 +- .../zomes/perspective_diff_sync/src/link_adapter/commit.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap-languages/language-language/package.json b/bootstrap-languages/language-language/package.json index 3cbf6d414..bd51a4d3a 100644 --- a/bootstrap-languages/language-language/package.json +++ b/bootstrap-languages/language-language/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "test": "echo \"No language language integration tests\"", - "build": "deno bundle index.ts > build/bundle.js" + "build": "deno bundle index.ts build/bundle.js" }, "author": "joshuadparkin@gmail.com", "license": "ISC" diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs index e766de24b..2163d7261 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs @@ -1,4 +1,4 @@ -use chrono::Timelike; +//use chrono::Timelike; use hdk::prelude::*; use perspective_diff_sync_integrity::{ EntryTypes, HashBroadcast, LinkTypes, PerspectiveDiff, PerspectiveDiffEntryReference, From 6ff7f4526ce48414748a69e35e196144bdb5ba78 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 17:57:21 +0100 Subject: [PATCH 185/722] fix agent service key parsing --- executor/src/core/agent/AgentService.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index e5a829b32..05cc1a109 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -112,7 +112,9 @@ export default class AgentService { const key = this.getSigningKey(); //@ts-ignore - const privKey = Uint8Array.from(Buffer.from(key.privateKey, key.encoding)); + let buf = Buffer.from(key.private_key, key.encoding); + //@ts-ignore + const privKey = Uint8Array.from(buf); const sigObj = secp256k1.ecdsaSign(payloadBytes, privKey); const sigBuffer = Buffer.from(sigObj.signature); From d95919341c5642eb15d03f6079b870f6259916a7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 17:57:43 +0100 Subject: [PATCH 186/722] add bootstrap seed path to init executor logs --- executor/src/main.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/executor/src/main.ts b/executor/src/main.ts index c83cafc8e..8d3f6ddc4 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -168,6 +168,7 @@ export async function init(config: OuterConfig): Promise { "Language aliases:", languageAliases, "\n", "Bootstrap fixtures:", bootstrapFixtures, "\n", "Resource path:", resourcePath, "\n", + "Bootstrap seed:", networkBootstrapSeed, "\n", "\x1b[0m" ); From 49b3e099e6d3a05f7aa0d6e5b3087c583181199b Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 17:58:13 +0100 Subject: [PATCH 187/722] always write last seen file if it is not present --- rust-executor/src/init.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index c55bfc2ba..71d509a7d 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -38,6 +38,11 @@ pub fn init( fs::write(&last_seen_file, AD4M_VERSION.to_string())?; }; + if !last_seen_file.exists() { + //Create the last seen version file + fs::write(&last_seen_file, AD4M_VERSION.to_string())?; + } + let latest_seen_version = fs::read_to_string(&last_seen_file)?; info!("Current last seen version is: {}", latest_seen_version); let last_seen_version = Version::parse(&latest_seen_version)?; From 237cf7d5c1f1d697ec7d3da24029b1dd36934370 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 17:58:54 +0100 Subject: [PATCH 188/722] try init logger on run incase it has already been init'd by executor init fn call --- rust-executor/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 79c7cb938..2431bf8c1 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -18,7 +18,7 @@ pub use config::Ad4mConfig; /// Runs the GraphQL server and the deno core runtime pub async fn run(config: Ad4mConfig) { env::set_var("RUST_LOG", "rust_executor=info"); - env_logger::init(); + let _ = env_logger::try_init(); info!("Starting js_core..."); let mut js_core_handle = JsCore::start(config); From 731dd9a8fb0a78e48db3f2f0a8d361eb2bb0df44 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 17:59:05 +0100 Subject: [PATCH 189/722] add debug to rust Wallet --- rust-executor/src/wallet.rs | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index 6470613ea..671b6844b 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -42,10 +42,10 @@ fn padded(passphrase: String) -> String { passphrase } - fn encrypt(payload: String, passphrase: String) -> String { let passphrase = padded(passphrase); - let b64_passphrase = base64::engine::general_purpose::STANDARD_NO_PAD.encode(passphrase.as_bytes()); + let b64_passphrase = + base64::engine::general_purpose::STANDARD_NO_PAD.encode(passphrase.as_bytes()); let salt = Salt::from_b64(&b64_passphrase).expect("salt from passphrase to work"); // Derive secret key from passphrase @@ -72,14 +72,17 @@ fn encrypt(payload: String, passphrase: String) -> String { let nonce = Nonce::default(); // Encrypt - let encrypted_data = crypto_box.encrypt(&nonce.into(), payload.as_bytes()).unwrap(); + let encrypted_data = crypto_box + .encrypt(&nonce.into(), payload.as_bytes()) + .unwrap(); base64::engine::general_purpose::STANDARD_NO_PAD.encode(encrypted_data) } fn decrypt(payload: String, passphrase: String) -> Result { let passphrase = padded(passphrase); - let b64_passphrase = base64::engine::general_purpose::STANDARD_NO_PAD.encode(passphrase.as_bytes()); + let b64_passphrase = + base64::engine::general_purpose::STANDARD_NO_PAD.encode(passphrase.as_bytes()); let salt = Salt::from_b64(&b64_passphrase).expect("salt from passphrase to work"); // Derive secret key from passphrase @@ -114,7 +117,7 @@ fn decrypt(payload: String, passphrase: String) -> Result, pub public: Vec, @@ -129,7 +132,7 @@ impl Key { } } -#[derive(Serialize, Deserialize, Clone)] +#[derive(Serialize, Deserialize, Clone, Debug)] struct Keys { pub by_name: BTreeMap, } @@ -142,6 +145,7 @@ impl Keys { } } +#[derive(Debug)] pub struct Wallet { cipher: Option, keys: Option, @@ -263,13 +267,19 @@ mod tests { #[test] fn test_slice_to_u8_array() { - let slice: &[u8] = &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]; + let slice: &[u8] = &[ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, + ]; let result = slice_to_u8_array(slice).unwrap(); assert_eq!(slice, &result); let slice_short: &[u8] = &[1, 2, 3]; let result = slice_to_u8_array(slice_short).unwrap(); - let expected: [u8; 32] = [1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + let expected: [u8; 32] = [ + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, + ]; assert_eq!(expected, result); } From af16bc08fefbd5f21be624a238688b4591a1e00d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 18:31:16 +0100 Subject: [PATCH 190/722] integrate generate bootstrap cli function with rust executor --- cli/src/bootstrap_publish.rs | 64 ++------------------------ cli/src/dev.rs | 89 +++++++++++++++++++++--------------- 2 files changed, 55 insertions(+), 98 deletions(-) diff --git a/cli/src/bootstrap_publish.rs b/cli/src/bootstrap_publish.rs index 623e22e99..6df1a2fae 100644 --- a/cli/src/bootstrap_publish.rs +++ b/cli/src/bootstrap_publish.rs @@ -1,12 +1,8 @@ use ad4m_client::Ad4mClient; -use anyhow::Result; -use colour::{blue_ln, green_ln}; +use colour::green_ln; use serde::{Deserialize, Serialize}; -use std::io::{BufRead, BufReader}; -use std::path::PathBuf; +use std::fs; use std::process::exit; -use std::sync::mpsc::Sender; -use std::{fs, process::Stdio}; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct SeedProto { @@ -60,55 +56,6 @@ pub struct BootstrapSeed { pub language_language_bundle: String, } -pub fn serve_ad4m_host( - ad4m_host_path: String, - data_path: PathBuf, - sender: Sender, -) -> Result<()> { - let mut ad4m_host_publish = std::process::Command::new(ad4m_host_path) - .arg("serve") - .arg("--languageLanguageOnly") - .arg("true") - .arg("--dataPath") - .arg(data_path) - .stdout(Stdio::piped()) - .stderr(Stdio::piped()) - .spawn()?; - blue_ln!("ad4m-host serve started"); - blue_ln!("Listening for stdout..."); - - let stdout = ad4m_host_publish.stdout.take().unwrap(); - let stderr = ad4m_host_publish.stderr.take().unwrap(); - let mut f = BufReader::new(stdout); - let mut f_e = BufReader::new(stderr); - std::thread::spawn(move || loop { - let mut buf = String::new(); - - match f.read_line(&mut buf) { - Ok(_) => { - if !buf.is_empty() { - sender.send(buf).unwrap(); - } - } - Err(e) => println!("an error!: {:?}", e), - } - }); - - std::thread::spawn(move || loop { - let mut buf_e = String::new(); - match f_e.read_line(&mut buf_e) { - Ok(_) => { - if !buf_e.is_empty() { - println!("{}", buf_e); - } - } - Err(e) => println!("an error!: {:?}", e), - } - }); - - Ok(()) -} - //Generates an ad4m client, unlocks the agent and then publishes the languages found in the seed proto. //After that it will generate a new bootstrap seed and save to the current directory pub async fn start_publishing( @@ -116,10 +63,7 @@ pub async fn start_publishing( seed_proto: SeedProto, language_language_bundle: String, ) { - let ad4m_client = Ad4mClient::new( - "http://localhost:4000/graphql".to_string(), - "".to_string() - ); + let ad4m_client = Ad4mClient::new("http://localhost:4000/graphql".to_string(), "".to_string()); let agent = ad4m_client .agent @@ -131,7 +75,7 @@ pub async fn start_publishing( println!("Error unlocking agent: {}", error); exit(1); } - + green_ln!("Unlocked agent\n"); let mut languages = vec![]; diff --git a/cli/src/dev.rs b/cli/src/dev.rs index 203e2b3e7..4a55b9cf2 100644 --- a/cli/src/dev.rs +++ b/cli/src/dev.rs @@ -1,9 +1,7 @@ - -use anyhow::{Result}; +use anyhow::Result; use clap::Subcommand; -use colour::{self, blue_ln, green_ln}; +use colour::{self, green_ln}; use std::fs; -use std::sync::mpsc::channel; use crate::bootstrap_publish::*; @@ -45,7 +43,7 @@ pub async fn run(command: DevFunctions) -> Result<()> { if data_path_files.is_ok() { fs::remove_dir_all(&data_path)?; } - //Create the ad4m directory + // //Create the ad4m directory fs::create_dir(&data_path)?; let ad4m_data_path = data_path.join("ad4m"); fs::create_dir(&ad4m_data_path)?; @@ -77,47 +75,62 @@ pub async fn run(command: DevFunctions) -> Result<()> { )?; //start ad4m-host with publishing bootstrap - let ad4m_host_init = std::process::Command::new(&ad4m_host_path) - .arg("init") - .arg("--networkBootstrapSeed") - .arg(&temp_publish_bootstrap_path) - .arg("--dataPath") - .arg(&data_path) - .arg("--overrideConfig") - .output()?; - - blue_ln!( - "ad4m-host init output: {}\n", - String::from_utf8_lossy(&ad4m_host_init.stdout) - ); + rust_executor::init::init( + false, + Some(data_path.to_str().unwrap().to_string()), + Some(temp_publish_bootstrap_path.to_str().unwrap().to_string()), + ) + .map_err(|err| { + colour::red_ln!("Error in init: {:?}", err); + err + }) + .unwrap(); green_ln!( "Starting publishing with bootstrap path: {}\n", temp_publish_bootstrap_path.to_str().unwrap() ); - let (tx, rx) = channel(); - serve_ad4m_host(ad4m_host_path, data_path, tx)?; + let run_fut = async move { + rust_executor::run(rust_executor::Ad4mConfig { + app_data_path: Some(data_path.to_str().unwrap().to_string()), + resource_path: None, + network_bootstrap_seed: Some( + temp_publish_bootstrap_path.to_str().unwrap().to_string(), + ), + language_language_only: Some(true), + run_dapp_server: None, + gql_port: None, + hc_admin_port: None, + hc_app_port: None, + ipfs_swarm_port: None, + connect_holochain: None, + admin_credential: None, + swipl_path: None, + swipl_home_path: None, + }) + .await; + }; - for line in &rx { - println!("{}", line); - if line.contains("GraphQL server started, Unlock the agent to start holohchain") { - green_ln!("AD4M Host ready for publishing\n"); - //Spawn in a new thread so we can continue reading logs in loop below, whilst publishing is happening - tokio::spawn(async move { - start_publishing( - passphrase.clone(), - seed_proto.clone(), - lang_lang_source.clone(), - ) - .await; - }); - break; - } - } + //Spawn in a new thread so we can continue reading logs in loop below, whilst publishing is happening + let publish_fut = async move { + tokio::time::sleep(std::time::Duration::from_millis(5000)).await; + green_ln!("AD4M ready for publishing\n"); + start_publishing( + passphrase.clone(), + seed_proto.clone(), + lang_lang_source.clone(), + ) + .await; + }; - for line in rx { - println!("{}", line); + tokio::select! { + _ = run_fut => { + green_ln!("AD4M finished running\n"); + } + _ = publish_fut => { + green_ln!("AD4M finished publishing\n"); + } } } }; From 26363bdc26dc3ac4b41ebc97e5107307a020f7a6 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 18:31:46 +0100 Subject: [PATCH 191/722] try catch existing language objects in language language --- .../language-language/putAdapter.ts | 46 +++++++++++-------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index edc85581d..c99779c06 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -27,24 +27,34 @@ export class CloudflarePutAdapter implements PublicSharing { // Content of the new object. value: JSON.stringify(expression), }; - //Save the meta information to the KV store - const metaPostResult = await axiod.post(PROXY_URL, metaPostData); - if (metaPostResult.status != 200) { - console.error("Upload language meta data gets error: ", metaPostResult); + try { + //Save the meta information to the KV store + const metaPostResult = await axiod.post(PROXY_URL, metaPostData); + if (metaPostResult.status != 200) { + console.error("Upload language meta data gets error: ", metaPostResult); + } + + //Build the key value object for the language bundle + const languageBundleBucketParams = { + key: hash, + // Content of the new object. + value: language.bundle.toString(), + }; + //Save the language bundle to the KV store + const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams); + if (bundlePostResult.status != 200) { + console.error("Upload language bundle data gets error: ", metaPostResult); + } + + return hash as Address; + } catch (e) { + + if(e.response.status == 400 && e.response.data.includes("Key already exists")) { + console.log("[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...") + return hash as Address; + } + console.error("[Cloudflare-based Language Language]: Error storing Language: ", e.response.data); + throw e } - - //Build the key value object for the language bundle - const languageBundleBucketParams = { - key: hash, - // Content of the new object. - value: language.bundle.toString(), - }; - //Save the language bundle to the KV store - const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams); - if (bundlePostResult.status != 200) { - console.error("Upload language bundle data gets error: ", metaPostResult); - } - - return hash as Address; } } From 4073e1b2a1dfcf38167bdd85a0bf54e7a4ade494 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 18:31:55 +0100 Subject: [PATCH 192/722] add new mainnet seed --- cli/mainnet_seed.json | 14 +++++++------- rust-executor/src/mainnet_seed.json | 14 +++++++++++++- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/cli/mainnet_seed.json b/cli/mainnet_seed.json index c1ac10245..f469f32b8 100644 --- a/cli/mainnet_seed.json +++ b/cli/mainnet_seed.json @@ -1,13 +1,13 @@ { "trustedAgents": [ - "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" + "did:key:z6MkgtBC3UaxNLt5SFJmxHtzFUUeJLCxLiP8DTqJgwF9uCkv" ], "knownLinkLanguages": [ - "Qmf7WoxtS93VaWswjDzQqWEcL8pF2W7PZ9QRJb8XYkSfAg" + "QmzSYwdkoKCD3dyjutRraNCqCMEfGQ5SQnpSC7At631eJCLEhkh" ], - "directMessageLanguage": "Qmf8hHxbyyZBZkEZtkHyqZ93V6YkULhEKgafhJ2XpY8CNf", - "agentLanguage": "QmfYnjX2Bq7EG61SGrNtXBeup9UBfsqaWciTCMNBgPUEke", - "perspectiveLanguage": "QmPC3MydgKHUpEXA5JZdp8eyqvw1TTPdKsAbMN7Rb3muqp", - "neighbourhoodLanguage": "QmcFUVRL5iQM1AaE3H9UnZ8rRRJQij65qYbBHW7P2oewEH", - "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar http = require('http');\nvar https = require('https');\nvar url = require('url');\nvar stream = require('stream');\nvar assert = require('assert');\nvar tty = require('tty');\nvar util = require('util');\nvar fs = require('fs');\nvar net = require('net');\nvar zlib = require('zlib');\nvar os = require('os');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar http__default = /*#__PURE__*/_interopDefaultLegacy(http);\nvar https__default = /*#__PURE__*/_interopDefaultLegacy(https);\nvar url__default = /*#__PURE__*/_interopDefaultLegacy(url);\nvar stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);\nvar assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);\nvar tty__default = /*#__PURE__*/_interopDefaultLegacy(tty);\nvar util__default = /*#__PURE__*/_interopDefaultLegacy(util);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\nvar net__default = /*#__PURE__*/_interopDefaultLegacy(net);\nvar zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);\nvar os__default = /*#__PURE__*/_interopDefaultLegacy(os);\n\nvar bind = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer$1(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString$1(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction$1(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction$1(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nvar utils = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer$1,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString$1,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction$1,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nvar buildURL = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nvar InterceptorManager_1 = InterceptorManager;\n\nvar normalizeHeaderName = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nvar enhanceError = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n\nvar transitional = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nvar createError = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nvar settle = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\nvar cookies = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nvar isAbsoluteURL = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nvar combineURLs = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nvar buildFullPath = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\nvar isURLSameOrigin = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nvar Cancel_1 = Cancel;\n\nvar xhr = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional$1 = config.transitional || transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nvar ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\nvar debug$1 = createCommonjsModule(function (module, exports) {\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = ms;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n});\n\nvar browser = createCommonjsModule(function (module, exports) {\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n});\n\nvar node = createCommonjsModule(function (module, exports) {\n/**\n * Module dependencies.\n */\n\n\n\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util__default[\"default\"].deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')();\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty__default[\"default\"].isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util__default[\"default\"].format.apply(util__default[\"default\"], arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty__default[\"default\"].WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = fs__default[\"default\"];\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = net__default[\"default\"];\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n});\n\nvar src = createCommonjsModule(function (module) {\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = browser;\n} else {\n module.exports = node;\n}\n});\n\nvar debug;\n\nvar debug_1 = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = src(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n\nvar URL = url__default[\"default\"].URL;\n\n\nvar Writable = stream__default[\"default\"].Writable;\n\n\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url__default[\"default\"].format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url__default[\"default\"].parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url__default[\"default\"].format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url__default[\"default\"].resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug_1(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url__default[\"default\"].parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = url__default[\"default\"].parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert__default[\"default\"].equal(options.protocol, protocol, \"protocol mismatch\");\n debug_1(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert__default[\"default\"](isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nvar followRedirects = wrap({ http: http__default[\"default\"], https: https__default[\"default\"] });\nvar wrap_1 = wrap;\nfollowRedirects.wrap = wrap_1;\n\nvar data = {\n \"version\": \"0.26.1\"\n};\n\nvar httpFollow = followRedirects.http;\nvar httpsFollow = followRedirects.https;\n\n\nvar VERSION$1 = data.version;\n\n\n\n\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nvar http_1 = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION$1;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url__default[\"default\"].parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url__default[\"default\"].parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https__default[\"default\"] : http__default[\"default\"];\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib__default[\"default\"].createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional$1 = config.transitional || transitional;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = xhr;\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = http_1;\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitional,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults_1 = defaults;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nvar transformData = function transformData(data, headers, fns) {\n var context = this || defaults_1;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n\nvar isCancel = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel_1('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nvar dispatchRequest = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults_1.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nvar mergeConfig = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n\nvar VERSION = data.version;\n\nvar validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nvar validator = {\n assertOptions: assertOptions,\n validators: validators$1\n};\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_1(),\n response: new InterceptorManager_1()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nvar Axios_1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel_1(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nvar CancelToken_1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nvar spread = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nvar isAxiosError = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios_1(defaultConfig);\n var instance = bind(Axios_1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios_1.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios$1 = createInstance(defaults_1);\n\n// Expose Axios class to allow class inheritance\naxios$1.Axios = Axios_1;\n\n// Expose Cancel & CancelToken\naxios$1.Cancel = Cancel_1;\naxios$1.CancelToken = CancelToken_1;\naxios$1.isCancel = isCancel;\naxios$1.VERSION = data.version;\n\n// Expose all/spread\naxios$1.all = function all(promises) {\n return Promise.all(promises);\n};\naxios$1.spread = spread;\n\n// Expose isAxiosError\naxios$1.isAxiosError = isAxiosError;\n\nvar axios_1 = axios$1;\n\n// Allow use of default import syntax in TypeScript\nvar _default = axios$1;\naxios_1.default = _default;\n\nvar axios = axios_1;\n\ncreateCommonjsModule(function (module) {\n// Generated by CoffeeScript 2.5.1\n(function() {\n // This file's name is set up in such a way that it will always show up first in\n // the list of files given to coffee --join, so that the other files can assume\n // that XMLHttpRequestEventTarget was already defined.\n\n // The DOM EventTarget subclass used by XMLHttpRequest.\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n var InvalidStateError, NetworkError, ProgressEvent, SecurityError, SyntaxError, XMLHttpRequest, XMLHttpRequestEventTarget, XMLHttpRequestUpload, http, https, os, url;\n\n XMLHttpRequestEventTarget = (function() {\n class XMLHttpRequestEventTarget {\n // @private\n // This is an abstract class and should not be instantiated directly.\n constructor() {\n this.onloadstart = null;\n this.onprogress = null;\n this.onabort = null;\n this.onerror = null;\n this.onload = null;\n this.ontimeout = null;\n this.onloadend = null;\n this._listeners = {};\n }\n\n // Adds a new-style listener for one of the XHR events.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#events\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener function that will be called when\n // the event fires\n // @return {undefined} undefined\n addEventListener(eventType, listener) {\n var base;\n eventType = eventType.toLowerCase();\n (base = this._listeners)[eventType] || (base[eventType] = []);\n this._listeners[eventType].push(listener);\n return void 0;\n }\n\n // Removes an event listener added by calling addEventListener.\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener the value passed in a previous\n // call to addEventListener.\n // @return {undefined} undefined\n removeEventListener(eventType, listener) {\n var index;\n eventType = eventType.toLowerCase();\n if (this._listeners[eventType]) {\n index = this._listeners[eventType].indexOf(listener);\n if (index !== -1) {\n this._listeners[eventType].splice(index, 1);\n }\n }\n return void 0;\n }\n\n // Calls all the listeners for an event.\n\n // @param {ProgressEvent} event the event to be dispatched\n // @return {undefined} undefined\n dispatchEvent(event) {\n var eventType, j, len, listener, listeners;\n event.currentTarget = event.target = this;\n eventType = event.type;\n if (listeners = this._listeners[eventType]) {\n for (j = 0, len = listeners.length; j < len; j++) {\n listener = listeners[j];\n listener.call(this, event);\n }\n }\n if (listener = this[`on${eventType}`]) {\n listener.call(this, event);\n }\n return void 0;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadstart' event\n XMLHttpRequestEventTarget.prototype.onloadstart = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'progress' event\n XMLHttpRequestEventTarget.prototype.onprogress = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'abort' event\n XMLHttpRequestEventTarget.prototype.onabort = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'error' event\n XMLHttpRequestEventTarget.prototype.onerror = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'load' event\n XMLHttpRequestEventTarget.prototype.onload = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'timeout' event\n XMLHttpRequestEventTarget.prototype.ontimeout = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadend' event\n XMLHttpRequestEventTarget.prototype.onloadend = null;\n\n return XMLHttpRequestEventTarget;\n\n }).call(this);\n\n // This file's name is set up in such a way that it will always show up second\n // in the list of files given to coffee --join, so it can use the\n // XMLHttpRequestEventTarget definition and so that the other files can assume\n // that XMLHttpRequest was already defined.\n http = http__default[\"default\"];\n\n https = https__default[\"default\"];\n\n os = os__default[\"default\"];\n\n url = url__default[\"default\"];\n\n XMLHttpRequest = (function() {\n // The ECMAScript HTTP API.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#introduction\n class XMLHttpRequest extends XMLHttpRequestEventTarget {\n // Creates a new request.\n\n // @param {Object} options one or more of the options below\n // @option options {Boolean} anon if true, the request's anonymous flag\n // will be set\n // @see http://www.w3.org/TR/XMLHttpRequest/#constructors\n // @see http://www.w3.org/TR/XMLHttpRequest/#anonymous-flag\n constructor(options) {\n super();\n this.onreadystatechange = null;\n this._anonymous = options && options.anon;\n this.readyState = XMLHttpRequest.UNSENT;\n this.response = null;\n this.responseText = '';\n this.responseType = '';\n this.responseURL = '';\n this.status = 0;\n this.statusText = '';\n this.timeout = 0;\n this.upload = new XMLHttpRequestUpload(this);\n this._method = null; // String\n this._url = null; // Return value of url.parse()\n this._sync = false;\n this._headers = null; // Object\n this._loweredHeaders = null; // Object\n this._mimeOverride = null;\n this._request = null; // http.ClientRequest\n this._response = null; // http.ClientResponse\n this._responseParts = null; // Array\n this._responseHeaders = null; // Object\n this._aborting = null;\n this._error = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n }\n\n // Sets the XHR's method, URL, synchronous flag, and authentication params.\n\n // @param {String} method the HTTP method to be used\n // @param {String} url the URL that the request will be made to\n // @param {?Boolean} async if false, the XHR should be processed\n // synchronously; true by default\n // @param {?String} user the user credential to be used in HTTP basic\n // authentication\n // @param {?String} password the password credential to be used in HTTP basic\n // authentication\n // @return {undefined} undefined\n // @throw {SecurityError} method is not one of the allowed methods\n // @throw {SyntaxError} urlString is not a valid URL\n // @throw {Error} the URL contains an unsupported protocol; the supported\n // protocols are file, http and https\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n open(method, url, async, user, password) {\n var xhrUrl;\n method = method.toUpperCase();\n if (method in this._restrictedMethods) {\n throw new SecurityError(`HTTP method ${method} is not allowed in XHR`);\n }\n xhrUrl = this._parseUrl(url);\n if (async === void 0) {\n async = true;\n }\n switch (this.readyState) {\n case XMLHttpRequest.UNSENT:\n case XMLHttpRequest.OPENED:\n case XMLHttpRequest.DONE:\n break;\n case XMLHttpRequest.HEADERS_RECEIVED:\n case XMLHttpRequest.LOADING:\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n return void 0;\n }\n\n // Appends a header to the list of author request headers.\n\n // @param {String} name the HTTP header name\n // @param {String} value the HTTP header value\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @throw {SyntaxError} name is not a valid HTTP header name or value is not\n // a valid HTTP header value\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n setRequestHeader(name, value) {\n var loweredName;\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec\\-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(`Refused to set unsafe header \\\"${name}\\\"`);\n return void 0;\n }\n value = value.toString();\n if (loweredName in this._loweredHeaders) {\n // Combine value with the existing header value.\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + ', ' + value;\n } else {\n // New header.\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n return void 0;\n }\n\n // Initiates the request.\n\n // @param {?String, ?ArrayBufferView} data the data to be sent; ignored for\n // GET and HEAD requests\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n send(data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n if (this._request) {\n throw new InvalidStateError(\"send() already called\");\n }\n switch (this._url.protocol) {\n case 'file:':\n this._sendFile(data);\n break;\n case 'http:':\n case 'https:':\n this._sendHttp(data);\n break;\n default:\n throw new NetworkError(`Unsupported protocol ${this._url.protocol}`);\n }\n return void 0;\n }\n\n // Cancels the network activity performed by this request.\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method\n abort() {\n if (!this._request) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n return void 0;\n }\n\n // Returns a header value in the HTTP response for this XHR.\n\n // @param {String} name case-insensitive HTTP header name\n // @return {?String} value the value of the header whose name matches the\n // given name, or null if there is no such header\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n getResponseHeader(name) {\n var loweredName;\n if (!this._responseHeaders) {\n return null;\n }\n loweredName = name.toLowerCase();\n if (loweredName in this._responseHeaders) {\n return this._responseHeaders[loweredName];\n } else {\n return null;\n }\n }\n\n // Returns all the HTTP headers in this XHR's response.\n\n // @return {String} header lines separated by CR LF, where each header line\n // has the name and value separated by a \": \" (colon, space); the empty\n // string is returned if the headers are not available\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n getAllResponseHeaders() {\n var lines, name, value;\n if (!this._responseHeaders) {\n return '';\n }\n lines = (function() {\n var ref, results;\n ref = this._responseHeaders;\n results = [];\n for (name in ref) {\n value = ref[name];\n results.push(`${name}: ${value}`);\n }\n return results;\n }).call(this);\n return lines.join(\"\\r\\n\");\n }\n\n // Overrides the Content-Type\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-overridemimetype()-method\n overrideMimeType(newMimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new InvalidStateError(\"overrideMimeType() not allowed in LOADING or DONE\");\n }\n this._mimeOverride = newMimeType.toLowerCase();\n return void 0;\n }\n\n // Network configuration not exposed in the XHR API.\n\n // Although the XMLHttpRequest specification calls itself \"ECMAScript HTTP\",\n // it assumes that requests are always performed in the context of a browser\n // application, where some network parameters are set by the browser user and\n // should not be modified by Web applications. This API provides access to\n // these network parameters.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the value for the nodejsHttpAgent\n // property (the agent used for HTTP requests)\n // @option options {?https.Agent} httpsAgent the value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n nodejsSet(options) {\n var baseUrl, parsedUrl;\n if ('httpAgent' in options) {\n this.nodejsHttpAgent = options.httpAgent;\n }\n if ('httpsAgent' in options) {\n this.nodejsHttpsAgent = options.httpsAgent;\n }\n if ('baseUrl' in options) {\n baseUrl = options.baseUrl;\n if (baseUrl !== null) {\n parsedUrl = url.parse(baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = baseUrl;\n }\n return void 0;\n }\n\n // Default settings for the network configuration not exposed in the XHR API.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the default value for the\n // nodejsHttpAgent property (the agent used for HTTP requests)\n // @option options {https.Agent} httpsAgent the default value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n // @see XMLHttpRequest.nodejsSet\n static nodejsSet(options) {\n // \"this\" will be set to XMLHttpRequest.prototype, so the instance nodejsSet\n // operates on default property values.\n XMLHttpRequest.prototype.nodejsSet(options);\n return void 0;\n }\n\n // Sets the readyState property and fires the readystatechange event.\n\n // @private\n // @param {Number} newReadyState the new value of readyState\n // @return {undefined} undefined\n _setReadyState(newReadyState) {\n var event;\n this.readyState = newReadyState;\n event = new ProgressEvent('readystatechange');\n this.dispatchEvent(event);\n return void 0;\n }\n\n // XMLHttpRequest#send() implementation for the file: protocol.\n\n // @private\n _sendFile() {\n if (this._url.method !== 'GET') {\n throw new NetworkError('The file protocol only supports GET');\n }\n throw new Error(\"Protocol file: not implemented\");\n }\n\n // XMLHttpRequest#send() implementation for the http: and https: protocols.\n\n // @private\n // This method sets the instance variables and calls _sendHxxpRequest(), which\n // is responsible for building a node.js request and firing it off. The code\n // in _sendHxxpRequest() is separated off so it can be reused when handling\n // redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHttp(data) {\n if (this._sync) {\n throw new Error(\"Synchronous XHR processing not implemented\");\n }\n if ((data != null) && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(`Discarding entity body for ${this._method} requests`);\n data = null;\n } else {\n // Send Content-Length: 0\n data || (data = '');\n }\n // NOTE: this is called before finalizeHeaders so that the uploader can\n // figure out Content-Length and Content-Type.\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return void 0;\n }\n\n // Sets up and fires off a HTTP/HTTPS request using the node.js API.\n\n // @private\n // This method contains the bulk of the XMLHttpRequest#send() implementation,\n // and is also used to issue new HTTP requests when handling HTTP redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHxxpRequest() {\n var agent, hxxp, request;\n if (this._url.protocol === 'http:') {\n hxxp = http;\n agent = this.nodejsHttpAgent;\n } else {\n hxxp = https;\n agent = this.nodejsHttpsAgent;\n }\n request = hxxp.request({\n hostname: this._url.hostname,\n port: this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, () => {\n return this._onHttpTimeout(request);\n });\n }\n request.on('response', (response) => {\n return this._onHttpResponse(request, response);\n });\n request.on('error', (error) => {\n return this._onHttpRequestError(request, error);\n });\n this.upload._startUpload(request);\n if (this._request === request) { // An http error might have already fired.\n this._dispatchProgress('loadstart');\n }\n return void 0;\n }\n\n // Fills in the restricted HTTP headers with default values.\n\n // This is called right before the HTTP request is sent off.\n\n // @private\n // @return {undefined} undefined\n _finalizeHeaders() {\n var base;\n this._headers['Connection'] = 'keep-alive';\n this._headers['Host'] = this._url.host;\n if (this._anonymous) {\n this._headers['Referer'] = 'about:blank';\n }\n (base = this._headers)['User-Agent'] || (base['User-Agent'] = this._userAgent);\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n return void 0;\n }\n\n // Called when the headers of an HTTP response have been received.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // produced this response\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // passed to\n _onHttpResponse(request, response) {\n var lengthString;\n if (this._request !== request) {\n return;\n }\n // Transparent redirection handling.\n switch (response.statusCode) {\n case 301:\n case 302:\n case 303:\n case 307:\n case 308:\n this._url = this._parseUrl(response.headers['location']);\n this._method = 'GET';\n if ('content-type' in this._loweredHeaders) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n // XMLHttpRequestUpload#_finalizeHeaders() sets Content-Type directly.\n if ('Content-Type' in this._headers) {\n delete this._headers['Content-Type'];\n }\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', (data) => {\n return this._onHttpResponseData(response, data);\n });\n this._response.on('end', () => {\n return this._onHttpResponseEnd(response);\n });\n this._response.on('close', () => {\n return this._onHttpResponseClose(response);\n });\n this.responseURL = this._url.href.split('#')[0];\n this.status = this._response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n if (lengthString = this._responseHeaders['content-length']) {\n this._totalBytes = parseInt(lengthString);\n this._lengthComputable = true;\n } else {\n this._lengthComputable = false;\n }\n return this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n }\n\n // Called when some data has been received on a HTTP connection.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n // @param {String, Buffer} data the data that has been received\n _onHttpResponseData(response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(data);\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n return this._dispatchProgress('progress');\n }\n\n // Called when the HTTP request finished processing.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseEnd(response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the underlying HTTP connection was closed prematurely.\n\n // If this method is called, it will be called after or instead of\n // onHttpResponseEnd.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseClose(response) {\n var request;\n if (this._response !== response) {\n return;\n }\n request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the timeout set on the HTTP socket expires.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n _onHttpTimeout(request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n return this._dispatchProgress('loadend');\n }\n\n // Called when something wrong happens on the HTTP socket\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n // @param {Error} error emitted exception\n _onHttpRequestError(request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Fires an XHR progress event.\n\n // @private\n // @param {String} eventType one of the XHR progress event types, such as\n // 'load' and 'progress'\n _dispatchProgress(eventType) {\n var event;\n event = new ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n return void 0;\n }\n\n // Sets up the XHR to reflect the fact that an error has occurred.\n\n // The possible errors are a network error, a timeout, or an abort.\n\n // @private\n _setError() {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n return void 0;\n }\n\n // Parses a request URL string.\n\n // @private\n // This method is a thin wrapper around url.parse() that normalizes HTTP\n // user/password credentials. It is used to parse the URL string passed to\n // XMLHttpRequest#open() and the URLs in the Location headers of HTTP redirect\n // responses.\n\n // @param {String} urlString the URL to be parsed\n // @return {Object} parsed URL\n _parseUrl(urlString) {\n var absoluteUrlString, index, password, user, xhrUrl;\n if (this.nodejsBaseUrl === null) {\n absoluteUrlString = urlString;\n } else {\n absoluteUrlString = url.resolve(this.nodejsBaseUrl, urlString);\n }\n xhrUrl = url.parse(absoluteUrlString, false, true);\n xhrUrl.hash = null;\n if (xhrUrl.auth && ((typeof user !== \"undefined\" && user !== null) || (typeof password !== \"undefined\" && password !== null))) {\n index = xhrUrl.auth.indexOf(':');\n if (index === -1) {\n if (!user) {\n user = xhrUrl.auth;\n }\n } else {\n if (!user) {\n user = xhrUrl.substring(0, index);\n }\n if (!password) {\n password = xhrUrl.substring(index + 1);\n }\n }\n }\n if (user || password) {\n xhrUrl.auth = `${user}:${password}`;\n }\n return xhrUrl;\n }\n\n // Reads the headers from a node.js ClientResponse instance.\n\n // @private\n // @param {http.ClientResponse} response the response whose headers will be\n // imported into this XMLHttpRequest's state\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n _parseResponseHeaders(response) {\n var loweredName, name, ref, value;\n this._responseHeaders = {};\n ref = response.headers;\n for (name in ref) {\n value = ref[name];\n loweredName = name.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n if (this._mimeOverride !== null && loweredName === 'content-type') {\n value = this._mimeOverride;\n }\n this._responseHeaders[loweredName] = value;\n }\n if (this._mimeOverride !== null && !('content-type' in this._responseHeaders)) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n return void 0;\n }\n\n // Sets the response and responseText properties when an XHR completes.\n\n // @private\n // @return {undefined} undefined\n _parseResponse() {\n var arrayBuffer, buffer, i, j, ref, view;\n if (Buffer.concat) {\n buffer = Buffer.concat(this._responseParts);\n } else {\n // node 0.6\n buffer = this._concatBuffers(this._responseParts);\n }\n this._responseParts = null;\n switch (this.responseType) {\n case 'text':\n this._parseTextResponse(buffer);\n break;\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n } catch (error1) {\n this.response = null;\n }\n break;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n break;\n case 'arraybuffer':\n this.responseText = null;\n arrayBuffer = new ArrayBuffer(buffer.length);\n view = new Uint8Array(arrayBuffer);\n for (i = j = 0, ref = buffer.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n break;\n default:\n // TODO(pwnall): content-base detection\n this._parseTextResponse(buffer);\n }\n return void 0;\n }\n\n // Sets response and responseText for a 'text' response type.\n\n // @private\n // @param {Buffer} buffer the node.js Buffer containing the binary response\n // @return {undefined} undefined\n _parseTextResponse(buffer) {\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n } catch (error1) {\n // Unknown encoding.\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n return void 0;\n }\n\n // Figures out the string encoding of the XHR's response.\n\n // This is called to determine the encoding when responseText is set.\n\n // @private\n // @return {String} a string encoding, e.g. 'utf-8'\n _parseResponseEncoding() {\n var contentType, match;\n if (contentType = this._responseHeaders['content-type']) {\n if (match = /\\;\\s*charset\\=(.*)$/.exec(contentType)) {\n return match[1];\n }\n }\n return 'utf-8';\n }\n\n // Buffer.concat implementation for node 0.6.\n\n // @private\n // @param {Array} buffers the buffers whose contents will be merged\n // @return {Buffer} same as Buffer.concat(buffers) in node 0.8 and above\n _concatBuffers(buffers) {\n var buffer, j, k, len, len1, length, target;\n if (buffers.length === 0) {\n return Buffer.alloc(0);\n }\n if (buffers.length === 1) {\n return buffers[0];\n }\n length = 0;\n for (j = 0, len = buffers.length; j < len; j++) {\n buffer = buffers[j];\n length += buffer.length;\n }\n target = Buffer.alloc(length);\n length = 0;\n for (k = 0, len1 = buffers.length; k < len1; k++) {\n buffer = buffers[k];\n buffer.copy(target, length);\n length += buffer.length;\n }\n return target;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler for the\n // 'readystatechange' event\n XMLHttpRequest.prototype.onreadystatechange = null;\n\n // @property {Number} the current state of the XHR object\n // @see http://www.w3.org/TR/XMLHttpRequest/#states\n XMLHttpRequest.prototype.readyState = null;\n\n // @property {String, ArrayBuffer, Buffer, Object} processed XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-response-attribute\n XMLHttpRequest.prototype.response = null;\n\n // @property {String} response string, if responseType is '' or 'text'\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute\n XMLHttpRequest.prototype.responseText = null;\n\n // @property {String} sets the parsing method for the XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetype-attribute\n XMLHttpRequest.prototype.responseType = null;\n\n // @property {Number} the HTTP\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute\n XMLHttpRequest.prototype.status = null;\n\n // @property {Number} milliseconds to wait for the request to complete\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute\n XMLHttpRequest.prototype.timeout = null;\n\n // @property {XMLHttpRequestUpload} the associated upload information\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute\n XMLHttpRequest.prototype.upload = null;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.prototype.UNSENT = 0;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.UNSENT = 0;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.prototype.OPENED = 1;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.OPENED = 1;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.prototype.HEADERS_RECEIVED = 2;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.prototype.LOADING = 3;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.LOADING = 3;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.prototype.DONE = 4;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.DONE = 4;\n\n // @property {http.Agent} the agent option passed to HTTP requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\n\n // @property {https.Agent} the agent option passed to HTTPS requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpsAgent = https.globalAgent;\n\n // @property {String} the base URL that relative URLs get resolved to\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // Its browser equivalent is the base URL of the document associated with the\n // Window object. It is a stable node-xhr2 API provided for libraries such as\n // Angular Universal.\n XMLHttpRequest.prototype.nodejsBaseUrl = null;\n\n // HTTP methods that are disallowed in the XHR spec.\n\n // @private\n // @see Step 6 in http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n XMLHttpRequest.prototype._restrictedMethods = {\n CONNECT: true,\n TRACE: true,\n TRACK: true\n };\n\n // HTTP request headers that are disallowed in the XHR spec.\n\n // @private\n // @see Step 5 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n XMLHttpRequest.prototype._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true\n };\n\n // HTTP response headers that should not be exposed according to the XHR spec.\n\n // @private\n // @see Step 3 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n XMLHttpRequest.prototype._privateHeaders = {\n 'set-cookie': true,\n 'set-cookie2': true\n };\n\n // The default value of the User-Agent header.\n XMLHttpRequest.prototype._userAgent = `Mozilla/5.0 (${os.type()} ${os.arch()}) ` + `node.js/${process.versions.node} v8/${process.versions.v8}`;\n\n return XMLHttpRequest;\n\n }).call(this);\n\n // XMLHttpRequest is the result of require('node-xhr2').\n module.exports = XMLHttpRequest;\n\n // Make node-xhr2 work as a drop-in replacement for libraries that promote the\n // following usage pattern:\n // var XMLHttpRequest = require('xhr-library-name').XMLHttpRequest\n XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;\n\n // This file defines the custom errors used in the XMLHttpRequest specification.\n\n // Thrown if the XHR security policy is violated.\n SecurityError = class SecurityError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if the XHR security policy is violated.\n XMLHttpRequest.SecurityError = SecurityError;\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {};\n\n XMLHttpRequest.InvalidStateError = InvalidStateError;\n\n // Thrown if there is a problem with the URL passed to the XHR.\n NetworkError = class NetworkError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if parsing URLs errors out.\n XMLHttpRequest.SyntaxError = SyntaxError;\n\n SyntaxError = class SyntaxError extends Error {\n // @private:\n constructor() {\n super();\n }\n\n };\n\n ProgressEvent = (function() {\n // http://xhr.spec.whatwg.org/#interface-progressevent\n class ProgressEvent {\n // Creates a new event.\n\n // @param {String} type the event type, e.g. 'readystatechange'; must be\n // lowercased\n constructor(type) {\n this.type = type;\n this.target = null;\n this.currentTarget = null;\n this.lengthComputable = false;\n this.loaded = 0;\n this.total = 0;\n }\n\n }\n // Getting the time from the OS is expensive, skip on that for now.\n // @timeStamp = Date.now()\n\n // @property {Boolean} for compatibility with DOM events\n ProgressEvent.prototype.bubbles = false;\n\n // @property {Boolean} for fompatibility with DOM events\n ProgressEvent.prototype.cancelable = false;\n\n // @property {XMLHttpRequest} the request that caused this event\n ProgressEvent.prototype.target = null;\n\n // @property {Number} number of bytes that have already been downloaded or\n // uploaded\n ProgressEvent.prototype.loaded = null;\n\n // @property {Boolean} true if the Content-Length response header is available\n // and the value of the event's total property is meaningful\n ProgressEvent.prototype.lengthComputable = null;\n\n // @property {Number} number of bytes that will be downloaded or uploaded by\n // the request that fired the event\n ProgressEvent.prototype.total = null;\n\n return ProgressEvent;\n\n }).call(this);\n\n // The XHR spec exports the ProgressEvent constructor.\n XMLHttpRequest.ProgressEvent = ProgressEvent;\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n XMLHttpRequestUpload = class XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n // @private\n // @param {XMLHttpRequest} the XMLHttpRequest that this upload object is\n // associated with\n constructor(request) {\n super();\n this._request = request;\n this._reset();\n }\n\n // Sets up this Upload to handle a new request.\n\n // @private\n // @return {undefined} undefined\n _reset() {\n this._contentType = null;\n this._body = null;\n return void 0;\n }\n\n // Implements the upload-related part of the send() XHR specification.\n\n // @private\n // @param {?String, ?Buffer, ?ArrayBufferView} data the argument passed to\n // XMLHttpRequest#send()\n // @return {undefined} undefined\n // @see step 4 of http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n _setData(data) {\n var body, i, j, k, offset, ref, ref1, view;\n if (typeof data === 'undefined' || data === null) {\n return;\n }\n if (typeof data === 'string') {\n // DOMString\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = Buffer.from(data, 'utf8');\n } else if (Buffer.isBuffer(data)) {\n // node.js Buffer\n this._body = data;\n } else if (data instanceof ArrayBuffer) {\n // ArrayBuffer arguments were supported in an old revision of the spec.\n body = Buffer.alloc(data.byteLength);\n view = new Uint8Array(data);\n for (i = j = 0, ref = data.byteLength; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n body[i] = view[i];\n }\n this._body = body;\n } else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n // ArrayBufferView\n body = Buffer.alloc(data.byteLength);\n offset = data.byteOffset;\n view = new Uint8Array(data.buffer);\n for (i = k = 0, ref1 = data.byteLength; (0 <= ref1 ? k < ref1 : k > ref1); i = 0 <= ref1 ? ++k : --k) {\n body[i] = view[i + offset];\n }\n this._body = body;\n } else {\n // NOTE: diverging from the XHR specification of coercing everything else\n // to Strings via toString() because that behavior masks bugs and is\n // rarely useful\n throw new Error(`Unsupported send() data ${data}`);\n }\n return void 0;\n }\n\n // Updates the HTTP headers right before the request is sent.\n\n // This is used to set data-dependent headers such as Content-Length and\n // Content-Type.\n\n // @private\n // @param {Object} headers the HTTP headers to be sent\n // @param {Object} loweredHeaders maps lowercased HTTP header\n // names (e.g., 'content-type') to the actual names used in the headers\n // parameter (e.g., 'Content-Type')\n // @return {undefined} undefined\n _finalizeHeaders(headers, loweredHeaders) {\n if (this._contentType) {\n if (!('content-type' in loweredHeaders)) {\n headers['Content-Type'] = this._contentType;\n }\n }\n if (this._body) {\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n headers['Content-Length'] = this._body.length.toString();\n }\n return void 0;\n }\n\n // Starts sending the HTTP request data.\n\n // @private\n // @param {http.ClientRequest} request the HTTP request\n // @return {undefined} undefined\n _startUpload(request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n return void 0;\n }\n\n };\n\n // Export the XMLHttpRequestUpload constructor.\n XMLHttpRequest.XMLHttpRequestUpload = XMLHttpRequestUpload;\n\n}).call(commonjsGlobal);\n});\n\nclass LangAdapter {\n constructor(context) {\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw (e);\n }\n let languageSource;\n try {\n const getLanguageSource = await axios.get(presignedUrl);\n languageSource = getLanguageSource.data;\n }\n catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw (e);\n }\n return languageSource;\n }\n}\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CloudflarePutAdapter_agent, _CloudflarePutAdapter_IPFS;\nclass CloudflarePutAdapter {\n constructor(context) {\n _CloudflarePutAdapter_agent.set(this, void 0);\n _CloudflarePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet(this, _CloudflarePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet(this, _CloudflarePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet(this, _CloudflarePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet(this, _CloudflarePutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n //Build the key value object for the meta object\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n // Content of the new object.\n value: JSON.stringify(expression),\n };\n //Save the meta information to the KV store\n const httpsAgent = new https__default[\"default\"].Agent({\n rejectUnauthorized: false\n });\n const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent });\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n //Build the key value object for the language bundle\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString(),\n };\n //Save the language bundle to the KV store\n const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent });\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n}\n_CloudflarePutAdapter_agent = new WeakMap(), _CloudflarePutAdapter_IPFS = new WeakMap();\n\nclass Adapter {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axios.get(presignedUrl);\n metaObject = getMetaObject.data;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\n\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports.PROXY_URL = PROXY_URL;\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" + "directMessageLanguage": "QmzSYwdeycwPtNCnx7KfStTWQqu5qpZg9iCGopBEtRBAZjvg6uH", + "agentLanguage": "QmzSYwdpgYS2CHb6Nkjqn7xKRbsouUXn7535QSn41dgsjPJiYom", + "perspectiveLanguage": "QmzSYwdmkrLXFHC4wjDN6yq5cz3AGCRDT4Ltfc6pZ4bjqLgb4HJ", + "neighbourhoodLanguage": "QmzSYwdcUcz7bthbfj8Yu83LFrwc6DSF1XTcyv6TRadYThbTisE", + "languageLanguageBundle": "// deno-fmt-ignore-file\n// deno-lint-ignore-file\n// This code was bundled using `deno bundle` and it's not recommended to edit it manually\n\nconst urlJoin = function(...args) {\n let input;\n if (typeof args[0] === 'object') {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nconst normalize = (strArray)=>{\n const resultArray = [];\n if (strArray.length === 0) {\n return '';\n }\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n for(let i = 0; i < strArray.length; i++){\n let component = strArray[i];\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n if (component === '') {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, '');\n } else {\n component = component.replace(/[\\/]+$/, '/');\n }\n resultArray.push(component);\n }\n let str = resultArray.join('/');\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n let parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');\n return str;\n};\nconst methods = [\n 'get',\n 'post',\n 'put',\n 'delete',\n 'options',\n 'head',\n 'connect',\n 'trace',\n 'patch'\n];\nconst addInterceptor = ()=>{\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\nfunction axiod(url, config) {\n if (typeof url === 'string') {\n return axiod.request(Object.assign({}, axiod.defaults, {\n url\n }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: '/',\n method: 'get',\n timeout: 0,\n withCredentials: false,\n validateStatus: (status)=>{\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config)=>{\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options)=>{\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n };\n instance.post = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n };\n instance.put = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n };\n instance.delete = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n };\n instance.options = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n };\n instance.head = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n };\n instance.connect = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n };\n instance.trace = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n };\n instance.patch = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list){\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let { url ='/' , baseURL , method , headers , params ={} , data , timeout , withCredentials , auth , validateStatus , paramsSerializer , transformRequest , transformResponse , redirect , responseType ='json' } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = 'get';\n }\n let _params = '';\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key)=>{\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers['Authorization'] = 'Basic ' + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== 'get') {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== 'get') {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for(var i = 0; i < (transformRequest || []).length; i++){\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === 'string' || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers['Accept'] = 'application/json';\n headers['Content-Type'] = 'application/json';\n } catch (ex) {}\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header)=>{\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(()=>{\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x)=>{\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response = x.clone();\n if (responseType === 'json') {\n _data = await response.json();\n } else if (responseType === 'text') {\n _data = await response.text();\n } else if (responseType === 'arraybuffer') {\n _data = await response.arrayBuffer();\n } else if (responseType === 'blob') {\n _data = await response.blob();\n } else if (responseType === 'stream') {\n _data = (await response.blob()).stream();\n } else {\n _data = await response.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for(var i = 0; i < (transformResponse || []).length; i++){\n if (transformResponse && transformResponse[i]) {\n _data = transformResponse[i](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list){\n if (interceptor) {\n const { fulfilled , rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n};\naxiod.post = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n};\naxiod.put = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n};\naxiod.delete = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n};\naxiod.options = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n};\naxiod.head = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n};\naxiod.connect = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n};\naxiod.trace = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n};\naxiod.patch = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nclass LangAdapter {\n constructor(context){}\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await axiod.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n}\nclass CloudflarePutAdapter {\n #agent;\n constructor(context){\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address) throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n value: JSON.stringify(expression)\n };\n try {\n const metaPostResult = await axiod.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n value: language.bundle.toString()\n };\n const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n } catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n}\nclass Adapter {\n putAdapter;\n constructor(context){\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axiod.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport { name as name };\nexport { PROXY_URL as PROXY_URL };\nexport { create as default };\n" } \ No newline at end of file diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index 81866c6ac..f469f32b8 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -1 +1,13 @@ -{"trustedAgents":["did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S"],"knownLinkLanguages":["Qmf7WoxtS93VaWswjDzQqWEcL8pF2W7PZ9QRJb8XYkSfAg"],"directMessageLanguage":"Qmf8hHxbyyZBZkEZtkHyqZ93V6YkULhEKgafhJ2XpY8CNf","agentLanguage":"QmfYnjX2Bq7EG61SGrNtXBeup9UBfsqaWciTCMNBgPUEke","perspectiveLanguage":"QmPC3MydgKHUpEXA5JZdp8eyqvw1TTPdKsAbMN7Rb3muqp","neighbourhoodLanguage":"QmcFUVRL5iQM1AaE3H9UnZ8rRRJQij65qYbBHW7P2oewEH","languageLanguageBundle":"// deno-fmt-ignore-file\n// deno-lint-ignore-file\n// This code was bundled using `deno bundle` and it's not recommended to edit it manually\n\nconst urlJoin = function(...args) {\n let input;\n if (typeof args[0] === 'object') {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nconst normalize = (strArray)=>{\n const resultArray = [];\n if (strArray.length === 0) {\n return '';\n }\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n for(let i = 0; i < strArray.length; i++){\n let component = strArray[i];\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n if (component === '') {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, '');\n } else {\n component = component.replace(/[\\/]+$/, '/');\n }\n resultArray.push(component);\n }\n let str = resultArray.join('/');\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n let parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');\n return str;\n};\nconst methods = [\n 'get',\n 'post',\n 'put',\n 'delete',\n 'options',\n 'head',\n 'connect',\n 'trace',\n 'patch'\n];\nconst addInterceptor = ()=>{\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\nfunction axiod(url, config) {\n if (typeof url === 'string') {\n return axiod.request(Object.assign({}, axiod.defaults, {\n url\n }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: '/',\n method: 'get',\n timeout: 0,\n withCredentials: false,\n validateStatus: (status)=>{\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config)=>{\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options)=>{\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n };\n instance.post = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n };\n instance.put = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n };\n instance.delete = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n };\n instance.options = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n };\n instance.head = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n };\n instance.connect = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n };\n instance.trace = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n };\n instance.patch = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list){\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let { url ='/' , baseURL , method , headers , params ={} , data , timeout , withCredentials , auth , validateStatus , paramsSerializer , transformRequest , transformResponse , redirect , responseType ='json' } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = 'get';\n }\n let _params = '';\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key)=>{\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers['Authorization'] = 'Basic ' + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== 'get') {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== 'get') {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for(var i = 0; i < (transformRequest || []).length; i++){\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === 'string' || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers['Accept'] = 'application/json';\n headers['Content-Type'] = 'application/json';\n } catch (ex) {}\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header)=>{\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(()=>{\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x)=>{\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response = x.clone();\n if (responseType === 'json') {\n _data = await response.json();\n } else if (responseType === 'text') {\n _data = await response.text();\n } else if (responseType === 'arraybuffer') {\n _data = await response.arrayBuffer();\n } else if (responseType === 'blob') {\n _data = await response.blob();\n } else if (responseType === 'stream') {\n _data = (await response.blob()).stream();\n } else {\n _data = await response.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for(var i = 0; i < (transformResponse || []).length; i++){\n if (transformResponse && transformResponse[i]) {\n _data = transformResponse[i](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list){\n if (interceptor) {\n const { fulfilled , rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n};\naxiod.post = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n};\naxiod.put = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n};\naxiod.delete = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n};\naxiod.options = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n};\naxiod.head = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n};\naxiod.connect = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n};\naxiod.trace = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n};\naxiod.patch = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nclass LangAdapter {\n constructor(context){}\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await axiod.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n}\nclass CloudflarePutAdapter {\n #agent;\n constructor(context){\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address) throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n value: JSON.stringify(expression)\n };\n const metaPostResult = await axiod.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n value: language.bundle.toString()\n };\n const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n}\nclass Adapter {\n putAdapter;\n constructor(context){\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axiod.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport { name as name };\nexport { PROXY_URL as PROXY_URL };\nexport { create as default };\n\n"} \ No newline at end of file +{ + "trustedAgents": [ + "did:key:z6MkgtBC3UaxNLt5SFJmxHtzFUUeJLCxLiP8DTqJgwF9uCkv" + ], + "knownLinkLanguages": [ + "QmzSYwdkoKCD3dyjutRraNCqCMEfGQ5SQnpSC7At631eJCLEhkh" + ], + "directMessageLanguage": "QmzSYwdeycwPtNCnx7KfStTWQqu5qpZg9iCGopBEtRBAZjvg6uH", + "agentLanguage": "QmzSYwdpgYS2CHb6Nkjqn7xKRbsouUXn7535QSn41dgsjPJiYom", + "perspectiveLanguage": "QmzSYwdmkrLXFHC4wjDN6yq5cz3AGCRDT4Ltfc6pZ4bjqLgb4HJ", + "neighbourhoodLanguage": "QmzSYwdcUcz7bthbfj8Yu83LFrwc6DSF1XTcyv6TRadYThbTisE", + "languageLanguageBundle": "// deno-fmt-ignore-file\n// deno-lint-ignore-file\n// This code was bundled using `deno bundle` and it's not recommended to edit it manually\n\nconst urlJoin = function(...args) {\n let input;\n if (typeof args[0] === 'object') {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nconst normalize = (strArray)=>{\n const resultArray = [];\n if (strArray.length === 0) {\n return '';\n }\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n for(let i = 0; i < strArray.length; i++){\n let component = strArray[i];\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n if (component === '') {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, '');\n } else {\n component = component.replace(/[\\/]+$/, '/');\n }\n resultArray.push(component);\n }\n let str = resultArray.join('/');\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n let parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');\n return str;\n};\nconst methods = [\n 'get',\n 'post',\n 'put',\n 'delete',\n 'options',\n 'head',\n 'connect',\n 'trace',\n 'patch'\n];\nconst addInterceptor = ()=>{\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\nfunction axiod(url, config) {\n if (typeof url === 'string') {\n return axiod.request(Object.assign({}, axiod.defaults, {\n url\n }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: '/',\n method: 'get',\n timeout: 0,\n withCredentials: false,\n validateStatus: (status)=>{\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config)=>{\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options)=>{\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n };\n instance.post = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n };\n instance.put = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n };\n instance.delete = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n };\n instance.options = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n };\n instance.head = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n };\n instance.connect = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n };\n instance.trace = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n };\n instance.patch = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list){\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let { url ='/' , baseURL , method , headers , params ={} , data , timeout , withCredentials , auth , validateStatus , paramsSerializer , transformRequest , transformResponse , redirect , responseType ='json' } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = 'get';\n }\n let _params = '';\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key)=>{\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers['Authorization'] = 'Basic ' + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== 'get') {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== 'get') {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for(var i = 0; i < (transformRequest || []).length; i++){\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === 'string' || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers['Accept'] = 'application/json';\n headers['Content-Type'] = 'application/json';\n } catch (ex) {}\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header)=>{\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(()=>{\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x)=>{\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response = x.clone();\n if (responseType === 'json') {\n _data = await response.json();\n } else if (responseType === 'text') {\n _data = await response.text();\n } else if (responseType === 'arraybuffer') {\n _data = await response.arrayBuffer();\n } else if (responseType === 'blob') {\n _data = await response.blob();\n } else if (responseType === 'stream') {\n _data = (await response.blob()).stream();\n } else {\n _data = await response.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for(var i = 0; i < (transformResponse || []).length; i++){\n if (transformResponse && transformResponse[i]) {\n _data = transformResponse[i](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list){\n if (interceptor) {\n const { fulfilled , rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n};\naxiod.post = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n};\naxiod.put = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n};\naxiod.delete = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n};\naxiod.options = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n};\naxiod.head = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n};\naxiod.connect = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n};\naxiod.trace = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n};\naxiod.patch = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nclass LangAdapter {\n constructor(context){}\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await axiod.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n}\nclass CloudflarePutAdapter {\n #agent;\n constructor(context){\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address) throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n value: JSON.stringify(expression)\n };\n try {\n const metaPostResult = await axiod.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n value: language.bundle.toString()\n };\n const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n } catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n}\nclass Adapter {\n putAdapter;\n constructor(context){\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axiod.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport { name as name };\nexport { PROXY_URL as PROXY_URL };\nexport { create as default };\n" +} \ No newline at end of file From ddd3879babe5b842f8df0f08198207ee61e46457 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 18 Apr 2023 18:32:08 +0100 Subject: [PATCH 193/722] add await to mutations --- rust-executor/src/graphql/mutation_resolvers.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index bead31c7b..9c7b37fd1 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -278,7 +278,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentUnlock( + await core.resolvers.Mutation.agentUnlock( null, {{ passphrase: "{}" }}, {{ capabilities: [{}] }} @@ -433,7 +433,7 @@ impl Mutation { let language_meta_json = serde_json::to_string(&language_meta)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.languagePublish( + await core.resolvers.Mutation.languagePublish( null, {{ languageMeta: {}, languagePath: "{}" }}, {{ capabilities: [{}] }} From 9b067b1cad2a78df09e00a4ffb2a97eb27a3a1aa Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 19 Apr 2023 15:14:51 +0100 Subject: [PATCH 194/722] use tokio mutex to avoid block thread where we get multiple async load_module calls which would otherwise block the thread --- rust-executor/Cargo.toml | 1 + rust-executor/src/js_core/mod.rs | 17 ++++++++--------- rust-executor/src/js_core/utils_extension.rs | 11 +++++++---- rust-executor/src/lib.rs | 2 +- rust-executor/src/main.rs | 2 +- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 6b488d69b..b66221225 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -48,3 +48,4 @@ zip = "0.6.4" multibase = "0.9.1" multihash = { version = "0.18.0", features = ["sha2"] } cid = "0.10.1" +once_cell = "1.17.1" diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 292274dd0..ba185098f 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -4,12 +4,14 @@ use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; -use lazy_static::lazy_static; use log::{error, info}; +use once_cell::sync::Lazy; use std::env::current_dir; -use std::sync::{Arc, Mutex}; +use std::sync::Arc; +use std::sync::Mutex; use tokio::runtime::Builder; use tokio::sync::broadcast; +use tokio::sync::Mutex as TokioMutex; use tokio::sync::{ broadcast::{Receiver, Sender}, mpsc::{self, UnboundedSender}, @@ -26,9 +28,8 @@ use self::futures::{EventLoopFuture, GlobalVariableFuture}; use crate::Ad4mConfig; use options::{main_module_url, main_worker_options}; -lazy_static! { - pub static ref JS_CORE_HANDLE: Mutex> = Mutex::new(None); -} +static JS_CORE_HANDLE: Lazy>>> = + Lazy::new(|| Arc::new(TokioMutex::new(None))); /// Define message #[derive(Message)] @@ -213,7 +214,7 @@ impl JsCore { )) } - pub fn start(config: Ad4mConfig) -> JsCoreHandle { + pub async fn start(config: Ad4mConfig) -> JsCoreHandle { let (tx_inside, rx_outside) = broadcast::channel::(50); let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); @@ -375,9 +376,7 @@ impl JsCore { }; //Set the JsCoreHandle to a global object so we can use it inside of deno op calls - let mut global_handle = JS_CORE_HANDLE - .lock() - .expect("Could not get lock for JS_CORE_HANDLE"); + let mut global_handle = JS_CORE_HANDLE.lock().await; *global_handle = Some(handle.clone()); handle diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index 27f0d4d7c..a36d000fa 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -30,11 +30,14 @@ fn hash(data: String) -> Result { #[op] async fn load_module(path: String) -> Result { info!("Trying to load module: {}", path); - let js_core_handle = JS_CORE_HANDLE - .lock() - .expect("Could not get lock on js_core_handle"); - let _res = js_core_handle.clone().unwrap().load_module(path).await; + let mut js_core_handle = JS_CORE_HANDLE.lock().await; + + if let Some(ref mut value) = *js_core_handle { + // Call mutable functions on JsCoreHandle + let _res = value.load_module(path).await; + } + Ok(String::from("temp")) } diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 2431bf8c1..9fed84209 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -21,7 +21,7 @@ pub async fn run(config: Ad4mConfig) { let _ = env_logger::try_init(); info!("Starting js_core..."); - let mut js_core_handle = JsCore::start(config); + let mut js_core_handle = JsCore::start(config).await; js_core_handle.initialized().await; info!("js_core initialized."); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 5700367dd..820a3947f 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -19,7 +19,7 @@ async fn main() { env_logger::init(); info!("Starting js_core..."); - let mut js_core_handle = JsCore::start(Ad4mConfig::default()); + let mut js_core_handle = JsCore::start(Ad4mConfig::default()).await; js_core_handle.initialized().await; info!("js_core initialized."); From 83307ac62c61f7f2a9f4b75933e6ce5c527db3f7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 19 Apr 2023 15:15:06 +0100 Subject: [PATCH 195/722] polyfill HTMLElement --- executor/lib/deno.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/executor/lib/deno.js b/executor/lib/deno.js index 388e5a5b8..e50c3cd6a 100644 --- a/executor/lib/deno.js +++ b/executor/lib/deno.js @@ -15,3 +15,7 @@ export const path = internalPath export const os = internalOs import "../xhr/mod.ts"; + +import {HTMLElement } from "../linkedom" + +globalThis.HTMLElement = HTMLElement; From ea83b446964e4a3f4aadee5ae0674e05f424b8c3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 19 Apr 2023 15:35:36 +0100 Subject: [PATCH 196/722] hack fix available key matching expression verify --- executor/src/core/agent/Signatures.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executor/src/core/agent/Signatures.ts b/executor/src/core/agent/Signatures.ts index f7a006e7f..621bcfb08 100644 --- a/executor/src/core/agent/Signatures.ts +++ b/executor/src/core/agent/Signatures.ts @@ -23,7 +23,7 @@ export default class Signatures { const availableKeys = didDocument.publicKey ? didDocument.publicKey : didDocument.verificationMethod //@ts-ignore - const key = availableKeys.find(k => k.id === didSigningKeyId) + const key = availableKeys.find(k => k.id === didSigningKeyId.includes(k.id)) if(!key) { console.debug("Key not found in DID document", didSigningKeyId, didDocument) return false @@ -53,7 +53,7 @@ export default class Signatures { const availableKeys = didDocument.publicKey ? didDocument.publicKey : didDocument.verificationMethod //@ts-ignore - const key = availableKeys.find(k => k.id === expr.proof.key) + const key = availableKeys.find(k => expr.proof.key.includes(k.id)) if(!key) { console.debug("Key not found in DID document", expr.proof.key, didDocument) return false From 44828095a610c9c4a52988acfe883c0a5880d656 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 19 Apr 2023 15:35:48 +0100 Subject: [PATCH 197/722] sign zome call before calling zome for signing service --- .../Holochain/HolochainService.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index be7e7a4ab..a7446c556 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -302,14 +302,15 @@ export default class HolochainService { } } - const result = await this.#appWebsocket!.callZome({ - cap_secret: null, + const signedZomeCall = await signZomeCall({ cell_id: this.#signingService!, zome_name: "crypto_signing", fn_name: "sign", - payload: data, - provenance: pubKey - }) + provenance: pubKey, + payload: data + }); + + const result = await this.#appWebsocket!.callZome(signedZomeCall); return result.toString("hex") } @@ -427,7 +428,7 @@ export default class HolochainService { const did = this.#agentService.did; //Did should only ever be undefined when the system DNA's get init'd before agent create occurs //These system DNA's do not currently need EP proof's - let membraneProof; + let membraneProof = {}; if(did && lang != "signing_service") { const signedDid = await this.callSigningService(did); const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(Buffer.from(pubKey).toString("base64"), signedDid); @@ -450,7 +451,7 @@ export default class HolochainService { } }) - console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); + // console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); } catch(e) { console.error("HolochainService: InstallApp, got error: ", e); return []; From f0d2e0b0b7f818db75e3e9f8248ca1d6d72d6e3b Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 19 Apr 2023 23:06:53 +0100 Subject: [PATCH 198/722] fix handling of holochain signing keys that are signed to the database --- executor/src/core/LanguageController.ts | 3 +- .../Holochain/HolochainService.ts | 73 ++++++++++--------- 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index cc0299996..d697bc091 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -353,7 +353,6 @@ export default class LanguageController { data = data.toString(); } const hash = UTILS.hash(data); - console.log("generated hash", hash); return hash; } @@ -425,7 +424,7 @@ export default class LanguageController { console.error("LanguageController.installLanguage: ERROR LOADING NEWLY INSTALLED LANGUAGE") console.error("LanguageController.installLanguage: ======================================") console.error(e) - fs.rmdirSync(languagePath, {recursive: true}) + //fs.rmdirSync(languagePath, {recursive: true}) //@ts-ignore throw Error(`Error loading language [${sourcePath}]: ${e.toString()}`) } diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index a7446c556..f117e53e5 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -183,7 +183,7 @@ export default class HolochainService { let resolveReady: ((value: void | PromiseLike) => void) | undefined; this.#ready = new Promise(resolve => resolveReady = resolve) - console.log("Connecting to holochain process."); + console.log("HolochainService: Connecting to holochain process."); try { if (this.#adminWebsocket == undefined) { @@ -286,21 +286,7 @@ export default class HolochainService { const pubKey = await this.pubKeyForLanguage("main"); //Check that signZomeCall will be able to find the signing credentials - const signingKeyExists = getSigningCredentials(this.#signingService!); - - if (!signingKeyExists) { - const cellIdB64 = this.cellIdToB64(this.#signingService!); - //Check if we already have some in the database - let signingCredentials = await this.#signingCredentialsDb.findOne({cellId: cellIdB64}) - if (!signingCredentials) { - console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "generating new ones..."); - await this.generateSigningKeys(this.#signingService!); - } else { - console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "but found them in the database, setting them...", signingCredentials); - //We have some but they are not present in the holochain client... set them - setSigningCredentials(this.#signingService!, JSON.parse(signingCredentials.signingCredentials)); - } - } + await this.ensureSigningKey(this.#signingService!); const signedZomeCall = await signZomeCall({ cell_id: this.#signingService!, @@ -381,6 +367,33 @@ export default class HolochainService { return encodeHashToBase64(cell[0]).concat(encodeHashToBase64(cell[1])); } + async ensureSigningKey(cellId: CellId) { + //Check that signZomeCall will be able to find the signing credentials + const signingKeyExists = getSigningCredentials(cellId); + + if (!signingKeyExists) { + const cellIdB64 = this.cellIdToB64(cellId); + //Check if we already have some in the database + let signingCredentials = await this.#signingCredentialsDb.findOne({cellId: cellIdB64}) + if (!signingCredentials) { + console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "generating new ones..."); + await this.generateSigningKeys(cellId); + } else { + let credentials = JSON.parse(signingCredentials.signingCredentials); + credentials.capSecret = new Uint8Array(Buffer.from(credentials.capSecret, 'base64')); + credentials.signingKey = new Uint8Array(Buffer.from(credentials.signingKey, 'base64')); + credentials.keyPair = { + publicKey: new Uint8Array(Buffer.from(credentials.keyPair.publicKey, 'base64')), + secretKey: new Uint8Array(Buffer.from(credentials.keyPair.secretKey, 'base64')) + }; + //We have some but they are not present in the holochain client... set them + console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "but found them in the database, setting them..."); + setSigningCredentials(cellId, credentials); + } + } + } + + private async generateSigningKeys(cell: CellId): Promise { const cellIdB64 = this.cellIdToB64(cell); @@ -391,7 +404,15 @@ export default class HolochainService { setSigningCredentials(cell, signingCredentials); //Set the signing credentials in the database - await this.#signingCredentialsDb.insertOne({cellId: cellIdB64, signingCredentials: JSON.stringify(signingCredentials)}); + let stringSigningCredentials = { + capSecret: Buffer.from(signingCredentials.capSecret).toString('base64'), + keyPair: { + publicKey: Buffer.from(signingCredentials.keyPair.publicKey).toString('base64'), + secretKey: Buffer.from(signingCredentials.keyPair.secretKey).toString('base64') + }, + signingKey: Buffer.from(signingCredentials.signingKey).toString('base64') + }; + await this.#signingCredentialsDb.insertOne({cellId: cellIdB64, signingCredentials: JSON.stringify(stringSigningCredentials)}); return signingCredentials; } @@ -581,22 +602,8 @@ export default class HolochainService { if (fnName != "sync" && fnName != "current_revision") { console.debug("\x1b[34m", new Date().toISOString(), "HolochainService calling zome function:", dnaNick, zomeName, fnName, payload, "\nFor language with address", lang, "\x1b[0m"); } - //Check that signZomeCall will be able to find the signing credentials - const signingKeyExists = getSigningCredentials(cellId); - - if (!signingKeyExists) { - const cellIdB64 = this.cellIdToB64(cellId); - //Check if we already have some in the database - let signingCredentials = await this.#signingCredentialsDb.findOne({cellId: cellIdB64}) - if (!signingCredentials) { - console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "generating new ones..."); - await this.generateSigningKeys(cellId); - } else { - console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "but found them in the database, setting them...", signingCredentials); - //We have some but they are not present in the holochain client... set them - setSigningCredentials(cellId, JSON.parse(signingCredentials.signingCredentials)); - } - } + + await this.ensureSigningKey(cellId); const signedZomeCall = await signZomeCall({ cell_id: cellId, From 472bca9a47ca026a50399686099345b9c9e51126 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 19 Apr 2023 23:07:06 +0100 Subject: [PATCH 199/722] fix agentservice signString --- executor/src/core/agent/AgentService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 05cc1a109..04a288d9f 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -148,7 +148,7 @@ export default class AgentService { const key = this.getSigningKey() //@ts-ignore - const privKey = Uint8Array.from(Buffer.from(key.privateKey, key.encoding)) + const privKey = Uint8Array.from(Buffer.from(key.private_key, key.encoding)) const sigObj = secp256k1.ecdsaSign(payloadBytes, privKey) const sigBuffer = Buffer.from(sigObj.signature) From 6d6969f4ff94e6f54b97545f2d82a0efcc393e0b Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 19 Apr 2023 23:30:08 +0100 Subject: [PATCH 200/722] make all graphql mutations use await where need in script --- .../src/graphql/mutation_resolvers.rs | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 9c7b37fd1..dd1741830 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -129,7 +129,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentGenerateJwt( + await core.resolvers.Mutation.agentGenerateJwt( null, {{ rand: "{}", requestId: "{}" }}, {{ capabilities: [{}] }} @@ -193,7 +193,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentRemoveApp( + await core.resolvers.Mutation.agentRemoveApp( null, {{ requestId: "{}" }}, {{ capabilities: [{}] }} @@ -215,7 +215,7 @@ impl Mutation { let auth_info_json = serde_json::to_string(&auth_info)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentRequestCapability( + await core.resolvers.Mutation.agentRequestCapability( null, {{ authInfo: {} }}, {{ capabilities: [{}] }} @@ -236,7 +236,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentRevokeToken( + await core.resolvers.Mutation.agentRevokeToken( null, {{ requestId: "{}" }}, {{ capabilities: [{}] }} @@ -257,7 +257,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentSignMessage( + await core.resolvers.Mutation.agentSignMessage( null, {{ message: "{}" }}, {{ capabilities: [{}] }} @@ -299,7 +299,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentUpdateDirectMessageLanguage( + await core.resolvers.Mutation.agentUpdateDirectMessageLanguage( null, {{ directMessageLanguage: "{}" }}, {{ capabilities: [{}] }} @@ -321,7 +321,7 @@ impl Mutation { let perspective_json = serde_json::to_string(&perspective)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentUpdatePublicPerspective( + await core.resolvers.Mutation.agentUpdatePublicPerspective( null, {{ perspective: {} }}, {{ capabilities: [{}] }} @@ -365,7 +365,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.expressionCreate( + await core.resolvers.Mutation.expressionCreate( null, {{ content: "{}", languageAddress: "{}" }}, {{ capabilities: [{}] }} @@ -388,7 +388,7 @@ impl Mutation { let interaction_call_json = serde_json::to_string(&interaction_call)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.expressionInteract( + await core.resolvers.Mutation.expressionInteract( null, {{ interactionCall: {}, url: "{}" }}, {{ capabilities: [{}] }} @@ -410,7 +410,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.languageApplyTemplateAndPublish( + await core.resolvers.Mutation.languageApplyTemplateAndPublish( null, {{ sourceLanguageHash: "{}", templateData: "{}" }}, {{ capabilities: [{}] }} @@ -450,7 +450,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.languageRemove( + await core.resolvers.Mutation.languageRemove( null, {{ address: "{}" }}, {{ capabilities: [{}] }} @@ -472,7 +472,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.languageWriteSettings( + await core.resolvers.Mutation.languageWriteSettings( null, {{ languageAddress: "{}", settings: "{}" }}, {{ capabilities: [{}] }} @@ -493,7 +493,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.neighbourhoodJoinFromUrl( + await core.resolvers.Mutation.neighbourhoodJoinFromUrl( null, {{ url: "{}" }}, {{ capabilities: [{}] }} @@ -517,7 +517,7 @@ impl Mutation { let meta_json = serde_json::to_string(&meta)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.neighbourhoodPublishFromPerspective( + await core.resolvers.Mutation.neighbourhoodPublishFromPerspective( null, {{ linkLanguage: "{}", meta: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} @@ -540,7 +540,7 @@ impl Mutation { let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.neighbourhoodSendBroadcast( + await core.resolvers.Mutation.neighbourhoodSendBroadcast( null, {{ payload: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} @@ -563,7 +563,7 @@ impl Mutation { let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.neighbourhoodSendBroadcastU( + await core.resolvers.Mutation.neighbourhoodSendBroadcastU( null, {{ payload: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} @@ -587,7 +587,7 @@ impl Mutation { let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.neighbourhoodSendSignal( + await core.resolvers.Mutation.neighbourhoodSendSignal( null, {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, {{ capabilities: [{}] }} @@ -611,7 +611,7 @@ impl Mutation { let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.neighbourhoodSendSignalU( + await core.resolvers.Mutation.neighbourhoodSendSignalU( null, {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, {{ capabilities: [{}] }} @@ -634,7 +634,7 @@ impl Mutation { let status_json = serde_json::to_string(&status)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.neighbourhoodSetOnlineStatus( + await core.resolvers.Mutation.neighbourhoodSetOnlineStatus( null, {{ perspectiveUUID: "{}", status: {} }}, {{ capabilities: [{}] }} @@ -657,7 +657,7 @@ impl Mutation { let status_json = serde_json::to_string(&status)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.neighbourhoodSetOnlineStatusU( + await core.resolvers.Mutation.neighbourhoodSetOnlineStatusU( null, {{ perspectiveUUID: "{}", status: {} }}, {{ capabilities: [{}] }} @@ -701,7 +701,7 @@ impl Mutation { let link_json = serde_json::to_string(&link)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveAddLink( + await core.resolvers.Mutation.perspectiveAddLink( null, {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} @@ -724,7 +724,7 @@ impl Mutation { let link_json = serde_json::to_string(&link)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveAddLinkExpression( + await core.resolvers.Mutation.perspectiveAddLinkExpression( null, {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} @@ -747,7 +747,7 @@ impl Mutation { let links_json = serde_json::to_string(&links)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveAddLinks( + await core.resolvers.Mutation.perspectiveAddLinks( null, {{ links: {}, uuid: "{}" }}, {{ capabilities: [{}] }} @@ -770,7 +770,7 @@ impl Mutation { let mutations_json = serde_json::to_string(&mutations)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveLinkMutations( + await core.resolvers.Mutation.perspectiveLinkMutations( null, {{ mutations: {}, uuid: "{}" }}, {{ capabilities: [{}] }} @@ -791,7 +791,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectivePublishSnapshot( + await core.resolvers.Mutation.perspectivePublishSnapshot( null, {{ uuid: "{}" }}, {{ capabilities: [{}] }} @@ -831,7 +831,7 @@ impl Mutation { let link_json = serde_json::to_string(&link)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveRemoveLink( + await core.resolvers.Mutation.perspectiveRemoveLink( null, {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} @@ -854,7 +854,7 @@ impl Mutation { let links_json = serde_json::to_string(&links)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveRemoveLinks( + await core.resolvers.Mutation.perspectiveRemoveLinks( null, {{ links: {}, uuid: "{}" }}, {{ capabilities: [{}] }} @@ -901,7 +901,7 @@ impl Mutation { let old_link_json = serde_json::to_string(&old_link)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveUpdateLink( + await core.resolvers.Mutation.perspectiveUpdateLink( null, {{ newLink: {}, oldLink: {}, uuid: "{}" }}, {{ capabilities: [{}] }} @@ -923,7 +923,7 @@ impl Mutation { let dids_json = serde_json::to_string(&dids)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.runtimeAddFriends( + await core.resolvers.Mutation.runtimeAddFriends( null, {{ dids: {} }}, {{ capabilities: [{}] }} @@ -968,7 +968,7 @@ impl Mutation { let message_json = serde_json::to_string(&message)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.runtimeFriendSendMessage( + await core.resolvers.Mutation.runtimeFriendSendMessage( null, {{ did: "{}", message: {} }}, {{ capabilities: [{}] }} @@ -989,7 +989,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.runtimeHcAddAgentInfos( + await core.resolvers.Mutation.runtimeHcAddAgentInfos( null, {{ agentInfos: "{}" }}, {{ capabilities: [{}] }} @@ -1089,7 +1089,7 @@ impl Mutation { let status_json = serde_json::to_string(&status)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.runtimeSetStatus( + await core.resolvers.Mutation.runtimeSetStatus( null, {{ status: {} }}, {{ capabilities: [{}] }} From 353249bb977969e78a1bf0641904086bb8792cb1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 19 Apr 2023 23:37:20 +0100 Subject: [PATCH 201/722] add await to all query scripts which require it --- rust-executor/src/graphql/query_resolvers.rs | 40 ++++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index d5bc57b8a..f8a98d729 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -35,7 +35,7 @@ impl Query { .execute( format!( r#"JSON.stringify( - core.resolvers.Query.agentByDID( + await core.resolvers.Query.agentByDID( null, {{ did: {} }}, {{ capabilities: [{}] }} @@ -54,7 +54,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.agentGetApps(null, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.agentGetApps(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY )) .await?; @@ -103,7 +103,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.expression(null, {{ url: {} }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.expression(null, {{ url: {} }}, {{ capabilities: [{}] }}))", url, ALL_CAPABILITY )) @@ -120,7 +120,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.expressionInteractions(null, {{ url: {} }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.expressionInteractions(null, {{ url: {} }}, {{ capabilities: [{}] }}))", url, ALL_CAPABILITY )) @@ -142,7 +142,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.expressionMany(null, {{ urls: [{}] }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.expressionMany(null, {{ urls: [{}] }}, {{ capabilities: [{}] }}))", urls_string, ALL_CAPABILITY )) @@ -155,7 +155,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.expressionRaw(null, {{ url: {} }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.expressionRaw(null, {{ url: {} }}, {{ capabilities: [{}] }}))", url, ALL_CAPABILITY )) @@ -181,7 +181,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.language(null, {{ address: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(await core.resolvers.Query.language(null, {{ address: {}, {{ capabilities: [{}] }} }}))", address, ALL_CAPABILITY )) @@ -198,7 +198,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.languageMeta(null, {{ address: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(await core.resolvers.Query.languageMeta(null, {{ address: {}, {{ capabilities: [{}] }} }}))", address, ALL_CAPABILITY )) @@ -215,7 +215,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.languageSource(null, {{ address: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(await core.resolvers.Query.languageSource(null, {{ address: {}, {{ capabilities: [{}] }} }}))", address, ALL_CAPABILITY )) @@ -249,7 +249,7 @@ impl Query { ) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.neighbourhoodHasTelepresenceAdapter(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodHasTelepresenceAdapter(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) .await?; let has_adapter: bool = serde_json::from_str(&result)?; return Ok(has_adapter); @@ -262,7 +262,7 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.neighbourhoodOnlineAgents(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodOnlineAgents(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) .await?; let online_agents: Vec = serde_json::from_str(&result)?; return Ok(online_agents); @@ -275,7 +275,7 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.neighbourhoodOtherAgents(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodOtherAgents(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) .await?; let other_agents: Vec = serde_json::from_str(&result)?; return Ok(other_agents); @@ -307,7 +307,7 @@ impl Query { let query_string = serde_json::to_string(&query)?; let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.perspectiveQueryLinks(null, {{ query: {}, uuid: {}, {{ capabilities: [{}] }} }}))", query_string, uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.perspectiveQueryLinks(null, {{ query: {}, uuid: {}, {{ capabilities: [{}] }} }}))", query_string, uuid, ALL_CAPABILITY)) .await?; let link_expressions: Vec = serde_json::from_str(&result)?; return Ok(link_expressions); @@ -321,7 +321,7 @@ impl Query { ) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.perspectiveQueryProlog(null, {{ query: {}, uuid: {}, {{ capabilities: [{}] }} }}))", query, uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.perspectiveQueryProlog(null, {{ query: {}, uuid: {}, {{ capabilities: [{}] }} }}))", query, uuid, ALL_CAPABILITY)) .await?; let prolog_result: String = serde_json::from_str(&result)?; return Ok(prolog_result); @@ -335,7 +335,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.perspectiveSnapshot(null, {{ uuid: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(await core.resolvers.Query.perspectiveSnapshot(null, {{ uuid: {}, {{ capabilities: [{}] }} }}))", uuid, ALL_CAPABILITY )) @@ -364,7 +364,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.runtimeFriendStatus(null, {{ did: {} }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.runtimeFriendStatus(null, {{ did: {} }}, {{ capabilities: [{}] }}))", did, ALL_CAPABILITY )) @@ -385,7 +385,7 @@ impl Query { async fn runtime_hc_agent_infos(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.runtimeHcAgentInfos(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeHcAgentInfos(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) .await?; let hc_agent_infos: String = serde_json::from_str(&result)?; return Ok(hc_agent_infos); @@ -423,7 +423,7 @@ impl Query { let filter_str = filter.unwrap_or_else(|| String::from("{}")); let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.runtimeMessageInbox(null, {{ filter: {}, capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeMessageInbox(null, {{ filter: {}, capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) .await?; let inbox_messages: Vec = serde_json::from_str(&result)?; return Ok(inbox_messages); @@ -437,7 +437,7 @@ impl Query { let filter_str = filter.unwrap_or_else(|| String::from("{}")); let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.runtimeMessageOutbox(null, {{ filter: {}, capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeMessageOutbox(null, {{ filter: {}, capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) .await?; let outbox_messages: Vec = serde_json::from_str(&result)?; return Ok(outbox_messages); @@ -455,7 +455,7 @@ impl Query { let result = js .execute( format!( - r#"JSON.stringify(core.resolvers.Query.runtimeVerifyStringSignedByDID( + r#"JSON.stringify(await core.resolvers.Query.runtimeVerifyStringSignedByDID( null, {{ data: {}, did: {}, didSigningKeyId: {}, signedData: {}, capabilities: [{}] }} ))"#, From 182b8e594986e45568f9582634e675b912a818a0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 20 Apr 2023 17:25:32 +0100 Subject: [PATCH 202/722] implement rust pubsub mechanism --- rust-executor/src/lib.rs | 1 + rust-executor/src/main.rs | 1 + rust-executor/src/pubsub.rs | 90 +++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 rust-executor/src/pubsub.rs diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 9fed84209..0a93fc0e2 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -6,6 +6,7 @@ mod utils; mod wallet; pub mod init; +mod pubsub; use log::{error, info}; use std::env; diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 820a3947f..529afcfd5 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -5,6 +5,7 @@ mod utils; mod wallet; pub mod init; +mod pubsub; use log::{error, info}; use rust_executor::Ad4mConfig; diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs new file mode 100644 index 000000000..5525972d2 --- /dev/null +++ b/rust-executor/src/pubsub.rs @@ -0,0 +1,90 @@ +use futures::Stream; +use futures::StreamExt; +use juniper::{graphql_value, FieldError, FieldResult}; +use log::error; +use serde::de::DeserializeOwned; +use std::collections::HashMap; +use std::pin::Pin; +use std::sync::Arc; +use tokio::sync::watch; +use tokio::sync::Mutex; +use tokio_stream::wrappers::WatchStream; + +type Topic = String; +type Message = String; + +pub struct PubSub { + subscribers: Mutex>>>, +} + +impl PubSub { + pub fn new() -> Self { + Self { + subscribers: Mutex::new(HashMap::new()), + } + } + + pub async fn subscribe(&self, topic: &Topic) -> watch::Receiver { + let (tx, rx) = watch::channel("".to_owned()); + let mut subscribers = self.subscribers.lock().await; + subscribers + .entry(topic.to_owned()) + .or_insert_with(Vec::new) + .push(tx); + rx + } + + pub async fn publish(&self, topic: &Topic, message: &Message) { + let subscribers = self.subscribers.lock().await; + if let Some(subscribers) = subscribers.get(topic) { + for tx in subscribers { + let send_res = tx.send(message.to_owned()); + if send_res.is_err() { + error!("Failed to send message to subscriber: {:?}", send_res); + } + } + } + } +} + +pub(crate) async fn subscribe_and_process( + pubsub: Arc, + topic: Topic, +) -> Pin> + Send>> { + let receiver = pubsub.subscribe(&topic).await; + let receiver_stream = WatchStream::new(receiver); + + let mapped_stream = receiver_stream.map(|msg| { + println!("Received message: {:?}", msg); + match serde_json::from_str::(&msg) { + Ok(agent_status) => Ok(agent_status), + Err(e) => Err(FieldError::new( + e, + graphql_value!({ "type": "INTERNAL_ERROR_COULD_NOT_SERIALIZE" }), + )), + } + }); + + Box::pin(mapped_stream) +} + +lazy_static::lazy_static! { + static ref GLOBAL_PUB_SUB: Arc = Arc::new(PubSub::new()); + + pub static ref AGENT_STATUS_CHANGED_TOPIC: String = "agent-status-changed".to_owned(); + pub static ref AGENT_UPDATED_TOPIC: String = "agent-updated".to_owned(); + pub static ref EXCEPTION_OCCURRED_TOPIC: String = "exception-occurred".to_owned(); + pub static ref NEIGHBOURHOOD_SIGNAL_TOPIC: String = "neighbourhood-signal".to_owned(); + pub static ref PERSPECTIVE_ADDED_TOPIC: String = "perspective-added".to_owned(); + pub static ref PERSPECTIVE_LINK_ADDED_TOPIC: String = "perspective-link-added".to_owned(); + pub static ref PERSPECTIVE_LINK_REMOVED_TOPIC: String = "perspective-link-removed".to_owned(); + pub static ref PERSPECTIVE_LINK_UPDATED_TOPIC: String = "perspective-link-updated".to_owned(); + pub static ref PERSPECTIVE_REMOVED_TOPIC: String = "perspective-removed".to_owned(); + pub static ref PERSPECTIVE_UPDATED_TOPIC: String = "perspective-updated".to_owned(); + pub static ref PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC: String = "perspective-sync-state-change".to_owned(); + pub static ref RUNTIME_MESSAGED_RECEIVED_TOPIC: String = "runtime-messaged-received".to_owned(); +} + +pub async fn get_global_pubsub() -> Arc { + GLOBAL_PUB_SUB.clone() +} From eabc7b5bb48bd2f16718898bb434fe9825e6f74e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 20 Apr 2023 17:26:07 +0100 Subject: [PATCH 203/722] add pubsub extension to deno --- rust-executor/src/js_core/mod.rs | 1 + rust-executor/src/js_core/options.rs | 7 +++++-- rust-executor/src/js_core/pubsub_extension.js | 10 ++++++++++ rust-executor/src/js_core/pubsub_extension.rs | 18 ++++++++++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 rust-executor/src/js_core/pubsub_extension.js create mode 100644 rust-executor/src/js_core/pubsub_extension.rs diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index ba185098f..7010bc024 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -20,6 +20,7 @@ use tokio::task::LocalSet; mod futures; mod options; +mod pubsub_extension; mod string_module_loader; mod utils_extension; mod wallet_extension; diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs index 0d5620b34..a536d0563 100644 --- a/rust-executor/src/js_core/options.rs +++ b/rust-executor/src/js_core/options.rs @@ -2,7 +2,9 @@ use deno_runtime::worker::WorkerOptions; use std::{collections::HashMap, rc::Rc}; use url::Url; -use super::{string_module_loader::StringModuleLoader, utils_extension, wallet_extension}; +use super::{ + pubsub_extension, string_module_loader::StringModuleLoader, utils_extension, wallet_extension, +}; pub fn main_module_url() -> Url { Url::parse("https://ad4m.runtime/main").unwrap() @@ -33,9 +35,10 @@ pub fn main_worker_options() -> WorkerOptions { let wallet_ext = wallet_extension::build(); let utils_ext = utils_extension::build(); + let sub_ext = pubsub_extension::build(); WorkerOptions { - extensions: vec![wallet_ext, utils_ext], + extensions: vec![wallet_ext, utils_ext, sub_ext], module_loader: Rc::new(loader), ..Default::default() } diff --git a/rust-executor/src/js_core/pubsub_extension.js b/rust-executor/src/js_core/pubsub_extension.js new file mode 100644 index 000000000..2ac02208a --- /dev/null +++ b/rust-executor/src/js_core/pubsub_extension.js @@ -0,0 +1,10 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.PUBSUB = { + publish: async (topic, data) => { + return core.opAsync("publish", topic, JSON.stringify(data)); + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/js_core/pubsub_extension.rs b/rust-executor/src/js_core/pubsub_extension.rs new file mode 100644 index 000000000..f11c1bfd5 --- /dev/null +++ b/rust-executor/src/js_core/pubsub_extension.rs @@ -0,0 +1,18 @@ +use deno_core::{error::AnyError, include_js_files, op, Extension}; + +use crate::pubsub::get_global_pubsub; + +#[op] +async fn publish(topic: String, data: String) -> Result<(), AnyError> { + let pub_sub = get_global_pubsub().await; + pub_sub.publish(&topic, &data).await; + Ok(()) +} + +pub fn build() -> Extension { + Extension::builder("wallet") + .js(include_js_files!(wallet "pubsub_extension.js",)) + .ops(vec![publish::decl()]) + .force_op_registration() + .build() +} From 6a34d6d95092d0b32cf018e1646bd0b3c9ee657d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 20 Apr 2023 17:26:23 +0100 Subject: [PATCH 204/722] add pubsub extension calling to js code --- executor/src/core/LanguageController.ts | 24 ++- executor/src/core/Perspective.ts | 48 ++---- executor/src/core/PerspectivesController.ts | 16 +- executor/src/core/PerspectivismCore.ts | 6 +- executor/src/core/agent/AgentService.ts | 12 +- executor/src/core/agent/Signatures.ts | 6 + .../src/core/graphQL-interface/GraphQL.ts | 141 +----------------- executor/src/pubsub_extension.d.ts | 9 ++ 8 files changed, 59 insertions(+), 203 deletions(-) create mode 100644 executor/src/pubsub_extension.d.ts diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index d697bc091..ac41c5d5a 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -76,7 +76,6 @@ export default class LanguageController { #languageLanguage?: Language #neighbourhoodLanguage?: Language #perspectiveLanguage?: Language - pubSub constructor(context: object, services: Services) { this.#context = context @@ -89,7 +88,6 @@ export default class LanguageController { this.#linkObservers = [] this.#telepresenceSignalObservers = [] this.#syncStateChangeObservers = [] - this.pubSub = PubSub.get() this.#config = (context as any).config; } @@ -165,7 +163,7 @@ export default class LanguageController { let errMsg = `LanguageController.loadInstalledLanguages(): COULDN'T LOAD LANGUAGE: ${bundlePath}` console.error(errMsg) console.error(e) - this.pubSub.publish( + await PUBSUB.publish( PubSub.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to load installed language", @@ -217,7 +215,7 @@ export default class LanguageController { // } catch (e) { // const errMsg = `Could not load language ${e}`; // console.error(errMsg); - // this.pubSub.publish( + // await PUBSUB.publish( // PubSub.EXCEPTION_OCCURRED_TOPIC, // { // title: "Failed to load installed language", @@ -243,7 +241,7 @@ export default class LanguageController { const storageDirectory = this.getLanguageStoragePath(hash) const Holochain = this.#holochainService.getDelegateForLanguage(hash) //@ts-ignore - const ad4mSignal = this.#context.ad4mSignal.bind({language: hash, pubsub: this.pubSub}); + const ad4mSignal = this.#context.ad4mSignal.bind({language: hash, pubsub: PUBSUB}); const language = await create({...this.#context, customSettings, storageDirectory, Holochain, ad4mSignal}) if(language.linksAdapter) { @@ -266,8 +264,8 @@ export default class LanguageController { //@ts-ignore if(language.directMessageAdapter && language.directMessageAdapter.recipient() == this.#context.agent.did) { - language.directMessageAdapter.addMessageCallback((message: PerspectiveExpression) => { - this.pubSub.publish(PubSub.DIRECT_MESSAGE_RECEIVED, message) + language.directMessageAdapter.addMessageCallback(async (message: PerspectiveExpression) => { + await PUBSUB.publish(PubSub.DIRECT_MESSAGE_RECEIVED, message) }) } @@ -290,7 +288,7 @@ export default class LanguageController { const storageDirectory = this.getLanguageStoragePath(hash) const Holochain = this.#holochainService.getDelegateForLanguage(hash) //@ts-ignore - const ad4mSignal = this.#context.ad4mSignal.bind({language: address, pubsub: this.pubSub}); + const ad4mSignal = this.#context.ad4mSignal.bind({language: address, pubsub: PUBSUB}); //@ts-ignore const language = await create!({...this.#context, storageDirectory, Holochain, ad4mSignal, customSettings}) @@ -315,8 +313,8 @@ export default class LanguageController { //@ts-ignore if(language.directMessageAdapter && language.directMessageAdapter.recipient() == this.#context.agent.did) { - language.directMessageAdapter.addMessageCallback((message: PerspectiveExpression) => { - this.pubSub.publish(PubSub.DIRECT_MESSAGE_RECEIVED, message) + language.directMessageAdapter.addMessageCallback(async (message: PerspectiveExpression) => { + await PUBSUB.publish(PubSub.DIRECT_MESSAGE_RECEIVED, message) }) } @@ -505,7 +503,7 @@ export default class LanguageController { ) { let errMsg = `Language not created by trusted agent: ${languageAuthor} and is not templated... aborting language install. Language metadata: ${stringify(languageMetaData)}` console.error(errMsg) - this.pubSub.publish( + await PUBSUB.publish( PubSub.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to install language", @@ -544,7 +542,7 @@ export default class LanguageController { } } else { let errMsg = "Agent which created source language for language trying to be installed is not a trustedAgent... aborting language install"; - this.pubSub.publish( + await PUBSUB.publish( PubSub.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to install language", @@ -1070,7 +1068,7 @@ export default class LanguageController { let errMsg = `Error trying to verify signature for expression: ${expressionFormatted}` console.error(errMsg) console.error(e) - this.pubSub.publish( + await PUBSUB.publish( PubSub.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to get expression", diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index ecfe634fa..01c01eed6 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -1,6 +1,5 @@ import { Agent, Expression, Neighbourhood, LinkExpression, LinkExpressionInput, LinkInput, LanguageRef, PerspectiveHandle, Literal, PerspectiveDiff, parseExprUrl, Perspective as Ad4mPerspective, LinkMutations, LinkExpressionMutations, Language, LinkSyncAdapter, TelepresenceAdapter, OnlineAgent } from "@perspect3vism/ad4m" -import { Link, linkEqual, LinkQuery, PerspectiveState } from "@perspect3vism/ad4m"; -import { SHA3 } from "sha3"; +import { Link, LinkQuery, PerspectiveState } from "@perspect3vism/ad4m"; import type AgentService from "./agent/AgentService"; import type LanguageController from "./LanguageController"; import * as PubSub from './graphQL-interface/PubSub' @@ -11,11 +10,6 @@ import { Mutex } from 'async-mutex' import { DID } from "@perspect3vism/ad4m/lib/src/DID"; import { PerspectivismDb } from "./db"; -type PerspectiveSubscription = { - perspective: PerspectiveHandle, - link: LinkExpression -} - const maxRetries = 10; const backoffStep = 200; @@ -34,7 +28,6 @@ export default class Perspective { #db: PerspectivismDb; #agent: AgentService; #languageController?: LanguageController - #pubsub: any #config?: MainConfig; #prologEngine: PrologInstance|null @@ -60,28 +53,9 @@ export default class Perspective { this.#languageController = context.languageController! this.#config = context.config; - this.#pubsub = PubSub.get() this.#prologEngine = null this.#prologNeedsRebuild = true - this.#pubsub.subscribe(PubSub.LINK_ADDED_TOPIC, ({ perspective }: PerspectiveSubscription) => { - if (perspective.uuid === this.uuid) { - this.#prologNeedsRebuild = true - } - }) - - this.#pubsub.subscribe(PubSub.LINK_REMOVED_TOPIC, ({ perspective }: PerspectiveSubscription) => { - if (perspective.uuid === this.uuid) { - this.#prologNeedsRebuild = true - } - }) - - this.#pubsub.subscribe(PubSub.LINK_UPDATED_TOPIC, ({ perspective }: PerspectiveSubscription) => { - if (perspective.uuid === this.uuid) { - this.#prologNeedsRebuild = true - } - }) - const that = this process.on("SIGINT", () => { @@ -117,7 +91,7 @@ export default class Perspective { async updatePerspectiveState(state: PerspectiveState) { if (this.state != state) { - await this.#pubsub.publish(PubSub.PERSPECTIVE_SYNC_STATE_CHANGE, {state, uuid: this.uuid}) + await PUBSUB.publish(PubSub.PERSPECTIVE_SYNC_STATE_CHANGE, {state, uuid: this.uuid}) this.state = state } } @@ -475,10 +449,11 @@ export default class Perspective { await this.#db.addLink(this.uuid!, linkExpression); this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); - this.#pubsub.publish(PubSub.LINK_ADDED_TOPIC, { + PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: linkExpression }) + this.#prologNeedsRebuild = true return linkExpression } @@ -499,11 +474,12 @@ export default class Perspective { this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); for (const link of linkExpressions) { - this.#pubsub.publish(PubSub.LINK_ADDED_TOPIC, { + PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: link }) }; + this.#prologNeedsRebuild = true return linkExpressions } @@ -523,11 +499,12 @@ export default class Perspective { await Promise.all(linkExpressions.map(async l => await this.#db.removeLink(this.uuid!, l))) this.#prologNeedsRebuild = true; for (const link of linkExpressions) { - this.#pubsub.publish(PubSub.LINK_REMOVED_TOPIC, { + PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: link }) }; + this.#prologNeedsRebuild = true return linkExpressions } @@ -547,17 +524,18 @@ export default class Perspective { await Promise.all(diff.removals.map(async l => await this.#db.removeLink(this.uuid!, l))); this.#prologNeedsRebuild = true; for (const link of diff.additions) { - this.#pubsub.publish(PubSub.LINK_ADDED_TOPIC, { + PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { perspective: this.plain(), link: link }); }; for (const link of diff.removals) { - this.#pubsub.publish(PubSub.LINK_REMOVED_TOPIC, { + PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: link }); }; + this.#prologNeedsRebuild = true return diff; } @@ -585,7 +563,7 @@ export default class Perspective { const perspective = this.plain(); this.#prologNeedsRebuild = true; - this.#pubsub.publish(PubSub.LINK_UPDATED_TOPIC, { + PUBSUB.publish(PubSub.LINK_UPDATED_TOPIC, { perspective, oldLink, newLink: newLinkExpression @@ -608,7 +586,7 @@ export default class Perspective { } this.#prologNeedsRebuild = true; - this.#pubsub.publish(PubSub.LINK_REMOVED_TOPIC, { + PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: linkExpression }) diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index c9ef67a8f..8e604393d 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -10,13 +10,11 @@ export default class PerspectivesController { #perspectiveHandles: Map #perspectiveInstances: Map #rootConfigPath - pubsub #context constructor(rootConfigPath: string, context: PerspectiveContext) { this.#context = context this.#rootConfigPath = rootConfigPath - this.pubsub = PubSub.get() this.#perspectiveHandles = new Map() this.#perspectiveInstances = new Map() @@ -44,7 +42,7 @@ export default class PerspectivesController { try { let perspectivePlain = perspective.plain(); for (const link of diff.additions) { - await this.pubsub.publish(PubSub.LINK_ADDED_TOPIC, { + await PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: link }) @@ -52,7 +50,7 @@ export default class PerspectivesController { for (const linkRemoved of diff.removals) { console.log("publishing removal:", linkRemoved) - await this.pubsub.publish(PubSub.LINK_REMOVED_TOPIC, { + await PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { perspective: perspectivePlain, link: linkRemoved }) @@ -68,7 +66,7 @@ export default class PerspectivesController { this.#context.languageController!.addTelepresenceSignalObserver((signal: any, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); if (perspective) { - this.pubsub.publish(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { + PUBSUB.publish(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { signal: signal, perspective: perspective.plain() }) @@ -144,12 +142,12 @@ export default class PerspectivesController { this.#perspectiveHandles.set(perspective.uuid, perspective) this.#perspectiveInstances.set(perspective.uuid, new Perspective(perspective, this.#context, neighbourhood, createdFromJoin, state)) this.save() - this.pubsub.publish(PubSub.PERSPECTIVE_ADDED_TOPIC, { perspective }) + PUBSUB.publish(PubSub.PERSPECTIVE_ADDED_TOPIC, { perspective }) return perspective } replace(perspectiveHandle: PerspectiveHandle, neighbourhood: Neighbourhood, createdFromJoin: boolean, state: PerspectiveState) { - this.pubsub.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: perspectiveHandle }) + PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: perspectiveHandle }) this.#perspectiveHandles.set(perspectiveHandle.uuid, perspectiveHandle); this.#perspectiveInstances.get(perspectiveHandle.uuid)?.clearPolling(); this.#perspectiveInstances.set(perspectiveHandle.uuid, new Perspective(perspectiveHandle, this.#context, neighbourhood, createdFromJoin, state)); @@ -166,7 +164,7 @@ export default class PerspectivesController { this.#perspectiveHandles.delete(uuid) this.#perspectiveInstances.delete(uuid) this.save() - this.pubsub.publish(PubSub.PERSPECTIVE_REMOVED_TOPIC, { uuid }) + PUBSUB.publish(PubSub.PERSPECTIVE_REMOVED_TOPIC, { uuid }) } catch (e) { console.error("Error removing perspective:", e); throw new Error(`Error removing perspective: ${e}`); @@ -187,7 +185,7 @@ export default class PerspectivesController { instance.updateFromId(perspective as PerspectiveHandle) } - this.pubsub.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: { + PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: { uuid: perspective.uuid, name: perspective.name, state: perspective.state, diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index ff7e0c429..2997850ed 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -5,7 +5,6 @@ import * as Config from './Config' import * as Db from './db' import type { PerspectivismDb } from './db' import HolochainService, { HolochainConfiguration } from './storage-services/Holochain/HolochainService'; -//import * as IPFS from './storage-services/IPFS' import AgentService from './agent/AgentService' import PerspectivesController from './PerspectivesController' import LanguageController from './LanguageController' @@ -14,7 +13,6 @@ import * as DIDs from './agent/DIDs' import type { DIDResolver } from './agent/DIDs' import Signatures from './agent/Signatures' import * as PubSub from './graphQL-interface/PubSub' -//import { IPFS as IPFSType } from 'ipfs' import EntanglementProofController from './EntanglementProof' import runDAppServer from "./DAppServer" import fs from 'fs' @@ -228,12 +226,12 @@ export default class PerspectivismCore { return this.#languagesReady } - languageSignal(signal: any) { + async languageSignal(signal: any) { // //@ts-ignore // console.log(new Date().toISOString(), "PerspectivismCore.languageSignal: Got signal"); //NOTE (optimization): worth considering if its worth keeping around pubsub in this or if we should just get a new pubsub here //@ts-ignore - this.pubsub.publish(PubSub.SIGNAL, { signal: JSON.stringify(signal), language: this.language }); + await PUBSUB.publish(PubSub.SIGNAL, { signal: JSON.stringify(signal), language: this.language }); } initControllers() { diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 04a288d9f..fe9c2d6f7 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -159,7 +159,7 @@ export default class AgentService { async updateAgent(a: Agent) { this.#agent = a; await this.storeAgentProfile(); - this.#pubsub.publish(PubSubInstance.AGENT_UPDATED, a); + await PUBSUB.publish(PubSubInstance.AGENT_UPDATED, a); } setAgentLanguage(lang: Language) { @@ -249,7 +249,7 @@ export default class AgentService { async unlock(password: string) { // @ts-ignore WALLET.unlock(password); - this.#pubsub.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); + await PUBSUB.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); this.#readyPromiseResolve!(); try { await this.storeAgentProfile(); @@ -262,10 +262,10 @@ export default class AgentService { } } - lock(password: string) { + async lock(password: string) { // @ts-ignore WALLET.lock(password); - this.#pubsub.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); + await PUBSUB.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); } async save(password: string) { @@ -332,14 +332,14 @@ export default class AgentService { return token == this.#adminCredential; } - requestCapability(authInfo: AuthInfo) { + async requestCapability(authInfo: AuthInfo) { let requestId = uuidv4(); let authExtended = { requestId, auth: authInfo, } as AuthInfoExtended; - this.#pubsub.publish(PubSubInstance.EXCEPTION_OCCURRED_TOPIC, { + await PUBSUB.publish(PubSubInstance.EXCEPTION_OCCURRED_TOPIC, { title: "Request to authenticate application", message: `${authInfo.appName} is waiting for authentication, go to ad4m launcher for more information.`, type: ExceptionType.CapabilityRequested, diff --git a/executor/src/core/agent/Signatures.ts b/executor/src/core/agent/Signatures.ts index 621bcfb08..57ef1330c 100644 --- a/executor/src/core/agent/Signatures.ts +++ b/executor/src/core/agent/Signatures.ts @@ -59,6 +59,8 @@ export default class Signatures { return false } + console.log("using key", key); + let pubKey: Uint8Array | undefined if(key.publicKeyHex) pubKey = Uint8Array.from(Buffer.from(key.publicKeyHex, "hex")) @@ -67,6 +69,10 @@ export default class Signatures { const sigBytes = Uint8Array.from(Buffer.from(expr.proof.signature, "hex")) const message = Signatures.buildMessage(expr.data, expr.timestamp) + console.log("pubKey", pubKey) + console.log("sigBytes", sigBytes) + console.log("message", message); + if (!pubKey) { throw Error("Could not find publicKeyHex or publicKeyBase58 in did document") } diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 672cc8ba5..42c1a98d9 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -411,16 +411,16 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { const agent = core.agentService.dump(); - pubsub.publish(PubSub.AGENT_STATUS_CHANGED, agent) + await PUBSUB.publish(PubSub.AGENT_STATUS_CHANGED, agent) console.log("\x1b[32m", "AD4M init complete", "\x1b[0m"); return agent; }, //@ts-ignore - agentLock: (parent, args, context, info) => { + agentLock: async (parent, args, context, info) => { checkCapability(context.capabilities, Auth.AGENT_LOCK_CAPABILITY) - core.agentService.lock(args.passphrase) + await core.agentService.lock(args.passphrase) return core.agentService.dump() }, //@ts-ignore @@ -497,7 +497,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { agentRequestCapability: async (parent, args, context, info) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { authInfo } = args; - let token = core.agentService.requestCapability(authInfo); + let token = await core.agentService.requestCapability(authInfo); return token; }, //@ts-ignore @@ -834,138 +834,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, - Subscription: { - agentUpdated: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.AGENT_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.AGENT_UPDATED) - }, - //@ts-ignore - resolve: payload => payload - }, - agentStatusChanged: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - return pubsub.asyncIterator(PubSub.AGENT_STATUS_CHANGED) - }, - //@ts-ignore - resolve: payload => payload - }, - - neighbourhoodSignal: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC), - (payload, argsInner) => payload.perspective.uuid === argsInner.perspectiveUUID - )(undefined, args) - }, - resolve: async (payload: any) => { - await core.languageController?.tagExpressionSignatureStatus(payload?.signal) - if (payload?.signal?.data.links) { - for (const link of payload?.signal.data.links) { - await core.languageController?.tagExpressionSignatureStatus(link); - } - }; - return payload?.signal - } - }, - runtimeMessageReceived: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.RUNTIME_MESSAGES_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.DIRECT_MESSAGE_RECEIVED) - }, - //@ts-ignore - resolve: payload => payload - }, - perspectiveAdded: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.PERSPECTIVE_ADDED_TOPIC) - }, - //@ts-ignore - resolve: payload => payload?.perspective - }, - perspectiveLinkAdded: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.LINK_ADDED_TOPIC), - (payload, argsInner) => payload.perspective.uuid === argsInner.uuid - )(undefined, args) - }, - //@ts-ignore - resolve: payload => payload?.link - }, - perspectiveLinkRemoved: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.LINK_REMOVED_TOPIC), - (payload, variables) => payload.perspective.uuid === variables.uuid - )(undefined, args) - }, - //@ts-ignore - resolve: payload => payload?.link - }, - perspectiveLinkUpdated: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.LINK_UPDATED_TOPIC), - (payload, variables) => payload.perspective.uuid === variables.uuid - )(undefined, args) - }, - //@ts-ignore - resolve: payload => ({ oldLink: payload?.oldLink, newLink: payload.newLink }) - }, - perspectiveUpdated: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.PERSPECTIVE_UPDATED_TOPIC) - }, - //@ts-ignore - resolve: payload => payload?.perspective - }, - perspectiveRemoved: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.PERSPECTIVE_REMOVED_TOPIC) - }, - //@ts-ignore - resolve: payload => payload?.uuid - }, - exceptionOccurred: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.RUNTIME_EXCEPTION_SUBSCRIBE_CAPABILITY) - return pubsub.asyncIterator(PubSub.EXCEPTION_OCCURRED_TOPIC) - }, - //@ts-ignore - resolve: payload => payload - }, - perspectiveSyncStateChange: { - //@ts-ignore - subscribe: (parent, args, context, info) => { - checkCapability(context.capabilities, Auth.PERSPECTIVE_SUBSCRIBE_CAPABILITY) - return withFilter( - () => pubsub.asyncIterator(PubSub.PERSPECTIVE_SYNC_STATE_CHANGE), - (payload, variables) => payload.uuid === variables.uuid - )(undefined, args) - }, - //@ts-ignore - resolve: payload => payload.state - } - }, + Subscription: {}, ExpressionRendered: { //@ts-ignore diff --git a/executor/src/pubsub_extension.d.ts b/executor/src/pubsub_extension.d.ts new file mode 100644 index 000000000..4e85db799 --- /dev/null +++ b/executor/src/pubsub_extension.d.ts @@ -0,0 +1,9 @@ +declare global { + interface PubSub { + async publish: (topic: String, data: any) => void; + } + + const PUBSUB: PubSub; +} + +export {}; \ No newline at end of file From 882a43f0e518cc223d254186c9762e6c1ec6c9ed Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 20 Apr 2023 17:26:48 +0100 Subject: [PATCH 205/722] integrate subscription handlers with rust pubsub --- rust-executor/.gitignore | 4 +- .../src/graphql/mutation_resolvers.rs | 2 +- .../src/graphql/subscription_resolvers.rs | 99 ++++++++++++------- 3 files changed, 65 insertions(+), 40 deletions(-) diff --git a/rust-executor/.gitignore b/rust-executor/.gitignore index f71322bb6..bcd83a0f4 100644 --- a/rust-executor/.gitignore +++ b/rust-executor/.gitignore @@ -1,4 +1,6 @@ !graphql-checker/index.js schema.json schema.gql -!src/js_core/utils_extension.js \ No newline at end of file +!src/js_core/utils_extension.js +!src/js_core/wallet_extension.js +!src/js_core/pubsub_extension.js \ No newline at end of file diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index dd1741830..90ca35755 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -150,7 +150,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentLock( + await core.resolvers.Mutation.agentLock( null, {{ passphrase: "{}" }}, {{ capabilities: [{}] }} diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs index 1656ec70d..c6bf7f1e2 100644 --- a/rust-executor/src/graphql/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -1,9 +1,19 @@ #![allow(non_snake_case)] use futures::stream::Stream; -use juniper::{graphql_value, FieldError, FieldResult}; +use juniper::FieldResult; use std::pin::Pin; -use crate::js_core::JsCoreHandle; +use crate::{ + js_core::JsCoreHandle, + pubsub::{ + get_global_pubsub, subscribe_and_process, AGENT_STATUS_CHANGED_TOPIC, AGENT_UPDATED_TOPIC, + EXCEPTION_OCCURRED_TOPIC, NEIGHBOURHOOD_SIGNAL_TOPIC, PERSPECTIVE_ADDED_TOPIC, + PERSPECTIVE_LINK_ADDED_TOPIC, PERSPECTIVE_LINK_REMOVED_TOPIC, + PERSPECTIVE_LINK_UPDATED_TOPIC, PERSPECTIVE_REMOVED_TOPIC, + PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC, PERSPECTIVE_UPDATED_TOPIC, + RUNTIME_MESSAGED_RECEIVED_TOPIC, + }, +}; use super::graphql_types::*; @@ -15,27 +25,31 @@ impl Subscription { &self, context: &JsCoreHandle, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + println!("incoming sub"); + let pubsub = get_global_pubsub().await; + let topic = &AGENT_STATUS_CHANGED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn agent_updated( &self, context: &JsCoreHandle, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &AGENT_UPDATED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn exception_occurred( &self, context: &JsCoreHandle, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &EXCEPTION_OCCURRED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn neighbourhood_signal( @@ -43,18 +57,20 @@ impl Subscription { context: &JsCoreHandle, perspectiveUUID: String, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &NEIGHBOURHOOD_SIGNAL_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn perspective_added( &self, context: &JsCoreHandle, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_ADDED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn perspective_link_added( @@ -62,9 +78,10 @@ impl Subscription { context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_LINK_ADDED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn perspective_link_removed( @@ -72,9 +89,10 @@ impl Subscription { context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_LINK_REMOVED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn perspective_link_updated( @@ -82,18 +100,20 @@ impl Subscription { context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_LINK_UPDATED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn perspective_removed( &self, context: &JsCoreHandle, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_REMOVED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn perspective_sync_state_change( @@ -101,26 +121,29 @@ impl Subscription { context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn perspective_updated( &self, context: &JsCoreHandle, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &PERSPECTIVE_UPDATED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } async fn runtime_message_received( &self, context: &JsCoreHandle, ) -> Pin> + Send>> { - let err = FieldError::new("Unimplemented", graphql_value!({ "type": "UNIMPLEMENTED" })); - let err_stream = futures::stream::once(async { Err(err) }); - Box::pin(err_stream) + let pubsub = get_global_pubsub().await; + let topic = &RUNTIME_MESSAGED_RECEIVED_TOPIC; + + subscribe_and_process::(pubsub, topic.to_string()).await } } From c6665467aa9a4b37750c0f628030636ade1a4a8f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 20 Apr 2023 17:28:05 +0100 Subject: [PATCH 206/722] make cargo.toml more readable --- rust-executor/Cargo.toml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index b66221225..3aaf56e65 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -18,23 +18,25 @@ deno_core = "0.179.0" deno_runtime = "0.105.0" tokio = { version = "1.25.0", features = ["full"] } url = "2.3.1" -juniper = "0.15.11" -chrono = { version = "0.4.24", features = ["serde"] } -juniper_subscriptions = "0.16.0" futures = "0.3.28" +tokio-stream = { version = "0.1.12", features = ["sync"] } +lazy_static = "1.4.0" -actix-web = "4.0.0-beta.9" -actix-rt = "2.2.0" +juniper = "0.15.0" +juniper_subscriptions = "0.16.0" juniper_actix = "0.4.0" +actix-web = "4.2.1" +actix-rt = "2.2.0" +actix = "0.13.0" + +chrono = { version = "0.4.24", features = ["serde"] } env_logger = "0.10.0" serde_json = "1.0.95" -actix = "0.13.0" uuid = "1.3.0" log = "0.4.17" serde = "1.0.159" secp256k1 = { version = "0.27.0", features = ["rand", "serde"] } crypto_box = "0.8.2" -lazy_static = "1.4.0" hex = "0.4.3" argon2 = { version = "0.5.0", features = ["simple"] } rand = "0.8.5" From e10ce16c2780e0da2135495774a8e4a8f29956cc Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Apr 2023 19:09:59 +0200 Subject: [PATCH 207/722] Wallet test for DID signature verification --- rust-executor/src/wallet.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index 671b6844b..4bc6ea982 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -395,4 +395,37 @@ mod tests { assert!(unlock_result.is_ok()); assert!(new_wallet.is_unlocked()); } + + #[test] + fn test_did_sign_and_verify() { + let mut wallet = Wallet::new(); + let key_name = "test_key".to_string(); + + wallet.generate_keypair(key_name.clone()); + let did_document = wallet.get_did_document(&key_name); + assert!(did_document.is_some()); + + let did = did_document.unwrap().id; + + let message = b"test message"; + let signature = wallet.sign(&key_name, message); + assert!(signature.is_some()); + + let mut signature = signature.unwrap(); + { + let sig_bytes = signature.as_slice(); + let key_pair = PatchedKeyPair::try_from(did.as_str()).expect("Failed to get key pair"); + let result = key_pair.verify(message, sig_bytes); + assert!(result.is_ok()); + } + + + signature[0] = 0; + { + let sig_bytes = signature.as_slice(); + let key_pair = PatchedKeyPair::try_from(did.as_str()).expect("Failed to get key pair"); + let result = key_pair.verify(message, sig_bytes); + assert!(result.is_err()); + } + } } From 860d58b1a24a28b89edc7542acd55f4273b308bd Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Apr 2023 19:11:11 +0200 Subject: [PATCH 208/722] Change wallet_sign to return unencoded byte array --- rust-executor/src/js_core/wallet_extension.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index 1d3dc1c22..d08c65e20 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -91,15 +91,16 @@ fn wallet_load(data: String) -> Result<(), AnyError> { } #[op] -fn wallet_sign(payload: String) -> Result { +fn wallet_sign(payload: &[u8]) -> Result, AnyError> { let wallet_instance = Wallet::instance(); let wallet = wallet_instance.lock().expect("wallet lock"); let wallet_ref = wallet.as_ref().expect("wallet instance"); let name = "main".to_string(); let signature = wallet_ref - .sign(&name, payload.as_bytes()) + .sign(&name, payload) .ok_or(anyhow!("main key not found. call createMainKey() first"))?; - Ok(base64engine::STANDARD.encode(signature)) + Ok(signature) +} } pub fn build() -> Extension { From 6ce1ee90ca035d0b88f8237906a1bbe6a64c9a00 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Apr 2023 19:11:57 +0200 Subject: [PATCH 209/722] Add WALLET.sign() and WALLET.verify() --- executor/src/wallet_extension.d.ts | 2 ++ rust-executor/src/js_core/wallet_extension.js | 8 +++++- rust-executor/src/js_core/wallet_extension.rs | 25 +++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/executor/src/wallet_extension.d.ts b/executor/src/wallet_extension.d.ts index ea421a2ca..f62148516 100644 --- a/executor/src/wallet_extension.d.ts +++ b/executor/src/wallet_extension.d.ts @@ -69,6 +69,8 @@ declare global { lock: (password: String) => void; export: () => String; load: (data: String) => void; + sign: (payload: Uint8Array) => Uint8Array; + verify: (did: String, message: Uint8Array, signature: Uint8Array) => boolean; } const WALLET: RustWallet; diff --git a/rust-executor/src/js_core/wallet_extension.js b/rust-executor/src/js_core/wallet_extension.js index b3af6b58a..7a58c66bb 100644 --- a/rust-executor/src/js_core/wallet_extension.js +++ b/rust-executor/src/js_core/wallet_extension.js @@ -28,7 +28,13 @@ }, sign: (payload) => { return core.ops.wallet_sign(payload); - } + }, + verify: (publicKey, message, signature) => { + if(typeof signature === "string") { + signature = Uint8Array.from(signature); + } + return core.ops.wallet_verify(publicKey, message, signature); + } }; })(globalThis); \ No newline at end of file diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index d08c65e20..079bf54ac 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -1,5 +1,7 @@ use base64::{engine::general_purpose as base64engine, Engine as _}; use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension}; +use did_key::{Ed25519KeyPair, PatchedKeyPair, CoreSign}; +use log::{error, info}; use serde::{Deserialize, Serialize}; use crate::wallet::Wallet; @@ -101,6 +103,28 @@ fn wallet_sign(payload: &[u8]) -> Result, AnyError> { .ok_or(anyhow!("main key not found. call createMainKey() first"))?; Ok(signature) } + +#[op] +fn wallet_verify(did: String, message: &[u8], signature: &[u8]) -> bool { + info!("Verifying signature for DID: {}", did); + info!("Message: {:?}", message); + info!("Signature: {:?}", signature); + if let Ok(key_pair) = PatchedKeyPair::try_from(did.as_str()) { + info!("got key"); + match key_pair.verify(message, signature) { + Ok(_) => { + info!("Signature verified"); + true + } + Err(e) => { + error!("Signature verification failed: {:?}", e); + false + } + } + } else { + error!("Failed to parse DID as key method: {}", did); + false + } } pub fn build() -> Extension { @@ -116,6 +140,7 @@ pub fn build() -> Extension { wallet_export::decl(), wallet_load::decl(), wallet_sign::decl(), + wallet_verify::decl(), ]) .force_op_registration() .build() From 09c1dfe654a95ee2caba05bbb62baf9f5503d1c8 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Apr 2023 19:20:44 +0200 Subject: [PATCH 210/722] Use Rust signing and verification code in AgentService --- executor/src/core/PerspectivismCore.ts | 2 +- executor/src/core/agent/AgentService.ts | 40 +++++----------- executor/src/core/agent/Signatures.ts | 63 ++----------------------- 3 files changed, 17 insertions(+), 88 deletions(-) diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index ff7e0c429..51243b9ea 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -85,7 +85,7 @@ export default class PerspectivismCore { this.#agentService.load() this.#db = Db.init(this.#config.dataPath) this.#didResolver = DIDs.init(this.#config.dataPath) - this.#signatures = new Signatures(this.#didResolver) + this.#signatures = new Signatures() const that = this this.#resolveLanguagesReady = () => {} this.#languagesReady = new Promise(resolve => { diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 04a288d9f..27cabf3c1 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -96,7 +96,7 @@ export default class AgentService { return this.#signingKeyId! } - createSignedExpression(data: any): Expression { + signingChecks() { if (!this.isInitialized) { throw new Error("Can't sign without keystore"); } @@ -106,20 +106,19 @@ export default class AgentService { if (!this.#signingKeyId) { throw new Error("Can't sign without signingKeyId"); } + } + + createSignedExpression(data: any): Expression { + this.signingChecks() const timestamp = new Date().toISOString(); const payloadBytes = Signatures.buildMessage(data, timestamp); - const key = this.getSigningKey(); - //@ts-ignore - let buf = Buffer.from(key.private_key, key.encoding); - //@ts-ignore - const privKey = Uint8Array.from(buf); - - const sigObj = secp256k1.ecdsaSign(payloadBytes, privKey); - const sigBuffer = Buffer.from(sigObj.signature); + const signature = WALLET.sign(payloadBytes); + const sigBuffer = Buffer.from(signature); const sigHex = sigBuffer.toString("hex"); - let proof = new ExpressionProof(sigHex, this.#signingKeyId); + + let proof = new ExpressionProof(sigHex.toString(), this.#signingKeyId!); proof.valid = true; proof.invalid = false; @@ -134,25 +133,12 @@ export default class AgentService { } signString(data: string): string { - if(!this.isInitialized){ - throw new Error("Can't sign without keystore") - } - if(!this.isUnlocked()) { - throw new Error("Can't sign with locked keystore") - } - if(!this.#signingKeyId) { - throw new Error("Can't sign without signingKeyId") - } + this.signingChecks() const payloadBytes = Signatures.buildMessageRaw(data) - - const key = this.getSigningKey() - //@ts-ignore - const privKey = Uint8Array.from(Buffer.from(key.private_key, key.encoding)) - - const sigObj = secp256k1.ecdsaSign(payloadBytes, privKey) - const sigBuffer = Buffer.from(sigObj.signature) - const sigHex = sigBuffer.toString('hex') + const signature = WALLET.sign(payloadBytes); + const sigBuffer = Buffer.from(signature); + const sigHex = sigBuffer.toString("hex"); return sigHex } diff --git a/executor/src/core/agent/Signatures.ts b/executor/src/core/agent/Signatures.ts index 621bcfb08..8a412eb0b 100644 --- a/executor/src/core/agent/Signatures.ts +++ b/executor/src/core/agent/Signatures.ts @@ -1,76 +1,19 @@ import type { Expression } from "@perspect3vism/ad4m" -import type { DIDResolver } from ".//DIDs" import sha256 from 'sha256' -import secp256k1 from 'secp256k1' -import baseX from 'base-x' import stringify from 'json-stable-stringify' -const BASE58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' -const bs58 = baseX(BASE58) export default class Signatures { - #didResolver: DIDResolver - - constructor(didResolver: DIDResolver) { - this.#didResolver = didResolver - } + constructor() {} async verifyStringSignedByDid(did: string, didSigningKeyId: string, data: string, signedData: string): Promise { - // @ts-ignore - const { didDocument } = await this.#didResolver.resolve(did) - if(!didDocument) { - console.debug("DID document not found for", did) - return false - } - - const availableKeys = didDocument.publicKey ? didDocument.publicKey : didDocument.verificationMethod - //@ts-ignore - const key = availableKeys.find(k => k.id === didSigningKeyId.includes(k.id)) - if(!key) { - console.debug("Key not found in DID document", didSigningKeyId, didDocument) - return false - } - - let pubKey: Uint8Array | undefined - if(key.publicKeyHex) - pubKey = Uint8Array.from(Buffer.from(key.publicKeyHex, "hex")) - if(key.publicKeyBase58) - pubKey = Uint8Array.from(bs58.decode(key.publicKeyBase58)) const sigBytes = Uint8Array.from(Buffer.from(signedData, "hex")) const message = Signatures.buildMessageRaw(data) - - if (!pubKey) { - throw Error("Could not find publicKeyHex or publicKeyBase58 in did document") - } - return secp256k1.ecdsaVerify(sigBytes, message, pubKey) + return WALLET.verify(did, message, sigBytes) } async verify(expr: Expression): Promise { - // @ts-ignore - const { didDocument } = await this.#didResolver.resolve(expr.author) - if(!didDocument) { - console.debug("DID document not found for", expr.author) - return false - } - - const availableKeys = didDocument.publicKey ? didDocument.publicKey : didDocument.verificationMethod - //@ts-ignore - const key = availableKeys.find(k => expr.proof.key.includes(k.id)) - if(!key) { - console.debug("Key not found in DID document", expr.proof.key, didDocument) - return false - } - - let pubKey: Uint8Array | undefined - if(key.publicKeyHex) - pubKey = Uint8Array.from(Buffer.from(key.publicKeyHex, "hex")) - if(key.publicKeyBase58) - pubKey = Uint8Array.from(bs58.decode(key.publicKeyBase58)) const sigBytes = Uint8Array.from(Buffer.from(expr.proof.signature, "hex")) const message = Signatures.buildMessage(expr.data, expr.timestamp) - - if (!pubKey) { - throw Error("Could not find publicKeyHex or publicKeyBase58 in did document") - } - return secp256k1.ecdsaVerify(sigBytes, message, pubKey) + return WALLET.verify(expr.author, message, sigBytes) } static buildMessage(data: any, timestamp: string): Uint8Array { From 8d9e74c3d12e83847044233967967286430340f2 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Apr 2023 19:23:28 +0200 Subject: [PATCH 211/722] Remove debugging output --- rust-executor/src/js_core/wallet_extension.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index 079bf54ac..b0fe67984 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -106,14 +106,9 @@ fn wallet_sign(payload: &[u8]) -> Result, AnyError> { #[op] fn wallet_verify(did: String, message: &[u8], signature: &[u8]) -> bool { - info!("Verifying signature for DID: {}", did); - info!("Message: {:?}", message); - info!("Signature: {:?}", signature); if let Ok(key_pair) = PatchedKeyPair::try_from(did.as_str()) { - info!("got key"); match key_pair.verify(message, signature) { Ok(_) => { - info!("Signature verified"); true } Err(e) => { From 8e9909f274af7032254ca868c3f291f204b0fc1a Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 20 Apr 2023 18:50:33 +0100 Subject: [PATCH 212/722] add watch client function on agent --- cli/src/agent.rs | 5 ++++ rust-client/src/agent.gql | 24 +++++++++++++++++ rust-client/src/agent.rs | 55 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 83 insertions(+), 1 deletion(-) diff --git a/cli/src/agent.rs b/cli/src/agent.rs index 6b546c3b7..a788ecc57 100644 --- a/cli/src/agent.rs +++ b/cli/src/agent.rs @@ -51,6 +51,8 @@ pub enum AgentFunctions { request_id: String, rand: String, }, + /// Stay connected and print any agent status changed events + Watch {}, } pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> { @@ -186,6 +188,9 @@ pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> .await?; println!("JWT: {:#?}", result); } + AgentFunctions::Watch {} => { + ad4m_client.agent.watch().await?; + } }; Ok(()) } diff --git a/rust-client/src/agent.gql b/rust-client/src/agent.gql index cc9a2fdae..e2f22f59a 100644 --- a/rust-client/src/agent.gql +++ b/rust-client/src/agent.gql @@ -196,3 +196,27 @@ mutation EntanglementProofPreFlight( didSignedByDeviceKey } } + +subscription SubscriptionAgentUpdated { + agentUpdated { + did + directMessageLanguage + perspective { + links { + author + timestamp + proof { + signature + key + valid + invalid + } + data { + source + predicate + target + } + } + } + } +} diff --git a/rust-client/src/agent.rs b/rust-client/src/agent.rs index b22f9ae4f..e97f092f1 100644 --- a/rust-client/src/agent.rs +++ b/rust-client/src/agent.rs @@ -1,8 +1,13 @@ use std::sync::Arc; -use crate::{types::Capability, util::query, ClientInfo}; +use crate::{ + types::Capability, + util::{create_websocket_client, query}, + ClientInfo, +}; use anyhow::{anyhow, Context, Result}; use graphql_client::{GraphQLQuery, Response}; +use graphql_ws_client::graphql::StreamingOperation; #[derive(GraphQLQuery)] #[graphql( @@ -366,6 +371,50 @@ pub async fn entanglement_proof_pre_flight( .with_context(|| "Failed to run runtime->add-trusted-agents query") } +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "schema.gql", + query_path = "src/agent.gql", + response_derives = "Debug" +)] +pub struct SubscriptionAgentUpdated; + +pub async fn watch(executor_url: String, cap_token: String) -> Result<()> { + use futures::StreamExt; + + let mut client = create_websocket_client(executor_url, cap_token) + .await + .with_context(|| "Failed to create websocket client")?; + + println!("Successfully created websocket client"); + let mut stream = client + .streaming_operation(StreamingOperation::::new( + subscription_agent_updated::Variables {}, + )) + .await + .with_context(|| "Failed to subscribe to agentUpdated")?; + + println!("Successfully subscribed agentUpdated",); + println!("Waiting for events..."); + + while let Some(item) = stream.next().await { + match item { + Ok(response) => { + if let Some(data) = response.data.and_then(|data| data.agent_updated) { + println!("Received agentUpdated: {:?}", data); + } + } + Err(e) => { + println!("Received Error: {:?}", e); + } + } + } + + println!("Stream ended. Exiting..."); + + Ok(()) +} + pub struct AgentClient { info: Arc, } @@ -497,4 +546,8 @@ impl AgentClient { ) .await } + + pub async fn watch(&self) -> Result<()> { + watch(self.info.executor_url.clone(), self.info.cap_token.clone()).await + } } From 4245915a42b8b82fb3c160d03b291ef4131bbb37 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 20 Apr 2023 18:50:44 +0100 Subject: [PATCH 213/722] linkedom in gitignore --- executor/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/.gitignore b/executor/.gitignore index 98a37c488..de246da53 100644 --- a/executor/.gitignore +++ b/executor/.gitignore @@ -3,5 +3,5 @@ temp deno* AloeDB-0.9.0 - +linkedom xhr \ No newline at end of file From 9e5271bbe3e37efbd01f5d1fc3038725d47bb4e8 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Apr 2023 21:35:35 +0200 Subject: [PATCH 214/722] Make sure neighbourhood-language/build directory is there for deno bundle to write bundle to --- bootstrap-languages/neighbourhood-language/build/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bootstrap-languages/neighbourhood-language/build/.keep diff --git a/bootstrap-languages/neighbourhood-language/build/.keep b/bootstrap-languages/neighbourhood-language/build/.keep new file mode 100644 index 000000000..e69de29bb From 29668ef75633d40cf11f7cb3c5a9fc694627401f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 20 Apr 2023 23:59:09 +0100 Subject: [PATCH 215/722] use 127.0.0.1 for executor url not localhost --- cli/src/startup.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/startup.rs b/cli/src/startup.rs index 2125fc26b..36035e7c4 100644 --- a/cli/src/startup.rs +++ b/cli/src/startup.rs @@ -43,7 +43,7 @@ pub fn get_executor_port() -> Result { pub fn get_executor_url() -> Result { let port = get_executor_port()?; - Ok(format!("http://localhost:{}/graphql", port)) + Ok(format!("http://127.0.0.1:{}/graphql", port)) } pub async fn get_cap_token(executor_url: String) -> Result { From c399e36f70004933a1b3828606573cd76840da16 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 20 Apr 2023 23:59:50 +0100 Subject: [PATCH 216/722] use local versions of juniper --- rust-executor/Cargo.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 3aaf56e65..59c2a429e 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -22,12 +22,8 @@ futures = "0.3.28" tokio-stream = { version = "0.1.12", features = ["sync"] } lazy_static = "1.4.0" -juniper = "0.15.0" -juniper_subscriptions = "0.16.0" -juniper_actix = "0.4.0" -actix-web = "4.2.1" -actix-rt = "2.2.0" -actix = "0.13.0" +juniper = { path = "../../juniper/juniper", features = ["chrono"] } +juniper_subscriptions = { path = "../../juniper/juniper_subscriptions" } chrono = { version = "0.4.24", features = ["serde"] } env_logger = "0.10.0" @@ -51,3 +47,7 @@ multibase = "0.9.1" multihash = { version = "0.18.0", features = ["sha2"] } cid = "0.10.1" once_cell = "1.17.1" + +juniper_graphql_transport_ws = { path = "../../juniper/juniper_graphql_transport_ws" } +juniper_warp = { path = "../../juniper/juniper_warp", features = ["subscriptions"] } +warp = "0.3.4" From 491da89233f8f944fce264270f1b504c87a13b43 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 00:00:32 +0100 Subject: [PATCH 217/722] add warp server and fix errors from new jupiter versions --- rust-executor/src/graphql/graphql_types.rs | 4 +- rust-executor/src/graphql/mod.rs | 132 +++++++++--------- .../src/graphql/subscription_resolvers.rs | 31 ++-- rust-executor/src/graphql/warp_server.rs | 89 ++++++++++++ rust-executor/src/js_core/mod.rs | 8 -- rust-executor/src/lib.rs | 4 +- rust-executor/src/main.rs | 2 +- 7 files changed, 179 insertions(+), 91 deletions(-) create mode 100644 rust-executor/src/graphql/warp_server.rs diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index d6444fb3d..d742f917b 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -1,4 +1,4 @@ -use juniper::{GraphQLInputObject, GraphQLObject, GraphQLScalarValue}; +use juniper::{GraphQLInputObject, GraphQLObject, GraphQLScalar}; use serde::{Deserialize, Serialize}; #[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] @@ -77,7 +77,7 @@ pub struct CapabilityInput { pub with: ResourceInput, } -#[derive(GraphQLScalarValue, Default, Debug, Serialize, Deserialize)] +#[derive(GraphQLScalar, Default, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] #[graphql(transparent)] // The javascript `Date` as string. pub struct represents date and time as the ISO Date string. diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index bc6e1d0a7..68f8cdd76 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -1,82 +1,82 @@ -use actix_web::{ - middleware, - web::{self, Data}, - App, Error, HttpResponse, HttpServer, -}; -use deno_core::error::AnyError; -use juniper::RootNode; -use juniper_actix::{graphiql_handler, graphql_handler, playground_handler}; -use std::io::Write; +// use actix_web::{ +// middleware, +// web::{self, Data}, +// App, Error, HttpResponse, HttpServer, +// }; +// use deno_core::error::AnyError; +// use juniper::RootNode; +// use juniper_actix::{graphiql_handler, graphql_handler, playground_handler}; +// use std::io::Write; mod graphql_types; mod mutation_resolvers; mod query_resolvers; mod subscription_resolvers; +pub mod warp_server; -use mutation_resolvers::*; -use query_resolvers::*; -use subscription_resolvers::*; +// use mutation_resolvers::*; +// use query_resolvers::*; +// use subscription_resolvers::*; -use crate::js_core::JsCoreHandle; +// use crate::js_core::JsCoreHandle; -pub struct MyContext; +// pub struct MyContext; -impl juniper::Context for MyContext {} +// impl juniper::Context for MyContext {} -type Schema = RootNode<'static, Query, Mutation, Subscription>; +// type Schema = RootNode<'static, Query, Mutation, Subscription>; -fn schema() -> Schema { - Schema::new(Query, Mutation, Subscription) -} +// fn schema() -> Schema { +// Schema::new(Query, Mutation, Subscription) +// } -async fn graphiql_route() -> Result { - graphiql_handler("/graphql", None).await -} +// async fn graphiql_route() -> Result { +// graphiql_handler("/graphql", Some("/graphql")).await +// } -async fn playground_route() -> Result { - playground_handler("/", None).await -} +// async fn playground_route() -> Result { +// playground_handler("/", Some("/")).await +// } -async fn graphql_route( - req: actix_web::HttpRequest, - payload: actix_web::web::Payload, - schema: web::Data, - deno_connect: web::Data, -) -> Result { - graphql_handler(&schema, &deno_connect, req, payload).await -} +// async fn graphql_route( +// req: actix_web::HttpRequest, +// payload: actix_web::web::Payload, +// schema: web::Data, +// deno_connect: web::Data, +// ) -> Result { +// graphql_handler(&schema, &deno_connect, req, payload).await +// } -/// Starts the GraphQL server -pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> { - schema().as_schema_language(); - let mut file = std::fs::File::create("schema.gql").unwrap(); - file.write_all(schema().as_schema_language().as_bytes()) - .unwrap(); +// /// Starts the GraphQL server +// pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> { +// let mut file = std::fs::File::create("schema.gql").unwrap(); +// file.write_all(schema().as_schema_language().as_bytes()) +// .unwrap(); - //Start the server - let server = HttpServer::new(move || { - App::new() - .app_data(Data::new(schema())) - .app_data(Data::new(js_core_handle.clone())) - .wrap(middleware::Compress::default()) - .wrap(middleware::Logger::default()) - .service( - web::resource("/") - .route(web::post().to(graphql_route)) - .route(web::get().to(graphql_route)), - ) - .service( - web::resource("/graphql") - .route(web::post().to(graphql_route)) - .route(web::get().to(graphql_route)), - ) - .service(web::resource("/playground").route(web::get().to(playground_route))) - .service(web::resource("/graphiql").route(web::get().to(graphiql_route))) - }); - server - .bind("127.0.0.1:4000") - .expect("Could not bind to port 4000") - .run() - .await - .map_err(|e| e.into()) -} +// //Start the server +// let server = HttpServer::new(move || { +// App::new() +// .app_data(Data::new(schema())) +// .app_data(Data::new(js_core_handle.clone())) +// .wrap(middleware::Compress::default()) +// .wrap(middleware::Logger::default()) +// .service( +// web::resource("/") +// .route(web::post().to(graphql_route)) +// .route(web::get().to(graphql_route)), +// ) +// .service( +// web::resource("/graphql") +// .route(web::post().to(graphql_route)) +// .route(web::get().to(graphql_route)), +// ) +// .service(web::resource("/playground").route(web::get().to(playground_route))) +// .service(web::resource("/graphiql").route(web::get().to(graphiql_route))) +// }); +// server +// .bind("127.0.0.1:4000") +// .expect("Could not bind to port 4000") +// .run() +// .await +// .map_err(|e| e.into()) +// } diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs index c6bf7f1e2..0179d0984 100644 --- a/rust-executor/src/graphql/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -19,11 +19,17 @@ use super::graphql_types::*; pub struct Subscription; +///TODO; many of these subscriptions are expecting to only receive the data which gets return in the subscriptions resolvers +/// This is not always the case; sometimes the JS will return a different object than the one that was passed in +/// the other data in this object is usually used to filter the subscriptions as is the case where we have a perspectiveUUID +/// we should add a filter closure in subscribe_and_process which will filter the data before it is returned to the client +/// and implement custom serialization logic for this case + #[juniper::graphql_subscription(context = JsCoreHandle)] impl Subscription { async fn agent_status_changed( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, ) -> Pin> + Send>> { println!("incoming sub"); let pubsub = get_global_pubsub().await; @@ -34,8 +40,9 @@ impl Subscription { async fn agent_updated( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, ) -> Pin> + Send>> { + println!("incoming sub"); let pubsub = get_global_pubsub().await; let topic = &AGENT_UPDATED_TOPIC; @@ -44,7 +51,7 @@ impl Subscription { async fn exception_occurred( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; let topic = &EXCEPTION_OCCURRED_TOPIC; @@ -54,7 +61,7 @@ impl Subscription { async fn neighbourhood_signal( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, perspectiveUUID: String, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; @@ -65,7 +72,7 @@ impl Subscription { async fn perspective_added( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_ADDED_TOPIC; @@ -75,7 +82,7 @@ impl Subscription { async fn perspective_link_added( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; @@ -86,7 +93,7 @@ impl Subscription { async fn perspective_link_removed( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; @@ -97,7 +104,7 @@ impl Subscription { async fn perspective_link_updated( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; @@ -108,7 +115,7 @@ impl Subscription { async fn perspective_removed( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_REMOVED_TOPIC; @@ -118,7 +125,7 @@ impl Subscription { async fn perspective_sync_state_change( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, uuid: String, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; @@ -129,7 +136,7 @@ impl Subscription { async fn perspective_updated( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_UPDATED_TOPIC; @@ -139,7 +146,7 @@ impl Subscription { async fn runtime_message_received( &self, - context: &JsCoreHandle, + _context: &JsCoreHandle, ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; let topic = &RUNTIME_MESSAGED_RECEIVED_TOPIC; diff --git a/rust-executor/src/graphql/warp_server.rs b/rust-executor/src/graphql/warp_server.rs new file mode 100644 index 000000000..cb655acfd --- /dev/null +++ b/rust-executor/src/graphql/warp_server.rs @@ -0,0 +1,89 @@ +use std::io::Write; +use std::sync::Arc; + +use deno_core::error::AnyError; +use futures::FutureExt as _; +use juniper::RootNode; +use juniper_graphql_transport_ws::ConnectionConfig; +use juniper_warp::{playground_filter, subscriptions::serve_graphql_transport_ws}; +use warp::{http::Response, Filter}; + +use crate::js_core::JsCoreHandle; + +use super::mutation_resolvers::*; +use super::query_resolvers::*; +use super::subscription_resolvers::*; + +#[derive(Clone)] +struct Context; + +impl juniper::Context for Context {} + +impl juniper::Context for JsCoreHandle {} + +type Schema = RootNode<'static, Query, Mutation, Subscription>; + +fn schema() -> Schema { + Schema::new(Query, Mutation, Subscription) +} + +pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> { + let log = warp::log("warp_subscriptions"); + + let mut file = std::fs::File::create("schema.gql").unwrap(); + file.write_all(schema().as_schema_language().as_bytes()) + .unwrap(); + + let homepage = warp::path::end().map(|| { + Response::builder() + .header("content-type", "text/html") + .body("

AD4M Executor

visit graphql playground to explore the executor") + }); + + let qm_schema = schema(); + let js_core_handle_cloned1 = js_core_handle.clone(); + let qm_state = warp::any().map(move || js_core_handle_cloned1.clone()); + let qm_graphql_filter = juniper_warp::make_graphql_filter(qm_schema, qm_state.boxed()); + + let root_node = Arc::new(schema()); + + log::info!("Listening on 127.0.0.1:4000"); + + let routes = (warp::path("graphql") + .and(warp::ws()) + .and(warp::header::headers_cloned()) + .map(move |ws: warp::ws::Ws, headers: warp::http::HeaderMap| { + log::info!("Incoming WebSocket headers: {:?}", headers); + + let root_node = root_node.clone(); + let js_core_handle = js_core_handle.clone(); + ws.on_upgrade(move |websocket| async move { + serve_graphql_transport_ws( + websocket, + root_node, + ConnectionConfig::new(js_core_handle), + ) + .map(|r| { + if let Err(e) = r { + log::error!("Websocket error: {e}"); + } + }) + .await + }) + })) + // .map(|reply| { + // // TODO#584: remove this workaround + // warp::reply::with_header(reply, "Sec-WebSocket-Protocol", "graphql-transport-ws") + // }) + .or(warp::post() + .and(warp::path("graphql")) + .and(qm_graphql_filter)) + .or(warp::get() + .and(warp::path("playground")) + .and(playground_filter("/graphql", Some("/subscriptions")))) + .or(homepage) + .with(log); + + warp::serve(routes).run(([127, 0, 0, 1], 4000)).await; + Ok(()) +} diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 7010bc024..bbc0acd14 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -1,4 +1,3 @@ -use actix::prelude::*; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; @@ -32,13 +31,6 @@ use options::{main_module_url, main_worker_options}; static JS_CORE_HANDLE: Lazy>>> = Lazy::new(|| Arc::new(TokioMutex::new(None))); -/// Define message -#[derive(Message)] -#[rtype(result = "Result")] -pub struct Execute { - pub script: String, -} - pub struct JsCoreHandle { rx: Receiver, rx_module_load: Receiver, diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 0a93fc0e2..96d3c07d5 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -11,7 +11,7 @@ mod pubsub; use log::{error, info}; use std::env; -use graphql::start_server; +//use graphql::start_server; use js_core::JsCore; pub use config::Ad4mConfig; @@ -27,7 +27,7 @@ pub async fn run(config: Ad4mConfig) { info!("js_core initialized."); info!("Starting GraphQL..."); - match start_server(js_core_handle).await { + match graphql::warp_server::start_server(js_core_handle).await { Ok(_) => { info!("GraphQL server stopped."); std::process::exit(0); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 529afcfd5..8387d6544 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -11,7 +11,7 @@ use log::{error, info}; use rust_executor::Ad4mConfig; use std::env; -use graphql::start_server; +use graphql::warp_server::start_server; use js_core::JsCore; #[tokio::main] From 8a7a0c25bbee9149055937654f1d2c75bf702ed9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 00:00:43 +0100 Subject: [PATCH 218/722] add logs on subscribe_and_process --- rust-executor/src/pubsub.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index 5525972d2..5a7bfa474 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -51,11 +51,13 @@ pub(crate) async fn subscribe_and_process( pubsub: Arc, topic: Topic, ) -> Pin> + Send>> { + println!("Subscribe and process: {:?}", topic); let receiver = pubsub.subscribe(&topic).await; - let receiver_stream = WatchStream::new(receiver); + println!("Got receiver: {:?}", receiver); + let receiver_stream = WatchStream::from_changes(receiver); let mapped_stream = receiver_stream.map(|msg| { - println!("Received message: {:?}", msg); + println!("subscribe_and_process: Received message: {:?}", msg); match serde_json::from_str::(&msg) { Ok(agent_status) => Ok(agent_status), Err(e) => Err(FieldError::new( From c007a62b42efc8d9e020b854f08c0b35a66ddf33 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 15:22:19 +0100 Subject: [PATCH 219/722] update async graphql libraries & fix build errors coming from this --- cli/src/agent.rs | 20 ++++++++++---------- rust-client/Cargo.toml | 9 +++------ rust-client/src/agent.gql | 26 ++++++-------------------- rust-client/src/agent.rs | 32 +++++++++++++++++--------------- rust-client/src/languages.rs | 4 ++-- rust-client/src/perspectives.rs | 7 +++---- rust-client/src/util.rs | 6 ++++-- 7 files changed, 45 insertions(+), 59 deletions(-) diff --git a/cli/src/agent.rs b/cli/src/agent.rs index a788ecc57..00c250a5b 100644 --- a/cli/src/agent.rs +++ b/cli/src/agent.rs @@ -136,12 +136,12 @@ pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> did_signing_key_id, } => { let input = EntanglementProofInput { - deviceKey: device_key, - deviceKeySignedByDid: device_key_signed_by_did, - deviceKeyType: device_key_type, + device_key: device_key, + device_key_signed_by_did: device_key_signed_by_did, + device_key_type: device_key_type, did: did, - didSignedByDeviceKey: did_signed_by_device_key, - didSigningKeyId: did_signing_key_id, + did_signed_by_device_key: did_signed_by_device_key, + did_signing_key_id: did_signing_key_id, }; ad4m_client .agent @@ -158,12 +158,12 @@ pub async fn run(ad4m_client: Ad4mClient, command: AgentFunctions) -> Result<()> did_signing_key_id, } => { let input = ad4m_client::agent::delete_entanglement_proofs::EntanglementProofInput { - deviceKey: device_key, - deviceKeySignedByDid: device_key_signed_by_did, - deviceKeyType: device_key_type, + device_key: device_key, + device_key_signed_by_did: device_key_signed_by_did, + device_key_type: device_key_type, did: did, - didSignedByDeviceKey: did_signed_by_device_key, - didSigningKeyId: did_signing_key_id, + did_signed_by_device_key: did_signed_by_device_key, + did_signing_key_id: did_signing_key_id, }; ad4m_client .agent diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index eae6bd055..660ecf689 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -14,7 +14,7 @@ readme = "README.md" [dependencies] anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } -graphql_client = "0.10.0" +graphql_client = "0.12.0" serde = "1.0.147" reqwest = { version = "0.11.12", features = ["blocking", "json"] } futures = "0.3" @@ -23,11 +23,8 @@ rustyline = "10" dirs = "4" chrono = { version = "0.4", features = ["serde"] } serde_json = "1" -graphql-ws-client = { version = "0.2", default-features = false, features = ["async-tungstenite", "cynic", "graphql_client"] } -async-tungstenite = { version = "0.16.1", features = ["async-std-runtime", "tokio-runtime"] } -cynic = { version = "1.0" } -async-std = { version = "1.9", features = ["attributes"] } -async_executors = { version = "0.5", features = ["async_std"] } +graphql-ws-client = { version = "0.4", default-features = false, features = ["async-tungstenite", "graphql_client"] } +async-tungstenite = { version = "0.20.0", features = ["tokio-runtime"] } urlencoding = "2" unicode-width = "0.1" rand = "0.8" diff --git a/rust-client/src/agent.gql b/rust-client/src/agent.gql index e2f22f59a..6f684ff97 100644 --- a/rust-client/src/agent.gql +++ b/rust-client/src/agent.gql @@ -197,26 +197,12 @@ mutation EntanglementProofPreFlight( } } -subscription SubscriptionAgentUpdated { - agentUpdated { +subscription SubscriptionAgentStatusChanged { + agentStatusChanged { did - directMessageLanguage - perspective { - links { - author - timestamp - proof { - signature - key - valid - invalid - } - data { - source - predicate - target - } - } - } + didDocument + error + isInitialized + isUnlocked } } diff --git a/rust-client/src/agent.rs b/rust-client/src/agent.rs index e97f092f1..14c760a1b 100644 --- a/rust-client/src/agent.rs +++ b/rust-client/src/agent.rs @@ -6,6 +6,7 @@ use crate::{ ClientInfo, }; use anyhow::{anyhow, Context, Result}; +use futures::StreamExt; use graphql_client::{GraphQLQuery, Response}; use graphql_ws_client::graphql::StreamingOperation; @@ -28,11 +29,11 @@ pub async fn request_capability( ) -> Result { let query = RequestCapability::build_query(request_capability::Variables { auth_info: request_capability::AuthInfoInput { - appName: app_name, - appDesc: app_desc, - appDomain: app_domain, - appUrl: app_url, - appIconPath: app_icon_path, + app_name: app_name, + app_desc: app_desc, + app_domain: app_domain, + app_url: app_url, + app_icon_path: app_icon_path, capabilities: capabilities.map(|val| val.into_iter().map(|val| val.into()).collect()), }, }); @@ -377,31 +378,32 @@ pub async fn entanglement_proof_pre_flight( query_path = "src/agent.gql", response_derives = "Debug" )] -pub struct SubscriptionAgentUpdated; +pub struct SubscriptionAgentStatusChanged; pub async fn watch(executor_url: String, cap_token: String) -> Result<()> { - use futures::StreamExt; - let mut client = create_websocket_client(executor_url, cap_token) .await .with_context(|| "Failed to create websocket client")?; println!("Successfully created websocket client"); let mut stream = client - .streaming_operation(StreamingOperation::::new( - subscription_agent_updated::Variables {}, - )) + .streaming_operation({ + StreamingOperation::::new( + subscription_agent_status_changed::Variables {}, + ) + }) .await - .with_context(|| "Failed to subscribe to agentUpdated")?; + .with_context(|| "Failed to subscribe to agentStatusChanged")?; - println!("Successfully subscribed agentUpdated",); + println!("Successfully subscribed agentStatusChanged",); println!("Waiting for events..."); while let Some(item) = stream.next().await { + println!("Received item: {:#?}", item); match item { Ok(response) => { - if let Some(data) = response.data.and_then(|data| data.agent_updated) { - println!("Received agentUpdated: {:?}", data); + if let Some(data) = response.data.and_then(|data| data.agent_status_changed) { + println!("Received agentStatusChanged: {:?}", data); } } Err(e) => { diff --git a/rust-client/src/languages.rs b/rust-client/src/languages.rs index c8a91a075..85d567b8e 100644 --- a/rust-client/src/languages.rs +++ b/rust-client/src/languages.rs @@ -152,8 +152,8 @@ pub async fn publish( language_meta: publish::LanguageMetaInput { name, description, - possibleTemplateParams: possible_template_params, - sourceCodeLink: source_code_link, + possible_template_params: possible_template_params, + source_code_link: source_code_link, }, }), ) diff --git a/rust-client/src/perspectives.rs b/rust-client/src/perspectives.rs index af03e4bf4..41b883218 100644 --- a/rust-client/src/perspectives.rs +++ b/rust-client/src/perspectives.rs @@ -6,6 +6,7 @@ use crate::util::{create_websocket_client, query, query_raw}; use crate::ClientInfo; use anyhow::{anyhow, Context, Result}; use chrono::naive::NaiveDateTime; +use futures::StreamExt; use graphql_client::{GraphQLQuery, Response}; use graphql_ws_client::graphql::StreamingOperation; use serde_json::Value; @@ -181,8 +182,8 @@ pub async fn query_links( source, target, predicate, - fromDate: from_date, - untilDate: until_date, + from_date: from_date, + until_date: until_date, limit, }, }), @@ -260,8 +261,6 @@ pub async fn watch( id: String, link_callback: Box, ) -> Result<()> { - use futures::StreamExt; - let mut client = create_websocket_client(executor_url, cap_token) .await .with_context(|| "Failed to create websocket client")?; diff --git a/rust-client/src/util.rs b/rust-client/src/util.rs index 832d67ac3..133a2971f 100644 --- a/rust-client/src/util.rs +++ b/rust-client/src/util.rs @@ -81,8 +81,10 @@ pub async fn create_websocket_client( let (connection, _) = async_tungstenite::tokio::connect_async(request).await?; let (sink, stream) = connection.split(); - Ok(GraphQLClientClientBuilder::new() + let client = GraphQLClientClientBuilder::new() .build(stream, sink, TokioSpawner::current()) .await - .unwrap()) + .unwrap(); + + Ok(client) } From d923cee71f6ecae5bd409e849d0ea035b5c7ab19 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 15:22:52 +0100 Subject: [PATCH 220/722] use remote dependencies for juniper again --- rust-executor/Cargo.toml | 8 ++++---- rust-executor/src/graphql/subscription_resolvers.rs | 2 -- rust-executor/src/graphql/warp_server.rs | 13 +++++-------- rust-executor/src/js_core/wallet_extension.rs | 8 +++----- rust-executor/src/pubsub.rs | 2 -- 5 files changed, 12 insertions(+), 21 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 59c2a429e..9538a0501 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -22,8 +22,8 @@ futures = "0.3.28" tokio-stream = { version = "0.1.12", features = ["sync"] } lazy_static = "1.4.0" -juniper = { path = "../../juniper/juniper", features = ["chrono"] } -juniper_subscriptions = { path = "../../juniper/juniper_subscriptions" } +juniper = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["chrono"] } +juniper_subscriptions = {git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } chrono = { version = "0.4.24", features = ["serde"] } env_logger = "0.10.0" @@ -48,6 +48,6 @@ multihash = { version = "0.18.0", features = ["sha2"] } cid = "0.10.1" once_cell = "1.17.1" -juniper_graphql_transport_ws = { path = "../../juniper/juniper_graphql_transport_ws" } -juniper_warp = { path = "../../juniper/juniper_warp", features = ["subscriptions"] } +juniper_graphql_transport_ws = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } +juniper_warp = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["subscriptions"] } warp = "0.3.4" diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs index 0179d0984..b09256cf9 100644 --- a/rust-executor/src/graphql/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -31,7 +31,6 @@ impl Subscription { &self, _context: &JsCoreHandle, ) -> Pin> + Send>> { - println!("incoming sub"); let pubsub = get_global_pubsub().await; let topic = &AGENT_STATUS_CHANGED_TOPIC; @@ -42,7 +41,6 @@ impl Subscription { &self, _context: &JsCoreHandle, ) -> Pin> + Send>> { - println!("incoming sub"); let pubsub = get_global_pubsub().await; let topic = &AGENT_UPDATED_TOPIC; diff --git a/rust-executor/src/graphql/warp_server.rs b/rust-executor/src/graphql/warp_server.rs index cb655acfd..ae4eaa87b 100644 --- a/rust-executor/src/graphql/warp_server.rs +++ b/rust-executor/src/graphql/warp_server.rs @@ -51,10 +51,7 @@ pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> let routes = (warp::path("graphql") .and(warp::ws()) - .and(warp::header::headers_cloned()) - .map(move |ws: warp::ws::Ws, headers: warp::http::HeaderMap| { - log::info!("Incoming WebSocket headers: {:?}", headers); - + .map(move |ws: warp::ws::Ws| { let root_node = root_node.clone(); let js_core_handle = js_core_handle.clone(); ws.on_upgrade(move |websocket| async move { @@ -71,10 +68,10 @@ pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> .await }) })) - // .map(|reply| { - // // TODO#584: remove this workaround - // warp::reply::with_header(reply, "Sec-WebSocket-Protocol", "graphql-transport-ws") - // }) + .map(|reply| { + // TODO#584: remove this workaround + warp::reply::with_header(reply, "Sec-WebSocket-Protocol", "graphql-transport-ws") + }) .or(warp::post() .and(warp::path("graphql")) .and(qm_graphql_filter)) diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index b0fe67984..ff250291b 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -1,7 +1,7 @@ use base64::{engine::general_purpose as base64engine, Engine as _}; use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension}; -use did_key::{Ed25519KeyPair, PatchedKeyPair, CoreSign}; -use log::{error, info}; +use did_key::{CoreSign, PatchedKeyPair}; +use log::error; use serde::{Deserialize, Serialize}; use crate::wallet::Wallet; @@ -108,9 +108,7 @@ fn wallet_sign(payload: &[u8]) -> Result, AnyError> { fn wallet_verify(did: String, message: &[u8], signature: &[u8]) -> bool { if let Ok(key_pair) = PatchedKeyPair::try_from(did.as_str()) { match key_pair.verify(message, signature) { - Ok(_) => { - true - } + Ok(_) => true, Err(e) => { error!("Signature verification failed: {:?}", e); false diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index 5a7bfa474..c79c9973b 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -51,9 +51,7 @@ pub(crate) async fn subscribe_and_process( pubsub: Arc, topic: Topic, ) -> Pin> + Send>> { - println!("Subscribe and process: {:?}", topic); let receiver = pubsub.subscribe(&topic).await; - println!("Got receiver: {:?}", receiver); let receiver_stream = WatchStream::from_changes(receiver); let mapped_stream = receiver_stream.map(|msg| { From 50c1da81f9374d0d9b906f2d2e2defba5bff567d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 15:27:53 +0100 Subject: [PATCH 221/722] fix subscription topic names --- rust-executor/src/pubsub.rs | 39 +++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index c79c9973b..45f08c3dd 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -54,15 +54,12 @@ pub(crate) async fn subscribe_and_process( let receiver = pubsub.subscribe(&topic).await; let receiver_stream = WatchStream::from_changes(receiver); - let mapped_stream = receiver_stream.map(|msg| { - println!("subscribe_and_process: Received message: {:?}", msg); - match serde_json::from_str::(&msg) { - Ok(agent_status) => Ok(agent_status), - Err(e) => Err(FieldError::new( - e, - graphql_value!({ "type": "INTERNAL_ERROR_COULD_NOT_SERIALIZE" }), - )), - } + let mapped_stream = receiver_stream.map(|msg| match serde_json::from_str::(&msg) { + Ok(agent_status) => Ok(agent_status), + Err(e) => Err(FieldError::new( + e, + graphql_value!({ "type": "INTERNAL_ERROR_COULD_NOT_SERIALIZE" }), + )), }); Box::pin(mapped_stream) @@ -71,18 +68,18 @@ pub(crate) async fn subscribe_and_process( lazy_static::lazy_static! { static ref GLOBAL_PUB_SUB: Arc = Arc::new(PubSub::new()); - pub static ref AGENT_STATUS_CHANGED_TOPIC: String = "agent-status-changed".to_owned(); - pub static ref AGENT_UPDATED_TOPIC: String = "agent-updated".to_owned(); - pub static ref EXCEPTION_OCCURRED_TOPIC: String = "exception-occurred".to_owned(); - pub static ref NEIGHBOURHOOD_SIGNAL_TOPIC: String = "neighbourhood-signal".to_owned(); - pub static ref PERSPECTIVE_ADDED_TOPIC: String = "perspective-added".to_owned(); - pub static ref PERSPECTIVE_LINK_ADDED_TOPIC: String = "perspective-link-added".to_owned(); - pub static ref PERSPECTIVE_LINK_REMOVED_TOPIC: String = "perspective-link-removed".to_owned(); - pub static ref PERSPECTIVE_LINK_UPDATED_TOPIC: String = "perspective-link-updated".to_owned(); - pub static ref PERSPECTIVE_REMOVED_TOPIC: String = "perspective-removed".to_owned(); - pub static ref PERSPECTIVE_UPDATED_TOPIC: String = "perspective-updated".to_owned(); - pub static ref PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC: String = "perspective-sync-state-change".to_owned(); - pub static ref RUNTIME_MESSAGED_RECEIVED_TOPIC: String = "runtime-messaged-received".to_owned(); + pub static ref AGENT_STATUS_CHANGED_TOPIC: String = "agent-status-changed-topic".to_owned(); + pub static ref AGENT_UPDATED_TOPIC: String = "agent-updated-topic".to_owned(); + pub static ref EXCEPTION_OCCURRED_TOPIC: String = "exception-occurred-topic".to_owned(); + pub static ref NEIGHBOURHOOD_SIGNAL_TOPIC: String = "neighbourhood-signal-topic".to_owned(); + pub static ref PERSPECTIVE_ADDED_TOPIC: String = "perspective-added-topic".to_owned(); + pub static ref PERSPECTIVE_LINK_ADDED_TOPIC: String = "perspective-link-added-topic".to_owned(); + pub static ref PERSPECTIVE_LINK_REMOVED_TOPIC: String = "perspective-link-removed-topic".to_owned(); + pub static ref PERSPECTIVE_LINK_UPDATED_TOPIC: String = "perspective-link-updated-topic".to_owned(); + pub static ref PERSPECTIVE_REMOVED_TOPIC: String = "perspective-removed-topic".to_owned(); + pub static ref PERSPECTIVE_UPDATED_TOPIC: String = "perspective-updated-topic".to_owned(); + pub static ref PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC: String = "perspective-sync-state-change-topic".to_owned(); + pub static ref RUNTIME_MESSAGED_RECEIVED_TOPIC: String = "runtime-messaged-received-topic".to_owned(); } pub async fn get_global_pubsub() -> Arc { From 490a9fac86ed7c510503c4106fb44b49556398b8 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 15:28:46 +0100 Subject: [PATCH 222/722] remove dead log --- rust-client/src/agent.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/rust-client/src/agent.rs b/rust-client/src/agent.rs index 14c760a1b..3ec996382 100644 --- a/rust-client/src/agent.rs +++ b/rust-client/src/agent.rs @@ -399,7 +399,6 @@ pub async fn watch(executor_url: String, cap_token: String) -> Result<()> { println!("Waiting for events..."); while let Some(item) = stream.next().await { - println!("Received item: {:#?}", item); match item { Ok(response) => { if let Some(data) = response.data.and_then(|data| data.agent_status_changed) { From 6e7b5912f07c8dc2e6806510abc31a48260f8beb Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 16:01:38 +0100 Subject: [PATCH 223/722] add hc networking config to cli --- rust-executor/src/config.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs index 47e799ea4..4790d0257 100644 --- a/rust-executor/src/config.rs +++ b/rust-executor/src/config.rs @@ -13,6 +13,10 @@ pub struct Ad4mConfig { pub gql_port: Option, pub hc_admin_port: Option, pub hc_app_port: Option, + pub hc_use_local_proxy: Option, + pub hc_use_mdns: Option, + pub hc_use_proxy: Option, + pub hc_use_bootstrap: Option, pub ipfs_swarm_port: Option, pub connect_holochain: Option, pub admin_credential: Option, @@ -107,6 +111,10 @@ impl Default for Ad4mConfig { gql_port: None, hc_admin_port: None, hc_app_port: None, + hc_use_local_proxy: None, + hc_use_mdns: None, + hc_use_proxy: None, + hc_use_bootstrap: None, ipfs_swarm_port: None, connect_holochain: None, admin_credential: None, From 21b035b6e552c35b4b14b0da72e4ff1955d0fe3f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 16:01:55 +0100 Subject: [PATCH 224/722] integrate js ad4m-executor connect with rust executor --- tests/js/utils/utils.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 1f277826b..c2c6456aa 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -41,7 +41,7 @@ export async function startExecutor(relativeDataPath: string, let executorProcess = null as ChildProcess | null; rmSync(relativeDataPath, { recursive: true, force: true }) console.log("Initialzing executor data directory") - execSync(`../../host/dist/ad4m-macos-x64 init --dataPath ${relativeDataPath} --networkBootstrapSeed ${bootstrapSeedPath} --overrideConfig true`, {}) + execSync(`../../target/release/ad4m init --data-path ${relativeDataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {}) console.log("Starting executor") try { @@ -51,9 +51,9 @@ export async function startExecutor(relativeDataPath: string, } if (!reqCredential) { - executorProcess = exec(`../../host/dist/ad4m-macos-x64 serve --dataPath ${relativeDataPath} --port ${gqlPort} --hcAdminPort ${hcAdminPort} --hcAppPort ${hcAppPort} --ipfsPort ${ipfsSwarmPort} --hcUseBootrap false --hcUseProxy false --hcUseLocalProxy false --hcUseMdns true --languageLanguageOnly ${languageLanguageOnly}`, {}) + executorProcess = exec(`../../target/release/ad4m serve --data-path ${relativeDataPath} --port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly}`, {}) } else { - executorProcess = exec(`../../host/dist/ad4m-macos-x64 serve --dataPath ${relativeDataPath} --port ${gqlPort} --hcAdminPort ${hcAdminPort} --hcAppPort ${hcAppPort} --ipfsPort ${ipfsSwarmPort} --hcUseBootrap false --hcUseProxy false --hcUseLocalProxy false --hcUseMdns true --languageLanguageOnly ${languageLanguageOnly} --reqCredential ${reqCredential}`, {}) + executorProcess = exec(`../../target/release/ad4m serve --data-path ${relativeDataPath} --port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${reqCredential}`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { @@ -77,7 +77,7 @@ export async function startExecutor(relativeDataPath: string, export function apolloClient(port: number, token?: string): ApolloClient { const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:${port}/graphql`, + url: `ws://127.0.0.1:${port}/graphql`, webSocketImpl: Websocket, connectionParams: () => { return { @@ -89,7 +89,7 @@ export function apolloClient(port: number, token?: string): ApolloClient { })); const link = new HttpLink({ - uri: "http://localhost:4000/graphql", + uri: "http://127.0.0.1:4000/graphql", //@ts-ignore fetch }); From b7b3766037416f9266027833ff91594b6524c811 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 17:08:08 +0100 Subject: [PATCH 225/722] add missing hc arguments to rust cli & correctly pass gql port to rust graphql process --- cli/src/dev.rs | 4 ++++ cli/src/main.rs | 20 ++++++++++++++++++++ rust-executor/src/graphql/warp_server.rs | 6 +++--- rust-executor/src/js_core/mod.rs | 3 +-- rust-executor/src/lib.rs | 14 ++++++++++---- rust-executor/src/main.rs | 14 +++++++++++--- 6 files changed, 49 insertions(+), 12 deletions(-) diff --git a/cli/src/dev.rs b/cli/src/dev.rs index 4a55b9cf2..017da6138 100644 --- a/cli/src/dev.rs +++ b/cli/src/dev.rs @@ -103,6 +103,10 @@ pub async fn run(command: DevFunctions) -> Result<()> { gql_port: None, hc_admin_port: None, hc_app_port: None, + hc_use_bootstrap: None, + hc_use_local_proxy: None, + hc_use_mdns: None, + hc_use_proxy: None, ipfs_swarm_port: None, connect_holochain: None, admin_credential: None, diff --git a/cli/src/main.rs b/cli/src/main.rs index 2128cf162..9d8d600c1 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -136,6 +136,14 @@ enum Domain { hc_admin_port: Option, #[arg(long, action)] hc_app_port: Option, + #[arg(long, action)] + hc_use_bootstrap: Option, + #[arg(long, action)] + hc_use_local_proxy: Option, + #[arg(long, action)] + hc_use_mdns: Option, + #[arg(long, action)] + hc_use_proxy: Option, #[arg(short, long, action)] ipfs_swarm_port: Option, #[arg(short, long, action)] @@ -214,6 +222,10 @@ async fn main() -> Result<()> { gql_port, hc_admin_port, hc_app_port, + hc_use_bootstrap, + hc_use_local_proxy, + hc_use_mdns, + hc_use_proxy, ipfs_swarm_port, connect_holochain, admin_credential, @@ -230,6 +242,10 @@ async fn main() -> Result<()> { gql_port, hc_admin_port, hc_app_port, + hc_use_bootstrap, + hc_use_local_proxy, + hc_use_mdns, + hc_use_proxy, ipfs_swarm_port, connect_holochain, admin_credential, @@ -274,6 +290,10 @@ async fn main() -> Result<()> { gql_port: _, hc_admin_port: _, hc_app_port: _, + hc_use_bootstrap: _, + hc_use_local_proxy: _, + hc_use_mdns: _, + hc_use_proxy: _, ipfs_swarm_port: _, connect_holochain: _, admin_credential: _, diff --git a/rust-executor/src/graphql/warp_server.rs b/rust-executor/src/graphql/warp_server.rs index ae4eaa87b..d763ec82a 100644 --- a/rust-executor/src/graphql/warp_server.rs +++ b/rust-executor/src/graphql/warp_server.rs @@ -27,7 +27,7 @@ fn schema() -> Schema { Schema::new(Query, Mutation, Subscription) } -pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> { +pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), AnyError> { let log = warp::log("warp_subscriptions"); let mut file = std::fs::File::create("schema.gql").unwrap(); @@ -47,7 +47,7 @@ pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> let root_node = Arc::new(schema()); - log::info!("Listening on 127.0.0.1:4000"); + log::info!("Listening on 127.0.0.1:{port}"); let routes = (warp::path("graphql") .and(warp::ws()) @@ -81,6 +81,6 @@ pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> .or(homepage) .with(log); - warp::serve(routes).run(([127, 0, 0, 1], 4000)).await; + warp::serve(routes).run(([127, 0, 0, 1], port)).await; Ok(()) } diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index bbc0acd14..3a55b8600 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -172,8 +172,7 @@ impl JsCore { event_loop } - fn init_core(&self, mut config: Ad4mConfig) -> Result { - config.prepare(); + fn init_core(&self, config: Ad4mConfig) -> Result { let mut worker = self .worker .lock() diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 96d3c07d5..5042f2ce5 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -17,17 +17,23 @@ use js_core::JsCore; pub use config::Ad4mConfig; /// Runs the GraphQL server and the deno core runtime -pub async fn run(config: Ad4mConfig) { +pub async fn run(mut config: Ad4mConfig) { env::set_var("RUST_LOG", "rust_executor=info"); let _ = env_logger::try_init(); + config.prepare(); - info!("Starting js_core..."); - let mut js_core_handle = JsCore::start(config).await; + info!("Starting js_core... with config: {:#?}", config); + let mut js_core_handle = JsCore::start(config.clone()).await; js_core_handle.initialized().await; info!("js_core initialized."); info!("Starting GraphQL..."); - match graphql::warp_server::start_server(js_core_handle).await { + match graphql::warp_server::start_server( + js_core_handle, + config.gql_port.expect("Did not get gql port"), + ) + .await + { Ok(_) => { info!("GraphQL server stopped."); std::process::exit(0); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 8387d6544..96fbff84b 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -19,13 +19,21 @@ async fn main() { env::set_var("RUST_LOG", "rust_executor=info"); env_logger::init(); - info!("Starting js_core..."); - let mut js_core_handle = JsCore::start(Ad4mConfig::default()).await; + let mut config = Ad4mConfig::default(); + config.prepare(); + info!("Starting js_core... with config: {:#?}", config); + + let mut js_core_handle = JsCore::start(config.clone()).await; js_core_handle.initialized().await; info!("js_core initialized."); info!("Starting GraphQL..."); - match start_server(js_core_handle).await { + match start_server( + js_core_handle, + config.gql_port.expect("Did not get gql port"), + ) + .await + { Ok(_) => { info!("GraphQL server stopped."); std::process::exit(0); From 15183cc29e783f90520c4e63059bdf7bd587c9ea Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 17:08:25 +0100 Subject: [PATCH 226/722] use correct arguments for rust cli in startExecutor tests util function --- tests/js/utils/utils.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index c2c6456aa..29e151643 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -28,7 +28,7 @@ export async function isProcessRunning(processName: string): Promise { }) } -export async function startExecutor(relativeDataPath: string, +export async function startExecutor(dataPath: string, bootstrapSeedPath: string, gqlPort: number, hcAdminPort: number, @@ -38,10 +38,11 @@ export async function startExecutor(relativeDataPath: string, reqCredential?: string ): Promise { console.log(bootstrapSeedPath); + console.log(dataPath); let executorProcess = null as ChildProcess | null; - rmSync(relativeDataPath, { recursive: true, force: true }) + rmSync(dataPath, { recursive: true, force: true }) console.log("Initialzing executor data directory") - execSync(`../../target/release/ad4m init --data-path ${relativeDataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {}) + execSync(`../../target/release/ad4m init --data-path ${dataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {}) console.log("Starting executor") try { @@ -51,9 +52,9 @@ export async function startExecutor(relativeDataPath: string, } if (!reqCredential) { - executorProcess = exec(`../../target/release/ad4m serve --data-path ${relativeDataPath} --port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly}`, {}) + executorProcess = exec(`../../target/release/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly}`, {}) } else { - executorProcess = exec(`../../target/release/ad4m serve --data-path ${relativeDataPath} --port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${reqCredential}`, {}) + executorProcess = exec(`../../target/release/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${reqCredential}`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From c035383b78b51eb5def0c0a1926de253e71862e7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 17:26:40 +0100 Subject: [PATCH 227/722] fix warp server logging --- rust-executor/src/graphql/warp_server.rs | 4 +--- rust-executor/src/lib.rs | 2 +- tests/js/utils/utils.ts | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/rust-executor/src/graphql/warp_server.rs b/rust-executor/src/graphql/warp_server.rs index d763ec82a..73405b03f 100644 --- a/rust-executor/src/graphql/warp_server.rs +++ b/rust-executor/src/graphql/warp_server.rs @@ -28,7 +28,7 @@ fn schema() -> Schema { } pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), AnyError> { - let log = warp::log("warp_subscriptions"); + let log = warp::log("warp::server"); let mut file = std::fs::File::create("schema.gql").unwrap(); file.write_all(schema().as_schema_language().as_bytes()) @@ -47,8 +47,6 @@ pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), let root_node = Arc::new(schema()); - log::info!("Listening on 127.0.0.1:{port}"); - let routes = (warp::path("graphql") .and(warp::ws()) .map(move |ws: warp::ws::Ws| { diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 5042f2ce5..a09d02391 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -18,7 +18,7 @@ pub use config::Ad4mConfig; /// Runs the GraphQL server and the deno core runtime pub async fn run(mut config: Ad4mConfig) { - env::set_var("RUST_LOG", "rust_executor=info"); + env::set_var("RUST_LOG", "rust_executor=trace,warp::server"); let _ = env_logger::try_init(); config.prepare(); diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 29e151643..6cd431f07 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -58,7 +58,7 @@ export async function startExecutor(dataPath: string, } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { - if (data.includes("GraphQL server started")) { + if (data.includes(`listening on http://127.0.0.1:${gqlPort}`)) { resolve() } }); @@ -90,7 +90,7 @@ export function apolloClient(port: number, token?: string): ApolloClient { })); const link = new HttpLink({ - uri: "http://127.0.0.1:4000/graphql", + uri: `http://127.0.0.1:${port}/graphql`, //@ts-ignore fetch }); From d2ace689d34a70e682388e97fb2c300af35df6cb Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 17:29:50 +0100 Subject: [PATCH 228/722] fix resolving executor ready in test setup --- tests/js/utils/utils.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 6cd431f07..abfe9a8c0 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -59,9 +59,16 @@ export async function startExecutor(dataPath: string, let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { if (data.includes(`listening on http://127.0.0.1:${gqlPort}`)) { + console.log("going to resolve"); resolve() } }); + executorProcess!.stderr!.on('data', (data) => { + if (data.includes(`listening on http://127.0.0.1:${gqlPort}`)) { + console.log("going to resolve"); + resolve() + } + }); }) executorProcess!.stdout!.on('data', (data) => { From ca2257d0f5b08280c23dfd832e8fd61d8b733185 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 17:31:54 +0100 Subject: [PATCH 229/722] remove config log --- rust-executor/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index a09d02391..e058c1557 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -22,7 +22,7 @@ pub async fn run(mut config: Ad4mConfig) { let _ = env_logger::try_init(); config.prepare(); - info!("Starting js_core... with config: {:#?}", config); + info!("Starting js_core..."); let mut js_core_handle = JsCore::start(config.clone()).await; js_core_handle.initialized().await; info!("js_core initialized."); From af3dfbb14397a899731fd492b22b763bd058331c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 21 Apr 2023 17:33:57 +0100 Subject: [PATCH 230/722] put new warp server in graphql/mod.rs instead of old actix server --- rust-executor/src/graphql/mod.rs | 163 ++++++++++++----------- rust-executor/src/graphql/warp_server.rs | 84 ------------ rust-executor/src/lib.rs | 2 +- rust-executor/src/main.rs | 3 +- 4 files changed, 87 insertions(+), 165 deletions(-) delete mode 100644 rust-executor/src/graphql/warp_server.rs diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index 68f8cdd76..e3e28628c 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -1,82 +1,89 @@ -// use actix_web::{ -// middleware, -// web::{self, Data}, -// App, Error, HttpResponse, HttpServer, -// }; -// use deno_core::error::AnyError; -// use juniper::RootNode; -// use juniper_actix::{graphiql_handler, graphql_handler, playground_handler}; -// use std::io::Write; - mod graphql_types; mod mutation_resolvers; mod query_resolvers; mod subscription_resolvers; -pub mod warp_server; - -// use mutation_resolvers::*; -// use query_resolvers::*; -// use subscription_resolvers::*; - -// use crate::js_core::JsCoreHandle; - -// pub struct MyContext; - -// impl juniper::Context for MyContext {} - -// type Schema = RootNode<'static, Query, Mutation, Subscription>; - -// fn schema() -> Schema { -// Schema::new(Query, Mutation, Subscription) -// } - -// async fn graphiql_route() -> Result { -// graphiql_handler("/graphql", Some("/graphql")).await -// } - -// async fn playground_route() -> Result { -// playground_handler("/", Some("/")).await -// } - -// async fn graphql_route( -// req: actix_web::HttpRequest, -// payload: actix_web::web::Payload, -// schema: web::Data, -// deno_connect: web::Data, -// ) -> Result { -// graphql_handler(&schema, &deno_connect, req, payload).await -// } - -// /// Starts the GraphQL server -// pub async fn start_server(js_core_handle: JsCoreHandle) -> Result<(), AnyError> { -// let mut file = std::fs::File::create("schema.gql").unwrap(); -// file.write_all(schema().as_schema_language().as_bytes()) -// .unwrap(); - -// //Start the server -// let server = HttpServer::new(move || { -// App::new() -// .app_data(Data::new(schema())) -// .app_data(Data::new(js_core_handle.clone())) -// .wrap(middleware::Compress::default()) -// .wrap(middleware::Logger::default()) -// .service( -// web::resource("/") -// .route(web::post().to(graphql_route)) -// .route(web::get().to(graphql_route)), -// ) -// .service( -// web::resource("/graphql") -// .route(web::post().to(graphql_route)) -// .route(web::get().to(graphql_route)), -// ) -// .service(web::resource("/playground").route(web::get().to(playground_route))) -// .service(web::resource("/graphiql").route(web::get().to(graphiql_route))) -// }); -// server -// .bind("127.0.0.1:4000") -// .expect("Could not bind to port 4000") -// .run() -// .await -// .map_err(|e| e.into()) -// } + +use mutation_resolvers::*; +use query_resolvers::*; +use subscription_resolvers::*; + +use crate::js_core::JsCoreHandle; + +use std::io::Write; +use std::sync::Arc; + +use deno_core::error::AnyError; +use futures::FutureExt as _; +use juniper::RootNode; +use juniper_graphql_transport_ws::ConnectionConfig; +use juniper_warp::{playground_filter, subscriptions::serve_graphql_transport_ws}; +use warp::{http::Response, Filter}; + +#[derive(Clone)] +struct Context; + +impl juniper::Context for Context {} + +impl juniper::Context for JsCoreHandle {} + +type Schema = RootNode<'static, Query, Mutation, Subscription>; + +fn schema() -> Schema { + Schema::new(Query, Mutation, Subscription) +} + +pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), AnyError> { + let log = warp::log("warp::server"); + + let mut file = std::fs::File::create("schema.gql").unwrap(); + file.write_all(schema().as_schema_language().as_bytes()) + .unwrap(); + + let homepage = warp::path::end().map(|| { + Response::builder() + .header("content-type", "text/html") + .body("

AD4M Executor

visit graphql playground to explore the executor") + }); + + let qm_schema = schema(); + let js_core_handle_cloned1 = js_core_handle.clone(); + let qm_state = warp::any().map(move || js_core_handle_cloned1.clone()); + let qm_graphql_filter = juniper_warp::make_graphql_filter(qm_schema, qm_state.boxed()); + + let root_node = Arc::new(schema()); + + let routes = (warp::path("graphql") + .and(warp::ws()) + .map(move |ws: warp::ws::Ws| { + let root_node = root_node.clone(); + let js_core_handle = js_core_handle.clone(); + ws.on_upgrade(move |websocket| async move { + serve_graphql_transport_ws( + websocket, + root_node, + ConnectionConfig::new(js_core_handle), + ) + .map(|r| { + if let Err(e) = r { + log::error!("Websocket error: {e}"); + } + }) + .await + }) + })) + .map(|reply| { + // TODO#584: remove this workaround + warp::reply::with_header(reply, "Sec-WebSocket-Protocol", "graphql-transport-ws") + }) + .or(warp::post() + .and(warp::path("graphql")) + .and(qm_graphql_filter)) + .or(warp::get() + .and(warp::path("playground")) + .and(playground_filter("/graphql", Some("/subscriptions")))) + .or(homepage) + .with(log); + + warp::serve(routes).run(([127, 0, 0, 1], port)).await; + Ok(()) +} diff --git a/rust-executor/src/graphql/warp_server.rs b/rust-executor/src/graphql/warp_server.rs deleted file mode 100644 index 73405b03f..000000000 --- a/rust-executor/src/graphql/warp_server.rs +++ /dev/null @@ -1,84 +0,0 @@ -use std::io::Write; -use std::sync::Arc; - -use deno_core::error::AnyError; -use futures::FutureExt as _; -use juniper::RootNode; -use juniper_graphql_transport_ws::ConnectionConfig; -use juniper_warp::{playground_filter, subscriptions::serve_graphql_transport_ws}; -use warp::{http::Response, Filter}; - -use crate::js_core::JsCoreHandle; - -use super::mutation_resolvers::*; -use super::query_resolvers::*; -use super::subscription_resolvers::*; - -#[derive(Clone)] -struct Context; - -impl juniper::Context for Context {} - -impl juniper::Context for JsCoreHandle {} - -type Schema = RootNode<'static, Query, Mutation, Subscription>; - -fn schema() -> Schema { - Schema::new(Query, Mutation, Subscription) -} - -pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), AnyError> { - let log = warp::log("warp::server"); - - let mut file = std::fs::File::create("schema.gql").unwrap(); - file.write_all(schema().as_schema_language().as_bytes()) - .unwrap(); - - let homepage = warp::path::end().map(|| { - Response::builder() - .header("content-type", "text/html") - .body("

AD4M Executor

visit graphql playground to explore the executor") - }); - - let qm_schema = schema(); - let js_core_handle_cloned1 = js_core_handle.clone(); - let qm_state = warp::any().map(move || js_core_handle_cloned1.clone()); - let qm_graphql_filter = juniper_warp::make_graphql_filter(qm_schema, qm_state.boxed()); - - let root_node = Arc::new(schema()); - - let routes = (warp::path("graphql") - .and(warp::ws()) - .map(move |ws: warp::ws::Ws| { - let root_node = root_node.clone(); - let js_core_handle = js_core_handle.clone(); - ws.on_upgrade(move |websocket| async move { - serve_graphql_transport_ws( - websocket, - root_node, - ConnectionConfig::new(js_core_handle), - ) - .map(|r| { - if let Err(e) = r { - log::error!("Websocket error: {e}"); - } - }) - .await - }) - })) - .map(|reply| { - // TODO#584: remove this workaround - warp::reply::with_header(reply, "Sec-WebSocket-Protocol", "graphql-transport-ws") - }) - .or(warp::post() - .and(warp::path("graphql")) - .and(qm_graphql_filter)) - .or(warp::get() - .and(warp::path("playground")) - .and(playground_filter("/graphql", Some("/subscriptions")))) - .or(homepage) - .with(log); - - warp::serve(routes).run(([127, 0, 0, 1], port)).await; - Ok(()) -} diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index e058c1557..2818df296 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -28,7 +28,7 @@ pub async fn run(mut config: Ad4mConfig) { info!("js_core initialized."); info!("Starting GraphQL..."); - match graphql::warp_server::start_server( + match graphql::start_server( js_core_handle, config.gql_port.expect("Did not get gql port"), ) diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 96fbff84b..287f36054 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -11,7 +11,6 @@ use log::{error, info}; use rust_executor::Ad4mConfig; use std::env; -use graphql::warp_server::start_server; use js_core::JsCore; #[tokio::main] @@ -28,7 +27,7 @@ async fn main() { info!("js_core initialized."); info!("Starting GraphQL..."); - match start_server( + match graphql::start_server( js_core_handle, config.gql_port.expect("Did not get gql port"), ) From 944f45d77761f46ea7f391959bb497c93febdb61 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 2 May 2023 14:19:38 +0100 Subject: [PATCH 231/722] use new deno testing languages --- tests/js/scripts/get-builtin-test-langs.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/js/scripts/get-builtin-test-langs.js b/tests/js/scripts/get-builtin-test-langs.js index 388d080c1..841569fa7 100644 --- a/tests/js/scripts/get-builtin-test-langs.js +++ b/tests/js/scripts/get-builtin-test-langs.js @@ -6,13 +6,13 @@ import os from "os"; const languages = { "agent-expression-store": { - bundle: "https://github.com/perspect3vism/agent-language/releases/download/0.2.1/bundle.js", + bundle: "https://github.com/perspect3vism/agent-language/releases/download/0.2.2/bundle.js", }, languages: { - bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.7/bundle.js", + bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.8/bundle.js", }, "neighbourhood-store": { - bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.4/bundle.js", + bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.5/bundle.js", }, "perspective-diff-sync": { bundle: "../../bootstrap-languages/p-diff-sync/build/bundle.js", @@ -21,10 +21,10 @@ const languages = { bundle: "https://github.com/perspect3vism/lang-note-ipfs/releases/download/0.0.4/bundle.js", }, "direct-message-language": { - bundle: "https://github.com/perspect3vism/direct-message-language/releases/download/0.1.0/bundle.js" + bundle: "../../bootstrap-languages/direct-message-language/build/bundle.js" }, "perspective-language": { - bundle: "https://github.com/perspect3vism/perspective-language/releases/download/0.0.1/bundle.js" + bundle: "../../bootstrap-languages/perspective-language/build/bundle.js" } }; From beac1915a46fa78dd375fe69d0bf2fd8554ae253 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 2 May 2023 14:20:51 +0100 Subject: [PATCH 232/722] new deno bundles & locks --- Cargo.lock | 1006 ++++------------- .../rollup.config.hc-dna.js | 70 ++ tests/js/bootstrapSeed.json | 2 +- tests/js/publishBootstrapSeed.json | 2 +- 4 files changed, 281 insertions(+), 799 deletions(-) create mode 100644 bootstrap-languages/perspective-language/rollup.config.hc-dna.js diff --git a/Cargo.lock b/Cargo.lock index 0618e72db..6a419870f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,265 +12,6 @@ dependencies = [ "regex", ] -[[package]] -name = "actix" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3720d0064a0ce5c0de7bd93bdb0a6caebab2a9b5668746145d7b3b0c5da02914" -dependencies = [ - "actix-rt", - "actix_derive", - "bitflags", - "bytes", - "crossbeam-channel", - "futures-core", - "futures-sink", - "futures-task", - "futures-util", - "log", - "once_cell", - "parking_lot 0.11.2", - "pin-project-lite", - "smallvec", - "tokio", - "tokio-util 0.6.10", -] - -[[package]] -name = "actix" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f728064aca1c318585bf4bb04ffcfac9e75e508ab4e8b1bd9ba5dfe04e2cbed5" -dependencies = [ - "actix-rt", - "actix_derive", - "bitflags", - "bytes", - "crossbeam-channel", - "futures-core", - "futures-sink", - "futures-task", - "futures-util", - "log", - "once_cell", - "parking_lot 0.12.1", - "pin-project-lite", - "smallvec", - "tokio", - "tokio-util 0.7.4", -] - -[[package]] -name = "actix-codec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a7559404a7f3573127aab53c08ce37a6c6a315c374a31070f3c91cd1b4a7fe" -dependencies = [ - "bitflags", - "bytes", - "futures-core", - "futures-sink", - "log", - "memchr", - "pin-project-lite", - "tokio", - "tokio-util 0.7.4", -] - -[[package]] -name = "actix-http" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2079246596c18b4a33e274ae10c0e50613f4d32a4198e09c7b93771013fed74" -dependencies = [ - "actix-codec", - "actix-rt", - "actix-service", - "actix-utils", - "ahash 0.8.3", - "base64 0.21.0", - "bitflags", - "brotli", - "bytes", - "bytestring", - "derive_more", - "encoding_rs", - "flate2", - "futures-core", - "h2", - "http", - "httparse", - "httpdate", - "itoa 1.0.4", - "language-tags", - "local-channel", - "mime", - "percent-encoding", - "pin-project-lite", - "rand 0.8.5", - "sha1", - "smallvec", - "tokio", - "tokio-util 0.7.4", - "tracing", - "zstd 0.12.3+zstd.1.5.2", -] - -[[package]] -name = "actix-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6" -dependencies = [ - "quote 1.0.26", - "syn 1.0.103", -] - -[[package]] -name = "actix-router" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799" -dependencies = [ - "bytestring", - "http", - "regex", - "serde", - "tracing", -] - -[[package]] -name = "actix-rt" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15265b6b8e2347670eb363c47fc8c75208b4a4994b27192f345fcbe707804f3e" -dependencies = [ - "actix-macros", - "futures-core", - "tokio", -] - -[[package]] -name = "actix-server" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e8613a75dd50cc45f473cee3c34d59ed677c0f7b44480ce3b8247d7dc519327" -dependencies = [ - "actix-rt", - "actix-service", - "actix-utils", - "futures-core", - "futures-util", - "mio 0.8.5", - "num_cpus", - "socket2", - "tokio", - "tracing", -] - -[[package]] -name = "actix-service" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a" -dependencies = [ - "futures-core", - "paste", - "pin-project-lite", -] - -[[package]] -name = "actix-utils" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" -dependencies = [ - "local-waker", - "pin-project-lite", -] - -[[package]] -name = "actix-web" -version = "4.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3cb42f9566ab176e1ef0b8b3a896529062b4efc6be0123046095914c4c1c96" -dependencies = [ - "actix-codec", - "actix-http", - "actix-macros", - "actix-router", - "actix-rt", - "actix-server", - "actix-service", - "actix-utils", - "actix-web-codegen", - "ahash 0.7.6", - "bytes", - "bytestring", - "cfg-if", - "cookie", - "derive_more", - "encoding_rs", - "futures-core", - "futures-util", - "http", - "itoa 1.0.4", - "language-tags", - "log", - "mime", - "once_cell", - "pin-project-lite", - "regex", - "serde", - "serde_json", - "serde_urlencoded", - "smallvec", - "socket2", - "time 0.3.17", - "url", -] - -[[package]] -name = "actix-web-actors" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6e9ccc371cfddbed7aa842256a4abc7a6dcac9f3fce392fe1d0f68cfd136b2" -dependencies = [ - "actix 0.13.0", - "actix-codec", - "actix-http", - "actix-web", - "bytes", - "bytestring", - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util 0.7.4", -] - -[[package]] -name = "actix-web-codegen" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2262160a7ae29e3415554a3f1fc04c764b1540c116aa524683208078b7a75bc9" -dependencies = [ - "actix-router", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", -] - -[[package]] -name = "actix_derive" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d44b8fee1ced9671ba043476deddef739dd0959bf77030b26b738cc591737a7" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", -] - [[package]] name = "ad4m" version = "0.3.4" @@ -299,12 +40,9 @@ name = "ad4m-client" version = "0.3.4" dependencies = [ "anyhow", - "async-std", "async-tungstenite", - "async_executors", "chrono", "clap", - "cynic", "dirs", "futures", "graphql-ws-client", @@ -429,18 +167,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "ahash" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" -dependencies = [ - "cfg-if", - "getrandom 0.2.8", - "once_cell", - "version_check", -] - [[package]] name = "aho-corasick" version = "0.7.20" @@ -532,27 +258,6 @@ dependencies = [ "syn 1.0.103", ] -[[package]] -name = "async-attributes" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" -dependencies = [ - "quote 1.0.26", - "syn 1.0.103", -] - -[[package]] -name = "async-channel" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" -dependencies = [ - "concurrent-queue 1.2.4", - "event-listener", - "futures-core", -] - [[package]] name = "async-compression" version = "0.3.15" @@ -567,117 +272,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "async-executor" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" -dependencies = [ - "async-lock", - "async-task", - "concurrent-queue 2.0.0", - "fastrand", - "futures-lite", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" -dependencies = [ - "async-channel", - "async-executor", - "async-io", - "async-lock", - "blocking", - "futures-lite", - "once_cell", -] - -[[package]] -name = "async-io" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7" -dependencies = [ - "async-lock", - "autocfg", - "concurrent-queue 1.2.4", - "futures-lite", - "libc", - "log", - "parking", - "polling", - "slab", - "socket2", - "waker-fn", - "winapi", -] - -[[package]] -name = "async-lock" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" -dependencies = [ - "event-listener", - "futures-lite", -] - -[[package]] -name = "async-process" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" -dependencies = [ - "async-io", - "autocfg", - "blocking", - "cfg-if", - "event-listener", - "futures-lite", - "libc", - "once_cell", - "signal-hook 0.3.14", - "winapi", -] - -[[package]] -name = "async-std" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" -dependencies = [ - "async-attributes", - "async-channel", - "async-global-executor", - "async-io", - "async-lock", - "async-process", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-task" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" - [[package]] name = "async-trait" version = "0.1.68" @@ -691,32 +285,16 @@ dependencies = [ [[package]] name = "async-tungstenite" -version = "0.16.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5682ea0913e5c20780fe5785abacb85a411e7437bf52a1bedb93ddb3972cb8dd" +checksum = "1e0388bb7a400072bbb41ceb75d65c3baefb2ea99672fa22e85278452cd9b58b" dependencies = [ - "async-std", "futures-io", "futures-util", "log", "pin-project-lite", "tokio", - "tungstenite", -] - -[[package]] -name = "async_executors" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0b8626a279ab86ef8ba31cc91549e3386eb7883cd94305896d438aa6535c62" -dependencies = [ - "async-std", - "blanket", - "futures-core", - "futures-task", - "futures-util", - "pin-project", - "rustc_version 0.4.0", + "tungstenite 0.18.0", ] [[package]] @@ -752,12 +330,6 @@ dependencies = [ "critical-section", ] -[[package]] -name = "atomic-waker" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" - [[package]] name = "attohttpc" version = "0.22.0" @@ -926,17 +498,6 @@ dependencies = [ "constant_time_eq 0.2.5", ] -[[package]] -name = "blanket" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b04ce3d2372d05d1ef4ea3fdf427da6ae3c17ca06d688a107b5344836276bc3" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", -] - [[package]] name = "block" version = "0.1.6" @@ -976,20 +537,6 @@ dependencies = [ "generic-array 0.14.6", ] -[[package]] -name = "blocking" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" -dependencies = [ - "async-channel", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", - "once_cell", -] - [[package]] name = "bls12_381_plus" version = "0.7.0" @@ -1036,19 +583,24 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bson" -version = "1.2.4" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0aa578035b938855a710ba58d43cfb4d435f3619f99236fb35922a574d6cb1" +checksum = "9aeb8bae494e49dbc330dd23cf78f6f7accee22f640ce3ab17841badaa4ce232" dependencies = [ + "ahash", "base64 0.13.1", + "bitvec", "chrono", "hex", + "indexmap", + "js-sys", "lazy_static", - "linked-hash-map", - "rand 0.7.3", + "rand 0.8.5", "serde", + "serde_bytes", "serde_json", - "uuid 0.8.2", + "time 0.3.17", + "uuid 1.3.0", ] [[package]] @@ -1086,15 +638,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" -[[package]] -name = "bytestring" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238e4886760d98c4f899360c834fa93e62cf7f721ac3c2da375cbdf4b8679aae" -dependencies = [ - "bytes", -] - [[package]] name = "bzip2" version = "0.4.4" @@ -1116,12 +659,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - [[package]] name = "cache_control" version = "0.2.0" @@ -1420,24 +957,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "concurrent-queue" -version = "1.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" -dependencies = [ - "cache-padded", -] - -[[package]] -name = "concurrent-queue" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "console_static_text" version = "0.8.1" @@ -1472,17 +991,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "cookie" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" -dependencies = [ - "percent-encoding", - "time 0.3.17", - "version_check", -] - [[package]] name = "core-foundation" version = "0.9.3" @@ -1612,7 +1120,7 @@ dependencies = [ "libc", "mio 0.7.14", "parking_lot 0.11.2", - "signal-hook 0.1.17", + "signal-hook", "winapi", ] @@ -1825,45 +1333,6 @@ dependencies = [ "syn 1.0.103", ] -[[package]] -name = "cynic" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a086fdece2d6206e52894d978a09b09efca1e61ac59d69a934eab74d8d9ee40" -dependencies = [ - "cynic-proc-macros", - "json-decode", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cynic-codegen" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd9f0852fe3d3637d4dccb4b69e5a8f881214fc38907a528385ff71cd7b15c3e" -dependencies = [ - "Inflector", - "darling", - "graphql-parser 0.3.0", - "lazy_static", - "proc-macro2 1.0.56", - "quote 1.0.26", - "strsim", - "syn 1.0.103", -] - -[[package]] -name = "cynic-proc-macros" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cabdef46a6ff3c06e337a9c0c6b7d2f71aefae4ab582ed319a0d454ea1085f9" -dependencies = [ - "cynic-codegen", - "syn 1.0.103", -] - [[package]] name = "darling" version = "0.13.4" @@ -2098,7 +1567,7 @@ dependencies = [ "serde", "tokio", "tokio-stream", - "tokio-util 0.7.4", + "tokio-util", ] [[package]] @@ -2181,7 +1650,7 @@ dependencies = [ "ring", "serde", "tokio", - "tokio-util 0.7.4", + "tokio-util", ] [[package]] @@ -2411,7 +1880,7 @@ dependencies = [ "serde", "tokio", "tokio-rustls", - "tokio-tungstenite", + "tokio-tungstenite 0.16.1", ] [[package]] @@ -2861,34 +2330,6 @@ dependencies = [ "str-buf", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", - "synstructure", -] - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -3134,21 +2575,6 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" -[[package]] -name = "futures-lite" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - [[package]] name = "futures-macro" version = "0.3.28" @@ -3443,20 +2869,8 @@ dependencies = [ "aho-corasick", "bstr", "fnv", - "log", - "regex", -] - -[[package]] -name = "gloo-timers" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", + "log", + "regex", ] [[package]] @@ -3481,19 +2895,9 @@ dependencies = [ [[package]] name = "graphql-parser" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5613c31f18676f164112732202124f373bb2103ff017b3b85ca954ea6a66ada" -dependencies = [ - "combine 3.8.1", - "failure", -] - -[[package]] -name = "graphql-parser" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1abd4ce5247dfc04a03ccde70f87a048458c9356c7e41d21ad8c407b3dde6f2" +checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" dependencies = [ "combine 3.8.1", "thiserror", @@ -3501,12 +2905,11 @@ dependencies = [ [[package]] name = "graphql-ws-client" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dd1e95f1c059e284540ce8dd4fcf2437e48cd72fe7d62dfe57d33c185f6b7" +checksum = "4a6ac701a6fd088e21da4454b98e2b45456b8cb5f4215ccab9b62dfe8bd500fa" dependencies = [ "async-tungstenite", - "cynic", "futures", "graphql_client", "log", @@ -3514,14 +2917,14 @@ dependencies = [ "serde", "serde_json", "thiserror", - "uuid 0.8.2", + "uuid 1.3.0", ] [[package]] name = "graphql_client" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b58571cfc3cc42c3e8ff44fc6cfbb6c0dea17ed22d20f9d8f1efc4e8209a3f" +checksum = "aa61bb9dc6d373a8b465a5da17b62809483e8527a34b0e9034dc0915b09e160a" dependencies = [ "graphql_query_derive", "serde", @@ -3530,13 +2933,13 @@ dependencies = [ [[package]] name = "graphql_client_codegen" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4bf9cd823359d74ad3d3ecf1afd4a975f4ff2f891cdf9a66744606daf52de8c" +checksum = "4e55df64cc702c4ad6647f8df13a799ad11688a3781fadf5045f7ba12733fa9b" dependencies = [ "graphql-introspection-query", - "graphql-parser 0.2.3", - "heck 0.3.3", + "graphql-parser", + "heck 0.4.0", "lazy_static", "proc-macro2 1.0.56", "quote 1.0.26", @@ -3547,9 +2950,9 @@ dependencies = [ [[package]] name = "graphql_query_derive" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56b093bfda71de1da99758b036f4cc811fd2511c8a76f75680e9ffbd2bb4251" +checksum = "d52fc9cde811f44b15ec0692b31e56a3067f6f431c5ace712f286e47c1dacc98" dependencies = [ "graphql_client_codegen", "proc-macro2 1.0.56", @@ -3637,7 +3040,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.4", + "tokio-util", "tracing", ] @@ -3656,7 +3059,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.6", + "ahash", ] [[package]] @@ -3668,6 +3071,31 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "headers" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +dependencies = [ + "base64 0.13.1", + "bitflags", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + [[package]] name = "heapless" version = "0.7.16" @@ -4189,17 +3617,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "json-decode" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd72139ade93da4f8a437afe8654a4a3cf1d858dc195fc6691e6e932fa1b6ee" -dependencies = [ - "serde", - "serde_json", - "thiserror", -] - [[package]] name = "json-patch" version = "0.2.6" @@ -4213,9 +3630,8 @@ dependencies = [ [[package]] name = "juniper" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52adf17d43d0b526eed31fac15d9312941c5c2558ffbfb105811690b96d6e2f1" +version = "0.16.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" dependencies = [ "async-trait", "bson", @@ -4223,55 +3639,76 @@ dependencies = [ "fnv", "futures", "futures-enum", - "graphql-parser 0.3.0", + "graphql-parser", "indexmap", "juniper_codegen", "serde", "smartstring", "static_assertions", "url", - "uuid 0.8.2", + "uuid 1.3.0", + "void", ] [[package]] -name = "juniper_actix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc44af18ae1f551076171e24eb453c52132a19c219d1f1a1c3068ab363b946b5" +name = "juniper_codegen" +version = "0.16.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", + "url", +] + +[[package]] +name = "juniper_graphql_transport_ws" +version = "0.4.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" dependencies = [ - "actix 0.12.0", - "actix-http", - "actix-web", - "actix-web-actors", - "anyhow", - "futures", - "http", "juniper", + "juniper_subscriptions", "serde", - "serde_json", - "thiserror", + "tokio", ] [[package]] -name = "juniper_codegen" -version = "0.15.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aee97671061ad50301ba077d054d295e01d31a1868fbd07902db651f987e71db" +name = "juniper_graphql_ws" +version = "0.4.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" dependencies = [ - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "juniper", + "juniper_subscriptions", + "serde", + "tokio", ] [[package]] name = "juniper_subscriptions" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2983b26a1e12b691c17432aee3881d8bec4a94d6c64bc933c0eaf6d9e3429f13" +version = "0.17.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "futures", + "juniper", +] + +[[package]] +name = "juniper_warp" +version = "0.8.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" dependencies = [ + "anyhow", "futures", + "headers", "juniper", + "juniper_graphql_transport_ws", + "juniper_graphql_ws", + "serde", + "serde_json", + "thiserror", + "tokio", + "warp", ] [[package]] @@ -4315,21 +3752,6 @@ dependencies = [ "selectors", ] -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - -[[package]] -name = "language-tags" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" - [[package]] name = "lazy_static" version = "1.4.0" @@ -4599,24 +4021,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" -[[package]] -name = "local-channel" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f303ec0e94c6c54447f84f3b0ef7af769858a9c4ef56ef2a986d3dcd4c3fc9c" -dependencies = [ - "futures-core", - "futures-sink", - "futures-util", - "local-waker", -] - -[[package]] -name = "local-waker" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34f76eb3611940e0e7d53a9aaa4e6a3151f69541a282fd0dad5571420c53ff1" - [[package]] name = "localtunnel-client" version = "0.0.12" @@ -4648,7 +4052,6 @@ checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if", "serde", - "value-bag", ] [[package]] @@ -4833,6 +4236,16 @@ version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "miniz_oxide" version = "0.5.4" @@ -4927,6 +4340,20 @@ dependencies = [ "synstructure", ] +[[package]] +name = "multiparty" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1ec6589a6d4a1e0b33b4c0a3f6ee96dfba88ebdb3da51403fd7cf0a24a4b04" +dependencies = [ + "bytes", + "futures-core", + "httparse", + "memchr", + "pin-project-lite", + "try-lock", +] + [[package]] name = "native-tls" version = "0.2.11" @@ -5460,12 +4887,6 @@ dependencies = [ "system-deps 6.0.3", ] -[[package]] -name = "parking" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" - [[package]] name = "parking_lot" version = "0.11.2" @@ -5802,20 +5223,6 @@ dependencies = [ "miniz_oxide 0.6.2", ] -[[package]] -name = "polling" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4609a838d88b73d8238967b60dd115cc08d38e2bbaf51ee1e4b695f89122e2" -dependencies = [ - "autocfg", - "cfg-if", - "libc", - "log", - "wepoll-ffi", - "winapi", -] - [[package]] name = "poly1305" version = "0.8.0" @@ -6192,7 +5599,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls", "tokio-socks", - "tokio-util 0.7.4", + "tokio-util", "tower-service", "url", "wasm-bindgen", @@ -6310,9 +5717,6 @@ dependencies = [ name = "rust-executor" version = "0.1.0" dependencies = [ - "actix 0.13.0", - "actix-rt", - "actix-web", "argon2", "base64 0.21.0", "chrono", @@ -6327,12 +5731,14 @@ dependencies = [ "futures", "hex", "juniper", - "juniper_actix", + "juniper_graphql_transport_ws", "juniper_subscriptions", + "juniper_warp", "lazy_static", "log", "multibase", "multihash", + "once_cell", "os_info", "rand 0.8.5", "secp256k1", @@ -6340,8 +5746,10 @@ dependencies = [ "serde", "serde_json", "tokio", + "tokio-stream", "url", "uuid 1.3.0", + "warp", "zip", ] @@ -6915,16 +6323,6 @@ dependencies = [ "signal-hook-registry", ] -[[package]] -name = "signal-hook" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" -dependencies = [ - "libc", - "signal-hook-registry", -] - [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -7186,7 +6584,7 @@ version = "0.29.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5005cd73617e18592faa31298225b26f1c407b84a681d67efb735c3d3458e101" dependencies = [ - "ahash 0.7.6", + "ahash", "ast_node", "better_scoped_tls", "cfg-if", @@ -7288,7 +6686,7 @@ version = "0.41.39" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681c1fbb762c82700a5bd23dc39bad892a287ea9fb2121cf56e77f1ddc89afeb" dependencies = [ - "ahash 0.7.6", + "ahash", "anyhow", "pathdiff", "serde", @@ -7391,7 +6789,7 @@ version = "0.167.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db1c7801b1d7741ab335441dd301ddcc4183fb250d5e6efaab33b03def268c06" dependencies = [ - "ahash 0.7.6", + "ahash", "base64 0.13.1", "dashmap", "indexmap", @@ -8095,6 +7493,7 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", + "tokio-util", ] [[package]] @@ -8108,23 +7507,21 @@ dependencies = [ "rustls", "tokio", "tokio-rustls", - "tungstenite", + "tungstenite 0.16.0", "webpki", "webpki-roots", ] [[package]] -name = "tokio-util" -version = "0.6.10" +name = "tokio-tungstenite" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" dependencies = [ - "bytes", - "futures-core", - "futures-sink", + "futures-util", "log", - "pin-project-lite", "tokio", + "tungstenite 0.18.0", ] [[package]] @@ -8312,6 +7709,25 @@ dependencies = [ "webpki", ] +[[package]] +name = "tungstenite" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" +dependencies = [ + "base64 0.13.1", + "byteorder", + "bytes", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "typed-arena" version = "2.0.1" @@ -8380,6 +7796,15 @@ dependencies = [ "unic-common", ] +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-bidi" version = "0.3.8" @@ -8551,16 +7976,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "value-bag" -version = "1.0.0-alpha.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" -dependencies = [ - "ctor", - "version_check", -] - [[package]] name = "vcpkg" version = "0.2.15" @@ -8618,12 +8033,6 @@ dependencies = [ "quote 1.0.26", ] -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - [[package]] name = "walkdir" version = "2.3.2" @@ -8645,6 +8054,37 @@ dependencies = [ "try-lock", ] +[[package]] +name = "warp" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27e1a710288f0f91a98dd8a74f05b76a10768db245ce183edf64dc1afdc3016c" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "headers", + "http", + "hyper", + "log", + "mime", + "mime_guess", + "multiparty", + "percent-encoding", + "pin-project", + "rustls-pemfile", + "scoped-tls", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-stream", + "tokio-tungstenite 0.18.0", + "tokio-util", + "tower-service", + "tracing", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -8843,15 +8283,6 @@ dependencies = [ "windows-metadata", ] -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - [[package]] name = "which" version = "4.4.0" @@ -9369,7 +8800,7 @@ dependencies = [ "pbkdf2 0.11.0", "sha1", "time 0.3.17", - "zstd 0.11.2+zstd.1.5.2", + "zstd", ] [[package]] @@ -9378,16 +8809,7 @@ version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", -] - -[[package]] -name = "zstd" -version = "0.12.3+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806" -dependencies = [ - "zstd-safe 6.0.4+zstd.1.5.4", + "zstd-safe", ] [[package]] @@ -9400,16 +8822,6 @@ dependencies = [ "zstd-sys", ] -[[package]] -name = "zstd-safe" -version = "6.0.4+zstd.1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7afb4b54b8910cf5447638cb54bf4e8a65cbedd783af98b98c62ffe91f185543" -dependencies = [ - "libc", - "zstd-sys", -] - [[package]] name = "zstd-sys" version = "2.0.7+zstd.1.5.4" diff --git a/bootstrap-languages/perspective-language/rollup.config.hc-dna.js b/bootstrap-languages/perspective-language/rollup.config.hc-dna.js new file mode 100644 index 000000000..bb9e6f44a --- /dev/null +++ b/bootstrap-languages/perspective-language/rollup.config.hc-dna.js @@ -0,0 +1,70 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; +import { string } from "rollup-plugin-string"; +import json from "@rollup/plugin-json"; +import dna from "@perspect3vism/rollup-plugin-dna"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: "dna.js", + external: [], + output: { + sourcemap: true, + format: "esm", + name: "PerspectiveLanguage", + file: "build/dna.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + // copy({ + // assets: ['package.unbundled.json'] + // }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + json(), + dna(), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/tests/js/bootstrapSeed.json b/tests/js/bootstrapSeed.json index cadd213f1..b84083066 100644 --- a/tests/js/bootstrapSeed.json +++ b/tests/js/bootstrapSeed.json @@ -1 +1 @@ -{"trustedAgents":["did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n","did:key:zQ3shnLWcp4B1yBdEqS3BFFLdTbH8aFg4cLASaM9EQfTpk9E7"],"knownLinkLanguages":["QmVwxN9tL6TtSjJKVHTt25acxWRMud9DcP9ff4mpZ1VmKW"],"directMessageLanguage":"QmeHE28cVfSBkSrgwauTpmrb3jhchammCv658oQrP41FT9","agentLanguage":"QmVYQxroapbRebjjbZnjKSTQBsqvk5sEBCcyiEKyBRXKLo","perspectiveLanguage":"QmUTkvPcyaUGntqfzi3iR1xomADm5yYC2j8hcPdhMHpTem","neighbourhoodLanguage":"QmdqhW6XkuVrFZX2y685m2yPbMuhNy5ozCZtWijEaUvHXT","languageLanguageBundle":"'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar path = require('path');\nvar fs = require('fs');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar path__default = /*#__PURE__*/_interopDefaultLegacy(path);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\n\nvar __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LangAdapter_storagePath;\nclass LangAdapter {\n constructor(context) {\n _LangAdapter_storagePath.set(this, void 0);\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet$2(this, _LangAdapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet$2(this, _LangAdapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async getLanguageSource(address) {\n const bundlePath = path__default[\"default\"].join(__classPrivateFieldGet$2(this, _LangAdapter_storagePath, \"f\"), `bundle-${address}.js`);\n if (fs__default[\"default\"].existsSync(bundlePath)) {\n const metaFile = fs__default[\"default\"].readFileSync(bundlePath).toString();\n return metaFile;\n }\n }\n}\n_LangAdapter_storagePath = new WeakMap();\n\nvar __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PutAdapter_agent, _PutAdapter_IPFS, _PutAdapter_storagePath;\nclass PutAdapter {\n constructor(context) {\n _PutAdapter_agent.set(this, void 0);\n _PutAdapter_IPFS.set(this, void 0);\n _PutAdapter_storagePath.set(this, void 0);\n __classPrivateFieldSet$1(this, _PutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet$1(this, _PutAdapter_IPFS, context.IPFS, \"f\");\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet$1(this, _PutAdapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet$1(this, _PutAdapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet$1(this, _PutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet$1(this, _PutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n const metaPath = path__default[\"default\"].join(__classPrivateFieldGet$1(this, _PutAdapter_storagePath, \"f\"), `meta-${hash}.json`);\n const bundlePath = path__default[\"default\"].join(__classPrivateFieldGet$1(this, _PutAdapter_storagePath, \"f\"), `bundle-${hash}.js`);\n console.log(\"Writing meta & bundle path: \", metaPath, bundlePath);\n fs__default[\"default\"].writeFileSync(metaPath, JSON.stringify(expression));\n fs__default[\"default\"].writeFileSync(bundlePath, language.bundle.toString());\n return hash;\n }\n}\n_PutAdapter_agent = new WeakMap(), _PutAdapter_IPFS = new WeakMap(), _PutAdapter_storagePath = new WeakMap();\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Adapter_storagePath;\nclass Adapter {\n constructor(context) {\n _Adapter_storagePath.set(this, void 0);\n this.putAdapter = new PutAdapter(context);\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet(this, _Adapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet(this, _Adapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async get(address) {\n const metaPath = path__default[\"default\"].join(__classPrivateFieldGet(this, _Adapter_storagePath, \"f\"), `meta-${address}.json`);\n if (fs__default[\"default\"].existsSync(metaPath)) {\n const metaFile = JSON.parse(fs__default[\"default\"].readFileSync(metaPath).toString());\n console.log(\"Found meta file info\", metaFile);\n return metaFile;\n }\n else {\n return null;\n }\n }\n}\n_Adapter_storagePath = new WeakMap();\n\nconst name = \"languages\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n"} \ No newline at end of file +{"trustedAgents":["did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n"],"knownLinkLanguages":["QmzSYwdkoKCD3dyjutRraNCqCMEfGQ5SQnpSC7At631eJCLEhkh"],"directMessageLanguage":"QmzSYwdeycwPtNCnx7KfStTWQqu5qpZg9iCGopBEtRBAZjvg6uH","agentLanguage":"QmzSYwdpgYS2CHb6Nkjqn7xKRbsouUXn7535QSn41dgsjPJiYom","perspectiveLanguage":"QmzSYwdmkrLXFHC4wjDN6yq5cz3AGCRDT4Ltfc6pZ4bjqLgb4HJ","neighbourhoodLanguage":"QmzSYwdcbZGG6838gWcLGgaFmnZkX7MkCJ1z6WopggSc9UEKbUy","languageLanguageBundle":""} \ No newline at end of file diff --git a/tests/js/publishBootstrapSeed.json b/tests/js/publishBootstrapSeed.json index 682c76026..44fa4b0ea 100644 --- a/tests/js/publishBootstrapSeed.json +++ b/tests/js/publishBootstrapSeed.json @@ -1 +1 @@ -{"trustedAgents":[],"knownLinkLanguages":[],"directMessageLanguage":"","agentLanguage":"","perspectiveLanguage":"","neighbourhoodLanguage":"","languageLanguageBundle":"'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar path = require('path');\nvar fs = require('fs');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar path__default = /*#__PURE__*/_interopDefaultLegacy(path);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\n\nvar __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LangAdapter_storagePath;\nclass LangAdapter {\n constructor(context) {\n _LangAdapter_storagePath.set(this, void 0);\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet$2(this, _LangAdapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet$2(this, _LangAdapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async getLanguageSource(address) {\n const bundlePath = path__default[\"default\"].join(__classPrivateFieldGet$2(this, _LangAdapter_storagePath, \"f\"), `bundle-${address}.js`);\n if (fs__default[\"default\"].existsSync(bundlePath)) {\n const metaFile = fs__default[\"default\"].readFileSync(bundlePath).toString();\n return metaFile;\n }\n }\n}\n_LangAdapter_storagePath = new WeakMap();\n\nvar __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PutAdapter_agent, _PutAdapter_IPFS, _PutAdapter_storagePath;\nclass PutAdapter {\n constructor(context) {\n _PutAdapter_agent.set(this, void 0);\n _PutAdapter_IPFS.set(this, void 0);\n _PutAdapter_storagePath.set(this, void 0);\n __classPrivateFieldSet$1(this, _PutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet$1(this, _PutAdapter_IPFS, context.IPFS, \"f\");\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet$1(this, _PutAdapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet$1(this, _PutAdapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet$1(this, _PutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet$1(this, _PutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n const metaPath = path__default[\"default\"].join(__classPrivateFieldGet$1(this, _PutAdapter_storagePath, \"f\"), `meta-${hash}.json`);\n const bundlePath = path__default[\"default\"].join(__classPrivateFieldGet$1(this, _PutAdapter_storagePath, \"f\"), `bundle-${hash}.js`);\n console.log(\"Writing meta & bundle path: \", metaPath, bundlePath);\n fs__default[\"default\"].writeFileSync(metaPath, JSON.stringify(expression));\n fs__default[\"default\"].writeFileSync(bundlePath, language.bundle.toString());\n return hash;\n }\n}\n_PutAdapter_agent = new WeakMap(), _PutAdapter_IPFS = new WeakMap(), _PutAdapter_storagePath = new WeakMap();\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Adapter_storagePath;\nclass Adapter {\n constructor(context) {\n _Adapter_storagePath.set(this, void 0);\n this.putAdapter = new PutAdapter(context);\n if (\"storagePath\" in context.customSettings) {\n __classPrivateFieldSet(this, _Adapter_storagePath, context.customSettings[\"storagePath\"], \"f\");\n }\n else {\n __classPrivateFieldSet(this, _Adapter_storagePath, \"./tst-tmp/languages\", \"f\");\n }\n }\n async get(address) {\n const metaPath = path__default[\"default\"].join(__classPrivateFieldGet(this, _Adapter_storagePath, \"f\"), `meta-${address}.json`);\n if (fs__default[\"default\"].existsSync(metaPath)) {\n const metaFile = JSON.parse(fs__default[\"default\"].readFileSync(metaPath).toString());\n console.log(\"Found meta file info\", metaFile);\n return metaFile;\n }\n else {\n return null;\n }\n }\n}\n_Adapter_storagePath = new WeakMap();\n\nconst name = \"languages\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n"} \ No newline at end of file +{"trustedAgents":[],"knownLinkLanguages":[],"directMessageLanguage":"","agentLanguage":"","perspectiveLanguage":"","neighbourhoodLanguage":"","languageLanguageBundle":""} \ No newline at end of file From 223ef09a34852cd8f0419b1feff1705695cccb93 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 2 May 2023 14:23:07 +0100 Subject: [PATCH 233/722] update test-language to be compatible deno bundle --- tests/js/test-language/index.ts | 2 +- tests/js/test-language/package.json | 18 +- tests/js/test-language/rollup.config.js | 60 - tests/js/test-language/yarn.lock | 3957 +---------------------- 4 files changed, 9 insertions(+), 4028 deletions(-) delete mode 100644 tests/js/test-language/rollup.config.js diff --git a/tests/js/test-language/index.ts b/tests/js/test-language/index.ts index e0c77ae12..3501e0326 100644 --- a/tests/js/test-language/index.ts +++ b/tests/js/test-language/index.ts @@ -1,4 +1,4 @@ -import type { Address, Interaction, Expression, Language, LanguageContext, PublicSharing } from "@perspect3vism/ad4m"; +import type { Address, Interaction, Expression, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; export default function create(context: LanguageContext): Language { const expressions = new Array() diff --git a/tests/js/test-language/package.json b/tests/js/test-language/package.json index e660b5d9d..7e1b70336 100644 --- a/tests/js/test-language/package.json +++ b/tests/js/test-language/package.json @@ -5,26 +5,12 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "build": "tsc && rollup -c", - "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + "deno-bundle": "deno bundle index.ts build/bundle.js", + "build": "yarn run deno-bundle" }, "author": "", "license": "ISC", "devDependencies": { - "@perspect3vism/ad4m": "0.1.27", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", - "@tsconfig/svelte": "^1.0.0", - "node-sass": "^7.0.1", - "rollup": "^2.3.4", - "rollup-plugin-postcss": "^3.1.8", - "rollup-plugin-string": "^3.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", - "svelte": "^3.0.0", - "svelte-check": "^1.0.0", - "svelte-preprocess": "^4.0.0", "tslib": "^2.0.0", "typescript": "^4.6.2", "uint8arrays": "^3.0.0" diff --git a/tests/js/test-language/rollup.config.js b/tests/js/test-language/rollup.config.js deleted file mode 100644 index d5e96df38..000000000 --- a/tests/js/test-language/rollup.config.js +++ /dev/null @@ -1,60 +0,0 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from 'svelte-preprocess'; -import postcss from "rollup-plugin-postcss"; -import { string } from 'rollup-plugin-string' - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: 'index.js', - output: { - sourcemap: true, - format: 'cjs', - name: 'TestLanguage', - file: 'build/bundle.js' - }, - plugins: [ - string({ - include: 'build/*.js' - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ['svelte'] - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - ['sass', { - includePaths: [ - './src/ui/theme', - './node_modules' - ] - }] - ] - }), - ], - watch: { - clearScreen: false - } -} \ No newline at end of file diff --git a/tests/js/test-language/yarn.lock b/tests/js/test-language/yarn.lock index 36c7778da..c0ebdcb56 100644 --- a/tests/js/test-language/yarn.lock +++ b/tests/js/test-language/yarn.lock @@ -2,3771 +2,17 @@ # yarn lockfile v1 -"@apollo/client@3.3.20": - version "3.3.20" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.20.tgz#8f0935fa991857e9cf2e73c9bd378ad7ec97caf8" - integrity sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw== - dependencies: - "@graphql-typed-document-node/core" "^3.0.0" - "@types/zen-observable" "^0.8.0" - "@wry/context" "^0.6.0" - "@wry/equality" "^0.5.0" - fast-json-stable-stringify "^2.0.0" - graphql-tag "^2.12.0" - hoist-non-react-statics "^3.3.2" - optimism "^0.16.0" - prop-types "^15.7.2" - symbol-observable "^4.0.0" - ts-invariant "^0.7.0" - tslib "^1.10.0" - zen-observable "^0.8.14" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/helper-validator-identifier@^7.18.6": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - -"@graphql-typed-document-node/core@^3.0.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" - integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== - -"@holochain/client@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.3.2.tgz#0cc5bb7fbb2b9b76f3e02ddb420caf9b3ced5259" - integrity sha512-tBmfgRMcHn/yujiQ4ugolAEbE4WMznIGRt+F8gpPNNAzC263xt+CLa6G3KslcfUc4tKD+XCr5c9z3wkZP/MMzw== - dependencies: - "@msgpack/msgpack" "^2.7.1" - cross-fetch "^3.1.4" - isomorphic-ws "^4.0.1" - -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@msgpack/msgpack@^2.7.1": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" - integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== - -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@perspect3vism/ad4m@0.1.27": - version "0.1.27" - resolved "https://registry.yarnpkg.com/@perspect3vism/ad4m/-/ad4m-0.1.27.tgz#114c1747cb911bdfa8f176ad8dfe29d4dd2d79df" - integrity sha512-aGRpYTYOlqhVdn/QHMbmsDXhU4cWVhX1RyLOAaafhT3xgtaEnAwyOKHF4ow3GUSq3Y31XGsNrkNsrTaBQAAzBg== - dependencies: - "@apollo/client" "3.3.20" - "@holochain/client" "0.3.2" - "@types/jest" "^27.0.1" - class-validator "^0.13.1" - graphql "^15.5.0" - react "^17.0.2" - reflect-metadata "^0.1.13" - type-graphql "^1.1.1" - -"@rollup/plugin-commonjs@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" - integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - -"@rollup/plugin-node-resolve@^8.0.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - -"@rollup/plugin-typescript@^4.0.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-4.1.2.tgz#6f910430276ae3e53a47a12ad65820627e7b6ad9" - integrity sha512-+7UlGat/99e2JbmGNnIauxwEhYLwrL7adO/tSJxUN57xrrS3Ps+ZzYpLCDGPZJ57j+ZJTZLLN89KXW9JMEB+jg== - dependencies: - "@rollup/pluginutils" "^3.0.1" - resolve "^1.14.1" - -"@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@tsconfig/svelte@^1.0.0": - version "1.0.13" - resolved "https://registry.yarnpkg.com/@tsconfig/svelte/-/svelte-1.0.13.tgz#2fa34376627192c0d643ce54964915e2bd3a58e4" - integrity sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA== - -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/glob@^7.1.3": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/jest@^27.0.1": - version "27.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c" - integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== - dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/node@*": - version "18.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.6.tgz#4f91b0b30d405fdf76e0029b11ef5df6a0da4261" - integrity sha512-j3CEDa2vd96K0AXF8Wur7UucACvnjkk8hYyQAHhUNciabZLDl9nfAEVUSwmh245OOZV15bRA3Y590Gi5jUcDJg== - -"@types/node@^14.11.2": - version "14.18.32" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.32.tgz#8074f7106731f1a12ba993fe8bad86ee73905014" - integrity sha512-Y6S38pFr04yb13qqHf8uk1nHE3lXgQ30WZbv1mLliV9pt0NjvqdWttLcrOYLnXbOafknVYRHZGoMSpR9UwfYow== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/pug@^2.0.4": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6" - integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== - -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/sass@^1.16.0": - version "1.43.1" - resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.43.1.tgz#86bb0168e9e881d7dade6eba16c9ed6d25dc2f68" - integrity sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== - dependencies: - "@types/node" "*" - -"@types/semver@^7.3.3": - version "7.3.12" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" - integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== - -"@types/zen-observable@^0.8.0": - version "0.8.3" - resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" - integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== - -"@wry/context@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.1.tgz#c3c29c0ad622adb00f6a53303c4f965ee06ebeb2" - integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== - dependencies: - tslib "^2.3.0" - -"@wry/equality@^0.5.0": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" - integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== - dependencies: - tslib "^2.3.0" - -"@wry/trie@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" - integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== - dependencies: - tslib "^2.3.0" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -acorn@^8.5.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== - -agent-base@6, agent-base@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agentkeepalive@^4.1.3: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -are-we-there-yet@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" - integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array.prototype.reduce@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" - integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.0.0: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -buffer-crc32@^0.2.5: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -builtin-modules@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - -cacache@^15.2.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== - dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400: - version "1.0.30001425" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz#52917791a453eb3265143d2cd08d80629e82c735" - integrity sha512-/pzFv0OmNG6W0ym80P3NtapU0QEiDS3VuYAZMGoLLqiC7f6FJFe1MjpQDREGApeenD9wloeytmVDj+JLXPC6qw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^3.4.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -class-validator@^0.13.1: - version "0.13.2" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.13.2.tgz#64b031e9f3f81a1e1dcd04a5d604734608b24143" - integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== - dependencies: - libphonenumber-js "^1.9.43" - validator "^13.7.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -color-convert@^1.9.0, color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color-support@^1.1.2, color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-with-sourcemaps@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" - integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== - dependencies: - source-map "^0.6.1" - -console-control-strings@^1.0.0, console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-modules-loader-core@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" - integrity sha512-XWOBwgy5nwBn76aA+6ybUGL/3JBnCtBX9Ay9/OWIpzKYWlVHMazvJ+WtHumfi+xxdPF440cWK7JCYtt8xDifew== - dependencies: - icss-replace-symbols "1.1.0" - postcss "6.0.1" - postcss-modules-extract-imports "1.1.0" - postcss-modules-local-by-default "1.2.0" - postcss-modules-scope "1.1.0" - postcss-modules-values "1.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-selector-tokenizer@^0.7.0: - version "0.7.3" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" - integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -debug@4, debug@^4.1.0, debug@^4.3.3: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -depd@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encoding@^0.1.12: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1: - version "1.20.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" - integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.2" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-promise@^3.1.2: - version "3.3.1" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" - integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -eventemitter3@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^3.0.7" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" - integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== - dependencies: - loader-utils "^1.1.0" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@~7.1.1: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globule@^1.0.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.4.tgz#7c11c43056055a75a6e68294453c17f2796170fb" - integrity sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg== - dependencies: - glob "~7.1.1" - lodash "^4.17.21" - minimatch "~3.0.2" - -graceful-fs@^4.1.3, graceful-fs@^4.2.6: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graphql-query-complexity@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" - integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== - dependencies: - lodash.get "^4.4.2" - -graphql-subscriptions@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" - integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== - dependencies: - iterall "^1.3.0" - -graphql-tag@^2.12.0: - version "2.12.6" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" - integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== - dependencies: - tslib "^2.1.0" - -graphql@^15.5.0: - version "15.8.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" - integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== - -http-cache-semantics@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== - dependencies: - import-from "^2.1.0" - -import-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" - integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== - dependencies: - import-from "^3.0.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== - dependencies: - resolve-from "^3.0.0" - -import-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" - integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== - dependencies: - resolve-from "^5.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== - -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-reference@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -iterall@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== - -jest-matcher-utils@^27.0.0: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-worker@^26.2.1: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -js-base64@^2.4.9: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -libphonenumber-js@^1.9.43: - version "1.10.14" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.14.tgz#e29da7f539751f724ac54017a098e3c7ca23de94" - integrity sha512-McGS7GV/WjJ2KjfOGhJU1oJn29RYeo7Q+RpANRbUNMQ9gj5XArpbjurSuyYPTejFwbaUojstQ4XyWCrAzGOUXw== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -loader-utils@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@^0.25.2, magic-string@^0.25.7: - version "0.25.9" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" - integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== - dependencies: - sourcemap-codec "^1.4.8" - -make-fetch-happen@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" - integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== - dependencies: - agentkeepalive "^4.1.3" - cacache "^15.2.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" - minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.2" - promise-retry "^2.0.1" - socks-proxy-agent "^6.0.0" - ssri "^8.0.0" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -meow@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" - integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize "^1.2.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@~3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" - integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-fetch@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" - integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== - dependencies: - minipass "^3.1.0" - minipass-sized "^1.0.3" - minizlib "^2.0.0" - optionalDependencies: - encoding "^0.1.12" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== - dependencies: - yallist "^4.0.0" - -minizlib@^2.0.0, minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^0.5.1, mkdirp@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.0.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multiformats@^9.4.2: - version "9.9.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" - integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== - -nan@^2.13.2: - version "2.17.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== - -negotiator@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-gyp@^8.4.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" - integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^9.1.0" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - -node-sass@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-7.0.3.tgz#7620bcd5559c2bf125c4fbb9087ba75cd2df2ab2" - integrity sha512-8MIlsY/4dXUkJDYht9pIWBhMil3uHmE8b/AdJPjmFn1nBx9X9BASzfzmsCy0uCCb8eqI3SYYzVPDswWqSx7gjw== - dependencies: - async-foreach "^0.1.3" - chalk "^4.1.2" - cross-spawn "^7.0.3" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - lodash "^4.17.15" - meow "^9.0.0" - nan "^2.13.2" - node-gyp "^8.4.1" - npmlog "^5.0.0" - request "^2.88.0" - sass-graph "^4.0.1" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npmlog@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -npmlog@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== - dependencies: - are-we-there-yet "^3.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.3" - set-blocking "^2.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" - integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== - dependencies: - array.prototype.reduce "^1.0.4" - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.1" - -object.values@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optimism@^0.16.0: - version "0.16.1" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.1.tgz#7c8efc1f3179f18307b887e18c15c5b7133f6e7d" - integrity sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg== - dependencies: - "@wry/context" "^0.6.0" - "@wry/trie" "^0.3.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-queue@^6.3.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" - integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== - dependencies: - eventemitter3 "^4.0.4" - p-timeout "^3.2.0" - -p-timeout@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-load-config@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" - integrity sha512-zF9+UIEvtpeqMGxhpeT9XaIevQSrBBCz9fi7SwfkmjVacsSj8DY5eFVgn+wY8I9vvdDDwK5xC8Myq4UkoLFIkA== - dependencies: - postcss "^6.0.1" - -postcss-modules-local-by-default@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA== - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw== - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-values@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA== - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-2.0.0.tgz#473d0d7326651d8408585c2a154115d5cb36cce0" - integrity sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw== - dependencies: - css-modules-loader-core "^1.1.0" - generic-names "^2.0.1" - lodash.camelcase "^4.3.0" - postcss "^7.0.1" - string-hash "^1.1.1" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.2: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" - integrity sha512-VbGX1LQgQbf9l3cZ3qbUuC3hGqIEOGQFHAEHQ/Diaeo0yLgpgK5Rb8J+OcamIfQ9PbAU/fzBjVtQX3AhJHUvZw== - dependencies: - chalk "^1.1.3" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.1: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -pretty-format@^27.0.0, pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -promise.series@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" - integrity sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ== - -prop-types@^15.7.2: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -react-is@^16.13.1, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@^2.0.1: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.1, resolve@^1.16.1, resolve@^1.17.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== - -rimraf@^2.5.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rollup-plugin-postcss@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz#d1bcaf8eb0fcb0936e3684c22dd8628d13a82fd1" - integrity sha512-JHnGfW8quNc6ePxEkZ05HEZ1YiRxDgY9RKEetMfsrwxR2kh/d90OVScTc6b1c2Q17Cs/5TRYL+1uddG21lQe3w== - dependencies: - chalk "^4.0.0" - concat-with-sourcemaps "^1.1.0" - cssnano "^4.1.10" - import-cwd "^3.0.0" - p-queue "^6.3.0" - pify "^5.0.0" - postcss "^7.0.27" - postcss-load-config "^2.1.0" - postcss-modules "^2.0.0" - promise.series "^0.2.0" - resolve "^1.16.1" - rollup-pluginutils "^2.8.2" - safe-identifier "^0.4.1" - style-inject "^0.3.0" - -rollup-plugin-string@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-string/-/rollup-plugin-string-3.0.0.tgz#fed2d6301fae1e59eb610957df757ef13fada3f0" - integrity sha512-vqyzgn9QefAgeKi+Y4A7jETeIAU1zQmS6VotH6bzm/zmUQEnYkpIGRaOBPY41oiWYV4JyBoGAaBjYMYuv+6wVw== - dependencies: - rollup-pluginutils "^2.4.1" - -rollup-plugin-svelte@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz#66362cf0500fb7a848283ebcf19d289a60ef0871" - integrity sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow== - dependencies: - require-relative "^0.8.7" - rollup-pluginutils "^2.8.2" - sourcemap-codec "^1.4.8" - -rollup-plugin-terser@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" - integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== - dependencies: - "@babel/code-frame" "^7.10.4" - jest-worker "^26.2.1" - serialize-javascript "^4.0.0" - terser "^5.0.0" - -rollup-pluginutils@^2.4.1, rollup-pluginutils@^2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@^2.3.4: - version "2.79.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" - integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== - optionalDependencies: - fsevents "~2.3.2" - -sade@^1.7.4: - version "1.8.1" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" - integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - dependencies: - mri "^1.1.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-identifier@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" - integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sander@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" - integrity sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA== - dependencies: - es6-promise "^3.1.2" - graceful-fs "^4.1.3" - mkdirp "^0.5.1" - rimraf "^2.5.2" - -sass-graph@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-4.0.1.tgz#2ff8ca477224d694055bf4093f414cf6cfad1d2e" - integrity sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA== - dependencies: - glob "^7.0.0" - lodash "^4.17.11" - scss-tokenizer "^0.4.3" - yargs "^17.2.1" - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scss-tokenizer@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz#1058400ee7d814d71049c29923d2b25e61dc026c" - integrity sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw== - dependencies: - js-base64 "^2.4.9" - source-map "^0.7.3" - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks-proxy-agent@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" - integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - -socks@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - -sorcery@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" - integrity sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g== - dependencies: - buffer-crc32 "^0.2.5" - minimist "^1.2.0" - sander "^0.5.0" - sourcemap-codec "^1.3.0" - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^8.0.0, ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== - dependencies: - readable-stream "^2.0.1" - -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -style-inject@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" - integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svelte-check@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-1.6.0.tgz#fcc7b28252a89be0e4cd369c58bbf8e76e81295f" - integrity sha512-nQTlbFJWhwoeLY5rkhgbjzGQSwk5F1pRdEXait0EFaQSrE/iJF+PIjrQlk0BjL/ogk9HaR9ZI0DQSYrl7jl3IQ== - dependencies: - chalk "^4.0.0" - chokidar "^3.4.1" - glob "^7.1.6" - import-fresh "^3.2.1" - minimist "^1.2.5" - sade "^1.7.4" - source-map "^0.7.3" - svelte-preprocess "^4.0.0" - typescript "*" - -svelte-preprocess@^4.0.0: - version "4.10.7" - resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz#3626de472f51ffe20c9bc71eff5a3da66797c362" - integrity sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw== - dependencies: - "@types/pug" "^2.0.4" - "@types/sass" "^1.16.0" - detect-indent "^6.0.0" - magic-string "^0.25.7" - sorcery "^0.10.0" - strip-indent "^3.0.0" - -svelte@^3.0.0: - version "3.52.0" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.52.0.tgz#08259eff20904c63882b66a5d409a55e8c6743b8" - integrity sha512-FxcnEUOAVfr10vDU5dVgJN19IvqeHQCS1zfe8vayTfis9A2t5Fhx+JDe5uv/C3j//bB1umpLJ6quhgs9xyUbCQ== - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-observable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" - integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== - -tar@^6.0.2, tar@^6.1.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -terser@^5.0.0: - version "5.15.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" - integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - dependencies: - glob "^7.1.2" - -ts-invariant@^0.7.0: - version "0.7.5" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.7.5.tgz#f9658719f9a7737b117d09820d952aacf6263f9c" - integrity sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg== - dependencies: - tslib "^2.1.0" - -tslib@^1.10.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +multiformats@^9.4.2: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.0: +tslib@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-graphql@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" - integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== - dependencies: - "@types/glob" "^7.1.3" - "@types/node" "^14.11.2" - "@types/semver" "^7.3.3" - glob "^7.1.6" - graphql-query-complexity "^0.7.0" - graphql-subscriptions "^1.1.0" - semver "^7.3.2" - tslib "^2.0.1" - -typescript@*, typescript@^4.6.2: +typescript@^4.6.2: version "4.8.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== @@ -3777,194 +23,3 @@ uint8arrays@^3.0.0: integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== dependencies: multiformats "^9.4.2" - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== - -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validator@^13.7.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.2, wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.0.0: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.2.1: - version "17.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" - integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" - -zen-observable@^0.8.14: - version "0.8.15" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== From 5322a8ca8282cd7901f75070d0ab67ece3333e12 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 2 May 2023 18:07:06 +0100 Subject: [PATCH 234/722] cleanup rust-executor -> graphql function calling & add missing async/awaits --- executor/src/core/PerspectivesController.ts | 18 +- executor/src/core/PerspectivismCore.ts | 2 +- .../src/core/graphQL-interface/GraphQL.ts | 166 +++++++++--------- rust-executor/src/graphql/graphql_types.rs | 2 +- .../src/graphql/mutation_resolvers.rs | 61 +------ rust-executor/src/graphql/query_resolvers.rs | 81 +++++---- rust-executor/src/pubsub.rs | 27 ++- tests/js/utils/utils.ts | 20 ++- 8 files changed, 179 insertions(+), 198 deletions(-) diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index 8e604393d..e0d4bd6ca 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -131,7 +131,7 @@ export default class PerspectivesController { return new Ad4mPerspective(await perspective.getLinks({} as LinkQuery)); } - add(name: string, sharedUrl?: string, neighbourhood?: Neighbourhood, createdFromJoin?: boolean, state?: PerspectiveState): PerspectiveHandle { + async add(name: string, sharedUrl?: string, neighbourhood?: Neighbourhood, createdFromJoin?: boolean, state?: PerspectiveState): Promise { let perspective = { uuid: uuidv4(), name, @@ -142,19 +142,19 @@ export default class PerspectivesController { this.#perspectiveHandles.set(perspective.uuid, perspective) this.#perspectiveInstances.set(perspective.uuid, new Perspective(perspective, this.#context, neighbourhood, createdFromJoin, state)) this.save() - PUBSUB.publish(PubSub.PERSPECTIVE_ADDED_TOPIC, { perspective }) + await PUBSUB.publish(PubSub.PERSPECTIVE_ADDED_TOPIC, perspective) return perspective } - replace(perspectiveHandle: PerspectiveHandle, neighbourhood: Neighbourhood, createdFromJoin: boolean, state: PerspectiveState) { - PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: perspectiveHandle }) + async replace(perspectiveHandle: PerspectiveHandle, neighbourhood: Neighbourhood, createdFromJoin: boolean, state: PerspectiveState) { + await PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: perspectiveHandle }) this.#perspectiveHandles.set(perspectiveHandle.uuid, perspectiveHandle); this.#perspectiveInstances.get(perspectiveHandle.uuid)?.clearPolling(); this.#perspectiveInstances.set(perspectiveHandle.uuid, new Perspective(perspectiveHandle, this.#context, neighbourhood, createdFromJoin, state)); this.save() } - remove(uuid: string) { + async remove(uuid: string) { try { let perspective = this.#perspectiveInstances.get(uuid); perspective?.clearPolling(); @@ -164,14 +164,14 @@ export default class PerspectivesController { this.#perspectiveHandles.delete(uuid) this.#perspectiveInstances.delete(uuid) this.save() - PUBSUB.publish(PubSub.PERSPECTIVE_REMOVED_TOPIC, { uuid }) + await PUBSUB.publish(PubSub.PERSPECTIVE_REMOVED_TOPIC, uuid) } catch (e) { console.error("Error removing perspective:", e); throw new Error(`Error removing perspective: ${e}`); } } - update(uuid: string, name: string) { + async update(uuid: string, name: string) { let perspective = this.perspective(uuid); perspective.name = name; @@ -185,13 +185,13 @@ export default class PerspectivesController { instance.updateFromId(perspective as PerspectiveHandle) } - PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: { + await PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { uuid: perspective.uuid, name: perspective.name, state: perspective.state, sharedUrl: perspective.sharedUrl, neighbourhood: perspective.neighbourhood - } as PerspectiveHandle }); + }); return perspective } diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index 04a23ca84..de995bfa2 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -279,7 +279,7 @@ export default class PerspectivismCore { perspectiveID.sharedUrl = neighbourhoodUrl perspectiveID.neighbourhood = neighbourhood; perspectiveID.state = PerspectiveState.Synced; - this.#perspectivesController!.replace(perspectiveID, neighbourhood, false, PerspectiveState.Synced) + await this.#perspectivesController!.replace(perspectiveID, neighbourhood, false, PerspectiveState.Synced) return neighbourhoodUrl } diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 42c1a98d9..123b029d6 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -42,12 +42,12 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return { Query: { //@ts-ignore - agent: (parent, args, context, info) => { + agent: (context) => { checkCapability(context.capabilities, Auth.AGENT_READ_CAPABILITY) return core.agentService.agent }, //@ts-ignore - agentByDID: async (parent, args, context, info) => { + agentByDID: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_READ_CAPABILITY) const { did } = args; if (did != core.agentService.did) { @@ -66,23 +66,23 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { } }, //@ts-ignore - agentStatus: (parent, args, context, info) => { + agentStatus: (context) => { checkCapability(context.capabilities, Auth.AGENT_READ_CAPABILITY) return core.agentService.dump() }, //@ts-ignore - agentIsLocked: (parent, args, context, info) => { + agentIsLocked: () => { return !core.agentService.isUnlocked }, //@ts-ignore - agentGetApps: async (parent, args, context, info) => { + agentGetApps: async (context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) let apps = await core.agentService.getApps() return apps; }, //@ts-ignore - expression: async (parent, args, context, info) => { + expression: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_READ_CAPABILITY) const url = args.url.toString(); const ref = parseExprUrl(url) @@ -95,7 +95,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return expression }, //@ts-ignore - expressionMany: async (parent, args, context, info) => { + expressionMany: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_READ_CAPABILITY) const { urls } = args; const expressionPromises = []; @@ -114,21 +114,21 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }) }, //@ts-ignore - expressionRaw: async (parent, args, context, info) => { + expressionRaw: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_READ_CAPABILITY) const ref = parseExprUrl(args.url.toString()) const expression = await core.languageController.getExpression(ref) as any return JSON.stringify(expression) }, //@ts-ignore - expressionInteractions: async (parent, args, context, info) => { + expressionInteractions: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_READ_CAPABILITY) const { url } = args const result = await core.languageController.expressionInteractions(url) return result }, //@ts-ignore - language: async (parent, args, context, info) => { + language: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_READ_CAPABILITY) const { address } = args const lang = await core.languageController.languageByRef({address, name: ""} as LanguageRef) as any @@ -136,7 +136,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return lang }, //@ts-ignore - languageMeta: async (parent, args, context, info) => { + languageMeta: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_READ_CAPABILITY) const { address } = args const languageExpression = await core.languageController.getLanguageExpression(address) @@ -158,7 +158,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - languageSource: async (parent, args, context, info) => { + languageSource: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_READ_CAPABILITY) const { address } = args const languageSource = await core.languageController.getLanguageSource(address) @@ -169,7 +169,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - languages: (parent, args, context, info) => { + languages: (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_READ_CAPABILITY) let filter if(args.filter && args.filter !== '') filter = args.filter @@ -177,7 +177,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodOtherAgents: async (parent, args, context, info) => { + neighbourhoodOtherAgents: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -187,7 +187,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodHasTelepresenceAdapter: async (parent, args, context, info) => { + neighbourhoodHasTelepresenceAdapter: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_READ_CAPABILITY) const { perspectiveUUID } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -198,7 +198,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodOnlineAgents: async (parent, args, context, info) => { + neighbourhoodOnlineAgents: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_READ_CAPABILITY) const { perspectiveUUID } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -210,13 +210,13 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - perspective: (parent, args, context, info) => { + perspective: (args, context) => { const id = args.uuid checkCapability(context.capabilities, Auth.perspectiveQueryCapability([id])) return core.perspectivesController.perspectiveID(id) }, //@ts-ignore - perspectiveQueryLinks: async (parent, args, context, info) => { + perspectiveQueryLinks: async (args, context) => { const { uuid, query } = args checkCapability(context.capabilities, Auth.perspectiveQueryCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) @@ -224,59 +224,59 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return await perspective.getLinks(query) }, //@ts-ignore - perspectiveQueryProlog: async (parent, args, context, info) => { + perspectiveQueryProlog: async (args, context) => { const { uuid, query } = args checkCapability(context.capabilities, Auth.perspectiveQueryCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return JSON.stringify(await perspective.prologQuery(query)) }, //@ts-ignore - perspectiveSnapshot: async (parent, args, context, info) => { + perspectiveSnapshot: async (args, context) => { const id = args.uuid checkCapability(context.capabilities, Auth.perspectiveQueryCapability([id])) return await core.perspectivesController.perspectiveSnapshot(id) }, //@ts-ignore - perspectives: (parent, args, context, info) => { + perspectives: (context) => { checkCapability(context.capabilities, Auth.perspectiveQueryCapability(["*"])) return core.perspectivesController.allPerspectiveHandles() }, //@ts-ignore - agentGetEntanglementProofs: (parent, args, context, info) => { + agentGetEntanglementProofs: () => { return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore - getTrustedAgents: (parent, args, context, info) => { + getTrustedAgents: (context) => { checkCapability(context.capabilities, Auth.RUNTIME_TRUSTED_AGENTS_READ_CAPABILITY) return core.runtimeService.getTrustedAgents(); }, //@ts-ignore - runtimeKnownLinkLanguageTemplates: (parent, args, context, info) => { + runtimeKnownLinkLanguageTemplates: (context) => { checkCapability(context.capabilities, Auth.RUNTIME_KNOWN_LINK_LANGUAGES_READ_CAPABILITY) return core.runtimeService.knowLinkLanguageTemplates(); }, //@ts-ignore - runtimeFriends: (parent, args, context, info) => { + runtimeFriends: (context) => { checkCapability(context.capabilities, Auth.RUNTIME_FRIENDS_READ_CAPABILITY) return core.runtimeService.friends(); }, //@ts-ignore - runtimeHcAgentInfos: async (parent, args, context, info) => { + runtimeHcAgentInfos: async (context) => { checkCapability(context.capabilities, Auth.RUNTIME_HC_AGENT_INFO_READ_CAPABILITY) return JSON.stringify(await core.holochainRequestAgentInfos()) }, //@ts-ignore - runtimeVerifyStringSignedByDid: async (parent, args, context, info) => { + runtimeVerifyStringSignedByDid: async (args, context) => { const { did, didSigningKeyId, data, signedData } = args; return await core.signatureService.verifyStringSignedByDid(did, didSigningKeyId, data, signedData) }, //@ts-ignore - runtimeFriendStatus: async (parent, args, context, info) => { + runtimeFriendStatus: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_FRIEND_STATUS_READ_CAPABILITY) const { did } = args if(!core.runtimeService.friends().includes(did)) throw `${did} is not a friend` @@ -288,20 +288,20 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - runtimeMessageInbox: async (parent, args, context, info) => { + runtimeMessageInbox: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_MESSAGES_READ_CAPABILITY) const { filter } = args const dmLang = await core.myDirectMessageLanguage() return await dmLang.directMessageAdapter!.inbox(filter) }, //@ts-ignore - runtimeMessageOutbox: (parent, args, context, info) => { + runtimeMessageOutbox: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_MESSAGES_READ_CAPABILITY) const { filter } = args return core.runtimeService.getMessagesOutbox(filter) }, //@ts-ignore - runtimeInfo: (parent, args) => { + runtimeInfo: () => { const isInitialized = core.agentService.isInitialized(); const isUnlocked = core.agentService.isUnlocked(); return { @@ -313,24 +313,24 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, Mutation: { //@ts-ignore - agentAddEntanglementProofs: (parent, args, context, info) => { + agentAddEntanglementProofs: (args, context) => { const { proofs } = args; core.entanglementProofController.addEntanglementProofs(proofs); return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore - agentDeleteEntanglementProofs: (parent, args, context, info) => { + agentDeleteEntanglementProofs: (args, context) => { const { proofs } = args; core.entanglementProofController.deleteEntanglementProofs(proofs); return core.entanglementProofController.getEntanglementProofs(); }, //@ts-ignore - agentEntanglementProofPreFlight: (parent, args, context, info) => { + agentEntanglementProofPreFlight: (args, context) => { const { deviceKey, deviceKeyType } = args; return core.entanglementProofController.signDeviceKey(deviceKey, deviceKeyType); }, //@ts-ignore - agentRemoveApp: async (parent, args, context, info) => { + agentRemoveApp: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { requestId } = args; await core.agentService.removeApp(requestId) @@ -338,42 +338,42 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - agentRevokeToken: async (parent, args, context, info) => { + agentRevokeToken: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { requestId } = args; await core.agentService.revokeAppToken(requestId) return await core.agentService.getApps(); }, //@ts-ignore - addTrustedAgents: (parent, args, context, info) => { + addTrustedAgents: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_TRUSTED_AGENTS_CREATE_CAPABILITY) const { agents } = args; core.runtimeService.addTrustedAgents(agents); return core.runtimeService.getTrustedAgents(); }, //@ts-ignore - deleteTrustedAgents: (parent, args, context, info) => { + deleteTrustedAgents: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_TRUSTED_AGENTS_DELETE_CAPABILITY) const { agents } = args; core.runtimeService.deleteTrustedAgents(agents); return core.runtimeService.getTrustedAgents(); }, //@ts-ignore - runtimeAddKnownLinkLanguageTemplates: (parent, args, context, info) => { + runtimeAddKnownLinkLanguageTemplates: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_KNOWN_LINK_LANGUAGES_CREATE_CAPABILITY) const { addresses } = args; core.runtimeService.addKnowLinkLanguageTemplates(addresses); return core.runtimeService.knowLinkLanguageTemplates(); }, //@ts-ignore - runtimeRemoveKnownLinkLanguageTemplates: (parent, args, context, info) => { + runtimeRemoveKnownLinkLanguageTemplates: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_KNOWN_LINK_LANGUAGES_DELETE_CAPABILITY) const { addresses } = args; core.runtimeService.removeKnownLinkLanguageTemplates(addresses); return core.runtimeService.knowLinkLanguageTemplates(); }, //@ts-ignore - runtimeAddFriends: async (parent, args, context, info) => { + runtimeAddFriends: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_FRIENDS_CREATE_CAPABILITY) const { dids } = args; core.runtimeService.addFriends(dids); @@ -382,14 +382,14 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return core.runtimeService.friends(); }, //@ts-ignore - runtimeRemoveFriends: (parent, args, context, info) => { + runtimeRemoveFriends: (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_FRIENDS_DELETE_CAPABILITY) const { dids } = args; core.runtimeService.removeFriends(dids); return core.runtimeService.friends(); }, //@ts-ignore - agentGenerate: async (parent, args, context, info) => { + agentGenerate: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_CREATE_CAPABILITY) await core.agentService.createNewKeys() await core.agentService.save(args.passphrase) @@ -418,13 +418,13 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return agent; }, //@ts-ignore - agentLock: async (parent, args, context, info) => { + agentLock: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_LOCK_CAPABILITY) await core.agentService.lock(args.passphrase) return core.agentService.dump() }, //@ts-ignore - agentUnlock: async (parent, args, context, info) => { + agentUnlock: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_UNLOCK_CAPABILITY) try { await core.agentService.unlock(args.passphrase) @@ -470,7 +470,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return dump }, //@ts-ignore - agentUpdateDirectMessageLanguage: async (parent, args, context, info) => { + agentUpdateDirectMessageLanguage: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_UPDATE_CAPABILITY) const { directMessageLanguage } = args; let currentAgent = core.agentService.agent; @@ -482,7 +482,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return currentAgent; }, //@ts-ignore - agentUpdatePublicPerspective: async (parent, args, context, info) => { + agentUpdatePublicPerspective: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_UPDATE_CAPABILITY) const {perspective} = args; let currentAgent = core.agentService.agent; @@ -494,34 +494,34 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return currentAgent; }, //@ts-ignore - agentRequestCapability: async (parent, args, context, info) => { + agentRequestCapability: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { authInfo } = args; let token = await core.agentService.requestCapability(authInfo); return token; }, //@ts-ignore - agentPermitCapability: (parent, args, context, info) => { + agentPermitCapability: (args, context) => { checkCapability(context.capabilities, Auth.AGENT_PERMIT_CAPABILITY) const { auth } = args; return core.agentService.permitCapability(auth, context.capabilities); }, //@ts-ignore - agentGenerateJwt: async (parent, args, context, info) => { + agentGenerateJwt: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { requestId, rand } = args; let jwt = await core.agentService.generateJwt(requestId, rand) return jwt; }, //@ts-ignore - agentSignMessage: async (parent, args, context, info) => { + agentSignMessage: async (args, context) => { checkCapability(context.capabilities, Auth.AGENT_SIGN_CAPABILITY) const { message } = args; let sig = await core.agentService.signMessage(message) return sig }, //@ts-ignore - expressionCreate: async (parent, args, context, info) => { + expressionCreate: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_CREATE_CAPABILITY) const { languageAddress, content } = args const langref = { address: languageAddress } as LanguageRef @@ -529,7 +529,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return exprRef2String(expref) }, //@ts-ignore - expressionInteract: async (parent, args, context, info) => { + expressionInteract: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_UPDATE_CAPABILITY) let { url, interactionCall } = args interactionCall = new InteractionCall(interactionCall.name, JSON.parse(interactionCall.parametersStringified)) @@ -537,13 +537,13 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return result }, //@ts-ignore - languageApplyTemplateAndPublish: async (parent, args, context, info) => { + languageApplyTemplateAndPublish: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_CREATE_CAPABILITY) const { sourceLanguageHash, templateData } = args; return await core.languageApplyTemplateAndPublish(sourceLanguageHash, JSON.parse(templateData)); }, //@ts-ignore - languagePublish: async (parent, args, context, info) => { + languagePublish: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_CREATE_CAPABILITY) const { languagePath, languageMeta } = args; const expression = await core.languagePublish(languagePath, languageMeta); @@ -561,7 +561,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return meta }, //@ts-ignore - languageRemove: async (parent, args, context, info) => { + languageRemove: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_DELETE_CAPABILITY) const { address } = args try { @@ -573,14 +573,14 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return true }, //@ts-ignore - languageWriteSettings: async (parent, args, context, info) => { + languageWriteSettings: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_UPDATE_CAPABILITY) const { languageAddress, settings } = args await core.languageController.putSettings(languageAddress, JSON.parse(settings)) return true }, //@ts-ignore - neighbourhoodJoinFromUrl: async (parent, args, context, info) => { + neighbourhoodJoinFromUrl: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_READ_CAPABILITY) const { url } = args; try{ @@ -592,7 +592,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodPublishFromPerspective: async (parent, args, context, info) => { + neighbourhoodPublishFromPerspective: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_CREATE_CAPABILITY) const { linkLanguage, meta, perspectiveUUID } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -608,7 +608,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSetOnlineStatus: async (parent, args, context, info) => { + neighbourhoodSetOnlineStatus: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, status } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -622,7 +622,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSetOnlineStatusU: async (parent, args, context, info) => { + neighbourhoodSetOnlineStatusU: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, status } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -636,7 +636,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSendSignal: async (parent, args, context, info) => { + neighbourhoodSendSignal: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, remoteAgentDid, payload } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -650,7 +650,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSendSignalU: async (parent, args, context, info) => { + neighbourhoodSendSignalU: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, remoteAgentDid, payload } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -664,7 +664,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSendBroadcast: async (parent, args, context, info) => { + neighbourhoodSendBroadcast: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, payload } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -678,7 +678,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - neighbourhoodSendBroadcastU: async (parent, args, context, info) => { + neighbourhoodSendBroadcastU: async (args, context) => { checkCapability(context.capabilities, Auth.NEIGHBOURHOOD_UPDATE_CAPABILITY) const { perspectiveUUID, payload } = args const perspective = core.perspectivesController.perspective(perspectiveUUID) @@ -692,41 +692,41 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - perspectiveAdd: (parent, args, context, info) => { + perspectiveAdd: async (args, context) => { checkCapability(context.capabilities, Auth.PERSPECTIVE_CREATE_CAPABILITY) const { name } = args; - return core.perspectivesController.add(name) + return await core.perspectivesController.add(name) }, //@ts-ignore - perspectiveAddLink: async (parent, args, context, info) => { + perspectiveAddLink: async (args, context) => { const { uuid, link } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.addLink(link) }, //@ts-ignore - perspectiveAddLinks: async (parent, args, context, info) => { + perspectiveAddLinks: async (args, context) => { const { uuid, links } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.addLinks(links) }, //@ts-ignore - perspectiveAddLinkExpression: async (parent, args, context, info) => { + perspectiveAddLinkExpression: async (args, context) => { const { uuid, link } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.addLink(link) }, //@ts-ignore - perspectiveRemove: (parent, args, context, info) => { + perspectiveRemove: async (args, context) => { const { uuid } = args checkCapability(context.capabilities, Auth.perspectiveDeleteCapability([uuid])) - core.perspectivesController.remove(uuid) + await core.perspectivesController.remove(uuid) return true }, //@ts-ignore - perspectiveRemoveLink: async (parent, args, context, info) => { + perspectiveRemoveLink: async (args, context) => { // console.log("GQL| removeLink:", args) const { uuid, link } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) @@ -735,47 +735,47 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return true }, //@ts-ignore - perspectiveRemoveLinks: async (parent, args, context, info) => { + perspectiveRemoveLinks: async (args, context) => { const { uuid, links } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.removeLinks(links) }, //@ts-ignore - perspectiveLinkMutations: async (parent, args, context, info) => { + perspectiveLinkMutations: async (args, context) => { const { uuid, mutations } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.linkMutations(mutations) }, //@ts-ignore - perspectiveUpdate: (parent, args, context, info) => { + perspectiveUpdate: async (args, context) => { const { uuid, name } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) - return core.perspectivesController.update(uuid, name); + return await core.perspectivesController.update(uuid, name); }, //@ts-ignore - perspectiveUpdateLink: async (parent, args, context, info) => { + perspectiveUpdateLink: async (args, context) => { const { uuid, oldLink, newLink } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.updateLink(oldLink, newLink) }, //@ts-ignore - runtimeOpenLink: (parent, args) => { + runtimeOpenLink: (args) => { const { url } = args console.log("openLinkExtern:", url) //shell.openExternal(url) return true }, //@ts-ignore - runtimeQuit: (parent, args, context, info) => { + runtimeQuit: (context) => { checkCapability(context.capabilities, Auth.RUNTIME_QUIT_CAPABILITY) process.exit(0) return true }, //@ts-ignore - runtimeHcAddAgentInfos: async (parent, args, context, info) => { + runtimeHcAddAgentInfos: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_HC_AGENT_INFO_CREATE_CAPABILITY) const { agentInfos } = args //@ts-ignore @@ -795,7 +795,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - runtimeSetStatus: async (parent, args, context, info) => { + runtimeSetStatus: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_MY_STATUS_UPDATE_CAPABILITY) const { status } = args const dmLang = await core.myDirectMessageLanguage() @@ -804,7 +804,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore - runtimeFriendSendMessage: async (parent, args, context, info) => { + runtimeFriendSendMessage: async (args, context) => { checkCapability(context.capabilities, Auth.RUNTIME_MESSAGES_CREATE_CAPABILITY) const { did, message } = args if(!core.runtimeService.friends().includes(did)) throw `${did} is not a friend` diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index d742f917b..154d92e49 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -17,7 +17,7 @@ pub struct AgentSignature { pub signature: String, } -#[derive(GraphQLObject, Default, Serialize, Deserialize)] +#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct AgentStatus { pub did: Option, diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 90ca35755..0939eac0b 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -1,6 +1,7 @@ #![allow(non_snake_case)] #![allow(unused_variables)] use juniper::{graphql_object, FieldResult}; +use log::{debug, info}; use crate::js_core::JsCoreHandle; @@ -21,7 +22,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.addTrustedAgents( - null, {{ agents: {:?} }}, {{ capabilities: [{}] }} ) @@ -42,7 +42,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.agentAddEntanglementProofs( - null, {{ proofs: {} }}, {{ capabilities: [{}] }} ) @@ -64,7 +63,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.agentDeleteEntanglementProofs( - null, {{ proofs: {} }}, {{ capabilities: [{}] }} ) @@ -87,7 +85,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.agentEntanglementProofPreFlight( - null, {{ deviceKey: "{}", deviceKeyType: "{}" }}, {{ capabilities: [{}] }} ) @@ -108,7 +105,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentGenerate( - null, {{ passphrase: "{}" }}, {{ capabilities: [{}] }} ) @@ -130,7 +126,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentGenerateJwt( - null, {{ rand: "{}", requestId: "{}" }}, {{ capabilities: [{}] }} ) @@ -151,7 +146,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentLock( - null, {{ passphrase: "{}" }}, {{ capabilities: [{}] }} ) @@ -173,7 +167,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.agentPermitCapability( - null, {{ auth: "{}" }}, {{ capabilities: [{}] }} ) @@ -194,7 +187,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentRemoveApp( - null, {{ requestId: "{}" }}, {{ capabilities: [{}] }} ) @@ -216,7 +208,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentRequestCapability( - null, {{ authInfo: {} }}, {{ capabilities: [{}] }} ) @@ -237,7 +228,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentRevokeToken( - null, {{ requestId: "{}" }}, {{ capabilities: [{}] }} ) @@ -258,7 +248,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentSignMessage( - null, {{ message: "{}" }}, {{ capabilities: [{}] }} ) @@ -279,7 +268,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentUnlock( - null, {{ passphrase: "{}" }}, {{ capabilities: [{}] }} ) @@ -300,7 +288,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentUpdateDirectMessageLanguage( - null, {{ directMessageLanguage: "{}" }}, {{ capabilities: [{}] }} ) @@ -322,7 +309,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.agentUpdatePublicPerspective( - null, {{ perspective: {} }}, {{ capabilities: [{}] }} ) @@ -344,7 +330,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.deleteTrustedAgents( - null, {{ agents: {} }}, {{ capabilities: [{}] }} ) @@ -366,7 +351,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.expressionCreate( - null, {{ content: "{}", languageAddress: "{}" }}, {{ capabilities: [{}] }} ) @@ -389,7 +373,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.expressionInteract( - null, {{ interactionCall: {}, url: "{}" }}, {{ capabilities: [{}] }} ) @@ -411,7 +394,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.languageApplyTemplateAndPublish( - null, {{ sourceLanguageHash: "{}", templateData: "{}" }}, {{ capabilities: [{}] }} ) @@ -434,7 +416,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.languagePublish( - null, {{ languageMeta: {}, languagePath: "{}" }}, {{ capabilities: [{}] }} ) @@ -451,7 +432,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.languageRemove( - null, {{ address: "{}" }}, {{ capabilities: [{}] }} ) @@ -473,7 +453,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.languageWriteSettings( - null, {{ languageAddress: "{}", settings: "{}" }}, {{ capabilities: [{}] }} ) @@ -494,7 +473,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.neighbourhoodJoinFromUrl( - null, {{ url: "{}" }}, {{ capabilities: [{}] }} ) @@ -518,7 +496,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.neighbourhoodPublishFromPerspective( - null, {{ linkLanguage: "{}", meta: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} ) @@ -541,7 +518,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.neighbourhoodSendBroadcast( - null, {{ payload: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} ) @@ -564,7 +540,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.neighbourhoodSendBroadcastU( - null, {{ payload: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} ) @@ -588,7 +563,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.neighbourhoodSendSignal( - null, {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, {{ capabilities: [{}] }} ) @@ -612,7 +586,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.neighbourhoodSendSignalU( - null, {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, {{ capabilities: [{}] }} ) @@ -635,7 +608,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.neighbourhoodSetOnlineStatus( - null, {{ perspectiveUUID: "{}", status: {} }}, {{ capabilities: [{}] }} ) @@ -658,7 +630,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.neighbourhoodSetOnlineStatusU( - null, {{ perspectiveUUID: "{}", status: {} }}, {{ capabilities: [{}] }} ) @@ -675,11 +646,11 @@ impl Mutation { context: &JsCoreHandle, name: String, ) -> FieldResult { + info!("creating perspective {}", name); let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveAdd( - null, + await core.resolvers.Mutation.perspectiveAdd( {{ name: "{}" }}, {{ capabilities: [{}] }} ) @@ -687,6 +658,7 @@ impl Mutation { name, ALL_CAPABILITY ); let result = js.execute(script).await?; + debug!("created perspective w result: {:?}", result); let s: PerspectiveHandle = serde_json::from_str(&result)?; Ok(s) } @@ -702,7 +674,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.perspectiveAddLink( - null, {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -725,7 +696,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.perspectiveAddLinkExpression( - null, {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -748,7 +718,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.perspectiveAddLinks( - null, {{ links: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -771,7 +740,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.perspectiveLinkMutations( - null, {{ mutations: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -792,7 +760,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.perspectivePublishSnapshot( - null, {{ uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -809,7 +776,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.perspectiveRemove( - null, {{ uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -832,7 +798,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.perspectiveRemoveLink( - null, {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -855,7 +820,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.perspectiveRemoveLinks( - null, {{ links: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -877,7 +841,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.perspectiveUpdate( - null, {{ name: "{}", uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -902,7 +865,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.perspectiveUpdateLink( - null, {{ newLink: {}, oldLink: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -924,7 +886,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.runtimeAddFriends( - null, {{ dids: {} }}, {{ capabilities: [{}] }} ) @@ -946,7 +907,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.runtimeAddKnownLinkLanguageTemplates( - null, {{ addresses: {} }}, {{ capabilities: [{}] }} ) @@ -969,7 +929,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.runtimeFriendSendMessage( - null, {{ did: "{}", message: {} }}, {{ capabilities: [{}] }} ) @@ -990,7 +949,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.runtimeHcAddAgentInfos( - null, {{ agentInfos: "{}" }}, {{ capabilities: [{}] }} ) @@ -1007,12 +965,10 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.runtimeOpenLink( - null, - {{ url: "{}" }}, - {{ capabilities: [{}] }} + {{ url: "{}" }} ) )"#, - url, ALL_CAPABILITY + url ); let result = js.execute(script).await?; let s: bool = serde_json::from_str(&result)?; @@ -1024,8 +980,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.runtimeQuit( - null, - null, {{ capabilities: [{}] }} ) )"#, @@ -1046,7 +1000,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.runtimeRemoveFriends( - null, {{ dids: {} }}, {{ capabilities: [{}] }} ) @@ -1068,7 +1021,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( core.resolvers.Mutation.runtimeRemoveKnownLinkLanguageTemplates( - null, {{ addresses: {} }}, {{ capabilities: [{}] }} ) @@ -1090,7 +1042,6 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.runtimeSetStatus( - null, {{ status: {} }}, {{ capabilities: [{}] }} ) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index f8a98d729..b9fb674cf 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -16,7 +16,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.agent(null, {{ capabilities: [{}] }}))", + "JSON.stringify(core.resolvers.Query.agent({{ capabilities: [{}] }}))", ALL_CAPABILITY )) .await?; @@ -36,7 +36,6 @@ impl Query { format!( r#"JSON.stringify( await core.resolvers.Query.agentByDID( - null, {{ did: {} }}, {{ capabilities: [{}] }} ) @@ -54,7 +53,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.agentGetApps(null, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.agentGetApps({{ capabilities: [{}] }}))", ALL_CAPABILITY )) .await?; @@ -68,7 +67,9 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.agentGetEntanglementProofs(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .execute(format!( + "JSON.stringify(core.resolvers.Query.agentGetEntanglementProofs())" + )) .await?; let proofs: Vec = serde_json::from_str(&result)?; return Ok(proofs); @@ -77,7 +78,7 @@ impl Query { async fn agent_is_locked(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); let result = js - .execute("JSON.stringify(core.resolvers.Query.agentIsLocked(null))".to_string()) + .execute("JSON.stringify(core.resolvers.Query.agentIsLocked()))".to_string()) .await?; let is_locked: bool = serde_json::from_str(&result)?; return Ok(is_locked); @@ -87,7 +88,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.agentService.dump(null, {{ capabilities: [{}] }}))", + "JSON.stringify(core.resolvers.Query.agentStatus({{ capabilities: [{}] }}))", ALL_CAPABILITY )) .await?; @@ -103,7 +104,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.expression(null, {{ url: {} }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.expression({{ url: {} }}, {{ capabilities: [{}] }}))", url, ALL_CAPABILITY )) @@ -120,7 +121,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.expressionInteractions(null, {{ url: {} }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.expressionInteractions({{ url: {} }}, {{ capabilities: [{}] }}))", url, ALL_CAPABILITY )) @@ -142,7 +143,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.expressionMany(null, {{ urls: [{}] }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.expressionMany({{ urls: [{}] }}, {{ capabilities: [{}] }}))", urls_string, ALL_CAPABILITY )) @@ -155,7 +156,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.expressionRaw(null, {{ url: {} }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.expressionRaw({{ url: {} }}, {{ capabilities: [{}] }}))", url, ALL_CAPABILITY )) @@ -167,7 +168,10 @@ impl Query { async fn get_trusted_agents(&self, context: &JsCoreHandle) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.getTrustedAgents(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .execute(format!( + "JSON.stringify(core.resolvers.Query.getTrustedAgents({{ capabilities: [{}] }}))", + ALL_CAPABILITY + )) .await?; let trusted_agents: Vec = serde_json::from_str(&result)?; return Ok(trusted_agents); @@ -181,7 +185,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.language(null, {{ address: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(await core.resolvers.Query.language({{ address: {} }}, {{ capabilities: [{}] }}))", address, ALL_CAPABILITY )) @@ -198,7 +202,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.languageMeta(null, {{ address: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(await core.resolvers.Query.languageMeta({{ address: {} }}, {{ capabilities: [{}] }}))", address, ALL_CAPABILITY )) @@ -215,7 +219,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.languageSource(null, {{ address: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(await core.resolvers.Query.languageSource({{ address: {} }}, {{ capabilities: [{}] }}))", address, ALL_CAPABILITY )) @@ -233,7 +237,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.languages(null, {{ filter: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(core.resolvers.Query.languages({{ filter: {} }}, {{ capabilities: [{}] }}))", filter_string, ALL_CAPABILITY )) @@ -249,7 +253,7 @@ impl Query { ) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodHasTelepresenceAdapter(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodHasTelepresenceAdapter({{ perspectiveUUID: {} }}, {{ capabilities: [{}] }}))", perspective_uuid, ALL_CAPABILITY)) .await?; let has_adapter: bool = serde_json::from_str(&result)?; return Ok(has_adapter); @@ -262,7 +266,7 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodOnlineAgents(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodOnlineAgents({{ perspectiveUUID: {} }}, {{ capabilities: [{}] }}))", perspective_uuid, ALL_CAPABILITY)) .await?; let online_agents: Vec = serde_json::from_str(&result)?; return Ok(online_agents); @@ -275,7 +279,7 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodOtherAgents(null, {{ perspectiveUUID: {}, {{ capabilities: [{}] }} }}))", perspective_uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodOtherAgents({{ perspectiveUUID: {} }}, {{ capabilities: [{}] }}))", perspective_uuid, ALL_CAPABILITY)) .await?; let other_agents: Vec = serde_json::from_str(&result)?; return Ok(other_agents); @@ -289,7 +293,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.perspective(null, {{ uuid: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(core.resolvers.Query.perspective({{ uuid: {} }}, {{ capabilities: [{}] }}))", uuid, ALL_CAPABILITY )) @@ -307,7 +311,7 @@ impl Query { let query_string = serde_json::to_string(&query)?; let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.perspectiveQueryLinks(null, {{ query: {}, uuid: {}, {{ capabilities: [{}] }} }}))", query_string, uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.perspectiveQueryLinks({{ query: {}, uuid: {} }}, {{ capabilities: [{}] }}))", query_string, uuid, ALL_CAPABILITY)) .await?; let link_expressions: Vec = serde_json::from_str(&result)?; return Ok(link_expressions); @@ -321,7 +325,7 @@ impl Query { ) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.perspectiveQueryProlog(null, {{ query: {}, uuid: {}, {{ capabilities: [{}] }} }}))", query, uuid, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.perspectiveQueryProlog({{ query: {}, uuid: {} }}, {{ capabilities: [{}] }}))", query, uuid, ALL_CAPABILITY)) .await?; let prolog_result: String = serde_json::from_str(&result)?; return Ok(prolog_result); @@ -335,7 +339,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.perspectiveSnapshot(null, {{ uuid: {}, {{ capabilities: [{}] }} }}))", + "JSON.stringify(await core.resolvers.Query.perspectiveSnapshot({{ uuid: {} }}, {{ capabilities: [{}] }}))", uuid, ALL_CAPABILITY )) @@ -348,7 +352,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.perspectives(null, {{ capabilities: [{}] }}))", + "JSON.stringify(core.resolvers.Query.perspectives({{ capabilities: [{}] }}))", ALL_CAPABILITY )) .await?; @@ -364,7 +368,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.runtimeFriendStatus(null, {{ did: {} }}, {{ capabilities: [{}] }}))", + "JSON.stringify(await core.resolvers.Query.runtimeFriendStatus({{ did: {} }}, {{ capabilities: [{}] }}))", did, ALL_CAPABILITY )) @@ -376,7 +380,10 @@ impl Query { async fn runtime_friends(&self, context: &JsCoreHandle) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.runtimeFriends(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .execute(format!( + "JSON.stringify(core.resolvers.Query.runtimeFriends({{ capabilities: [{}] }}))", + ALL_CAPABILITY + )) .await?; let friends: Vec = serde_json::from_str(&result)?; return Ok(friends); @@ -385,7 +392,7 @@ impl Query { async fn runtime_hc_agent_infos(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeHcAgentInfos(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeHcAgentInfos({{ capabilities: [{}] }}))", ALL_CAPABILITY)) .await?; let hc_agent_infos: String = serde_json::from_str(&result)?; return Ok(hc_agent_infos); @@ -395,7 +402,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.runtimeInfo(null, {{ capabilities: [{}] }}))", + "JSON.stringify(core.resolvers.Query.runtimeInfo({{ capabilities: [{}] }}))", ALL_CAPABILITY )) .await?; @@ -409,7 +416,7 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.runtimeKnownLinkLanguageTemplates(null, {{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .execute(format!("JSON.stringify(core.resolvers.Query.runtimeKnownLinkLanguageTemplates({{ capabilities: [{}] }}))", ALL_CAPABILITY)) .await?; let templates: Vec = serde_json::from_str(&result)?; return Ok(templates); @@ -423,7 +430,7 @@ impl Query { let filter_str = filter.unwrap_or_else(|| String::from("{}")); let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeMessageInbox(null, {{ filter: {}, capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeMessageInbox({{ filter: {} }}, {{ capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) .await?; let inbox_messages: Vec = serde_json::from_str(&result)?; return Ok(inbox_messages); @@ -437,7 +444,7 @@ impl Query { let filter_str = filter.unwrap_or_else(|| String::from("{}")); let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeMessageOutbox(null, {{ filter: {}, capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) + .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeMessageOutbox({{ filter: {} }}, {{ capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) .await?; let outbox_messages: Vec = serde_json::from_str(&result)?; return Ok(outbox_messages); @@ -453,15 +460,13 @@ impl Query { ) -> FieldResult { let mut js = context.clone(); let result = js - .execute( - format!( - r#"JSON.stringify(await core.resolvers.Query.runtimeVerifyStringSignedByDID( - null, - {{ data: {}, did: {}, didSigningKeyId: {}, signedData: {}, capabilities: [{}] }} + .execute(format!( + r#"JSON.stringify(await core.resolvers.Query.runtimeVerifyStringSignedByDID( + {{ data: {}, did: {}, didSigningKeyId: {}, signedData: {} }}, + {{ capabilities: [{}] }} ))"#, - data, did, did_signing_key_id, signed_data, ALL_CAPABILITY - ), - ) + data, did, did_signing_key_id, signed_data, ALL_CAPABILITY + )) .await?; let verified: bool = serde_json::from_str(&result)?; return Ok(verified); diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index 45f08c3dd..6fea086e2 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -1,6 +1,7 @@ use futures::Stream; use futures::StreamExt; use juniper::{graphql_value, FieldError, FieldResult}; +use log::debug; use log::error; use serde::de::DeserializeOwned; use std::collections::HashMap; @@ -47,19 +48,31 @@ impl PubSub { } } -pub(crate) async fn subscribe_and_process( +pub(crate) async fn subscribe_and_process< + T: DeserializeOwned + Send + 'static + std::fmt::Debug, +>( pubsub: Arc, topic: Topic, ) -> Pin> + Send>> { + debug!("Subscribing to topic: {}", topic); let receiver = pubsub.subscribe(&topic).await; let receiver_stream = WatchStream::from_changes(receiver); - let mapped_stream = receiver_stream.map(|msg| match serde_json::from_str::(&msg) { - Ok(agent_status) => Ok(agent_status), - Err(e) => Err(FieldError::new( - e, - graphql_value!({ "type": "INTERNAL_ERROR_COULD_NOT_SERIALIZE" }), - )), + let mapped_stream = receiver_stream.map(|msg| { + debug!("Received message: {:?}", msg); + match serde_json::from_str::(&msg) { + Ok(data) => { + debug!("Deserialized message: {:?}", data); + Ok(data) + } + Err(e) => { + error!("Failed to deserialize message: {:?}", e); + Err(FieldError::new( + e, + graphql_value!({ "type": "INTERNAL_ERROR_COULD_NOT_SERIALIZE" }), + )) + } + } }); Box::pin(mapped_stream) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index abfe9a8c0..d42aa79a1 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -2,6 +2,7 @@ import { ChildProcess, exec, ExecException, execSync } from "node:child_process" import { rmSync } from "node:fs"; import { GraphQLWsLink } from "@apollo/client/link/subscriptions/index.js"; import { ApolloClient, InMemoryCache } from "@apollo/client/core/index.js"; +import { onError } from "@apollo/client/link/error"; import { HttpLink } from "@apollo/client/link/http/index.js"; import Websocket from "ws"; import { createClient } from "graphql-ws"; @@ -42,7 +43,7 @@ export async function startExecutor(dataPath: string, let executorProcess = null as ChildProcess | null; rmSync(dataPath, { recursive: true, force: true }) console.log("Initialzing executor data directory") - execSync(`../../target/release/ad4m init --data-path ${dataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {}) + execSync(`../../target/debug/ad4m init --data-path ${dataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {}) console.log("Starting executor") try { @@ -52,9 +53,9 @@ export async function startExecutor(dataPath: string, } if (!reqCredential) { - executorProcess = exec(`../../target/release/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly}`, {}) + executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly}`, {}) } else { - executorProcess = exec(`../../target/release/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${reqCredential}`, {}) + executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${reqCredential}`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { @@ -102,7 +103,7 @@ export function apolloClient(port: number, token?: string): ApolloClient { fetch }); - return new ApolloClient({ + let client = new ApolloClient({ link: wsLink, cache: new InMemoryCache({ resultCaching: false, addTypename: false }), defaultOptions: { @@ -117,6 +118,17 @@ export function apolloClient(port: number, token?: string): ApolloClient { } }, }); + onError(({ graphQLErrors, networkError }) => { + if (graphQLErrors) + graphQLErrors.forEach(({ message, locations, path }) => + console.log( + `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}` + ) + ); + if (networkError) console.log(`[Network error]: ${networkError}`); + }); + + return client; } export function sleep(ms: number) { From 6aa9a2faa1dfff1330588c8c8497661850ec22a7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 4 May 2023 16:41:59 +0100 Subject: [PATCH 235/722] fix query resolver formatting and incorrect argument parsing --- rust-executor/src/graphql/query_resolvers.rs | 73 ++++++++++++-------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index b9fb674cf..bb2c40735 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -1,6 +1,7 @@ #![allow(non_snake_case)] #![allow(unused_variables)] use juniper::{graphql_object, FieldResult}; +use log::debug; use crate::js_core::JsCoreHandle; @@ -31,12 +32,13 @@ impl Query { did: String, ) -> FieldResult> { let mut js = context.clone(); + debug!("agent_by_did: {}", did); let result = js .execute( format!( r#"JSON.stringify( await core.resolvers.Query.agentByDID( - {{ did: {} }}, + {{ did: "{}" }}, {{ capabilities: [{}] }} ) )"#, @@ -45,6 +47,7 @@ impl Query { .into(), ) .await?; + debug!("agent_by_did result: {}", result); let a: Option = serde_json::from_str(&result)?; return Ok(a); } @@ -100,16 +103,16 @@ impl Query { &self, context: &JsCoreHandle, url: String, - ) -> FieldResult { + ) -> FieldResult> { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.expression({{ url: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.resolvers.Query.expression({{ url: "{}" }}, {{ capabilities: [{}] }}))"#, url, ALL_CAPABILITY )) .await?; - let expression: ExpressionRendered = serde_json::from_str(&result)?; + let expression: Option = serde_json::from_str(&result)?; return Ok(expression); } @@ -121,7 +124,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.expressionInteractions({{ url: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.resolvers.Query.expressionInteractions({{ url: "{}" }}, {{ capabilities: [{}] }}))"#, url, ALL_CAPABILITY )) @@ -134,7 +137,7 @@ impl Query { &self, context: &JsCoreHandle, urls: Vec, - ) -> FieldResult> { + ) -> FieldResult>> { let urls_string = urls .into_iter() .map(|url| format!("\"{}\"", url)) @@ -143,25 +146,29 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.expressionMany({{ urls: [{}] }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.resolvers.Query.expressionMany({{ urls: [{}] }}, {{ capabilities: [{}] }}))"#, urls_string, ALL_CAPABILITY )) .await?; - let expressions: Vec = serde_json::from_str(&result)?; + let expressions: Vec> = serde_json::from_str(&result)?; return Ok(expressions); } - async fn expression_raw(&self, context: &JsCoreHandle, url: String) -> FieldResult { + async fn expression_raw( + &self, + context: &JsCoreHandle, + url: String, + ) -> FieldResult> { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.expressionRaw({{ url: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.resolvers.Query.expressionRaw({{ url: "{}" }}, {{ capabilities: [{}] }}))"#, url, ALL_CAPABILITY )) .await?; - let expression_raw: String = serde_json::from_str(&result)?; + let expression_raw: Option = serde_json::from_str(&result)?; return Ok(expression_raw); } @@ -169,7 +176,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.getTrustedAgents({{ capabilities: [{}] }}))", + r#"JSON.stringify(core.resolvers.Query.getTrustedAgents({{ capabilities: [{}] }}))"#, ALL_CAPABILITY )) .await?; @@ -185,7 +192,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.language({{ address: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.resolvers.Query.language({{ address: "{}" }}, {{ capabilities: [{}] }}))"#, address, ALL_CAPABILITY )) @@ -202,7 +209,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.languageMeta({{ address: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.resolvers.Query.languageMeta({{ address: "{}" }}, {{ capabilities: [{}] }}))"#, address, ALL_CAPABILITY )) @@ -219,7 +226,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.languageSource({{ address: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.resolvers.Query.languageSource({{ address: "{}" }}, {{ capabilities: [{}] }}))"#, address, ALL_CAPABILITY )) @@ -237,7 +244,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.languages({{ filter: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(core.resolvers.Query.languages({{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_string, ALL_CAPABILITY )) @@ -253,7 +260,7 @@ impl Query { ) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodHasTelepresenceAdapter({{ perspectiveUUID: {} }}, {{ capabilities: [{}] }}))", perspective_uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.resolvers.Query.neighbourhoodHasTelepresenceAdapter({{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) .await?; let has_adapter: bool = serde_json::from_str(&result)?; return Ok(has_adapter); @@ -266,7 +273,7 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodOnlineAgents({{ perspectiveUUID: {} }}, {{ capabilities: [{}] }}))", perspective_uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.resolvers.Query.neighbourhoodOnlineAgents({{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) .await?; let online_agents: Vec = serde_json::from_str(&result)?; return Ok(online_agents); @@ -279,7 +286,7 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.neighbourhoodOtherAgents({{ perspectiveUUID: {} }}, {{ capabilities: [{}] }}))", perspective_uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.resolvers.Query.neighbourhoodOtherAgents({{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) .await?; let other_agents: Vec = serde_json::from_str(&result)?; return Ok(other_agents); @@ -293,7 +300,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.perspective({{ uuid: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(core.resolvers.Query.perspective({{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, uuid, ALL_CAPABILITY )) @@ -311,7 +318,7 @@ impl Query { let query_string = serde_json::to_string(&query)?; let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.perspectiveQueryLinks({{ query: {}, uuid: {} }}, {{ capabilities: [{}] }}))", query_string, uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.resolvers.Query.perspectiveQueryLinks({{ query: "{}", uuid: "{}" }}, {{ capabilities: [{}] }}))"#, query_string, uuid, ALL_CAPABILITY)) .await?; let link_expressions: Vec = serde_json::from_str(&result)?; return Ok(link_expressions); @@ -325,7 +332,7 @@ impl Query { ) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.perspectiveQueryProlog({{ query: {}, uuid: {} }}, {{ capabilities: [{}] }}))", query, uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.resolvers.Query.perspectiveQueryProlog({{ query: "{}", uuid: "{}" }}, {{ capabilities: [{}] }}))"#, query, uuid, ALL_CAPABILITY)) .await?; let prolog_result: String = serde_json::from_str(&result)?; return Ok(prolog_result); @@ -337,13 +344,15 @@ impl Query { uuid: String, ) -> FieldResult { let mut js = context.clone(); + debug!("perspective_snapshot: {}", uuid); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.perspectiveSnapshot({{ uuid: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.resolvers.Query.perspectiveSnapshot({{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, uuid, ALL_CAPABILITY )) .await?; + debug!("perspective_snapshot: {}", result); let perspective_snapshot: Perspective = serde_json::from_str(&result)?; return Ok(perspective_snapshot); } @@ -368,7 +377,7 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.runtimeFriendStatus({{ did: {} }}, {{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.resolvers.Query.runtimeFriendStatus({{ did: "{}" }}, {{ capabilities: [{}] }}))"#, did, ALL_CAPABILITY )) @@ -430,7 +439,7 @@ impl Query { let filter_str = filter.unwrap_or_else(|| String::from("{}")); let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeMessageInbox({{ filter: {} }}, {{ capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.resolvers.Query.runtimeMessageInbox({{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_str, ALL_CAPABILITY)) .await?; let inbox_messages: Vec = serde_json::from_str(&result)?; return Ok(inbox_messages); @@ -444,7 +453,7 @@ impl Query { let filter_str = filter.unwrap_or_else(|| String::from("{}")); let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeMessageOutbox({{ filter: {} }}, {{ capabilities: [{}] }}))", filter_str, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.resolvers.Query.runtimeMessageOutbox({{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_str, ALL_CAPABILITY)) .await?; let outbox_messages: Vec = serde_json::from_str(&result)?; return Ok(outbox_messages); @@ -459,15 +468,19 @@ impl Query { signed_data: String, ) -> FieldResult { let mut js = context.clone(); + debug!("runtime_verify_string_signed_by_did"); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.runtimeVerifyStringSignedByDID( - {{ data: {}, did: {}, didSigningKeyId: {}, signedData: {} }}, - {{ capabilities: [{}] }} - ))"#, + r#"JSON.stringify( + await core.resolvers.Query.runtimeVerifyStringSignedByDid( + {{ data: "{}", did: "{}", didSigningKeyId: "{}", signedData: "{}" }}, + {{ capabilities: [{}] }} + ) + )"#, data, did, did_signing_key_id, signed_data, ALL_CAPABILITY )) .await?; + debug!("runtime_verify_string_signed_by_did result: {}", result); let verified: bool = serde_json::from_str(&result)?; return Ok(verified); } From 232585afa9d2d07d58dd568c329ec2d7f730581b Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 4 May 2023 16:42:13 +0100 Subject: [PATCH 236/722] use new fixed language & neighbourhood languages --- tests/js/scripts/get-builtin-test-langs.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/js/scripts/get-builtin-test-langs.js b/tests/js/scripts/get-builtin-test-langs.js index 841569fa7..791a1a2b0 100644 --- a/tests/js/scripts/get-builtin-test-langs.js +++ b/tests/js/scripts/get-builtin-test-langs.js @@ -9,10 +9,10 @@ const languages = { bundle: "https://github.com/perspect3vism/agent-language/releases/download/0.2.2/bundle.js", }, languages: { - bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.8/bundle.js", + bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.9/bundle.js", }, "neighbourhood-store": { - bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.5/bundle.js", + bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.6/bundle.js", }, "perspective-diff-sync": { bundle: "../../bootstrap-languages/p-diff-sync/build/bundle.js", From 3cd1684934e14aa77a2febbe83158955faafdc75 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 4 May 2023 16:43:36 +0100 Subject: [PATCH 237/722] fix up more handlers and add missing icon & lanuage values on ExpressionRendered --- .../src/core/graphQL-interface/GraphQL.ts | 85 ++++++++++++------- .../src/graphql/mutation_resolvers.rs | 6 +- 2 files changed, 55 insertions(+), 36 deletions(-) diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 123b029d6..275146b98 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -91,6 +91,26 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { expression.ref = ref expression.url = url expression.data = JSON.stringify(expression.data) + + //Add the expression icon + expression.icon = { code: await core.languageController.getIcon(ref.language) } + + //Add the language information + let lang + + if(expression.ref.language.address === "literal") { + return { address: "literal", name: "literal" } + } + + try { + lang = await core.languageController.languageForExpression(expression.ref) as any + } catch(e) { + console.error("While trying to get language for expression", expression, ":", e) + lang = {} + } + + lang.address = expression.ref.language.address + expression.language = lang } return expression }, @@ -104,11 +124,31 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }; const results = await Promise.all(expressionPromises); - return results.map((expression: Expression|null, index) => { + return results.map(async (expression: Expression|null, index) => { if(expression) { expression.ref = parseExprUrl(urls[index]); expression.url = urls[index]; expression.data = JSON.stringify(expression.data); + + //Add the expression icon + expression.icon = { code: await core.languageController.getIcon(expression.ref.language) } + + //Add the language information + let lang + + if(expression.ref.language.address === "literal") { + return { address: "literal", name: "literal" } + } + + try { + lang = await core.languageController.languageForExpression(expression.ref) as any + } catch(e) { + console.error("While trying to get language for expression", expression, ":", e) + lang = {} + } + + lang.address = expression.ref.language.address + expression.language = lang } return expression }) @@ -266,7 +306,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { //@ts-ignore runtimeHcAgentInfos: async (context) => { checkCapability(context.capabilities, Auth.RUNTIME_HC_AGENT_INFO_READ_CAPABILITY) - return JSON.stringify(await core.holochainRequestAgentInfos()) + return JSON.stringify(await core.holochainRequestAgentInfos()); }, //@ts-ignore @@ -524,8 +564,14 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { expressionCreate: async (args, context) => { checkCapability(context.capabilities, Auth.EXPRESSION_CREATE_CAPABILITY) const { languageAddress, content } = args + + //@ts-ignore + function stringifyIfObject(value) { + return typeof value === 'object' && value !== null ? JSON.stringify(value) : value; + } + const langref = { address: languageAddress } as LanguageRef - const expref = await core.languageController.expressionCreate(langref, JSON.parse(content)) + const expref = await core.languageController.expressionCreate(langref, JSON.parse(stringifyIfObject(content))) return exprRef2String(expref) }, //@ts-ignore @@ -782,11 +828,11 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { const parsed = JSON.parse(agentInfos).map(info => { return { //@ts-ignore - agent: Buffer.from(info.agent.data), + agent: Buffer.from(Object.values(info.agent)), //@ts-ignore - signature: Buffer.from(info.signature.data), + signature: Buffer.from(Object.values(info.signature)), //@ts-ignore - agent_info: Buffer.from(info.agent_info.data) + agent_info: Buffer.from(Object.values(info.agent_info)) } }) @@ -836,33 +882,6 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { Subscription: {}, - ExpressionRendered: { - //@ts-ignore - language: async (expression) => { - //console.log("GQL LANGUAGE", expression) - let lang - - if(expression.ref.language.address === "literal") { - return { address: "literal", name: "literal" } - } - - try { - lang = await core.languageController.languageForExpression(expression.ref) as any - } catch(e) { - console.error("While trying to get language for expression", expression, ":", e) - lang = {} - } - - lang.address = expression.ref.language.address - return lang - }, - - //@ts-ignore - icon: async (expression) => { - return { code: await core.languageController.getIcon(expression.ref.language) } - } - }, - LanguageHandle: { // @ts-ignore constructorIcon: async (language) => { diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 0939eac0b..651cee6a8 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -351,7 +351,7 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.expressionCreate( - {{ content: "{}", languageAddress: "{}" }}, + {{ content: {}, languageAddress: "{}" }}, {{ capabilities: [{}] }} ) )"#, @@ -775,7 +775,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveRemove( + await core.resolvers.Mutation.perspectiveRemove( {{ uuid: "{}" }}, {{ capabilities: [{}] }} ) @@ -949,7 +949,7 @@ impl Mutation { let script = format!( r#"JSON.stringify( await core.resolvers.Mutation.runtimeHcAddAgentInfos( - {{ agentInfos: "{}" }}, + {{ agentInfos: JSON.stringify({}) }}, {{ capabilities: [{}] }} ) )"#, From 33b6fc87fff9b19e3d6d2793a49a2af6dcbc0234 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 4 May 2023 18:38:19 +0100 Subject: [PATCH 238/722] return event loop errors in graphql responses --- rust-executor/src/js_core/mod.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 3a55b8600..7b899231f 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -292,12 +292,15 @@ impl JsCore { } }; + let mut global_req_id = None; + //Listener future for receiving script execution calls let receive_fut = async { while let Some(request) = rx_inside.recv().await { let tx_cloned = tx_inside.clone(); let script = request.script; let id = request.id; + global_req_id = Some(id.clone()); match js_core.execute_async(script) { Ok(execute_async_future) => match execute_async_future.await { Ok(result) => { @@ -340,7 +343,18 @@ impl JsCore { match event_loop_result { Ok(_) => info!("AD4M event loop finished"), Err(err) => { + let tx_cloned = tx_inside.clone(); error!("AD4M event loop closed with error: {}", err); + if global_req_id.is_some() { + //TODO: this error should also cause the graphql server to error since right now we are just killing + //the event loop completely and this should be reflected in the main thread + tx_cloned + .send(JsCoreResponse { + result: Err(err.to_string()), + id: global_req_id.unwrap(), + }) + .expect("couldn't send on channel"); + } break; } } From e033be1f9ecf8ae37458d3d6237395fc2677cf04 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 5 May 2023 11:19:49 +0100 Subject: [PATCH 239/722] add new note store expression language to replace ipfs language --- tests/js/languages/note-store/index.ts | 45 +++++++++++++++++++ .../note-store}/package.json | 0 .../note-store}/tsconfig.json | 0 tests/js/languages/note-store/yarn.lock | 25 +++++++++++ .../{ => languages}/test-language/.gitignore | 0 .../js/{ => languages}/test-language/index.ts | 0 tests/js/languages/test-language/package.json | 18 ++++++++ .../js/languages/test-language/tsconfig.json | 9 ++++ .../{ => languages}/test-language/yarn.lock | 0 tests/js/scripts/build-test-language.ps1 | 6 ++- tests/js/scripts/build-test-language.sh | 6 ++- tests/js/scripts/get-builtin-test-langs.js | 5 +-- tests/js/scripts/prepareTestDirectory.ps1 | 3 +- tests/js/scripts/prepareTestDirectory.sh | 3 +- tests/js/utils/publishTestLangs.ts | 7 --- 15 files changed, 110 insertions(+), 17 deletions(-) create mode 100644 tests/js/languages/note-store/index.ts rename tests/js/{test-language => languages/note-store}/package.json (100%) rename tests/js/{test-language => languages/note-store}/tsconfig.json (100%) create mode 100644 tests/js/languages/note-store/yarn.lock rename tests/js/{ => languages}/test-language/.gitignore (100%) rename tests/js/{ => languages}/test-language/index.ts (100%) create mode 100644 tests/js/languages/test-language/package.json create mode 100644 tests/js/languages/test-language/tsconfig.json rename tests/js/{ => languages}/test-language/yarn.lock (100%) diff --git a/tests/js/languages/note-store/index.ts b/tests/js/languages/note-store/index.ts new file mode 100644 index 000000000..fd14329b9 --- /dev/null +++ b/tests/js/languages/note-store/index.ts @@ -0,0 +1,45 @@ +import type { Address, Interaction, Expression, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import { exists } from "https://deno.land/std@0.184.0/fs/mod.ts"; +import { join } from "https://deno.land/std@0.184.0/path/mod.ts"; + +export default function create(context: LanguageContext): Language { + const expressions = new Array() + + let storagePath = ""; + + //@ts-ignore + if ("storagePath" in context.customSettings) { storagePath = context.customSettings["storagePath"] } else { storagePath = "./tst-tmp/note" }; + + function interactions(expressionAddress: Address): Interaction[] { + return [] + } + + return { + name: "note-store", + interactions, + expressionAdapter: { + get: async (address: Address) => { + let path = join(storagePath, `${address}.txt`) + console.log("note-store language trying to get at path:", path); + try { + await exists(path) + return JSON.parse(Deno.readTextFileSync(path)); + } catch (e) { + console.error("caught error", e); + return null; + } + }, + putAdapter: { + createPublic: async (content: object): Promise
=> { + const expr = context.agent.createSignedExpression(content) + const exprString = JSON.stringify(expr) + // @ts-ignore + const hash = UTILS.hash(exprString); + Deno.writeTextFileSync(join(storagePath, `${hash}.txt`), exprString); + return hash + } + } + } + } as Language +} + diff --git a/tests/js/test-language/package.json b/tests/js/languages/note-store/package.json similarity index 100% rename from tests/js/test-language/package.json rename to tests/js/languages/note-store/package.json diff --git a/tests/js/test-language/tsconfig.json b/tests/js/languages/note-store/tsconfig.json similarity index 100% rename from tests/js/test-language/tsconfig.json rename to tests/js/languages/note-store/tsconfig.json diff --git a/tests/js/languages/note-store/yarn.lock b/tests/js/languages/note-store/yarn.lock new file mode 100644 index 000000000..42c13965a --- /dev/null +++ b/tests/js/languages/note-store/yarn.lock @@ -0,0 +1,25 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +multiformats@^9.4.2: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +tslib@^2.0.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + +typescript@^4.6.2: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +uint8arrays@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" diff --git a/tests/js/test-language/.gitignore b/tests/js/languages/test-language/.gitignore similarity index 100% rename from tests/js/test-language/.gitignore rename to tests/js/languages/test-language/.gitignore diff --git a/tests/js/test-language/index.ts b/tests/js/languages/test-language/index.ts similarity index 100% rename from tests/js/test-language/index.ts rename to tests/js/languages/test-language/index.ts diff --git a/tests/js/languages/test-language/package.json b/tests/js/languages/test-language/package.json new file mode 100644 index 000000000..7e1b70336 --- /dev/null +++ b/tests/js/languages/test-language/package.json @@ -0,0 +1,18 @@ +{ + "name": "test-language", + "version": "0.0.1", + "description": "An AD4M Language for testing AD4M-executor", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "deno-bundle": "deno bundle index.ts build/bundle.js", + "build": "yarn run deno-bundle" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "tslib": "^2.0.0", + "typescript": "^4.6.2", + "uint8arrays": "^3.0.0" + } +} diff --git a/tests/js/languages/test-language/tsconfig.json b/tests/js/languages/test-language/tsconfig.json new file mode 100644 index 000000000..68e2f4be1 --- /dev/null +++ b/tests/js/languages/test-language/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "types": ["node"], + }, + "include": ["*.ts"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"], + "allowJs": true + } \ No newline at end of file diff --git a/tests/js/test-language/yarn.lock b/tests/js/languages/test-language/yarn.lock similarity index 100% rename from tests/js/test-language/yarn.lock rename to tests/js/languages/test-language/yarn.lock diff --git a/tests/js/scripts/build-test-language.ps1 b/tests/js/scripts/build-test-language.ps1 index db05dcb46..b1c768a15 100644 --- a/tests/js/scripts/build-test-language.ps1 +++ b/tests/js/scripts/build-test-language.ps1 @@ -1,3 +1,7 @@ -Set-Location test-language +Set-Location languages/test-language +yarn install +yarn run build + +Set-Location ../note-store yarn install yarn run build diff --git a/tests/js/scripts/build-test-language.sh b/tests/js/scripts/build-test-language.sh index 4ed440744..81ce2b599 100755 --- a/tests/js/scripts/build-test-language.sh +++ b/tests/js/scripts/build-test-language.sh @@ -1,5 +1,9 @@ #!/bin/bash -cd test-language +cd languages/test-language +yarn install +yarn run build + +cd ../note-store yarn install yarn run build diff --git a/tests/js/scripts/get-builtin-test-langs.js b/tests/js/scripts/get-builtin-test-langs.js index 791a1a2b0..f1aa09a33 100644 --- a/tests/js/scripts/get-builtin-test-langs.js +++ b/tests/js/scripts/get-builtin-test-langs.js @@ -6,7 +6,7 @@ import os from "os"; const languages = { "agent-expression-store": { - bundle: "https://github.com/perspect3vism/agent-language/releases/download/0.2.2/bundle.js", + bundle: "../../bootstrap-languages/agent-language/build/bundle.js", }, languages: { bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.9/bundle.js", @@ -17,9 +17,6 @@ const languages = { "perspective-diff-sync": { bundle: "../../bootstrap-languages/p-diff-sync/build/bundle.js", }, - "note-ipfs": { - bundle: "https://github.com/perspect3vism/lang-note-ipfs/releases/download/0.0.4/bundle.js", - }, "direct-message-language": { bundle: "../../bootstrap-languages/direct-message-language/build/bundle.js" }, diff --git a/tests/js/scripts/prepareTestDirectory.ps1 b/tests/js/scripts/prepareTestDirectory.ps1 index 20771602e..b2ee52c8d 100644 --- a/tests/js/scripts/prepareTestDirectory.ps1 +++ b/tests/js/scripts/prepareTestDirectory.ps1 @@ -5,8 +5,7 @@ mkdir tst-tmp cd tst-tmp mkdir agents mkdir languages -mkdir languages\test-language -cp -r ..\test-language\build languages\test-language\build +mkdir note wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./hc.exe diff --git a/tests/js/scripts/prepareTestDirectory.sh b/tests/js/scripts/prepareTestDirectory.sh index 75b82865f..8b7132df2 100755 --- a/tests/js/scripts/prepareTestDirectory.sh +++ b/tests/js/scripts/prepareTestDirectory.sh @@ -4,8 +4,7 @@ mkdir tst-tmp cd tst-tmp mkdir agents mkdir languages -mkdir languages/test-language -cp -r ../test-language/build languages/test-language/build +mkdir note ln -s ../../../executor/temp/binary/hc ./hc ln -s ../../../executor/temp/binary/holochain ./holochain diff --git a/tests/js/utils/publishTestLangs.ts b/tests/js/utils/publishTestLangs.ts index c2d4e4580..e10c96c5b 100644 --- a/tests/js/utils/publishTestLangs.ts +++ b/tests/js/utils/publishTestLangs.ts @@ -17,7 +17,6 @@ const appDataPath = path.join(TEST_DIR, "agents", "p"); const publishLanguagesPath = path.join(TEST_DIR, "languages"); const publishingBootstrapSeedPath = path.join(`${__dirname}/../publishBootstrapSeed.json`); const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); -const noteIpfsHashPath = path.join(`${__dirname}/../scripts/note-ipfs-hash`); const perspectiveDiffSyncHashPath = path.join(`${__dirname}/../scripts/perspective-diff-sync-hash`); const gqlPort = 4000; const hcAdminPort = 15000; @@ -29,7 +28,6 @@ const languagesToPublish = { "agent-expression-store": {name: "agent-expression-store", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, "direct-message-language": {name: "direct-message-language", description: "", possibleTemplateParams: ["uid", "recipient_did", "recipient_hc_agent_pubkey"]} as LanguageMetaInput, "neighbourhood-store": {name: "neighbourhood-store", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, - "note-ipfs": {name: "note-ipfs", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, "perspective-diff-sync": {name: "perspective-diff-sync", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, "perspective-language": {name: "perspective-language", description: "", possibleTemplateParams: ["uid", "name", "description"]} as LanguageMetaInput, } @@ -39,7 +37,6 @@ const languageHashes = { "agentLanguage": "", "perspectiveLanguage": "", "neighbourhoodLanguage": "", - "noteIpfs": "", "perspectiveDiffSync": "" } @@ -64,7 +61,6 @@ function injectSystemLanguages() { } function injectLangAliasHashes() { - fs.writeFileSync(noteIpfsHashPath, languageHashes["noteIpfs"]); fs.writeFileSync(perspectiveDiffSyncHashPath, languageHashes["perspectiveDiffSync"]); } @@ -93,9 +89,6 @@ async function publish() { if (language === "perspective-language") { languageHashes["perspectiveLanguage"] = publishedLang.address; } - if (language === "note-ipfs") { - languageHashes["noteIpfs"] = publishedLang.address; - } if (language === "perspective-diff-sync") { languageHashes["perspectiveDiffSync"] = publishedLang.address; } From 3ecb9473bd471fc42f21aae66b5befa9b368e169 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 5 May 2023 11:20:12 +0100 Subject: [PATCH 240/722] fix handling of expressionMany and parsing of expression objects on create --- executor/src/core/graphQL-interface/GraphQL.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 275146b98..4597c211f 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -124,7 +124,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }; const results = await Promise.all(expressionPromises); - return results.map(async (expression: Expression|null, index) => { + return await Promise.all(results.map(async (expression: Expression|null, index) => { if(expression) { expression.ref = parseExprUrl(urls[index]); expression.url = urls[index]; @@ -151,7 +151,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { expression.language = lang } return expression - }) + })) }, //@ts-ignore expressionRaw: async (args, context) => { @@ -566,12 +566,12 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { const { languageAddress, content } = args //@ts-ignore - function stringifyIfObject(value) { - return typeof value === 'object' && value !== null ? JSON.stringify(value) : value; + function prepareExpressionData(value) { + return typeof value === 'object' && value !== null ? JSON.parse(JSON.stringify(value)) : value; } const langref = { address: languageAddress } as LanguageRef - const expref = await core.languageController.expressionCreate(langref, JSON.parse(stringifyIfObject(content))) + const expref = await core.languageController.expressionCreate(langref, prepareExpressionData(content)) return exprRef2String(expref) }, //@ts-ignore From 40a845e9f7d6f5cb1646b47699fb0300d455da8b Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 5 May 2023 11:20:21 +0100 Subject: [PATCH 241/722] allow code Icon to be null --- rust-executor/src/graphql/graphql_types.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index 154d92e49..fa500a309 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -158,7 +158,7 @@ pub struct ExpressionRendered { #[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Icon { - pub code: String, + pub code: Option, } #[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] From 28f18323b0a1c0372022b68f312818128c4267d9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 5 May 2023 11:21:00 +0100 Subject: [PATCH 242/722] integrate expression tests with new note lang --- tests/js/tests/expression.ts | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/tests/js/tests/expression.ts b/tests/js/tests/expression.ts index 68fce4f16..73ba1b5f3 100644 --- a/tests/js/tests/expression.ts +++ b/tests/js/tests/expression.ts @@ -6,6 +6,17 @@ import { expect } from "chai"; export default function expressionTests(testContext: TestContext) { return () => { describe('Expressions', () => { + let noteLangAddress = ""; + + before(async () => { + const ad4mClient = testContext.ad4mClient! + + //Publish mocking interactions language so it can be used + const publish = await ad4mClient.languages.publish("./languages/note-store/build/bundle.js", {name: "note-store", description: "A test language for saving simple strings"} as LanguageMetaInput) + + noteLangAddress = publish.address; + }) + it('can get() my agent expression', async () => { const ad4mClient = testContext.ad4mClient! const me = await ad4mClient.agent.me() @@ -47,10 +58,8 @@ export default function expressionTests(testContext: TestContext) { it('can create valid signatures', async () => { const ad4mClient = testContext.ad4mClient! - //@ts-ignore - const noteIpfs = fs.readFileSync("./scripts/note-ipfs-hash").toString(); - const exprAddr = await ad4mClient.expression.create("test note", noteIpfs) + const exprAddr = await ad4mClient.expression.create("test note", noteLangAddress) expect(exprAddr).not.to.be.undefined; const expr = await ad4mClient.expression.get(exprAddr) @@ -60,9 +69,8 @@ export default function expressionTests(testContext: TestContext) { it('can get expression from cache', async () => { const ad4mClient = testContext.ad4mClient! - const noteIpfs = fs.readFileSync("./scripts/note-ipfs-hash").toString(); - const exprAddr = await ad4mClient.expression.create("test note", noteIpfs) + const exprAddr = await ad4mClient.expression.create("test note", noteLangAddress) expect(exprAddr).not.to.be.undefined; const expr = await ad4mClient.expression.get(exprAddr) @@ -75,7 +83,7 @@ export default function expressionTests(testContext: TestContext) { expect(exprCacheHit.proof.valid).to.be.true; expect(exprCacheHit.data).to.be.equal("\"test note\""); - const objExpr = await ad4mClient.expression.create(JSON.stringify({"key": "value"}), noteIpfs) + const objExpr = await ad4mClient.expression.create({"key": "value"}, noteLangAddress) expect(objExpr).not.to.be.undefined; const exprObj = await ad4mClient.expression.get(objExpr) @@ -92,7 +100,7 @@ export default function expressionTests(testContext: TestContext) { it('can use expression interactions', async () => { const ad4mClient = testContext.ad4mClient! //Publish mocking interactions language so it can be used - const publish = await ad4mClient.languages.publish("./tst-tmp/languages/test-language/build/bundle.js", {name: "test-language", description: "A test language for interactions"} as LanguageMetaInput) + const publish = await ad4mClient.languages.publish("./languages/test-language/build/bundle.js", {name: "test-language", description: "A test language for interactions"} as LanguageMetaInput) //@ts-ignore const testLangAddress = publish.address; From 7fb630e57304be6bd976d197535a677120383114 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 5 May 2023 14:56:41 +0100 Subject: [PATCH 243/722] add global __dirname & __filename exports --- executor/lib/deno.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/executor/lib/deno.js b/executor/lib/deno.js index e50c3cd6a..cca4ec787 100644 --- a/executor/lib/deno.js +++ b/executor/lib/deno.js @@ -6,6 +6,12 @@ const Buffer = globalThis.Buffer; const setImmediate = globalThis.setImmediate; const clearImmediate = globalThis.clearImmediate; +const __dirname = new URL('.', import.meta.url).pathname; +const __filename = new URL('', import.meta.url).pathname; + +globalThis.__dirname = __dirname; +globalThis.__filename = __filename; + import { init as internalInit } from "./main.js" import * as internalPath from "../deno_std-0.177.0/node/path.ts"; import * as internalOs from "../deno_std-0.177.0/node/os.ts" From 2c37c303d3d8620116a86fd280e63fa64f58b4ca Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 5 May 2023 14:56:55 +0100 Subject: [PATCH 244/722] use bin path as default swipl path --- rust-executor/src/config.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs index 4790d0257..a58db2170 100644 --- a/rust-executor/src/config.rs +++ b/rust-executor/src/config.rs @@ -72,9 +72,9 @@ impl Ad4mConfig { if cfg!(windows) { data_path.push("swipl"); } - //If os is other push swipl/lib/swipl/ + //If os is other push swipl/bin/swipl/ else { - data_path.push("swipl/lib/swipl"); + data_path.push("swipl/bin/swipl"); } self.swipl_path = Some( data_path @@ -85,7 +85,7 @@ impl Ad4mConfig { } if self.swipl_home_path.is_none() { let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); - data_path.push("swipl/bin/swipl"); + data_path.push("swipl/lib/swipl"); self.swipl_home_path = Some( data_path .into_os_string() From eda66553c75b415b47edbaa5882e051bcff90860 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 5 May 2023 14:57:06 +0100 Subject: [PATCH 245/722] set swipl bin permissions on init --- rust-executor/src/init.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 71d509a7d..d9a025c08 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -89,7 +89,12 @@ pub fn init( fs::set_permissions(hc_target, fs::Permissions::from_mode(0o755))?; info!("write swipl target"); - write_zip(SWIPL_ZIP.to_vec(), app_data_path); + write_zip(SWIPL_ZIP.to_vec(), app_data_path.clone()); + + fs::set_permissions( + app_data_path.join("swipl").join("bin").join("swipl"), + fs::Permissions::from_mode(0o755), + )?; Ok(()) } From a0c9cea96892d43107588967268a49781f441d04 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 5 May 2023 14:57:15 +0100 Subject: [PATCH 246/722] add missing await on perspective_update --- rust-executor/src/graphql/mutation_resolvers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 651cee6a8..1a5cd9ed7 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -840,7 +840,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.perspectiveUpdate( + await core.resolvers.Mutation.perspectiveUpdate( {{ name: "{}", uuid: "{}" }}, {{ capabilities: [{}] }} ) From e634a0d613e297bc4b78dcb4a7ad3781cd1b75cf Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 9 May 2023 13:18:08 +0100 Subject: [PATCH 247/722] fix date filtering & add await on pubsub calls --- executor/src/core/Perspective.ts | 39 +++++++++++++++++++------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 01c01eed6..41d59e068 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -449,7 +449,7 @@ export default class Perspective { await this.#db.addLink(this.uuid!, linkExpression); this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); - PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { + await PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: linkExpression }) @@ -474,7 +474,7 @@ export default class Perspective { this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); for (const link of linkExpressions) { - PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { + await PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: link }) @@ -499,7 +499,7 @@ export default class Perspective { await Promise.all(linkExpressions.map(async l => await this.#db.removeLink(this.uuid!, l))) this.#prologNeedsRebuild = true; for (const link of linkExpressions) { - PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { + await PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: link }) @@ -524,13 +524,13 @@ export default class Perspective { await Promise.all(diff.removals.map(async l => await this.#db.removeLink(this.uuid!, l))); this.#prologNeedsRebuild = true; for (const link of diff.additions) { - PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { + await PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { perspective: this.plain(), link: link }); }; for (const link of diff.removals) { - PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { + await PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: link }); @@ -563,7 +563,7 @@ export default class Perspective { const perspective = this.plain(); this.#prologNeedsRebuild = true; - PUBSUB.publish(PubSub.LINK_UPDATED_TOPIC, { + await PUBSUB.publish(PubSub.LINK_UPDATED_TOPIC, { perspective, oldLink, newLink: newLinkExpression @@ -586,7 +586,7 @@ export default class Perspective { } this.#prologNeedsRebuild = true; - PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { + await PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: linkExpression }) @@ -613,17 +613,17 @@ export default class Perspective { function fromDateFilter(link: LinkExpression) { if (reverse) { - return new Date(link.timestamp) <= query.fromDate! + return new Date(link.timestamp) <= new Date(query.fromDate!) } else { - return new Date(link.timestamp) >= query.fromDate! + return new Date(link.timestamp) >= new Date(query.fromDate!) } } function untilDateFilter(link: LinkExpression) { if (reverse) { - return new Date(link.timestamp) >= query.untilDate! + return new Date(link.timestamp) >= new Date(query.untilDate!) } else { - return new Date(link.timestamp) <= query.untilDate! + return new Date(link.timestamp) <= new Date(query.untilDate!) } } @@ -640,13 +640,21 @@ export default class Perspective { if(query.source) { let result = await this.#db.getLinksBySource(this.uuid!, query.source); // @ts-ignore - if(query.target) result = result.filter(l => l.data.target === query.target) + if(query.target) { + result = result.filter(l => l.data.target === query.target) + } // @ts-ignore - if(query.predicate) result = result.filter(l => l.data.predicate === query.predicate) + if(query.predicate) { + result = result.filter(l => l.data.predicate === query.predicate) + } //@ts-ignore - if (query.fromDate) result = result.filter(fromDateFilter) + if (query.fromDate) { + result = result.filter(fromDateFilter) + } // @ts-ignore - if (query.untilDate) result = result.filter(untilDateFilter) + if (query.untilDate) { + result = result.filter(untilDateFilter) + } result = limitFilter(result); return result } @@ -678,7 +686,6 @@ export default class Perspective { return new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime(); }); - if (query.limit) { const startLimit = reverse ? values.length - query.limit : 0; const endLimit = reverse ? (values.length - query.limit) + query.limit : query.limit; From c0f9aa17fba40405921c3a25c28e15e78df8f1dc Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 9 May 2023 13:18:22 +0100 Subject: [PATCH 248/722] fix handling of undefined perspective on get --- executor/src/core/PerspectivesController.ts | 2 +- executor/src/core/graphQL-interface/GraphQL.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index e0d4bd6ca..4a96775f5 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -97,7 +97,7 @@ export default class PerspectivesController { fs.writeFileSync(FILEPATH, JSON.stringify(obj)) } - perspectiveID(uuid: string): PerspectiveHandle|void { + perspectiveID(uuid: string): PerspectiveHandle|undefined { const pID = this.#perspectiveHandles.get(uuid) // console.log("pID:", pID) return pID diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 4597c211f..c8d48e6ab 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -253,7 +253,12 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { perspective: (args, context) => { const id = args.uuid checkCapability(context.capabilities, Auth.perspectiveQueryCapability([id])) - return core.perspectivesController.perspectiveID(id) + let perspective = core.perspectivesController.perspectiveID(id); + if (perspective == undefined) { + return null; + } else { + return perspective + } }, //@ts-ignore perspectiveQueryLinks: async (args, context) => { From ba4b64218f6f6d1c5738fbe99613c259c4fdbb67 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 9 May 2023 13:19:04 +0100 Subject: [PATCH 249/722] allow returning of null perspective and fixing argument for query_links --- rust-executor/src/graphql/query_resolvers.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index bb2c40735..3333b02f7 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -296,7 +296,7 @@ impl Query { &self, context: &JsCoreHandle, uuid: String, - ) -> FieldResult { + ) -> FieldResult> { let mut js = context.clone(); let result = js .execute(format!( @@ -305,7 +305,7 @@ impl Query { ALL_CAPABILITY )) .await?; - let perspective_handle: PerspectiveHandle = serde_json::from_str(&result)?; + let perspective_handle: Option = serde_json::from_str(&result)?; return Ok(perspective_handle); } @@ -317,9 +317,11 @@ impl Query { ) -> FieldResult> { let query_string = serde_json::to_string(&query)?; let mut js = context.clone(); - let result = js - .execute(format!(r#"JSON.stringify(await core.resolvers.Query.perspectiveQueryLinks({{ query: "{}", uuid: "{}" }}, {{ capabilities: [{}] }}))"#, query_string, uuid, ALL_CAPABILITY)) - .await?; + let script = format!( + r#"JSON.stringify(await core.resolvers.Query.perspectiveQueryLinks({{ query: {}, uuid: "{}" }}, {{ capabilities: [{}] }}))"#, + query_string, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; let link_expressions: Vec = serde_json::from_str(&result)?; return Ok(link_expressions); } From dca67bd5a0bb07abbe30c43c8895392f8b7fa3af Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 9 May 2023 16:11:13 +0100 Subject: [PATCH 250/722] get subscriptions working with proper filtering! --- executor/src/core/PerspectivesController.ts | 4 +- executor/src/core/graphQL-interface/PubSub.ts | 6 +- rust-executor/src/graphql/graphql_types.rs | 285 +++++++++++++++--- rust-executor/src/graphql/mod.rs | 2 +- .../src/graphql/subscription_resolvers.rs | 34 ++- rust-executor/src/lib.rs | 2 +- rust-executor/src/pubsub.rs | 30 +- 7 files changed, 294 insertions(+), 69 deletions(-) diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index 4a96775f5..20d78e259 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -63,10 +63,10 @@ export default class PerspectivesController { } }) - this.#context.languageController!.addTelepresenceSignalObserver((signal: any, lang: LanguageRef) => { + this.#context.languageController!.addTelepresenceSignalObserver(async (signal: any, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); if (perspective) { - PUBSUB.publish(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { + await PUBSUB.publish(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { signal: signal, perspective: perspective.plain() }) diff --git a/executor/src/core/graphQL-interface/PubSub.ts b/executor/src/core/graphQL-interface/PubSub.ts index fe3c245ee..f5c280fd6 100644 --- a/executor/src/core/graphQL-interface/PubSub.ts +++ b/executor/src/core/graphQL-interface/PubSub.ts @@ -6,9 +6,9 @@ export const DIRECT_MESSAGE_RECEIVED = 'direct-message-received-topic' export const PERSPECTIVE_ADDED_TOPIC = 'perspective-added-topic' export const PERSPECTIVE_UPDATED_TOPIC = 'perspective-updated-topic' export const PERSPECTIVE_REMOVED_TOPIC = 'perspective-removed-topic' -export const LINK_ADDED_TOPIC = 'link-added-topic' -export const LINK_REMOVED_TOPIC = 'link-removed-topic' -export const LINK_UPDATED_TOPIC = 'link-updated-topic' +export const LINK_ADDED_TOPIC = 'perspective-link-added-topic' +export const LINK_REMOVED_TOPIC = 'perspective-link-removed-topic' +export const LINK_UPDATED_TOPIC = 'perspective-link-updated-topic' export const SIGNAL = "signal" export const EXCEPTION_OCCURRED_TOPIC = "exception-occurred-topic" export const NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC = "neighbourhood-signal-received-topic" diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index fa500a309..9f21f6f5e 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -1,7 +1,7 @@ use juniper::{GraphQLInputObject, GraphQLObject, GraphQLScalar}; -use serde::{Deserialize, Serialize}; +use serde::{de::DeserializeOwned, Deserialize, Serialize}; -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct Agent { pub did: String, @@ -10,14 +10,14 @@ pub struct Agent { pub perspective: Option, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct AgentSignature { pub public_key: String, pub signature: String, } -#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize)] +#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize, Clone)] #[serde(rename_all = "camelCase")] pub struct AgentStatus { pub did: Option, @@ -27,7 +27,7 @@ pub struct AgentStatus { pub is_unlocked: bool, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct Apps { pub auth: AuthInfo, @@ -36,7 +36,7 @@ pub struct Apps { pub token: String, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct AuthInfo { pub app_desc: String, @@ -63,21 +63,21 @@ pub struct AuthInfoInput { pub capabilities: Option>, } -#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize)] +#[derive(GraphQLObject, Default, Debug, Serialize, Deserialize, Clone)] #[serde(rename_all = "camelCase")] pub struct Capability { pub can: Vec, pub with: Resource, } -#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct CapabilityInput { pub can: Vec, pub with: ResourceInput, } -#[derive(GraphQLScalar, Default, Debug, Serialize, Deserialize)] +#[derive(GraphQLScalar, Default, Debug, Serialize, Deserialize, Clone)] #[serde(rename_all = "camelCase")] #[graphql(transparent)] // The javascript `Date` as string. pub struct represents date and time as the ISO Date string. @@ -117,7 +117,7 @@ pub struct EntanglementProofInput { pub did_signing_key_id: String, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct ExceptionInfo { pub addon: Option, @@ -126,7 +126,7 @@ pub struct ExceptionInfo { pub r#type: f64, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct ExpressionProof { pub invalid: Option, @@ -135,7 +135,7 @@ pub struct ExpressionProof { pub valid: Option, } -#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct ExpressionProofInput { pub invalid: Option, @@ -144,7 +144,7 @@ pub struct ExpressionProofInput { pub valid: Option, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct ExpressionRendered { pub author: String, @@ -155,7 +155,7 @@ pub struct ExpressionRendered { pub timestamp: String, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct Icon { pub code: Option, @@ -168,7 +168,7 @@ pub struct InteractionCall { pub parameters_stringified: String, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct InteractionMeta { pub label: String, @@ -176,14 +176,14 @@ pub struct InteractionMeta { pub parameters: Vec, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct InteractionParameter { pub name: String, pub type_: String, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LanguageHandle { pub address: String, @@ -194,7 +194,7 @@ pub struct LanguageHandle { pub settings_icon: Option, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LanguageMeta { pub address: String, @@ -208,7 +208,7 @@ pub struct LanguageMeta { pub templated: Option, } -#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LanguageMetaInput { pub description: String, @@ -217,14 +217,14 @@ pub struct LanguageMetaInput { pub source_code_link: Option, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LanguageRef { pub address: String, pub name: String, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct Link { pub predicate: Option, @@ -232,7 +232,7 @@ pub struct Link { pub target: String, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LinkExpression { pub author: String, @@ -241,7 +241,7 @@ pub struct LinkExpression { pub timestamp: String, } -#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LinkExpressionInput { pub author: String, @@ -250,21 +250,21 @@ pub struct LinkExpressionInput { pub timestamp: String, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LinkExpressionMutations { pub additions: Vec, pub removals: Vec, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LinkExpressionUpdated { pub new_link: LinkExpression, pub old_link: LinkExpression, } -#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LinkInput { pub predicate: Option, @@ -272,14 +272,14 @@ pub struct LinkInput { pub target: String, } -#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LinkMutations { pub additions: Vec, pub removals: Vec, } -#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LinkQuery { pub from_date: Option, @@ -290,27 +290,27 @@ pub struct LinkQuery { pub until_date: Option, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct Neighbourhood { pub link_language: String, pub meta: Perspective, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct OnlineAgent { pub did: String, pub status: PerspectiveExpression, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct Perspective { pub links: Vec, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct PerspectiveExpression { pub author: String, @@ -319,7 +319,7 @@ pub struct PerspectiveExpression { pub timestamp: String, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct PerspectiveHandle { pub name: String, @@ -329,33 +329,33 @@ pub struct PerspectiveHandle { pub uuid: String, } -#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct PerspectiveInput { pub links: Vec, } -#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct PerspectiveUnsignedInput { pub links: Vec, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct Resource { pub domain: String, pub pointers: Vec, } -#[derive(GraphQLInputObject, Default, Debug, Serialize, Deserialize)] +#[derive(GraphQLInputObject, Default, Debug, Serialize, Deserialize, Clone)] #[serde(rename_all = "camelCase")] pub struct ResourceInput { pub domain: String, pub pointers: Vec, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct RuntimeInfo { pub ad4m_executor_version: String, @@ -363,9 +363,216 @@ pub struct RuntimeInfo { pub is_unlocked: bool, } -#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize)] +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct SentMessage { pub message: PerspectiveExpression, pub recipient: String, } + +#[derive(Default, Debug, Deserialize, Serialize)] +pub struct NeighbourhoodSignalFilter { + pub perspective: PerspectiveHandle, + pub value: LinkExpression, +} + +#[derive(Default, Debug, Deserialize, Serialize)] +pub struct PerspectiveLinkFilter { + pub perspective: PerspectiveHandle, + pub link: LinkExpression, +} + +#[derive(Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct PerspectiveLinkUpdatedFilter { + pub new_link: LinkExpression, + pub old_link: LinkExpression, + pub perspective: PerspectiveHandle, +} + +#[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct LinkUpdated { + pub new_link: LinkExpression, + pub old_link: LinkExpression, +} + +#[derive(Default, Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct PerspectiveStateFilter { + pub state: String, + pub perspective: PerspectiveHandle, +} + +// Define the trait with a generic associated type `Value` +pub trait GetValue { + type Value: Clone + DeserializeOwned + Send + 'static + std::fmt::Debug; + fn get_value(&self) -> Self::Value; +} + +pub trait GetFilter { + fn get_filter(&self) -> Option; +} + +// Implement the trait for the `NeighbourhoodSignalFilter` struct +impl GetValue for NeighbourhoodSignalFilter { + type Value = LinkExpression; + + fn get_value(&self) -> Self::Value { + self.value.clone() + } +} + +// Implement the trait for the `NeighbourhoodSignalFilter` struct +impl GetFilter for NeighbourhoodSignalFilter { + fn get_filter(&self) -> Option { + Some(self.perspective.uuid.clone()) + } +} + +// Implement the trait for the `PerspectiveLinkFilter` struct +impl GetValue for PerspectiveLinkFilter { + type Value = LinkExpression; + + fn get_value(&self) -> Self::Value { + self.link.clone() + } +} + +// Implement the trait for the `PerspectiveLinkFilter` struct +impl GetFilter for PerspectiveLinkFilter { + fn get_filter(&self) -> Option { + Some(self.perspective.uuid.clone()) + } +} + +// Implement the trait for the `PerspectiveLinkUpdatedFilter` struct +impl GetValue for PerspectiveLinkUpdatedFilter { + type Value = LinkUpdated; + + fn get_value(&self) -> Self::Value { + LinkUpdated { + new_link: self.new_link.clone(), + old_link: self.old_link.clone(), + } + } +} + +// Implement the trait for the `PerspectiveLinkUpdatedFilter` struct +impl GetFilter for PerspectiveLinkUpdatedFilter { + fn get_filter(&self) -> Option { + Some(self.perspective.uuid.clone()) + } +} + +// Implement the trait for the `PerspectiveStateFilter` struct +impl GetValue for PerspectiveStateFilter { + type Value = String; + + fn get_value(&self) -> Self::Value { + self.state.clone() + } +} + +// Implement the trait for the `PerspectiveStateFilter` struct +impl GetFilter for PerspectiveStateFilter { + fn get_filter(&self) -> Option { + Some(self.perspective.uuid.clone()) + } +} + +// Implement the trait for the `AgentStatus` struct +impl GetValue for AgentStatus { + type Value = AgentStatus; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +// Implement the trait for the `AgentStatus` struct +impl GetFilter for AgentStatus { + fn get_filter(&self) -> Option { + None + } +} + +// Implement the trait for `Agent` struct +impl GetValue for Agent { + type Value = Agent; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +// Implement the trait for `Agent` struct +impl GetFilter for Agent { + fn get_filter(&self) -> Option { + None + } +} + +//Implement the trait for `ExceptionInfo` struct +impl GetValue for ExceptionInfo { + type Value = ExceptionInfo; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +//Implement the trait for `ExceptionInfo` struct +impl GetFilter for ExceptionInfo { + fn get_filter(&self) -> Option { + None + } +} + +//Implement the trait for `PerspectiveHandle` struct +impl GetValue for PerspectiveHandle { + type Value = PerspectiveHandle; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +//Implement the trait for `PerspectiveHandle` struct +impl GetFilter for PerspectiveHandle { + fn get_filter(&self) -> Option { + None + } +} + +//Implement the trait for `String` +impl GetValue for String { + type Value = String; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +//Implement the trait for `String` +impl GetFilter for String { + fn get_filter(&self) -> Option { + None + } +} + +//Implement the trait for `PerspectiveExpression` +impl GetValue for PerspectiveExpression { + type Value = PerspectiveExpression; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +//Implement the trait for `PerspectiveExpression` +impl GetFilter for PerspectiveExpression { + fn get_filter(&self) -> Option { + None + } +} diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index e3e28628c..b30ce1587 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -1,4 +1,4 @@ -mod graphql_types; +pub mod graphql_types; mod mutation_resolvers; mod query_resolvers; mod subscription_resolvers; diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs index b09256cf9..9ff7ed81e 100644 --- a/rust-executor/src/graphql/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -34,7 +34,7 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &AGENT_STATUS_CHANGED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), None).await } async fn agent_updated( @@ -44,7 +44,7 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &AGENT_UPDATED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), None).await } async fn exception_occurred( @@ -54,18 +54,23 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &EXCEPTION_OCCURRED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), None).await } async fn neighbourhood_signal( &self, _context: &JsCoreHandle, perspectiveUUID: String, - ) -> Pin> + Send>> { + ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; let topic = &NEIGHBOURHOOD_SIGNAL_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::( + pubsub, + topic.to_string(), + Some(perspectiveUUID), + ) + .await } async fn perspective_added( @@ -75,7 +80,7 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_ADDED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), None).await } async fn perspective_link_added( @@ -86,7 +91,7 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_LINK_ADDED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), Some(uuid)).await } async fn perspective_link_removed( @@ -97,18 +102,19 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_LINK_REMOVED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), Some(uuid)).await } async fn perspective_link_updated( &self, _context: &JsCoreHandle, uuid: String, - ) -> Pin> + Send>> { + ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_LINK_UPDATED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), Some(uuid)) + .await } async fn perspective_removed( @@ -118,7 +124,7 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_REMOVED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), None).await } async fn perspective_sync_state_change( @@ -129,7 +135,7 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), Some(uuid)).await } async fn perspective_updated( @@ -139,7 +145,7 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_UPDATED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), None).await } async fn runtime_message_received( @@ -149,6 +155,6 @@ impl Subscription { let pubsub = get_global_pubsub().await; let topic = &RUNTIME_MESSAGED_RECEIVED_TOPIC; - subscribe_and_process::(pubsub, topic.to_string()).await + subscribe_and_process::(pubsub, topic.to_string(), None).await } } diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 2818df296..4516be554 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -1,6 +1,6 @@ mod config; mod globals; -mod graphql; +pub mod graphql; mod js_core; mod utils; mod wallet; diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index 6fea086e2..bd243ff75 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -1,3 +1,5 @@ +use crate::graphql::graphql_types::GetFilter; +use crate::graphql::graphql_types::GetValue; use futures::Stream; use futures::StreamExt; use juniper::{graphql_value, FieldError, FieldResult}; @@ -49,28 +51,38 @@ impl PubSub { } pub(crate) async fn subscribe_and_process< - T: DeserializeOwned + Send + 'static + std::fmt::Debug, + T: DeserializeOwned + Send + 'static + std::fmt::Debug + GetValue + GetFilter, >( pubsub: Arc, topic: Topic, -) -> Pin> + Send>> { + filter: Option, +) -> Pin> + Send>> { debug!("Subscribing to topic: {}", topic); let receiver = pubsub.subscribe(&topic).await; let receiver_stream = WatchStream::from_changes(receiver); - let mapped_stream = receiver_stream.map(|msg| { - debug!("Received message: {:?}", msg); + let mapped_stream = receiver_stream.filter_map(move |msg| { match serde_json::from_str::(&msg) { Ok(data) => { - debug!("Deserialized message: {:?}", data); - Ok(data) + if let Some(filter) = &filter { + if &data + .get_filter() + .expect("Could not get filter on T where we expected to filter") + != filter + { + return futures::future::ready(None); + } + } + let value = data.get_value(); // Get the underlying value using the GetValue trait + futures::future::ready(Some(Ok(value))) } Err(e) => { error!("Failed to deserialize message: {:?}", e); - Err(FieldError::new( + let field_error = FieldError::new( e, graphql_value!({ "type": "INTERNAL_ERROR_COULD_NOT_SERIALIZE" }), - )) + ); + futures::future::ready(Some(Err(field_error))) } } }); @@ -84,7 +96,7 @@ lazy_static::lazy_static! { pub static ref AGENT_STATUS_CHANGED_TOPIC: String = "agent-status-changed-topic".to_owned(); pub static ref AGENT_UPDATED_TOPIC: String = "agent-updated-topic".to_owned(); pub static ref EXCEPTION_OCCURRED_TOPIC: String = "exception-occurred-topic".to_owned(); - pub static ref NEIGHBOURHOOD_SIGNAL_TOPIC: String = "neighbourhood-signal-topic".to_owned(); + pub static ref NEIGHBOURHOOD_SIGNAL_TOPIC: String = "neighbourhood-signal-received-topic".to_owned(); pub static ref PERSPECTIVE_ADDED_TOPIC: String = "perspective-added-topic".to_owned(); pub static ref PERSPECTIVE_LINK_ADDED_TOPIC: String = "perspective-link-added-topic".to_owned(); pub static ref PERSPECTIVE_LINK_REMOVED_TOPIC: String = "perspective-link-removed-topic".to_owned(); From 5dcd352decaa6d6b22e54c68ee9c4423285ffbfc Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 9 May 2023 16:11:41 +0100 Subject: [PATCH 251/722] fix update perspective link --- executor/src/core/Perspective.ts | 4 ++-- executor/src/core/db.ts | 9 --------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 41d59e068..b34504929 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -194,9 +194,9 @@ export default class Perspective { plain(): PerspectiveHandle { - const { name, uuid, author, timestamp, sharedUrl, neighbourhood } = this + const { name, uuid, author, timestamp, sharedUrl, neighbourhood, state } = this return JSON.parse(JSON.stringify({ - name, uuid, author, timestamp, sharedUrl, neighbourhood + name, uuid, author, timestamp, sharedUrl, neighbourhood, state })) } diff --git a/executor/src/core/db.ts b/executor/src/core/db.ts index 8ef12047c..dbb3c3731 100644 --- a/executor/src/core/db.ts +++ b/executor/src/core/db.ts @@ -109,15 +109,6 @@ export class PerspectivismDb { } async getLink(perspectiveUuid: string, link: LinkExpression): Promise { - if (link.data.source == null) { - delete link.data.source; - }; - if (link.data.predicate == null) { - delete link.data.predicate; - }; - if (link.data.target == null) { - delete link.data.target; - }; return (await this.#linkDb.findOne({ perspective: perspectiveUuid, linkExpression: link }))?.linkExpression; } From 5ab37df78879b7a30a3d3565df2258de9ba594b3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 10 May 2023 14:00:49 +0100 Subject: [PATCH 252/722] fix config writting of holochain port info --- rust-executor/src/config.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs index a58db2170..b344a4d67 100644 --- a/rust-executor/src/config.rs +++ b/rust-executor/src/config.rs @@ -11,7 +11,9 @@ pub struct Ad4mConfig { pub language_language_only: Option, pub run_dapp_server: Option, pub gql_port: Option, + #[serde(rename = "hcPortAdmin")] pub hc_admin_port: Option, + #[serde(rename = "hcPortApp")] pub hc_app_port: Option, pub hc_use_local_proxy: Option, pub hc_use_mdns: Option, From d28833a13361e2ef3afe521e8cea86427f40d5bc Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 10 May 2023 14:45:20 +0100 Subject: [PATCH 253/722] fix perspective_query_prolog query --- rust-executor/src/graphql/query_resolvers.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index 3333b02f7..bf90874f4 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -333,9 +333,11 @@ impl Query { uuid: String, ) -> FieldResult { let mut js = context.clone(); - let result = js - .execute(format!(r#"JSON.stringify(await core.resolvers.Query.perspectiveQueryProlog({{ query: "{}", uuid: "{}" }}, {{ capabilities: [{}] }}))"#, query, uuid, ALL_CAPABILITY)) - .await?; + let script = format!( + r#"await core.resolvers.Query.perspectiveQueryProlog({{ query: '{}', uuid: "{}" }}, {{ capabilities: [{}] }})"#, + query, uuid, ALL_CAPABILITY + ); + let result = js.execute(script).await?; let prolog_result: String = serde_json::from_str(&result)?; return Ok(prolog_result); } @@ -346,7 +348,6 @@ impl Query { uuid: String, ) -> FieldResult { let mut js = context.clone(); - debug!("perspective_snapshot: {}", uuid); let result = js .execute(format!( r#"JSON.stringify(await core.resolvers.Query.perspectiveSnapshot({{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, @@ -354,7 +355,6 @@ impl Query { ALL_CAPABILITY )) .await?; - debug!("perspective_snapshot: {}", result); let perspective_snapshot: Perspective = serde_json::from_str(&result)?; return Ok(perspective_snapshot); } From 82fe858e58555427539a401d6e137f78616201b1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 10 May 2023 14:53:15 +0100 Subject: [PATCH 254/722] dont run dapp server in tests --- tests/js/utils/utils.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index d42aa79a1..08a8f32ad 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -53,9 +53,9 @@ export async function startExecutor(dataPath: string, } if (!reqCredential) { - executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly}`, {}) + executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${reqCredential}`, {}) + executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${reqCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { @@ -96,6 +96,14 @@ export function apolloClient(port: number, token?: string): ApolloClient { } }, })); + // wsLink.client.on('message' as any, (data: any) => { + // console.log(data); + // if (data.payload) { + // if (data.payload.errors) { + // console.dir(data.payload.errors, { depth: null }); + // } + // } + // }); const link = new HttpLink({ uri: `http://127.0.0.1:${port}/graphql`, From ed26c878c44e84741b089c615af7ead8b8c7cbf5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 10 May 2023 14:54:28 +0100 Subject: [PATCH 255/722] integrate makeAllNodesKnown with client methods --- tests/js/tests/full-integration.test.ts | 97 ++++++++++++------------- 1 file changed, 48 insertions(+), 49 deletions(-) diff --git a/tests/js/tests/full-integration.test.ts b/tests/js/tests/full-integration.test.ts index ae87b3895..a666da5f3 100644 --- a/tests/js/tests/full-integration.test.ts +++ b/tests/js/tests/full-integration.test.ts @@ -66,11 +66,10 @@ export class TestContext { } async makeAllNodesKnown() { - //TODO: this should work again with new rust runner - // const aliceAgentInfo = await this.#aliceCore!.holochainRequestAgentInfos() - // const bobAgentInfo = await this.#bobCore!.holochainRequestAgentInfos() - // await this.#aliceCore!.holochainAddAgentInfos(bobAgentInfo) - // await this.#bobCore!.holochainAddAgentInfos(aliceAgentInfo) + const aliceAgentInfo = await this.#alice!.runtime.hcAgentInfos(); + const bobAgentInfo = await this.#bob!.runtime.hcAgentInfos(); + await this.#alice!.runtime.hcAddAgentInfos(bobAgentInfo); + await this.#bob!.runtime.hcAddAgentInfos(aliceAgentInfo); } } let testContext: TestContext = new TestContext() @@ -119,48 +118,48 @@ describe("Integration tests", function () { describe('Agent / Agent-Setup', agentTests(testContext)) describe('Runtime', runtimeTests(testContext)) describe('Expression', expressionTests(testContext)) - describe('Perspective', perspectiveTests(testContext)) - describe('Social DNA', socialDNATests(testContext)) - - describe('with Alice and Bob', () => { - let bobExecutorProcess: ChildProcess | null = null - before(async () => { - const appDataPath = path.join(TEST_DIR, 'agents', 'bob') - const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const gqlPort = 14000 - const hcAdminPort = 12000 - const hcAppPort = 11337 - const ipfsSwarmPort = 14002 - - if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - fs.mkdirSync(path.join(TEST_DIR, 'agents')) - if(!fs.existsSync(appDataPath)) - fs.mkdirSync(appDataPath) - - bobExecutorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); - - testContext.bob = new Ad4mClient(apolloClient(gqlPort)) - testContext.bobCore = bobExecutorProcess - await testContext.bob.agent.generate("passphrase") - - const status = await testContext.bob.agent.status() - - expect(status.isInitialized).to.be.true; - expect(status.isUnlocked).to.be.true; - await testContext.makeAllNodesKnown() - }) - - after(async () => { - if (bobExecutorProcess) { - bobExecutorProcess.kill() - } - await new Promise((resolve)=>setTimeout(resolve, 500)) - }) - - describe('Agent Language', agentLanguageTests(testContext)) - describe('Direct Messages', directMessageTests(testContext)) - describe('Language', languageTests(testContext)) - describe('Neighbourhood', neighbourhoodTests(testContext)) - }) + //describe('Perspective', perspectiveTests(testContext)) + //describe('Social DNA', socialDNATests(testContext)) + + // describe('with Alice and Bob', () => { + // let bobExecutorProcess: ChildProcess | null = null + // before(async () => { + // const bobAppDataPath = path.join(TEST_DIR, 'agents', 'bob') + // const bobBootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + // const bobGqlPort = 14000 + // const bobHcAdminPort = 12000 + // const bobHcAppPort = 11337 + // const bobIpfsSwarmPort = 14002 + + // if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + // fs.mkdirSync(path.join(TEST_DIR, 'agents')) + // if(!fs.existsSync(bobAppDataPath)) + // fs.mkdirSync(bobAppDataPath) + + // bobExecutorProcess = await startExecutor(bobAppDataPath, bobBootstrapSeedPath, + // bobGqlPort, bobHcAdminPort, bobHcAppPort, bobIpfsSwarmPort); + + // testContext.bob = new Ad4mClient(apolloClient(bobGqlPort)) + // testContext.bobCore = bobExecutorProcess + // await testContext.bob.agent.generate("passphrase") + + // const status = await testContext.bob.agent.status() + + // expect(status.isInitialized).to.be.true; + // expect(status.isUnlocked).to.be.true; + // //await testContext.makeAllNodesKnown() + // }) + + // after(async () => { + // if (bobExecutorProcess) { + // bobExecutorProcess.kill() + // } + // await new Promise((resolve)=>setTimeout(resolve, 500)) + // }) + + // describe('Agent Language', agentLanguageTests(testContext)) + // // describe('Direct Messages', directMessageTests(testContext)) + // // describe('Language', languageTests(testContext)) + // // describe('Neighbourhood', neighbourhoodTests(testContext)) + // }) }) \ No newline at end of file From 0ef96db8cf692e53ca59f64c0175721dcd5f4ea9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 10 May 2023 17:09:13 +0100 Subject: [PATCH 256/722] add base for deno holochain service --- rust-executor/Cargo.toml | 2 + .../holochain_service_extension.js | 13 +++ .../holochain_service_extension.rs | 31 ++++++ rust-executor/src/holochain_service/mod.rs | 94 +++++++++++++++++++ rust-executor/src/js_core/options.rs | 4 +- rust-executor/src/js_core/pubsub_extension.rs | 4 +- rust-executor/src/js_core/utils_extension.rs | 4 +- rust-executor/src/lib.rs | 1 + 8 files changed, 148 insertions(+), 5 deletions(-) create mode 100644 rust-executor/src/holochain_service/holochain_service_extension.js create mode 100644 rust-executor/src/holochain_service/holochain_service_extension.rs create mode 100644 rust-executor/src/holochain_service/mod.rs diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 9538a0501..1fe8a773b 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -51,3 +51,5 @@ once_cell = "1.17.1" juniper_graphql_transport_ws = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } juniper_warp = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["subscriptions"] } warp = "0.3.4" + +holochain = "0.1.3" \ No newline at end of file diff --git a/rust-executor/src/holochain_service/holochain_service_extension.js b/rust-executor/src/holochain_service/holochain_service_extension.js new file mode 100644 index 000000000..df210a802 --- /dev/null +++ b/rust-executor/src/holochain_service/holochain_service_extension.js @@ -0,0 +1,13 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.HOLOCHAIN_SERVICE = { + start_holochain_conductor: async (config) => { + return core.opAsync("start_holochain_conductor", config); + }, + log_dht_status: async () => { + return core.opAsync("log_dht_status"); + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs new file mode 100644 index 000000000..ca8b70e67 --- /dev/null +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -0,0 +1,31 @@ +use deno_core::{error::AnyError, include_js_files, op, Extension}; +use log::info; + +use crate::holochain_service::{HolochainService, LocalConductorConfig}; + +use super::get_global_conductor; + +#[op] +async fn start_holochain_conductor(config: LocalConductorConfig) -> Result<(), AnyError> { + HolochainService::new(config).await?; + Ok(()) +} + +#[op] +async fn log_dht_status() -> Result<(), AnyError> { + let conductor = get_global_conductor().await; + let dht_status = conductor.conductor.dump_network_metrics(None).await?; + info!("DHT Status: {:?}", dht_status); + Ok(()) +} + +pub fn build() -> Extension { + Extension::builder("holochain_service") + .js(include_js_files!(holochain_service "holochain_service_extension.js",)) + .ops(vec![ + start_holochain_conductor::decl(), + log_dht_status::decl(), + ]) + .force_op_registration() + .build() +} diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs new file mode 100644 index 000000000..4e8775232 --- /dev/null +++ b/rust-executor/src/holochain_service/mod.rs @@ -0,0 +1,94 @@ +use std::path::PathBuf; +use std::sync::Arc; + +use deno_core::anyhow::anyhow; +use deno_core::error::AnyError; +use holochain::conductor::config::{AdminInterfaceConfig, ConductorConfig}; +use holochain::conductor::interface::InterfaceDriver; +use holochain::conductor::{ConductorBuilder, ConductorHandle}; +use holochain::prelude::InstallAppPayload; +use log::info; +use once_cell::sync::OnceCell; +use serde::{Deserialize, Serialize}; + +pub(crate) mod holochain_service_extension; + +#[derive(Clone)] +pub struct HolochainService { + pub conductor: ConductorHandle, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct LocalConductorConfig { + pub passphrase: String, + pub conductor_path: String, + pub data_path: String, + pub use_bootstrap: bool, + pub use_proxy: bool, + pub use_local_proxy: bool, + pub use_mdns: bool, +} + +impl HolochainService { + pub async fn new(local_config: LocalConductorConfig) -> Result { + let mut config = ConductorConfig::default(); + config.environment_path = PathBuf::from(local_config.conductor_path.clone()).into(); + config.admin_interfaces = None; + + //TODO; handle using proxy/bootstrap/mdns + + info!("Starting holochain conductor with config: {:?}", config); + let conductor = ConductorBuilder::new() + .config(config) + .passphrase(Some(local_config.passphrase.as_bytes().into())) + .build() + .await + .map_err(|err| anyhow!("Could not build conductor: {:?}", err))?; + let service = Self { conductor }; + + let set_res = HOLOCHAIN_CONDUCTOR.set(Arc::new(service.clone())); + if set_res.is_err() { + panic!("Could not set global conductor"); + } + + info!("Started holochain conductor and set reference in rust executor"); + + Ok(service) + } + + pub async fn install_app( + &self, + install_app_payload: InstallAppPayload, + ) -> Result<(), AnyError> { + if install_app_payload.installed_app_id.is_none() { + return Err(anyhow!("App id is required")); + } + + let app_id = install_app_payload.installed_app_id.clone().unwrap(); + + self.conductor + .clone() + .install_app_bundle(install_app_payload) + .await + .map_err(|e| anyhow!("Could not install app: {:?}", e))?; + let activate = self + .conductor + .clone() + .enable_app(app_id) + .await + .map_err(|e| anyhow!("Could not activate app: {:?}", e))?; + + info!("Installed app with result: {:?}", activate.0); + Ok(()) + } +} + +static HOLOCHAIN_CONDUCTOR: OnceCell> = OnceCell::new(); + +pub async fn get_global_conductor() -> Arc { + HOLOCHAIN_CONDUCTOR + .get() + .expect("Conductor not initialized") + .clone() +} diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs index a536d0563..5c6331f47 100644 --- a/rust-executor/src/js_core/options.rs +++ b/rust-executor/src/js_core/options.rs @@ -5,6 +5,7 @@ use url::Url; use super::{ pubsub_extension, string_module_loader::StringModuleLoader, utils_extension, wallet_extension, }; +use crate::holochain_service::holochain_service_extension; pub fn main_module_url() -> Url { Url::parse("https://ad4m.runtime/main").unwrap() @@ -36,9 +37,10 @@ pub fn main_worker_options() -> WorkerOptions { let wallet_ext = wallet_extension::build(); let utils_ext = utils_extension::build(); let sub_ext = pubsub_extension::build(); + let holochain_ext = holochain_service_extension::build(); WorkerOptions { - extensions: vec![wallet_ext, utils_ext, sub_ext], + extensions: vec![wallet_ext, utils_ext, sub_ext, holochain_ext], module_loader: Rc::new(loader), ..Default::default() } diff --git a/rust-executor/src/js_core/pubsub_extension.rs b/rust-executor/src/js_core/pubsub_extension.rs index f11c1bfd5..090caf7d5 100644 --- a/rust-executor/src/js_core/pubsub_extension.rs +++ b/rust-executor/src/js_core/pubsub_extension.rs @@ -10,8 +10,8 @@ async fn publish(topic: String, data: String) -> Result<(), AnyError> { } pub fn build() -> Extension { - Extension::builder("wallet") - .js(include_js_files!(wallet "pubsub_extension.js",)) + Extension::builder("pubsub") + .js(include_js_files!(pub_sub "pubsub_extension.js",)) .ops(vec![publish::decl()]) .force_op_registration() .build() diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index a36d000fa..0ab8820f0 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -42,8 +42,8 @@ async fn load_module(path: String) -> Result { } pub fn build() -> Extension { - Extension::builder("wallet") - .js(include_js_files!(wallet "utils_extension.js",)) + Extension::builder("utils") + .js(include_js_files!(utils "utils_extension.js",)) .ops(vec![ get_signing_dna::decl(), hash::decl(), diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 4516be554..d1167ba53 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -5,6 +5,7 @@ mod js_core; mod utils; mod wallet; +mod holochain_service; pub mod init; mod pubsub; From c963f4b8528fbb3a74f24fa4868ba3b3d8927887 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 10 May 2023 22:33:43 +0100 Subject: [PATCH 257/722] add call_zome_function to holochain service --- .../holochain_service_extension.js | 6 ++ .../holochain_service_extension.rs | 24 ++++++ rust-executor/src/holochain_service/mod.rs | 75 ++++++++++++++++++- 3 files changed, 104 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/holochain_service/holochain_service_extension.js b/rust-executor/src/holochain_service/holochain_service_extension.js index df210a802..d050aecba 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.js +++ b/rust-executor/src/holochain_service/holochain_service_extension.js @@ -7,6 +7,12 @@ }, log_dht_status: async () => { return core.opAsync("log_dht_status"); + }, + install_app: async (install_app_payload) => { + return core.opAsync("install_app", install_app_payload); + }, + call_zome_function: async (app_id, cell_name, zome_name, fn_name, payload) => { + return core.opAsync("call_zome_function", app_id, cell_name, zome_name, fn_name, payload); } }; })(globalThis); diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index ca8b70e67..353d7605f 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -1,4 +1,5 @@ use deno_core::{error::AnyError, include_js_files, op, Extension}; +use holochain::prelude::{InstallAppPayload, ZomeCallResponse}; use log::info; use crate::holochain_service::{HolochainService, LocalConductorConfig}; @@ -19,12 +20,35 @@ async fn log_dht_status() -> Result<(), AnyError> { Ok(()) } +#[op] +async fn install_app(install_app_payload: InstallAppPayload) -> Result<(), AnyError> { + let conductor = get_global_conductor().await; + conductor.install_app(install_app_payload).await?; + Ok(()) +} + +#[op] +async fn call_zome_function( + app_id: String, + cell_name: String, + zome_name: String, + fn_name: String, + payload: serde_json::Value, +) -> Result { + let conductor = get_global_conductor().await; + conductor + .call_zome_function(app_id, cell_name, zome_name, fn_name, payload) + .await +} + pub fn build() -> Extension { Extension::builder("holochain_service") .js(include_js_files!(holochain_service "holochain_service_extension.js",)) .ops(vec![ start_holochain_conductor::decl(), log_dht_status::decl(), + install_app::decl(), + call_zome_function::decl(), ]) .force_op_registration() .build() diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 4e8775232..386f4ba70 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -3,12 +3,16 @@ use std::sync::Arc; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; +use holochain::conductor::api::{CellInfo, ZomeCall}; use holochain::conductor::config::{AdminInterfaceConfig, ConductorConfig}; use holochain::conductor::interface::InterfaceDriver; use holochain::conductor::{ConductorBuilder, ConductorHandle}; -use holochain::prelude::InstallAppPayload; +use holochain::prelude::{ + ExternIO, InstallAppPayload, Timestamp, ZomeCallResponse, ZomeCallUnsigned, +}; use log::info; use once_cell::sync::OnceCell; +use rand::Rng; use serde::{Deserialize, Serialize}; pub(crate) mod holochain_service_extension; @@ -82,6 +86,75 @@ impl HolochainService { info!("Installed app with result: {:?}", activate.0); Ok(()) } + + pub async fn call_zome_function( + &self, + app_id: String, + cell_name: String, + zome_name: String, + fn_name: String, + payload: serde_json::Value, + ) -> Result { + let app_info = self.conductor.get_app_info(&app_id).await?; + + if app_info.is_none() { + return Err(anyhow!("App not installed with id: {:?}", app_id)); + } + + let app_info = app_info.unwrap(); + + let cell_entry = app_info.cell_info.get(&cell_name); + + if cell_entry.is_none() { + return Err(anyhow!( + "Cell not installed with name: {:?} in app: {:?}", + cell_name, + app_id + )); + } + + if cell_entry.unwrap().len() == 0 { + return Err(anyhow!( + "No cells for cell name: {:?} in app: {:?}", + cell_name, + app_id + )); + } + + let cell_info = cell_entry.unwrap().first().unwrap().clone(); + let cell_id = match cell_info { + CellInfo::Provisioned(cell) => cell.cell_id, + CellInfo::Cloned(cell) => cell.cell_id, + CellInfo::Stem(_cell) => return Err(anyhow!("Cell is not provisioned or cloned",)), + }; + + let agent_pub_key = app_info.agent_pub_key; + + //Get the agents pub key from the conductor + + let mut rng = rand::thread_rng(); + let random_bytes: [u8; 32] = rng.gen(); + + let zome_call_unsigned = ZomeCallUnsigned { + cell_id: cell_id, + zome_name: zome_name.into(), + fn_name: fn_name.into(), + payload: ExternIO::from(serde_json::to_vec(&payload).unwrap()), + cap_secret: None, + provenance: agent_pub_key, + nonce: random_bytes.into(), + expires_at: Timestamp::from_micros(300000000), + }; + + let keystore = self.conductor.keystore(); + let signed_zome_call = ZomeCall::try_from_unsigned_zome_call(keystore, zome_call_unsigned) + .await + .map_err(|err| anyhow!("Could not sign zome call: {:?}", err))?; + + let result = self.conductor.call_zome(signed_zome_call).await??; + + Ok(result) + } } static HOLOCHAIN_CONDUCTOR: OnceCell> = OnceCell::new(); From a0d808d97ec2f7f19506c38792c74f08e46995ba Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 11 May 2023 00:15:23 +0100 Subject: [PATCH 258/722] implement agent_infos, add_agent_infos, remove_app & sign_string --- .../holochain_service_extension.js | 12 +++++ .../holochain_service_extension.rs | 38 ++++++++++++++- rust-executor/src/holochain_service/mod.rs | 48 +++++++++++++++++-- 3 files changed, 94 insertions(+), 4 deletions(-) diff --git a/rust-executor/src/holochain_service/holochain_service_extension.js b/rust-executor/src/holochain_service/holochain_service_extension.js index d050aecba..5f0fcbaf8 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.js +++ b/rust-executor/src/holochain_service/holochain_service_extension.js @@ -13,6 +13,18 @@ }, call_zome_function: async (app_id, cell_name, zome_name, fn_name, payload) => { return core.opAsync("call_zome_function", app_id, cell_name, zome_name, fn_name, payload); + }, + agent_infos: async () => { + return core.opAsync("agent_infos"); + }, + add_agent_infos: async (agent_infos) => { + return core.opAsync("add_agent_infos", agent_info); + }, + remove_app: async (app_id) => { + return core.opAsync("remove_app", app_id); + }, + sign_string: async (string) => { + return core.opAsync("sign_string", string); } }; })(globalThis); diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 353d7605f..99909f573 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -1,5 +1,7 @@ use deno_core::{error::AnyError, include_js_files, op, Extension}; -use holochain::prelude::{InstallAppPayload, ZomeCallResponse}; +use holochain::prelude::{ + agent_store::AgentInfoSigned, InstallAppPayload, Signature, ZomeCallResponse, +}; use log::info; use crate::holochain_service::{HolochainService, LocalConductorConfig}; @@ -27,6 +29,8 @@ async fn install_app(install_app_payload: InstallAppPayload) -> Result<(), AnyEr Ok(()) } +//TODO +//Have install app use lair to generate the membrane proof #[op] async fn call_zome_function( app_id: String, @@ -41,6 +45,34 @@ async fn call_zome_function( .await } +#[op] +async fn agent_infos() -> Result, AnyError> { + let conductor = get_global_conductor().await; + conductor.agent_infos().await +} + +#[op] +async fn add_agent_infos(agent_infos_payload: Vec) -> Result<(), AnyError> { + let conductor = get_global_conductor().await; + conductor.add_agent_infos(agent_infos_payload).await +} + +#[op] +async fn remove_app(app_id: String) -> Result<(), AnyError> { + let conductor = get_global_conductor().await; + conductor.remove_app(app_id).await +} + +#[op] +async fn sign_string(data: String) -> Result { + let conductor: std::sync::Arc = get_global_conductor().await; + conductor.sign(data).await +} + +//TODO: implement dna packing and unpacking (not currently possible with holochain_cli_bundle unpack / pack functions since it does not exposed the functions in lib) + +//Implement signal callbacks from dna/holochain to js + pub fn build() -> Extension { Extension::builder("holochain_service") .js(include_js_files!(holochain_service "holochain_service_extension.js",)) @@ -49,6 +81,10 @@ pub fn build() -> Extension { log_dht_status::decl(), install_app::decl(), call_zome_function::decl(), + agent_infos::decl(), + add_agent_infos::decl(), + remove_app::decl(), + sign_string::decl(), ]) .force_op_registration() .build() diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 386f4ba70..1abf116dd 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -4,11 +4,11 @@ use std::sync::Arc; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use holochain::conductor::api::{CellInfo, ZomeCall}; -use holochain::conductor::config::{AdminInterfaceConfig, ConductorConfig}; -use holochain::conductor::interface::InterfaceDriver; +use holochain::conductor::config::ConductorConfig; use holochain::conductor::{ConductorBuilder, ConductorHandle}; +use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::{ - ExternIO, InstallAppPayload, Timestamp, ZomeCallResponse, ZomeCallUnsigned, + ExternIO, InstallAppPayload, Signature, Timestamp, ZomeCallResponse, ZomeCallUnsigned, }; use log::info; use once_cell::sync::OnceCell; @@ -76,6 +76,7 @@ impl HolochainService { .install_app_bundle(install_app_payload) .await .map_err(|e| anyhow!("Could not install app: {:?}", e))?; + let activate = self .conductor .clone() @@ -155,6 +156,47 @@ impl HolochainService { Ok(result) } + + pub async fn remove_app(&self, app_id: String) -> Result<(), AnyError> { + //Check that the app exists on the conductor + let app_info = self.conductor.get_app_info(&app_id).await?; + + if app_info.is_none() { + return Err(anyhow!("App not installed with id: {:?}", app_id)); + } + + self.conductor + .clone() + .uninstall_app(&app_id) + .await + .map_err(|e| anyhow!("Could not remove app: {:?}", e))?; + + info!("Removed app with id: {:?}", app_id); + Ok(()) + } + + pub async fn agent_infos(&self) -> Result, AnyError> { + Ok(self.conductor.get_agent_infos(None).await?) + } + + pub async fn add_agent_infos(&self, agent_infos: Vec) -> Result<(), AnyError> { + Ok(self.conductor.add_agent_infos(agent_infos).await?) + } + + pub async fn sign(&self, data: String) -> Result { + let keystore = self.conductor.keystore(); + let pub_keys = keystore.list_public_keys().await?; + if pub_keys.len() == 0 { + return Err(anyhow!("No public keys found")); + } + let agent = pub_keys.first().unwrap(); + + let vec_u8 = data.into_bytes(); + let data = Arc::from(vec_u8.into_boxed_slice()); + + let signature = keystore.sign(agent.clone(), data).await?; + Ok(signature) + } } static HOLOCHAIN_CONDUCTOR: OnceCell> = OnceCell::new(); From 3ae781074e17e4364689c2fb7cfbcd2b18dc3cc0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 11 May 2023 00:46:27 +0100 Subject: [PATCH 259/722] add the logic in core async loop to handle the async receiving of holochain signals --- rust-executor/src/holochain_service/mod.rs | 16 +++++++++++-- rust-executor/src/js_core/mod.rs | 26 ++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 1abf116dd..40cad1883 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -8,18 +8,21 @@ use holochain::conductor::config::ConductorConfig; use holochain::conductor::{ConductorBuilder, ConductorHandle}; use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::{ - ExternIO, InstallAppPayload, Signature, Timestamp, ZomeCallResponse, ZomeCallUnsigned, + ExternIO, InstallAppPayload, Signature, Timestamp, ZomeCallResponse, ZomeCallUnsigned, Signal, }; use log::info; use once_cell::sync::OnceCell; use rand::Rng; use serde::{Deserialize, Serialize}; +use holochain::prelude::kitsune_p2p::dependencies::kitsune_p2p_types::dependencies::lair_keystore_api::dependencies::tokio::sync::broadcast::Receiver; +use tokio::sync::Mutex; pub(crate) mod holochain_service_extension; #[derive(Clone)] pub struct HolochainService { pub conductor: ConductorHandle, + pub signal_receivers: Arc>>>, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -49,7 +52,12 @@ impl HolochainService { .build() .await .map_err(|err| anyhow!("Could not build conductor: {:?}", err))?; - let service = Self { conductor }; + let signal_broadcaster = conductor.signal_broadcaster(); + + let service = Self { + conductor, + signal_receivers: Arc::new(Mutex::new(signal_broadcaster.subscribe_separately())), + }; let set_res = HOLOCHAIN_CONDUCTOR.set(Arc::new(service.clone())); if set_res.is_err() { @@ -207,3 +215,7 @@ pub async fn get_global_conductor() -> Arc { .expect("Conductor not initialized") .clone() } + +pub async fn maybe_get_global_conductor() -> Option> { + HOLOCHAIN_CONDUCTOR.get().map(|c| c.clone()) +} diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 7b899231f..41957ed65 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -25,6 +25,7 @@ mod utils_extension; mod wallet_extension; use self::futures::{EventLoopFuture, GlobalVariableFuture}; +use crate::holochain_service::maybe_get_global_conductor; use crate::Ad4mConfig; use options::{main_module_url, main_worker_options}; @@ -333,6 +334,27 @@ impl JsCore { } }; + let holochain_signal_receiver_fut = async { + if let Some(holochain_service) = maybe_get_global_conductor().await { + let signal_receivers = holochain_service.signal_receivers.clone(); + let mut signal_receivers = signal_receivers.lock().await; + + for receiver in signal_receivers.iter_mut() { + match receiver.try_recv() { + Ok(signal) => { + // Handle the received signal here + println!("Received signal: {:?}", signal); + } + Err(_err) => { + // The channel is empty; no signal is available + } + } + } + } else { + println!("HolochainService is not available."); + } + }; + //NOTE: WARNING!!!!!: Its is possible that if we get a request such as generate agent and then another to load a module, //since the load module would complete first it will cause the request future to be "lost" and thus the graphql will not get a response //we should track this and if required change the behaviour here so that we ensure we continue to run a receive_fut even in the case where @@ -367,6 +389,10 @@ impl JsCore { info!("AD4M module load completed"); break; } + _holochain_signal_receivers = holochain_signal_receiver_fut => { + info!("AD4M holochain signal receiver completed"); + break; + } } } }) From 1dc5781314acee903c356e00fca82f3d699e61b9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 11 May 2023 00:49:07 +0100 Subject: [PATCH 260/722] remove old warning --- rust-executor/src/js_core/mod.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 41957ed65..37e4b70ff 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -355,11 +355,6 @@ impl JsCore { } }; - //NOTE: WARNING!!!!!: Its is possible that if we get a request such as generate agent and then another to load a module, - //since the load module would complete first it will cause the request future to be "lost" and thus the graphql will not get a response - //we should track this and if required change the behaviour here so that we ensure we continue to run a receive_fut even in the case where - //a module_load_fut completes - //Using join! here might work if we ensure that the receive fut & module load fut's contain loops and run forever tokio::select! { event_loop_result = js_core.event_loop() => { match event_loop_result { From 5bfaa0ea0a0e6ab987d81869fbe6faf2b75a8ddd Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 11 May 2023 13:10:37 +0100 Subject: [PATCH 261/722] have the rust holochain signal handler call the JS holochain service handleAppSignal --- executor/src/core/PerspectivismCore.ts | 7 +++++++ rust-executor/src/js_core/mod.rs | 21 ++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index de995bfa2..8ddac1224 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -91,6 +91,13 @@ export default class PerspectivismCore { }) } + get holochainService(): HolochainService { + if (!this.#holochain) { + throw Error("No holochain service") + } + return this.#holochain + } + get agentService(): AgentService { return this.#agentService } diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 37e4b70ff..e05efd1d9 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -343,7 +343,26 @@ impl JsCore { match receiver.try_recv() { Ok(signal) => { // Handle the received signal here - println!("Received signal: {:?}", signal); + info!("Received signal: {:?}", signal); + match js_core.execute_async(format!( + "await core.getHolochainService().handleCallback({:?})", + signal + )) { + Ok(script_fut) => match script_fut.await { + Ok(res) => { + info!( + "Callback executed successfully: {:?}", + res + ); + } + Err(err) => { + error!("Error executing callback: {:?}", err); + } + }, + Err(err) => { + error!("Error executing callback: {:?}", err); + } + } } Err(_err) => { // The channel is empty; no signal is available From 3f0c7b837cc2e2bd4cf9cbcb41568eac43b65663 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 11 May 2023 13:13:52 +0100 Subject: [PATCH 262/722] handle app and system signals seperately --- rust-executor/src/js_core/mod.rs | 48 ++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index e05efd1d9..aa4f5776c 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -3,6 +3,7 @@ use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; +use holochain::prelude::Signal; use log::{error, info}; use once_cell::sync::Lazy; use std::env::current_dir; @@ -342,25 +343,36 @@ impl JsCore { for receiver in signal_receivers.iter_mut() { match receiver.try_recv() { Ok(signal) => { - // Handle the received signal here - info!("Received signal: {:?}", signal); - match js_core.execute_async(format!( - "await core.getHolochainService().handleCallback({:?})", - signal - )) { - Ok(script_fut) => match script_fut.await { - Ok(res) => { - info!( - "Callback executed successfully: {:?}", - res - ); + match signal { + Signal::App { + cell_id, + zome_name, + signal, + } => { + // Handle the received signal here + info!("Received signal: {:?}", signal); + match js_core.execute_async(format!( + "await core.getHolochainService().handleCallback({:?})", + Signal::App { cell_id, zome_name, signal } + )) { + Ok(script_fut) => match script_fut.await { + Ok(res) => { + info!( + "Callback executed successfully: {:?}", + res + ); + } + Err(err) => { + error!("Error executing callback: {:?}", err); + } + }, + Err(err) => { + error!("Error executing callback: {:?}", err); + } } - Err(err) => { - error!("Error executing callback: {:?}", err); - } - }, - Err(err) => { - error!("Error executing callback: {:?}", err); + } + Signal::System(system_signal) => { + info!("Received system signal: {:?}", system_signal) } } } From 2f4a2f373750c69f323a540a1381cb6780846e70 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 11 May 2023 13:22:04 +0100 Subject: [PATCH 263/722] add holochain extension type declarations --- executor/src/holochain_service_extension.d.ts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 executor/src/holochain_service_extension.d.ts diff --git a/executor/src/holochain_service_extension.d.ts b/executor/src/holochain_service_extension.d.ts new file mode 100644 index 000000000..f1c3874db --- /dev/null +++ b/executor/src/holochain_service_extension.d.ts @@ -0,0 +1,28 @@ +import { AgentInfoSigned, CallZomeResponse, InstallAppRequest, Signature } from "@holochain/client"; + +declare global { + interface ConductorConfig { + passphrase: String, + conductorPath: String, + dataPath: String, + useBootstrap: bool, + useProxy: bool, + useLocalProxy: bool, + useMdns: bool, + } + + interface HolochainService { + async startHolochainService: (config: ConductorConfig) => void; + async logDhtStatus: () => void; + async installApp: (install_app_payload: InstallAppRequest) => void; + async callZomeFunction: (app_id: String, cell_name: String, zome_name: String, fn_name: String, payload: any) => CallZomeResponse; + async agentInfos: () => AgentInfoSigned[]; + async addAgentInfos: (agent_infos: AgentInfoSigned[]) => void; + async removeApp: (app_id: String) => void; + async signString: (string: String) => Signature; + } + + const HOLOCHAIN_SERVICE: HolochainService; +} + +export {}; \ No newline at end of file From 452879e7141f31bf25cfac4b421778169bf80696 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 11 May 2023 13:34:45 +0100 Subject: [PATCH 264/722] load already existing conductor yaml if it exists --- rust-executor/src/holochain_service/mod.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 40cad1883..8b61047be 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -1,3 +1,4 @@ +use std::os; use std::path::PathBuf; use std::sync::Arc; @@ -39,9 +40,17 @@ pub struct LocalConductorConfig { impl HolochainService { pub async fn new(local_config: LocalConductorConfig) -> Result { - let mut config = ConductorConfig::default(); - config.environment_path = PathBuf::from(local_config.conductor_path.clone()).into(); - config.admin_interfaces = None; + let conductor_yaml_path = + std::path::Path::new(&local_config.conductor_path).join("conductor_config.yaml"); + let config = if conductor_yaml_path.exists() { + let config = ConductorConfig::load_yaml(&conductor_yaml_path)?; + config + } else { + let mut config = ConductorConfig::default(); + config.environment_path = PathBuf::from(local_config.conductor_path.clone()).into(); + config.admin_interfaces = None; + config + }; //TODO; handle using proxy/bootstrap/mdns From e2c80023867c18faa834b7d7a9fcf1b59e4c7639 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 11 May 2023 14:06:17 +0100 Subject: [PATCH 265/722] add holochain service functions get_app_info, shutdown & get_agent_key and make install_app more robust returning AppInfo --- executor/src/holochain_service_extension.d.ts | 7 +- .../holochain_service_extension.js | 9 +++ .../holochain_service_extension.rs | 34 ++++++++-- rust-executor/src/holochain_service/mod.rs | 67 ++++++++++++++----- 4 files changed, 93 insertions(+), 24 deletions(-) diff --git a/executor/src/holochain_service_extension.d.ts b/executor/src/holochain_service_extension.d.ts index f1c3874db..49893cdeb 100644 --- a/executor/src/holochain_service_extension.d.ts +++ b/executor/src/holochain_service_extension.d.ts @@ -1,4 +1,4 @@ -import { AgentInfoSigned, CallZomeResponse, InstallAppRequest, Signature } from "@holochain/client"; +import { AgentInfoSigned, AgentPubKey, AppInfo, CallZomeResponse, InstallAppRequest, Signature } from "@holochain/client"; declare global { interface ConductorConfig { @@ -14,12 +14,15 @@ declare global { interface HolochainService { async startHolochainService: (config: ConductorConfig) => void; async logDhtStatus: () => void; - async installApp: (install_app_payload: InstallAppRequest) => void; + async installApp: (install_app_payload: InstallAppRequest) => AppInfo; + async getAppInfo: (app_id: String) => AppInfo | null; async callZomeFunction: (app_id: String, cell_name: String, zome_name: String, fn_name: String, payload: any) => CallZomeResponse; async agentInfos: () => AgentInfoSigned[]; async addAgentInfos: (agent_infos: AgentInfoSigned[]) => void; async removeApp: (app_id: String) => void; async signString: (string: String) => Signature; + async shutdown: () => void; + async getAgentKey: () => AgentPubKey; } const HOLOCHAIN_SERVICE: HolochainService; diff --git a/rust-executor/src/holochain_service/holochain_service_extension.js b/rust-executor/src/holochain_service/holochain_service_extension.js index 5f0fcbaf8..7ef03baa2 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.js +++ b/rust-executor/src/holochain_service/holochain_service_extension.js @@ -11,6 +11,9 @@ install_app: async (install_app_payload) => { return core.opAsync("install_app", install_app_payload); }, + get_app_info: async (app_id) => { + return core.opAsync("get_app_info", app_id); + }, call_zome_function: async (app_id, cell_name, zome_name, fn_name, payload) => { return core.opAsync("call_zome_function", app_id, cell_name, zome_name, fn_name, payload); }, @@ -25,6 +28,12 @@ }, sign_string: async (string) => { return core.opAsync("sign_string", string); + }, + shutdown: async () => { + return core.opAsync("shutdown") + }, + get_agent_key: async () => { + return core.opAsync("get_agent_key") } }; })(globalThis); diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 99909f573..782bfb07c 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -1,6 +1,10 @@ use deno_core::{error::AnyError, include_js_files, op, Extension}; -use holochain::prelude::{ - agent_store::AgentInfoSigned, InstallAppPayload, Signature, ZomeCallResponse, +use holochain::{ + conductor::api::AppInfo, + prelude::{ + agent_store::AgentInfoSigned, hash_type::Agent, HoloHash, InstallAppPayload, Signature, + ZomeCallResponse, + }, }; use log::info; @@ -23,10 +27,15 @@ async fn log_dht_status() -> Result<(), AnyError> { } #[op] -async fn install_app(install_app_payload: InstallAppPayload) -> Result<(), AnyError> { +async fn install_app(install_app_payload: InstallAppPayload) -> Result { let conductor = get_global_conductor().await; - conductor.install_app(install_app_payload).await?; - Ok(()) + conductor.install_app(install_app_payload).await +} + +#[op] +async fn get_app_info(app_id: String) -> Result, AnyError> { + let conductor = get_global_conductor().await; + conductor.get_app_info(app_id).await } //TODO @@ -69,6 +78,18 @@ async fn sign_string(data: String) -> Result { conductor.sign(data).await } +#[op] +async fn shutdown() -> Result<(), AnyError> { + let conductor = get_global_conductor().await; + conductor.shutdown().await +} + +#[op] +async fn get_agent_key() -> Result, AnyError> { + let conductor = get_global_conductor().await; + conductor.get_agent_key().await +} + //TODO: implement dna packing and unpacking (not currently possible with holochain_cli_bundle unpack / pack functions since it does not exposed the functions in lib) //Implement signal callbacks from dna/holochain to js @@ -80,11 +101,14 @@ pub fn build() -> Extension { start_holochain_conductor::decl(), log_dht_status::decl(), install_app::decl(), + get_app_info::decl(), call_zome_function::decl(), agent_infos::decl(), add_agent_infos::decl(), remove_app::decl(), sign_string::decl(), + shutdown::decl(), + get_agent_key::decl(), ]) .force_op_registration() .build() diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 8b61047be..3baca4fbe 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -4,12 +4,13 @@ use std::sync::Arc; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; -use holochain::conductor::api::{CellInfo, ZomeCall}; +use holochain::conductor::api::{CellInfo, ZomeCall, AppInfo}; use holochain::conductor::config::ConductorConfig; use holochain::conductor::{ConductorBuilder, ConductorHandle}; use holochain::prelude::agent_store::AgentInfoSigned; +use holochain::prelude::hash_type::Agent; use holochain::prelude::{ - ExternIO, InstallAppPayload, Signature, Timestamp, ZomeCallResponse, ZomeCallUnsigned, Signal, + ExternIO, InstallAppPayload, Signature, Timestamp, ZomeCallResponse, ZomeCallUnsigned, Signal, HoloHash, }; use log::info; use once_cell::sync::OnceCell; @@ -81,28 +82,40 @@ impl HolochainService { pub async fn install_app( &self, install_app_payload: InstallAppPayload, - ) -> Result<(), AnyError> { + ) -> Result { if install_app_payload.installed_app_id.is_none() { return Err(anyhow!("App id is required")); } let app_id = install_app_payload.installed_app_id.clone().unwrap(); - self.conductor - .clone() - .install_app_bundle(install_app_payload) - .await - .map_err(|e| anyhow!("Could not install app: {:?}", e))?; - - let activate = self - .conductor - .clone() - .enable_app(app_id) - .await - .map_err(|e| anyhow!("Could not activate app: {:?}", e))?; + //Check if app_id already exists + let app_info = self.conductor.get_app_info(&app_id).await?; - info!("Installed app with result: {:?}", activate.0); - Ok(()) + match app_info { + None => { + self.conductor + .clone() + .install_app_bundle(install_app_payload) + .await + .map_err(|e| anyhow!("Could not install app: {:?}", e))?; + + let activate = self + .conductor + .clone() + .enable_app(app_id.clone()) + .await + .map_err(|e| anyhow!("Could not activate app: {:?}", e))?; + info!("Installed app with result: {:?}", activate); + + let app_info = self.conductor.get_app_info(&app_id).await?; + Ok(app_info.unwrap()) + } + Some(app_info) => { + info!("App already installed with id: {:?}", app_id); + Ok(app_info) + } + } } pub async fn call_zome_function( @@ -214,6 +227,26 @@ impl HolochainService { let signature = keystore.sign(agent.clone(), data).await?; Ok(signature) } + + pub async fn shutdown(&self) -> Result<(), AnyError> { + self.conductor.shutdown().await??; + Ok(()) + } + + pub async fn get_agent_key(&self) -> Result, AnyError> { + let keystore = self.conductor.keystore(); + let pub_keys = keystore.list_public_keys().await?; + if pub_keys.len() == 0 { + return Err(anyhow!("No public keys found")); + } + let agent = pub_keys.first().unwrap(); + info!("Agent key: {:?}", agent); + Ok(agent.to_owned()) + } + + pub async fn get_app_info(&self, app_id: String) -> Result, AnyError> { + Ok(self.conductor.get_app_info(&app_id).await?) + } } static HOLOCHAIN_CONDUCTOR: OnceCell> = OnceCell::new(); From 28ec11db0ca16064d143077cc8e81fdd649bb859 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 11 May 2023 15:59:00 +0100 Subject: [PATCH 266/722] correctly pass p2p kitsune params to conductor config --- rust-executor/src/holochain_service/mod.rs | 45 ++++++++++++++++++++-- rust-executor/src/js_core/mod.rs | 8 ++-- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 3baca4fbe..b6e77ca12 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -1,4 +1,3 @@ -use std::os; use std::path::PathBuf; use std::sync::Arc; @@ -9,8 +8,9 @@ use holochain::conductor::config::ConductorConfig; use holochain::conductor::{ConductorBuilder, ConductorHandle}; use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::hash_type::Agent; +use holochain::prelude::kitsune_p2p::dependencies::url2::Url2; use holochain::prelude::{ - ExternIO, InstallAppPayload, Signature, Timestamp, ZomeCallResponse, ZomeCallUnsigned, Signal, HoloHash, + ExternIO, InstallAppPayload, Signature, Timestamp, ZomeCallResponse, ZomeCallUnsigned, Signal, HoloHash, KitsuneP2pConfig, NetworkType, TransportConfig, ProxyConfig, }; use log::info; use once_cell::sync::OnceCell; @@ -37,6 +37,8 @@ pub struct LocalConductorConfig { pub use_proxy: bool, pub use_local_proxy: bool, pub use_mdns: bool, + pub proxy_url: String, + pub bootstrap_url: String, } impl HolochainService { @@ -50,11 +52,42 @@ impl HolochainService { let mut config = ConductorConfig::default(); config.environment_path = PathBuf::from(local_config.conductor_path.clone()).into(); config.admin_interfaces = None; + + let mut kitsune_config = KitsuneP2pConfig::default(); + + if local_config.use_bootstrap { + kitsune_config.bootstrap_service = Some(Url2::parse(local_config.bootstrap_url)); + } else { + kitsune_config.bootstrap_service = None; + } + if local_config.use_mdns { + kitsune_config.network_type = NetworkType::QuicMdns; + } else { + kitsune_config.network_type = NetworkType::QuicBootstrap; + } + if local_config.use_proxy { + kitsune_config.transport_pool = vec![TransportConfig::Proxy { + sub_transport: Box::new(TransportConfig::Quic { + bind_to: None, + override_host: None, + override_port: None, + }), + proxy_config: ProxyConfig::RemoteProxyClient { + proxy_url: Url2::parse(local_config.proxy_url), + }, + }]; + } else { + kitsune_config.transport_pool = vec![TransportConfig::Quic { + bind_to: None, + override_host: None, + override_port: None, + }]; + } + config.network = Some(kitsune_config); + config }; - //TODO; handle using proxy/bootstrap/mdns - info!("Starting holochain conductor with config: {:?}", config); let conductor = ConductorBuilder::new() .config(config) @@ -62,7 +95,10 @@ impl HolochainService { .build() .await .map_err(|err| anyhow!("Could not build conductor: {:?}", err))?; + + info!("Started holochain conductor"); let signal_broadcaster = conductor.signal_broadcaster(); + info!("Got signal broadcaster"); let service = Self { conductor, @@ -70,6 +106,7 @@ impl HolochainService { }; let set_res = HOLOCHAIN_CONDUCTOR.set(Arc::new(service.clone())); + info!("Set global conductor"); if set_res.is_err() { panic!("Could not set global conductor"); } diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index aa4f5776c..5bba5f176 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -336,7 +336,9 @@ impl JsCore { }; let holochain_signal_receiver_fut = async { + //loop { if let Some(holochain_service) = maybe_get_global_conductor().await { + info!("Found holochain service"); let signal_receivers = holochain_service.signal_receivers.clone(); let mut signal_receivers = signal_receivers.lock().await; @@ -382,8 +384,9 @@ impl JsCore { } } } else { - println!("HolochainService is not available."); + //println!("HolochainService is not available."); } + //} }; tokio::select! { @@ -416,8 +419,7 @@ impl JsCore { break; } _holochain_signal_receivers = holochain_signal_receiver_fut => { - info!("AD4M holochain signal receiver completed"); - break; + //info!("AD4M holochain signal receiver completed"); } } } From 74d4be9c9206bd42f5582db2c12084f82cf8d835 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 12 May 2023 00:28:00 +0100 Subject: [PATCH 267/722] fix up core to work with new holochain service --- executor/src/core/PerspectivismCore.ts | 16 ++------------- .../src/core/graphQL-interface/GraphQL.ts | 20 +++++++------------ 2 files changed, 9 insertions(+), 27 deletions(-) diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index 8ddac1224..f567413b0 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -213,18 +213,6 @@ export default class PerspectivismCore { }); } - async connectHolochain(params: ConnectHolochainParams) { - console.log("Init ad4m service with resource path ", this.#config.resourcePath) - console.log(`Holochain ports: admin=${params.hcPortAdmin} app=${params.hcPortApp}`) - this.#holochain = new HolochainService({ - dataPath: this.#config.holochainDataPath, - resourcePath: this.#config.resourcePath, - adminPort: params.hcPortAdmin, - appPort: params.hcPortApp, - }, this.#agentService, this.entanglementProofController) - await this.#holochain.connect(); - } - async waitForAgent(): Promise { return this.#agentService.ready } @@ -353,7 +341,7 @@ export default class PerspectivismCore { } async pubKeyForLanguage(lang: string): Promise { - return Buffer.from(await this.#holochain!.pubKeyForLanguage(lang)) + return Buffer.from(await HOLOCHAIN_SERVICE.getAgentKey()); } async holochainRequestAgentInfos(): Promise { @@ -379,7 +367,7 @@ export default class PerspectivismCore { const templateParams = { uid: uuidv4(), recipient_did: this.#agentService.agent?.did, - recipient_hc_agent_pubkey: Buffer.from((await this.#holochain?.pubKeyForAllLanguages())!).toString('hex') + recipient_hc_agent_pubkey: Buffer.from(await HOLOCHAIN_SERVICE.getAgentKey()).toString('hex') } console.debug("Now creating clone with parameters:", templateParams) const createdDmLang = await this.languageApplyTemplateAndPublish(this.#config.directMessageLanguage, templateParams) diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index c8d48e6ab..070f41927 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -440,13 +440,11 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { await core.agentService.save(args.passphrase) const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap} = config; - if (connectHolochain) { - await core.connectHolochain( {hcPortAdmin: hcPortAdmin!, hcPortApp: hcPortApp!} ); - } else { - await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase }); - } + await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase }); + console.log("Holochain init complete"); await core.waitForAgent(); + console.log("Wait for agent"); core.initControllers() await core.initLanguages() @@ -487,14 +485,10 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { // @ts-ignore const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap} = config; - if (connectHolochain) { - await core.connectHolochain( {hcPortAdmin: hcPortAdmin!, hcPortApp: hcPortApp!} ); - } else { - await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase }); - await core.waitForAgent(); - core.initControllers() - await core.initLanguages() - } + await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase }); + await core.waitForAgent(); + core.initControllers() + await core.initLanguages() console.log("\x1b[32m", "AD4M init complete", "\x1b[0m"); } From 80139ad126350c1a30284e3d83e74d7b07ac933c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 12 May 2023 00:28:14 +0100 Subject: [PATCH 268/722] add missing params to start holochain conductor --- executor/src/holochain_service_extension.d.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/executor/src/holochain_service_extension.d.ts b/executor/src/holochain_service_extension.d.ts index 49893cdeb..ddc6756a1 100644 --- a/executor/src/holochain_service_extension.d.ts +++ b/executor/src/holochain_service_extension.d.ts @@ -9,10 +9,12 @@ declare global { useProxy: bool, useLocalProxy: bool, useMdns: bool, + proxyUrl: String, + bootstrapUrl: String, } interface HolochainService { - async startHolochainService: (config: ConductorConfig) => void; + async startHolochainConductor: (config: ConductorConfig) => void; async logDhtStatus: () => void; async installApp: (install_app_payload: InstallAppRequest) => AppInfo; async getAppInfo: (app_id: String) => AppInfo | null; From a5d202f4a8b3c097ef19491532d6e18524d3c939 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 12 May 2023 00:28:22 +0100 Subject: [PATCH 269/722] remove dead code --- .../storage-services/Holochain/HcExecution.ts | 157 +----------------- 1 file changed, 1 insertion(+), 156 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HcExecution.ts b/executor/src/core/storage-services/Holochain/HcExecution.ts index 057d0f588..17f23e820 100644 --- a/executor/src/core/storage-services/Holochain/HcExecution.ts +++ b/executor/src/core/storage-services/Holochain/HcExecution.ts @@ -1,17 +1,9 @@ -import child_process, { execSync } from "child_process"; -import fs from "fs"; -import path from "path"; -import { HolochainUnlockConfiguration } from "../../PerspectivismCore"; -import { kitsuneProxy } from "./HolochainService"; +import child_process from "child_process"; function escapeShellArg (arg: string) { return arg.replace(" ", "\ "); } -export function stopProcesses(hcProcess: child_process.ChildProcess) { - hcProcess.kill("SIGTERM"); -} - export function unpackDna(hcPath: string, dnaPath: string): string { return child_process.execFileSync(`${escapeShellArg(hcPath)}`, ["dna", "unpack", `${escapeShellArg(dnaPath)}`]).toString(); } @@ -19,150 +11,3 @@ export function unpackDna(hcPath: string, dnaPath: string): string { export function packDna(hcPath: string, workdirPath: string): string { return child_process.execFileSync(`${escapeShellArg(hcPath)}`, ["dna", "pack", `${escapeShellArg(workdirPath)}`]).toString(); } - -export interface ConductorConfiguration { - proxyUrl: string; - environmentPath: string; - adminPort: number; - appPort: number; - useBootstrap: boolean, - bootstrapService: string; - conductorConfigPath: string; - useProxy: boolean, - useLocalProxy: boolean; - useMdns: boolean; - lairConnectionUrl: string; -} - -export function writeDefaultConductor(conductorConfig: ConductorConfiguration) { - console.log("HolochainService: Writing fresh conductor file...") - let proxyType; - if(conductorConfig.useLocalProxy) { - proxyType = "local_proxy_server" - } else { - proxyType = "remote_proxy_client" - } - let conductorStringConfig = ` ---- -environment_path: ${escapeShellArg(conductorConfig.environmentPath)} -keystore: - type: lair_server_in_proc -admin_interfaces: - - driver: - type: websocket - port: ${conductorConfig.adminPort} -network: - network_type: ${conductorConfig.useMdns? 'quic_mdns' : 'quic_bootstrap'} - ${conductorConfig.useBootstrap ? 'bootstrap_service: '+ conductorConfig.bootstrapService : ''} - transport_pool: - - type: ${conductorConfig.useProxy ? 'proxy' : 'quic'} - sub_transport: - type: quic - proxy_config: - type: remote_proxy_client - proxy_url: ${kitsuneProxy} - tuning_params: - gossip_strategy: sharded-gossip - gossip_loop_iteration_delay_ms: '1000' - gossip_outbound_target_mbps: '100' - gossip_inbound_target_mbps: '100' - gossip_historic_outbound_target_mbps: '100' - gossip_historic_inbound_target_mbps: '100' - gossip_burst_ratio: '100' - gossip_peer_on_success_next_gossip_delay_ms: '30000' - gossip_peer_on_error_next_gossip_delay_ms: '60000' - gossip_agent_info_update_interval_ms: '600000' - gossip_local_sync_delay_ms: '30000' - gossip_redundancy_target: '100' - gossip_max_batch_size: '1000000' - gossip_dynamic_arcs: 'true' - gossip_single_storage_arc_per_space: 'false' - default_rpc_single_timeout_ms: '30000' - default_rpc_multi_remote_agent_count: '3' - default_rpc_multi_remote_request_grace_ms: '3000' - agent_info_expires_after_ms: '1200000' - tls_in_mem_session_storage: '512' - proxy_keepalive_ms: '120000' - proxy_to_expire_ms: '600000' - concurrent_limit_per_thread: '4096' - tx2_quic_max_idle_timeout_ms: '30000' - tx2_pool_max_connection_count: '4096' - tx2_channel_count_per_connection: '2' - tx2_implicit_timeout_ms: '30000' - tx2_initial_connect_retry_delay_ms: '200' - danger_tls_keylog: no_keylog - danger_gossip_recent_threshold_secs: '900' - disable_publish: 'false' - disable_recent_gossip: 'false' - disable_historical_gossip: 'false' -chc_namespace: null -db_sync_strategy: Fast -` - fs.writeFileSync(conductorConfig.conductorConfigPath, conductorStringConfig); -} - -export async function runHolochain(resourcePath: string, conductorConfigPath: string, hcDataPath: string, config: HolochainUnlockConfiguration): Promise { - console.log("Starting holochain version: ", child_process.execFileSync(`${escapeShellArg(path.join(resourcePath, "holochain"))}`, ["--version"]).toString()); - - let hcProcess = child_process.spawn(`${escapeShellArg(path.join(resourcePath, "holochain"))}`, ["-c", escapeShellArg(conductorConfigPath), "-p"], - { - env: { - ...process.env, - RUST_LOG: process.env.RUST_LOG ? process.env.RUST_LOG : "wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error", - WASM_LOG: process.env.WASM_LOG ? process.env.WASM_LOG: "debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error" - }, - } - ); - - //Log holochain process stdout to out - hcProcess.stdout.on('data', (data) => { - console.log(`${data}`); - }); - // hcProcess.stdout.on('error', (err) => { - // if (err.code == "EPIPE") { - // process.exit(0); - // } - // }); - //Log holochain process stderr to out - hcProcess.stderr.on('data', (data) => { - console.log(`${data}`); - }); - - let isReady = new Promise((resolve, reject) => { - hcProcess.stdout.on('data', (data) => { - if (data.includes("Conductor ready")) { - resolve(null); - }; - }); - }); - - const echo = child_process.exec(`echo ${config.passphrase}`, (error, stdout, stderr) => { - if (error) { - console.log(`runHolochain.echo.exec: error: ${error.message}`); - return; - } - if (stderr) { - console.log(`runHolochain.echo.exec: stderr: ${stderr}`); - return; - } - if (stdout) { - hcProcess.stdin.write(stdout); - return; - } - }); - - echo.on('close', (code) => { - if (code !== 0) { - console.log(`echo process exited with code ${code}`); - } - hcProcess.stdin.end(); - }); - - process.on("SIGINT", function () { - hcProcess.kill("SIGINT"); - process.exit(); - }); - - await isReady; - return hcProcess; -} \ No newline at end of file From 5c1ea3805e95736bdd4ba49c59d512b2b0cd96a4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 12 May 2023 00:28:37 +0100 Subject: [PATCH 270/722] add msg lock for decoding zome responses --- Cargo.lock | 4654 ++++++++++++++++++++++++++++++++++++++--- executor/package.json | 5 +- yarn.lock | 7 +- 3 files changed, 4390 insertions(+), 276 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6a419870f..1578dc229 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,7 +19,7 @@ dependencies = [ "ad4m-client", "anyhow", "chrono", - "clap", + "clap 4.1.10", "colour", "dirs", "futures", @@ -42,7 +42,7 @@ dependencies = [ "anyhow", "async-tungstenite", "chrono", - "clap", + "clap 4.1.10", "dirs", "futures", "graphql-ws-client", @@ -64,7 +64,7 @@ name = "ad4m-launcher" version = "0.3.4" dependencies = [ "ad4m-client", - "directories", + "directories 4.0.1", "libc", "localtunnel-client", "log", @@ -77,7 +77,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "sysinfo", + "sysinfo 0.23.13", "tauri", "tauri-build", "tauri-plugin-positioner", @@ -100,6 +100,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + [[package]] name = "aead" version = "0.5.2" @@ -116,7 +122,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cipher 0.3.0", "cpufeatures", "opaque-debug", @@ -128,7 +134,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cipher 0.4.4", "cpufeatures", ] @@ -156,6 +162,12 @@ dependencies = [ "aes 0.8.2", ] +[[package]] +name = "ahash" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" + [[package]] name = "ahash" version = "0.7.6" @@ -200,6 +212,15 @@ dependencies = [ "libc", ] +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + [[package]] name = "anyhow" version = "1.0.66" @@ -209,6 +230,24 @@ dependencies = [ "backtrace", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arbitrary" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "arc-swap" version = "1.5.1" @@ -232,6 +271,12 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + [[package]] name = "arrayvec" version = "0.7.2" @@ -250,7 +295,7 @@ version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70151a5226578411132d798aa248df45b30aa34aea2e580628870b4d87be717b" dependencies = [ - "darling", + "darling 0.13.4", "pmutil", "proc-macro2 1.0.56", "quote 1.0.26", @@ -258,6 +303,27 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "async-attributes" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +dependencies = [ + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "async-channel" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + [[package]] name = "async-compression" version = "0.3.15" @@ -272,6 +338,148 @@ dependencies = [ "tokio", ] +[[package]] +name = "async-executor" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" +dependencies = [ + "async-lock", + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "slab", +] + +[[package]] +name = "async-global-executor" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" +dependencies = [ + "async-channel", + "async-executor", + "async-io", + "async-lock", + "blocking", + "futures-lite", + "once_cell", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock", + "autocfg 1.1.0", + "cfg-if 1.0.0", + "concurrent-queue", + "futures-lite", + "log", + "parking", + "polling", + "rustix 0.37.7", + "slab", + "socket2 0.4.9", + "waker-fn", +] + +[[package]] +name = "async-lock" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-process" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" +dependencies = [ + "async-io", + "async-lock", + "autocfg 1.1.0", + "blocking", + "cfg-if 1.0.0", + "event-listener", + "futures-lite", + "rustix 0.37.7", + "signal-hook 0.3.15", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "async-std" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +dependencies = [ + "async-attributes", + "async-channel", + "async-global-executor", + "async-io", + "async-lock", + "async-process", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-stream" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22068c0c19514942eefcfd4daf8976ef1aad84e61539f95cd200c35202f80af5" +dependencies = [ + "async-stream-impl", + "futures-core", +] + +[[package]] +name = "async-stream-impl" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25f9db3b38af870bf7e5cc649167533b493928e50744e2c30ae350230b414670" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "async-task" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" + [[package]] name = "async-trait" version = "0.1.68" @@ -330,6 +538,12 @@ dependencies = [ "critical-section", ] +[[package]] +name = "atomic-waker" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" + [[package]] name = "attohttpc" version = "0.22.0" @@ -343,7 +557,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "url", + "url 2.3.1", ] [[package]] @@ -357,12 +571,33 @@ dependencies = [ "winapi", ] +[[package]] +name = "autocfg" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" +dependencies = [ + "autocfg 1.1.0", +] + [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "automap" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b99d887f4066f8a1b4a713a8121fab07ff543863ac86177ebdee6b5cb18acf12" +dependencies = [ + "cfg-if 1.0.0", + "derive_more", + "serde", + "shrinkwraprs", +] + [[package]] name = "backtrace" version = "0.3.66" @@ -371,10 +606,10 @@ checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide 0.5.4", - "object", + "object 0.29.0", "rustc-demangle", ] @@ -427,6 +662,12 @@ dependencies = [ "scoped-tls", ] +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + [[package]] name = "bincode" version = "1.3.3" @@ -436,6 +677,24 @@ dependencies = [ "serde", ] +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +dependencies = [ + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -463,6 +722,17 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq 0.1.5", +] + [[package]] name = "blake2b_simd" version = "1.0.1" @@ -470,7 +740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.2", "constant_time_eq 0.2.5", ] @@ -481,7 +751,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.2", "constant_time_eq 0.2.5", ] @@ -492,9 +762,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.2", "cc", - "cfg-if", + "cfg-if 1.0.0", "constant_time_eq 0.2.5", ] @@ -537,6 +807,32 @@ dependencies = [ "generic-array 0.14.6", ] +[[package]] +name = "blocking" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" +dependencies = [ + "async-channel", + "async-lock", + "async-task", + "atomic-waker", + "fastrand", + "futures-lite", + "log", +] + +[[package]] +name = "bloomfilter" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8129c0ab340c1b0caf6dbc587e814d04ba811e336dcf8fc268c04e047428ebb0" +dependencies = [ + "bit-vec", + "getrandom 0.2.8", + "siphasher", +] + [[package]] name = "bls12_381_plus" version = "0.7.0" @@ -587,7 +883,7 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aeb8bae494e49dbc330dd23cf78f6f7accee22f640ce3ab17841badaa4ce232" dependencies = [ - "ahash", + "ahash 0.7.6", "base64 0.13.1", "bitvec", "chrono", @@ -620,6 +916,28 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +[[package]] +name = "bytecheck" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13fe11640a23eb24562225322cd3e452b93a3d4091d62fab69c70542fcd17d1f" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31225543cb46f81a7e224762764f4a6a0f097b1db0b175f69e8065efaa42de5" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "bytemuck" version = "1.12.3" @@ -689,6 +1007,38 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "camino" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.17", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "cargo_toml" version = "0.13.0" @@ -739,7 +1089,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" dependencies = [ - "smallvec", + "smallvec 1.10.0", ] [[package]] @@ -748,9 +1098,15 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" dependencies = [ - "smallvec", + "smallvec 1.10.0", ] +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -763,7 +1119,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cipher 0.4.4", "cpufeatures", ] @@ -781,6 +1137,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "chashmap" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e651a8c1eb0cbbaa730f705e2531e75276c6f2bbe2eb12662cfd305213dff8" +dependencies = [ + "owning_ref", + "parking_lot 0.3.8", +] + [[package]] name = "chrono" version = "0.4.24" @@ -830,6 +1196,38 @@ dependencies = [ "zeroize", ] +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim 0.8.0", + "textwrap 0.11.0", + "unicode-width", + "vec_map", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags", + "clap_derive 3.2.25", + "clap_lex 0.2.4", + "indexmap", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap 0.16.0", +] + [[package]] name = "clap" version = "4.1.10" @@ -837,17 +1235,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce38afc168d8665cfc75c7b1dd9672e50716a137f433f070991619744a67342a" dependencies = [ "bitflags", - "clap_derive", - "clap_lex", + "clap_derive 4.1.9", + "clap_lex 0.3.0", "is-terminal", "once_cell", - "strsim", + "strsim 0.10.0", "termcolor", ] [[package]] name = "clap_derive" -version = "4.1.9" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck 0.4.0", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "clap_derive" +version = "4.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644" dependencies = [ @@ -858,6 +1269,15 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + [[package]] name = "clap_lex" version = "0.3.0" @@ -878,6 +1298,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +dependencies = [ + "bitflags", +] + [[package]] name = "cocoa" version = "0.24.1" @@ -925,6 +1354,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + [[package]] name = "colour" version = "0.6.0" @@ -957,6 +1397,32 @@ dependencies = [ "memchr", ] +[[package]] +name = "concolor" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "318d6c16e73b3a900eb212ad6a82fc7d298c5ab8184c7a9998646455bc474a16" +dependencies = [ + "bitflags", + "concolor-query", + "is-terminal", +] + +[[package]] +name = "concolor-query" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82a90734b3d5dcf656e7624cca6bce9c3a90ee11f900e80141a7427ccfb3d317" + +[[package]] +name = "concurrent-queue" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "console_static_text" version = "0.8.1" @@ -985,6 +1451,20 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" +[[package]] +name = "contrafact" +version = "0.1.0-dev.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6231a9c847846745ffad14917538e99182408b3987e89a11d86a37677dbb3c01" +dependencies = [ + "anyhow", + "arbitrary", + "derive_more", + "itertools 0.10.5", + "num", + "tracing", +] + [[package]] name = "convert_case" version = "0.4.0" @@ -1041,6 +1521,19 @@ dependencies = [ "memchr", ] +[[package]] +name = "corosensei" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" +dependencies = [ + "autocfg 1.1.0", + "cfg-if 1.0.0", + "libc", + "scopeguard", + "windows-sys 0.33.0", +] + [[package]] name = "cpufeatures" version = "0.2.5" @@ -1050,13 +1543,72 @@ dependencies = [ "libc", ] +[[package]] +name = "cranelift-bforest" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +dependencies = [ + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "gimli", + "log", + "regalloc", + "smallvec 1.10.0", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" + +[[package]] +name = "cranelift-entity" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" + +[[package]] +name = "cranelift-frontend" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec 1.10.0", + "target-lexicon", +] + [[package]] name = "crc32fast" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1065,13 +1617,24 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" +[[package]] +name = "cron" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e009ed0b762cf7a967a34dfdc67d5967d3f828f12901d37081432c3dd1668f8f" +dependencies = [ + "chrono", + "nom 4.1.1", + "once_cell", +] + [[package]] name = "crossbeam-channel" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -1081,7 +1644,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] @@ -1092,8 +1655,8 @@ version = "0.9.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" dependencies = [ - "autocfg", - "cfg-if", + "autocfg 1.1.0", + "cfg-if 1.0.0", "crossbeam-utils", "memoffset 0.7.1", "scopeguard", @@ -1105,7 +1668,7 @@ version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1120,7 +1683,7 @@ dependencies = [ "libc", "mio 0.7.14", "parking_lot 0.11.2", - "signal-hook", + "signal-hook 0.1.17", "winapi", ] @@ -1210,7 +1773,7 @@ dependencies = [ "phf 0.8.0", "proc-macro2 1.0.56", "quote 1.0.26", - "smallvec", + "smallvec 1.10.0", "syn 1.0.103", ] @@ -1281,7 +1844,7 @@ version = "4.0.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fiat-crypto", "packed_simd_2", "platforms", @@ -1333,14 +1896,48 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "darling" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +dependencies = [ + "darling_core 0.10.2", + "darling_macro 0.10.2", +] + [[package]] name = "darling" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling_core" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.56", + "quote 1.0.26", + "strsim 0.9.3", + "syn 1.0.103", ] [[package]] @@ -1353,7 +1950,32 @@ dependencies = [ "ident_case", "proc-macro2 1.0.56", "quote 1.0.26", - "strsim", + "strsim 0.10.0", + "syn 1.0.103", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.56", + "quote 1.0.26", + "strsim 0.10.0", + "syn 1.0.103", +] + +[[package]] +name = "darling_macro" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +dependencies = [ + "darling_core 0.10.2", + "quote 1.0.26", "syn 1.0.103", ] @@ -1363,20 +1985,41 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ - "darling_core", + "darling_core 0.13.4", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", "quote 1.0.26", "syn 1.0.103", ] +[[package]] +name = "dashmap" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" +dependencies = [ + "cfg-if 1.0.0", + "num_cpus", +] + [[package]] name = "dashmap" version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" dependencies = [ - "cfg-if", - "hashbrown", - "lock_api", + "cfg-if 1.0.0", + "hashbrown 0.12.3", + "lock_api 0.4.9", "once_cell", "parking_lot_core 0.9.4", ] @@ -1451,7 +2094,7 @@ dependencies = [ "swc_ecma_utils", "swc_ecma_visit", "text_lines", - "url", + "url 2.3.1", ] [[package]] @@ -1504,13 +2147,13 @@ dependencies = [ "log", "once_cell", "parking_lot 0.12.1", - "pin-project", + "pin-project 1.0.12", "serde", "serde_json", "serde_v8", - "smallvec", + "smallvec 1.10.0", "sourcemap", - "url", + "url 2.3.1", "v8", ] @@ -1602,9 +2245,9 @@ dependencies = [ "log", "mio 0.8.5", "rustls", - "rustls-pemfile", + "rustls-pemfile 1.0.2", "serde", - "socket2", + "socket2 0.4.9", "tokio", ] @@ -1644,9 +2287,9 @@ dependencies = [ "fly-accept-encoding", "hyper", "mime", - "percent-encoding", + "percent-encoding 2.2.0", "phf 0.10.1", - "pin-project", + "pin-project 1.0.12", "ring", "serde", "tokio", @@ -1702,7 +2345,7 @@ dependencies = [ "deno_tls", "log", "serde", - "socket2", + "socket2 0.4.9", "tokio", "trust-dns-proto", "trust-dns-resolver", @@ -1824,9 +2467,9 @@ dependencies = [ "once_cell", "rustls", "rustls-native-certs", - "rustls-pemfile", + "rustls-pemfile 1.0.2", "serde", - "webpki", + "webpki 0.22.0", "webpki-roots", ] @@ -1917,6 +2560,42 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "derive_arbitrary" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "derive_builder" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0" +dependencies = [ + "darling 0.10.2", + "derive_builder_core", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "derive_builder_core" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" +dependencies = [ + "darling 0.10.2", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -1980,6 +2659,18 @@ dependencies = [ "form_urlencoded", ] +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + [[package]] name = "digest" version = "0.8.1" @@ -2010,6 +2701,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "directories" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c" +dependencies = [ + "cfg-if 0.1.10", + "dirs-sys", +] + [[package]] name = "directories" version = "4.0.1" @@ -2034,7 +2735,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "dirs-sys-next", ] @@ -2089,6 +2790,22 @@ dependencies = [ "syn 0.15.44", ] +[[package]] +name = "dns-parser" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" +dependencies = [ + "byteorder", + "quick-error", +] + +[[package]] +name = "downcast" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bb454f0228b18c7f4c3b0ebbee346ed9c52e7443b0999cd543ff3571205701d" + [[package]] name = "dprint-swc-ext" version = "0.8.0" @@ -2242,7 +2959,7 @@ version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -2263,6 +2980,26 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "enum_kind" version = "0.2.2" @@ -2276,33 +3013,77 @@ dependencies = [ ] [[package]] -name = "env_logger" -version = "0.10.0" +name = "enumset" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753" dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", + "enumset_derive", ] [[package]] -name = "errno" -version = "0.2.8" +name = "enumset_derive" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0" dependencies = [ - "errno-dragonfly", - "libc", - "winapi", + "darling 0.14.4", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", ] [[package]] -name = "errno" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" +name = "env_logger" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +dependencies = [ + "log", +] + +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "err-derive" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22deed3a8124cff5fa835713fa105621e43bbdc46690c3a6b68328a012d350d4" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "rustversion", + "syn 1.0.103", + "synstructure", +] + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + +[[package]] +name = "errno" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" dependencies = [ "errno-dragonfly", @@ -2330,6 +3111,34 @@ dependencies = [ "str-buf", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "failure" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +dependencies = [ + "backtrace", + "failure_derive", +] + +[[package]] +name = "failure_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", + "synstructure", +] + [[package]] name = "fallible-iterator" version = "0.2.0" @@ -2357,7 +3166,7 @@ version = "3.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb21c69b9fea5e15dbc1049e4b77145dd0ba1c84019c488102de0dc4ea4b0a27" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "rustix 0.36.2", "windows-sys 0.42.0", ] @@ -2395,12 +3204,29 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall 0.2.16", "windows-sys 0.42.0", ] +[[package]] +name = "fixt" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0c56586e2d46ef54b2e603cba5f9d92b15084c6ef28ef4fcb5bb0896317a41d" +dependencies = [ + "holochain_serialized_bytes 0.0.51", + "lazy_static", + "parking_lot 0.10.2", + "paste", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "strum 0.18.0", + "strum_macros 0.18.0", +] + [[package]] name = "flate2" version = "1.0.24" @@ -2411,6 +3237,15 @@ dependencies = [ "miniz_oxide 0.5.4", ] +[[package]] +name = "float-cmp" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4" +dependencies = [ + "num-traits", +] + [[package]] name = "fly-accept-encoding" version = "0.2.0" @@ -2418,7 +3253,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3afa7516fdcfd8e5e93a938f8fec857785ced190a1f62d842d1fe1ffbe22ba8" dependencies = [ "http", - "itertools", + "itertools 0.10.5", "thiserror", ] @@ -2449,9 +3284,24 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "percent-encoding", + "percent-encoding 2.2.0", +] + +[[package]] +name = "fragile" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7464c5c4a3f014d9b2ec4073650e5c06596f385060af740fc45ad5a19f959e8" +dependencies = [ + "fragile 2.0.0", ] +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + [[package]] name = "from_variant" version = "0.1.5" @@ -2500,6 +3350,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + [[package]] name = "funty" version = "2.0.0" @@ -2575,6 +3431,21 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + [[package]] name = "futures-macro" version = "0.3.28" @@ -2598,6 +3469,12 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" + [[package]] name = "futures-util" version = "0.3.28" @@ -2635,6 +3512,18 @@ dependencies = [ "byteorder", ] +[[package]] +name = "gcollections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377" +dependencies = [ + "bit-set", + "num-integer", + "num-traits", + "trilean", +] + [[package]] name = "gdk" version = "0.15.4" @@ -2745,7 +3634,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] @@ -2756,7 +3645,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -2773,11 +3662,42 @@ dependencies = [ "polyval", ] +[[package]] +name = "ghost_actor" +version = "0.3.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecc8c54b8ebb1e0347a75a2c1e54268c737313da693f99c0964643011e5406d" +dependencies = [ + "futures", + "mockall", + "must_future", + "observability", + "paste", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "ghost_actor" +version = "0.4.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52cb0746ab4cf003d75cdbaaae2cf95139ec9607ae46bd5c68721bda2ca0c824" +dependencies = [ + "futures", + "tracing", +] + [[package]] name = "gimli" version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] [[package]] name = "gio" @@ -2825,7 +3745,7 @@ dependencies = [ "gobject-sys", "libc", "once_cell", - "smallvec", + "smallvec 1.10.0", "thiserror", ] @@ -2873,6 +3793,18 @@ dependencies = [ "regex", ] +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "gobject-sys" version = "0.15.10" @@ -2884,6 +3816,23 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "governor" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06c5d2f987ee8f6dff3fa1a352058dc59b990e447e4c7846aa7d804971314f7b" +dependencies = [ + "dashmap 4.0.2", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.11.2", + "quanta", + "rand 0.8.5", + "smallvec 1.10.0", +] + [[package]] name = "graphql-introspection-query" version = "0.2.0" @@ -2913,7 +3862,7 @@ dependencies = [ "futures", "graphql_client", "log", - "pin-project", + "pin-project 1.0.12", "serde", "serde_json", "thiserror", @@ -3053,13 +4002,32 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hashbrown" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" +dependencies = [ + "ahash 0.3.8", + "autocfg 1.1.0", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.6", +] + [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.6", ] [[package]] @@ -3068,7 +4036,75 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" dependencies = [ - "hashbrown", + "hashbrown 0.12.3", +] + +[[package]] +name = "hc_seed_bundle" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bfd1584a885bb064bd877e78a43465261c5bd369c001e7095ab5b00cb57b3c5" +dependencies = [ + "futures", + "one_err", + "rmp-serde 1.1.1", + "rmpv", + "serde", + "serde_bytes", + "sodoken", +] + +[[package]] +name = "hdi" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b9f6105d20d9c8dcac3b967bef3de5c811d43de3079c60f05ddebb86421f362" +dependencies = [ + "hdk_derive", + "holo_hash", + "holochain_integrity_types", + "holochain_wasmer_guest", + "paste", + "serde", + "serde_bytes", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a354d9b29d879b8e05c2e1e5f5a9657dac2a1f4be6732ecc4d72273cf6d30bbd" +dependencies = [ + "getrandom 0.2.8", + "hdi", + "hdk_derive", + "holo_hash", + "holochain_wasmer_guest", + "holochain_zome_types", + "paste", + "serde", + "serde_bytes", + "thiserror", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk_derive" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b42de4f722e215382845ca26d6b71d557f843c674dfd9463cb517873c6cade8" +dependencies = [ + "darling 0.14.4", + "heck 0.4.0", + "holochain_integrity_types", + "paste", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", ] [[package]] @@ -3205,40 +4241,632 @@ dependencies = [ ] [[package]] -name = "hostname" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" -dependencies = [ - "libc", - "match_cfg", - "winapi", -] - -[[package]] -name = "html5ever" -version = "0.25.2" +name = "holo_hash" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +checksum = "3d8076a1021ca8bf729d4224c4facd24f06c3aebd3fd335080d1460495538dfd" dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "arbitrary", + "base64 0.13.1", + "blake2b_simd 0.5.11", + "derive_more", + "fixt", + "futures", + "holochain_serialized_bytes 0.0.51", + "kitsune_p2p_dht_arc", + "must_future", + "rand 0.8.5", + "rusqlite", + "serde", + "serde_bytes", + "thiserror", ] [[package]] -name = "http" -version = "0.2.9" +name = "holochain" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "2ec4017d1b3d07503f7a17b2df428acd87c19c318b26c3f6560eabc3b45d6cc4" dependencies = [ - "bytes", - "fnv", - "itoa 1.0.4", -] + "anyhow", + "async-recursion", + "async-trait", + "base64 0.13.1", + "byteorder", + "cfg-if 0.1.10", + "chrono", + "derive_more", + "directories 2.0.2", + "either", + "fallible-iterator", + "fixt", + "futures", + "getrandom 0.2.8", + "ghost_actor 0.3.0-alpha.4", + "hdk", + "holo_hash", + "holochain_cascade", + "holochain_conductor_api", + "holochain_keystore", + "holochain_p2p", + "holochain_serialized_bytes 0.0.51", + "holochain_sqlite", + "holochain_state", + "holochain_test_wasm_common", + "holochain_types", + "holochain_util", + "holochain_wasm_test_utils", + "holochain_wasmer_host", + "holochain_websocket", + "holochain_zome_types", + "hostname", + "human-panic", + "itertools 0.10.5", + "kitsune_p2p", + "kitsune_p2p_types", + "lazy_static", + "matches", + "mockall", + "mr_bundle", + "must_future", + "nanoid 0.3.0", + "num_cpus", + "observability", + "once_cell", + "one_err", + "parking_lot 0.10.2", + "predicates", + "rand 0.8.5", + "rand-utf8", + "rpassword 5.0.1", + "rusqlite", + "sd-notify", + "serde", + "serde_json", + "serde_yaml 0.9.21", + "shrinkwraprs", + "sodoken", + "structopt", + "strum 0.18.0", + "subtle-encoding", + "task-motel", + "tempfile", + "thiserror", + "tiny-keccak", + "tokio", + "tokio-stream", + "toml", + "tracing", + "tracing-futures", + "tracing-subscriber 0.2.25", + "unwrap_to", + "url 1.7.2", + "url2", + "url_serde", + "uuid 0.7.4", + "wasmer-middlewares", +] + +[[package]] +name = "holochain_cascade" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb03147cc0e99e5236fe5f6e77e5fa296bd281c4da2ace18c948e6dcd085e5ee" +dependencies = [ + "async-trait", + "derive_more", + "either", + "fallible-iterator", + "fixt", + "futures", + "ghost_actor 0.3.0-alpha.4", + "hdk", + "hdk_derive", + "holo_hash", + "holochain_p2p", + "holochain_serialized_bytes 0.0.51", + "holochain_sqlite", + "holochain_state", + "holochain_types", + "holochain_zome_types", + "kitsune_p2p", + "mockall", + "observability", + "serde", + "serde_derive", + "thiserror", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "holochain_conductor_api" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09e86402c2b1b92e3badc5144934e64b09099b79c8f80d239a8dc60125385e87" +dependencies = [ + "derive_more", + "directories 2.0.2", + "holo_hash", + "holochain_keystore", + "holochain_p2p", + "holochain_serialized_bytes 0.0.51", + "holochain_state", + "holochain_types", + "holochain_zome_types", + "kitsune_p2p", + "serde", + "serde_derive", + "serde_yaml 0.9.21", + "structopt", + "thiserror", + "tracing", + "url2", +] + +[[package]] +name = "holochain_integrity_types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5755ca3e4d8d3121c8294b8ac21a1da072350519309381336ff9e0aaee80e1b5" +dependencies = [ + "arbitrary", + "holo_hash", + "holochain_serialized_bytes 0.0.51", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "tracing", +] + +[[package]] +name = "holochain_keystore" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c42da7f8151feca101feb628252774771834e700e72dc57f67d7ec11b574c7f" +dependencies = [ + "base64 0.13.1", + "futures", + "holo_hash", + "holochain_serialized_bytes 0.0.51", + "holochain_sqlite", + "holochain_zome_types", + "kitsune_p2p_types", + "lair_keystore", + "must_future", + "nanoid 0.4.0", + "one_err", + "parking_lot 0.11.2", + "serde", + "serde_bytes", + "sodoken", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "holochain_p2p" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1ead00875101cad60884f113284d0e62ccaf70b27f700b7f7133fcdec3850a8" +dependencies = [ + "async-trait", + "derive_more", + "fixt", + "futures", + "ghost_actor 0.3.0-alpha.4", + "holo_hash", + "holochain_keystore", + "holochain_serialized_bytes 0.0.51", + "holochain_types", + "holochain_util", + "holochain_zome_types", + "kitsune_p2p", + "kitsune_p2p_types", + "mockall", + "observability", + "rand 0.8.5", + "serde", + "serde_bytes", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "holochain_serialized_bytes" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" +dependencies = [ + "arbitrary", + "holochain_serialized_bytes_derive 0.0.51", + "rmp-serde 0.15.5", + "serde", + "serde-transcode", + "serde_bytes", + "serde_json", + "thiserror", +] + +[[package]] +name = "holochain_serialized_bytes" +version = "0.0.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bac6151d65c9a6f26f1b1068046a98900214030924377a2142f60c279b091f51" +dependencies = [ + "holochain_serialized_bytes_derive 0.0.52", + "rmp-serde 0.15.5", + "serde", + "serde-transcode", + "serde_bytes", + "serde_json", + "thiserror", +] + +[[package]] +name = "holochain_serialized_bytes_derive" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" +dependencies = [ + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "holochain_serialized_bytes_derive" +version = "0.0.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17cec0d0c2317fcb87772d0a8b5b5e88c7276aef93bf3496931e89cb9231c129" +dependencies = [ + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "holochain_sqlite" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dad83e4dc6001f80b99d9e9863730d97dd560a562ffbde209a9b4c0b8ac097c" +dependencies = [ + "anyhow", + "async-trait", + "byteorder", + "cfg-if 0.1.10", + "chashmap", + "chrono", + "derive_more", + "either", + "failure", + "fallible-iterator", + "fixt", + "futures", + "getrandom 0.2.8", + "holo_hash", + "holochain_serialized_bytes 0.0.51", + "holochain_util", + "holochain_zome_types", + "kitsune_p2p", + "lazy_static", + "must_future", + "nanoid 0.3.0", + "num-traits", + "num_cpus", + "once_cell", + "page_size", + "parking_lot 0.10.2", + "pretty_assertions 0.7.2", + "r2d2", + "r2d2_sqlite", + "rand 0.8.5", + "rmp-serde 0.15.5", + "rusqlite", + "scheduled-thread-pool", + "serde", + "serde_derive", + "serde_json", + "shrinkwraprs", + "sqlformat 0.1.8", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "holochain_state" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3745dc3a741280e9bd690b7dae1a633c7264b9c695aaa6ceae65c80443f7def4" +dependencies = [ + "async-recursion", + "base64 0.13.1", + "byteorder", + "cfg-if 0.1.10", + "chrono", + "contrafact", + "cron", + "derive_more", + "either", + "fallible-iterator", + "futures", + "getrandom 0.2.8", + "holo_hash", + "holochain_keystore", + "holochain_p2p", + "holochain_serialized_bytes 0.0.51", + "holochain_sqlite", + "holochain_types", + "holochain_util", + "holochain_zome_types", + "kitsune_p2p", + "mockall", + "nanoid 0.3.0", + "one_err", + "parking_lot 0.10.2", + "rand 0.8.5", + "serde", + "serde_json", + "shrinkwraprs", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "holochain_test_wasm_common" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97bf9098c13c40681fe96eaacbc1918ea07656595789ad03184271803c6aa5a5" +dependencies = [ + "hdk", + "serde", +] + +[[package]] +name = "holochain_types" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39681c5767cebf220f706be13801a451a61535d83ddaf20a640597c8518fa2a6" +dependencies = [ + "anyhow", + "arbitrary", + "async-trait", + "automap", + "backtrace", + "base64 0.13.1", + "cfg-if 0.1.10", + "chrono", + "contrafact", + "derive_builder", + "derive_more", + "either", + "fixt", + "flate2", + "futures", + "holo_hash", + "holochain_keystore", + "holochain_serialized_bytes 0.0.51", + "holochain_sqlite", + "holochain_util", + "holochain_zome_types", + "isotest", + "itertools 0.10.5", + "kitsune_p2p_dht", + "lazy_static", + "mockall", + "mr_bundle", + "must_future", + "nanoid 0.3.0", + "observability", + "one_err", + "parking_lot 0.10.2", + "rand 0.8.5", + "regex", + "rusqlite", + "serde", + "serde_bytes", + "serde_derive", + "serde_with", + "serde_yaml 0.9.21", + "shrinkwraprs", + "strum 0.18.0", + "strum_macros 0.18.0", + "tempfile", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "holochain_util" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6696351bacb3fd484954a51d9c5b52eccfdbb9dfedc4437c258e2d44374587f" +dependencies = [ + "backtrace", + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", + "rpassword 7.2.0", + "sodoken", + "tokio", +] + +[[package]] +name = "holochain_wasm_test_utils" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e86e3abe453264013e1eecdb61c95d9218dd8fb45fbae7249df585916a3aedc" +dependencies = [ + "holochain_types", + "holochain_util", + "strum 0.18.0", + "strum_macros 0.18.0", + "toml", + "walkdir", +] + +[[package]] +name = "holochain_wasmer_common" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +dependencies = [ + "holochain_serialized_bytes 0.0.51", + "serde", + "serde_bytes", + "test-fuzz", + "thiserror", + "wasmer", + "wasmer-engine", +] + +[[package]] +name = "holochain_wasmer_guest" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +dependencies = [ + "holochain_serialized_bytes 0.0.51", + "holochain_wasmer_common", + "parking_lot 0.12.1", + "paste", + "serde", + "tracing", +] + +[[package]] +name = "holochain_wasmer_host" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22765ece4cda73be1bb004f849e8c71b921916fd9fb05bfc7110dfb5b1864cdd" +dependencies = [ + "bimap", + "holochain_serialized_bytes 0.0.51", + "holochain_wasmer_common", + "once_cell", + "parking_lot 0.12.1", + "rand 0.8.5", + "serde", + "tracing", + "wasmer", +] + +[[package]] +name = "holochain_websocket" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e1fd11a074d217a090449c63b71c1ffb8e07a6700a67cc4eab779159e925b7f" +dependencies = [ + "futures", + "ghost_actor 0.4.0-alpha.5", + "holochain_serialized_bytes 0.0.51", + "must_future", + "nanoid 0.3.0", + "net2", + "serde", + "serde_bytes", + "stream-cancel", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite 0.13.0", + "tracing", + "tracing-futures", + "tungstenite 0.12.0", + "url2", +] + +[[package]] +name = "holochain_zome_types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd45986999baf8590ff444442cdbbd460ae26e8ecaa7494a69f081c897bbe714" +dependencies = [ + "arbitrary", + "contrafact", + "derive_builder", + "fixt", + "holo_hash", + "holochain_integrity_types", + "holochain_serialized_bytes 0.0.51", + "holochain_wasmer_common", + "kitsune_p2p_dht", + "kitsune_p2p_timestamp", + "nanoid 0.3.0", + "num_enum", + "once_cell", + "paste", + "rand 0.8.5", + "rusqlite", + "serde", + "serde_bytes", + "serde_yaml 0.9.21", + "shrinkwraprs", + "strum 0.18.0", + "subtle", + "subtle-encoding", + "thiserror", + "tracing", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + +[[package]] +name = "html5ever" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.4", +] [[package]] name = "http-body" @@ -3269,6 +4897,22 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +[[package]] +name = "human-panic" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87eb03e654582b31967d414b86711a7bbd7c6b28a6b7d32857b7d1d45c0926f9" +dependencies = [ + "backtrace", + "concolor", + "os_info 2.0.8", + "serde", + "serde_derive", + "termcolor", + "toml", + "uuid 0.8.2", +] + [[package]] name = "humantime" version = "2.1.0" @@ -3292,7 +4936,7 @@ dependencies = [ "httpdate", "itoa 1.0.4", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -3365,6 +5009,17 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "idna" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "idna" version = "0.2.3" @@ -3386,6 +5041,37 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "if-addrs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2273e421f7c4f0fc99e1934fe4776f59d8df2972f4199d703fc0da9f2a9f73de" +dependencies = [ + "if-addrs-sys", + "libc", + "winapi", +] + +[[package]] +name = "if-addrs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "if-addrs-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "if_chain" version = "1.0.2" @@ -3429,8 +5115,8 @@ version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ - "autocfg", - "hashbrown", + "autocfg 1.1.0", + "hashbrown 0.12.3", "serde", ] @@ -3443,6 +5129,30 @@ dependencies = [ "cfb", ] +[[package]] +name = "inferno" +version = "0.10.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3886428c6400486522cf44b8626e7b94ad794c14390290f2a274dcf728a58f" +dependencies = [ + "ahash 0.7.6", + "atty", + "clap 3.2.25", + "crossbeam-channel", + "crossbeam-utils", + "dashmap 5.4.0", + "env_logger 0.9.3", + "indexmap", + "itoa 1.0.4", + "lazy_static", + "log", + "num-format", + "num_cpus", + "quick-xml 0.22.0", + "rgb", + "str_stack", +] + [[package]] name = "inotify" version = "0.9.6" @@ -3473,13 +5183,35 @@ dependencies = [ "generic-array 0.14.6", ] +[[package]] +name = "input_buffer" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" +dependencies = [ + "bytes", +] + [[package]] name = "instant" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", +] + +[[package]] +name = "intervallum" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1" +dependencies = [ + "bit-set", + "gcollections", + "num-integer", + "num-traits", + "trilean", ] [[package]] @@ -3498,7 +5230,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" dependencies = [ - "socket2", + "socket2 0.4.9", "widestring", "winapi", "winreg", @@ -3535,6 +5267,25 @@ dependencies = [ "windows-sys 0.45.0", ] +[[package]] +name = "isotest" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "868ab2c0c71eff3fca21f4ea4673ade85ca0149c45a55c79016147562737aef8" +dependencies = [ + "futures", + "paste", +] + +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.10.5" @@ -3645,79 +5396,292 @@ dependencies = [ "serde", "smartstring", "static_assertions", - "url", + "url 2.3.1", "uuid 1.3.0", "void", ] [[package]] -name = "juniper_codegen" -version = "0.16.0-dev" -source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +name = "juniper_codegen" +version = "0.16.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", + "url 2.3.1", +] + +[[package]] +name = "juniper_graphql_transport_ws" +version = "0.4.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "juniper", + "juniper_subscriptions", + "serde", + "tokio", +] + +[[package]] +name = "juniper_graphql_ws" +version = "0.4.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "juniper", + "juniper_subscriptions", + "serde", + "tokio", +] + +[[package]] +name = "juniper_subscriptions" +version = "0.17.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "futures", + "juniper", +] + +[[package]] +name = "juniper_warp" +version = "0.8.0-dev" +source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +dependencies = [ + "anyhow", + "futures", + "headers", + "juniper", + "juniper_graphql_transport_ws", + "juniper_graphql_ws", + "serde", + "serde_json", + "thiserror", + "tokio", + "warp", +] + +[[package]] +name = "keccak" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kitsune_p2p" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfda706b5e183af43db1fa33698d2d5c035a0d9831b70d92e4f148febbf93e91" +dependencies = [ + "arbitrary", + "arrayref", + "base64 0.13.1", + "blake2b_simd 0.5.11", + "bloomfilter", + "derive_more", + "fixt", + "futures", + "ghost_actor 0.3.0-alpha.4", + "governor", + "itertools 0.10.5", + "kitsune_p2p_fetch", + "kitsune_p2p_mdns", + "kitsune_p2p_proxy", + "kitsune_p2p_timestamp", + "kitsune_p2p_transport_quic", + "kitsune_p2p_types", + "maplit", + "mockall", + "must_future", + "nanoid 0.4.0", + "num-traits", + "observability", + "once_cell", + "parking_lot 0.11.2", + "rand 0.8.5", + "reqwest", + "serde", + "serde_bytes", + "serde_json", + "shrinkwraprs", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "url2", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c7c44c640e2cac1102b4f8c0646ba9fb9b93104d7a897293863b4573ffbf8f" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand 0.8.5", + "serde", + "statrs", + "thiserror", + "tracing", +] + +[[package]] +name = "kitsune_p2p_dht_arc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +dependencies = [ + "derive_more", + "gcollections", + "intervallum", + "num-traits", + "rusqlite", + "serde", +] + +[[package]] +name = "kitsune_p2p_fetch" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26017ad7656a9d0b6a9a3ccd5a180f9e915a76c92ea895064e34c8003d2f5e7b" +dependencies = [ + "derive_more", + "futures", + "kitsune_p2p_timestamp", + "kitsune_p2p_types", + "linked-hash-map", + "must_future", + "num-traits", + "serde", + "serde_bytes", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "kitsune_p2p_mdns" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c208d7e03718484d5b5c12810298bc22c60d1c71837a3b7a7ae8e70e77ba04e" dependencies = [ - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", - "url", + "async-stream", + "base64 0.13.1", + "err-derive", + "futures-core", + "futures-util", + "libmdns", + "mdns", + "tokio", + "tokio-stream", ] [[package]] -name = "juniper_graphql_transport_ws" -version = "0.4.0-dev" -source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +name = "kitsune_p2p_proxy" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c79c2df7ac60567c0f9dc574d391de6eea349e002adb356fee44607ea119f6" dependencies = [ - "juniper", - "juniper_subscriptions", + "base64 0.13.1", + "blake2b_simd 0.5.11", + "derive_more", + "futures", + "kitsune_p2p_transport_quic", + "kitsune_p2p_types", + "nanoid 0.3.0", + "observability", + "parking_lot 0.11.2", + "rmp-serde 0.15.5", + "rustls", "serde", + "serde_bytes", + "structopt", "tokio", + "tracing-subscriber 0.2.25", + "webpki 0.21.4", ] [[package]] -name = "juniper_graphql_ws" -version = "0.4.0-dev" -source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +name = "kitsune_p2p_timestamp" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" dependencies = [ - "juniper", - "juniper_subscriptions", + "arbitrary", + "chrono", + "derive_more", + "rusqlite", "serde", - "tokio", ] [[package]] -name = "juniper_subscriptions" -version = "0.17.0-dev" -source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +name = "kitsune_p2p_transport_quic" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32d9687db0e42e1c46f430aa4fd186b766a7b9de88527272e5fd2539fc878298" dependencies = [ + "blake2b_simd 1.0.1", "futures", - "juniper", + "if-addrs 0.7.0", + "kitsune_p2p_types", + "nanoid 0.4.0", + "once_cell", + "quinn", + "rcgen 0.9.3", + "rustls", + "serde", + "tokio", + "webpki 0.22.0", ] [[package]] -name = "juniper_warp" -version = "0.8.0-dev" -source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" +name = "kitsune_p2p_types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bff1212472faca04202d455e473d204e6beed27b79d14dbde1f02ff2cd1d501" dependencies = [ - "anyhow", + "arbitrary", + "base64 0.13.1", + "derive_more", "futures", - "headers", - "juniper", - "juniper_graphql_transport_ws", - "juniper_graphql_ws", + "ghost_actor 0.3.0-alpha.4", + "kitsune_p2p_dht", + "kitsune_p2p_dht_arc", + "lair_keystore_api", + "lru", + "mockall", + "nanoid 0.3.0", + "observability", + "once_cell", + "parking_lot 0.11.2", + "paste", + "rmp-serde 0.15.5", + "rustls", "serde", + "serde_bytes", "serde_json", + "shrinkwraprs", + "sysinfo 0.27.8", "thiserror", "tokio", - "warp", -] - -[[package]] -name = "keccak" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" -dependencies = [ - "cpufeatures", + "tokio-stream", + "url 2.3.1", + "url2", + "webpki 0.22.0", ] [[package]] @@ -3752,6 +5716,56 @@ dependencies = [ "selectors", ] +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + +[[package]] +name = "lair_keystore" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaa5e8f029253e54888ad85db4d3843904f5814c6c5d14985257f5263dd8e97b" +dependencies = [ + "lair_keystore_api", + "pretty_assertions 1.3.0", + "rpassword 7.2.0", + "rusqlite", + "sqlformat 0.2.1", + "structopt", + "sysinfo 0.27.8", + "tracing-subscriber 0.3.16", +] + +[[package]] +name = "lair_keystore_api" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00cbc9276859e19728b03e65ab8f25903f8e9a70dd3d5e63b19ced26e25dd479" +dependencies = [ + "base64 0.13.1", + "dunce", + "hc_seed_bundle", + "lru", + "nanoid 0.4.0", + "once_cell", + "parking_lot 0.12.1", + "rcgen 0.10.0", + "serde", + "serde_json", + "serde_yaml 0.9.21", + "tokio", + "toml", + "tracing", + "url 2.3.1", + "winapi", + "zeroize", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -3761,6 +5775,12 @@ dependencies = [ "spin 0.5.2", ] +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + [[package]] name = "lexical" version = "6.1.1" @@ -3892,13 +5912,33 @@ dependencies = [ "cc", ] +[[package]] +name = "libflate" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97822bf791bd4d5b403713886a5fbe8bf49520fe78e323b0dc480ca1a03e50b0" +dependencies = [ + "adler32", + "crc32fast", + "libflate_lz77", +] + +[[package]] +name = "libflate_lz77" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52d3a8bfc85f250440e4424db7d857e241a3aebbbe301f3eb606ab15c39acbf" +dependencies = [ + "rle-decode-fast", +] + [[package]] name = "libloading" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] @@ -3914,6 +5954,24 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +[[package]] +name = "libmdns" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b276920bfc6c9285e16ffd30ed410487f0185f383483f45a3446afc0554fded" +dependencies = [ + "byteorder", + "futures-util", + "hostname", + "if-addrs 0.6.7", + "log", + "multimap", + "quick-error", + "rand 0.8.5", + "socket2 0.3.19", + "tokio", +] + [[package]] name = "libsecp256k1" version = "0.7.1" @@ -3962,6 +6020,23 @@ dependencies = [ "libsecp256k1-core", ] +[[package]] +name = "libsodium-sys-stable" +version = "1.19.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c2e36a6759ec7f4d772d2e01af0bf5ba63eb114bbab488cbcf53884c6408bb9" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + [[package]] name = "libsqlite3-sys" version = "0.25.2" @@ -4034,13 +6109,22 @@ dependencies = [ "tokio", ] +[[package]] +name = "lock_api" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +dependencies = [ + "scopeguard", +] + [[package]] name = "lock_api" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ - "autocfg", + "autocfg 1.1.0", "scopeguard", ] @@ -4050,8 +6134,9 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "serde", + "value-bag", ] [[package]] @@ -4079,9 +6164,9 @@ dependencies = [ "serde", "serde-value", "serde_json", - "serde_yaml", + "serde_yaml 0.8.26", "thiserror", - "thread-id", + "thread-id 4.0.0", "typemap-ors", "winapi", ] @@ -4092,13 +6177,43 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "generator", "scoped-tls", "serde", "serde_json", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.16", +] + +[[package]] +name = "loupe" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" +dependencies = [ + "indexmap", + "loupe-derive", + "rustversion", +] + +[[package]] +name = "loupe-derive" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" +dependencies = [ + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "lru" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" +dependencies = [ + "hashbrown 0.12.3", ] [[package]] @@ -4129,6 +6244,15 @@ dependencies = [ "time 0.3.17", ] +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + [[package]] name = "malloc_buf" version = "0.0.6" @@ -4164,6 +6288,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +[[package]] +name = "matchers" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +dependencies = [ + "regex-automata", +] + [[package]] name = "matchers" version = "0.1.0" @@ -4179,6 +6312,22 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg 1.1.0", + "rawpointer", +] + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + [[package]] name = "md-5" version = "0.10.5" @@ -4197,6 +6346,22 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "mdns" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c769962ac75a6ea437f0922b27834bcccd4c013d591383a16ae5731e3ef0f3f3" +dependencies = [ + "async-std", + "async-stream", + "dns-parser", + "err-derive", + "futures-core", + "futures-util", + "log", + "net2", +] + [[package]] name = "memchr" version = "2.5.0" @@ -4218,7 +6383,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ - "autocfg", + "autocfg 1.1.0", ] [[package]] @@ -4227,7 +6392,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ - "autocfg", + "autocfg 1.1.0", ] [[package]] @@ -4246,6 +6411,18 @@ dependencies = [ "unicase", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "minisign-verify" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881" + [[package]] name = "miniz_oxide" version = "0.5.4" @@ -4298,6 +6475,61 @@ dependencies = [ "winapi", ] +[[package]] +name = "mockall" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab571328afa78ae322493cacca3efac6a0f2e0a67305b4df31fd439ef129ac0" +dependencies = [ + "cfg-if 1.0.0", + "downcast", + "fragile 1.2.2", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7e25b214433f669161f414959594216d8e6ba83b6679d3db96899c0b4639033" +dependencies = [ + "cfg-if 1.0.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "mr_bundle" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb63fbe49ada1be6fd0e5d2c733458a10de7794a8524ca90eb0650f32d88482a" +dependencies = [ + "arbitrary", + "bytes", + "derive_more", + "either", + "flate2", + "futures", + "holochain_util", + "reqwest", + "rmp-serde 0.15.5", + "serde", + "serde_bytes", + "serde_derive", + "serde_yaml 0.9.21", + "thiserror", +] + [[package]] name = "multibase" version = "0.9.1" @@ -4315,7 +6547,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15e5d911412e631e1de11eb313e4dd71f73fd964401102aab23d6c8327c431ba" dependencies = [ - "blake2b_simd", + "blake2b_simd 1.0.1", "blake2s_simd", "blake3", "core2", @@ -4340,6 +6572,15 @@ dependencies = [ "synstructure", ] +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +dependencies = [ + "serde", +] + [[package]] name = "multiparty" version = "0.1.0" @@ -4354,6 +6595,63 @@ dependencies = [ "try-lock", ] +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand 0.8.5", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "nanoid" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6226bc4e142124cb44e309a37a04cd9bb10e740d8642855441d3b14808f635e" +dependencies = [ + "rand 0.6.5", +] + +[[package]] +name = "nanoid" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +dependencies = [ + "rand 0.8.5", +] + [[package]] name = "native-tls" version = "0.2.11" @@ -4400,6 +6698,17 @@ dependencies = [ "jni-sys", ] +[[package]] +name = "net2" +version = "0.2.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi", +] + [[package]] name = "netif" version = "0.1.6" @@ -4422,7 +6731,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" dependencies = [ - "smallvec", + "smallvec 1.10.0", ] [[package]] @@ -4433,7 +6742,7 @@ checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" dependencies = [ "bitflags", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "memoffset 0.6.5", ] @@ -4445,17 +6754,57 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ "bitflags", - "cfg-if", + "cfg-if 1.0.0", "libc", "memoffset 0.6.5", ] +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" +dependencies = [ + "hashbrown 0.8.2", +] + [[package]] name = "nodrop" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +[[package]] +name = "nom" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c349f68f25f596b9f44cf0e7c69752a5c633b0550c3ff849518bfba0233774a" +dependencies = [ + "memchr", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonzero_ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44a1290799eababa63ea60af0cbc3f03363e328e58f32fb0294798ed3e85f444" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + [[package]] name = "notify" version = "5.0.0" @@ -4513,13 +6862,27 @@ dependencies = [ "winapi", ] +[[package]] +name = "num" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" dependencies = [ - "autocfg", + "autocfg 1.1.0", "num-integer", "num-traits", "rand 0.8.5", @@ -4539,17 +6902,36 @@ dependencies = [ "num-iter", "num-traits", "rand 0.8.5", - "smallvec", + "smallvec 1.10.0", "zeroize", ] +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-format" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +dependencies = [ + "arrayvec 0.7.2", + "itoa 1.0.4", +] + [[package]] name = "num-integer" version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ - "autocfg", + "autocfg 1.1.0", "num-traits", ] @@ -4559,7 +6941,7 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ - "autocfg", + "autocfg 1.1.0", "num-integer", "num-traits", ] @@ -4570,7 +6952,8 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ - "autocfg", + "autocfg 1.1.0", + "num-bigint", "num-integer", "num-traits", ] @@ -4581,7 +6964,7 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ - "autocfg", + "autocfg 1.1.0", "libm 0.2.6", ] @@ -4655,6 +7038,18 @@ dependencies = [ "objc", ] +[[package]] +name = "object" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +dependencies = [ + "crc32fast", + "hashbrown 0.11.2", + "indexmap", + "memchr", +] + [[package]] name = "object" version = "0.29.0" @@ -4664,12 +7059,47 @@ dependencies = [ "memchr", ] +[[package]] +name = "observability" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ee3ae3ce7a7b9f875526d3f956c106f991114f1c61a0e10553918256efc8fc" +dependencies = [ + "chrono", + "derive_more", + "holochain_serialized_bytes 0.0.52", + "inferno", + "once_cell", + "opentelemetry", + "serde", + "serde_bytes", + "serde_json", + "thiserror", + "tracing", + "tracing-core", + "tracing-opentelemetry", + "tracing-serde", + "tracing-subscriber 0.2.25", +] + [[package]] name = "once_cell" version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +[[package]] +name = "one_err" +version = "0.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e81851974d8bb6cc9a643cca68afdce7f0a3b80e08a4620388836bb99a680554" +dependencies = [ + "indexmap", + "libc", + "serde", + "serde_json", +] + [[package]] name = "onig" version = "6.4.0" @@ -4735,7 +7165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" dependencies = [ "bitflags", - "cfg-if", + "cfg-if 1.0.0", "foreign-types", "libc", "once_cell", @@ -4766,13 +7196,28 @@ version = "0.9.77" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a" dependencies = [ - "autocfg", + "autocfg 1.1.0", "cc", "libc", "pkg-config", "vcpkg", ] +[[package]] +name = "opentelemetry" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf68b6b34b5d869342732c0dc05f74b7bdb4f17f2302d16d799231a6106441" +dependencies = [ + "bincode", + "futures", + "lazy_static", + "percent-encoding 2.2.0", + "pin-project 0.4.30", + "rand 0.7.3", + "serde", +] + [[package]] name = "ordered-float" version = "2.10.0" @@ -4782,6 +7227,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "os_info" +version = "2.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc1b4330bb29087e791ae2a5cf56be64fb8946a4ff5aec2ba11c6ca51f5d60" +dependencies = [ + "log", + "serde", + "winapi", +] + [[package]] name = "os_info" version = "3.7.0" @@ -4809,6 +7265,15 @@ version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +[[package]] +name = "output_vt100" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" +dependencies = [ + "winapi", +] + [[package]] name = "outref" version = "0.5.1" @@ -4821,6 +7286,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "owning_ref" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d52571ddcb42e9c900c901a18d8d67e393df723fcd51dd59c5b1a85d0acb6cc" + [[package]] name = "p256" version = "0.11.1" @@ -4849,10 +7320,20 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libm 0.1.4", ] +[[package]] +name = "page_size" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "pairing" version = "0.22.0" @@ -4887,6 +7368,33 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "parking" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" + +[[package]] +name = "parking_lot" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa12d706797d42551663426a45e2db2e0364bd1dbf6aeada87e89c5f981f43e9" +dependencies = [ + "owning_ref", + "parking_lot_core 0.2.14", + "thread-id 3.3.0", +] + +[[package]] +name = "parking_lot" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" +dependencies = [ + "lock_api 0.3.4", + "parking_lot_core 0.7.3", +] + [[package]] name = "parking_lot" version = "0.11.2" @@ -4894,7 +7402,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", - "lock_api", + "lock_api 0.4.9", "parking_lot_core 0.8.5", ] @@ -4904,21 +7412,47 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ - "lock_api", + "lock_api 0.4.9", "parking_lot_core 0.9.4", ] +[[package]] +name = "parking_lot_core" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +dependencies = [ + "libc", + "rand 0.4.6", + "smallvec 0.6.14", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93f386bb233083c799e6e642a9d73db98c24a5deeb95ffc85bf281255dffc98" +dependencies = [ + "cfg-if 0.1.10", + "cloudabi", + "libc", + "redox_syscall 0.1.57", + "smallvec 1.10.0", + "winapi", +] + [[package]] name = "parking_lot_core" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "instant", "libc", "redox_syscall 0.2.16", - "smallvec", + "smallvec 1.10.0", "winapi", ] @@ -4928,10 +7462,10 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall 0.2.16", - "smallvec", + "smallvec 1.10.0", "windows-sys 0.42.0", ] @@ -4959,9 +7493,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.9" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" +checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" [[package]] name = "path-clean" @@ -4997,6 +7531,15 @@ dependencies = [ "hmac 0.12.1", ] +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + [[package]] name = "pem-rfc7468" version = "0.6.0" @@ -5006,6 +7549,12 @@ dependencies = [ "base64ct", ] +[[package]] +name = "percent-encoding" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" + [[package]] name = "percent-encoding" version = "2.2.0" @@ -5120,13 +7669,33 @@ dependencies = [ "siphasher", ] +[[package]] +name = "pin-project" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef0f924a5ee7ea9cbcea77529dba45f8a9ba9f622419fe3386ca581a3ae9d5a" +dependencies = [ + "pin-project-internal 0.4.30", +] + [[package]] name = "pin-project" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" dependencies = [ - "pin-project-internal", + "pin-project-internal 1.0.12", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", ] [[package]] @@ -5218,9 +7787,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" dependencies = [ "bitflags", - "crc32fast", - "flate2", - "miniz_oxide 0.6.2", + "crc32fast", + "flate2", + "miniz_oxide 0.6.2", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg 1.1.0", + "bitflags", + "cfg-if 1.0.0", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", ] [[package]] @@ -5240,7 +7825,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "opaque-debug", "universal-hash", @@ -5267,6 +7852,59 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "predicates" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df" +dependencies = [ + "difference", + "float-cmp", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "pretty_assertions" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cab0e7c02cf376875e9335e0ba1da535775beb5450d21e1dffca068818ed98b" +dependencies = [ + "ansi_term", + "ctor", + "diff", + "output_vt100", +] + +[[package]] +name = "pretty_assertions" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +dependencies = [ + "ctor", + "diff", + "output_vt100", + "yansi", +] + [[package]] name = "proc-macro-crate" version = "1.1.3" @@ -5334,12 +7972,51 @@ dependencies = [ "cc", ] +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "quanta" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98dc777a7a39b76b1a26ae9d3f691f4c1bc0455090aa0b64dfa8cb7fc34c135" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "quick-error" version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-xml" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8533f14c8382aaad0d592c812ac3b826162128b65662331e1127b45c3d18536b" +dependencies = [ + "memchr", +] + [[package]] name = "quick-xml" version = "0.23.1" @@ -5349,6 +8026,59 @@ dependencies = [ "memchr", ] +[[package]] +name = "quinn" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b435e71d9bfa0d8889927231970c51fb89c58fa63bffcab117c9c7a41e5ef8f" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "fxhash", + "quinn-proto", + "quinn-udp", + "rustls", + "thiserror", + "tokio", + "tracing", + "webpki 0.22.0", +] + +[[package]] +name = "quinn-proto" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce546b9688f767a57530652488420d419a8b1f44a478b451c3d1ab6d992a55" +dependencies = [ + "bytes", + "fxhash", + "rand 0.8.5", + "ring", + "rustls", + "rustls-native-certs", + "rustls-pemfile 0.2.1", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki 0.22.0", +] + +[[package]] +name = "quinn-udp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07946277141531aea269befd949ed16b2c85a780ba1043244eda0969e538e54" +dependencies = [ + "futures-util", + "libc", + "quinn-proto", + "socket2 0.4.9", + "tokio", + "tracing", +] + [[package]] name = "quote" version = "0.6.13" @@ -5367,6 +8097,27 @@ dependencies = [ "proc-macro2 1.0.56", ] +[[package]] +name = "r2d2" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" +dependencies = [ + "log", + "parking_lot 0.12.1", + "scheduled-thread-pool", +] + +[[package]] +name = "r2d2_sqlite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f5d0337e99cd5cacd91ffc326c6cc9d8078def459df560c4f9bf9ba4a51034" +dependencies = [ + "r2d2", + "rusqlite", +] + [[package]] name = "radium" version = "0.7.0" @@ -5383,6 +8134,38 @@ dependencies = [ "nibble_vec", ] +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + +[[package]] +name = "rand" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +dependencies = [ + "autocfg 0.1.8", + "libc", + "rand_chacha 0.1.1", + "rand_core 0.4.2", + "rand_hc 0.1.0", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg 0.1.2", + "rand_xorshift", + "winapi", +] + [[package]] name = "rand" version = "0.7.3" @@ -5393,8 +8176,8 @@ dependencies = [ "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", - "rand_hc", - "rand_pcg", + "rand_hc 0.2.0", + "rand_pcg 0.2.1", ] [[package]] @@ -5408,6 +8191,25 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand-utf8" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f2017cdc22f0f49fc0385c036847c03403fa5f95bc36e7f420e8e42446e80f" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "rand_chacha" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +dependencies = [ + "autocfg 0.1.8", + "rand_core 0.3.1", +] + [[package]] name = "rand_chacha" version = "0.2.2" @@ -5428,6 +8230,21 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + [[package]] name = "rand_core" version = "0.5.1" @@ -5446,6 +8263,25 @@ dependencies = [ "getrandom 0.2.8", ] +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "rand_hc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +dependencies = [ + "rand_core 0.3.1", +] + [[package]] name = "rand_hc" version = "0.2.0" @@ -5455,6 +8291,50 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_jitter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +dependencies = [ + "libc", + "rand_core 0.4.2", + "winapi", +] + +[[package]] +name = "rand_os" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +dependencies = [ + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.4.2", + "rdrand", + "winapi", +] + +[[package]] +name = "rand_pcg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +dependencies = [ + "autocfg 0.1.8", + "rand_core 0.4.2", +] + [[package]] name = "rand_pcg" version = "0.2.1" @@ -5464,6 +8344,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xorshift" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +dependencies = [ + "rand_core 0.3.1", +] + [[package]] name = "raw-window-handle" version = "0.5.0" @@ -5473,6 +8362,12 @@ dependencies = [ "cty", ] +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.6.0" @@ -5496,6 +8391,46 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring", + "time 0.3.17", + "yasna", +] + +[[package]] +name = "rcgen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +dependencies = [ + "pem", + "ring", + "time 0.3.17", + "yasna", + "zeroize", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + [[package]] name = "redox_syscall" version = "0.2.16" @@ -5525,6 +8460,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "regalloc" +version = "0.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +dependencies = [ + "log", + "rustc-hash", + "smallvec 1.10.0", +] + [[package]] name = "regex" version = "1.7.0" @@ -5551,6 +8497,18 @@ version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +[[package]] +name = "region" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi", +] + [[package]] name = "remove_dir_all" version = "0.7.0" @@ -5564,6 +8522,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "rend" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581008d2099240d37fb08d77ad713bcaec2c4d89d50b5b21a8bb1996bbab68ab" +dependencies = [ + "bytecheck", +] + [[package]] name = "reqwest" version = "0.11.13" @@ -5588,10 +8555,10 @@ dependencies = [ "mime", "native-tls", "once_cell", - "percent-encoding", + "percent-encoding 2.2.0", "pin-project-lite", "rustls", - "rustls-pemfile", + "rustls-pemfile 1.0.2", "serde", "serde_json", "serde_urlencoded", @@ -5601,7 +8568,7 @@ dependencies = [ "tokio-socks", "tokio-util", "tower-service", - "url", + "url 2.3.1", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -5654,6 +8621,15 @@ dependencies = [ "windows 0.37.0", ] +[[package]] +name = "rgb" +version = "0.8.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59" +dependencies = [ + "bytemuck", +] + [[package]] name = "ring" version = "0.16.20" @@ -5678,6 +8654,103 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "rkyv" +version = "0.7.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21499ed91807f07ae081880aabb2ccc0235e9d88011867d984525e9a4c3cfa3e" +dependencies = [ + "bytecheck", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1c672430eb41556291981f45ca900a0239ad007242d1cb4b4167af842db666" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rmp" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rmp-serde" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b13be192e0220b8afb7222aa5813cb62cc269ebb5cac346ca6487681d2913e" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rmpv" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754" +dependencies = [ + "num-traits", + "rmp", + "serde", + "serde_bytes", +] + +[[package]] +name = "rpassword" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "rpassword" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" +dependencies = [ + "libc", + "rtoolbox", + "winapi", +] + [[package]] name = "rsa" version = "0.7.2" @@ -5694,11 +8767,21 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "signature", - "smallvec", + "smallvec 1.10.0", "subtle", "zeroize", ] +[[package]] +name = "rtoolbox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "rusqlite" version = "0.28.0" @@ -5710,7 +8793,7 @@ dependencies = [ "fallible-streaming-iterator", "hashlink", "libsqlite3-sys", - "smallvec", + "smallvec 1.10.0", ] [[package]] @@ -5721,15 +8804,16 @@ dependencies = [ "base64 0.21.0", "chrono", "cid", - "clap", + "clap 4.1.10", "crypto_box", "deno_core", "deno_runtime", "did-key", - "env_logger", + "env_logger 0.10.0", "fs_extra", "futures", "hex", + "holochain", "juniper", "juniper_graphql_transport_ws", "juniper_subscriptions", @@ -5739,7 +8823,7 @@ dependencies = [ "multibase", "multihash", "once_cell", - "os_info", + "os_info 3.7.0", "rand 0.8.5", "secp256k1", "semver 1.0.17", @@ -5747,7 +8831,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "url", + "url 2.3.1", "uuid 1.3.0", "warp", "zip", @@ -5829,7 +8913,7 @@ dependencies = [ "log", "ring", "sct", - "webpki", + "webpki 0.22.0", ] [[package]] @@ -5839,11 +8923,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.2", "schannel", "security-framework", ] +[[package]] +name = "rustls-pemfile" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +dependencies = [ + "base64 0.13.1", +] + [[package]] name = "rustls-pemfile" version = "1.0.2" @@ -5866,7 +8959,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d1cd5ae51d3f7bf65d7969d579d502168ef578f289452bd8ccc91de28fda20e" dependencies = [ "bitflags", - "cfg-if", + "cfg-if 1.0.0", "clipboard-win", "dirs-next", "fd-lock", @@ -5922,6 +9015,15 @@ dependencies = [ "windows-sys 0.36.1", ] +[[package]] +name = "scheduled-thread-pool" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" +dependencies = [ + "parking_lot 0.12.1", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -5950,6 +9052,18 @@ dependencies = [ "untrusted", ] +[[package]] +name = "sd-notify" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cd08a21f852bd2fe42e3b2a6c76a0db6a95a5b5bd29c0521dd0b30fa1712ec8" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "sec1" version = "0.3.0" @@ -6023,7 +9137,7 @@ dependencies = [ "phf_codegen", "precomputed-hash", "servo_arc", - "smallvec", + "smallvec 1.10.0", "thin-slice", ] @@ -6078,6 +9192,15 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-transcode" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" +dependencies = [ + "serde", +] + [[package]] name = "serde-value" version = "0.7.0" @@ -6154,7 +9277,7 @@ dependencies = [ "num-bigint", "serde", "serde_bytes", - "smallvec", + "smallvec 1.10.0", "v8", ] @@ -6174,7 +9297,7 @@ version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ - "darling", + "darling 0.13.4", "proc-macro2 1.0.56", "quote 1.0.26", "syn 1.0.103", @@ -6192,6 +9315,19 @@ dependencies = [ "yaml-rust", ] +[[package]] +name = "serde_yaml" +version = "0.9.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" +dependencies = [ + "indexmap", + "itoa 1.0.4", + "ryu", + "serde", + "unsafe-libyaml", +] + [[package]] name = "serialize-to-javascript" version = "0.1.1" @@ -6231,7 +9367,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer 0.9.0", - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", "opaque-debug", @@ -6243,7 +9379,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest 0.10.6", ] @@ -6254,7 +9390,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest 0.10.6", ] @@ -6266,7 +9402,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", "opaque-debug", @@ -6278,7 +9414,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest 0.10.6", ] @@ -6312,6 +9448,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags", + "itertools 0.8.2", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "signal-hook" version = "0.1.17" @@ -6323,6 +9472,16 @@ dependencies = [ "signal-hook-registry", ] +[[package]] +name = "signal-hook" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +dependencies = [ + "libc", + "signal-hook-registry", +] + [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -6342,11 +9501,32 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "siphasher" version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +dependencies = [ + "serde", +] [[package]] name = "slab" @@ -6354,7 +9534,16 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" dependencies = [ - "autocfg", + "autocfg 1.1.0", +] + +[[package]] +name = "smallvec" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" +dependencies = [ + "maybe-uninit", ] [[package]] @@ -6369,11 +9558,22 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" dependencies = [ - "autocfg", + "autocfg 1.1.0", "static_assertions", "version_check", ] +[[package]] +name = "socket2" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "winapi", +] + [[package]] name = "socket2" version = "0.4.9" @@ -6384,6 +9584,21 @@ dependencies = [ "winapi", ] +[[package]] +name = "sodoken" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c6c18e49cbf5a8b8bae94ce992b4ae019fdcb5872a318348e97de3d1f671776" +dependencies = [ + "libc", + "libsodium-sys-stable", + "num_cpus", + "once_cell", + "one_err", + "parking_lot 0.12.1", + "tokio", +] + [[package]] name = "soup2" version = "0.2.1" @@ -6424,7 +9639,7 @@ dependencies = [ "serde", "serde_json", "unicode-id", - "url", + "url 2.3.1", ] [[package]] @@ -6439,7 +9654,7 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" dependencies = [ - "lock_api", + "lock_api 0.4.9", ] [[package]] @@ -6452,6 +9667,28 @@ dependencies = [ "der", ] +[[package]] +name = "sqlformat" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" +dependencies = [ + "itertools 0.10.5", + "nom 7.1.3", + "unicode_categories", +] + +[[package]] +name = "sqlformat" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c12bc9199d1db8234678b7051747c07f517cdcf019262d1847b94ec8b1aee3e" +dependencies = [ + "itertools 0.10.5", + "nom 7.1.3", + "unicode_categories", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -6465,7 +9702,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" dependencies = [ "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "psm", "winapi", @@ -6486,12 +9723,42 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand 0.8.5", +] + [[package]] name = "str-buf" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" +[[package]] +name = "str_stack" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" + +[[package]] +name = "stream-cancel" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0a9eb2715209fb8cc0d942fcdff45674bfc9f0090a0d897e85a22955ad159b" +dependencies = [ + "futures-core", + "pin-project 1.0.12", + "tokio", +] + [[package]] name = "string_cache" version = "0.8.7" @@ -6531,19 +9798,73 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "strsim" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" + [[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap 2.34.0", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck 0.3.3", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "strum" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" + [[package]] name = "strum" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +dependencies = [ + "strum_macros 0.22.0", +] + +[[package]] +name = "strum_macros" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" dependencies = [ - "strum_macros", + "heck 0.3.3", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", ] [[package]] @@ -6558,12 +9879,44 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "rustversion", + "syn 1.0.103", +] + +[[package]] +name = "subprocess" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "subtle" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + [[package]] name = "swc_atoms" version = "0.4.39" @@ -6584,10 +9937,10 @@ version = "0.29.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5005cd73617e18592faa31298225b26f1c407b84a681d67efb735c3d3458e101" dependencies = [ - "ahash", + "ahash 0.7.6", "ast_node", "better_scoped_tls", - "cfg-if", + "cfg-if 1.0.0", "either", "from_variant", "new_debug_unreachable", @@ -6603,7 +9956,7 @@ dependencies = [ "swc_visit", "tracing", "unicode-width", - "url", + "url 2.3.1", ] [[package]] @@ -6686,7 +10039,7 @@ version = "0.41.39" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681c1fbb762c82700a5bd23dc39bad892a287ea9fb2121cf56e77f1ddc89afeb" dependencies = [ - "ahash", + "ahash 0.7.6", "anyhow", "pathdiff", "serde", @@ -6705,7 +10058,7 @@ dependencies = [ "lexical", "num-bigint", "serde", - "smallvec", + "smallvec 1.10.0", "smartstring", "stacker", "swc_atoms", @@ -6727,7 +10080,7 @@ dependencies = [ "phf 0.10.1", "rustc-hash", "serde", - "smallvec", + "smallvec 1.10.0", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -6772,7 +10125,7 @@ checksum = "f4015c3ab090f27eee0834d45bdcf9666dc6329ed06845d1882cdfe6f4826fca" dependencies = [ "either", "serde", - "smallvec", + "smallvec 1.10.0", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -6789,9 +10142,9 @@ version = "0.167.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db1c7801b1d7741ab335441dd301ddcc4183fb250d5e6efaab33b03def268c06" dependencies = [ - "ahash", + "ahash 0.7.6", "base64 0.13.1", - "dashmap", + "dashmap 5.4.0", "indexmap", "once_cell", "regex", @@ -6979,7 +10332,7 @@ version = "0.23.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3977ec2e0520829be45c8a2df70db2bf364714d8a748316a10c3c35d4d2b01c9" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "core-foundation-sys", "libc", "ntapi 0.3.7", @@ -6988,6 +10341,21 @@ dependencies = [ "winapi", ] +[[package]] +name = "sysinfo" +version = "0.27.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33" +dependencies = [ + "cfg-if 1.0.0", + "core-foundation-sys", + "libc", + "ntapi 0.4.0", + "once_cell", + "rayon", + "winapi", +] + [[package]] name = "system-deps" version = "5.0.0" @@ -7079,6 +10447,24 @@ dependencies = [ "xattr", ] +[[package]] +name = "target-lexicon" +version = "0.12.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" + +[[package]] +name = "task-motel" +version = "0.1.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767559c8f4ccd87d0191b0ca6bf4480a06bb7e8d98de2169e48d6b6ed18af1a6" +dependencies = [ + "futures", + "parking_lot 0.12.1", + "tokio", + "tracing", +] + [[package]] name = "tauri" version = "1.2.1" @@ -7103,9 +10489,9 @@ dependencies = [ "objc", "once_cell", "open 3.2.0", - "os_info", + "os_info 3.7.0", "os_pipe", - "percent-encoding", + "percent-encoding 2.2.0", "rand 0.8.5", "raw-window-handle", "regex", @@ -7125,7 +10511,7 @@ dependencies = [ "tempfile", "thiserror", "tokio", - "url", + "url 2.3.1", "uuid 1.3.0", "webkit2gtk", "webview2-com", @@ -7228,7 +10614,7 @@ checksum = "7821c34cf1bd6d89ff46b46a53f3a5050d92afaf2053569f1cc4531167257b24" dependencies = [ "cocoa", "gtk", - "percent-encoding", + "percent-encoding 2.2.0", "rand 0.8.5", "raw-window-handle", "tauri-runtime", @@ -7263,7 +10649,7 @@ dependencies = [ "serde_json", "serde_with", "thiserror", - "url", + "url 2.3.1", "walkdir", "windows 0.39.0", ] @@ -7274,8 +10660,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" dependencies = [ - "quick-xml", - "strum", + "quick-xml 0.23.1", + "strum 0.22.0", "windows 0.39.0", ] @@ -7285,7 +10671,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "redox_syscall 0.3.5", "rustix 0.37.7", @@ -7312,6 +10698,69 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-fuzz" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125df852011c4f8f31df5620f4aea38ecddb5dfb4d9bc569b30485b15ffc3d4e" +dependencies = [ + "serde", + "test-fuzz-internal", + "test-fuzz-macro", + "test-fuzz-runtime", +] + +[[package]] +name = "test-fuzz-internal" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" +dependencies = [ + "cargo_metadata", + "proc-macro2 1.0.56", + "quote 1.0.26", + "serde", + "strum_macros 0.24.3", +] + +[[package]] +name = "test-fuzz-macro" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "856bbca0314c328004691b9c0639fb198ca764d1ce0e20d4dd8b78f2697c2a6f" +dependencies = [ + "darling 0.14.4", + "if_chain", + "lazy_static", + "proc-macro2 1.0.56", + "quote 1.0.26", + "subprocess", + "syn 1.0.103", + "test-fuzz-internal", + "toolchain_find", + "unzip-n", +] + +[[package]] +name = "test-fuzz-runtime" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "303774eb17994c2ddb59c460369f4c3a55496f013380278d78eeebd2deb896ac" +dependencies = [ + "bincode", + "hex", + "num-traits", + "serde", + "sha-1 0.10.0", + "test-fuzz-internal", +] + [[package]] name = "text_lines" version = "0.6.0" @@ -7321,6 +10770,21 @@ dependencies = [ "serde", ] +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" + [[package]] name = "thin-slice" version = "0.1.1" @@ -7347,6 +10811,17 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "thread-id" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" +dependencies = [ + "libc", + "redox_syscall 0.1.57", + "winapi", +] + [[package]] name = "thread-id" version = "4.0.0" @@ -7405,6 +10880,15 @@ dependencies = [ "time-core", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -7426,7 +10910,7 @@ version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" dependencies = [ - "autocfg", + "autocfg 1.1.0", "bytes", "libc", "memchr", @@ -7435,7 +10919,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.4.9", "tokio-macros", "windows-sys 0.42.0", ] @@ -7469,7 +10953,7 @@ checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ "rustls", "tokio", - "webpki", + "webpki 0.22.0", ] [[package]] @@ -7496,6 +10980,21 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tokio-tungstenite" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1a5f475f1b9d077ea1017ecbc60890fda8e54942d680ca0b1d2b47cfa2d861b" +dependencies = [ + "futures-util", + "log", + "native-tls", + "pin-project 1.0.12", + "tokio", + "tokio-native-tls", + "tungstenite 0.12.0", +] + [[package]] name = "tokio-tungstenite" version = "0.16.1" @@ -7508,7 +11007,7 @@ dependencies = [ "tokio", "tokio-rustls", "tungstenite 0.16.0", - "webpki", + "webpki 0.22.0", "webpki-roots", ] @@ -7547,6 +11046,19 @@ dependencies = [ "serde", ] +[[package]] +name = "toolchain_find" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" +dependencies = [ + "home", + "lazy_static", + "regex", + "semver 0.11.0", + "walkdir", +] + [[package]] name = "tower-service" version = "0.3.2" @@ -7559,7 +11071,7 @@ version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -7587,6 +11099,16 @@ dependencies = [ "valuable", ] +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project 1.0.12", + "tracing", +] + [[package]] name = "tracing-log" version = "0.1.3" @@ -7598,18 +11120,64 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-opentelemetry" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8aba1fbd3e3152340cfa12087759543277affcce4a40a659bdb5ec21f725d3d6" +dependencies = [ + "opentelemetry", + "rand 0.7.3", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber 0.2.25", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "ansi_term", + "chrono", + "lazy_static", + "matchers 0.0.1", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec 1.10.0", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", +] + [[package]] name = "tracing-subscriber" version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" dependencies = [ - "matchers", + "matchers 0.1.0", "nu-ansi-term", "once_cell", "regex", "sharded-slab", - "smallvec", + "smallvec 1.10.0", "thread_local", "tracing", "tracing-core", @@ -7625,6 +11193,12 @@ dependencies = [ "serde_json", ] +[[package]] +name = "trilean" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" + [[package]] name = "triomphe" version = "0.1.8" @@ -7642,7 +11216,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" dependencies = [ "async-trait", - "cfg-if", + "cfg-if 1.0.0", "data-encoding", "enum-as-inner", "futures-channel", @@ -7653,12 +11227,12 @@ dependencies = [ "lazy_static", "rand 0.8.5", "serde", - "smallvec", + "smallvec 1.10.0", "thiserror", "tinyvec", "tokio", "tracing", - "url", + "url 2.3.1", ] [[package]] @@ -7667,7 +11241,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "futures-util", "ipconfig", "lazy_static", @@ -7675,7 +11249,7 @@ dependencies = [ "parking_lot 0.12.1", "resolv-conf", "serde", - "smallvec", + "smallvec 1.10.0", "thiserror", "tokio", "tracing", @@ -7688,6 +11262,26 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +[[package]] +name = "tungstenite" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ada8297e8d70872fa9a551d93250a9f407beb9f37ef86494eb20012a2ff7c24" +dependencies = [ + "base64 0.13.1", + "byteorder", + "bytes", + "http", + "httparse", + "input_buffer", + "log", + "native-tls", + "rand 0.8.5", + "sha-1 0.9.8", + "url 2.3.1", + "utf-8", +] + [[package]] name = "tungstenite" version = "0.16.0" @@ -7704,9 +11298,9 @@ dependencies = [ "rustls", "sha-1 0.9.8", "thiserror", - "url", + "url 2.3.1", "utf-8", - "webpki", + "webpki 0.22.0", ] [[package]] @@ -7724,7 +11318,7 @@ dependencies = [ "rand 0.8.5", "sha1", "thiserror", - "url", + "url 2.3.1", "utf-8", ] @@ -7856,6 +11450,12 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + [[package]] name = "universal-hash" version = "0.5.0" @@ -7884,6 +11484,12 @@ dependencies = [ "destructure_traitobject", ] +[[package]] +name = "unsafe-libyaml" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1865806a559042e51ab5414598446a5871b561d21b6764f2eabb0dd481d880a6" + [[package]] name = "unsigned-varint" version = "0.7.1" @@ -7894,18 +11500,81 @@ checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" name = "untrusted" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "unwrap_to" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cad414b2eed757c1b6f810f8abc814e298a9c89176b21fae092c7a87756fb839" + +[[package]] +name = "unzip-n" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "ureq" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "338b31dd1314f68f3aabf3ed57ab922df95ffcd902476ca7ba3c4ce7b908c46d" +dependencies = [ + "base64 0.13.1", + "log", + "once_cell", + "rustls", + "url 2.3.1", + "webpki 0.22.0", + "webpki-roots", +] + +[[package]] +name = "url" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +dependencies = [ + "idna 0.1.5", + "matches", + "percent-encoding 1.0.1", +] + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna 0.3.0", + "percent-encoding 2.2.0", + "serde", +] + +[[package]] +name = "url2" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89cd13f1de9862d363308f5ffdadcd2b64b2a4a812fb296a80b7d3e80011b1e" +dependencies = [ + "serde", + "url 2.3.1", +] [[package]] -name = "url" -version = "2.3.1" +name = "url_serde" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea" dependencies = [ - "form_urlencoded", - "idna 0.3.0", - "percent-encoding", "serde", + "url 1.7.2", ] [[package]] @@ -7924,7 +11593,7 @@ dependencies = [ "regex", "serde", "unic-ucd-ident", - "url", + "url 2.3.1", ] [[package]] @@ -7939,6 +11608,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" +[[package]] +name = "uuid" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" +dependencies = [ + "rand 0.6.5", + "serde", +] + [[package]] name = "uuid" version = "0.8.2" @@ -7976,12 +11655,28 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "value-bag" +version = "1.0.0-alpha.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" +dependencies = [ + "ctor", + "version_check", +] + [[package]] name = "vcpkg" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version-compare" version = "0.0.11" @@ -8018,7 +11713,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aae21c12ad2ec2d168c236f369c38ff332bc1134f7246350dca641437365045" dependencies = [ - "arrayvec", + "arrayvec 0.7.2", "utf8parse", "vte_generate_state_changes", ] @@ -8033,6 +11728,12 @@ dependencies = [ "quote 1.0.26", ] +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + [[package]] name = "walkdir" version = "2.3.2" @@ -8070,9 +11771,9 @@ dependencies = [ "mime", "mime_guess", "multiparty", - "percent-encoding", - "pin-project", - "rustls-pemfile", + "percent-encoding 2.2.0", + "pin-project 1.0.12", + "rustls-pemfile 1.0.2", "scoped-tls", "serde", "serde_json", @@ -8109,7 +11810,7 @@ version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] @@ -8134,7 +11835,7 @@ version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "js-sys", "wasm-bindgen", "web-sys", @@ -8169,6 +11870,285 @@ version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +[[package]] +name = "wasm-encoder" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05d0b6fcd0aeb98adf16e7975331b3c17222aa815148f5b976370ce589d80ef" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" +dependencies = [ + "cfg-if 1.0.0", + "indexmap", + "js-sys", + "loupe", + "more-asserts", + "target-lexicon", + "thiserror", + "wasm-bindgen", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-compiler-cranelift", + "wasmer-derive", + "wasmer-engine", + "wasmer-engine-dylib", + "wasmer-engine-universal", + "wasmer-types", + "wasmer-vm", + "wat", + "winapi", +] + +[[package]] +name = "wasmer-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" +dependencies = [ + "enumset", + "loupe", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-compiler" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" +dependencies = [ + "enumset", + "loupe", + "rkyv", + "serde", + "serde_bytes", + "smallvec 1.10.0", + "target-lexicon", + "thiserror", + "wasmer-types", + "wasmparser", +] + +[[package]] +name = "wasmer-compiler-cranelift" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "gimli", + "loupe", + "more-asserts", + "rayon", + "smallvec 1.10.0", + "target-lexicon", + "tracing", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-derive" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + +[[package]] +name = "wasmer-engine" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" +dependencies = [ + "backtrace", + "enumset", + "lazy_static", + "loupe", + "memmap2", + "more-asserts", + "rustc-demangle", + "serde", + "serde_bytes", + "target-lexicon", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-engine-dylib" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" +dependencies = [ + "cfg-if 1.0.0", + "enum-iterator", + "enumset", + "leb128", + "libloading", + "loupe", + "object 0.28.4", + "rkyv", + "serde", + "tempfile", + "tracing", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-engine", + "wasmer-object", + "wasmer-types", + "wasmer-vm", + "which", +] + +[[package]] +name = "wasmer-engine-universal" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" +dependencies = [ + "cfg-if 1.0.0", + "enumset", + "leb128", + "loupe", + "region", + "rkyv", + "wasmer-compiler", + "wasmer-engine", + "wasmer-engine-universal-artifact", + "wasmer-types", + "wasmer-vm", + "winapi", +] + +[[package]] +name = "wasmer-engine-universal-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" +dependencies = [ + "enum-iterator", + "enumset", + "loupe", + "rkyv", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-middlewares" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7812438ed2f37203a37007cdb5332b8475cb2b16e15d51299b2647894e9ed3a" +dependencies = [ + "loupe", + "wasmer", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-object" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" +dependencies = [ + "object 0.28.4", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-types" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" +dependencies = [ + "backtrace", + "enum-iterator", + "indexmap", + "loupe", + "more-asserts", + "rkyv", + "serde", + "thiserror", +] + +[[package]] +name = "wasmer-vm" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" +dependencies = [ + "backtrace", + "cc", + "cfg-if 1.0.0", + "corosensei", + "enum-iterator", + "indexmap", + "lazy_static", + "libc", + "loupe", + "mach", + "memoffset 0.6.5", + "more-asserts", + "region", + "rkyv", + "scopeguard", + "serde", + "thiserror", + "wasmer-artifact", + "wasmer-types", + "winapi", +] + +[[package]] +name = "wasmparser" +version = "0.83.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" + +[[package]] +name = "wast" +version = "57.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eb0f5ed17ac4421193c7477da05892c2edafd67f9639e3c11a82086416662dc" +dependencies = [ + "leb128", + "memchr", + "unicode-width", + "wasm-encoder", +] + +[[package]] +name = "wat" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab9ab0d87337c3be2bb6fc5cd331c4ba9fd6bcb4ee85048a0dd59ed9ecf92e53" +dependencies = [ + "wast", +] + [[package]] name = "web-sys" version = "0.3.60" @@ -8226,6 +12206,16 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "webpki" version = "0.22.0" @@ -8242,7 +12232,7 @@ version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ - "webpki", + "webpki 0.22.0", ] [[package]] @@ -8397,6 +12387,19 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" +[[package]] +name = "windows-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" +dependencies = [ + "windows_aarch64_msvc 0.33.0", + "windows_i686_gnu 0.33.0", + "windows_i686_msvc 0.33.0", + "windows_x86_64_gnu 0.33.0", + "windows_x86_64_msvc 0.33.0", +] + [[package]] name = "windows-sys" version = "0.36.1" @@ -8416,12 +12419,12 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm", + "windows_aarch64_gnullvm 0.42.2", "windows_aarch64_msvc 0.42.2", "windows_i686_gnu 0.42.2", "windows_i686_msvc 0.42.2", "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm", + "windows_x86_64_gnullvm 0.42.2", "windows_x86_64_msvc 0.42.2", ] @@ -8431,7 +12434,16 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets", + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", ] [[package]] @@ -8440,15 +12452,30 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ - "windows_aarch64_gnullvm", + "windows_aarch64_gnullvm 0.42.2", "windows_aarch64_msvc 0.42.2", "windows_i686_gnu 0.42.2", "windows_i686_msvc 0.42.2", "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm", + "windows_x86_64_gnullvm 0.42.2", "windows_x86_64_msvc 0.42.2", ] +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + [[package]] name = "windows-tokens" version = "0.39.0" @@ -8461,12 +12488,24 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + [[package]] name = "windows_aarch64_msvc" version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" +[[package]] +name = "windows_aarch64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" + [[package]] name = "windows_aarch64_msvc" version = "0.36.1" @@ -8491,12 +12530,24 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + [[package]] name = "windows_i686_gnu" version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" +[[package]] +name = "windows_i686_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" + [[package]] name = "windows_i686_gnu" version = "0.36.1" @@ -8521,12 +12572,24 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + [[package]] name = "windows_i686_msvc" version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" +[[package]] +name = "windows_i686_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" + [[package]] name = "windows_i686_msvc" version = "0.36.1" @@ -8551,12 +12614,24 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + [[package]] name = "windows_x86_64_gnu" version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" +[[package]] +name = "windows_x86_64_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" + [[package]] name = "windows_x86_64_gnu" version = "0.36.1" @@ -8581,18 +12656,36 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + [[package]] name = "windows_x86_64_msvc" version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" +[[package]] +name = "windows_x86_64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" + [[package]] name = "windows_x86_64_msvc" version = "0.36.1" @@ -8617,6 +12710,12 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + [[package]] name = "winreg" version = "0.10.1" @@ -8665,7 +12764,7 @@ dependencies = [ "soup2", "tao", "thiserror", - "url", + "url 2.3.1", "webkit2gtk", "webkit2gtk-sys", "webview2-com", @@ -8763,6 +12862,21 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time 0.3.17", +] + [[package]] name = "zeroize" version = "1.6.0" diff --git a/executor/package.json b/executor/package.json index 95199b2e4..e36bcff86 100644 --- a/executor/package.json +++ b/executor/package.json @@ -97,7 +97,8 @@ "run-script-os": "^1.1.6", "sha256": "^0.2.0", "sha3": "^2.1.3", - "swipl-stdio": "https://github.com/perspect3vism/node-swipl-stdio.git", - "tmp": "^0.2.1" + "swipl-stdio": "file:../../node-swipl-stdio", + "tmp": "^0.2.1", + "@msgpack/msgpack": "^2.7.2" } } diff --git a/yarn.lock b/yarn.lock index 6af375ee8..3012972d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17878,7 +17878,7 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split@^1.0.0, split@^1.0.1: +split@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== @@ -18403,12 +18403,11 @@ svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -"swipl-stdio@https://github.com/perspect3vism/node-swipl-stdio.git": +"swipl-stdio@file:../node-swipl-stdio": version "1.0.4" - resolved "https://github.com/perspect3vism/node-swipl-stdio.git#a00dbfb99aeacf99cb59448e2a9c92b40a889545" dependencies: debug "^2.6.4" - split "^1.0.0" + split "^1.0.1" symbol-observable@^1.0.2, symbol-observable@^1.0.4, symbol-observable@^1.1.0: version "1.2.0" From ea0ab619ec031df7790761f159292a095c781fb4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 12 May 2023 00:28:56 +0100 Subject: [PATCH 271/722] integrate HolochainService js code with rust deno HolochainService extension --- .../Holochain/HolochainService.ts | 487 +++--------------- 1 file changed, 65 insertions(+), 422 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index f117e53e5..0f0962f97 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -1,34 +1,18 @@ -import { AdminWebsocket, AgentPubKey, AppSignalCb, AppWebsocket, encodeHashToBase64, AppSignal, CellId, CellType, setSigningCredentials, AgentInfoResponse, SigningCredentials, generateSigningKeyPair, GrantedFunctionsType, signZomeCall, getSigningCredentials, CellInfo } from '@holochain/client' -import { Database } from 'aloedb-node' +import { AppSignalCb, AppSignal, CellId, CellType, AgentInfoResponse, InstallAppRequest, CallZomeResponse } from '@holochain/client' import path from 'path' import fs from 'fs' import HolochainLanguageDelegate from "./HolochainLanguageDelegate" -import {stopProcesses, unpackDna, packDna, writeDefaultConductor, runHolochain, ConductorConfiguration} from "./HcExecution" +import { unpackDna, packDna } from "./HcExecution" import type { Dna } from '@perspect3vism/ad4m' -import type { ChildProcess } from 'child_process' -import yaml from 'js-yaml'; import { AsyncQueue } from './Queue' +import { decode } from "@msgpack/msgpack" import { HolochainUnlockConfiguration } from '../../PerspectivismCore' import EntanglementProofController from '../../EntanglementProof' import AgentService from '../../agent/AgentService' -//import fetch from "node-fetch"; - export const bootstrapUrl = "https://bootstrap.holo.host" export const kitsuneProxy = "kitsune-proxy://f3gH2VMkJ4qvZJOXx0ccL_Zo5n-s_CnBjSzAsEHHDCA/kitsune-quic/h/137.184.142.208/p/5788/--" -const signingServiceVersion = "0.0.3"; - -interface PubKeySchema { - pubKey: string, - lang: string, -} - -interface SigningCredentialsSchema { - cellId: string, - signingCredentials: string, -} - export interface HolochainConfiguration { conductorPath?: string, @@ -43,117 +27,48 @@ export interface HolochainConfiguration { } export default class HolochainService { - #pubKeyDb: Database - #signingCredentialsDb: Database - #adminPort: number - #appPort: number - #adminWebsocket?: AdminWebsocket - #appWebsocket?: AppWebsocket - #dataPath: string #ready?: Promise - #hcProcess?: ChildProcess #resourcePath: string #conductorPath?: string - #didResolveError: boolean #conductorConfigPath?: string #signalCallbacks: [CellId, AppSignalCb, string][]; #queue: Map #languageDnaHashes: Map #agentService: AgentService #entanglementProofController?: EntanglementProofController - #signingService?: CellId + #dataPath: string constructor(config: HolochainConfiguration, agentService: AgentService, entanglementProofController?: EntanglementProofController) { let { - conductorPath, - dataPath, resourcePath, - adminPort, - appPort, useBootstrap, useProxy, useLocalProxy, useMdns, + dataPath } = config; - this.#didResolveError = false; + this.#dataPath = dataPath this.#agentService = agentService; this.#entanglementProofController = entanglementProofController; - console.log("HolochainService: Creating low-db instance for holochain-serivce"); - this.#dataPath = dataPath - - let pubKeyDbPath = path.join(dataPath, 'holochain-service-pubkeys.json') - let signingCredentialsDbPath = path.join(dataPath, 'holochain-service-signing-credentials.json') - - if (!fs.existsSync(pubKeyDbPath)) { - fs.writeFileSync(pubKeyDbPath, ""); - } - if (!fs.existsSync(signingCredentialsDbPath)) { - fs.writeFileSync(signingCredentialsDbPath, ""); - } - - this.#pubKeyDb = new Database(path.join(dataPath, 'holochain-service-pubkeys.json')) - this.#signingCredentialsDb = new Database(path.join(dataPath, 'holochain-service-signing-credentials.json')) - this.#signalCallbacks = []; - const holochainAppPort = appPort ? appPort : 1337; - const holochainAdminPort = adminPort ? adminPort : 2000; if(useMdns === undefined) useMdns = false if(useBootstrap === undefined) useBootstrap = true if(useProxy === undefined) useProxy = true if(useLocalProxy === undefined) useLocalProxy = false - this.#adminPort = holochainAdminPort; - this.#appPort = holochainAppPort; this.#resourcePath = resourcePath; this.#queue = new Map(); this.#languageDnaHashes = new Map(); - if (conductorPath) { - this.#conductorPath = conductorPath; - let conductorConfigPath = path.join(conductorPath, "conductor-config.yaml"); - this.#conductorConfigPath = conductorConfigPath; - if (!fs.existsSync(conductorConfigPath)) { - writeDefaultConductor({ - proxyUrl: kitsuneProxy, - environmentPath: conductorPath, - adminPort: holochainAdminPort, - appPort: holochainAppPort, - useBootstrap, - bootstrapService: bootstrapUrl, - conductorConfigPath: conductorConfigPath, - useProxy, - useLocalProxy, - useMdns, - lairConnectionUrl: '' - } as ConductorConfiguration); - } else { - const config = yaml.load(fs.readFileSync(conductorConfigPath, 'utf-8')) as any; - const adminPort = config.admin_interfaces[0].driver.port as number; - - if (adminPort !== this.#adminPort) { - console.debug(`HC PORT: ${this.#adminPort} supplied is different than the PORT: ${adminPort} set in config, updating conductor config`); - config.admin_interfaces[0].driver.port = this.#adminPort; - fs.writeFileSync(conductorConfigPath, yaml.dump(config, { - 'styles': { - '!!null': 'canonical' // dump null as ~ - } - })); - } - } - } - this.logDhtStatus(); } async logDhtStatus() { setInterval(async () => { if (this.#ready) { - for (const [language, hashes] of this.#languageDnaHashes) { - let dhtInfo = (await this.#appWebsocket!.networkInfo({dnas: hashes})); - console.log("HolochainStatus.logDhtStatus: ", language, " has gossip status: ", dhtInfo, "\n"); - } + await HOLOCHAIN_SERVICE.logDhtStatus(); } }, 60000); } @@ -179,136 +94,31 @@ export default class HolochainService { }; } - async connect() { - let resolveReady: ((value: void | PromiseLike) => void) | undefined; - this.#ready = new Promise(resolve => resolveReady = resolve) - - console.log("HolochainService: Connecting to holochain process."); - - try { - if (this.#adminWebsocket == undefined) { - this.#adminWebsocket = await AdminWebsocket.connect(`ws://127.0.0.1:${this.#adminPort}`) - console.debug("HolochainService: Holochain admin interface connected on port", this.#adminPort); - try { - await this.#adminWebsocket!.attachAppInterface({ port: this.#appPort }); - } catch (e) { - console.warn("HolochainService: Could not attach app interface on port", this.#appPort, ", assuming already attached...", e); - } - }; - if (this.#appWebsocket == undefined) { - this.#appWebsocket = await AppWebsocket.connect(`ws://127.0.0.1:${this.#appPort}`, 15000); - this.#appWebsocket.on('signal', this.handleCallback.bind(this)) - console.debug("HolochainService: Holochain app interface connected on port", this.#appPort) - }; - - resolveReady!() - - //Install signing service DNA - const activeApps = await this.#adminWebsocket!.listApps({}); - if (!activeApps.map(value => value.installed_app_id).includes("signing_service")) { - const dest = path.join(this.#dataPath, "signing.dna"); - const signingServiceBytes = UTILS.getSigningDNA(); - fs.writeFileSync(dest, Buffer.from(signingServiceBytes)); - - const dnas = [ - { - file: fs.readFileSync(dest), - nick: "signing", - zomeCalls: [ - ["signing", "sign"], - ["signing", "verify"] - ] - } - ] as Dna[]; - const cellIds = await this.ensureInstallDNAforLanguage("signing_service", dnas, undefined); - if (cellIds.length > 0) { - this.#signingService = cellIds[0]; - } else { - throw new Error("Could not install signing service DNA"); - } - } else { - console.debug("HolochainService: Signing service already installed... activating"); - const activeApps = await this.#adminWebsocket!.listApps({}); - let signingService = activeApps.find(app => app.installed_app_id === "signing_service"); - if (!signingService) { - throw new Error("Could not find signing service DNA"); - } - const cellInfo = signingService.cell_info; - - Object.keys(cellInfo).forEach(async roleName => { - const cellData = cellInfo[roleName]; - - for (const innerCellData of cellData) { - const cellId = (CellType.Provisioned in innerCellData) ? innerCellData[CellType.Provisioned].cell_id : null - if (!cellId) { - throw new Error(`HolochainService: ERROR: Could not get cellId from cell_info: ${cellInfo}`); - } - if(!cellId) { - const e = new Error(`No DNA with nick signing_service found for language signing service DNA`) - throw e - } - this.#signingService = cellId; - } - }) - } - - this.#didResolveError = false; - } catch(e) { - console.error("HolochainService: connect Holochain process with error:", e) - this.#didResolveError = true; - resolveReady!() - } - } - async run(config: HolochainUnlockConfiguration) { let resolveReady: ((value: void | PromiseLike) => void) | undefined; this.#ready = new Promise(resolve => resolveReady = resolve) - if (this.#conductorPath == undefined || this.#conductorConfigPath == undefined) { - console.error("HolochainService: Error intializing Holochain conductor, conductor path is invalid") - this.#didResolveError = true; - resolveReady!() - return - } - let hcProcesses = await runHolochain(this.#resourcePath, this.#conductorConfigPath, this.#conductorPath, config); - this.#hcProcess = hcProcesses; - console.log("HolochainService: Holochain running... Attempting connection\n\n\n"); - await this.connect(); + await HOLOCHAIN_SERVICE.startHolochainConductor({ + passphrase: config.passphrase, + conductorPath: config.conductorPath!, + dataPath: config.dataPath, + useBootstrap: config.useBootstrap!, + useProxy: config.useProxy!, + useLocalProxy: config.useLocalProxy!, + useMdns: config.useMdns!, + proxyUrl: kitsuneProxy, + bootstrapUrl + } as ConductorConfig); + + console.log("Holochain run complete"); resolveReady!() - this.#didResolveError = false; - } - - async callSigningService(data: string): Promise { - if (!this.#signingService) { - throw new Error("Signing service DNA is not init'd yet!") - } - const pubKey = await this.pubKeyForLanguage("main"); - - //Check that signZomeCall will be able to find the signing credentials - await this.ensureSigningKey(this.#signingService!); - - const signedZomeCall = await signZomeCall({ - cell_id: this.#signingService!, - zome_name: "crypto_signing", - fn_name: "sign", - provenance: pubKey, - payload: data - }); - - const result = await this.#appWebsocket!.callZome(signedZomeCall); - return result.toString("hex") } async stop() { await this.#ready console.log("HolochainService.stop(): Stopping holochain process"); - if (this.#didResolveError) { - console.error("HolochainService.stop: Warning attempting to close holochain processes when they did not start error free...") - } - if (this.#hcProcess) { - stopProcesses(this.#hcProcess) - } + await HOLOCHAIN_SERVICE.shutdown(); } unpackDna(dnaPath: string): string { @@ -331,104 +141,13 @@ export default class HolochainService { } } - async pubKeyForAllLanguages(): Promise { - const alreadyExisting = await this.#pubKeyDb.findOne({lang: "global"}) - if(alreadyExisting) { - console.debug("Found existing pubKey", alreadyExisting.pubKey, "for all languages") - return Buffer.from(alreadyExisting.pubKey, "base64") - } else { - const pubKey = await this.#adminWebsocket!.generateAgentPubKey() - const pubKeyString = Buffer.from(pubKey).toString("base64") - await this.#pubKeyDb.insertOne({lang: "global", pubKey: pubKeyString}) - console.debug("Created new pubKey", pubKeyString, "for all languages") - return pubKey - } - } - - async pubKeyForLanguage(lang: string): Promise { - return this.pubKeyForAllLanguages() - - // TODO using the same key for all DNAs should only be a temporary thing. - /* - const alreadyExisting = this.#db.get('pubKeys').find({lang}).value() - if(alreadyExisting) { - const pubKey = Buffer.from(alreadyExisting.pubKey) - console.debug("Found existing pubKey", pubKey.toString("base64"), "for language:", lang) - return pubKey - } else { - const pubKey = await this.#adminWebsocket!.generateAgentPubKey() - this.#db.get('pubKeys').push({lang, pubKey}).write() - console.debug("Created new pubKey", Buffer.from(pubKey).toString("base64"), "for language", lang) - return pubKey - }*/ - } - - private cellIdToB64(cell: CellId): string { - return encodeHashToBase64(cell[0]).concat(encodeHashToBase64(cell[1])); - } - - async ensureSigningKey(cellId: CellId) { - //Check that signZomeCall will be able to find the signing credentials - const signingKeyExists = getSigningCredentials(cellId); - - if (!signingKeyExists) { - const cellIdB64 = this.cellIdToB64(cellId); - //Check if we already have some in the database - let signingCredentials = await this.#signingCredentialsDb.findOne({cellId: cellIdB64}) - if (!signingCredentials) { - console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "generating new ones..."); - await this.generateSigningKeys(cellId); - } else { - let credentials = JSON.parse(signingCredentials.signingCredentials); - credentials.capSecret = new Uint8Array(Buffer.from(credentials.capSecret, 'base64')); - credentials.signingKey = new Uint8Array(Buffer.from(credentials.signingKey, 'base64')); - credentials.keyPair = { - publicKey: new Uint8Array(Buffer.from(credentials.keyPair.publicKey, 'base64')), - secretKey: new Uint8Array(Buffer.from(credentials.keyPair.secretKey, 'base64')) - }; - //We have some but they are not present in the holochain client... set them - console.warn("HolochainService: Did not get signing keys for cell", cellIdB64, "but found them in the database, setting them..."); - setSigningCredentials(cellId, credentials); - } - } - } - - - private async generateSigningKeys(cell: CellId): Promise { - const cellIdB64 = this.cellIdToB64(cell); - - const [keyPair, signingKey] = generateSigningKeyPair(); - const capSecret = await this.#adminWebsocket!.grantSigningKey(cell, {[GrantedFunctionsType.All]: null}, signingKey); - const signingCredentials = { capSecret, keyPair, signingKey } as SigningCredentials; - //Set the signing credentials in holochain client map - setSigningCredentials(cell, signingCredentials); - - //Set the signing credentials in the database - let stringSigningCredentials = { - capSecret: Buffer.from(signingCredentials.capSecret).toString('base64'), - keyPair: { - publicKey: Buffer.from(signingCredentials.keyPair.publicKey).toString('base64'), - secretKey: Buffer.from(signingCredentials.keyPair.secretKey).toString('base64') - }, - signingKey: Buffer.from(signingCredentials.signingKey).toString('base64') - }; - await this.#signingCredentialsDb.insertOne({cellId: cellIdB64, signingCredentials: JSON.stringify(stringSigningCredentials)}); - return signingCredentials; - } - async ensureInstallDNAforLanguage(lang: string, dnas: Dna[], callback: AppSignalCb | undefined): Promise { await this.#ready - if (this.#didResolveError) { - console.error("HolochainService.ensureInstallDNAForLanguage: Warning attempting to install holochain DNA when conductor did not start error free...") - } - const pubKey = await this.pubKeyForLanguage(lang); - - const activeApps = await this.#adminWebsocket!.listApps({}); - let languageApp = activeApps.find(app => app.installed_app_id === lang); - //console.warn("HolochainService: Found running apps:", activeApps); let cellIds = [] as CellId[]; - - if(!languageApp) { + + let appInfo = await HOLOCHAIN_SERVICE.getAppInfo(lang); + + if (!appInfo) { // 1. install app try { console.debug("HolochainService: Installing DNAs for language", lang); @@ -450,18 +169,17 @@ export default class HolochainService { //Did should only ever be undefined when the system DNA's get init'd before agent create occurs //These system DNA's do not currently need EP proof's let membraneProof = {}; - if(did && lang != "signing_service") { - const signedDid = await this.callSigningService(did); - const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(Buffer.from(pubKey).toString("base64"), signedDid); + const agentKey = await HOLOCHAIN_SERVICE.getAgentKey(); + if(did) { + const signedDid = await HOLOCHAIN_SERVICE.signString(did).toString(); + const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(agentKey.toString(), signedDid); membraneProof = {"ad4mDidEntanglement": Buffer.from(JSON.stringify(didHolochainEntanglement))}; } else { membraneProof = {}; } - //console.log("HolochainService: Installing DNA:", dna, "at data path:", this.#dataPath, "\n"); - //Install the app; with on the fly generated app bundle - const installAppResult = await this.#adminWebsocket!.installApp({ - installed_app_id: lang, agent_key: pubKey, membrane_proofs: membraneProof, bundle: { + const installAppResult = await HOLOCHAIN_SERVICE.installApp({ + installed_app_id: lang, agent_key: agentKey, membrane_proofs: membraneProof, bundle: { manifest: { manifest_version: "1", name: lang, @@ -470,73 +188,48 @@ export default class HolochainService { }, resources: {} } - }) + } as InstallAppRequest) + + appInfo = installAppResult - // console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); + console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); } catch(e) { console.error("HolochainService: InstallApp, got error: ", e); return []; } + } - // 2. activate app - try { - const activateResult = await this.#adminWebsocket!.enableApp({installed_app_id: lang}) - languageApp = await this.#appWebsocket!.appInfo({installed_app_id: lang}); - //console.warn("HolochainService: Activated app:", lang, "with result:", activateResult); - } catch(e) { - console.error("HolochainService: ERROR activating app", lang, " - ", e) - } - } - - if (languageApp) { - if ("running" in languageApp.status) { - const activateResult = await this.#adminWebsocket!.enableApp({installed_app_id: lang}); - //console.warn("HolochainService: Activated app:", lang, "with result:", activateResult); - } - - const hashes: Uint8Array[] = []; - Object.keys(languageApp.cell_info).forEach(async roleName => { - const cellData = languageApp!.cell_info[roleName]; - - for (const cellInfo of cellData) { - const cellId = (CellType.Provisioned in cellInfo) ? cellInfo[CellType.Provisioned].cell_id : null - if (!cellId) { - throw new Error(`HolochainService: ERROR: Could not get cellId from cell_info: ${cellInfo}`); - } - cellIds.push(cellId); + const hashes: Uint8Array[] = []; + Object.keys(appInfo.cell_info).forEach(async roleName => { + const cellData = appInfo!.cell_info[roleName]; - let hash = cellId[0]; - if (hash) hashes.push(hash); + for (const cellInfo of cellData) { + const cellId = (CellType.Provisioned in cellInfo) ? cellInfo[CellType.Provisioned].cell_id : null + if (!cellId) { + throw new Error(`HolochainService: ERROR: Could not get cellId from cell_info: ${cellInfo}`); + } + cellIds.push(cellId); - const cellIdB64 = this.cellIdToB64(cellId); - const signingCredentials = await this.#signingCredentialsDb.findOne({cellId: cellIdB64}) - if (!signingCredentials) { - console.log("HolochainService: Did not find saved signingCredentials, generating new one..."); - await this.generateSigningKeys(cellId); - } + let hash = cellId[0]; + if (hash) hashes.push(hash); - //Register the callback to the cell internally - if (callback != undefined) { - //Check for apps matching this language address and register the signal callbacks - console.log("HolochainService: setting holochains signal callback for language", lang); - this.#signalCallbacks.push([cellId, callback, lang]); - } + //Register the callback to the cell internally + if (callback != undefined) { + //Check for apps matching this language address and register the signal callbacks + console.log("HolochainService: setting holochains signal callback for language", lang); + this.#signalCallbacks.push([cellId, callback, lang]); } - }) - - if (!this.#languageDnaHashes.has(lang)) { - this.#languageDnaHashes.set(lang, hashes); } + }); + + if (!this.#languageDnaHashes.has(lang)) { + this.#languageDnaHashes.set(lang, hashes); } return cellIds; } async removeDnaForLang(lang: string) { - const activeApps = await (await this.#adminWebsocket!.listApps({})).map((app) => app.installed_app_id); - const apps = activeApps.filter(app => app === lang); - for (const app of apps) { - await this.#adminWebsocket!.uninstallApp({installed_app_id: app}); - } + await HOLOCHAIN_SERVICE.removeApp(lang); } getDelegateForLanguage(languageHash: string) { @@ -553,67 +246,20 @@ export default class HolochainService { async callZomeFunction(lang: string, dnaNick: string, zomeName: string, fnName: string, payload: object|string): Promise { await this.#ready - if (this.#didResolveError) { - console.error("HolochainService.callZomeFunction: Warning attempting to call zome function when conductor did not start error free...") - } const installed_app_id = lang - //1. Check for apps with installed_app_id matching this language address - let infoResult = await this.#appWebsocket!.appInfo({installed_app_id}) - - let tries = 1 - while(!infoResult && tries < 10) { - await sleep(500) - infoResult = await this.#appWebsocket!.appInfo({installed_app_id}) - tries++ - } - - if(!infoResult) { - console.error("HolochainService: no installed hApp found duringf callZomeFunction() for Language:", lang) - console.error("Did the Language forget to register a DNA?") - throw new Error("No DNA installed") - } - - //2. Check that this app has valid cells that we can call - // console.debug("HolochainService.callZomefunction: get info result:", infoResult) - if(Object.keys(infoResult.cell_info).length === 0) { - console.error("HolochainService: tried to call zome function without any installed cell for given app!") - return null - } - - //3. Get the cellId of the cells with matching lang and dna nick - let cellInfos = infoResult.cell_info[`${lang}-${dnaNick}`]; - if(!cellInfos) { - const e = new Error(`No cell role main found for installed app: ${installed_app_id}`) - console.error(e) - return e - } - const cellInfo = cellInfos[0]; - const cellId = (CellType.Provisioned in cellInfo) ? cellInfo[CellType.Provisioned].cell_id : null - - if (!cellId) { - throw new Error(`HolochainService: ERROR: Could not get cellId from cell_info: ${cellInfo}`); - }; - - const [_dnaHash, provenance] = cellId - //4. Call the zome function try { if (fnName != "sync" && fnName != "current_revision") { console.debug("\x1b[34m", new Date().toISOString(), "HolochainService calling zome function:", dnaNick, zomeName, fnName, payload, "\nFor language with address", lang, "\x1b[0m"); } - await this.ensureSigningKey(cellId); - - const signedZomeCall = await signZomeCall({ - cell_id: cellId, - zome_name: zomeName, - fn_name: fnName, - provenance, - payload - }); - - const result = await this.#appWebsocket!.callZome(signedZomeCall); + let result = await HOLOCHAIN_SERVICE.callZomeFunction(installed_app_id, dnaNick, zomeName, fnName, payload); + if (result["Ok"]) { + result = decode(result["Ok"]) + } else { + result = decode(result["Err"]) + } if (fnName != "sync" && fnName != "current_revision") { if (typeof result === "string") { @@ -634,13 +280,10 @@ export default class HolochainService { } async requestAgentInfos(): Promise { - return await this.#adminWebsocket!.agentInfo({cell_id: null}) + return await HOLOCHAIN_SERVICE.agentInfos() } async addAgentInfos(agent_infos: AgentInfoResponse) { - await this.#adminWebsocket!.addAgentInfo({ agent_infos }) + await HOLOCHAIN_SERVICE.addAgentInfos(agent_infos) } } - -const sleep = (ms: number) => - new Promise((resolve) => setTimeout(() => resolve(), ms)); From 02b86c330f3811d1f1cc28bfa56f2f112301aed4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 12 May 2023 00:29:27 +0100 Subject: [PATCH 272/722] fix async loop handling in js_core --- rust-executor/src/js_core/mod.rs | 87 +++++++++++++++++--------------- 1 file changed, 45 insertions(+), 42 deletions(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 5bba5f176..c5661e495 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -336,60 +336,63 @@ impl JsCore { }; let holochain_signal_receiver_fut = async { - //loop { - if let Some(holochain_service) = maybe_get_global_conductor().await { - info!("Found holochain service"); - let signal_receivers = holochain_service.signal_receivers.clone(); - let mut signal_receivers = signal_receivers.lock().await; - - for receiver in signal_receivers.iter_mut() { - match receiver.try_recv() { - Ok(signal) => { - match signal { - Signal::App { - cell_id, - zome_name, - signal, - } => { - // Handle the received signal here - info!("Received signal: {:?}", signal); - match js_core.execute_async(format!( - "await core.getHolochainService().handleCallback({:?})", - Signal::App { cell_id, zome_name, signal } - )) { - Ok(script_fut) => match script_fut.await { - Ok(res) => { - info!( - "Callback executed successfully: {:?}", - res - ); - } + loop { + if let Some(holochain_service) = maybe_get_global_conductor().await { + //info!("Found holochain service"); + let signal_receivers = holochain_service.signal_receivers.clone(); + let mut signal_receivers = signal_receivers.lock().await; + + for receiver in signal_receivers.iter_mut() { + match receiver.try_recv() { + Ok(signal) => { + match signal { + Signal::App { + cell_id, + zome_name, + signal, + } => { + // Handle the received signal here + info!("Received signal: {:?}", signal); + match js_core.execute_async(format!( + "await core.getHolochainService().handleCallback({:?})", + Signal::App { cell_id, zome_name, signal } + )) { + Ok(script_fut) => match script_fut.await { + Ok(res) => { + info!( + "Callback executed successfully: {:?}", + res + ); + } + Err(err) => { + error!("Error executing callback: {:?}", err); + } + }, Err(err) => { error!("Error executing callback: {:?}", err); } - }, - Err(err) => { - error!("Error executing callback: {:?}", err); } } - } - Signal::System(system_signal) => { - info!("Received system signal: {:?}", system_signal) + Signal::System(system_signal) => { + info!("Received system signal: {:?}", system_signal) + } } } - } - Err(_err) => { - // The channel is empty; no signal is available + Err(_err) => { + // The channel is empty; no signal is available + } } } + } else { + //println!("HolochainService is not available."); } - } else { - //println!("HolochainService is not available."); + tokio::task::yield_now().await; } - //} }; tokio::select! { + biased; + event_loop_result = js_core.event_loop() => { match event_loop_result { Ok(_) => info!("AD4M event loop finished"), @@ -412,11 +415,11 @@ impl JsCore { } _request = receive_fut => { info!("AD4M receive_fut completed"); - break; + //break; } _module_load = module_load_fut => { info!("AD4M module load completed"); - break; + //break; } _holochain_signal_receivers = holochain_signal_receiver_fut => { //info!("AD4M holochain signal receiver completed"); From a62b2b2f94f3a02d7f611a669ed7276b2649f34e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 12 May 2023 00:29:45 +0100 Subject: [PATCH 273/722] fixes on rust HolochainService --- .../holochain_service_extension.js | 22 +++++------ .../holochain_service_extension.rs | 2 +- rust-executor/src/holochain_service/mod.rs | 37 ++++++++++++++----- 3 files changed, 39 insertions(+), 22 deletions(-) diff --git a/rust-executor/src/holochain_service/holochain_service_extension.js b/rust-executor/src/holochain_service/holochain_service_extension.js index 7ef03baa2..f0cd6b058 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.js +++ b/rust-executor/src/holochain_service/holochain_service_extension.js @@ -2,37 +2,37 @@ const core = Deno.core; globalThis.HOLOCHAIN_SERVICE = { - start_holochain_conductor: async (config) => { + startHolochainConductor: async (config) => { return core.opAsync("start_holochain_conductor", config); }, - log_dht_status: async () => { + logDhtStatus: async () => { return core.opAsync("log_dht_status"); }, - install_app: async (install_app_payload) => { + installApp: async (install_app_payload) => { return core.opAsync("install_app", install_app_payload); }, - get_app_info: async (app_id) => { + getAppInfo: async (app_id) => { return core.opAsync("get_app_info", app_id); }, - call_zome_function: async (app_id, cell_name, zome_name, fn_name, payload) => { + callZomeFunction: async (app_id, cell_name, zome_name, fn_name, payload) => { return core.opAsync("call_zome_function", app_id, cell_name, zome_name, fn_name, payload); }, - agent_infos: async () => { + agentInfos: async () => { return core.opAsync("agent_infos"); }, - add_agent_infos: async (agent_infos) => { - return core.opAsync("add_agent_infos", agent_info); + addAgentInfos: async (agent_infos) => { + return core.opAsync("add_agent_infos", agent_infos); }, - remove_app: async (app_id) => { + removeApp: async (app_id) => { return core.opAsync("remove_app", app_id); }, - sign_string: async (string) => { + signString: async (string) => { return core.opAsync("sign_string", string); }, shutdown: async () => { return core.opAsync("shutdown") }, - get_agent_key: async () => { + getAgentKey: async () => { return core.opAsync("get_agent_key") } }; diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 782bfb07c..3b4ab81aa 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -22,7 +22,7 @@ async fn start_holochain_conductor(config: LocalConductorConfig) -> Result<(), A async fn log_dht_status() -> Result<(), AnyError> { let conductor = get_global_conductor().await; let dht_status = conductor.conductor.dump_network_metrics(None).await?; - info!("DHT Status: {:?}", dht_status); + info!("DHT Status: {:#?}", dht_status); Ok(()) } diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index b6e77ca12..67f9d4708 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -1,6 +1,8 @@ use std::path::PathBuf; use std::sync::Arc; +use chrono::Duration; +use crypto_box::rand_core::OsRng; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use holochain::conductor::api::{CellInfo, ZomeCall, AppInfo}; @@ -42,7 +44,7 @@ pub struct LocalConductorConfig { } impl HolochainService { - pub async fn new(local_config: LocalConductorConfig) -> Result { + pub async fn new(local_config: LocalConductorConfig) -> Result<(), AnyError> { let conductor_yaml_path = std::path::Path::new(&local_config.conductor_path).join("conductor_config.yaml"); let config = if conductor_yaml_path.exists() { @@ -93,8 +95,13 @@ impl HolochainService { .config(config) .passphrase(Some(local_config.passphrase.as_bytes().into())) .build() - .await - .map_err(|err| anyhow!("Could not build conductor: {:?}", err))?; + .await; + + if conductor.is_err() { + panic!("Could not start holochain conductor"); + } + + let conductor = conductor.unwrap(); info!("Started holochain conductor"); let signal_broadcaster = conductor.signal_broadcaster(); @@ -113,7 +120,7 @@ impl HolochainService { info!("Started holochain conductor and set reference in rust executor"); - Ok(service) + Ok(()) } pub async fn install_app( @@ -163,6 +170,10 @@ impl HolochainService { fn_name: String, payload: serde_json::Value, ) -> Result { + info!( + "Calling zome function: {:?} {:?} {:?} {:?} {:?}", + app_id, cell_name, zome_name, fn_name, payload + ); let app_info = self.conductor.get_app_info(&app_id).await?; if app_info.is_none() { @@ -171,7 +182,7 @@ impl HolochainService { let app_info = app_info.unwrap(); - let cell_entry = app_info.cell_info.get(&cell_name); + let cell_entry = app_info.cell_info.get(&format!("{}-{}", app_id, cell_name)); if cell_entry.is_none() { return Err(anyhow!( @@ -200,18 +211,24 @@ impl HolochainService { //Get the agents pub key from the conductor - let mut rng = rand::thread_rng(); - let random_bytes: [u8; 32] = rng.gen(); + fn generate_nonce() -> [u8; 32] { + let mut rng = OsRng; + let mut nonce = [0u8; 32]; + rng.fill(&mut nonce); + nonce + } let zome_call_unsigned = ZomeCallUnsigned { cell_id: cell_id, zome_name: zome_name.into(), fn_name: fn_name.into(), - payload: ExternIO::from(serde_json::to_vec(&payload).unwrap()), + payload: ExternIO::encode(payload).unwrap(), cap_secret: None, provenance: agent_pub_key, - nonce: random_bytes.into(), - expires_at: Timestamp::from_micros(300000000), + nonce: generate_nonce().into(), + expires_at: Timestamp::now() + .checked_add_signed(&Duration::seconds(300)) + .unwrap(), }; let keystore = self.conductor.keystore(); From b14a231329806b0bc575c4cf4b8602027cd015b6 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 15 May 2023 14:45:38 +0100 Subject: [PATCH 274/722] make the main and js_threads multithreaded toktion runtimes --- rust-executor/src/js_core/mod.rs | 2 +- rust-executor/src/main.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index c5661e495..5214da3be 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -218,7 +218,7 @@ impl JsCore { let tx_inside_clone = tx_inside.clone(); let tx_inside_loader_clone = tx_inside_loader.clone(); std::thread::spawn(move || { - let rt = Builder::new_current_thread() + let rt = Builder::new_multi_thread() .enable_all() .build() .expect("Failed to create Tokio runtime"); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 287f36054..0ce7f5274 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -13,7 +13,7 @@ use std::env; use js_core::JsCore; -#[tokio::main] +#[tokio::main(flavor = "multi_thread")] async fn main() { env::set_var("RUST_LOG", "rust_executor=info"); env_logger::init(); From d3ffe0cc0d0e34c74bef77de6d80c7b89b8f6515 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 15 May 2023 14:46:20 +0100 Subject: [PATCH 275/722] wrap all resolver calls with JsResult type to catch errors and stop crashing of js runtime --- executor/src/core/PerspectivismCore.ts | 23 + .../src/core/graphQL-interface/GraphQL.ts | 8 +- rust-executor/src/graphql/graphql_types.rs | 23 +- .../src/graphql/mutation_resolvers.rs | 560 +++++++++--------- rust-executor/src/graphql/query_resolvers.rs | 193 +++--- 5 files changed, 412 insertions(+), 395 deletions(-) diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index f567413b0..85974045e 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -91,6 +91,29 @@ export default class PerspectivismCore { }) } + async callResolver (type: string, fnName: string, args: any, context: any) { + if(!this.resolvers[type]) throw new Error(`Could not find resolver for type ${type}`) + if(!this.resolvers[type][fnName]) throw new Error(`Could not find resolver function ${fnName} for type ${type}`) + try { + let result; + if (args && context) { + result = await this.resolvers[type][fnName](args, context); + } + if (!args) { + result = await this.resolvers[type][fnName](context); + } + if (!context) { + result = await this.resolvers[type][fnName](args); + } + if (!args && !context) { + result = await this.resolvers[type][fnName](); + } + return {"Ok": result} + } catch (error) { + return {"Error": JSON.stringify(error)} + } + } + get holochainService(): HolochainService { if (!this.#holochain) { throw Error("No holochain service") diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 070f41927..a3bbb35c8 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -21,11 +21,6 @@ import { OuterConfig } from '../../main'; import path from 'path'; import Perspective from '../Perspective'; -function withFilter(f1:()=>{}, f2:(payload: any, variables: any)=>{} ) { - return (a1: any, a2: any) => { - } -} - function checkLinkLanguageInstalled(perspective: Perspective) { if(perspective.state != PerspectiveState.Synced && perspective.state != PerspectiveState.LinkLanguageInstalledButNotSynced) { throw new Error(`Perspective ${perspective.uuid}/${perspective.name} does not have a LinkLanguage installed. State is: ${perspective.state}`) @@ -33,12 +28,12 @@ function checkLinkLanguageInstalled(perspective: Perspective) { } export function createResolvers(core: PerspectivismCore, config: OuterConfig) { - const pubsub = PubSub.get() function signPerspectiveDeep(input: PerspectiveUnsignedInput): PerspectiveExpression { let out = new PerspectiveExpression() out.links = input.links.map(l => core.agentService.createSignedExpression(l)) return core.agentService.createSignedExpression(out) } + return { Query: { //@ts-ignore @@ -79,7 +74,6 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) let apps = await core.agentService.getApps() return apps; - }, //@ts-ignore expression: async (args, context) => { diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index 9f21f6f5e..851a1ad10 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -1,4 +1,4 @@ -use juniper::{GraphQLInputObject, GraphQLObject, GraphQLScalar}; +use juniper::{FieldError, FieldResult, GraphQLInputObject, GraphQLObject, GraphQLScalar}; use serde::{de::DeserializeOwned, Deserialize, Serialize}; #[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] @@ -404,6 +404,27 @@ pub struct PerspectiveStateFilter { pub perspective: PerspectiveHandle, } +#[derive(Debug, Deserialize, Serialize)] +pub enum JsResultType +where + T: std::fmt::Debug + Serialize + 'static, +{ + Ok(T), + Error(String), +} + +impl JsResultType +where + T: std::fmt::Debug + Serialize + 'static, +{ + pub fn get_graphql_result(self) -> FieldResult { + match self { + JsResultType::Ok(result) => Ok(result), + JsResultType::Error(error) => Err(FieldError::from(error.clone())), + } + } +} + // Define the trait with a generic associated type `Value` pub trait GetValue { type Value: Clone + DeserializeOwned + Send + 'static + std::fmt::Debug; diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 1a5cd9ed7..cc1dd5669 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -1,7 +1,7 @@ #![allow(non_snake_case)] #![allow(unused_variables)] use juniper::{graphql_object, FieldResult}; -use log::{debug, info}; +use log::debug; use crate::js_core::JsCoreHandle; @@ -21,16 +21,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.addTrustedAgents( - {{ agents: {:?} }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "addTrustedAgents", {{ agents: {:?} }}, {{ capabilities: [{}] }}) + )"#, agents, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_add_entanglement_proofs( @@ -41,17 +38,14 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentAddEntanglementProofs( - {{ proofs: {} }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentAddEntanglementProofs", {{ proofs: {} }}, {{ capabilities: [{}] }}) + )"#, serde_json::to_string(&proofs).unwrap(), ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_delete_entanglement_proofs( @@ -62,17 +56,14 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentDeleteEntanglementProofs( - {{ proofs: {} }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentDeleteEntanglementProofs", {{ proofs: {} }}, {{ capabilities: [{}] }}) + )"#, serde_json::to_string(&proofs).unwrap(), ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_entanglement_proof_pre_flight( @@ -84,16 +75,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentEntanglementProofPreFlight( - {{ deviceKey: "{}", deviceKeyType: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentEntanglementProofPreFlight", {{ deviceKey: "{}", deviceKeyType: "{}" }}, {{ capabilities: [{}] }}) + )"#, device_key, device_key_type, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: EntanglementProof = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_generate( @@ -104,16 +92,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentGenerate( - {{ passphrase: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentGenerate", {{ passphrase: "{}" }}, {{ capabilities: [{}] }}) + )"#, passphrase, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: AgentStatus = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_generate_jwt( @@ -125,16 +110,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentGenerateJwt( - {{ rand: "{}", requestId: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentGenerateJwt", {{ rand: "{}", requestId: "{}" }}, {{ capabilities: [{}] }}) + )"#, rand, request_id, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: String = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_lock( @@ -145,16 +127,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentLock( - {{ passphrase: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentLock", {{ passphrase: "{}" }}, {{ capabilities: [{}] }}) + )"#, passphrase, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: AgentStatus = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } //NOTE: all the functions from here on out have not been tested by calling the cli <-> rust graphql server @@ -166,16 +145,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.agentPermitCapability( - {{ auth: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentPermitCapability", {{ auth: "{}" }}, {{ capabilities: [{}] }}) + )"#, auth, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: String = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_remove_app( @@ -186,16 +162,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentRemoveApp( - {{ requestId: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentRemoveApp", {{ requestId: "{}" }}, {{ capabilities: [{}] }}) + )"#, request_id, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_request_capability( @@ -207,16 +180,13 @@ impl Mutation { let auth_info_json = serde_json::to_string(&auth_info)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentRequestCapability( - {{ authInfo: {} }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentRequestCapability", {{ authInfo: {} }}, {{ capabilities: [{}] }}) + )"#, auth_info_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: String = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_revoke_token( @@ -227,16 +197,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentRevokeToken( - {{ requestId: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentRevokeToken", {{ requestId: "{}" }}, {{ capabilities: [{}] }}) + )"#, request_id, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_sign_message( @@ -247,16 +214,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentSignMessage( - {{ message: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentSignMessage", {{ message: "{}" }}, {{ capabilities: [{}] }}) + )"#, message, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: AgentSignature = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_unlock( @@ -267,16 +231,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentUnlock( - {{ passphrase: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentUnlock", {{ passphrase: "{}" }}, {{ capabilities: [{}] }}) + )"#, passphrase, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: AgentStatus = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_update_direct_message_language( @@ -287,16 +248,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentUpdateDirectMessageLanguage( - {{ directMessageLanguage: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentUpdateDirectMessageLanguage", {{ directMessageLanguage: "{}" }}, {{ capabilities: [{}] }}) + )"#, direct_message_language, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Agent = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_update_public_perspective( @@ -308,16 +266,13 @@ impl Mutation { let perspective_json = serde_json::to_string(&perspective)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.agentUpdatePublicPerspective( - {{ perspective: {} }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "agentUpdatePublicPerspective", {{ perspective: {} }}, {{ capabilities: [{}] }}) + )"#, perspective_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Agent = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn delete_trusted_agents( @@ -329,16 +284,13 @@ impl Mutation { let agents_json = serde_json::to_string(&agents)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.deleteTrustedAgents( - {{ agents: {} }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "deleteTrustedAgents", {{ agents: {} }}, {{ capabilities: [{}] }}) + )"#, agents_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn expression_create( @@ -350,16 +302,13 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.expressionCreate( - {{ content: {}, languageAddress: "{}" }}, - {{ capabilities: [{}] }} - ) - )"#, + await core.callResolver("Mutation", "expressionCreate", {{ content: {}, languageAddress: "{}" }}, {{ capabilities: [{}] }}) + )"#, content, language_address, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: String = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn expression_interact( @@ -372,16 +321,17 @@ impl Mutation { let interaction_call_json = serde_json::to_string(&interaction_call)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.expressionInteract( + await core.callResolver( + "Mutation", + "expressionInteract", {{ interactionCall: {}, url: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, interaction_call_json, url, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: String = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn language_apply_template_and_publish( @@ -393,16 +343,17 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.languageApplyTemplateAndPublish( + await core.callResolver( + "Mutation", + "languageApplyTemplateAndPublish", {{ sourceLanguageHash: "{}", templateData: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, source_language_hash, template_data, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: LanguageRef = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn language_publish( @@ -415,32 +366,34 @@ impl Mutation { let language_meta_json = serde_json::to_string(&language_meta)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.languagePublish( + await core.callResolver( + "Mutation", + "languagePublish", {{ languageMeta: {}, languagePath: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, language_meta_json, language_path, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: LanguageMeta = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn language_remove(&self, context: &JsCoreHandle, address: String) -> FieldResult { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.languageRemove( + await core.callResolver( + "Mutation", + "languageRemove", {{ address: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, address, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn language_write_settings( @@ -452,16 +405,17 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.languageWriteSettings( + await core.callResolver( + "Mutation", + "languageWriteSettings", {{ languageAddress: "{}", settings: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, language_address, settings, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_join_from_url( @@ -472,16 +426,17 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.neighbourhoodJoinFromUrl( + await core.callResolver( + "Mutation", + "neighbourhoodJoinFromUrl", {{ url: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, url, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: PerspectiveHandle = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_publish_from_perspective( @@ -495,16 +450,17 @@ impl Mutation { let meta_json = serde_json::to_string(&meta)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.neighbourhoodPublishFromPerspective( + await core.callResolver( + "Mutation", + "neighbourhoodPublishFromPerspective", {{ linkLanguage: "{}", meta: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, link_language, meta_json, perspectiveUUID, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: String = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_send_broadcast( @@ -517,16 +473,17 @@ impl Mutation { let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.neighbourhoodSendBroadcast( + await core.callResolver( + "Mutation", + "neighbourhoodSendBroadcast", {{ payload: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, payload_json, perspectiveUUID, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_send_broadcast_u( @@ -539,16 +496,17 @@ impl Mutation { let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.neighbourhoodSendBroadcastU( + await core.callResolver( + "Mutation", + "neighbourhoodSendBroadcastU", {{ payload: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, payload_json, perspectiveUUID, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_send_signal( @@ -562,16 +520,17 @@ impl Mutation { let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.neighbourhoodSendSignal( + await core.callResolver( + "Mutation", + "neighbourhoodSendSignal", {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, payload_json, perspectiveUUID, remote_agent_did, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_send_signal_u( @@ -585,16 +544,17 @@ impl Mutation { let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.neighbourhoodSendSignalU( + await core.callResolver( + "Mutation", + "neighbourhoodSendSignalU", {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, payload_json, perspectiveUUID, remote_agent_did, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_set_online_status( @@ -607,16 +567,17 @@ impl Mutation { let status_json = serde_json::to_string(&status)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.neighbourhoodSetOnlineStatus( + await core.callResolver( + "Mutation", + "neighbourhoodSetOnlineStatus", {{ perspectiveUUID: "{}", status: {} }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, perspectiveUUID, status_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_set_online_status_u( @@ -629,16 +590,17 @@ impl Mutation { let status_json = serde_json::to_string(&status)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.neighbourhoodSetOnlineStatusU( + await core.callResolver( + "Mutation", + "neighbourhoodSetOnlineStatusU", {{ perspectiveUUID: "{}", status: {} }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, perspectiveUUID, status_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_add( @@ -646,21 +608,20 @@ impl Mutation { context: &JsCoreHandle, name: String, ) -> FieldResult { - info!("creating perspective {}", name); let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveAdd( + await core.callResolver( + "Mutation", + "perspectiveAdd", {{ name: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, name, ALL_CAPABILITY ); let result = js.execute(script).await?; - debug!("created perspective w result: {:?}", result); - let s: PerspectiveHandle = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_add_link( @@ -673,16 +634,17 @@ impl Mutation { let link_json = serde_json::to_string(&link)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveAddLink( + await core.callResolver( + "Mutation", + "perspectiveAddLink", {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, link_json, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: LinkExpression = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_add_link_expression( @@ -695,16 +657,17 @@ impl Mutation { let link_json = serde_json::to_string(&link)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveAddLinkExpression( + await core.callResolver( + "Mutation", + "perspectiveAddLinkExpression", {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, link_json, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: LinkExpression = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_add_links( @@ -717,16 +680,17 @@ impl Mutation { let links_json = serde_json::to_string(&links)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveAddLinks( + await core.callResolver( + "Mutation", + "perspectiveAddLinks", {{ links: {}, uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, links_json, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_link_mutations( @@ -739,16 +703,17 @@ impl Mutation { let mutations_json = serde_json::to_string(&mutations)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveLinkMutations( + await core.callResolver( + "Mutation", + "perspectiveLinkMutations", {{ mutations: {}, uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, mutations_json, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: LinkExpressionMutations = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_publish_snapshot( @@ -759,32 +724,34 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectivePublishSnapshot( + await core.callResolver( + "Mutation", + "perspectivePublishSnapshot", {{ uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: String = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_remove(&self, context: &JsCoreHandle, uuid: String) -> FieldResult { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveRemove( + await core.callResolver( + "Mutation", + "perspectiveRemove", {{ uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_remove_link( @@ -797,16 +764,17 @@ impl Mutation { let link_json = serde_json::to_string(&link)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveRemoveLink( + await core.callResolver( + "Mutation", + "perspectiveRemoveLink", {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, link_json, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_remove_links( @@ -819,16 +787,17 @@ impl Mutation { let links_json = serde_json::to_string(&links)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveRemoveLinks( + await core.callResolver( + "Mutation", + "perspectiveRemoveLinks", {{ links: {}, uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, links_json, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_update( @@ -840,16 +809,17 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveUpdate( + await core.callResolver( + "Mutation", + "perspectiveUpdate", {{ name: "{}", uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, name, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: PerspectiveHandle = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_update_link( @@ -864,16 +834,17 @@ impl Mutation { let old_link_json = serde_json::to_string(&old_link)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.perspectiveUpdateLink( + await core.callResolver( + "Mutation", + "perspectiveUpdateLink", {{ newLink: {}, oldLink: {}, uuid: "{}" }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, new_link_json, old_link_json, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: LinkExpression = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_add_friends( @@ -885,16 +856,17 @@ impl Mutation { let dids_json = serde_json::to_string(&dids)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.runtimeAddFriends( + await core.callResolver( + "Mutation", + "runtimeAddFriends", {{ dids: {} }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, dids_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_add_known_link_language_templates( @@ -906,16 +878,17 @@ impl Mutation { let addresses_json = serde_json::to_string(&addresses)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.runtimeAddKnownLinkLanguageTemplates( + await core.callResolver( + "Mutation", + "runtimeAddKnownLinkLanguageTemplates", {{ addresses: {} }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, addresses_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_friend_send_message( @@ -928,16 +901,17 @@ impl Mutation { let message_json = serde_json::to_string(&message)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.runtimeFriendSendMessage( + await core.callResolver( + "Mutation", + "runtimeFriendSendMessage", {{ did: "{}", message: {} }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, did, message_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_hc_add_agent_infos( @@ -948,46 +922,50 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.runtimeHcAddAgentInfos( + await core.callResolver( + "Mutation", + "runtimeHcAddAgentInfos", {{ agentInfos: JSON.stringify({}) }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, agent_infos, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_open_link(&self, context: &JsCoreHandle, url: String) -> FieldResult { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.runtimeOpenLink( - {{ url: "{}" }} - ) - )"#, - url + await core.callResolver( + "Mutation", + "runtimeOpenLink", + {{ url: "{}" }}, + {{ capabilities: [{}] }} + ))"#, + url, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_quit(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.runtimeQuit( + await core.callResolver( + "Mutation", + "runtimeQuit", {{ capabilities: [{}] }} - ) - )"#, + ))"#, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_remove_friends( @@ -999,16 +977,17 @@ impl Mutation { let dids_json = serde_json::to_string(&dids)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.runtimeRemoveFriends( + await core.callResolver( + "Mutation", + "runtimeRemoveFriends", {{ dids: {} }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, dids_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_remove_known_link_language_templates( @@ -1020,16 +999,17 @@ impl Mutation { let addresses_json = serde_json::to_string(&addresses)?; let script = format!( r#"JSON.stringify( - core.resolvers.Mutation.runtimeRemoveKnownLinkLanguageTemplates( + await core.callResolver( + "Mutation", + "runtimeRemoveKnownLinkLanguageTemplates", {{ addresses: {} }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, addresses_json, ALL_CAPABILITY ); let result = js.execute(script).await?; - let s: Vec = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_set_status( @@ -1041,15 +1021,17 @@ impl Mutation { let status_json = serde_json::to_string(&status)?; let script = format!( r#"JSON.stringify( - await core.resolvers.Mutation.runtimeSetStatus( + await core.callResolver( + "Mutation", + "runtimeSetStatus", {{ status: {} }}, {{ capabilities: [{}] }} - ) - )"#, + ))"#, status_json, ALL_CAPABILITY ); + debug!("runtime_set_status script: {}", script); let result = js.execute(script).await?; - let s: bool = serde_json::from_str(&result)?; - Ok(s) + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } } diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index bf90874f4..f8ff7ef32 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -17,12 +17,12 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.agent({{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.callResolver("Query", "agent", null, {{ capabilities: [{}] }}))"#, ALL_CAPABILITY )) .await?; - let a: Agent = serde_json::from_str(&result)?; - return Ok(a); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } #[graphql(name = "agentByDID")] @@ -32,12 +32,11 @@ impl Query { did: String, ) -> FieldResult> { let mut js = context.clone(); - debug!("agent_by_did: {}", did); let result = js .execute( format!( r#"JSON.stringify( - await core.resolvers.Query.agentByDID( + await core.callResolver("Query", "agentByDID", {{ did: "{}" }}, {{ capabilities: [{}] }} ) @@ -47,21 +46,20 @@ impl Query { .into(), ) .await?; - debug!("agent_by_did result: {}", result); - let a: Option = serde_json::from_str(&result)?; - return Ok(a); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_get_apps(&self, context: &JsCoreHandle) -> FieldResult> { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(await core.resolvers.Query.agentGetApps({{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.callResolver("Query", "agentGetApps", null, {{ capabilities: [{}] }}))"#, ALL_CAPABILITY )) .await?; - let apps: Vec = serde_json::from_str(&result)?; - return Ok(apps); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_get_entanglement_proofs( @@ -71,32 +69,34 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.agentGetEntanglementProofs())" + r#"JSON.stringify(await core.callResolver("Query", "agentGetEntanglementProofs", null, null))"# )) .await?; - let proofs: Vec = serde_json::from_str(&result)?; - return Ok(proofs); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_is_locked(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); let result = js - .execute("JSON.stringify(core.resolvers.Query.agentIsLocked()))".to_string()) + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "agentIsLocked", null, null))"# + )) .await?; - let is_locked: bool = serde_json::from_str(&result)?; - return Ok(is_locked); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn agent_status(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.agentStatus({{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.callResolver("Query", "agentStatus", null, {{ capabilities: [{}] }}))"#, ALL_CAPABILITY )) .await?; - let s: AgentStatus = serde_json::from_str(&result)?; - return Ok(s); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn expression( @@ -107,13 +107,13 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.expression({{ url: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "expression", {{ url: "{}" }}, {{ capabilities: [{}] }}))"#, url, ALL_CAPABILITY )) .await?; - let expression: Option = serde_json::from_str(&result)?; - return Ok(expression); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn expression_interactions( @@ -124,13 +124,13 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.expressionInteractions({{ url: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "expressionInteractions", {{ url: "{}" }}, {{ capabilities: [{}] }}))"#, url, ALL_CAPABILITY )) .await?; - let interactions: Vec = serde_json::from_str(&result)?; - return Ok(interactions); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn expression_many( @@ -146,13 +146,13 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.expressionMany({{ urls: [{}] }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "expressionMany", {{ urls: [{}] }}, {{ capabilities: [{}] }}))"#, urls_string, ALL_CAPABILITY )) .await?; - let expressions: Vec> = serde_json::from_str(&result)?; - return Ok(expressions); + let result: JsResultType>> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn expression_raw( @@ -163,25 +163,25 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.expressionRaw({{ url: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "expressionRaw", {{ url: "{}" }}, {{ capabilities: [{}] }}))"#, url, ALL_CAPABILITY )) .await?; - let expression_raw: Option = serde_json::from_str(&result)?; - return Ok(expression_raw); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn get_trusted_agents(&self, context: &JsCoreHandle) -> FieldResult> { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(core.resolvers.Query.getTrustedAgents({{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "getTrustedAgents", {{ capabilities: [{}] }}))"#, ALL_CAPABILITY )) .await?; - let trusted_agents: Vec = serde_json::from_str(&result)?; - return Ok(trusted_agents); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn language( @@ -192,13 +192,13 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.language({{ address: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "language", {{ address: "{}" }}, {{ capabilities: [{}] }}))"#, address, ALL_CAPABILITY )) .await?; - let language_handle: LanguageHandle = serde_json::from_str(&result)?; - return Ok(language_handle); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn language_meta( @@ -209,13 +209,13 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.languageMeta({{ address: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "languageMeta", {{ address: "{}" }}, {{ capabilities: [{}] }}))"#, address, ALL_CAPABILITY )) .await?; - let language_meta: LanguageMeta = serde_json::from_str(&result)?; - return Ok(language_meta); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn language_source( @@ -226,13 +226,13 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.languageSource({{ address: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "languageSource", {{ address: "{}" }}, {{ capabilities: [{}] }}))"#, address, ALL_CAPABILITY )) .await?; - let language_source: String = serde_json::from_str(&result)?; - return Ok(language_source); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn languages( @@ -244,13 +244,13 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(core.resolvers.Query.languages({{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "languages", {{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_string, ALL_CAPABILITY )) .await?; - let languages: Vec = serde_json::from_str(&result)?; - return Ok(languages); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_has_telepresence_adapter( @@ -260,10 +260,10 @@ impl Query { ) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.resolvers.Query.neighbourhoodHasTelepresenceAdapter({{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodHasTelepresenceAdapter", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) .await?; - let has_adapter: bool = serde_json::from_str(&result)?; - return Ok(has_adapter); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_online_agents( @@ -273,10 +273,10 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.resolvers.Query.neighbourhoodOnlineAgents({{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOnlineAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) .await?; - let online_agents: Vec = serde_json::from_str(&result)?; - return Ok(online_agents); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn neighbourhood_other_agents( @@ -286,10 +286,10 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.resolvers.Query.neighbourhoodOtherAgents({{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOtherAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) .await?; - let other_agents: Vec = serde_json::from_str(&result)?; - return Ok(other_agents); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective( @@ -300,13 +300,13 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(core.resolvers.Query.perspective({{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "perspective", {{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, uuid, ALL_CAPABILITY )) .await?; - let perspective_handle: Option = serde_json::from_str(&result)?; - return Ok(perspective_handle); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_query_links( @@ -318,12 +318,12 @@ impl Query { let query_string = serde_json::to_string(&query)?; let mut js = context.clone(); let script = format!( - r#"JSON.stringify(await core.resolvers.Query.perspectiveQueryLinks({{ query: {}, uuid: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "perspectiveQueryLinks", {{ query: {}, uuid: "{}" }}, {{ capabilities: [{}] }}))"#, query_string, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let link_expressions: Vec = serde_json::from_str(&result)?; - return Ok(link_expressions); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_query_prolog( @@ -334,12 +334,12 @@ impl Query { ) -> FieldResult { let mut js = context.clone(); let script = format!( - r#"await core.resolvers.Query.perspectiveQueryProlog({{ query: '{}', uuid: "{}" }}, {{ capabilities: [{}] }})"#, + r#"await core.callResolver("Query", "perspectiveQueryProlog", {{ query: '{}', uuid: "{}" }}, {{ capabilities: [{}] }})"#, query, uuid, ALL_CAPABILITY ); let result = js.execute(script).await?; - let prolog_result: String = serde_json::from_str(&result)?; - return Ok(prolog_result); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspective_snapshot( @@ -350,25 +350,25 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.perspectiveSnapshot({{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "perspectiveSnapshot", {{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, uuid, ALL_CAPABILITY )) .await?; - let perspective_snapshot: Perspective = serde_json::from_str(&result)?; - return Ok(perspective_snapshot); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn perspectives(&self, context: &JsCoreHandle) -> FieldResult> { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.perspectives({{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.callResolver("Query", "perspectives", null, {{ capabilities: [{}] }}))"#, ALL_CAPABILITY )) .await?; - let perspectives: Vec = serde_json::from_str(&result)?; - return Ok(perspectives); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_friend_status( @@ -379,46 +379,45 @@ impl Query { let mut js = context.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.resolvers.Query.runtimeFriendStatus({{ did: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "runtimeFriendStatus", {{ did: "{}" }}, {{ capabilities: [{}] }}))"#, did, ALL_CAPABILITY )) .await?; - let friend_status: PerspectiveExpression = serde_json::from_str(&result)?; - return Ok(friend_status); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_friends(&self, context: &JsCoreHandle) -> FieldResult> { let mut js = context.clone(); let result = js .execute(format!( - "JSON.stringify(core.resolvers.Query.runtimeFriends({{ capabilities: [{}] }}))", + r#"JSON.stringify(await core.callResolver("Query", "runtimeFriends", null, {{ capabilities: [{}] }}))"#, ALL_CAPABILITY )) .await?; - let friends: Vec = serde_json::from_str(&result)?; - return Ok(friends); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_hc_agent_infos(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(await core.resolvers.Query.runtimeHcAgentInfos({{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeHcAgentInfos", null, {{ capabilities: [{}] }}))"#, ALL_CAPABILITY)) .await?; - let hc_agent_infos: String = serde_json::from_str(&result)?; - return Ok(hc_agent_infos); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_info(&self, context: &JsCoreHandle) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!( - "JSON.stringify(core.resolvers.Query.runtimeInfo({{ capabilities: [{}] }}))", + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeInfo", null, {{ capabilities: [{}] }}))"#, ALL_CAPABILITY )) .await?; - let runtime_info: RuntimeInfo = serde_json::from_str(&result)?; - return Ok(runtime_info); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_known_link_language_templates( @@ -427,10 +426,10 @@ impl Query { ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!("JSON.stringify(core.resolvers.Query.runtimeKnownLinkLanguageTemplates({{ capabilities: [{}] }}))", ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeKnownLinkLanguageTemplates", {{ capabilities: [{}] }}))"#, ALL_CAPABILITY)) .await?; - let templates: Vec = serde_json::from_str(&result)?; - return Ok(templates); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_message_inbox( @@ -441,10 +440,10 @@ impl Query { let filter_str = filter.unwrap_or_else(|| String::from("{}")); let mut js = context.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.resolvers.Query.runtimeMessageInbox({{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_str, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageInbox", {{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_str, ALL_CAPABILITY)) .await?; - let inbox_messages: Vec = serde_json::from_str(&result)?; - return Ok(inbox_messages); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_message_outbox( @@ -455,10 +454,10 @@ impl Query { let filter_str = filter.unwrap_or_else(|| String::from("{}")); let mut js = context.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.resolvers.Query.runtimeMessageOutbox({{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_str, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageOutbox", {{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_str, ALL_CAPABILITY)) .await?; - let outbox_messages: Vec = serde_json::from_str(&result)?; - return Ok(outbox_messages); + let result: JsResultType> = serde_json::from_str(&result)?; + result.get_graphql_result() } async fn runtime_verify_string_signed_by_did( @@ -470,11 +469,10 @@ impl Query { signed_data: String, ) -> FieldResult { let mut js = context.clone(); - debug!("runtime_verify_string_signed_by_did"); let result = js .execute(format!( r#"JSON.stringify( - await core.resolvers.Query.runtimeVerifyStringSignedByDid( + await core.callResolver("Query", "runtimeVerifyStringSignedByDid", {{ data: "{}", did: "{}", didSigningKeyId: "{}", signedData: "{}" }}, {{ capabilities: [{}] }} ) @@ -482,8 +480,7 @@ impl Query { data, did, did_signing_key_id, signed_data, ALL_CAPABILITY )) .await?; - debug!("runtime_verify_string_signed_by_did result: {}", result); - let verified: bool = serde_json::from_str(&result)?; - return Ok(verified); + let result: JsResultType = serde_json::from_str(&result)?; + result.get_graphql_result() } } From 47d0838db245004e0d9b6b17f3f8bf29cf6041fa Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 15 May 2023 14:46:44 +0100 Subject: [PATCH 276/722] correctly handle null argument payload to zome function call --- .../src/holochain_service/holochain_service_extension.rs | 2 +- rust-executor/src/holochain_service/mod.rs | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 3b4ab81aa..7d6b9dfc2 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -46,7 +46,7 @@ async fn call_zome_function( cell_name: String, zome_name: String, fn_name: String, - payload: serde_json::Value, + payload: Option, ) -> Result { let conductor = get_global_conductor().await; conductor diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 67f9d4708..eedd76db4 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -168,7 +168,7 @@ impl HolochainService { cell_name: String, zome_name: String, fn_name: String, - payload: serde_json::Value, + payload: Option, ) -> Result { info!( "Calling zome function: {:?} {:?} {:?} {:?} {:?}", @@ -218,11 +218,16 @@ impl HolochainService { nonce } + let payload = match payload { + Some(payload) => ExternIO::encode(payload).unwrap(), + None => ExternIO::encode(()).unwrap(), + }; + let zome_call_unsigned = ZomeCallUnsigned { cell_id: cell_id, zome_name: zome_name.into(), fn_name: fn_name.into(), - payload: ExternIO::encode(payload).unwrap(), + payload: payload, cap_secret: None, provenance: agent_pub_key, nonce: generate_nonce().into(), From 00d6f8323c1c02f9e4f34f115e4a3baf4a574cd3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 15 May 2023 17:55:31 +0100 Subject: [PATCH 277/722] update all languages to use esbuild instead of deno build to allow preseveration of comments & change ad4mTemplatePattern to be //!@ad4m-template-variable --- bootstrap-languages/agent-language/esbuild.ts | 22 +++++++++++++++++++ bootstrap-languages/agent-language/index.ts | 2 +- .../agent-language/package.json | 3 +-- .../direct-message-language/.gitignore | 1 + .../direct-message-language/adapter.ts | 9 ++++++-- .../direct-message-language/esbuild.ts | 22 +++++++++++++++++++ .../direct-message-language/package.json | 3 ++- .../direct-message-language/tsconfig.json | 2 +- bootstrap-languages/file-storage/esbuild.ts | 22 +++++++++++++++++++ bootstrap-languages/file-storage/index.ts | 2 +- bootstrap-languages/file-storage/package.json | 7 +++--- .../language-language/esbuild.ts | 22 +++++++++++++++++++ .../language-language/package.json | 2 +- .../neighbourhood-language/esbuild.ts | 22 +++++++++++++++++++ .../neighbourhood-language/package.json | 2 +- bootstrap-languages/p-diff-sync/esbuild.ts | 22 +++++++++++++++++++ bootstrap-languages/p-diff-sync/index.ts | 2 +- bootstrap-languages/p-diff-sync/package.json | 3 +-- .../perspective-language/esbuild.ts | 22 +++++++++++++++++++ .../perspective-language/package.json | 3 +-- executor/src/core/LanguageController.ts | 2 +- rust-executor/.gitignore | 3 ++- tests/js/languages/note-store/esbuild.ts | 22 +++++++++++++++++++ tests/js/languages/note-store/package.json | 3 +-- tests/js/languages/test-language/esbuild.ts | 22 +++++++++++++++++++ tests/js/languages/test-language/package.json | 2 +- 26 files changed, 225 insertions(+), 24 deletions(-) create mode 100644 bootstrap-languages/agent-language/esbuild.ts create mode 100644 bootstrap-languages/direct-message-language/esbuild.ts create mode 100644 bootstrap-languages/file-storage/esbuild.ts create mode 100644 bootstrap-languages/language-language/esbuild.ts create mode 100644 bootstrap-languages/neighbourhood-language/esbuild.ts create mode 100644 bootstrap-languages/p-diff-sync/esbuild.ts create mode 100644 bootstrap-languages/perspective-language/esbuild.ts create mode 100644 tests/js/languages/note-store/esbuild.ts create mode 100644 tests/js/languages/test-language/esbuild.ts diff --git a/bootstrap-languages/agent-language/esbuild.ts b/bootstrap-languages/agent-language/esbuild.ts new file mode 100644 index 000000000..d7d18e01a --- /dev/null +++ b/bootstrap-languages/agent-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'agent.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/agent-language/index.ts b/bootstrap-languages/agent-language/index.ts index c7a111f15..dd9a4d68a 100644 --- a/bootstrap-languages/agent-language/index.ts +++ b/bootstrap-languages/agent-language/index.ts @@ -17,7 +17,7 @@ function interactions(expression: Address): Interaction[] { return []; } -//@ad4m-template-variable +//!@ad4m-template-variable export const name = "agent-expression-store"; export default async function create(context: LanguageContext): Promise { diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index 52384b1c8..e1f01083e 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -10,12 +10,11 @@ "rollup-expression-ui": "rollup -c rollup.config.expression-ui.js", "compile-dna": "cd hc-dna && ./build.sh && cd ..", "compile-dna-windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd ..", - "deno-bundle": "deno bundle index.ts build/bundle.js", "build": "run-script-os", "build:linux": "yarn compile-dna && yarn build:common", "build:macos": "yarn compile-dna && yarn build:common", "build:windows": "yarn compile-dna-windows && yarn build:common", - "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && yarn deno-bundle" + "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", diff --git a/bootstrap-languages/direct-message-language/.gitignore b/bootstrap-languages/direct-message-language/.gitignore index 4c83f529c..d291c1185 100644 --- a/bootstrap-languages/direct-message-language/.gitignore +++ b/bootstrap-languages/direct-message-language/.gitignore @@ -10,6 +10,7 @@ build/* !*.config.js !rollup.config.hc-dna.js !dna.js +!esbuild.js node_modules target diff --git a/bootstrap-languages/direct-message-language/adapter.ts b/bootstrap-languages/direct-message-language/adapter.ts index 998c3b501..7e3a53077 100644 --- a/bootstrap-languages/direct-message-language/adapter.ts +++ b/bootstrap-languages/direct-message-language/adapter.ts @@ -1,7 +1,7 @@ import { DirectMessageAdapter, HolochainLanguageDelegate, LanguageContext, MessageCallback, Perspective, PerspectiveExpression } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; import { DNA, DNA_NICK } from "./build/dna.js"; -//@ad4m-template-variable +//!@ad4m-template-variable const recipient_did = "" //@ts-ignore @@ -90,13 +90,18 @@ export default class DMAdapter implements DirectMessageAdapter { } onlyRecipient() { + console.log(recipient_did, this.#context.agent.did); if(recipient_did !== this.#context.agent.did) throw new Error("Only recipient can call this function!") } async setStatus(status: PerspectiveExpression) { + console.log("Setting status:", status); this.onlyRecipient() + console.log("about to sign"); const statusExpression = this.#context.agent.createSignedExpression(status) - await this.#holochain.call(DNA_NICK, "direct-message", "set_status", statusExpression) + console.log("Signed exp", statusExpression); + const res = await this.#holochain.call(DNA_NICK, "direct-message", "set_status", statusExpression) + console.log("got res", res); } async inbox(filter?: string): Promise { diff --git a/bootstrap-languages/direct-message-language/esbuild.ts b/bootstrap-languages/direct-message-language/esbuild.ts new file mode 100644 index 000000000..d6d711634 --- /dev/null +++ b/bootstrap-languages/direct-message-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'direct.message.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json index 006490cb3..9d2ece842 100644 --- a/bootstrap-languages/direct-message-language/package.json +++ b/bootstrap-languages/direct-message-language/package.json @@ -3,6 +3,7 @@ "version": "0.3.2", "description": "A templateable AD4M Language for personal, per-agent direct message Languages", "main": "index.js", + "type": "module", "scripts": { "test": "echo \"No direct message integration tests\"", "rollup-dna": "rollup -c rollup.config.hc-dna.js", @@ -14,7 +15,7 @@ "build:linux": "yarn compile-dna && yarn build:common", "build:macos": "yarn compile-dna && yarn build:common", "build:windows": "yarn compile-dna-windows && yarn build:common", - "build:common": "yarn rollup-dna && yarn deno-bundle" + "build:common": "yarn rollup-dna && deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", diff --git a/bootstrap-languages/direct-message-language/tsconfig.json b/bootstrap-languages/direct-message-language/tsconfig.json index 849af5e98..18926102d 100644 --- a/bootstrap-languages/direct-message-language/tsconfig.json +++ b/bootstrap-languages/direct-message-language/tsconfig.json @@ -11,5 +11,5 @@ "forceConsistentCasingInFileNames": true }, "include": ["*.ts"], - "exclude": ["node_modules/*", "__sapper__/*", "public/*"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"] } \ No newline at end of file diff --git a/bootstrap-languages/file-storage/esbuild.ts b/bootstrap-languages/file-storage/esbuild.ts new file mode 100644 index 000000000..d7d18e01a --- /dev/null +++ b/bootstrap-languages/file-storage/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'agent.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/file-storage/index.ts b/bootstrap-languages/file-storage/index.ts index e4b921124..f28e256d0 100644 --- a/bootstrap-languages/file-storage/index.ts +++ b/bootstrap-languages/file-storage/index.ts @@ -11,7 +11,7 @@ function isImmutableExpression(expression: Address): boolean { return true } -//@ad4m-template-variable +//!@ad4m-template-variable const name = "file-storage"; export default async function create(context: LanguageContext): Promise { diff --git a/bootstrap-languages/file-storage/package.json b/bootstrap-languages/file-storage/package.json index b20035eea..1e28de675 100644 --- a/bootstrap-languages/file-storage/package.json +++ b/bootstrap-languages/file-storage/package.json @@ -11,12 +11,11 @@ "rollup-expression-ui": "rollup -c rollup.config.expression-ui.js", "compile-dna": "cd hc-dna && ./build.sh && cd ..", "compile-dna-windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd ..", - "deno-bundle": "deno bundle index.ts build/bundle.js", "build": "run-script-os", "build:linux": "yarn compile-dna && yarn build:common", "build:macos": "yarn compile-dna && yarn build:common", "build:windows": "yarn compile-dna-windows && yarn build:common", - "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && yarn deno-bundle" + "build:common": "yarn rollup-dna && yarn rollup-icons && yarn rollup-expression-ui && deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", @@ -37,12 +36,12 @@ "rollup-plugin-string": "^3.0.0", "rollup-plugin-svelte": "^6.0.0", "rollup-plugin-terser": "^7.0.0", + "run-script-os": "^1.1.6", "svelte": "^3.0.0", "svelte-check": "^1.0.0", "svelte-preprocess": "^4.0.0", "tslib": "^2.0.0", "typescript": "^4.2.4", - "uint8arrays": "^3.0.0", - "run-script-os": "^1.1.6" + "uint8arrays": "^3.0.0" } } diff --git a/bootstrap-languages/language-language/esbuild.ts b/bootstrap-languages/language-language/esbuild.ts new file mode 100644 index 000000000..f29303d84 --- /dev/null +++ b/bootstrap-languages/language-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'language.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/language-language/package.json b/bootstrap-languages/language-language/package.json index bd51a4d3a..949497e7d 100644 --- a/bootstrap-languages/language-language/package.json +++ b/bootstrap-languages/language-language/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "test": "echo \"No language language integration tests\"", - "build": "deno bundle index.ts build/bundle.js" + "build": "deno run --allow-all esbuild.ts" }, "author": "joshuadparkin@gmail.com", "license": "ISC" diff --git a/bootstrap-languages/neighbourhood-language/esbuild.ts b/bootstrap-languages/neighbourhood-language/esbuild.ts new file mode 100644 index 000000000..535a150b6 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'neighbourhood.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index b848bafcb..9dcfc43e6 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "test": "echo \"No neighbourhood language integration tests\"", - "build": "deno bundle index.ts build/bundle.js" + "build": "deno run --allow-all esbuild.ts" }, "author": "joshuadparkin@gmail.com", "license": "ISC" diff --git a/bootstrap-languages/p-diff-sync/esbuild.ts b/bootstrap-languages/p-diff-sync/esbuild.ts new file mode 100644 index 000000000..6f3bce43c --- /dev/null +++ b/bootstrap-languages/p-diff-sync/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'perspective.diff.sync.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/index.ts b/bootstrap-languages/p-diff-sync/index.ts index 57256f6c3..1052534ba 100644 --- a/bootstrap-languages/p-diff-sync/index.ts +++ b/bootstrap-languages/p-diff-sync/index.ts @@ -7,7 +7,7 @@ function interactions(expression: Address): Interaction[] { return []; } -//@ad4m-template-variable +//!@ad4m-template-variable const name = "perspective-diff-sync"; export default async function create(context: LanguageContext): Promise { diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index 0596ed476..7ff74f7e8 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -9,9 +9,8 @@ "build:linux": "yarn run build-dna && yarn run build-common", "build:macos": "yarn run build-dna && yarn run build-common", "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && yarn run build-common", - "deno-bundle": "deno bundle index.ts build/bundle.js", "rollup-dna": "rollup -c rollup.config.hc-dna.js", - "build-common": "yarn run rollup-dna && yarn run deno-bundle", + "build-common": "yarn run rollup-dna && deno run --allow-all esbuild.ts", "integration-test": "node ../../test-runner/build/cli.js --test ./integration-test.js --bundle \"./build/bundle.js\" --meta '{\"name\":\"p-diff-sync\",\"description\":\"Holochain based language for sharing Perspectives\",\"sourceCodeLink\":\"https://github.com/perspect3vism/perspective-diff-sync\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'" }, "author": "", diff --git a/bootstrap-languages/perspective-language/esbuild.ts b/bootstrap-languages/perspective-language/esbuild.ts new file mode 100644 index 000000000..db829e7f3 --- /dev/null +++ b/bootstrap-languages/perspective-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'perspective.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index dea97c654..2158859ce 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -7,9 +7,8 @@ "test": "echo \"No perspective language integration tests\"", "rollup-icons": "rollup -c rollup.config.icons.js", "rollup-expression-ui": "rollup -c rollup.config.expression-ui.js", - "deno-bundle": "deno bundle index.ts build/bundle.js", "build": "yarn run build:common", - "build:common": "yarn rollup-icons && yarn rollup-expression-ui && yarn deno-bundle" + "build:common": "yarn rollup-icons && yarn rollup-expression-ui && deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index ac41c5d5a..ff20064b0 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -640,7 +640,7 @@ export default class LanguageController { applyTemplateData(sourceLanguageLines: string[], templateData: object) { //Get lines in sourceLanguageLines which have ad4m-template-variable declared - const ad4mTemplatePattern = "//@ad4m-template-variable"; + const ad4mTemplatePattern = "//!@ad4m-template-variable"; var indexes = []; for(let i = 0; i < sourceLanguageLines.length; i++) { if (sourceLanguageLines[i].includes(ad4mTemplatePattern)) { diff --git a/rust-executor/.gitignore b/rust-executor/.gitignore index bcd83a0f4..73367a9ac 100644 --- a/rust-executor/.gitignore +++ b/rust-executor/.gitignore @@ -3,4 +3,5 @@ schema.json schema.gql !src/js_core/utils_extension.js !src/js_core/wallet_extension.js -!src/js_core/pubsub_extension.js \ No newline at end of file +!src/js_core/pubsub_extension.js +!src/holochain_service/holochain_service_extension.js \ No newline at end of file diff --git a/tests/js/languages/note-store/esbuild.ts b/tests/js/languages/note-store/esbuild.ts new file mode 100644 index 000000000..63cd58ab1 --- /dev/null +++ b/tests/js/languages/note-store/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'note.store', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/tests/js/languages/note-store/package.json b/tests/js/languages/note-store/package.json index 7e1b70336..160592e53 100644 --- a/tests/js/languages/note-store/package.json +++ b/tests/js/languages/note-store/package.json @@ -5,8 +5,7 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "deno-bundle": "deno bundle index.ts build/bundle.js", - "build": "yarn run deno-bundle" + "build": "deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", diff --git a/tests/js/languages/test-language/esbuild.ts b/tests/js/languages/test-language/esbuild.ts new file mode 100644 index 000000000..b3ed385d8 --- /dev/null +++ b/tests/js/languages/test-language/esbuild.ts @@ -0,0 +1,22 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; +// Import the WASM build on platforms where running subprocesses is not +// permitted, such as Deno Deploy, or when running without `--allow-run`. +// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; + +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; + +const result = await esbuild.build({ + plugins: [...denoPlugins()], + entryPoints: ['index.ts'], + outfile: 'build/bundle.js', + bundle: true, + platform: 'node', + target: 'deno1.32.4', + format: 'esm', + globalName: 'test.language', + charset: 'ascii', + legalComments: 'inline' +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/tests/js/languages/test-language/package.json b/tests/js/languages/test-language/package.json index 7e1b70336..a18739caa 100644 --- a/tests/js/languages/test-language/package.json +++ b/tests/js/languages/test-language/package.json @@ -6,7 +6,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "deno-bundle": "deno bundle index.ts build/bundle.js", - "build": "yarn run deno-bundle" + "build": "deno run --allow-all esbuild.ts" }, "author": "", "license": "ISC", From b0420479fb7037a3b548bb8671852f0789916190 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 15 May 2023 17:58:35 +0100 Subject: [PATCH 278/722] cleanup direct-message-language logs --- bootstrap-languages/direct-message-language/adapter.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bootstrap-languages/direct-message-language/adapter.ts b/bootstrap-languages/direct-message-language/adapter.ts index 7e3a53077..68732458d 100644 --- a/bootstrap-languages/direct-message-language/adapter.ts +++ b/bootstrap-languages/direct-message-language/adapter.ts @@ -95,13 +95,9 @@ export default class DMAdapter implements DirectMessageAdapter { } async setStatus(status: PerspectiveExpression) { - console.log("Setting status:", status); this.onlyRecipient() - console.log("about to sign"); const statusExpression = this.#context.agent.createSignedExpression(status) - console.log("Signed exp", statusExpression); - const res = await this.#holochain.call(DNA_NICK, "direct-message", "set_status", statusExpression) - console.log("got res", res); + await this.#holochain.call(DNA_NICK, "direct-message", "set_status", statusExpression) } async inbox(filter?: string): Promise { From 8d305f7f51c43d0d2c3c42022bc9b3eab0cfe2ce Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 15 May 2023 18:40:06 +0100 Subject: [PATCH 279/722] fix runtime message scripts --- rust-executor/src/graphql/query_resolvers.rs | 24 +++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index f8ff7ef32..dfcb65514 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -437,11 +437,15 @@ impl Query { context: &JsCoreHandle, filter: Option, ) -> FieldResult> { - let filter_str = filter.unwrap_or_else(|| String::from("{}")); + let filter_str = filter + .map(|val| format!(r#"{{ filter: "{}" }}"#, val)) + .unwrap_or_else(|| String::from("{ filter: null }")); + let script = format!( + r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageInbox", {}, {{ capabilities: [{}] }}))"#, + filter_str, ALL_CAPABILITY + ); let mut js = context.clone(); - let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageInbox", {{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_str, ALL_CAPABILITY)) - .await?; + let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() } @@ -451,11 +455,15 @@ impl Query { context: &JsCoreHandle, filter: Option, ) -> FieldResult> { - let filter_str = filter.unwrap_or_else(|| String::from("{}")); + let filter_str = filter + .map(|val| format!(r#"{{ filter: "{}" }}"#, val)) + .unwrap_or_else(|| String::from("{ filter: null }")); + let script = format!( + r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageOutbox", {}, {{ capabilities: [{}] }}))"#, + filter_str, ALL_CAPABILITY + ); let mut js = context.clone(); - let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageOutbox", {{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_str, ALL_CAPABILITY)) - .await?; + let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() } From 380a7530a57c77c951bb5e6e4a6017d5657c55de Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 16 May 2023 14:37:20 +0100 Subject: [PATCH 280/722] dont copy holochain binary on init --- cli/src/dev.rs | 1 - cli/src/main.rs | 10 +--------- cli/src/util.rs | 7 ------- rust-executor/src/globals.rs | 3 --- rust-executor/src/init.rs | 19 ++++--------------- 5 files changed, 5 insertions(+), 35 deletions(-) diff --git a/cli/src/dev.rs b/cli/src/dev.rs index 017da6138..d5cb12012 100644 --- a/cli/src/dev.rs +++ b/cli/src/dev.rs @@ -76,7 +76,6 @@ pub async fn run(command: DevFunctions) -> Result<()> { //start ad4m-host with publishing bootstrap rust_executor::init::init( - false, Some(data_path.to_str().unwrap().to_string()), Some(temp_publish_bootstrap_path.to_str().unwrap().to_string()), ) diff --git a/cli/src/main.rs b/cli/src/main.rs index 9d8d600c1..0a5ca433a 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -112,8 +112,6 @@ enum Domain { command: DevFunctions, }, Init { - #[arg(long, action)] - hc_only: Option, #[arg(short, long, action)] data_path: Option, #[arg(short, long, action)] @@ -194,16 +192,11 @@ async fn main() -> Result<()> { }; if let Domain::Init { - hc_only, data_path, network_bootstrap_seed, } = args.domain { - match rust_executor::init::init( - util::option_to_bool(hc_only), - data_path, - network_bootstrap_seed, - ) { + match rust_executor::init::init(data_path, network_bootstrap_seed) { Ok(()) => println!("Successfully initialized AD4M executor!"), Err(e) => { println!("Failed to initialize AD4M executor: {}", e); @@ -277,7 +270,6 @@ async fn main() -> Result<()> { } Domain::Dev { command: _ } => unreachable!(), Domain::Init { - hc_only: _, data_path: _, network_bootstrap_seed: _, } => unreachable!(), diff --git a/cli/src/util.rs b/cli/src/util.rs index 13aa3c419..feea407aa 100644 --- a/cli/src/util.rs +++ b/cli/src/util.rs @@ -107,10 +107,3 @@ pub async fn string_2_perspective_snapshot( Ok(snapshot) } - -pub(crate) fn option_to_bool(opt: Option) -> bool { - match opt { - Some(val) => val, - None => false, - } -} diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index d1d76f095..0551b10cb 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -22,9 +22,6 @@ lazy_static! { /// Raw JSON data for the mainnet seed, included at buildtime from the mainnet_seed.json file pub const MAINNET_JSON: &str = include_str!("mainnet_seed.json"); -/// Binary data of holochain binary, included at buildtime from the holochain binary -pub const HOLOCHAIN_BIN: &[u8] = include_bytes!("../temp/holochain"); - /// Binary data of hc binary, included at buildtime from the hc binary pub const HC_BIN: &[u8] = include_bytes!("../temp/hc"); diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index d9a025c08..2a41b913e 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -6,14 +6,11 @@ use std::os::unix::fs::PermissionsExt; use std::path::{Path, PathBuf}; use super::utils::ad4m_data_directory; -use crate::globals::{ - AD4M_VERSION, HC_BIN, HOLOCHAIN_BIN, MAINNET_JSON, OLDEST_VERSION, SWIPL_ZIP, -}; +use crate::globals::{AD4M_VERSION, HC_BIN, MAINNET_JSON, OLDEST_VERSION, SWIPL_ZIP}; use crate::utils::write_zip; /// Sets up the ad4m data directory and config files ready for the executor to consume pub fn init( - hc_only: bool, data_path: Option, network_bootstrap_seed: Option, ) -> Result<(), Box> { @@ -69,19 +66,11 @@ pub fn init( } let platform = os_info::get().os_type(); - let (holochain, hc) = match platform { - os_info::Type::Windows => ("holochain.exe", "hc.exe"), - _ => ("holochain", "hc"), + let hc = match platform { + os_info::Type::Windows => "hc.exe", + _ => "hc", }; - if !hc_only { - let holochain_data = HOLOCHAIN_BIN; - let holochain_target = binary_path.join(holochain); - info!("writing holochain target"); - fs::write(&holochain_target, holochain_data)?; - fs::set_permissions(holochain_target, fs::Permissions::from_mode(0o755))?; - } - let hc_data = HC_BIN; let hc_target = binary_path.join(hc); info!("write hc target"); From a7490660e89be3c5d4822b4723dcc9db448fb253 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 16 May 2023 14:37:44 +0100 Subject: [PATCH 281/722] fix parsing of error messages --- executor/src/core/PerspectivismCore.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index 85974045e..da90ae97f 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -110,7 +110,14 @@ export default class PerspectivismCore { } return {"Ok": result} } catch (error) { - return {"Error": JSON.stringify(error)} + //@ts-ignore + if (typeof error.message === "object") { + //@ts-ignore + return {"Error": JSON.stringify(error.message)}; + } else { + //@ts-ignore + return {"Error": error.message} + } } } From cc5c648961c840d8ac2ec0b7dd8bbb7649b7e261 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 16 May 2023 14:38:05 +0100 Subject: [PATCH 282/722] add missing return fields for LanguageHandle --- .../src/core/graphQL-interface/GraphQL.ts | 124 ++++++++---------- 1 file changed, 58 insertions(+), 66 deletions(-) diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index a3bbb35c8..bb1052a4d 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -7,7 +7,7 @@ //import { WebSocketServer } from 'ws'; //import { useServer } from 'graphql-ws/lib/use/ws'; //import { makeExecutableSchema } from '@graphql-tools/schema'; -import { Agent, Expression, InteractionCall, LanguageRef, PerspectiveExpression, PerspectiveHandle, PerspectiveState, PerspectiveUnsignedInput } from '@perspect3vism/ad4m' +import { Agent, Expression, InteractionCall, Language, LanguageRef, PerspectiveExpression, PerspectiveHandle, PerspectiveState, PerspectiveUnsignedInput } from '@perspect3vism/ad4m' import { exprRef2String, parseExprUrl, LanguageMeta } from '@perspect3vism/ad4m' import { typeDefsString } from '@perspect3vism/ad4m/lib/src/typeDefs' import type PerspectivismCore from '../PerspectivismCore' @@ -167,6 +167,61 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { const { address } = args const lang = await core.languageController.languageByRef({address, name: ""} as LanguageRef) as any lang.address = address + + const constructorIcon = async (language: Language) => { + if (language.expressionUI) { + const code = language.expressionUI.constructorIcon(); + + if (code) { + return { code } + } else { + return { code: "" } + } + } + + return null + }; + + lang.constructorIcon = await constructorIcon(lang); + + const icon = async (language: Language) => { + if (language.expressionUI) { + const code = language.expressionUI.icon(); + + if (code) { + return { code } + } else { + return { code: "" } + } + } + + return null + }; + + lang.icon = await icon(lang); + + const settings = async (address: string) => { + return JSON.stringify(core.languageController.getSettings(address)) + }; + + lang.settings = await settings(address); + + const settingsIcon = async (language: Language) => { + if (language.settingsUI) { + const code = language.settingsUI.settingsIcon(); + + if (code) { + return { code } + } else { + return { code: "" } + } + } + + return null + } + + lang.settingsIcon = await settingsIcon(lang); + return lang }, //@ts-ignore @@ -578,6 +633,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { //@ts-ignore languageApplyTemplateAndPublish: async (args, context) => { checkCapability(context.capabilities, Auth.LANGUAGE_CREATE_CAPABILITY) + console.log("JS args", args); const { sourceLanguageHash, templateData } = args; return await core.languageApplyTemplateAndPublish(sourceLanguageHash, JSON.parse(templateData)); }, @@ -873,57 +929,6 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, - Subscription: {}, - - LanguageHandle: { - // @ts-ignore - constructorIcon: async (language) => { - if (language.expressionUI) { - const code = language.expressionUI.constructorIcon(); - - if (code) { - return { code } - } else { - return { code: "" } - } - } - - return null - }, - //@ts-ignore - icon: async (language) => { - if (language.expressionUI) { - const code = language.expressionUI.icon(); - - if (code) { - return { code } - } else { - return { code: "" } - } - } - - return null - }, - //@ts-ignore - settings: async (language) => { - return JSON.stringify(core.languageController.getSettings(language.address)) - }, - //@ts-ignore - settingsIcon: async (language) => { - if (language.settingsUI) { - const code = language.settingsUI.settingsIcon(); - - if (code) { - return { code } - } else { - return { code: "" } - } - } - - return null - } - }, - Agent: { //@ts-ignore directMessageLanguage: async (agent) => { @@ -959,20 +964,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return null } } - }, - - /* - DateTime: new GraphQLScalarType({ - name: 'Date', - description: 'Date custom scalar type', - parseValue(value) { - return new Date(value); // value from the client - }, - serialize(value) { - return value.toISOString(); // value sent to the client - } - }), - */ + } } } From d379975c2c049750dbc2e3c86a98f1a3ae8fba94 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 16 May 2023 14:38:45 +0100 Subject: [PATCH 283/722] fix languageTemplateAndPublish script --- rust-executor/src/graphql/mutation_resolvers.rs | 2 +- .../src/holochain_service/holochain_service_extension.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index cc1dd5669..0f6355446 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -346,7 +346,7 @@ impl Mutation { await core.callResolver( "Mutation", "languageApplyTemplateAndPublish", - {{ sourceLanguageHash: "{}", templateData: "{}" }}, + {{ sourceLanguageHash: "{}", templateData: JSON.stringify({}) }}, {{ capabilities: [{}] }} ))"#, source_language_hash, template_data, ALL_CAPABILITY diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 7d6b9dfc2..9b3f3f5ac 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -28,7 +28,7 @@ async fn log_dht_status() -> Result<(), AnyError> { #[op] async fn install_app(install_app_payload: InstallAppPayload) -> Result { - let conductor = get_global_conductor().await; + let mut conductor = get_global_conductor().await; conductor.install_app(install_app_payload).await } @@ -74,7 +74,7 @@ async fn remove_app(app_id: String) -> Result<(), AnyError> { #[op] async fn sign_string(data: String) -> Result { - let conductor: std::sync::Arc = get_global_conductor().await; + let conductor = get_global_conductor().await; conductor.sign(data).await } From e73423a2fa270bc9fe4bd2d3f2bdaf03543b7fe2 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 16 May 2023 14:40:27 +0100 Subject: [PATCH 284/722] fix up language tests --- tests/js/tests/language.ts | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/tests/js/tests/language.ts b/tests/js/tests/language.ts index dfee5150e..c9a95c983 100644 --- a/tests/js/tests/language.ts +++ b/tests/js/tests/language.ts @@ -91,23 +91,23 @@ export default function languageTests(testContext: TestContext) { }) it('can publish and template a non-Holochain language and provide correct meta data', async() => { - const ipfsMetaInfo = new LanguageMetaInput("Newly published note language", "Just to test non-HC language work as well"); + const noteMetaInfo = new LanguageMetaInput("Newly published note language", "Just to test non-HC language work as well"); //Publish a source language without a holochain DNA const canPublishNonHolochainLang = await ad4mClient.languages.publish( - path.join(__dirname, "../tst-tmp/languages/note-ipfs/build/bundle.js"), - ipfsMetaInfo + path.join(__dirname, "../languages/note-store/build/bundle.js"), + noteMetaInfo ); - expect(canPublishNonHolochainLang.name).to.be.equal(ipfsMetaInfo.name); - //TODO/NOTE: this will break if the note-ipfs language version is changed - expect(canPublishNonHolochainLang.address).to.be.equal("QmbWg5VBFB1Zzce8X33GiGpMDXFPQjFQKS2T2rJtSYt7TJ"); + expect(canPublishNonHolochainLang.name).to.be.equal(noteMetaInfo.name); + //TODO/NOTE: this will break if the note language version is changed + expect(canPublishNonHolochainLang.address).to.be.equal("QmzSYwdmAKKivFm8sp7zLDPnT2kwyk2to8Ey1hqEb25DCPaJoRA"); //Get meta for source language above and make sure it is correct const sourceLanguageMetaNonHC = await ad4mClient.expression.get(`lang://${canPublishNonHolochainLang.address}`); expect(sourceLanguageMetaNonHC.proof.valid).to.be.true; const sourceLanguageMetaNonHCData = JSON.parse(sourceLanguageMetaNonHC.data); - expect(sourceLanguageMetaNonHCData.name).to.be.equal(ipfsMetaInfo.name) - expect(sourceLanguageMetaNonHCData.description).to.be.equal(ipfsMetaInfo.description) - expect(sourceLanguageMetaNonHCData.address).to.be.equal("QmbWg5VBFB1Zzce8X33GiGpMDXFPQjFQKS2T2rJtSYt7TJ") + expect(sourceLanguageMetaNonHCData.name).to.be.equal(noteMetaInfo.name) + expect(sourceLanguageMetaNonHCData.description).to.be.equal(noteMetaInfo.description) + expect(sourceLanguageMetaNonHCData.address).to.be.equal("QmzSYwdmAKKivFm8sp7zLDPnT2kwyk2to8Ey1hqEb25DCPaJoRA") }) @@ -127,8 +127,13 @@ export default function languageTests(testContext: TestContext) { error = e } + console.log("Response for non trust got error", error); + + //@ts-ignore + sourceLanguageMeta.sourceCodeLink = null; + //@ts-ignore - expect(error.toString()).to.be.equal(`ApolloError: Language not created by trusted agent: ${(await ad4mClient.agent.me()).did} and is not templated... aborting language install. Language metadata: ${stringify(sourceLanguageMeta)}`) + expect(error.toString()).to.contain(`ApolloError: Language not created by trusted agent: ${(await ad4mClient.agent.me()).did} and is not templated... aborting language install. Language metadata: ${stringify(sourceLanguageMeta)}`) }) describe('with Bob having added Alice to list of trusted agents', () => { From ed50fa011fc1cea11be6f2e1ee19a61a5fc2295e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 17 May 2023 13:04:01 +0100 Subject: [PATCH 285/722] encode zome call request in JS so we can send any data type to rust holochain service --- .../Holochain/HolochainService.ts | 8 +- .../holochain_service_extension.rs | 6 +- yarn.lock | 138 ++++++++++++++++++ 3 files changed, 145 insertions(+), 7 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 0f0962f97..775fc19cc 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -1,11 +1,11 @@ -import { AppSignalCb, AppSignal, CellId, CellType, AgentInfoResponse, InstallAppRequest, CallZomeResponse } from '@holochain/client' +import { AppSignalCb, AppSignal, CellId, CellType, AgentInfoResponse, InstallAppRequest } from '@holochain/client' import path from 'path' import fs from 'fs' import HolochainLanguageDelegate from "./HolochainLanguageDelegate" import { unpackDna, packDna } from "./HcExecution" import type { Dna } from '@perspect3vism/ad4m' import { AsyncQueue } from './Queue' -import { decode } from "@msgpack/msgpack" +import { decode, encode } from "@msgpack/msgpack" import { HolochainUnlockConfiguration } from '../../PerspectivismCore' import EntanglementProofController from '../../EntanglementProof' @@ -244,7 +244,7 @@ export default class HolochainService { return `${languageHash}-${dnaNick}` } - async callZomeFunction(lang: string, dnaNick: string, zomeName: string, fnName: string, payload: object|string): Promise { + async callZomeFunction(lang: string, dnaNick: string, zomeName: string, fnName: string, payload: any): Promise { await this.#ready const installed_app_id = lang @@ -254,7 +254,7 @@ export default class HolochainService { console.debug("\x1b[34m", new Date().toISOString(), "HolochainService calling zome function:", dnaNick, zomeName, fnName, payload, "\nFor language with address", lang, "\x1b[0m"); } - let result = await HOLOCHAIN_SERVICE.callZomeFunction(installed_app_id, dnaNick, zomeName, fnName, payload); + let result = await HOLOCHAIN_SERVICE.callZomeFunction(installed_app_id, dnaNick, zomeName, fnName, encode(payload)); if (result["Ok"]) { result = decode(result["Ok"]) } else { diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 9b3f3f5ac..9a0c122f7 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -2,8 +2,8 @@ use deno_core::{error::AnyError, include_js_files, op, Extension}; use holochain::{ conductor::api::AppInfo, prelude::{ - agent_store::AgentInfoSigned, hash_type::Agent, HoloHash, InstallAppPayload, Signature, - ZomeCallResponse, + agent_store::AgentInfoSigned, hash_type::Agent, ExternIO, HoloHash, InstallAppPayload, + Signature, ZomeCallResponse, }, }; use log::info; @@ -46,7 +46,7 @@ async fn call_zome_function( cell_name: String, zome_name: String, fn_name: String, - payload: Option, + payload: Option, ) -> Result { let conductor = get_global_conductor().await; conductor diff --git a/yarn.lock b/yarn.lock index 3012972d4..753d7f498 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1610,6 +1610,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz#893ad71f3920ccb919e1757c387756a9bca2ef42" integrity sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA== +"@esbuild/android-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" + integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== + "@esbuild/android-arm@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" @@ -1620,46 +1625,91 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.15.tgz#143e0d4e4c08c786ea410b9a7739779a9a1315d8" integrity sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg== +"@esbuild/android-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" + integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== + "@esbuild/android-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.15.tgz#d2d12a7676b2589864281b2274355200916540bc" integrity sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ== +"@esbuild/android-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" + integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== + "@esbuild/darwin-arm64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz#2e88e79f1d327a2a7d9d06397e5232eb0a473d61" integrity sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA== +"@esbuild/darwin-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" + integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== + "@esbuild/darwin-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz#9384e64c0be91388c57be6d3a5eaf1c32a99c91d" integrity sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg== +"@esbuild/darwin-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" + integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== + "@esbuild/freebsd-arm64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz#2ad5a35bc52ebd9ca6b845dbc59ba39647a93c1a" integrity sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg== +"@esbuild/freebsd-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" + integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== + "@esbuild/freebsd-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz#b513a48446f96c75fda5bef470e64d342d4379cd" integrity sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ== +"@esbuild/freebsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" + integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== + "@esbuild/linux-arm64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz#9697b168175bfd41fa9cc4a72dd0d48f24715f31" integrity sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA== +"@esbuild/linux-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" + integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== + "@esbuild/linux-arm@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz#5b22062c54f48cd92fab9ffd993732a52db70cd3" integrity sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw== +"@esbuild/linux-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" + integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== + "@esbuild/linux-ia32@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz#eb28a13f9b60b5189fcc9e98e1024f6b657ba54c" integrity sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q== +"@esbuild/linux-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" + integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== + "@esbuild/linux-loong64@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" @@ -1670,61 +1720,121 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz#32454bdfe144cf74b77895a8ad21a15cb81cfbe5" integrity sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ== +"@esbuild/linux-loong64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" + integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== + "@esbuild/linux-mips64el@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz#af12bde0d775a318fad90eb13a0455229a63987c" integrity sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ== +"@esbuild/linux-mips64el@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" + integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== + "@esbuild/linux-ppc64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz#34c5ed145b2dfc493d3e652abac8bd3baa3865a5" integrity sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg== +"@esbuild/linux-ppc64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" + integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== + "@esbuild/linux-riscv64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz#87bd515e837f2eb004b45f9e6a94dc5b93f22b92" integrity sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA== +"@esbuild/linux-riscv64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" + integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== + "@esbuild/linux-s390x@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz#20bf7947197f199ddac2ec412029a414ceae3aa3" integrity sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg== +"@esbuild/linux-s390x@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" + integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== + "@esbuild/linux-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz#31b93f9c94c195e852c20cd3d1914a68aa619124" integrity sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg== +"@esbuild/linux-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" + integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== + "@esbuild/netbsd-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz#8da299b3ac6875836ca8cdc1925826498069ac65" integrity sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA== +"@esbuild/netbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" + integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== + "@esbuild/openbsd-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz#04a1ec3d4e919714dba68dcf09eeb1228ad0d20c" integrity sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w== +"@esbuild/openbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" + integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== + "@esbuild/sunos-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz#6694ebe4e16e5cd7dab6505ff7c28f9c1c695ce5" integrity sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ== +"@esbuild/sunos-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" + integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== + "@esbuild/win32-arm64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz#1f95b2564193c8d1fee8f8129a0609728171d500" integrity sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q== +"@esbuild/win32-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" + integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== + "@esbuild/win32-ia32@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz#c362b88b3df21916ed7bcf75c6d09c6bf3ae354a" integrity sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w== +"@esbuild/win32-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" + integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== + "@esbuild/win32-x64@0.17.15": version "0.17.15" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz#c2e737f3a201ebff8e2ac2b8e9f246b397ad19b8" integrity sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA== +"@esbuild/win32-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" + integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -8451,6 +8561,34 @@ esbuild@^0.17.15, esbuild@^0.17.5: "@esbuild/win32-ia32" "0.17.15" "@esbuild/win32-x64" "0.17.15" +esbuild@^0.17.19: + version "0.17.19" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" + integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== + optionalDependencies: + "@esbuild/android-arm" "0.17.19" + "@esbuild/android-arm64" "0.17.19" + "@esbuild/android-x64" "0.17.19" + "@esbuild/darwin-arm64" "0.17.19" + "@esbuild/darwin-x64" "0.17.19" + "@esbuild/freebsd-arm64" "0.17.19" + "@esbuild/freebsd-x64" "0.17.19" + "@esbuild/linux-arm" "0.17.19" + "@esbuild/linux-arm64" "0.17.19" + "@esbuild/linux-ia32" "0.17.19" + "@esbuild/linux-loong64" "0.17.19" + "@esbuild/linux-mips64el" "0.17.19" + "@esbuild/linux-ppc64" "0.17.19" + "@esbuild/linux-riscv64" "0.17.19" + "@esbuild/linux-s390x" "0.17.19" + "@esbuild/linux-x64" "0.17.19" + "@esbuild/netbsd-x64" "0.17.19" + "@esbuild/openbsd-x64" "0.17.19" + "@esbuild/sunos-x64" "0.17.19" + "@esbuild/win32-arm64" "0.17.19" + "@esbuild/win32-ia32" "0.17.19" + "@esbuild/win32-x64" "0.17.19" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" From 14e388c18095e7d15d57c2711c0b603f713be8e8 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 17 May 2023 13:04:17 +0100 Subject: [PATCH 286/722] fix return type of neighbourhood_signal --- rust-executor/src/graphql/graphql_types.rs | 6 +++--- rust-executor/src/graphql/subscription_resolvers.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index 851a1ad10..af5eff2e1 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -322,7 +322,7 @@ pub struct PerspectiveExpression { #[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct PerspectiveHandle { - pub name: String, + pub name: Option, pub neighbourhood: Option, pub shared_url: Option, pub state: String, @@ -373,7 +373,7 @@ pub struct SentMessage { #[derive(Default, Debug, Deserialize, Serialize)] pub struct NeighbourhoodSignalFilter { pub perspective: PerspectiveHandle, - pub value: LinkExpression, + pub value: PerspectiveExpression, } #[derive(Default, Debug, Deserialize, Serialize)] @@ -437,7 +437,7 @@ pub trait GetFilter { // Implement the trait for the `NeighbourhoodSignalFilter` struct impl GetValue for NeighbourhoodSignalFilter { - type Value = LinkExpression; + type Value = PerspectiveExpression; fn get_value(&self) -> Self::Value { self.value.clone() diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs index 9ff7ed81e..ab65bd201 100644 --- a/rust-executor/src/graphql/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -61,7 +61,7 @@ impl Subscription { &self, _context: &JsCoreHandle, perspectiveUUID: String, - ) -> Pin> + Send>> { + ) -> Pin> + Send>> { let pubsub = get_global_pubsub().await; let topic = &NEIGHBOURHOOD_SIGNAL_TOPIC; From 28a6ee802515b99573db2b95d415820edccc8abf Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 17 May 2023 13:04:43 +0100 Subject: [PATCH 287/722] fix neighbourhood signal & online agent params --- rust-executor/src/graphql/mutation_resolvers.rs | 2 +- rust-executor/src/graphql/query_resolvers.rs | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 0f6355446..2267d0c02 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -523,7 +523,7 @@ impl Mutation { await core.callResolver( "Mutation", "neighbourhoodSendSignal", - {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, + {{ payload: {}, perspectiveUUID: "{}", remoteAgentDid: "{}" }}, {{ capabilities: [{}] }} ))"#, payload_json, perspectiveUUID, remote_agent_did, ALL_CAPABILITY diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index dfcb65514..d798f0d1a 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -256,11 +256,11 @@ impl Query { async fn neighbourhood_has_telepresence_adapter( &self, context: &JsCoreHandle, - perspective_uuid: String, + perspectiveUUID: String, ) -> FieldResult { let mut js = context.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodHasTelepresenceAdapter", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodHasTelepresenceAdapter", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, ALL_CAPABILITY)) .await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() @@ -269,11 +269,11 @@ impl Query { async fn neighbourhood_online_agents( &self, context: &JsCoreHandle, - perspective_uuid: String, + perspectiveUUID: String, ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOnlineAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOnlineAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, ALL_CAPABILITY)) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() @@ -282,11 +282,11 @@ impl Query { async fn neighbourhood_other_agents( &self, context: &JsCoreHandle, - perspective_uuid: String, + perspectiveUUID: String, ) -> FieldResult> { let mut js = context.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOtherAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspective_uuid, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOtherAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, ALL_CAPABILITY)) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() From e33ec8af9293ed60c28af1ea5251a4060456279c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 17 May 2023 13:05:16 +0100 Subject: [PATCH 288/722] use merged stream for holochain signal data & resubscribe on each app which gets added --- rust-executor/src/holochain_service/mod.rs | 55 +++++++---- rust-executor/src/js_core/mod.rs | 106 ++++++++++++++------- 2 files changed, 107 insertions(+), 54 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index eedd76db4..4f8a6544f 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -1,32 +1,36 @@ use std::path::PathBuf; +use std::pin::Pin; use std::sync::Arc; use chrono::Duration; use crypto_box::rand_core::OsRng; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; -use holochain::conductor::api::{CellInfo, ZomeCall, AppInfo}; +use holochain::conductor::api::{AppInfo, CellInfo, ZomeCall}; use holochain::conductor::config::ConductorConfig; use holochain::conductor::{ConductorBuilder, ConductorHandle}; use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::hash_type::Agent; use holochain::prelude::kitsune_p2p::dependencies::url2::Url2; use holochain::prelude::{ - ExternIO, InstallAppPayload, Signature, Timestamp, ZomeCallResponse, ZomeCallUnsigned, Signal, HoloHash, KitsuneP2pConfig, NetworkType, TransportConfig, ProxyConfig, + ExternIO, HoloHash, InstallAppPayload, KitsuneP2pConfig, NetworkType, ProxyConfig, Signal, + Signature, Timestamp, TransportConfig, ZomeCallResponse, ZomeCallUnsigned, }; +use lazy_static::lazy_static; +use log::debug; use log::info; -use once_cell::sync::OnceCell; use rand::Rng; use serde::{Deserialize, Serialize}; -use holochain::prelude::kitsune_p2p::dependencies::kitsune_p2p_types::dependencies::lair_keystore_api::dependencies::tokio::sync::broadcast::Receiver; use tokio::sync::Mutex; pub(crate) mod holochain_service_extension; +type BoxedStream = Pin + Send>>; + #[derive(Clone)] pub struct HolochainService { pub conductor: ConductorHandle, - pub signal_receivers: Arc>>>, + pub signal_receivers: Arc>, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -109,14 +113,13 @@ impl HolochainService { let service = Self { conductor, - signal_receivers: Arc::new(Mutex::new(signal_broadcaster.subscribe_separately())), + signal_receivers: Arc::new(Mutex::new(Box::pin(signal_broadcaster.subscribe_merged()))), }; - let set_res = HOLOCHAIN_CONDUCTOR.set(Arc::new(service.clone())); + let mut lock = HOLOCHAIN_CONDUCTOR.lock().await; + *lock = Some(service); + info!("Set global conductor"); - if set_res.is_err() { - panic!("Could not set global conductor"); - } info!("Started holochain conductor and set reference in rust executor"); @@ -124,7 +127,7 @@ impl HolochainService { } pub async fn install_app( - &self, + &mut self, install_app_payload: InstallAppPayload, ) -> Result { if install_app_payload.installed_app_id.is_none() { @@ -153,6 +156,11 @@ impl HolochainService { info!("Installed app with result: {:?}", activate); let app_info = self.conductor.get_app_info(&app_id).await?; + + let mut receivers = self.signal_receivers.lock().await; + let sig_broadcasters = self.conductor.signal_broadcaster(); + *receivers = Box::pin(sig_broadcasters.subscribe_merged()); + Ok(app_info.unwrap()) } Some(app_info) => { @@ -168,7 +176,7 @@ impl HolochainService { cell_name: String, zome_name: String, fn_name: String, - payload: Option, + payload: Option, ) -> Result { info!( "Calling zome function: {:?} {:?} {:?} {:?} {:?}", @@ -219,7 +227,7 @@ impl HolochainService { } let payload = match payload { - Some(payload) => ExternIO::encode(payload).unwrap(), + Some(payload) => payload, None => ExternIO::encode(()).unwrap(), }; @@ -308,15 +316,20 @@ impl HolochainService { } } -static HOLOCHAIN_CONDUCTOR: OnceCell> = OnceCell::new(); +lazy_static! { + static ref HOLOCHAIN_CONDUCTOR: Arc>> = + Arc::new(Mutex::new(None)); +} -pub async fn get_global_conductor() -> Arc { - HOLOCHAIN_CONDUCTOR - .get() - .expect("Conductor not initialized") - .clone() +pub async fn get_global_conductor() -> HolochainService { + let lock = HOLOCHAIN_CONDUCTOR.lock().await; + lock.clone().expect("Holochain Conductor not started") } -pub async fn maybe_get_global_conductor() -> Option> { - HOLOCHAIN_CONDUCTOR.get().map(|c| c.clone()) +pub async fn maybe_get_global_conductor() -> Option { + let lock = HOLOCHAIN_CONDUCTOR.try_lock(); + match lock { + Ok(guard) => guard.clone(), + Err(_) => None, + } } diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 5214da3be..012651dd8 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -1,9 +1,11 @@ +use ::futures::StreamExt; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; use holochain::prelude::Signal; +use log::debug; use log::{error, info}; use once_cell::sync::Lazy; use std::env::current_dir; @@ -342,47 +344,85 @@ impl JsCore { let signal_receivers = holochain_service.signal_receivers.clone(); let mut signal_receivers = signal_receivers.lock().await; - for receiver in signal_receivers.iter_mut() { - match receiver.try_recv() { - Ok(signal) => { - match signal { - Signal::App { - cell_id, - zome_name, - signal, - } => { - // Handle the received signal here - info!("Received signal: {:?}", signal); - match js_core.execute_async(format!( - "await core.getHolochainService().handleCallback({:?})", - Signal::App { cell_id, zome_name, signal } - )) { - Ok(script_fut) => match script_fut.await { - Ok(res) => { - info!( - "Callback executed successfully: {:?}", - res - ); - } - Err(err) => { - error!("Error executing callback: {:?}", err); - } - }, + // Loop over the stream + while let Some(signal) = signal_receivers.next().await { + match signal { + Signal::App { + cell_id, + zome_name, + signal, + } => { + // Handle the received signal here + info!("Received signal: {:?}", signal); + match js_core.execute_async(format!( + "await core.getHolochainService().handleCallback({:?})", + Signal::App { cell_id, zome_name, signal } + )) { + Ok(script_fut) => match script_fut.await { + Ok(res) => { + info!( + "Callback executed successfully: {:?}", + res + ); + } Err(err) => { error!("Error executing callback: {:?}", err); } + }, + Err(err) => { + error!("Error executing callback: {:?}", err); } } - Signal::System(system_signal) => { - info!("Received system signal: {:?}", system_signal) - } + } + Signal::System(_) => { + // Handle the received signal here + info!("Received system signal"); } } - Err(_err) => { - // The channel is empty; no signal is available - } - } } + + // for receiver in signal_receivers.iter_mut() { + // debug!("Checking for signals"); + // match receiver.try_recv() { + // Ok(signal) => { + // match signal { + // Signal::App { + // cell_id, + // zome_name, + // signal, + // } => { + // // Handle the received signal here + // info!("Received signal: {:?}", signal); + // match js_core.execute_async(format!( + // "await core.getHolochainService().handleCallback({:?})", + // Signal::App { cell_id, zome_name, signal } + // )) { + // Ok(script_fut) => match script_fut.await { + // Ok(res) => { + // info!( + // "Callback executed successfully: {:?}", + // res + // ); + // } + // Err(err) => { + // error!("Error executing callback: {:?}", err); + // } + // }, + // Err(err) => { + // error!("Error executing callback: {:?}", err); + // } + // } + // } + // Signal::System(system_signal) => { + // info!("Received system signal: {:?}", system_signal) + // } + // } + // } + // Err(_err) => { + // // The channel is empty; no signal is available + // } + // } + // } } else { //println!("HolochainService is not available."); } From d08e35b66df2375b76f97ec9877c3d898baf54dc Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 17 May 2023 13:05:37 +0100 Subject: [PATCH 289/722] enable all integration tests & remove dead assertions --- tests/js/tests/full-integration.test.ts | 88 ++++++++++++------------- 1 file changed, 41 insertions(+), 47 deletions(-) diff --git a/tests/js/tests/full-integration.test.ts b/tests/js/tests/full-integration.test.ts index a666da5f3..12b0daebc 100644 --- a/tests/js/tests/full-integration.test.ts +++ b/tests/js/tests/full-integration.test.ts @@ -104,15 +104,9 @@ describe("Integration tests", function () { }) after(async () => { - expect(await isProcessRunning("holochain")).to.be.true; - expect(fs.existsSync(path.join(ipfsRepoPath, "repo.lock"))).to.be.true; - if (executorProcess) { executorProcess.kill() } - - expect(await isProcessRunning("holochain")).to.be.false; - expect(fs.existsSync(path.join(ipfsRepoPath, "repo.lock"))).to.be.false; }) describe('Agent / Agent-Setup', agentTests(testContext)) @@ -121,45 +115,45 @@ describe("Integration tests", function () { //describe('Perspective', perspectiveTests(testContext)) //describe('Social DNA', socialDNATests(testContext)) - // describe('with Alice and Bob', () => { - // let bobExecutorProcess: ChildProcess | null = null - // before(async () => { - // const bobAppDataPath = path.join(TEST_DIR, 'agents', 'bob') - // const bobBootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - // const bobGqlPort = 14000 - // const bobHcAdminPort = 12000 - // const bobHcAppPort = 11337 - // const bobIpfsSwarmPort = 14002 - - // if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - // fs.mkdirSync(path.join(TEST_DIR, 'agents')) - // if(!fs.existsSync(bobAppDataPath)) - // fs.mkdirSync(bobAppDataPath) - - // bobExecutorProcess = await startExecutor(bobAppDataPath, bobBootstrapSeedPath, - // bobGqlPort, bobHcAdminPort, bobHcAppPort, bobIpfsSwarmPort); - - // testContext.bob = new Ad4mClient(apolloClient(bobGqlPort)) - // testContext.bobCore = bobExecutorProcess - // await testContext.bob.agent.generate("passphrase") - - // const status = await testContext.bob.agent.status() - - // expect(status.isInitialized).to.be.true; - // expect(status.isUnlocked).to.be.true; - // //await testContext.makeAllNodesKnown() - // }) - - // after(async () => { - // if (bobExecutorProcess) { - // bobExecutorProcess.kill() - // } - // await new Promise((resolve)=>setTimeout(resolve, 500)) - // }) - - // describe('Agent Language', agentLanguageTests(testContext)) - // // describe('Direct Messages', directMessageTests(testContext)) - // // describe('Language', languageTests(testContext)) - // // describe('Neighbourhood', neighbourhoodTests(testContext)) - // }) + describe('with Alice and Bob', () => { + let bobExecutorProcess: ChildProcess | null = null + before(async () => { + const bobAppDataPath = path.join(TEST_DIR, 'agents', 'bob') + const bobBootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const bobGqlPort = 14000 + const bobHcAdminPort = 12000 + const bobHcAppPort = 11337 + const bobIpfsSwarmPort = 14002 + + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(bobAppDataPath)) + fs.mkdirSync(bobAppDataPath) + + bobExecutorProcess = await startExecutor(bobAppDataPath, bobBootstrapSeedPath, + bobGqlPort, bobHcAdminPort, bobHcAppPort, bobIpfsSwarmPort); + + testContext.bob = new Ad4mClient(apolloClient(bobGqlPort)) + testContext.bobCore = bobExecutorProcess + await testContext.bob.agent.generate("passphrase") + + const status = await testContext.bob.agent.status() + + expect(status.isInitialized).to.be.true; + expect(status.isUnlocked).to.be.true; + //await testContext.makeAllNodesKnown() + }) + + after(async () => { + if (bobExecutorProcess) { + bobExecutorProcess.kill() + } + await new Promise((resolve)=>setTimeout(resolve, 500)) + }) + + describe('Agent Language', agentLanguageTests(testContext)) + describe('Direct Messages', directMessageTests(testContext)) + describe('Language', languageTests(testContext)) + describe('Neighbourhood', neighbourhoodTests(testContext)) + }) }) \ No newline at end of file From 9923b118766fc43e2f5b74fe815f72b5d240f6c3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 17 May 2023 14:30:10 +0100 Subject: [PATCH 290/722] add temp console log on wsmessage in tests --- tests/js/utils/utils.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 08a8f32ad..a6df47449 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -96,14 +96,16 @@ export function apolloClient(port: number, token?: string): ApolloClient { } }, })); - // wsLink.client.on('message' as any, (data: any) => { - // console.log(data); - // if (data.payload) { - // if (data.payload.errors) { - // console.dir(data.payload.errors, { depth: null }); - // } - // } - // }); + wsLink.client.on('message' as any, (data: any) => { + console.log(data); + if (data.payload) { + if (data.payload.errors) { + console.dir(data.payload.errors, { depth: null }); + } else { + console.dir(data.payload, { depth: null }); + } + } + }); const link = new HttpLink({ uri: `http://127.0.0.1:${port}/graphql`, From 85b3faba36e8697e1510b10be39eacabc0c68200 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 17 May 2023 16:53:18 +0100 Subject: [PATCH 291/722] checkpoint progress with holochain service having an app interface and setting new subs on app install --- rust-executor/src/holochain_service/mod.rs | 38 ++++-- rust-executor/src/js_core/mod.rs | 143 +++++++++++---------- 2 files changed, 101 insertions(+), 80 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 4f8a6544f..cf37d88ed 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -8,6 +8,7 @@ use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use holochain::conductor::api::{AppInfo, CellInfo, ZomeCall}; use holochain::conductor::config::ConductorConfig; +use holochain::conductor::state::AppInterfaceId; use holochain::conductor::{ConductorBuilder, ConductorHandle}; use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::hash_type::Agent; @@ -16,12 +17,14 @@ use holochain::prelude::{ ExternIO, HoloHash, InstallAppPayload, KitsuneP2pConfig, NetworkType, ProxyConfig, Signal, Signature, Timestamp, TransportConfig, ZomeCallResponse, ZomeCallUnsigned, }; +use holochain::test_utils::itertools::Either; use lazy_static::lazy_static; use log::debug; use log::info; use rand::Rng; use serde::{Deserialize, Serialize}; -use tokio::sync::Mutex; +use tokio::sync::broadcast::Receiver; +use tokio::sync::{Mutex, RwLock}; pub(crate) mod holochain_service_extension; @@ -30,7 +33,8 @@ type BoxedStream = Pin + Send>>; #[derive(Clone)] pub struct HolochainService { pub conductor: ConductorHandle, - pub signal_receivers: Arc>, + //pub signal_receivers: Arc>, + pub signal_receivers: Arc>>>, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -107,16 +111,26 @@ impl HolochainService { let conductor = conductor.unwrap(); + let interface = conductor + .clone() + .add_app_interface(Either::Right(AppInterfaceId::new(6321))) + .await; + + debug!("Added app interface: {:?}", interface); + info!("Started holochain conductor"); let signal_broadcaster = conductor.signal_broadcaster(); info!("Got signal broadcaster"); + let subs = signal_broadcaster.subscribe_separately(); + debug!("Start sub length: {:?}", subs.len()); + let service = Self { conductor, - signal_receivers: Arc::new(Mutex::new(Box::pin(signal_broadcaster.subscribe_merged()))), + signal_receivers: Arc::new(Mutex::new(subs)), }; - let mut lock = HOLOCHAIN_CONDUCTOR.lock().await; + let mut lock = HOLOCHAIN_CONDUCTOR.write().await; *lock = Some(service); info!("Set global conductor"); @@ -157,9 +171,15 @@ impl HolochainService { let app_info = self.conductor.get_app_info(&app_id).await?; + debug!("Getting receivers lock"); let mut receivers = self.signal_receivers.lock().await; + debug!("Got signal receivers"); let sig_broadcasters = self.conductor.signal_broadcaster(); - *receivers = Box::pin(sig_broadcasters.subscribe_merged()); + let subs = sig_broadcasters.subscribe_separately(); + debug!("Got subs length: {:?}", subs.len()); + if subs.len() != 0 { + *receivers = subs; + } Ok(app_info.unwrap()) } @@ -317,17 +337,17 @@ impl HolochainService { } lazy_static! { - static ref HOLOCHAIN_CONDUCTOR: Arc>> = - Arc::new(Mutex::new(None)); + static ref HOLOCHAIN_CONDUCTOR: Arc>> = + Arc::new(RwLock::new(None)); } pub async fn get_global_conductor() -> HolochainService { - let lock = HOLOCHAIN_CONDUCTOR.lock().await; + let lock = HOLOCHAIN_CONDUCTOR.read().await; lock.clone().expect("Holochain Conductor not started") } pub async fn maybe_get_global_conductor() -> Option { - let lock = HOLOCHAIN_CONDUCTOR.try_lock(); + let lock = HOLOCHAIN_CONDUCTOR.try_read(); match lock { Ok(guard) => guard.clone(), Err(_) => None, diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 012651dd8..6626b539a 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -343,89 +343,90 @@ impl JsCore { //info!("Found holochain service"); let signal_receivers = holochain_service.signal_receivers.clone(); let mut signal_receivers = signal_receivers.lock().await; + //debug!("Sig lock"); + + // // Loop over the stream + // if let Some(signal) = signal_receivers.next().await { + // match signal { + // Signal::App { + // cell_id, + // zome_name, + // signal, + // } => { + // // Handle the received signal here + // info!("Received signal: {:?}", signal); + // match js_core.execute_async(format!( + // "await core.getHolochainService().handleCallback({:?})", + // Signal::App { cell_id, zome_name, signal } + // )) { + // Ok(script_fut) => match script_fut.await { + // Ok(res) => { + // info!( + // "Callback executed successfully: {:?}", + // res + // ); + // } + // Err(err) => { + // error!("Error executing callback: {:?}", err); + // } + // }, + // Err(err) => { + // error!("Error executing callback: {:?}", err); + // } + // } + // } + // Signal::System(_) => { + // // Handle the received signal here + // info!("Received system signal"); + // } + // } + // } - // Loop over the stream - while let Some(signal) = signal_receivers.next().await { - match signal { - Signal::App { - cell_id, - zome_name, - signal, - } => { - // Handle the received signal here - info!("Received signal: {:?}", signal); - match js_core.execute_async(format!( - "await core.getHolochainService().handleCallback({:?})", - Signal::App { cell_id, zome_name, signal } - )) { - Ok(script_fut) => match script_fut.await { - Ok(res) => { - info!( - "Callback executed successfully: {:?}", - res - ); - } + for receiver in signal_receivers.iter_mut() { + match receiver.try_recv() { + Ok(signal) => { + match signal { + Signal::App { + cell_id, + zome_name, + signal, + } => { + // Handle the received signal here + info!("Received signal: {:?}", signal); + match js_core.execute_async(format!( + "await core.getHolochainService().handleCallback({:?})", + Signal::App { cell_id, zome_name, signal } + )) { + Ok(script_fut) => match script_fut.await { + Ok(res) => { + info!( + "Callback executed successfully: {:?}", + res + ); + } + Err(err) => { + error!("Error executing callback: {:?}", err); + } + }, Err(err) => { error!("Error executing callback: {:?}", err); } - }, - Err(err) => { - error!("Error executing callback: {:?}", err); } } - } - Signal::System(_) => { - // Handle the received signal here - info!("Received system signal"); + Signal::System(system_signal) => { + info!("Received system signal: {:?}", system_signal) + } } } + Err(_err) => { + // The channel is empty; no signal is available + } + } } - - // for receiver in signal_receivers.iter_mut() { - // debug!("Checking for signals"); - // match receiver.try_recv() { - // Ok(signal) => { - // match signal { - // Signal::App { - // cell_id, - // zome_name, - // signal, - // } => { - // // Handle the received signal here - // info!("Received signal: {:?}", signal); - // match js_core.execute_async(format!( - // "await core.getHolochainService().handleCallback({:?})", - // Signal::App { cell_id, zome_name, signal } - // )) { - // Ok(script_fut) => match script_fut.await { - // Ok(res) => { - // info!( - // "Callback executed successfully: {:?}", - // res - // ); - // } - // Err(err) => { - // error!("Error executing callback: {:?}", err); - // } - // }, - // Err(err) => { - // error!("Error executing callback: {:?}", err); - // } - // } - // } - // Signal::System(system_signal) => { - // info!("Received system signal: {:?}", system_signal) - // } - // } - // } - // Err(_err) => { - // // The channel is empty; no signal is available - // } - // } - // } } else { //println!("HolochainService is not available."); } + //debug!("Sig unlock"); tokio::task::yield_now().await; } }; From 297cc5478a780019085bdca94d668c8c374f1679 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 18 May 2023 16:32:18 +0100 Subject: [PATCH 292/722] overhaul holochain service to use its own thread and communicate with deno op functions using thread channels --- .../src/holochain_service/interface.rs | 201 ++++++++++++++++++ rust-executor/src/holochain_service/mod.rs | 188 ++++++++++------ 2 files changed, 328 insertions(+), 61 deletions(-) create mode 100644 rust-executor/src/holochain_service/interface.rs diff --git a/rust-executor/src/holochain_service/interface.rs b/rust-executor/src/holochain_service/interface.rs new file mode 100644 index 000000000..fa8340141 --- /dev/null +++ b/rust-executor/src/holochain_service/interface.rs @@ -0,0 +1,201 @@ +use deno_core::error::AnyError; +use futures::channel::mpsc::Receiver; +use holochain::conductor::api::AppInfo; +use holochain::prelude::agent_store::AgentInfoSigned; +use holochain::prelude::hash_type::Agent; +use holochain::prelude::{ + ExternIO, HoloHash, InstallAppPayload, Signal, Signature, ZomeCallResponse, +}; +use lazy_static::lazy_static; +use log::debug; +use log::info; +use std::sync::Arc; +use tokio::sync::mpsc::{Sender, UnboundedReceiver}; +use tokio::sync::{oneshot, Mutex, RwLock}; + +#[derive(Clone)] +pub struct HolochainServiceInterface { + pub sender: Sender, + pub stream_receiver: Arc>>, +} + +#[derive(Debug)] +pub enum HolochainServiceRequest { + InstallApp(InstallAppPayload, oneshot::Sender), + CallZomeFunction { + app_id: String, + cell_name: String, + zome_name: String, + fn_name: String, + payload: Option, + response: oneshot::Sender, + }, + RemoveApp(String, oneshot::Sender), + AgentInfos(oneshot::Sender), + AddAgentInfos( + Vec, + oneshot::Sender, + ), + Sign(String, oneshot::Sender), + Shutdown(oneshot::Sender), + GetAgentKey(oneshot::Sender), + GetAppInfo(String, oneshot::Sender), +} + +#[derive(Debug)] +pub enum HolochainServiceResponse { + InstallApp(Result), + CallZomeFunction(Result), + RemoveApp(Result<(), AnyError>), + AgentInfos(Result, AnyError>), + AddAgentInfos(Result<(), AnyError>), + Sign(Result), + Shutdown(Result<(), AnyError>), + GetAgentKey(Result, AnyError>), + GetAppInfo(Result, AnyError>), + InitComplete(Result<(), AnyError>), +} + +impl HolochainServiceInterface { + pub async fn install_app(&self, payload: InstallAppPayload) -> Result { + let (response_sender, response_receiver) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::InstallApp( + payload, + response_sender, + )) + .await?; + match response_receiver.await.unwrap() { + HolochainServiceResponse::InstallApp(result) => result, + _ => unreachable!(), + } + } + + pub async fn call_zome_function( + &self, + app_id: String, + cell_name: String, + zome_name: String, + fn_name: String, + payload: Option, + ) -> Result { + let (response_sender, response_receiver) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::CallZomeFunction { + app_id, + cell_name, + zome_name, + fn_name, + payload, + response: response_sender, + }) + .await?; + match response_receiver.await.unwrap() { + HolochainServiceResponse::CallZomeFunction(result) => result, + _ => unreachable!(), + } + } + + pub async fn remove_app(&self, app_id: String) -> Result<(), AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::RemoveApp(app_id, response_tx)) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::RemoveApp(result) => result, + _ => unreachable!(), + } + } + + pub async fn agent_infos(&self) -> Result, AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::AgentInfos(response_tx)) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::AgentInfos(result) => result, + _ => unreachable!(), + } + } + + pub async fn add_agent_infos(&self, agent_infos: Vec) -> Result<(), AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::AddAgentInfos( + agent_infos, + response_tx, + )) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::AddAgentInfos(result) => result, + _ => unreachable!(), + } + } + + pub async fn sign(&self, data: String) -> Result { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::Sign(data, response_tx)) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::Sign(result) => result, + _ => unreachable!(), + } + } + + pub async fn shutdown(&self) -> Result<(), AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::Shutdown(response_tx)) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::Shutdown(result) => result, + _ => unreachable!(), + } + } + + pub async fn get_agent_key(&self) -> Result, AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::GetAgentKey(response_tx)) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::GetAgentKey(result) => result, + _ => unreachable!(), + } + } + + pub async fn get_app_info(&self, app_id: String) -> Result, AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::GetAppInfo(app_id, response_tx)) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::GetAppInfo(result) => result, + _ => unreachable!(), + } + } +} + +lazy_static! { + static ref HOLOCHAIN_SERVICE: Arc>> = + Arc::new(RwLock::new(None)); +} + +pub async fn get_holochain_service() -> HolochainServiceInterface { + let lock = HOLOCHAIN_SERVICE.read().await; + lock.clone().expect("Holochain Conductor not started") +} + +pub fn maybe_get_holochain_service() -> Option { + let lock = HOLOCHAIN_SERVICE.try_read(); + match lock { + Ok(guard) => guard.clone(), + Err(_) => None, + } +} + +pub async fn set_holochain_service(service: HolochainServiceInterface) { + let mut lock = HOLOCHAIN_SERVICE.write().await; + *lock = Some(service); +} diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index cf37d88ed..c3f07638a 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -1,5 +1,4 @@ use std::path::PathBuf; -use std::pin::Pin; use std::sync::Arc; use chrono::Duration; @@ -8,7 +7,6 @@ use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use holochain::conductor::api::{AppInfo, CellInfo, ZomeCall}; use holochain::conductor::config::ConductorConfig; -use holochain::conductor::state::AppInterfaceId; use holochain::conductor::{ConductorBuilder, ConductorHandle}; use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::hash_type::Agent; @@ -18,23 +16,25 @@ use holochain::prelude::{ Signature, Timestamp, TransportConfig, ZomeCallResponse, ZomeCallUnsigned, }; use holochain::test_utils::itertools::Either; -use lazy_static::lazy_static; -use log::debug; use log::info; use rand::Rng; use serde::{Deserialize, Serialize}; -use tokio::sync::broadcast::Receiver; -use tokio::sync::{Mutex, RwLock}; +use tokio::sync::{mpsc, oneshot, Mutex}; +use tokio_stream::StreamExt; pub(crate) mod holochain_service_extension; +pub(crate) mod interface; -type BoxedStream = Pin + Send>>; +pub(crate) use interface::{ + get_holochain_service, maybe_get_holochain_service, HolochainServiceInterface, + HolochainServiceRequest, HolochainServiceResponse, +}; + +use self::interface::set_holochain_service; #[derive(Clone)] pub struct HolochainService { pub conductor: ConductorHandle, - //pub signal_receivers: Arc>, - pub signal_receivers: Arc>>>, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -49,10 +49,119 @@ pub struct LocalConductorConfig { pub use_mdns: bool, pub proxy_url: String, pub bootstrap_url: String, + pub admin_port: u16, } impl HolochainService { - pub async fn new(local_config: LocalConductorConfig) -> Result<(), AnyError> { + pub async fn init(local_config: LocalConductorConfig) -> Result<(), AnyError> { + let (sender, mut receiver) = mpsc::channel::(32); + let (stream_sender, stream_receiver) = mpsc::unbounded_channel::(); + + let inteface = HolochainServiceInterface { + sender, + stream_receiver: Arc::new(Mutex::new(stream_receiver)), + }; + + let (response_sender, response_receiver) = oneshot::channel(); + + tokio::spawn(async move { + let rt = tokio::runtime::Builder::new_multi_thread() + .enable_all() + .build() + .expect("Failed to create Tokio runtime"); + let _guard = rt.enter(); + + let mut service = HolochainService::new(local_config).await.unwrap(); + + set_holochain_service(inteface).await; + + let conductor_clone = service.conductor.clone(); + // Spawn a new task to forward items from the stream to the receiver + tokio::spawn(async move { + let sig_broadcasters = conductor_clone.signal_broadcaster(); + + let mut streams = tokio_stream::StreamMap::new(); + for (i, rx) in sig_broadcasters + .subscribe_separately() + .into_iter() + .enumerate() + { + streams.insert(i, tokio_stream::wrappers::BroadcastStream::new(rx)); + } + let mut stream = + streams.map(|(_, signal)| signal.expect("Couldn't receive a signal")); + + response_sender + .send(HolochainServiceResponse::InitComplete(Ok(()))) + .unwrap(); + + loop { + while let Some(item) = stream.next().await { + let _ = stream_sender.send(item); + } + } + }); + + while let Some(message) = receiver.recv().await { + match message { + HolochainServiceRequest::InstallApp(payload, response) => { + let result = service.install_app(payload).await; + let _ = response.send(HolochainServiceResponse::InstallApp(result)); + } + HolochainServiceRequest::CallZomeFunction { + app_id, + cell_name, + zome_name, + fn_name, + payload, + response, + } => { + let result = service + .call_zome_function(app_id, cell_name, zome_name, fn_name, payload) + .await; + let _ = response.send(HolochainServiceResponse::CallZomeFunction(result)); + } + HolochainServiceRequest::RemoveApp(app_id, response_tx) => { + let result = service.remove_app(app_id).await; + let _ = response_tx.send(HolochainServiceResponse::RemoveApp(result)); + } + HolochainServiceRequest::AgentInfos(response_tx) => { + let result = service.agent_infos().await; + let _ = response_tx.send(HolochainServiceResponse::AgentInfos(result)); + } + HolochainServiceRequest::AddAgentInfos(agent_infos, response_tx) => { + let result = service.add_agent_infos(agent_infos).await; + let _ = response_tx.send(HolochainServiceResponse::AddAgentInfos(result)); + } + HolochainServiceRequest::Sign(data, response_tx) => { + let result = service.sign(data).await; + let _ = response_tx.send(HolochainServiceResponse::Sign(result)); + } + HolochainServiceRequest::Shutdown(response_tx) => { + let result = service.shutdown().await; + let _ = response_tx.send(HolochainServiceResponse::Shutdown(result)); + } + HolochainServiceRequest::GetAgentKey(response_tx) => { + let result = service.get_agent_key().await; + let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(result)); + } + HolochainServiceRequest::GetAppInfo(app_id, response_tx) => { + let result = service.get_app_info(app_id).await; + let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); + } + } + } + }); + + match response_receiver.await? { + HolochainServiceResponse::InitComplete(result) => result?, + _ => unreachable!(), + }; + + Ok(()) + } + + pub async fn new(local_config: LocalConductorConfig) -> Result { let conductor_yaml_path = std::path::Path::new(&local_config.conductor_path).join("conductor_config.yaml"); let config = if conductor_yaml_path.exists() { @@ -109,35 +218,20 @@ impl HolochainService { panic!("Could not start holochain conductor"); } + info!("Started holochain conductor"); + let conductor = conductor.unwrap(); let interface = conductor .clone() - .add_app_interface(Either::Right(AppInterfaceId::new(6321))) + .add_app_interface(Either::Left(local_config.admin_port)) .await; - debug!("Added app interface: {:?}", interface); - - info!("Started holochain conductor"); - let signal_broadcaster = conductor.signal_broadcaster(); - info!("Got signal broadcaster"); - - let subs = signal_broadcaster.subscribe_separately(); - debug!("Start sub length: {:?}", subs.len()); - - let service = Self { - conductor, - signal_receivers: Arc::new(Mutex::new(subs)), - }; - - let mut lock = HOLOCHAIN_CONDUCTOR.write().await; - *lock = Some(service); - - info!("Set global conductor"); + info!("Added app interface: {:?}", interface); - info!("Started holochain conductor and set reference in rust executor"); + let service = Self { conductor }; - Ok(()) + Ok(service) } pub async fn install_app( @@ -171,16 +265,6 @@ impl HolochainService { let app_info = self.conductor.get_app_info(&app_id).await?; - debug!("Getting receivers lock"); - let mut receivers = self.signal_receivers.lock().await; - debug!("Got signal receivers"); - let sig_broadcasters = self.conductor.signal_broadcaster(); - let subs = sig_broadcasters.subscribe_separately(); - debug!("Got subs length: {:?}", subs.len()); - if subs.len() != 0 { - *receivers = subs; - } - Ok(app_info.unwrap()) } Some(app_info) => { @@ -199,8 +283,8 @@ impl HolochainService { payload: Option, ) -> Result { info!( - "Calling zome function: {:?} {:?} {:?} {:?} {:?}", - app_id, cell_name, zome_name, fn_name, payload + "Calling zome function: {:?} {:?} {:?} {:?}", + app_id, cell_name, zome_name, fn_name ); let app_info = self.conductor.get_app_info(&app_id).await?; @@ -335,21 +419,3 @@ impl HolochainService { Ok(self.conductor.get_app_info(&app_id).await?) } } - -lazy_static! { - static ref HOLOCHAIN_CONDUCTOR: Arc>> = - Arc::new(RwLock::new(None)); -} - -pub async fn get_global_conductor() -> HolochainService { - let lock = HOLOCHAIN_CONDUCTOR.read().await; - lock.clone().expect("Holochain Conductor not started") -} - -pub async fn maybe_get_global_conductor() -> Option { - let lock = HOLOCHAIN_CONDUCTOR.try_read(); - match lock { - Ok(guard) => guard.clone(), - Err(_) => None, - } -} From df0a0cd210cbcd0804c793f9e63052c07841d281 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 18 May 2023 16:33:51 +0100 Subject: [PATCH 293/722] overhaul performance of async loops in js_core & correctly pass holochain signals to js handler --- rust-executor/src/js_core/mod.rs | 231 ++++++++++++++----------------- 1 file changed, 104 insertions(+), 127 deletions(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 6626b539a..fad8c4887 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -4,7 +4,7 @@ use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; -use holochain::prelude::Signal; +use holochain::prelude::{ExternIO, Signal}; use log::debug; use log::{error, info}; use once_cell::sync::Lazy; @@ -28,7 +28,7 @@ mod utils_extension; mod wallet_extension; use self::futures::{EventLoopFuture, GlobalVariableFuture}; -use crate::holochain_service::maybe_get_global_conductor; +use crate::holochain_service::maybe_get_holochain_service; use crate::Ad4mConfig; use options::{main_module_url, main_worker_options}; @@ -139,6 +139,26 @@ pub struct JsCore { worker: Arc>, } +pub struct ExternWrapper(ExternIO); + +impl std::fmt::Display for ExternWrapper { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + debug!("Raw extern: {:?}", self.0); + //Write the bytes to string like: [0, 1, 3] + let bytes = self.0.as_bytes(); + let mut bytes_str = String::from("["); + for (i, byte) in bytes.iter().enumerate() { + bytes_str.push_str(&format!("{}", byte)); + if i < bytes.len() - 1 { + bytes_str.push_str(", "); + } + } + bytes_str.push_str("]"); + write!(f, "{}", bytes_str).unwrap(); + Ok(()) + } +} + impl JsCore { pub fn new() -> Self { JsCore { @@ -268,31 +288,34 @@ impl JsCore { loop { //Listener future for loading JS modules into runtime let module_load_fut = async { - while let Some(request) = rx_inside_loader.recv().await { - let tx_loader_cloned = tx_inside_loader.clone(); - let script = request.script; - let id = request.id; - - match js_core.load_module(script).await { - Ok(()) => { - info!("Module loaded!"); - tx_inside_loader - .send(JsCoreResponse { - result: Ok(String::from("")), - id: id, - }) - .expect("couldn't send on channel"); - } - Err(err) => { - error!("Error loading module: {:?}", err); - tx_loader_cloned - .send(JsCoreResponse { - result: Err(err.to_string()), - id, - }) - .expect("couldn't send on channel"); + loop { + if let Ok(request) = rx_inside_loader.try_recv() { + let tx_loader_cloned = tx_inside_loader.clone(); + let script = request.script; + let id = request.id; + + match js_core.load_module(script).await { + Ok(()) => { + info!("Module loaded!"); + tx_inside_loader + .send(JsCoreResponse { + result: Ok(String::from("")), + id: id, + }) + .expect("couldn't send on channel"); + } + Err(err) => { + error!("Error loading module: {:?}", err); + tx_loader_cloned + .send(JsCoreResponse { + result: Err(err.to_string()), + id, + }) + .expect("couldn't send on channel"); + } } } + tokio::task::yield_now().await; } }; @@ -300,21 +323,31 @@ impl JsCore { //Listener future for receiving script execution calls let receive_fut = async { - while let Some(request) = rx_inside.recv().await { - let tx_cloned = tx_inside.clone(); - let script = request.script; - let id = request.id; - global_req_id = Some(id.clone()); - match js_core.execute_async(script) { - Ok(execute_async_future) => match execute_async_future.await { - Ok(result) => { - tx_inside - .send(JsCoreResponse { - result: Ok(result), - id: id, - }) - .expect("couldn't send on channel"); - } + loop { + if let Ok(request) = rx_inside.try_recv() { + let tx_cloned = tx_inside.clone(); + let script = request.script; + let id = request.id; + global_req_id = Some(id.clone()); + match js_core.execute_async(script) { + Ok(execute_async_future) => match execute_async_future.await { + Ok(result) => { + tx_inside + .send(JsCoreResponse { + result: Ok(result), + id: id, + }) + .expect("couldn't send on channel"); + } + Err(err) => { + tx_cloned + .send(JsCoreResponse { + result: Err(err.to_string()), + id, + }) + .expect("couldn't send on channel"); + } + }, Err(err) => { tx_cloned .send(JsCoreResponse { @@ -322,111 +355,55 @@ impl JsCore { id, }) .expect("couldn't send on channel"); + continue; } - }, - Err(err) => { - tx_cloned - .send(JsCoreResponse { - result: Err(err.to_string()), - id, - }) - .expect("couldn't send on channel"); - continue; } } + tokio::task::yield_now().await; } }; let holochain_signal_receiver_fut = async { loop { - if let Some(holochain_service) = maybe_get_global_conductor().await { - //info!("Found holochain service"); - let signal_receivers = holochain_service.signal_receivers.clone(); - let mut signal_receivers = signal_receivers.lock().await; - //debug!("Sig lock"); - - // // Loop over the stream - // if let Some(signal) = signal_receivers.next().await { - // match signal { - // Signal::App { - // cell_id, - // zome_name, - // signal, - // } => { - // // Handle the received signal here - // info!("Received signal: {:?}", signal); - // match js_core.execute_async(format!( - // "await core.getHolochainService().handleCallback({:?})", - // Signal::App { cell_id, zome_name, signal } - // )) { - // Ok(script_fut) => match script_fut.await { - // Ok(res) => { - // info!( - // "Callback executed successfully: {:?}", - // res - // ); - // } - // Err(err) => { - // error!("Error executing callback: {:?}", err); - // } - // }, - // Err(err) => { - // error!("Error executing callback: {:?}", err); - // } - // } - // } - // Signal::System(_) => { - // // Handle the received signal here - // info!("Received system signal"); - // } - // } - // } - - for receiver in signal_receivers.iter_mut() { - match receiver.try_recv() { - Ok(signal) => { - match signal { - Signal::App { - cell_id, - zome_name, - signal, - } => { - // Handle the received signal here - info!("Received signal: {:?}", signal); - match js_core.execute_async(format!( - "await core.getHolochainService().handleCallback({:?})", - Signal::App { cell_id, zome_name, signal } - )) { - Ok(script_fut) => match script_fut.await { - Ok(res) => { - info!( - "Callback executed successfully: {:?}", - res - ); - } - Err(err) => { - error!("Error executing callback: {:?}", err); - } - }, + if let Some(holochain_service) = maybe_get_holochain_service() { + let stream_receiver = holochain_service.stream_receiver.try_lock(); + if let Ok(mut stream_receiver) = stream_receiver { + if let Ok(signal) = stream_receiver.try_recv() { + match signal.clone() { + Signal::App { + cell_id, + zome_name, + signal: payload, + } => { + // Handle the received signal here + let script = format!( + "await core.holochainService.handleCallback({{cell_id: [{:?}, {:?}], zome_name: '{}', signal: {}}})", + cell_id.dna_hash().get_raw_39().to_vec(), cell_id.agent_pubkey().get_raw_39().to_vec(), zome_name, ExternWrapper(payload.into_inner()) + ); + match js_core.execute_async(script) { + Ok(script_fut) => match script_fut.await { + Ok(_res) => { + info!( + "Holochain Handle Callback Completed Succesfully", + ); + } Err(err) => { error!("Error executing callback: {:?}", err); } + }, + Err(err) => { + error!("Error executing callback: {:?}", err); } } - Signal::System(system_signal) => { - info!("Received system signal: {:?}", system_signal) - } } - } - Err(_err) => { - // The channel is empty; no signal is available + Signal::System(_) => { + // Handle the received signal here + info!("Received system signal"); + } } } } - } else { - //println!("HolochainService is not available."); } - //debug!("Sig unlock"); tokio::task::yield_now().await; } }; From aea78069ac1bb7db04b0f34baac0ccddcae0f5fe Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 18 May 2023 16:34:10 +0100 Subject: [PATCH 294/722] integrate holochain service extension with new service interface --- .../holochain_service_extension.rs | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 9a0c122f7..9b5a11041 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -10,32 +10,33 @@ use log::info; use crate::holochain_service::{HolochainService, LocalConductorConfig}; -use super::get_global_conductor; +use super::get_holochain_service; #[op] async fn start_holochain_conductor(config: LocalConductorConfig) -> Result<(), AnyError> { - HolochainService::new(config).await?; + HolochainService::init(config).await?; Ok(()) } #[op] async fn log_dht_status() -> Result<(), AnyError> { - let conductor = get_global_conductor().await; - let dht_status = conductor.conductor.dump_network_metrics(None).await?; - info!("DHT Status: {:#?}", dht_status); + let interface = get_holochain_service().await; + //let dht_status = interface.interface.dump_network_metrics(None).await?; + //info!("DHT Status: {:#?}", dht_status); + info!("DHT INFO UNIMPLEMENTED"); Ok(()) } #[op] async fn install_app(install_app_payload: InstallAppPayload) -> Result { - let mut conductor = get_global_conductor().await; - conductor.install_app(install_app_payload).await + let interface = get_holochain_service().await; + interface.install_app(install_app_payload).await } #[op] async fn get_app_info(app_id: String) -> Result, AnyError> { - let conductor = get_global_conductor().await; - conductor.get_app_info(app_id).await + let interface = get_holochain_service().await; + interface.get_app_info(app_id).await } //TODO @@ -48,46 +49,46 @@ async fn call_zome_function( fn_name: String, payload: Option, ) -> Result { - let conductor = get_global_conductor().await; - conductor + let interface = get_holochain_service().await; + interface .call_zome_function(app_id, cell_name, zome_name, fn_name, payload) .await } #[op] async fn agent_infos() -> Result, AnyError> { - let conductor = get_global_conductor().await; - conductor.agent_infos().await + let interface = get_holochain_service().await; + interface.agent_infos().await } #[op] async fn add_agent_infos(agent_infos_payload: Vec) -> Result<(), AnyError> { - let conductor = get_global_conductor().await; - conductor.add_agent_infos(agent_infos_payload).await + let interface = get_holochain_service().await; + interface.add_agent_infos(agent_infos_payload).await } #[op] async fn remove_app(app_id: String) -> Result<(), AnyError> { - let conductor = get_global_conductor().await; - conductor.remove_app(app_id).await + let interface = get_holochain_service().await; + interface.remove_app(app_id).await } #[op] async fn sign_string(data: String) -> Result { - let conductor = get_global_conductor().await; - conductor.sign(data).await + let interface = get_holochain_service().await; + interface.sign(data).await } #[op] async fn shutdown() -> Result<(), AnyError> { - let conductor = get_global_conductor().await; - conductor.shutdown().await + let interface = get_holochain_service().await; + interface.shutdown().await } #[op] async fn get_agent_key() -> Result, AnyError> { - let conductor = get_global_conductor().await; - conductor.get_agent_key().await + let interface = get_holochain_service().await; + interface.get_agent_key().await } //TODO: implement dna packing and unpacking (not currently possible with holochain_cli_bundle unpack / pack functions since it does not exposed the functions in lib) From c24891fe230327ec609b7a78ff5a30c5de77f65e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 18 May 2023 16:37:17 +0100 Subject: [PATCH 295/722] correctly await on callbacks inside languages --- .../direct-message-language/adapter.ts | 7 +++-- bootstrap-languages/p-diff-sync/index.ts | 2 +- .../p-diff-sync/linksAdapter.ts | 2 +- .../Holochain/HolochainService.ts | 28 ++++++++++++------- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/bootstrap-languages/direct-message-language/adapter.ts b/bootstrap-languages/direct-message-language/adapter.ts index 68732458d..7ba320cbf 100644 --- a/bootstrap-languages/direct-message-language/adapter.ts +++ b/bootstrap-languages/direct-message-language/adapter.ts @@ -37,7 +37,7 @@ export default class DMAdapter implements DirectMessageAdapter { ["direct-message", "inbox"], ] } - ], (signal) => { + ], async (signal) => { console.debug("DM Language got HC signal:", signal) //@ts-ignore let payload = signal.payload @@ -50,7 +50,9 @@ export default class DMAdapter implements DirectMessageAdapter { } catch(e) { console.error(e) } - that.#messageCallbacks.forEach(cb => cb(payload)) + for (const cb of that.#messageCallbacks) { + await cb(payload) + } }); } @@ -109,6 +111,7 @@ export default class DMAdapter implements DirectMessageAdapter { } addMessageCallback(callback: MessageCallback) { + console.log("adding callback on dm language"); this.onlyRecipient() this.#messageCallbacks.push(callback) } diff --git a/bootstrap-languages/p-diff-sync/index.ts b/bootstrap-languages/p-diff-sync/index.ts index 1052534ba..ea49a4a0f 100644 --- a/bootstrap-languages/p-diff-sync/index.ts +++ b/bootstrap-languages/p-diff-sync/index.ts @@ -37,7 +37,7 @@ export default async function create(context: LanguageContext): Promise { const dna = Buffer.from(e[0][0]).toString('hex') @@ -86,12 +92,13 @@ export default class HolochainService { //console.debug("Checking:", dna, pubkey) return ( dna === signalDna ) && (pubkey === signalPubkey) }) - callbacks.forEach(cb => { + for (const cb of callbacks) { if (cb && cb![1] != undefined) { - cb![1](signal); + await cb![1](appSignalDecoded); }; - }) + } }; + return appSignalDecoded; } async run(config: HolochainUnlockConfiguration) { @@ -107,7 +114,8 @@ export default class HolochainService { useLocalProxy: config.useLocalProxy!, useMdns: config.useMdns!, proxyUrl: kitsuneProxy, - bootstrapUrl + bootstrapUrl, + adminPort: config.adminPort! } as ConductorConfig); console.log("Holochain run complete"); From d137a6b1e6f458e548335d65432cbfbf3c46b649 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 18 May 2023 16:37:41 +0100 Subject: [PATCH 296/722] fix runtime message received callback topic name --- core/src/PubSub.ts | 2 +- core/src/runtime/RuntimeResolver.ts | 4 ++-- docs/api.html | 6 +++--- docs/typedoc/modules/PubSub.md | 2 +- executor/src/core/LanguageController.ts | 4 ++-- executor/src/core/graphQL-interface/PubSub.ts | 2 +- executor/src/holochain_service_extension.d.ts | 1 + 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/core/src/PubSub.ts b/core/src/PubSub.ts index f8d62422b..d9c697f82 100644 --- a/core/src/PubSub.ts +++ b/core/src/PubSub.ts @@ -1,6 +1,6 @@ export const AGENT_UPDATED = 'agent-updated-topic' export const AGENT_STATUS_CHANGED = 'agent-status-changed-topic' -export const DIRECT_MESSAGE_RECEIVED = 'direct-message-received-topic' +export const RUNTIME_MESSAGED_RECEIVED_TOPIC = 'runtime-messaged-received-topic' export const PERSPECTIVE_ADDED_TOPIC = 'perspective-added-topic' export const PERSPECTIVE_UPDATED_TOPIC = 'perspective-updated-topic' export const PERSPECTIVE_REMOVED_TOPIC = 'perspective-removed-topic' diff --git a/core/src/runtime/RuntimeResolver.ts b/core/src/runtime/RuntimeResolver.ts index 550c01cf4..fb8891cb4 100644 --- a/core/src/runtime/RuntimeResolver.ts +++ b/core/src/runtime/RuntimeResolver.ts @@ -3,7 +3,7 @@ import { Perspective, PerspectiveExpression, PerspectiveInput } from "../perspec import { ExpressionProof } from "../expression/Expression"; import { LinkExpression } from "../links/Links"; import { ExceptionType } from "../Exception"; -import { DIRECT_MESSAGE_RECEIVED, EXCEPTION_OCCURRED_TOPIC } from '../PubSub'; +import { RUNTIME_MESSAGED_RECEIVED_TOPIC, EXCEPTION_OCCURRED_TOPIC } from '../PubSub'; const testLink = new LinkExpression() testLink.author = "did:ad4m:test" @@ -177,7 +177,7 @@ export default class RuntimeResolver { } - @Subscription({topics: DIRECT_MESSAGE_RECEIVED, nullable: true}) + @Subscription({topics: RUNTIME_MESSAGED_RECEIVED_TOPIC, nullable: true}) runtimeMessageReceived(): PerspectiveExpression { return testPerspectiveExpression } diff --git a/docs/api.html b/docs/api.html index a0eecb943..1a3a4a150 100644 --- a/docs/api.html +++ b/docs/api.html @@ -10538,7 +10538,7 @@

Variables

  • AGENT_STATUS_CHANGED
  • AGENT_UPDATED
  • -
  • DIRECT_MESSAGE_RECEIVED
  • +
  • RUNTIME_MESSAGED_RECEIVED_TOPIC
  • EXCEPTION_OCCURRED_TOPIC
  • LINK_ADDED_TOPIC
  • LINK_REMOVED_TOPIC
  • @@ -10560,8 +10560,8 @@

    AGENT_UPDATED

    Defined in

    PubSub.ts:1


    -

    DIRECT_MESSAGE_RECEIVED

    -

    • Const DIRECT_MESSAGE_RECEIVED: "direct-message-received-topic"

    +

    RUNTIME_MESSAGED_RECEIVED_TOPIC

    +

    • Const RUNTIME_MESSAGED_RECEIVED_TOPIC: "direct-message-received-topic"

    Defined in

    PubSub.ts:3


    diff --git a/docs/typedoc/modules/PubSub.md b/docs/typedoc/modules/PubSub.md index d5adbdd21..d3e988688 100644 --- a/docs/typedoc/modules/PubSub.md +++ b/docs/typedoc/modules/PubSub.md @@ -8,7 +8,7 @@ - [AGENT\_STATUS\_CHANGED](PubSub.md#agent_status_changed) - [AGENT\_UPDATED](PubSub.md#agent_updated) -- [DIRECT\_MESSAGE\_RECEIVED](PubSub.md#direct_message_received) +- [RUNTIME\_MESSAGED\_RECEIVED\_TOPIC](PubSub.md#direct_message_received) - [EXCEPTION\_OCCURRED\_TOPIC](PubSub.md#exception_occurred_topic) - [LINK\_ADDED\_TOPIC](PubSub.md#link_added_topic) - [LINK\_REMOVED\_TOPIC](PubSub.md#link_removed_topic) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index ff20064b0..bc6986b72 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -265,7 +265,7 @@ export default class LanguageController { //@ts-ignore if(language.directMessageAdapter && language.directMessageAdapter.recipient() == this.#context.agent.did) { language.directMessageAdapter.addMessageCallback(async (message: PerspectiveExpression) => { - await PUBSUB.publish(PubSub.DIRECT_MESSAGE_RECEIVED, message) + await PUBSUB.publish(PubSub.RUNTIME_MESSAGED_RECEIVED_TOPIC, message) }) } @@ -314,7 +314,7 @@ export default class LanguageController { //@ts-ignore if(language.directMessageAdapter && language.directMessageAdapter.recipient() == this.#context.agent.did) { language.directMessageAdapter.addMessageCallback(async (message: PerspectiveExpression) => { - await PUBSUB.publish(PubSub.DIRECT_MESSAGE_RECEIVED, message) + await PUBSUB.publish(PubSub.RUNTIME_MESSAGED_RECEIVED_TOPIC, message) }) } diff --git a/executor/src/core/graphQL-interface/PubSub.ts b/executor/src/core/graphQL-interface/PubSub.ts index f5c280fd6..382f1e149 100644 --- a/executor/src/core/graphQL-interface/PubSub.ts +++ b/executor/src/core/graphQL-interface/PubSub.ts @@ -2,7 +2,7 @@ import { PubSub } from 'graphql-subscriptions' export const AGENT_UPDATED = 'agent-updated-topic' export const AGENT_STATUS_CHANGED = 'agent-status-changed-topic' -export const DIRECT_MESSAGE_RECEIVED = 'direct-message-received-topic' +export const RUNTIME_MESSAGED_RECEIVED_TOPIC = 'runtime-messaged-received-topic' export const PERSPECTIVE_ADDED_TOPIC = 'perspective-added-topic' export const PERSPECTIVE_UPDATED_TOPIC = 'perspective-updated-topic' export const PERSPECTIVE_REMOVED_TOPIC = 'perspective-removed-topic' diff --git a/executor/src/holochain_service_extension.d.ts b/executor/src/holochain_service_extension.d.ts index ddc6756a1..e396fc4d5 100644 --- a/executor/src/holochain_service_extension.d.ts +++ b/executor/src/holochain_service_extension.d.ts @@ -11,6 +11,7 @@ declare global { useMdns: bool, proxyUrl: String, bootstrapUrl: String, + adminPort: Number } interface HolochainService { From 6f24ff9a50fae254abe34647da06493dc9615865 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 18 May 2023 18:03:45 +0100 Subject: [PATCH 297/722] fix telepresence signal not having signatures --- executor/src/core/LanguageController.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index bc6986b72..5658e91cd 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -257,7 +257,8 @@ export default class LanguageController { } if(language.telepresenceAdapter) { - language.telepresenceAdapter.registerSignalCallback((payload: PerspectiveExpression) => { + language.telepresenceAdapter.registerSignalCallback(async (payload: PerspectiveExpression) => { + await this.tagPerspectiveExpressionSignatureStatus(payload) this.callTelepresenceSignalObservers(payload, {address: hash, name: language.name} as LanguageRef); }) } From 9b399808d01d13919d3080364ebf09d2192ef36c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 18 May 2023 18:04:14 +0100 Subject: [PATCH 298/722] fix decoding of multiple holochain signal types --- executor/src/core/PerspectivesController.ts | 5 ++--- .../core/storage-services/Holochain/HolochainService.ts | 7 ++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index 20d78e259..b7bfc74c0 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -3,7 +3,7 @@ import fs from 'fs' import { v4 as uuidv4 } from 'uuid'; import * as PubSub from './graphQL-interface/PubSub' import type PerspectiveContext from './PerspectiveContext' -import { Perspective as Ad4mPerspective, Neighbourhood, LinkQuery, PerspectiveHandle, LanguageRef, PerspectiveDiff, PerspectiveState } from '@perspect3vism/ad4m' +import { Perspective as Ad4mPerspective, Neighbourhood, LinkQuery, PerspectiveHandle, LanguageRef, PerspectiveDiff, PerspectiveState, PerspectiveExpression } from '@perspect3vism/ad4m' import Perspective from './Perspective' export default class PerspectivesController { @@ -49,7 +49,6 @@ export default class PerspectivesController { } for (const linkRemoved of diff.removals) { - console.log("publishing removal:", linkRemoved) await PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { perspective: perspectivePlain, link: linkRemoved @@ -63,7 +62,7 @@ export default class PerspectivesController { } }) - this.#context.languageController!.addTelepresenceSignalObserver(async (signal: any, lang: LanguageRef) => { + this.#context.languageController!.addTelepresenceSignalObserver(async (signal: PerspectiveExpression, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); if (perspective) { await PUBSUB.publish(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 9871c1b14..be19ef6ec 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -76,7 +76,12 @@ export default class HolochainService { async handleCallback(signal: EncodedAppSignal) { //console.debug(new Date().toISOString(), "GOT CALLBACK FROM HC, checking against language callbacks"); //@ts-ignore - let payload = Buffer.from(decode(signal.signal)); + let payload = decode(signal.signal); + var TypedArray = Object.getPrototypeOf(Uint8Array); + if (payload instanceof TypedArray) { + //@ts-ignore + payload = Buffer.from(payload); + }; let appSignalDecoded = { cell_id: signal.cell_id, zome_name: signal.zome_name, From 11e9d212f0ad301bf3e2657eb2127eea34cc6750 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 18 May 2023 18:04:40 +0100 Subject: [PATCH 299/722] implement dht network dump on HolochainService --- .../holochain_service_extension.rs | 5 ++--- rust-executor/src/holochain_service/interface.rs | 16 +++++++++++++--- rust-executor/src/holochain_service/mod.rs | 9 +++++++++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 9b5a11041..ab14ce61e 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -21,9 +21,8 @@ async fn start_holochain_conductor(config: LocalConductorConfig) -> Result<(), A #[op] async fn log_dht_status() -> Result<(), AnyError> { let interface = get_holochain_service().await; - //let dht_status = interface.interface.dump_network_metrics(None).await?; - //info!("DHT Status: {:#?}", dht_status); - info!("DHT INFO UNIMPLEMENTED"); + let metrics = interface.get_network_metrics().await?; + info!("DHT metrics: {:?}", serde_json::Value::try_from(metrics)?); Ok(()) } diff --git a/rust-executor/src/holochain_service/interface.rs b/rust-executor/src/holochain_service/interface.rs index fa8340141..9826d80f1 100644 --- a/rust-executor/src/holochain_service/interface.rs +++ b/rust-executor/src/holochain_service/interface.rs @@ -1,5 +1,4 @@ use deno_core::error::AnyError; -use futures::channel::mpsc::Receiver; use holochain::conductor::api::AppInfo; use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::hash_type::Agent; @@ -7,8 +6,6 @@ use holochain::prelude::{ ExternIO, HoloHash, InstallAppPayload, Signal, Signature, ZomeCallResponse, }; use lazy_static::lazy_static; -use log::debug; -use log::info; use std::sync::Arc; use tokio::sync::mpsc::{Sender, UnboundedReceiver}; use tokio::sync::{oneshot, Mutex, RwLock}; @@ -40,6 +37,7 @@ pub enum HolochainServiceRequest { Shutdown(oneshot::Sender), GetAgentKey(oneshot::Sender), GetAppInfo(String, oneshot::Sender), + GetNetworkMetrics(oneshot::Sender), } #[derive(Debug)] @@ -54,6 +52,7 @@ pub enum HolochainServiceResponse { GetAgentKey(Result, AnyError>), GetAppInfo(Result, AnyError>), InitComplete(Result<(), AnyError>), + GetNetworkMetrics(Result), } impl HolochainServiceInterface { @@ -175,6 +174,17 @@ impl HolochainServiceInterface { _ => unreachable!(), } } + + pub async fn get_network_metrics(&self) -> Result { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::GetNetworkMetrics(response_tx)) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::GetNetworkMetrics(result) => result, + _ => unreachable!(), + } + } } lazy_static! { diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index c3f07638a..85d405fd4 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -149,6 +149,11 @@ impl HolochainService { let result = service.get_app_info(app_id).await; let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); } + HolochainServiceRequest::GetNetworkMetrics(response_tx) => { + let result = service.get_network_metrics().await; + let _ = + response_tx.send(HolochainServiceResponse::GetNetworkMetrics(result)); + } } } }); @@ -418,4 +423,8 @@ impl HolochainService { pub async fn get_app_info(&self, app_id: String) -> Result, AnyError> { Ok(self.conductor.get_app_info(&app_id).await?) } + + pub async fn get_network_metrics(&self) -> Result { + Ok(self.conductor.dump_network_metrics(None).await?) + } } From 35795cf3910a9de2821add97839beec381f6611d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 18 May 2023 18:05:03 +0100 Subject: [PATCH 300/722] fix types for neighbourhood signal and import cleanups --- rust-executor/src/graphql/graphql_types.rs | 4 ++-- rust-executor/src/graphql/mutation_resolvers.rs | 2 -- rust-executor/src/graphql/query_resolvers.rs | 1 - rust-executor/src/js_core/mod.rs | 3 --- 4 files changed, 2 insertions(+), 8 deletions(-) diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index af5eff2e1..402c2acd2 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -373,7 +373,7 @@ pub struct SentMessage { #[derive(Default, Debug, Deserialize, Serialize)] pub struct NeighbourhoodSignalFilter { pub perspective: PerspectiveHandle, - pub value: PerspectiveExpression, + pub signal: PerspectiveExpression, } #[derive(Default, Debug, Deserialize, Serialize)] @@ -440,7 +440,7 @@ impl GetValue for NeighbourhoodSignalFilter { type Value = PerspectiveExpression; fn get_value(&self) -> Self::Value { - self.value.clone() + self.signal.clone() } } diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 2267d0c02..2efc63eb2 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -1,7 +1,6 @@ #![allow(non_snake_case)] #![allow(unused_variables)] use juniper::{graphql_object, FieldResult}; -use log::debug; use crate::js_core::JsCoreHandle; @@ -1029,7 +1028,6 @@ impl Mutation { ))"#, status_json, ALL_CAPABILITY ); - debug!("runtime_set_status script: {}", script); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index d798f0d1a..e93914aca 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -1,7 +1,6 @@ #![allow(non_snake_case)] #![allow(unused_variables)] use juniper::{graphql_object, FieldResult}; -use log::debug; use crate::js_core::JsCoreHandle; diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index fad8c4887..27303fb7c 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -1,11 +1,9 @@ -use ::futures::StreamExt; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; use holochain::prelude::{ExternIO, Signal}; -use log::debug; use log::{error, info}; use once_cell::sync::Lazy; use std::env::current_dir; @@ -143,7 +141,6 @@ pub struct ExternWrapper(ExternIO); impl std::fmt::Display for ExternWrapper { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - debug!("Raw extern: {:?}", self.0); //Write the bytes to string like: [0, 1, 3] let bytes = self.0.as_bytes(); let mut bytes_str = String::from("["); From fedafd2a5f130fb672723291f6f267bf95bfbcde Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 19 May 2023 15:35:10 +0100 Subject: [PATCH 301/722] check point work on new rust jwt implementation --- Cargo.lock | 119 +++++++++++-- executor/src/core/agent/AgentService.ts | 60 ++++--- .../src/core/graphQL-interface/GraphQL.ts | 1 + executor/src/jwt_extension.d.ts | 11 ++ rust-executor/.gitignore | 1 + rust-executor/Cargo.toml | 11 +- .../src/graphql/mutation_resolvers.rs | 5 +- rust-executor/src/js_core/jwt_extension.js | 13 ++ rust-executor/src/js_core/jwt_extension.rs | 156 ++++++++++++++++++ rust-executor/src/js_core/mod.rs | 1 + rust-executor/src/js_core/options.rs | 10 +- rust-executor/src/js_core/testlib.js | 5 - rust-executor/src/wallet.rs | 1 - 13 files changed, 344 insertions(+), 50 deletions(-) create mode 100644 executor/src/jwt_extension.d.ts create mode 100644 rust-executor/src/js_core/jwt_extension.js create mode 100644 rust-executor/src/js_core/jwt_extension.rs delete mode 100644 rust-executor/src/js_core/testlib.js diff --git a/Cargo.lock b/Cargo.lock index 1578dc229..43ee3b856 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2320,7 +2320,7 @@ dependencies = [ "base64 0.13.1", "deno_core", "hex", - "num-bigint", + "num-bigint 0.4.3", "rusqlite", "serde", ] @@ -2368,7 +2368,7 @@ dependencies = [ "libz-sys", "md-5", "md4", - "num-bigint", + "num-bigint 0.4.3", "num-integer", "num-traits", "once_cell", @@ -2813,7 +2813,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "008b6061551bcf644454469e6506c32bb23b765df93d608bf7a8e2494f82fcb3" dependencies = [ "bumpalo", - "num-bigint", + "num-bigint 0.4.3", "rustc-hash", "swc_atoms", "swc_common", @@ -5379,6 +5379,20 @@ dependencies = [ "treediff", ] +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.0", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1 0.6.2", +] + [[package]] name = "juniper" version = "0.16.0-dev" @@ -6868,7 +6882,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" dependencies = [ - "num-bigint", + "num-bigint 0.4.3", "num-complex", "num-integer", "num-iter", @@ -6876,6 +6890,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg 1.1.0", + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.3" @@ -6953,7 +6978,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg 1.1.0", - "num-bigint", + "num-bigint 0.4.3", "num-integer", "num-traits", ] @@ -7082,6 +7107,15 @@ dependencies = [ "tracing-subscriber 0.2.25", ] +[[package]] +name = "oid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c19903c598813dba001b53beeae59bb77ad4892c5c1b9b3500ce4293a0d06c2" +dependencies = [ + "serde", +] + [[package]] name = "once_cell" version = "1.17.1" @@ -7669,6 +7703,41 @@ dependencies = [ "siphasher", ] +[[package]] +name = "picky-asn1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f338f1fd4f3e13e75e986ca29f2a3c62528d88d3cbadf4afdcefb6b087f2d32" +dependencies = [ + "oid", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-der" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e47267a46f4ea246b772381970b8ed3f15963dd3e15ffc2c3f4ac3bc2d77384b" +dependencies = [ + "picky-asn1", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-x509" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb51541f90aa99f2fa7191c8daebc224d500cd5963c6ca3e6cede9645a1b2e1" +dependencies = [ + "base64 0.13.1", + "oid", + "picky-asn1", + "picky-asn1-der", + "serde", +] + [[package]] name = "pin-project" version = "0.4.30" @@ -8814,6 +8883,7 @@ dependencies = [ "futures", "hex", "holochain", + "jsonwebtoken", "juniper", "juniper_graphql_transport_ws", "juniper_subscriptions", @@ -8824,11 +8894,15 @@ dependencies = [ "multihash", "once_cell", "os_info 3.7.0", + "picky-asn1", + "picky-asn1-der", + "picky-asn1-x509", "rand 0.8.5", "secp256k1", "semver 1.0.17", "serde", "serde_json", + "simple_asn1 0.4.1", "tokio", "tokio-stream", "url 2.3.1", @@ -9274,7 +9348,7 @@ checksum = "916ca7852a4c5f0ba59ce4a46301bf7c7ad573c2c89a0fe67e90fe30dcbd6f7d" dependencies = [ "bytes", "derive_more", - "num-bigint", + "num-bigint 0.4.3", "serde", "serde_bytes", "smallvec 1.10.0", @@ -9519,6 +9593,29 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" +[[package]] +name = "simple_asn1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692ca13de57ce0613a363c8c2f1de925adebc81b04c923ac60c5488bb44abe4b" +dependencies = [ + "chrono", + "num-bigint 0.2.6", + "num-traits", +] + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.3", + "num-traits", + "thiserror", + "time 0.3.17", +] + [[package]] name = "siphasher" version = "0.3.10" @@ -9944,7 +10041,7 @@ dependencies = [ "either", "from_variant", "new_debug_unreachable", - "num-bigint", + "num-bigint 0.4.3", "once_cell", "rustc-hash", "serde", @@ -9992,7 +10089,7 @@ checksum = "7dbfdbe05dde274473a6030dcf5e52e579516aea761d25d7a8d128f2ab597f09" dependencies = [ "bitflags", "is-macro", - "num-bigint", + "num-bigint 0.4.3", "scoped-tls", "serde", "string_enum", @@ -10008,7 +10105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78d196e6979af0cbb91084361ca006db292a6374f75ec04cbb55306051cc4f50" dependencies = [ "memchr", - "num-bigint", + "num-bigint 0.4.3", "once_cell", "rustc-hash", "serde", @@ -10056,7 +10153,7 @@ dependencies = [ "either", "enum_kind", "lexical", - "num-bigint", + "num-bigint 0.4.3", "serde", "smallvec 1.10.0", "smartstring", @@ -10202,7 +10299,7 @@ version = "0.86.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147cf9137da6fe2704a5defd29a1cde849961978f8c92911e6790d50df475fef" dependencies = [ - "num-bigint", + "num-bigint 0.4.3", "swc_atoms", "swc_common", "swc_ecma_ast", diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index e92d1cf39..42d2e4d52 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -303,14 +303,17 @@ export default class AgentService { return [AGENT_AUTH_CAPABILITY]; } - const key = this.getSigningKey(); - // @ts-ignore - let keyEncoder = new KeyEncoder.default("secp256k1"); - const pemPublicKey = keyEncoder.encodePublic(key.publicKey, "raw", "pem"); - const pubKeyObj = crypto.createPublicKey(pemPublicKey); + // const key = this.getSigningKey(); + // // @ts-ignore + // let keyEncoder = new KeyEncoder.default("secp256k1"); + // const pemPublicKey = keyEncoder.encodePublic(key.publicKey, "raw", "pem"); + // const pubKeyObj = crypto.createPublicKey(pemPublicKey); - const { payload } = await jose.jwtVerify(token, pubKeyObj); + // const { payload } = await jose.jwtVerify(token, pubKeyObj); + const payload = await JWT.verifyJwt(token); + console.log("Got cap payload: ", payload); + //@ts-ignore return payload.capabilities; } @@ -359,32 +362,43 @@ export default class AgentService { throw new Error("Can't find permitted request"); } - const key = this.getSigningKey(); - // @ts-ignore - let keyEncoder = new KeyEncoder.default("secp256k1"); - const pemPrivateKey = keyEncoder.encodePrivate( - key.privateKey, - "raw", - "pem" - ); - const keyObj = crypto.createPrivateKey(pemPrivateKey); - - const jwt = await new jose.SignJWT({ ...auth }) - .setProtectedHeader({ alg: "ES256K" }) - .setIssuedAt() - .setIssuer(this.did || "") - .setAudience(`${auth.appName}:${this.did || ""}`) - .setExpirationTime(`${this.#tokenValidPeriod}s`) - .sign(keyObj); + // const key = this.getSigningKey(); + // console.log("Signing key", key); + // // @ts-ignore + // let keyEncoder = new KeyEncoder.default("secp256k1"); + // console.log("Key encoder", keyEncoder, key.privateKey); + // const pemPrivateKey = await keyEncoder.encodePrivate( + // key.privateKey, + // "raw", + // "pem" + // ); + // console.log("Pem private key", pemPrivateKey); + // const keyObj = crypto.createPrivateKey(key.privateKey); + // console.log("Key object", keyObj); + + // const jwt = await new jose.SignJWT({ ...auth }) + // .setProtectedHeader({ alg: "ES256K" }) + // .setIssuedAt() + // .setIssuer(this.did || "") + // .setAudience(`${auth.appName}:${this.did || ""}`) + // .setExpirationTime(`${this.#tokenValidPeriod}s`) + // .sign(keyObj); + + const jwt = await JWT.generateJwt(this.did || "", `${auth.appName}:${this.did || ""}`, `${this.#tokenValidPeriod}s`); + + console.log("JWT", jwt); this.#requests.delete(authKey); if (requestId === this.#requestingAuthInfo?.requestId) { const apps = [...this.#apps, { ...this.#requestingAuthInfo, token: jwt }]; this.#apps = apps; + console.log("Apps", apps); fs.writeFileSync(this.#appsFile, JSON.stringify(apps)); } + console.log("returning"); + return jwt; } diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index bb1052a4d..a1a039dbc 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -599,6 +599,7 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { requestId, rand } = args; let jwt = await core.agentService.generateJwt(requestId, rand) + console.log("Generated JWT: ", jwt); return jwt; }, //@ts-ignore diff --git a/executor/src/jwt_extension.d.ts b/executor/src/jwt_extension.d.ts new file mode 100644 index 000000000..f64ebb7d7 --- /dev/null +++ b/executor/src/jwt_extension.d.ts @@ -0,0 +1,11 @@ +declare global { + interface Jwt { + async publish: (topic: String, data: any) => void; + async generateJwt: (issuer, audience, expiration_time) => string; + async verifyJwt: (token) => {iss: String, aud: String, exp: String, iat: number} + } + + const JWT: Jwt; +} + +export {}; \ No newline at end of file diff --git a/rust-executor/.gitignore b/rust-executor/.gitignore index 73367a9ac..c7a58a8ed 100644 --- a/rust-executor/.gitignore +++ b/rust-executor/.gitignore @@ -4,4 +4,5 @@ schema.gql !src/js_core/utils_extension.js !src/js_core/wallet_extension.js !src/js_core/pubsub_extension.js +!src/js_core/jwt_extension.js !src/holochain_service/holochain_service_extension.js \ No newline at end of file diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 1fe8a773b..71d8f0821 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -22,9 +22,6 @@ futures = "0.3.28" tokio-stream = { version = "0.1.12", features = ["sync"] } lazy_static = "1.4.0" -juniper = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["chrono"] } -juniper_subscriptions = {git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } - chrono = { version = "0.4.24", features = ["serde"] } env_logger = "0.10.0" serde_json = "1.0.95" @@ -48,8 +45,16 @@ multihash = { version = "0.18.0", features = ["sha2"] } cid = "0.10.1" once_cell = "1.17.1" +juniper = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["chrono"] } +juniper_subscriptions = {git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } juniper_graphql_transport_ws = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } juniper_warp = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["subscriptions"] } warp = "0.3.4" +jsonwebtoken = { version = "8.3.0", features = ["use_pem"] } +simple_asn1 = "0.4.1" +picky-asn1-x509 = "0.9.0" +picky-asn1 = "0.7.0" +picky-asn1-der = "0.4.0" + holochain = "0.1.3" \ No newline at end of file diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 2efc63eb2..b664d4d0d 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -1,6 +1,7 @@ #![allow(non_snake_case)] #![allow(unused_variables)] use juniper::{graphql_object, FieldResult}; +use log::debug; use crate::js_core::JsCoreHandle; @@ -113,7 +114,9 @@ impl Mutation { )"#, rand, request_id, ALL_CAPABILITY ); + debug!("agent_generate_jwt script: {}", script); let result = js.execute(script).await?; + debug!("agent_generate_jwt result: {}", result); let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() } @@ -144,7 +147,7 @@ impl Mutation { let mut js = context.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentPermitCapability", {{ auth: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentPermitCapability", {{ auth: JSON.stringify({}) }}, {{ capabilities: [{}] }}) )"#, auth, ALL_CAPABILITY ); diff --git a/rust-executor/src/js_core/jwt_extension.js b/rust-executor/src/js_core/jwt_extension.js new file mode 100644 index 000000000..b2e8ee594 --- /dev/null +++ b/rust-executor/src/js_core/jwt_extension.js @@ -0,0 +1,13 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.JWT = { + generateJwt: async (issuer, audience, expiration_time) => { + return core.opAsync("generate_jwt", issuer, audience, expiration_time); + }, + verifyJwt: async (token) => { + return core.opAsync("verify_jwt", token); + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/js_core/jwt_extension.rs b/rust-executor/src/js_core/jwt_extension.rs new file mode 100644 index 000000000..cdf48ee1a --- /dev/null +++ b/rust-executor/src/js_core/jwt_extension.rs @@ -0,0 +1,156 @@ +use std::time::{SystemTime, UNIX_EPOCH}; + +use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension}; +use jsonwebtoken::{encode, Algorithm, DecodingKey, EncodingKey, Header}; +use picky_asn1::bit_string::BitString; +use picky_asn1::wrapper::BitStringAsn1; +use picky_asn1::wrapper::ExplicitContextTag0; +use picky_asn1::wrapper::IntegerAsn1; +use picky_asn1_x509::PrivateKeyValue; +use serde::{Deserialize, Serialize}; + +use simple_asn1::{to_der, ASN1Block, ASN1Class}; + +use picky_asn1::wrapper::ExplicitContextTag1; +use picky_asn1::wrapper::OctetStringAsn1; +use picky_asn1::wrapper::OctetStringAsn1Container; +use picky_asn1::wrapper::Optional; +use picky_asn1_x509::private_key_info::ECPrivateKey; +use picky_asn1_x509::private_key_info::PrivateKeyInfo; + +use log::debug; + +use crate::wallet::Wallet; + +#[derive(Debug, Serialize, Deserialize)] +struct Claims { + iss: String, + aud: String, + exp: String, + iat: u64, +} + +#[op] +async fn generate_jwt( + issuer: String, + audience: String, + expiration_time: String, +) -> Result { + // Get the private key + let wallet = Wallet::instance(); + let wallet_lock = wallet.lock().expect("wallet lock"); + let wallet_ref = wallet_lock.as_ref().expect("wallet instance"); + let name = "main".to_string(); + + let secret_key = wallet_ref + .get_secret_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + + let public_key = wallet_ref + .get_public_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + + // let encoded = to_der(&ASN1Block::Sequence( + // 0, + // vec![ + // ASN1Block::OctetString(0, secret_key), + // ASN1Block::OctetString(0, public_key), + // ], + // )) + // .unwrap(); + + let zero: i32 = 0; + let ec_key: ECPrivateKey = ECPrivateKey { + version: IntegerAsn1(zero.to_le_bytes().to_vec()), + private_key: OctetStringAsn1(secret_key), + parameters: Optional(ExplicitContextTag0(None)), + public_key: Optional(ExplicitContextTag1(BitStringAsn1(BitString::with_bytes( + public_key, + )))), + }; + let octec_string: OctetStringAsn1Container = ec_key.into(); + + let private_key_value = PrivateKeyValue::EC(octec_string); + + let private_key_info = PrivateKeyInfo { + version: 0, + private_key_algorithm: picky_asn1_x509::AlgorithmIdentifier::new_ed25519(), + private_key: private_key_value, + }; + + let pkcs8_der = picky_asn1_der::to_vec(&private_key_info).unwrap(); + + let now = SystemTime::now(); + let unix_timestamp = now + .duration_since(UNIX_EPOCH) + .expect("Time went backwards") + .as_secs(); + + let payload = Claims { + iss: issuer, + aud: audience, + exp: expiration_time, + iat: unix_timestamp, + }; + + debug!("payload: {:?}", payload); + + let header = Header::new(Algorithm::EdDSA); + debug!("header: {:?}", header); + let token = encode( + &header, + &payload, + &EncodingKey::from_ed_der(pkcs8_der.as_slice()), + )?; + debug!("Token: {:?}", token); + + Ok(token) +} + +#[op] +async fn verify_jwt(token: String) -> Result { + //Get the private key + let wallet = Wallet::instance(); + let wallet_lock = wallet.lock().expect("wallet lock"); + let wallet_ref = wallet_lock.as_ref().expect("wallet instance"); + let name = "main".to_string(); + + let secret_key = wallet_ref + .get_secret_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + + let public_key = wallet_ref + .get_public_key(&name) + .ok_or(anyhow!("main key not found. call createMainKey() first"))?; + + // let encoded = to_der(&ASN1Block::Sequence( + // 0, + // vec![ + // ASN1Block::OctetString(0, secret_key), + // ASN1Block::OctetString(0, public_key), + // ], + // )) + // .unwrap(); + + // let private_key_info = PrivateKeyInfo::new( + // picky_asn1_x509::AlgorithmIdentifier::new_ed25519(), + // &private_key, + // Some(public_key), + // ); + + let result = jsonwebtoken::decode::( + &token, + &DecodingKey::from_ed_der(public_key.as_slice()), + &jsonwebtoken::Validation::new(Algorithm::EdDSA), + )?; + + Ok(result.claims) +} + +pub fn build() -> Extension { + Extension::builder("jwt") + .js(include_js_files!(jwt "jwt_extension.js",)) + .ops(vec![generate_jwt::decl(), verify_jwt::decl()]) + .force_op_registration() + .build() +} diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 27303fb7c..3cd657d70 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -19,6 +19,7 @@ use tokio::sync::{ use tokio::task::LocalSet; mod futures; +mod jwt_extension; mod options; mod pubsub_extension; mod string_module_loader; diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs index 5c6331f47..ec600c216 100644 --- a/rust-executor/src/js_core/options.rs +++ b/rust-executor/src/js_core/options.rs @@ -3,7 +3,8 @@ use std::{collections::HashMap, rc::Rc}; use url::Url; use super::{ - pubsub_extension, string_module_loader::StringModuleLoader, utils_extension, wallet_extension, + jwt_extension, pubsub_extension, string_module_loader::StringModuleLoader, utils_extension, + wallet_extension, }; use crate::holochain_service::holochain_service_extension; @@ -21,10 +22,6 @@ pub fn module_map() -> HashMap { "https://ad4m.runtime/executor".to_string(), include_str!("../../../executor/lib/bundle.js").to_string(), ); - map.insert( - "https://ad4m.runtime/test".to_string(), - include_str!("testlib.js").to_string(), - ); map } @@ -38,9 +35,10 @@ pub fn main_worker_options() -> WorkerOptions { let utils_ext = utils_extension::build(); let sub_ext = pubsub_extension::build(); let holochain_ext = holochain_service_extension::build(); + let jwt_ext = jwt_extension::build(); WorkerOptions { - extensions: vec![wallet_ext, utils_ext, sub_ext, holochain_ext], + extensions: vec![wallet_ext, utils_ext, sub_ext, holochain_ext, jwt_ext], module_loader: Rc::new(loader), ..Default::default() } diff --git a/rust-executor/src/js_core/testlib.js b/rust-executor/src/js_core/testlib.js deleted file mode 100644 index b0609ae4b..000000000 --- a/rust-executor/src/js_core/testlib.js +++ /dev/null @@ -1,5 +0,0 @@ -console.log("Hello from testlib.js") -export function test() { - console.log("Hello from test()") -} - diff --git a/rust-executor/src/wallet.rs b/rust-executor/src/wallet.rs index 4bc6ea982..d9f1bc63f 100644 --- a/rust-executor/src/wallet.rs +++ b/rust-executor/src/wallet.rs @@ -418,7 +418,6 @@ mod tests { let result = key_pair.verify(message, sig_bytes); assert!(result.is_ok()); } - signature[0] = 0; { From ebc55e5794128c801121c8363efb65a20de2ca53 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 22 May 2023 14:04:29 +0100 Subject: [PATCH 302/722] just use simple sha256 hash using secret bytes to correctly generate the jwt token! --- executor/src/core/agent/AgentService.ts | 26 ------- rust-executor/Cargo.toml | 6 +- rust-executor/src/js_core/jwt_extension.rs | 82 ++-------------------- 3 files changed, 5 insertions(+), 109 deletions(-) diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 42d2e4d52..c2364bdc3 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -362,32 +362,8 @@ export default class AgentService { throw new Error("Can't find permitted request"); } - // const key = this.getSigningKey(); - // console.log("Signing key", key); - // // @ts-ignore - // let keyEncoder = new KeyEncoder.default("secp256k1"); - // console.log("Key encoder", keyEncoder, key.privateKey); - // const pemPrivateKey = await keyEncoder.encodePrivate( - // key.privateKey, - // "raw", - // "pem" - // ); - // console.log("Pem private key", pemPrivateKey); - // const keyObj = crypto.createPrivateKey(key.privateKey); - // console.log("Key object", keyObj); - - // const jwt = await new jose.SignJWT({ ...auth }) - // .setProtectedHeader({ alg: "ES256K" }) - // .setIssuedAt() - // .setIssuer(this.did || "") - // .setAudience(`${auth.appName}:${this.did || ""}`) - // .setExpirationTime(`${this.#tokenValidPeriod}s`) - // .sign(keyObj); - const jwt = await JWT.generateJwt(this.did || "", `${auth.appName}:${this.did || ""}`, `${this.#tokenValidPeriod}s`); - console.log("JWT", jwt); - this.#requests.delete(authKey); if (requestId === this.#requestingAuthInfo?.requestId) { @@ -397,8 +373,6 @@ export default class AgentService { fs.writeFileSync(this.#appsFile, JSON.stringify(apps)); } - console.log("returning"); - return jwt; } diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 71d8f0821..300488353 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -51,10 +51,6 @@ juniper_graphql_transport_ws = { git = "https://github.com/graphql-rust/juniper" juniper_warp = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["subscriptions"] } warp = "0.3.4" -jsonwebtoken = { version = "8.3.0", features = ["use_pem"] } -simple_asn1 = "0.4.1" -picky-asn1-x509 = "0.9.0" -picky-asn1 = "0.7.0" -picky-asn1-der = "0.4.0" +jsonwebtoken = "8.3.0" holochain = "0.1.3" \ No newline at end of file diff --git a/rust-executor/src/js_core/jwt_extension.rs b/rust-executor/src/js_core/jwt_extension.rs index cdf48ee1a..dc17546c6 100644 --- a/rust-executor/src/js_core/jwt_extension.rs +++ b/rust-executor/src/js_core/jwt_extension.rs @@ -2,24 +2,8 @@ use std::time::{SystemTime, UNIX_EPOCH}; use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension}; use jsonwebtoken::{encode, Algorithm, DecodingKey, EncodingKey, Header}; -use picky_asn1::bit_string::BitString; -use picky_asn1::wrapper::BitStringAsn1; -use picky_asn1::wrapper::ExplicitContextTag0; -use picky_asn1::wrapper::IntegerAsn1; -use picky_asn1_x509::PrivateKeyValue; use serde::{Deserialize, Serialize}; -use simple_asn1::{to_der, ASN1Block, ASN1Class}; - -use picky_asn1::wrapper::ExplicitContextTag1; -use picky_asn1::wrapper::OctetStringAsn1; -use picky_asn1::wrapper::OctetStringAsn1Container; -use picky_asn1::wrapper::Optional; -use picky_asn1_x509::private_key_info::ECPrivateKey; -use picky_asn1_x509::private_key_info::PrivateKeyInfo; - -use log::debug; - use crate::wallet::Wallet; #[derive(Debug, Serialize, Deserialize)] @@ -46,40 +30,6 @@ async fn generate_jwt( .get_secret_key(&name) .ok_or(anyhow!("main key not found. call createMainKey() first"))?; - let public_key = wallet_ref - .get_public_key(&name) - .ok_or(anyhow!("main key not found. call createMainKey() first"))?; - - // let encoded = to_der(&ASN1Block::Sequence( - // 0, - // vec![ - // ASN1Block::OctetString(0, secret_key), - // ASN1Block::OctetString(0, public_key), - // ], - // )) - // .unwrap(); - - let zero: i32 = 0; - let ec_key: ECPrivateKey = ECPrivateKey { - version: IntegerAsn1(zero.to_le_bytes().to_vec()), - private_key: OctetStringAsn1(secret_key), - parameters: Optional(ExplicitContextTag0(None)), - public_key: Optional(ExplicitContextTag1(BitStringAsn1(BitString::with_bytes( - public_key, - )))), - }; - let octec_string: OctetStringAsn1Container = ec_key.into(); - - let private_key_value = PrivateKeyValue::EC(octec_string); - - let private_key_info = PrivateKeyInfo { - version: 0, - private_key_algorithm: picky_asn1_x509::AlgorithmIdentifier::new_ed25519(), - private_key: private_key_value, - }; - - let pkcs8_der = picky_asn1_der::to_vec(&private_key_info).unwrap(); - let now = SystemTime::now(); let unix_timestamp = now .duration_since(UNIX_EPOCH) @@ -93,16 +43,11 @@ async fn generate_jwt( iat: unix_timestamp, }; - debug!("payload: {:?}", payload); - - let header = Header::new(Algorithm::EdDSA); - debug!("header: {:?}", header); let token = encode( - &header, + &Header::default(), &payload, - &EncodingKey::from_ed_der(pkcs8_der.as_slice()), + &EncodingKey::from_secret(secret_key.as_slice()), )?; - debug!("Token: {:?}", token); Ok(token) } @@ -119,29 +64,10 @@ async fn verify_jwt(token: String) -> Result { .get_secret_key(&name) .ok_or(anyhow!("main key not found. call createMainKey() first"))?; - let public_key = wallet_ref - .get_public_key(&name) - .ok_or(anyhow!("main key not found. call createMainKey() first"))?; - - // let encoded = to_der(&ASN1Block::Sequence( - // 0, - // vec![ - // ASN1Block::OctetString(0, secret_key), - // ASN1Block::OctetString(0, public_key), - // ], - // )) - // .unwrap(); - - // let private_key_info = PrivateKeyInfo::new( - // picky_asn1_x509::AlgorithmIdentifier::new_ed25519(), - // &private_key, - // Some(public_key), - // ); - let result = jsonwebtoken::decode::( &token, - &DecodingKey::from_ed_der(public_key.as_slice()), - &jsonwebtoken::Validation::new(Algorithm::EdDSA), + &DecodingKey::from_secret(secret_key.as_slice()), + &jsonwebtoken::Validation::new(Algorithm::HS256), )?; Ok(result.claims) From aa6b087e5f4cd7966b3ab2f6ee69bb2b424fcc84 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 22 May 2023 21:44:27 +0100 Subject: [PATCH 303/722] cleanup --- executor/lib/deno.js | 2 +- rust-executor/example.js | 23 ----------------------- rust-executor/src/js_core/main.js | 11 ----------- 3 files changed, 1 insertion(+), 35 deletions(-) delete mode 100644 rust-executor/example.js diff --git a/executor/lib/deno.js b/executor/lib/deno.js index cca4ec787..7c5e09926 100644 --- a/executor/lib/deno.js +++ b/executor/lib/deno.js @@ -15,7 +15,7 @@ globalThis.__filename = __filename; import { init as internalInit } from "./main.js" import * as internalPath from "../deno_std-0.177.0/node/path.ts"; import * as internalOs from "../deno_std-0.177.0/node/os.ts" -console.log("Hello from deno.js") + export const init = internalInit export const path = internalPath export const os = internalOs diff --git a/rust-executor/example.js b/rust-executor/example.js deleted file mode 100644 index 2bd317801..000000000 --- a/rust-executor/example.js +++ /dev/null @@ -1,23 +0,0 @@ -console.log("Hello rust executor! JS!!!"); -console.error("Fehler") - - -const path = "./log.txt"; -try { - const contents = await runjs.readFile(path); - console.log("Read from a file", contents); -} catch (err) { - console.error("Unable to read file", path, err); -} - -try{ - await runjs.writeFile(path, "I can write to a file."); -} catch(e) { - console.error("Couldn't write file:", e) -} - -const contents = await runjs.readFile(path); -console.log("Read from a file", path, "contents:", contents); -console.log("Removing file", path); -runjs.removeFile(path); -console.log("File removed"); diff --git a/rust-executor/src/js_core/main.js b/rust-executor/src/js_core/main.js index ce465fb78..dbce3bb08 100644 --- a/rust-executor/src/js_core/main.js +++ b/rust-executor/src/js_core/main.js @@ -59,8 +59,6 @@ Error.captureStackTrace = function (err, constructorOpt) { import { init, path, os } from 'https://ad4m.runtime/executor' -console.log("Hello from main") - const appDataPath = path.join(os.homedir(), 'ad4m', 'tests', 'ad4m1'); const binaryPath = path.join(appDataPath, 'binary'); const swiplHomePath = (process.platform == "win32" ? path.join(appDataPath, 'swipl/') : path.join(appDataPath, 'swipl/lib/swipl/')) @@ -82,12 +80,6 @@ const bootstrapFixtures = { const connectHolochain = false; const reqCredential = undefined; -//if (!fs.existsSync(appDataPath)) { -// fs.mkdirSync(appDataPath); -//} -//const bLanguage = bootstrapLanguage ? await import(path.isAbsolute(bootstrapLanguage) ? bootstrapLanguage: path.join(__dirname, bootstrapLanguage)) : []; -//const bPerspective = bootstrapPerspective ? await import(path.isAbsolute(bootstrapPerspective) ? bootstrapPerspective: path.join(__dirname, bootstrapPerspective)) : []; - async function initCore(config) { const core = await init(config) globalThis.core = core @@ -95,9 +87,6 @@ async function initCore(config) { } globalThis.initCore = initCore -//await initCore() - -console.log("main done") const n = 5 globalThis.n = n From 0c3a24be86c78a327338df241ac54695212e6329 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 22 May 2023 21:44:45 +0100 Subject: [PATCH 304/722] hook up graphql request parsing with incoming auth headers --- Cargo.lock | 96 +--- .../src/core/graphQL-interface/GraphQL.ts | 3 + rust-executor/src/graphql/graphql_types.rs | 8 + rust-executor/src/graphql/mod.rs | 33 +- .../src/graphql/mutation_resolvers.rs | 416 +++++++++++------- rust-executor/src/graphql/query_resolvers.rs | 252 +++++++---- .../src/graphql/subscription_resolvers.rs | 135 ++++-- rust-executor/src/graphql/utils.rs | 24 + 8 files changed, 594 insertions(+), 373 deletions(-) create mode 100644 rust-executor/src/graphql/utils.rs diff --git a/Cargo.lock b/Cargo.lock index 43ee3b856..23d4e0c56 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2320,7 +2320,7 @@ dependencies = [ "base64 0.13.1", "deno_core", "hex", - "num-bigint 0.4.3", + "num-bigint", "rusqlite", "serde", ] @@ -2368,7 +2368,7 @@ dependencies = [ "libz-sys", "md-5", "md4", - "num-bigint 0.4.3", + "num-bigint", "num-integer", "num-traits", "once_cell", @@ -2813,7 +2813,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "008b6061551bcf644454469e6506c32bb23b765df93d608bf7a8e2494f82fcb3" dependencies = [ "bumpalo", - "num-bigint 0.4.3", + "num-bigint", "rustc-hash", "swc_atoms", "swc_common", @@ -5390,7 +5390,7 @@ dependencies = [ "ring", "serde", "serde_json", - "simple_asn1 0.6.2", + "simple_asn1", ] [[package]] @@ -6882,7 +6882,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" dependencies = [ - "num-bigint 0.4.3", + "num-bigint", "num-complex", "num-integer", "num-iter", @@ -6890,17 +6890,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-bigint" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" -dependencies = [ - "autocfg 1.1.0", - "num-integer", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.4.3" @@ -6978,7 +6967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg 1.1.0", - "num-bigint 0.4.3", + "num-bigint", "num-integer", "num-traits", ] @@ -7107,15 +7096,6 @@ dependencies = [ "tracing-subscriber 0.2.25", ] -[[package]] -name = "oid" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c19903c598813dba001b53beeae59bb77ad4892c5c1b9b3500ce4293a0d06c2" -dependencies = [ - "serde", -] - [[package]] name = "once_cell" version = "1.17.1" @@ -7703,41 +7683,6 @@ dependencies = [ "siphasher", ] -[[package]] -name = "picky-asn1" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f338f1fd4f3e13e75e986ca29f2a3c62528d88d3cbadf4afdcefb6b087f2d32" -dependencies = [ - "oid", - "serde", - "serde_bytes", -] - -[[package]] -name = "picky-asn1-der" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e47267a46f4ea246b772381970b8ed3f15963dd3e15ffc2c3f4ac3bc2d77384b" -dependencies = [ - "picky-asn1", - "serde", - "serde_bytes", -] - -[[package]] -name = "picky-asn1-x509" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb51541f90aa99f2fa7191c8daebc224d500cd5963c6ca3e6cede9645a1b2e1" -dependencies = [ - "base64 0.13.1", - "oid", - "picky-asn1", - "picky-asn1-der", - "serde", -] - [[package]] name = "pin-project" version = "0.4.30" @@ -8894,15 +8839,11 @@ dependencies = [ "multihash", "once_cell", "os_info 3.7.0", - "picky-asn1", - "picky-asn1-der", - "picky-asn1-x509", "rand 0.8.5", "secp256k1", "semver 1.0.17", "serde", "serde_json", - "simple_asn1 0.4.1", "tokio", "tokio-stream", "url 2.3.1", @@ -9348,7 +9289,7 @@ checksum = "916ca7852a4c5f0ba59ce4a46301bf7c7ad573c2c89a0fe67e90fe30dcbd6f7d" dependencies = [ "bytes", "derive_more", - "num-bigint 0.4.3", + "num-bigint", "serde", "serde_bytes", "smallvec 1.10.0", @@ -9593,24 +9534,13 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" -[[package]] -name = "simple_asn1" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692ca13de57ce0613a363c8c2f1de925adebc81b04c923ac60c5488bb44abe4b" -dependencies = [ - "chrono", - "num-bigint 0.2.6", - "num-traits", -] - [[package]] name = "simple_asn1" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ - "num-bigint 0.4.3", + "num-bigint", "num-traits", "thiserror", "time 0.3.17", @@ -10041,7 +9971,7 @@ dependencies = [ "either", "from_variant", "new_debug_unreachable", - "num-bigint 0.4.3", + "num-bigint", "once_cell", "rustc-hash", "serde", @@ -10089,7 +10019,7 @@ checksum = "7dbfdbe05dde274473a6030dcf5e52e579516aea761d25d7a8d128f2ab597f09" dependencies = [ "bitflags", "is-macro", - "num-bigint 0.4.3", + "num-bigint", "scoped-tls", "serde", "string_enum", @@ -10105,7 +10035,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78d196e6979af0cbb91084361ca006db292a6374f75ec04cbb55306051cc4f50" dependencies = [ "memchr", - "num-bigint 0.4.3", + "num-bigint", "once_cell", "rustc-hash", "serde", @@ -10153,7 +10083,7 @@ dependencies = [ "either", "enum_kind", "lexical", - "num-bigint 0.4.3", + "num-bigint", "serde", "smallvec 1.10.0", "smartstring", @@ -10299,7 +10229,7 @@ version = "0.86.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147cf9137da6fe2704a5defd29a1cde849961978f8c92911e6790d50df475fef" dependencies = [ - "num-bigint 0.4.3", + "num-bigint", "swc_atoms", "swc_common", "swc_ecma_ast", diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index a1a039dbc..b3148b0a9 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -36,6 +36,9 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return { Query: { + getCapabilities: async (token: string) => { + return await core.agentService.getCapabilities(token); + }, //@ts-ignore agent: (context) => { checkCapability(context.capabilities, Auth.AGENT_READ_CAPABILITY) diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index 402c2acd2..6e105229a 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -1,6 +1,14 @@ use juniper::{FieldError, FieldResult, GraphQLInputObject, GraphQLObject, GraphQLScalar}; use serde::{de::DeserializeOwned, Deserialize, Serialize}; +use crate::js_core::JsCoreHandle; + +#[derive(Clone)] +pub struct RequestContext { + pub capability: String, + pub js_handle: JsCoreHandle, +} + #[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct Agent { diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index b30ce1587..9fd9d67b2 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -2,29 +2,27 @@ pub mod graphql_types; mod mutation_resolvers; mod query_resolvers; mod subscription_resolvers; +mod utils; +use graphql_types::RequestContext; use mutation_resolvers::*; use query_resolvers::*; use subscription_resolvers::*; use crate::js_core::JsCoreHandle; -use std::io::Write; +use std::collections::HashMap; use std::sync::Arc; +use std::{convert::Infallible, io::Write}; use deno_core::error::AnyError; use futures::FutureExt as _; -use juniper::RootNode; +use juniper::{InputValue, RootNode}; use juniper_graphql_transport_ws::ConnectionConfig; use juniper_warp::{playground_filter, subscriptions::serve_graphql_transport_ws}; use warp::{http::Response, Filter}; -#[derive(Clone)] -struct Context; - -impl juniper::Context for Context {} - -impl juniper::Context for JsCoreHandle {} +impl juniper::Context for RequestContext {} type Schema = RootNode<'static, Query, Mutation, Subscription>; @@ -47,7 +45,12 @@ pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), let qm_schema = schema(); let js_core_handle_cloned1 = js_core_handle.clone(); - let qm_state = warp::any().map(move || js_core_handle_cloned1.clone()); + let qm_state = warp::any() + .and(warp::header::("authorization")) + .map(move |header| RequestContext { + capability: header, + js_handle: js_core_handle_cloned1.clone(), + }); let qm_graphql_filter = juniper_warp::make_graphql_filter(qm_schema, qm_state.boxed()); let root_node = Arc::new(schema()); @@ -61,7 +64,17 @@ pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), serve_graphql_transport_ws( websocket, root_node, - ConnectionConfig::new(js_core_handle), + |val: HashMap| async move { + let auth_header = val + .get("authorization") + .map(|v| v.as_string_value().unwrap_or("").to_string()); + let context = RequestContext { + capability: auth_header.unwrap_or(String::from("")), + js_handle: js_core_handle.clone(), + }; + Ok(ConnectionConfig::new(context)) + as Result, Infallible> + }, ) .map(|r| { if let Err(e) = r { diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index b664d4d0d..580121e85 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -3,27 +3,27 @@ use juniper::{graphql_object, FieldResult}; use log::debug; -use crate::js_core::JsCoreHandle; - use super::graphql_types::*; +use super::utils::get_capabilies; +use super::RequestContext; pub struct Mutation; -const ALL_CAPABILITY: &str = r#"{with: {domain: "*", pointers: ["*"]},can: ["*"]}"#; - -#[graphql_object(context = JsCoreHandle)] +#[graphql_object(context = RequestContext)] impl Mutation { async fn add_trusted_agents( &self, - context: &JsCoreHandle, + context: &RequestContext, agents: Vec, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "addTrustedAgents", {{ agents: {:?} }}, {{ capabilities: [{}] }}) )"#, - agents, ALL_CAPABILITY + agents, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -32,16 +32,18 @@ impl Mutation { async fn agent_add_entanglement_proofs( &self, - context: &JsCoreHandle, + context: &RequestContext, proofs: Vec, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentAddEntanglementProofs", {{ proofs: {} }}, {{ capabilities: [{}] }}) )"#, serde_json::to_string(&proofs).unwrap(), - ALL_CAPABILITY + context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -50,16 +52,18 @@ impl Mutation { async fn agent_delete_entanglement_proofs( &self, - context: &JsCoreHandle, + context: &RequestContext, proofs: Vec, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentDeleteEntanglementProofs", {{ proofs: {} }}, {{ capabilities: [{}] }}) )"#, serde_json::to_string(&proofs).unwrap(), - ALL_CAPABILITY + context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -68,16 +72,18 @@ impl Mutation { async fn agent_entanglement_proof_pre_flight( &self, - context: &JsCoreHandle, + context: &RequestContext, device_key: String, device_key_type: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentEntanglementProofPreFlight", {{ deviceKey: "{}", deviceKeyType: "{}" }}, {{ capabilities: [{}] }}) )"#, - device_key, device_key_type, ALL_CAPABILITY + device_key, device_key_type, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -86,15 +92,17 @@ impl Mutation { async fn agent_generate( &self, - context: &JsCoreHandle, + context: &RequestContext, passphrase: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentGenerate", {{ passphrase: "{}" }}, {{ capabilities: [{}] }}) )"#, - passphrase, ALL_CAPABILITY + passphrase, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -103,16 +111,18 @@ impl Mutation { async fn agent_generate_jwt( &self, - context: &JsCoreHandle, + context: &RequestContext, rand: String, request_id: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentGenerateJwt", {{ rand: "{}", requestId: "{}" }}, {{ capabilities: [{}] }}) )"#, - rand, request_id, ALL_CAPABILITY + rand, request_id, context.capability ); debug!("agent_generate_jwt script: {}", script); let result = js.execute(script).await?; @@ -123,15 +133,17 @@ impl Mutation { async fn agent_lock( &self, - context: &JsCoreHandle, + context: &RequestContext, passphrase: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentLock", {{ passphrase: "{}" }}, {{ capabilities: [{}] }}) )"#, - passphrase, ALL_CAPABILITY + passphrase, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -141,15 +153,17 @@ impl Mutation { //NOTE: all the functions from here on out have not been tested by calling the cli <-> rust graphql server async fn agent_permit_capability( &self, - context: &JsCoreHandle, + context: &RequestContext, auth: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentPermitCapability", {{ auth: JSON.stringify({}) }}, {{ capabilities: [{}] }}) )"#, - auth, ALL_CAPABILITY + auth, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -158,15 +172,17 @@ impl Mutation { async fn agent_remove_app( &self, - context: &JsCoreHandle, + context: &RequestContext, request_id: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentRemoveApp", {{ requestId: "{}" }}, {{ capabilities: [{}] }}) )"#, - request_id, ALL_CAPABILITY + request_id, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -175,16 +191,18 @@ impl Mutation { async fn agent_request_capability( &self, - context: &JsCoreHandle, + context: &RequestContext, auth_info: AuthInfoInput, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let auth_info_json = serde_json::to_string(&auth_info)?; let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentRequestCapability", {{ authInfo: {} }}, {{ capabilities: [{}] }}) )"#, - auth_info_json, ALL_CAPABILITY + auth_info_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -193,15 +211,17 @@ impl Mutation { async fn agent_revoke_token( &self, - context: &JsCoreHandle, + context: &RequestContext, request_id: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentRevokeToken", {{ requestId: "{}" }}, {{ capabilities: [{}] }}) )"#, - request_id, ALL_CAPABILITY + request_id, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -210,15 +230,17 @@ impl Mutation { async fn agent_sign_message( &self, - context: &JsCoreHandle, + context: &RequestContext, message: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentSignMessage", {{ message: "{}" }}, {{ capabilities: [{}] }}) )"#, - message, ALL_CAPABILITY + message, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -227,15 +249,17 @@ impl Mutation { async fn agent_unlock( &self, - context: &JsCoreHandle, + context: &RequestContext, passphrase: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentUnlock", {{ passphrase: "{}" }}, {{ capabilities: [{}] }}) )"#, - passphrase, ALL_CAPABILITY + passphrase, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -244,15 +268,17 @@ impl Mutation { async fn agent_update_direct_message_language( &self, - context: &JsCoreHandle, + context: &RequestContext, direct_message_language: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentUpdateDirectMessageLanguage", {{ directMessageLanguage: "{}" }}, {{ capabilities: [{}] }}) )"#, - direct_message_language, ALL_CAPABILITY + direct_message_language, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -261,16 +287,18 @@ impl Mutation { async fn agent_update_public_perspective( &self, - context: &JsCoreHandle, + context: &RequestContext, perspective: PerspectiveInput, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let perspective_json = serde_json::to_string(&perspective)?; let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "agentUpdatePublicPerspective", {{ perspective: {} }}, {{ capabilities: [{}] }}) )"#, - perspective_json, ALL_CAPABILITY + perspective_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -279,16 +307,18 @@ impl Mutation { async fn delete_trusted_agents( &self, - context: &JsCoreHandle, + context: &RequestContext, agents: Vec, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let agents_json = serde_json::to_string(&agents)?; let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "deleteTrustedAgents", {{ agents: {} }}, {{ capabilities: [{}] }}) )"#, - agents_json, ALL_CAPABILITY + agents_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -297,16 +327,18 @@ impl Mutation { async fn expression_create( &self, - context: &JsCoreHandle, + context: &RequestContext, content: String, language_address: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver("Mutation", "expressionCreate", {{ content: {}, languageAddress: "{}" }}, {{ capabilities: [{}] }}) )"#, - content, language_address, ALL_CAPABILITY + content, language_address, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -315,11 +347,13 @@ impl Mutation { async fn expression_interact( &self, - context: &JsCoreHandle, + context: &RequestContext, interaction_call: InteractionCall, url: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let interaction_call_json = serde_json::to_string(&interaction_call)?; let script = format!( r#"JSON.stringify( @@ -329,7 +363,7 @@ impl Mutation { {{ interactionCall: {}, url: "{}" }}, {{ capabilities: [{}] }} ))"#, - interaction_call_json, url, ALL_CAPABILITY + interaction_call_json, url, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -338,11 +372,13 @@ impl Mutation { async fn language_apply_template_and_publish( &self, - context: &JsCoreHandle, + context: &RequestContext, source_language_hash: String, template_data: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -351,7 +387,7 @@ impl Mutation { {{ sourceLanguageHash: "{}", templateData: JSON.stringify({}) }}, {{ capabilities: [{}] }} ))"#, - source_language_hash, template_data, ALL_CAPABILITY + source_language_hash, template_data, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -360,11 +396,13 @@ impl Mutation { async fn language_publish( &self, - context: &JsCoreHandle, + context: &RequestContext, language_meta: LanguageMetaInput, language_path: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let language_meta_json = serde_json::to_string(&language_meta)?; let script = format!( r#"JSON.stringify( @@ -374,15 +412,21 @@ impl Mutation { {{ languageMeta: {}, languagePath: "{}" }}, {{ capabilities: [{}] }} ))"#, - language_meta_json, language_path, ALL_CAPABILITY + language_meta_json, language_path, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() } - async fn language_remove(&self, context: &JsCoreHandle, address: String) -> FieldResult { - let mut js = context.clone(); + async fn language_remove( + &self, + context: &RequestContext, + address: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -391,7 +435,7 @@ impl Mutation { {{ address: "{}" }}, {{ capabilities: [{}] }} ))"#, - address, ALL_CAPABILITY + address, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -400,11 +444,13 @@ impl Mutation { async fn language_write_settings( &self, - context: &JsCoreHandle, + context: &RequestContext, language_address: String, settings: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -413,7 +459,7 @@ impl Mutation { {{ languageAddress: "{}", settings: "{}" }}, {{ capabilities: [{}] }} ))"#, - language_address, settings, ALL_CAPABILITY + language_address, settings, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -422,10 +468,12 @@ impl Mutation { async fn neighbourhood_join_from_url( &self, - context: &JsCoreHandle, + context: &RequestContext, url: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -434,7 +482,7 @@ impl Mutation { {{ url: "{}" }}, {{ capabilities: [{}] }} ))"#, - url, ALL_CAPABILITY + url, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -443,12 +491,14 @@ impl Mutation { async fn neighbourhood_publish_from_perspective( &self, - context: &JsCoreHandle, + context: &RequestContext, link_language: String, meta: PerspectiveInput, perspectiveUUID: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let meta_json = serde_json::to_string(&meta)?; let script = format!( r#"JSON.stringify( @@ -458,7 +508,7 @@ impl Mutation { {{ linkLanguage: "{}", meta: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} ))"#, - link_language, meta_json, perspectiveUUID, ALL_CAPABILITY + link_language, meta_json, perspectiveUUID, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -467,11 +517,13 @@ impl Mutation { async fn neighbourhood_send_broadcast( &self, - context: &JsCoreHandle, + context: &RequestContext, payload: PerspectiveInput, perspectiveUUID: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( @@ -481,7 +533,7 @@ impl Mutation { {{ payload: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} ))"#, - payload_json, perspectiveUUID, ALL_CAPABILITY + payload_json, perspectiveUUID, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -490,11 +542,13 @@ impl Mutation { async fn neighbourhood_send_broadcast_u( &self, - context: &JsCoreHandle, + context: &RequestContext, payload: PerspectiveUnsignedInput, perspectiveUUID: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( @@ -504,7 +558,7 @@ impl Mutation { {{ payload: {}, perspectiveUUID: "{}" }}, {{ capabilities: [{}] }} ))"#, - payload_json, perspectiveUUID, ALL_CAPABILITY + payload_json, perspectiveUUID, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -513,12 +567,14 @@ impl Mutation { async fn neighbourhood_send_signal( &self, - context: &JsCoreHandle, + context: &RequestContext, payload: PerspectiveInput, perspectiveUUID: String, remote_agent_did: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( @@ -528,7 +584,7 @@ impl Mutation { {{ payload: {}, perspectiveUUID: "{}", remoteAgentDid: "{}" }}, {{ capabilities: [{}] }} ))"#, - payload_json, perspectiveUUID, remote_agent_did, ALL_CAPABILITY + payload_json, perspectiveUUID, remote_agent_did, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -537,12 +593,14 @@ impl Mutation { async fn neighbourhood_send_signal_u( &self, - context: &JsCoreHandle, + context: &RequestContext, payload: PerspectiveUnsignedInput, perspectiveUUID: String, remote_agent_did: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let payload_json = serde_json::to_string(&payload)?; let script = format!( r#"JSON.stringify( @@ -552,7 +610,7 @@ impl Mutation { {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, {{ capabilities: [{}] }} ))"#, - payload_json, perspectiveUUID, remote_agent_did, ALL_CAPABILITY + payload_json, perspectiveUUID, remote_agent_did, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -561,11 +619,13 @@ impl Mutation { async fn neighbourhood_set_online_status( &self, - context: &JsCoreHandle, + context: &RequestContext, perspectiveUUID: String, status: PerspectiveInput, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let status_json = serde_json::to_string(&status)?; let script = format!( r#"JSON.stringify( @@ -575,7 +635,7 @@ impl Mutation { {{ perspectiveUUID: "{}", status: {} }}, {{ capabilities: [{}] }} ))"#, - perspectiveUUID, status_json, ALL_CAPABILITY + perspectiveUUID, status_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -584,11 +644,13 @@ impl Mutation { async fn neighbourhood_set_online_status_u( &self, - context: &JsCoreHandle, + context: &RequestContext, perspectiveUUID: String, status: PerspectiveUnsignedInput, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let status_json = serde_json::to_string(&status)?; let script = format!( r#"JSON.stringify( @@ -598,7 +660,7 @@ impl Mutation { {{ perspectiveUUID: "{}", status: {} }}, {{ capabilities: [{}] }} ))"#, - perspectiveUUID, status_json, ALL_CAPABILITY + perspectiveUUID, status_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -607,10 +669,12 @@ impl Mutation { async fn perspective_add( &self, - context: &JsCoreHandle, + context: &RequestContext, name: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -619,7 +683,7 @@ impl Mutation { {{ name: "{}" }}, {{ capabilities: [{}] }} ))"#, - name, ALL_CAPABILITY + name, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -628,11 +692,13 @@ impl Mutation { async fn perspective_add_link( &self, - context: &JsCoreHandle, + context: &RequestContext, link: LinkInput, uuid: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let link_json = serde_json::to_string(&link)?; let script = format!( r#"JSON.stringify( @@ -642,7 +708,7 @@ impl Mutation { {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - link_json, uuid, ALL_CAPABILITY + link_json, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -651,11 +717,13 @@ impl Mutation { async fn perspective_add_link_expression( &self, - context: &JsCoreHandle, + context: &RequestContext, link: LinkExpressionInput, uuid: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let link_json = serde_json::to_string(&link)?; let script = format!( r#"JSON.stringify( @@ -665,7 +733,7 @@ impl Mutation { {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - link_json, uuid, ALL_CAPABILITY + link_json, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -674,11 +742,13 @@ impl Mutation { async fn perspective_add_links( &self, - context: &JsCoreHandle, + context: &RequestContext, links: Vec, uuid: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let links_json = serde_json::to_string(&links)?; let script = format!( r#"JSON.stringify( @@ -688,7 +758,7 @@ impl Mutation { {{ links: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - links_json, uuid, ALL_CAPABILITY + links_json, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -697,11 +767,13 @@ impl Mutation { async fn perspective_link_mutations( &self, - context: &JsCoreHandle, + context: &RequestContext, mutations: LinkMutations, uuid: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let mutations_json = serde_json::to_string(&mutations)?; let script = format!( r#"JSON.stringify( @@ -711,7 +783,7 @@ impl Mutation { {{ mutations: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - mutations_json, uuid, ALL_CAPABILITY + mutations_json, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -720,10 +792,12 @@ impl Mutation { async fn perspective_publish_snapshot( &self, - context: &JsCoreHandle, + context: &RequestContext, uuid: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -732,15 +806,21 @@ impl Mutation { {{ uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - uuid, ALL_CAPABILITY + uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() } - async fn perspective_remove(&self, context: &JsCoreHandle, uuid: String) -> FieldResult { - let mut js = context.clone(); + async fn perspective_remove( + &self, + context: &RequestContext, + uuid: String, + ) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -749,7 +829,7 @@ impl Mutation { {{ uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - uuid, ALL_CAPABILITY + uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -758,11 +838,13 @@ impl Mutation { async fn perspective_remove_link( &self, - context: &JsCoreHandle, + context: &RequestContext, link: LinkExpressionInput, uuid: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let link_json = serde_json::to_string(&link)?; let script = format!( r#"JSON.stringify( @@ -772,7 +854,7 @@ impl Mutation { {{ link: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - link_json, uuid, ALL_CAPABILITY + link_json, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -781,11 +863,13 @@ impl Mutation { async fn perspective_remove_links( &self, - context: &JsCoreHandle, + context: &RequestContext, links: Vec, uuid: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let links_json = serde_json::to_string(&links)?; let script = format!( r#"JSON.stringify( @@ -795,7 +879,7 @@ impl Mutation { {{ links: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - links_json, uuid, ALL_CAPABILITY + links_json, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -804,11 +888,13 @@ impl Mutation { async fn perspective_update( &self, - context: &JsCoreHandle, + context: &RequestContext, name: String, uuid: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -817,7 +903,7 @@ impl Mutation { {{ name: "{}", uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - name, uuid, ALL_CAPABILITY + name, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -826,12 +912,14 @@ impl Mutation { async fn perspective_update_link( &self, - context: &JsCoreHandle, + context: &RequestContext, new_link: LinkInput, old_link: LinkExpressionInput, uuid: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let new_link_json = serde_json::to_string(&new_link)?; let old_link_json = serde_json::to_string(&old_link)?; let script = format!( @@ -842,7 +930,7 @@ impl Mutation { {{ newLink: {}, oldLink: {}, uuid: "{}" }}, {{ capabilities: [{}] }} ))"#, - new_link_json, old_link_json, uuid, ALL_CAPABILITY + new_link_json, old_link_json, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -851,10 +939,12 @@ impl Mutation { async fn runtime_add_friends( &self, - context: &JsCoreHandle, + context: &RequestContext, dids: Vec, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let dids_json = serde_json::to_string(&dids)?; let script = format!( r#"JSON.stringify( @@ -864,7 +954,7 @@ impl Mutation { {{ dids: {} }}, {{ capabilities: [{}] }} ))"#, - dids_json, ALL_CAPABILITY + dids_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -873,10 +963,12 @@ impl Mutation { async fn runtime_add_known_link_language_templates( &self, - context: &JsCoreHandle, + context: &RequestContext, addresses: Vec, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let addresses_json = serde_json::to_string(&addresses)?; let script = format!( r#"JSON.stringify( @@ -886,7 +978,7 @@ impl Mutation { {{ addresses: {} }}, {{ capabilities: [{}] }} ))"#, - addresses_json, ALL_CAPABILITY + addresses_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -895,11 +987,13 @@ impl Mutation { async fn runtime_friend_send_message( &self, - context: &JsCoreHandle, + context: &RequestContext, did: String, message: PerspectiveInput, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let message_json = serde_json::to_string(&message)?; let script = format!( r#"JSON.stringify( @@ -909,7 +1003,7 @@ impl Mutation { {{ did: "{}", message: {} }}, {{ capabilities: [{}] }} ))"#, - did, message_json, ALL_CAPABILITY + did, message_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -918,10 +1012,12 @@ impl Mutation { async fn runtime_hc_add_agent_infos( &self, - context: &JsCoreHandle, + context: &RequestContext, agent_infos: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -930,15 +1026,17 @@ impl Mutation { {{ agentInfos: JSON.stringify({}) }}, {{ capabilities: [{}] }} ))"#, - agent_infos, ALL_CAPABILITY + agent_infos, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() } - async fn runtime_open_link(&self, context: &JsCoreHandle, url: String) -> FieldResult { - let mut js = context.clone(); + async fn runtime_open_link(&self, context: &RequestContext, url: String) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -947,15 +1045,17 @@ impl Mutation { {{ url: "{}" }}, {{ capabilities: [{}] }} ))"#, - url, ALL_CAPABILITY + url, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() } - async fn runtime_quit(&self, context: &JsCoreHandle) -> FieldResult { - let mut js = context.clone(); + async fn runtime_quit(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( await core.callResolver( @@ -963,7 +1063,7 @@ impl Mutation { "runtimeQuit", {{ capabilities: [{}] }} ))"#, - ALL_CAPABILITY + context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -972,10 +1072,12 @@ impl Mutation { async fn runtime_remove_friends( &self, - context: &JsCoreHandle, + context: &RequestContext, dids: Vec, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let dids_json = serde_json::to_string(&dids)?; let script = format!( r#"JSON.stringify( @@ -985,7 +1087,7 @@ impl Mutation { {{ dids: {} }}, {{ capabilities: [{}] }} ))"#, - dids_json, ALL_CAPABILITY + dids_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -994,10 +1096,12 @@ impl Mutation { async fn runtime_remove_known_link_language_templates( &self, - context: &JsCoreHandle, + context: &RequestContext, addresses: Vec, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let addresses_json = serde_json::to_string(&addresses)?; let script = format!( r#"JSON.stringify( @@ -1007,7 +1111,7 @@ impl Mutation { {{ addresses: {} }}, {{ capabilities: [{}] }} ))"#, - addresses_json, ALL_CAPABILITY + addresses_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -1016,10 +1120,12 @@ impl Mutation { async fn runtime_set_status( &self, - context: &JsCoreHandle, + context: &RequestContext, status: PerspectiveInput, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let status_json = serde_json::to_string(&status)?; let script = format!( r#"JSON.stringify( @@ -1029,7 +1135,7 @@ impl Mutation { {{ status: {} }}, {{ capabilities: [{}] }} ))"#, - status_json, ALL_CAPABILITY + status_json, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index e93914aca..7c053a3f4 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -2,22 +2,22 @@ #![allow(unused_variables)] use juniper::{graphql_object, FieldResult}; -use crate::js_core::JsCoreHandle; - use super::graphql_types::*; +use super::utils::get_capabilies; +use super::RequestContext; pub struct Query; -const ALL_CAPABILITY: &str = r#"{with: {domain: "*", pointers: ["*"]},can: ["*"]}"#; - -#[graphql_object(context = JsCoreHandle)] +#[graphql_object(context = RequestContext)] impl Query { - async fn agent(&self, context: &JsCoreHandle) -> FieldResult { - let mut js = context.clone(); + async fn agent(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "agent", null, {{ capabilities: [{}] }}))"#, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -27,10 +27,12 @@ impl Query { #[graphql(name = "agentByDID")] async fn agent_by_did( &self, - context: &JsCoreHandle, + context: &RequestContext, did: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute( format!( @@ -40,7 +42,7 @@ impl Query { {{ capabilities: [{}] }} ) )"#, - did, ALL_CAPABILITY + did, context.capability ) .into(), ) @@ -49,12 +51,14 @@ impl Query { result.get_graphql_result() } - async fn agent_get_apps(&self, context: &JsCoreHandle) -> FieldResult> { - let mut js = context.clone(); + async fn agent_get_apps(&self, context: &RequestContext) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "agentGetApps", null, {{ capabilities: [{}] }}))"#, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -63,9 +67,11 @@ impl Query { async fn agent_get_entanglement_proofs( &self, - context: &JsCoreHandle, + context: &RequestContext, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "agentGetEntanglementProofs", null, null))"# @@ -75,8 +81,10 @@ impl Query { result.get_graphql_result() } - async fn agent_is_locked(&self, context: &JsCoreHandle) -> FieldResult { - let mut js = context.clone(); + async fn agent_is_locked(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "agentIsLocked", null, null))"# @@ -86,12 +94,14 @@ impl Query { result.get_graphql_result() } - async fn agent_status(&self, context: &JsCoreHandle) -> FieldResult { - let mut js = context.clone(); + async fn agent_status(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "agentStatus", null, {{ capabilities: [{}] }}))"#, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -100,15 +110,17 @@ impl Query { async fn expression( &self, - context: &JsCoreHandle, + context: &RequestContext, url: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "expression", {{ url: "{}" }}, {{ capabilities: [{}] }}))"#, url, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -117,15 +129,17 @@ impl Query { async fn expression_interactions( &self, - context: &JsCoreHandle, + context: &RequestContext, url: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "expressionInteractions", {{ url: "{}" }}, {{ capabilities: [{}] }}))"#, url, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -134,7 +148,7 @@ impl Query { async fn expression_many( &self, - context: &JsCoreHandle, + context: &RequestContext, urls: Vec, ) -> FieldResult>> { let urls_string = urls @@ -142,12 +156,14 @@ impl Query { .map(|url| format!("\"{}\"", url)) .collect::>() .join(","); - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "expressionMany", {{ urls: [{}] }}, {{ capabilities: [{}] }}))"#, urls_string, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType>> = serde_json::from_str(&result)?; @@ -156,27 +172,31 @@ impl Query { async fn expression_raw( &self, - context: &JsCoreHandle, + context: &RequestContext, url: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "expressionRaw", {{ url: "{}" }}, {{ capabilities: [{}] }}))"#, url, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() } - async fn get_trusted_agents(&self, context: &JsCoreHandle) -> FieldResult> { - let mut js = context.clone(); + async fn get_trusted_agents(&self, context: &RequestContext) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "getTrustedAgents", {{ capabilities: [{}] }}))"#, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -185,15 +205,17 @@ impl Query { async fn language( &self, - context: &JsCoreHandle, + context: &RequestContext, address: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "language", {{ address: "{}" }}, {{ capabilities: [{}] }}))"#, address, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -202,15 +224,17 @@ impl Query { async fn language_meta( &self, - context: &JsCoreHandle, + context: &RequestContext, address: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "languageMeta", {{ address: "{}" }}, {{ capabilities: [{}] }}))"#, address, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -219,15 +243,17 @@ impl Query { async fn language_source( &self, - context: &JsCoreHandle, + context: &RequestContext, address: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "languageSource", {{ address: "{}" }}, {{ capabilities: [{}] }}))"#, address, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -236,16 +262,18 @@ impl Query { async fn languages( &self, - context: &JsCoreHandle, + context: &RequestContext, filter: Option, ) -> FieldResult> { let filter_string = filter.map_or("null".to_string(), |f| format!("\"{}\"", f)); - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "languages", {{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, filter_string, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -254,12 +282,14 @@ impl Query { async fn neighbourhood_has_telepresence_adapter( &self, - context: &JsCoreHandle, + context: &RequestContext, perspectiveUUID: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodHasTelepresenceAdapter", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodHasTelepresenceAdapter", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, context.capability)) .await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() @@ -267,12 +297,14 @@ impl Query { async fn neighbourhood_online_agents( &self, - context: &JsCoreHandle, + context: &RequestContext, perspectiveUUID: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOnlineAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOnlineAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, context.capability)) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() @@ -280,12 +312,14 @@ impl Query { async fn neighbourhood_other_agents( &self, - context: &JsCoreHandle, + context: &RequestContext, perspectiveUUID: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOtherAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOtherAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, context.capability)) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() @@ -293,15 +327,17 @@ impl Query { async fn perspective( &self, - context: &JsCoreHandle, + context: &RequestContext, uuid: String, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "perspective", {{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, uuid, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -310,15 +346,17 @@ impl Query { async fn perspective_query_links( &self, - context: &JsCoreHandle, + context: &RequestContext, query: LinkQuery, uuid: String, ) -> FieldResult> { let query_string = serde_json::to_string(&query)?; - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify(await core.callResolver("Query", "perspectiveQueryLinks", {{ query: {}, uuid: "{}" }}, {{ capabilities: [{}] }}))"#, - query_string, uuid, ALL_CAPABILITY + query_string, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -327,14 +365,16 @@ impl Query { async fn perspective_query_prolog( &self, - context: &JsCoreHandle, + context: &RequestContext, query: String, uuid: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let script = format!( r#"await core.callResolver("Query", "perspectiveQueryProlog", {{ query: '{}', uuid: "{}" }}, {{ capabilities: [{}] }})"#, - query, uuid, ALL_CAPABILITY + query, uuid, context.capability ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -343,27 +383,31 @@ impl Query { async fn perspective_snapshot( &self, - context: &JsCoreHandle, + context: &RequestContext, uuid: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "perspectiveSnapshot", {{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, uuid, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() } - async fn perspectives(&self, context: &JsCoreHandle) -> FieldResult> { - let mut js = context.clone(); + async fn perspectives(&self, context: &RequestContext) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "perspectives", null, {{ capabilities: [{}] }}))"#, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -372,47 +416,55 @@ impl Query { async fn runtime_friend_status( &self, - context: &JsCoreHandle, + context: &RequestContext, did: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "runtimeFriendStatus", {{ did: "{}" }}, {{ capabilities: [{}] }}))"#, did, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() } - async fn runtime_friends(&self, context: &JsCoreHandle) -> FieldResult> { - let mut js = context.clone(); + async fn runtime_friends(&self, context: &RequestContext) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify(await core.callResolver("Query", "runtimeFriends", null, {{ capabilities: [{}] }}))"#, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() } - async fn runtime_hc_agent_infos(&self, context: &JsCoreHandle) -> FieldResult { - let mut js = context.clone(); + async fn runtime_hc_agent_infos(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeHcAgentInfos", null, {{ capabilities: [{}] }}))"#, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeHcAgentInfos", null, {{ capabilities: [{}] }}))"#, context.capability)) .await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() } - async fn runtime_info(&self, context: &JsCoreHandle) -> FieldResult { - let mut js = context.clone(); + async fn runtime_info(&self, context: &RequestContext) -> FieldResult { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeInfo", null, {{ capabilities: [{}] }}))"#, - ALL_CAPABILITY + context.capability )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -421,11 +473,13 @@ impl Query { async fn runtime_known_link_language_templates( &self, - context: &JsCoreHandle, + context: &RequestContext, ) -> FieldResult> { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeKnownLinkLanguageTemplates", {{ capabilities: [{}] }}))"#, ALL_CAPABILITY)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeKnownLinkLanguageTemplates", {{ capabilities: [{}] }}))"#, context.capability)) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() @@ -433,17 +487,19 @@ impl Query { async fn runtime_message_inbox( &self, - context: &JsCoreHandle, + context: &RequestContext, filter: Option, ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let filter_str = filter .map(|val| format!(r#"{{ filter: "{}" }}"#, val)) .unwrap_or_else(|| String::from("{ filter: null }")); let script = format!( r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageInbox", {}, {{ capabilities: [{}] }}))"#, - filter_str, ALL_CAPABILITY + filter_str, context.capability ); - let mut js = context.clone(); + let mut js = context.js_handle.clone(); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() @@ -451,17 +507,19 @@ impl Query { async fn runtime_message_outbox( &self, - context: &JsCoreHandle, + context: &RequestContext, filter: Option, ) -> FieldResult> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let filter_str = filter .map(|val| format!(r#"{{ filter: "{}" }}"#, val)) .unwrap_or_else(|| String::from("{ filter: null }")); let script = format!( r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageOutbox", {}, {{ capabilities: [{}] }}))"#, - filter_str, ALL_CAPABILITY + filter_str, context.capability ); - let mut js = context.clone(); + let mut js = context.js_handle.clone(); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() @@ -469,13 +527,15 @@ impl Query { async fn runtime_verify_string_signed_by_did( &self, - context: &JsCoreHandle, + context: &RequestContext, data: String, did: String, did_signing_key_id: String, signed_data: String, ) -> FieldResult { - let mut js = context.clone(); + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; + let mut js = context.js_handle.clone(); let result = js .execute(format!( r#"JSON.stringify( @@ -484,7 +544,7 @@ impl Query { {{ capabilities: [{}] }} ) )"#, - data, did, did_signing_key_id, signed_data, ALL_CAPABILITY + data, did, did_signing_key_id, signed_data, context.capability )) .await?; let result: JsResultType = serde_json::from_str(&result)?; diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs index ab65bd201..6a6ce70cc 100644 --- a/rust-executor/src/graphql/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -1,36 +1,36 @@ #![allow(non_snake_case)] +use futures::stream; use futures::stream::Stream; use juniper::FieldResult; use std::pin::Pin; -use crate::{ - js_core::JsCoreHandle, - pubsub::{ - get_global_pubsub, subscribe_and_process, AGENT_STATUS_CHANGED_TOPIC, AGENT_UPDATED_TOPIC, - EXCEPTION_OCCURRED_TOPIC, NEIGHBOURHOOD_SIGNAL_TOPIC, PERSPECTIVE_ADDED_TOPIC, - PERSPECTIVE_LINK_ADDED_TOPIC, PERSPECTIVE_LINK_REMOVED_TOPIC, - PERSPECTIVE_LINK_UPDATED_TOPIC, PERSPECTIVE_REMOVED_TOPIC, - PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC, PERSPECTIVE_UPDATED_TOPIC, - RUNTIME_MESSAGED_RECEIVED_TOPIC, - }, +use crate::pubsub::{ + get_global_pubsub, subscribe_and_process, AGENT_STATUS_CHANGED_TOPIC, AGENT_UPDATED_TOPIC, + EXCEPTION_OCCURRED_TOPIC, NEIGHBOURHOOD_SIGNAL_TOPIC, PERSPECTIVE_ADDED_TOPIC, + PERSPECTIVE_LINK_ADDED_TOPIC, PERSPECTIVE_LINK_REMOVED_TOPIC, PERSPECTIVE_LINK_UPDATED_TOPIC, + PERSPECTIVE_REMOVED_TOPIC, PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC, PERSPECTIVE_UPDATED_TOPIC, + RUNTIME_MESSAGED_RECEIVED_TOPIC, }; use super::graphql_types::*; +use super::utils::get_capabilies; +use super::RequestContext; pub struct Subscription; -///TODO; many of these subscriptions are expecting to only receive the data which gets return in the subscriptions resolvers -/// This is not always the case; sometimes the JS will return a different object than the one that was passed in -/// the other data in this object is usually used to filter the subscriptions as is the case where we have a perspectiveUUID -/// we should add a filter closure in subscribe_and_process which will filter the data before it is returned to the client -/// and implement custom serialization logic for this case - -#[juniper::graphql_subscription(context = JsCoreHandle)] +#[juniper::graphql_subscription(context = RequestContext)] impl Subscription { async fn agent_status_changed( &self, - _context: &JsCoreHandle, + context: &RequestContext, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &AGENT_STATUS_CHANGED_TOPIC; @@ -39,8 +39,15 @@ impl Subscription { async fn agent_updated( &self, - _context: &JsCoreHandle, + context: &RequestContext, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &AGENT_UPDATED_TOPIC; @@ -49,8 +56,15 @@ impl Subscription { async fn exception_occurred( &self, - _context: &JsCoreHandle, + context: &RequestContext, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &EXCEPTION_OCCURRED_TOPIC; @@ -59,9 +73,16 @@ impl Subscription { async fn neighbourhood_signal( &self, - _context: &JsCoreHandle, + context: &RequestContext, perspectiveUUID: String, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &NEIGHBOURHOOD_SIGNAL_TOPIC; @@ -75,8 +96,15 @@ impl Subscription { async fn perspective_added( &self, - _context: &JsCoreHandle, + context: &RequestContext, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_ADDED_TOPIC; @@ -85,9 +113,16 @@ impl Subscription { async fn perspective_link_added( &self, - _context: &JsCoreHandle, + context: &RequestContext, uuid: String, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_LINK_ADDED_TOPIC; @@ -96,9 +131,16 @@ impl Subscription { async fn perspective_link_removed( &self, - _context: &JsCoreHandle, + context: &RequestContext, uuid: String, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_LINK_REMOVED_TOPIC; @@ -107,9 +149,16 @@ impl Subscription { async fn perspective_link_updated( &self, - _context: &JsCoreHandle, + context: &RequestContext, uuid: String, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_LINK_UPDATED_TOPIC; @@ -119,8 +168,15 @@ impl Subscription { async fn perspective_removed( &self, - _context: &JsCoreHandle, + context: &RequestContext, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_REMOVED_TOPIC; @@ -129,9 +185,16 @@ impl Subscription { async fn perspective_sync_state_change( &self, - _context: &JsCoreHandle, + context: &RequestContext, uuid: String, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC; @@ -140,8 +203,15 @@ impl Subscription { async fn perspective_updated( &self, - _context: &JsCoreHandle, + context: &RequestContext, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_UPDATED_TOPIC; @@ -150,8 +220,15 @@ impl Subscription { async fn runtime_message_received( &self, - _context: &JsCoreHandle, + context: &RequestContext, ) -> Pin> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } let pubsub = get_global_pubsub().await; let topic = &RUNTIME_MESSAGED_RECEIVED_TOPIC; diff --git a/rust-executor/src/graphql/utils.rs b/rust-executor/src/graphql/utils.rs new file mode 100644 index 000000000..7b02c9f40 --- /dev/null +++ b/rust-executor/src/graphql/utils.rs @@ -0,0 +1,24 @@ +use juniper::{graphql_value, FieldError, FieldResult}; + +use crate::js_core::JsCoreHandle; + +pub async fn get_capabilies(js: JsCoreHandle, capability: String) -> FieldResult { + let mut js = js.clone(); + let script = format!( + r#"JSON.stringify( + await core.callResolver("Query", "getCapabilities", {}) + )"#, + capability + ); + let result = js.execute(script).await; + match result { + Ok(result) => Ok(result), + Err(e) => { + log::error!("UNAUTHORIZED: {:?}", e); + Err(FieldError::new( + "UNAUTHORIZED", + graphql_value!({ "type": "UNAUTHORIZED" }), + )) + } + } +} From 53a156721311bab43eb7ea048ef0b89d50985f0d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 22 May 2023 22:36:31 +0100 Subject: [PATCH 305/722] cleanup --- executor/src/jwt_extension.d.ts | 2 +- rust-executor/create-mainnet-simple.js | 16 ---------------- rust-executor/src/js_core/main.js | 26 +------------------------- 3 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 rust-executor/create-mainnet-simple.js diff --git a/executor/src/jwt_extension.d.ts b/executor/src/jwt_extension.d.ts index f64ebb7d7..af7d1edcc 100644 --- a/executor/src/jwt_extension.d.ts +++ b/executor/src/jwt_extension.d.ts @@ -2,7 +2,7 @@ declare global { interface Jwt { async publish: (topic: String, data: any) => void; async generateJwt: (issuer, audience, expiration_time) => string; - async verifyJwt: (token) => {iss: String, aud: String, exp: String, iat: number} + async verifyJwt: (token: String) => {iss: String, aud: String, exp: String, iat: number} } const JWT: Jwt; diff --git a/rust-executor/create-mainnet-simple.js b/rust-executor/create-mainnet-simple.js deleted file mode 100644 index edbf3c1d8..000000000 --- a/rust-executor/create-mainnet-simple.js +++ /dev/null @@ -1,16 +0,0 @@ -const fs = require("fs"); - -//get first command line argument -const arg = process.argv[2]; -const mainnetSeedPath = process.argv[3]; - -//read file -const data = fs.readFileSync(arg).toString(); -const mainnet = JSON.parse(fs.readFileSync(mainnetSeedPath)); -mainnet["languageLanguageBundle"] = data; - -//write file -fs.writeFileSync(mainnetSeedPath, JSON.stringify(mainnet)); - - - diff --git a/rust-executor/src/js_core/main.js b/rust-executor/src/js_core/main.js index dbce3bb08..465dc9425 100644 --- a/rust-executor/src/js_core/main.js +++ b/rust-executor/src/js_core/main.js @@ -57,28 +57,7 @@ Error.captureStackTrace = function (err, constructorOpt) { } } -import { init, path, os } from 'https://ad4m.runtime/executor' - -const appDataPath = path.join(os.homedir(), 'ad4m', 'tests', 'ad4m1'); -const binaryPath = path.join(appDataPath, 'binary'); -const swiplHomePath = (process.platform == "win32" ? path.join(appDataPath, 'swipl/') : path.join(appDataPath, 'swipl/lib/swipl/')) -const swiplPath = path.join(appDataPath, 'swipl/bin/swipl'); -const ipfsSwarmPort = undefined; -const gqlPort = 13000 -const ipfsRepoPath = path.join(appDataPath, 'ipfs') -const networkBootstrapSeed = path.join(appDataPath, "mainnet_seed.seed") -const languageLanguageOnly = false -const mocks = false -const runDappServer = false -const hcPortAdmin = undefined -const hcPortApp = undefined -const appLangAliases = {} -const bootstrapFixtures = { - languages: [], - perspectives: [], -}; -const connectHolochain = false; -const reqCredential = undefined; +import { init } from 'https://ad4m.runtime/executor' async function initCore(config) { const core = await init(config) @@ -87,6 +66,3 @@ async function initCore(config) { } globalThis.initCore = initCore - -const n = 5 -globalThis.n = n From 805aa589ab8c1cc55889b039131af4302aaabc12 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 22 May 2023 22:37:02 +0100 Subject: [PATCH 306/722] use adminCredential config variable instead of reqCredential --- executor/src/core/Config.ts | 8 ++++---- executor/src/core/PerspectivismCore.ts | 2 +- executor/src/core/agent/AgentService.ts | 12 ++++++------ executor/src/main.ts | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index 960e2385f..1fb9c6746 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -18,7 +18,7 @@ export class MainConfig { holochainConductorPath: string; resourcePath: string = ''; languageLanguageOnly: boolean = false; - reqCredential: string = ''; + adminCredential: string = ''; knownLinkLanguages: string[] = []; trustedAgents: string[] = []; systemLanguages: string[] = []; @@ -68,7 +68,7 @@ export interface CoreConfig { perspectiveLanguageSettings?: object neighbourhoodLanguageSettings?: object languageLanguageSettings?: object - reqCredential?: string + adminCredential?: string swiplPath?: string, swiplHomePath?: string, } @@ -77,8 +77,8 @@ export interface CoreConfig { export function init(c: CoreConfig): MainConfig { const mainConfig = new MainConfig(c.appResourcePath, c.appDataPath); - if(c.reqCredential) { - mainConfig.reqCredential = c.reqCredential + if(c.adminCredential) { + mainConfig.adminCredential = c.adminCredential } //Create paths if they do not exist diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index da90ae97f..8c32a5f6a 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -75,7 +75,7 @@ export default class PerspectivismCore { constructor(config: Config.CoreConfig) { this.#config = Config.init(config); - this.#agentService = new AgentService(this.#config.rootConfigPath, this.#config.reqCredential) + this.#agentService = new AgentService(this.#config.rootConfigPath, this.#config.adminCredential) this.#runtimeService = new RuntimeService(this.#config) this.#agentService.ready.then(() => { this.#runtimeService.did = this.#agentService!.did! diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index c2364bdc3..7dbd7f41e 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -52,7 +52,7 @@ export default class AgentService { #readyPromise: Promise; #readyPromiseResolve?: (value: void | PromiseLike) => void; - constructor(rootConfigPath: string, reqCredential?: string) { + constructor(rootConfigPath: string, adminCredential?: string) { this.#file = path.join(rootConfigPath, "agent.json"); this.#fileProfile = path.join(rootConfigPath, "agentProfile.json"); this.#appsFile = path.join(rootConfigPath, "apps.json"); @@ -67,11 +67,11 @@ export default class AgentService { }); this.#requests = new Map(); this.#tokenValidPeriod = DefaultTokenValidPeriod; - if (reqCredential) { - this.#adminCredential = reqCredential; + if (adminCredential) { + this.#adminCredential = adminCredential; } else { console.warn( - "reqCredential is not set or empty, empty token will possess admin capabililities." + "adminCredential is not set or empty, empty token will possess admin capabililities." ); this.#adminCredential = ""; } @@ -413,9 +413,9 @@ export default class AgentService { export function init( rootConfigPath: string, - reqCredential?: string + adminCredential?: string ): AgentService { - const agent = new AgentService(rootConfigPath, reqCredential); + const agent = new AgentService(rootConfigPath, adminCredential); agent.load(); return agent; } diff --git a/executor/src/main.ts b/executor/src/main.ts index 8d3f6ddc4..33991a968 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -51,7 +51,7 @@ export interface OuterConfig { //Should ad4m-executor connect to an existing holochain instance, or spawn its own connectHolochain?: boolean, //The credential used by admin client to make request - reqCredential?: string, + adminCredential?: string, //Path to swipl executable swiplPath?: string, //Path to swipl home directory @@ -89,7 +89,7 @@ export interface SeedFileSchema { export async function init(config: OuterConfig): Promise { let { resourcePath, appDataPath, networkBootstrapSeed, appLangAliases, bootstrapFixtures, languageLanguageOnly, - mocks, gqlPort, ipfsSwarmPort, ipfsRepoPath, reqCredential, swiplPath, swiplHomePath,runDappServer, + mocks, gqlPort, ipfsSwarmPort, ipfsRepoPath, adminCredential, swiplPath, swiplHomePath,runDappServer, dAppPort } = config if(!gqlPort) gqlPort = 4000 @@ -189,7 +189,7 @@ export async function init(config: OuterConfig): Promise { languageAliases, bootstrapFixtures, languageLanguageOnly, - reqCredential, + adminCredential, swiplPath, swiplHomePath } as CoreConfig); From 3ea5e4a493b58bb582ff980bd36cd2c568da2bac Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 23 May 2023 13:29:13 +0100 Subject: [PATCH 307/722] cleanup --- .../src/js_core/runtime_extension.rs | 38 ------------------- rust-executor/src/runtime.js | 34 ----------------- tests/js/utils/utils.ts | 24 ++---------- 3 files changed, 3 insertions(+), 93 deletions(-) delete mode 100644 rust-executor/src/js_core/runtime_extension.rs delete mode 100644 rust-executor/src/runtime.js diff --git a/rust-executor/src/js_core/runtime_extension.rs b/rust-executor/src/js_core/runtime_extension.rs deleted file mode 100644 index dfabccfeb..000000000 --- a/rust-executor/src/js_core/runtime_extension.rs +++ /dev/null @@ -1,38 +0,0 @@ -/* -#[op] -async fn op_read_file(path: String) -> Result { - let contents = tokio::fs::read_to_string(path).await?; - Ok(contents) -} - -#[op] -async fn op_write_file(path: String, contents: String) -> Result<(), AnyError> { - tokio::fs::write(path, contents).await?; - Ok(()) -} - -#[op] -fn op_remove_file(path: String) -> Result<(), AnyError> { - std::fs::remove_file(path)?; - Ok(()) -} - - -let _runtime_extension = Extension::builder("runtime") -//.js(include_js_files!( -// executor "../../executor/lib/bundle.js", -//)) -//.esm(include_js_files!( -// executor "../../executor/lib/bundle.js", -//)) -.js(include_js_files!( - runtime "runtime.js", -)) -.ops(vec![ - //op_read_file::decl(), - //op_write_file::decl(), - //op_remove_file::decl(), -]) -.build(); - -*/ \ No newline at end of file diff --git a/rust-executor/src/runtime.js b/rust-executor/src/runtime.js deleted file mode 100644 index 4392b9302..000000000 --- a/rust-executor/src/runtime.js +++ /dev/null @@ -1,34 +0,0 @@ -((globalThis) => { - const core = Deno.core; - - function argsToMessage(...args) { - return args.map((arg) => JSON.stringify(arg)).join(" "); - } - - globalThis.console = { - log: (...args) => { - core.print(`[out]: ${argsToMessage(...args)}\n`, false); - }, - error: (...args) => { - core.print(`[err]: ${argsToMessage(...args)}\n`, true); - }, - warn: (...args) => { - core.print(`[warn]: ${argsToMessage(...args)}\n`, true); - } - }; - - globalThis.runjs = { - readFile: (path) => { - return core.opAsync("op_read_file", path); - }, - writeFile: (path, contents) => { - return core.opAsync("op_write_file", path, contents ); - }, - removeFile: (path) => { - return core.opAsync("op_remove_file", path); - }, - }; - })(globalThis); - - - \ No newline at end of file diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index a6df47449..90407fa2a 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -36,7 +36,7 @@ export async function startExecutor(dataPath: string, hcAppPort: number, ipfsSwarmPort: number, languageLanguageOnly: boolean = false, - reqCredential?: string + adminCredential?: string ): Promise { console.log(bootstrapSeedPath); console.log(dataPath); @@ -52,21 +52,19 @@ export async function startExecutor(dataPath: string, console.log("No holochain process running") } - if (!reqCredential) { + if (!adminCredential) { executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${reqCredential} --run-dapp-server false`, {}) + executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { if (data.includes(`listening on http://127.0.0.1:${gqlPort}`)) { - console.log("going to resolve"); resolve() } }); executorProcess!.stderr!.on('data', (data) => { if (data.includes(`listening on http://127.0.0.1:${gqlPort}`)) { - console.log("going to resolve"); resolve() } }); @@ -97,7 +95,6 @@ export function apolloClient(port: number, token?: string): ApolloClient { }, })); wsLink.client.on('message' as any, (data: any) => { - console.log(data); if (data.payload) { if (data.payload.errors) { console.dir(data.payload.errors, { depth: null }); @@ -107,12 +104,6 @@ export function apolloClient(port: number, token?: string): ApolloClient { } }); - const link = new HttpLink({ - uri: `http://127.0.0.1:${port}/graphql`, - //@ts-ignore - fetch - }); - let client = new ApolloClient({ link: wsLink, cache: new InMemoryCache({ resultCaching: false, addTypename: false }), @@ -128,15 +119,6 @@ export function apolloClient(port: number, token?: string): ApolloClient { } }, }); - onError(({ graphQLErrors, networkError }) => { - if (graphQLErrors) - graphQLErrors.forEach(({ message, locations, path }) => - console.log( - `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}` - ) - ); - if (networkError) console.log(`[Network error]: ${networkError}`); - }); return client; } From bd6552a2eaeb4604500e18d60832239da13c2f84 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 23 May 2023 13:29:35 +0100 Subject: [PATCH 308/722] get auth tests and jwt capability token decoding working! --- executor/src/core/agent/AgentService.ts | 14 +- .../src/core/graphQL-interface/GraphQL.ts | 11 +- executor/src/jwt_extension.d.ts | 4 +- rust-executor/src/graphql/mod.rs | 14 +- .../src/graphql/mutation_resolvers.rs | 202 +++++++++--------- rust-executor/src/graphql/query_resolvers.rs | 113 +++++----- rust-executor/src/graphql/utils.rs | 30 ++- rust-executor/src/js_core/jwt_extension.js | 4 +- rust-executor/src/js_core/jwt_extension.rs | 39 +++- tests/js/tests/authentication.test.ts | 14 +- 10 files changed, 247 insertions(+), 198 deletions(-) diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 7dbd7f41e..ed85b715a 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -303,18 +303,10 @@ export default class AgentService { return [AGENT_AUTH_CAPABILITY]; } - // const key = this.getSigningKey(); - // // @ts-ignore - // let keyEncoder = new KeyEncoder.default("secp256k1"); - // const pemPublicKey = keyEncoder.encodePublic(key.publicKey, "raw", "pem"); - // const pubKeyObj = crypto.createPublicKey(pemPublicKey); - - // const { payload } = await jose.jwtVerify(token, pubKeyObj); const payload = await JWT.verifyJwt(token); - console.log("Got cap payload: ", payload); //@ts-ignore - return payload.capabilities; + return payload.capabilities.capabilities; } isAdminCredential(token: string) { @@ -355,21 +347,19 @@ export default class AgentService { async generateJwt(requestId: string, rand: string) { const authKey = genRequestKey(requestId, rand); - console.log("AgentService.generateJwt(): rand number with requestId: ", authKey); const auth = this.#requests.get(authKey); if (!auth) { throw new Error("Can't find permitted request"); } - const jwt = await JWT.generateJwt(this.did || "", `${auth.appName}:${this.did || ""}`, `${this.#tokenValidPeriod}s`); + const jwt = await JWT.generateJwt(this.did || "", `${auth.appName}:${this.did || ""}`, this.#tokenValidPeriod, auth); this.#requests.delete(authKey); if (requestId === this.#requestingAuthInfo?.requestId) { const apps = [...this.#apps, { ...this.#requestingAuthInfo, token: jwt }]; this.#apps = apps; - console.log("Apps", apps); fs.writeFileSync(this.#appsFile, JSON.stringify(apps)); } diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index b3148b0a9..7e0cbce51 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -37,7 +37,16 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return { Query: { getCapabilities: async (token: string) => { - return await core.agentService.getCapabilities(token); + if (token === undefined) { + token = "" + }; + const capabilities = await core.agentService.getCapabilities(token); + if(!capabilities) throw new Error("User capability is empty.") + + const isAd4minCredential = core.agentService.isAdminCredential(token) + checkTokenAuthorized(core.agentService.getApps(), token, isAd4minCredential) + + return { capabilities, token }; }, //@ts-ignore agent: (context) => { diff --git a/executor/src/jwt_extension.d.ts b/executor/src/jwt_extension.d.ts index af7d1edcc..3ff7b83e1 100644 --- a/executor/src/jwt_extension.d.ts +++ b/executor/src/jwt_extension.d.ts @@ -1,8 +1,8 @@ declare global { interface Jwt { async publish: (topic: String, data: any) => void; - async generateJwt: (issuer, audience, expiration_time) => string; - async verifyJwt: (token: String) => {iss: String, aud: String, exp: String, iat: number} + async generateJwt: (issuer, audience, expiration_time, capabililities) => string; + async verifyJwt: (token: String) => {iss: String, aud: String, exp: number, iat: number, capabilities: any} } const JWT: Jwt; diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index 9fd9d67b2..61ac54e4b 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -65,11 +65,17 @@ pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), websocket, root_node, |val: HashMap| async move { - let auth_header = val - .get("authorization") - .map(|v| v.as_string_value().unwrap_or("").to_string()); + let mut auth_header = String::from(""); + + if let Some(headers) = val.get("headers") { + let headers = headers.to_object_value().unwrap(); + if let Some(auth) = headers.get("authorization") { + auth_header = auth.as_string_value().unwrap().to_string(); + } + }; + let context = RequestContext { - capability: auth_header.unwrap_or(String::from("")), + capability: auth_header, js_handle: js_core_handle.clone(), }; Ok(ConnectionConfig::new(context)) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 580121e85..cfe23fd99 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -1,5 +1,4 @@ #![allow(non_snake_case)] -#![allow(unused_variables)] use juniper::{graphql_object, FieldResult}; use log::debug; @@ -21,9 +20,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "addTrustedAgents", {{ agents: {:?} }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "addTrustedAgents", {{ agents: {:?} }}, {{ capabilities: {} }}) )"#, - agents, context.capability + agents, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -40,10 +39,10 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentAddEntanglementProofs", {{ proofs: {} }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentAddEntanglementProofs", {{ proofs: {} }}, {{ capabilities: {} }}) )"#, serde_json::to_string(&proofs).unwrap(), - context.capability + capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -60,10 +59,10 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentDeleteEntanglementProofs", {{ proofs: {} }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentDeleteEntanglementProofs", {{ proofs: {} }}, {{ capabilities: {} }}) )"#, serde_json::to_string(&proofs).unwrap(), - context.capability + capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -81,9 +80,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentEntanglementProofPreFlight", {{ deviceKey: "{}", deviceKeyType: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentEntanglementProofPreFlight", {{ deviceKey: "{}", deviceKeyType: "{}" }}, {{ capabilities: {} }}) )"#, - device_key, device_key_type, context.capability + device_key, device_key_type, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -95,14 +94,15 @@ impl Mutation { context: &RequestContext, passphrase: String, ) -> FieldResult { + debug!("Agent generate raw cap: {}", context.capability.clone()); let capabilities = get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentGenerate", {{ passphrase: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentGenerate", {{ passphrase: "{}" }}, {{ capabilities: {} }}) )"#, - passphrase, context.capability + passphrase, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -120,9 +120,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentGenerateJwt", {{ rand: "{}", requestId: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentGenerateJwt", {{ rand: "{}", requestId: "{}" }}, {{ capabilities: {} }}) )"#, - rand, request_id, context.capability + rand, request_id, capabilities ); debug!("agent_generate_jwt script: {}", script); let result = js.execute(script).await?; @@ -141,9 +141,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentLock", {{ passphrase: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentLock", {{ passphrase: "{}" }}, {{ capabilities: {} }}) )"#, - passphrase, context.capability + passphrase, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -161,9 +161,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentPermitCapability", {{ auth: JSON.stringify({}) }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentPermitCapability", {{ auth: JSON.stringify({}) }}, {{ capabilities: {} }}) )"#, - auth, context.capability + auth, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -180,9 +180,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentRemoveApp", {{ requestId: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentRemoveApp", {{ requestId: "{}" }}, {{ capabilities: {} }}) )"#, - request_id, context.capability + request_id, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -200,9 +200,9 @@ impl Mutation { let auth_info_json = serde_json::to_string(&auth_info)?; let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentRequestCapability", {{ authInfo: {} }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentRequestCapability", {{ authInfo: {} }}, {{ capabilities: {} }}) )"#, - auth_info_json, context.capability + auth_info_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -219,9 +219,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentRevokeToken", {{ requestId: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentRevokeToken", {{ requestId: "{}" }}, {{ capabilities: {} }}) )"#, - request_id, context.capability + request_id, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -238,9 +238,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentSignMessage", {{ message: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentSignMessage", {{ message: "{}" }}, {{ capabilities: {} }}) )"#, - message, context.capability + message, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -257,9 +257,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentUnlock", {{ passphrase: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentUnlock", {{ passphrase: "{}" }}, {{ capabilities: {} }}) )"#, - passphrase, context.capability + passphrase, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -276,9 +276,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentUpdateDirectMessageLanguage", {{ directMessageLanguage: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentUpdateDirectMessageLanguage", {{ directMessageLanguage: "{}" }}, {{ capabilities: {} }}) )"#, - direct_message_language, context.capability + direct_message_language, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -296,9 +296,9 @@ impl Mutation { let perspective_json = serde_json::to_string(&perspective)?; let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "agentUpdatePublicPerspective", {{ perspective: {} }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "agentUpdatePublicPerspective", {{ perspective: {} }}, {{ capabilities: {} }}) )"#, - perspective_json, context.capability + perspective_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -316,9 +316,9 @@ impl Mutation { let agents_json = serde_json::to_string(&agents)?; let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "deleteTrustedAgents", {{ agents: {} }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "deleteTrustedAgents", {{ agents: {} }}, {{ capabilities: {} }}) )"#, - agents_json, context.capability + agents_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -336,9 +336,9 @@ impl Mutation { let mut js = context.js_handle.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Mutation", "expressionCreate", {{ content: {}, languageAddress: "{}" }}, {{ capabilities: [{}] }}) + await core.callResolver("Mutation", "expressionCreate", {{ content: {}, languageAddress: "{}" }}, {{ capabilities: {} }}) )"#, - content, language_address, context.capability + content, language_address, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -361,9 +361,9 @@ impl Mutation { "Mutation", "expressionInteract", {{ interactionCall: {}, url: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - interaction_call_json, url, context.capability + interaction_call_json, url, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -385,9 +385,9 @@ impl Mutation { "Mutation", "languageApplyTemplateAndPublish", {{ sourceLanguageHash: "{}", templateData: JSON.stringify({}) }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - source_language_hash, template_data, context.capability + source_language_hash, template_data, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -410,9 +410,9 @@ impl Mutation { "Mutation", "languagePublish", {{ languageMeta: {}, languagePath: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - language_meta_json, language_path, context.capability + language_meta_json, language_path, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -433,9 +433,9 @@ impl Mutation { "Mutation", "languageRemove", {{ address: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - address, context.capability + address, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -457,9 +457,9 @@ impl Mutation { "Mutation", "languageWriteSettings", {{ languageAddress: "{}", settings: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - language_address, settings, context.capability + language_address, settings, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -480,9 +480,9 @@ impl Mutation { "Mutation", "neighbourhoodJoinFromUrl", {{ url: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - url, context.capability + url, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -506,9 +506,9 @@ impl Mutation { "Mutation", "neighbourhoodPublishFromPerspective", {{ linkLanguage: "{}", meta: {}, perspectiveUUID: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - link_language, meta_json, perspectiveUUID, context.capability + link_language, meta_json, perspectiveUUID, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -531,9 +531,9 @@ impl Mutation { "Mutation", "neighbourhoodSendBroadcast", {{ payload: {}, perspectiveUUID: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - payload_json, perspectiveUUID, context.capability + payload_json, perspectiveUUID, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -556,9 +556,9 @@ impl Mutation { "Mutation", "neighbourhoodSendBroadcastU", {{ payload: {}, perspectiveUUID: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - payload_json, perspectiveUUID, context.capability + payload_json, perspectiveUUID, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -582,9 +582,9 @@ impl Mutation { "Mutation", "neighbourhoodSendSignal", {{ payload: {}, perspectiveUUID: "{}", remoteAgentDid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - payload_json, perspectiveUUID, remote_agent_did, context.capability + payload_json, perspectiveUUID, remote_agent_did, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -608,9 +608,9 @@ impl Mutation { "Mutation", "neighbourhoodSendSignalU", {{ payload: {}, perspectiveUUID: "{}", remoteAgentDID: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - payload_json, perspectiveUUID, remote_agent_did, context.capability + payload_json, perspectiveUUID, remote_agent_did, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -633,9 +633,9 @@ impl Mutation { "Mutation", "neighbourhoodSetOnlineStatus", {{ perspectiveUUID: "{}", status: {} }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - perspectiveUUID, status_json, context.capability + perspectiveUUID, status_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -658,9 +658,9 @@ impl Mutation { "Mutation", "neighbourhoodSetOnlineStatusU", {{ perspectiveUUID: "{}", status: {} }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - perspectiveUUID, status_json, context.capability + perspectiveUUID, status_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -681,9 +681,9 @@ impl Mutation { "Mutation", "perspectiveAdd", {{ name: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - name, context.capability + name, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -706,9 +706,9 @@ impl Mutation { "Mutation", "perspectiveAddLink", {{ link: {}, uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - link_json, uuid, context.capability + link_json, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -731,9 +731,9 @@ impl Mutation { "Mutation", "perspectiveAddLinkExpression", {{ link: {}, uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - link_json, uuid, context.capability + link_json, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -756,9 +756,9 @@ impl Mutation { "Mutation", "perspectiveAddLinks", {{ links: {}, uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - links_json, uuid, context.capability + links_json, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -781,9 +781,9 @@ impl Mutation { "Mutation", "perspectiveLinkMutations", {{ mutations: {}, uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - mutations_json, uuid, context.capability + mutations_json, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -804,9 +804,9 @@ impl Mutation { "Mutation", "perspectivePublishSnapshot", {{ uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - uuid, context.capability + uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -827,9 +827,9 @@ impl Mutation { "Mutation", "perspectiveRemove", {{ uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - uuid, context.capability + uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -852,9 +852,9 @@ impl Mutation { "Mutation", "perspectiveRemoveLink", {{ link: {}, uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - link_json, uuid, context.capability + link_json, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -877,9 +877,9 @@ impl Mutation { "Mutation", "perspectiveRemoveLinks", {{ links: {}, uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - links_json, uuid, context.capability + links_json, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -901,9 +901,9 @@ impl Mutation { "Mutation", "perspectiveUpdate", {{ name: "{}", uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - name, uuid, context.capability + name, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -928,9 +928,9 @@ impl Mutation { "Mutation", "perspectiveUpdateLink", {{ newLink: {}, oldLink: {}, uuid: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - new_link_json, old_link_json, uuid, context.capability + new_link_json, old_link_json, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -952,9 +952,9 @@ impl Mutation { "Mutation", "runtimeAddFriends", {{ dids: {} }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - dids_json, context.capability + dids_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -976,9 +976,9 @@ impl Mutation { "Mutation", "runtimeAddKnownLinkLanguageTemplates", {{ addresses: {} }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - addresses_json, context.capability + addresses_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -1001,9 +1001,9 @@ impl Mutation { "Mutation", "runtimeFriendSendMessage", {{ did: "{}", message: {} }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - did, message_json, context.capability + did, message_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -1024,9 +1024,9 @@ impl Mutation { "Mutation", "runtimeHcAddAgentInfos", {{ agentInfos: JSON.stringify({}) }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - agent_infos, context.capability + agent_infos, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -1043,9 +1043,9 @@ impl Mutation { "Mutation", "runtimeOpenLink", {{ url: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - url, context.capability + url, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -1061,9 +1061,9 @@ impl Mutation { await core.callResolver( "Mutation", "runtimeQuit", - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - context.capability + capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -1085,9 +1085,9 @@ impl Mutation { "Mutation", "runtimeRemoveFriends", {{ dids: {} }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - dids_json, context.capability + dids_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -1109,9 +1109,9 @@ impl Mutation { "Mutation", "runtimeRemoveKnownLinkLanguageTemplates", {{ addresses: {} }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - addresses_json, context.capability + addresses_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -1133,9 +1133,9 @@ impl Mutation { "Mutation", "runtimeSetStatus", {{ status: {} }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ))"#, - status_json, context.capability + status_json, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index 7c053a3f4..2ab2879da 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -1,5 +1,4 @@ #![allow(non_snake_case)] -#![allow(unused_variables)] use juniper::{graphql_object, FieldResult}; use super::graphql_types::*; @@ -16,8 +15,8 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "agent", null, {{ capabilities: [{}] }}))"#, - context.capability + r#"JSON.stringify(await core.callResolver("Query", "agent", null, {{ capabilities: {} }}))"#, + capabilities )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -39,10 +38,10 @@ impl Query { r#"JSON.stringify( await core.callResolver("Query", "agentByDID", {{ did: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ) )"#, - did, context.capability + did, capabilities ) .into(), ) @@ -57,8 +56,8 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "agentGetApps", null, {{ capabilities: [{}] }}))"#, - context.capability + r#"JSON.stringify(await core.callResolver("Query", "agentGetApps", {{ capabilities: {} }}))"#, + capabilities )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -69,7 +68,7 @@ impl Query { &self, context: &RequestContext, ) -> FieldResult> { - let capabilities = + let _capabilities = get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let result = js @@ -82,7 +81,7 @@ impl Query { } async fn agent_is_locked(&self, context: &RequestContext) -> FieldResult { - let capabilities = + let _capabilities = get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let result = js @@ -100,8 +99,8 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "agentStatus", null, {{ capabilities: [{}] }}))"#, - context.capability + r#"JSON.stringify(await core.callResolver("Query", "agentStatus", {{ capabilities: {} }}))"#, + capabilities )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -118,9 +117,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "expression", {{ url: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "expression", {{ url: "{}" }}, {{ capabilities: {} }}))"#, url, - context.capability + capabilities )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -137,9 +136,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "expressionInteractions", {{ url: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "expressionInteractions", {{ url: "{}" }}, {{ capabilities: {} }}))"#, url, - context.capability + capabilities )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -161,9 +160,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "expressionMany", {{ urls: [{}] }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "expressionMany", {{ urls: [{}] }}, {{ capabilities: {} }}))"#, urls_string, - context.capability + capabilities )) .await?; let result: JsResultType>> = serde_json::from_str(&result)?; @@ -180,9 +179,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "expressionRaw", {{ url: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "expressionRaw", {{ url: "{}" }}, {{ capabilities: {} }}))"#, url, - context.capability + capabilities )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -195,8 +194,8 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "getTrustedAgents", {{ capabilities: [{}] }}))"#, - context.capability + r#"JSON.stringify(await core.callResolver("Query", "getTrustedAgents", {{ capabilities: {} }}))"#, + capabilities )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -213,9 +212,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "language", {{ address: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "language", {{ address: "{}" }}, {{ capabilities: {} }}))"#, address, - context.capability + capabilities )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -232,9 +231,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "languageMeta", {{ address: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "languageMeta", {{ address: "{}" }}, {{ capabilities: {} }}))"#, address, - context.capability + capabilities )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -251,9 +250,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "languageSource", {{ address: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "languageSource", {{ address: "{}" }}, {{ capabilities: {} }}))"#, address, - context.capability + capabilities )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -271,9 +270,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "languages", {{ filter: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "languages", {{ filter: "{}" }}, {{ capabilities: {} }}))"#, filter_string, - context.capability + capabilities )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -289,7 +288,7 @@ impl Query { get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodHasTelepresenceAdapter", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, context.capability)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodHasTelepresenceAdapter", {{ perspectiveUUID: "{}" }}, {{ capabilities: {} }}))"#, perspectiveUUID, capabilities)) .await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() @@ -304,7 +303,7 @@ impl Query { get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOnlineAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, context.capability)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOnlineAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: {} }}))"#, perspectiveUUID, capabilities)) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() @@ -319,7 +318,7 @@ impl Query { get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOtherAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: [{}] }}))"#, perspectiveUUID, context.capability)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "neighbourhoodOtherAgents", {{ perspectiveUUID: "{}" }}, {{ capabilities: {} }}))"#, perspectiveUUID, capabilities)) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() @@ -335,9 +334,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "perspective", {{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "perspective", {{ uuid: "{}" }}, {{ capabilities: {} }}))"#, uuid, - context.capability + capabilities )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -355,8 +354,8 @@ impl Query { get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let script = format!( - r#"JSON.stringify(await core.callResolver("Query", "perspectiveQueryLinks", {{ query: {}, uuid: "{}" }}, {{ capabilities: [{}] }}))"#, - query_string, uuid, context.capability + r#"JSON.stringify(await core.callResolver("Query", "perspectiveQueryLinks", {{ query: {}, uuid: "{}" }}, {{ capabilities: {} }}))"#, + query_string, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -373,8 +372,8 @@ impl Query { get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let script = format!( - r#"await core.callResolver("Query", "perspectiveQueryProlog", {{ query: '{}', uuid: "{}" }}, {{ capabilities: [{}] }})"#, - query, uuid, context.capability + r#"await core.callResolver("Query", "perspectiveQueryProlog", {{ query: '{}', uuid: "{}" }}, {{ capabilities: {} }})"#, + query, uuid, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -391,9 +390,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "perspectiveSnapshot", {{ uuid: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "perspectiveSnapshot", {{ uuid: "{}" }}, {{ capabilities: {} }}))"#, uuid, - context.capability + capabilities )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -406,8 +405,8 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "perspectives", null, {{ capabilities: [{}] }}))"#, - context.capability + r#"JSON.stringify(await core.callResolver("Query", "perspectives", {{ capabilities: {} }}))"#, + capabilities )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -424,9 +423,9 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "runtimeFriendStatus", {{ did: "{}" }}, {{ capabilities: [{}] }}))"#, + r#"JSON.stringify(await core.callResolver("Query", "runtimeFriendStatus", {{ did: "{}" }}, {{ capabilities: {} }}))"#, did, - context.capability + capabilities )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -439,8 +438,8 @@ impl Query { let mut js = context.js_handle.clone(); let result = js .execute(format!( - r#"JSON.stringify(await core.callResolver("Query", "runtimeFriends", null, {{ capabilities: [{}] }}))"#, - context.capability + r#"JSON.stringify(await core.callResolver("Query", "runtimeFriends", {{ capabilities: {} }}))"#, + capabilities )) .await?; let result: JsResultType> = serde_json::from_str(&result)?; @@ -452,19 +451,19 @@ impl Query { get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeHcAgentInfos", null, {{ capabilities: [{}] }}))"#, context.capability)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeHcAgentInfos", {{ capabilities: {} }}))"#, capabilities)) .await?; let result: JsResultType = serde_json::from_str(&result)?; result.get_graphql_result() } async fn runtime_info(&self, context: &RequestContext) -> FieldResult { - let capabilities = + let _capabilities = get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeInfo", null, {{ capabilities: [{}] }}))"#, - context.capability + .execute(format!( + r#"JSON.stringify(await core.callResolver("Query", "runtimeInfo", null))"#, )) .await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -479,7 +478,7 @@ impl Query { get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let result = js - .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeKnownLinkLanguageTemplates", {{ capabilities: [{}] }}))"#, context.capability)) + .execute(format!(r#"JSON.stringify(await core.callResolver("Query", "runtimeKnownLinkLanguageTemplates", {{ capabilities: {} }}))"#, capabilities)) .await?; let result: JsResultType> = serde_json::from_str(&result)?; result.get_graphql_result() @@ -496,8 +495,8 @@ impl Query { .map(|val| format!(r#"{{ filter: "{}" }}"#, val)) .unwrap_or_else(|| String::from("{ filter: null }")); let script = format!( - r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageInbox", {}, {{ capabilities: [{}] }}))"#, - filter_str, context.capability + r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageInbox", {}, {{ capabilities: {} }}))"#, + filter_str, capabilities ); let mut js = context.js_handle.clone(); let result = js.execute(script).await?; @@ -516,8 +515,8 @@ impl Query { .map(|val| format!(r#"{{ filter: "{}" }}"#, val)) .unwrap_or_else(|| String::from("{ filter: null }")); let script = format!( - r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageOutbox", {}, {{ capabilities: [{}] }}))"#, - filter_str, context.capability + r#"JSON.stringify(await core.callResolver("Query", "runtimeMessageOutbox", {}, {{ capabilities: {} }}))"#, + filter_str, capabilities ); let mut js = context.js_handle.clone(); let result = js.execute(script).await?; @@ -541,10 +540,10 @@ impl Query { r#"JSON.stringify( await core.callResolver("Query", "runtimeVerifyStringSignedByDid", {{ data: "{}", did: "{}", didSigningKeyId: "{}", signedData: "{}" }}, - {{ capabilities: [{}] }} + {{ capabilities: {} }} ) )"#, - data, did, did_signing_key_id, signed_data, context.capability + data, did, did_signing_key_id, signed_data, capabilities )) .await?; let result: JsResultType = serde_json::from_str(&result)?; diff --git a/rust-executor/src/graphql/utils.rs b/rust-executor/src/graphql/utils.rs index 7b02c9f40..f866e80d8 100644 --- a/rust-executor/src/graphql/utils.rs +++ b/rust-executor/src/graphql/utils.rs @@ -2,23 +2,35 @@ use juniper::{graphql_value, FieldError, FieldResult}; use crate::js_core::JsCoreHandle; -pub async fn get_capabilies(js: JsCoreHandle, capability: String) -> FieldResult { +pub async fn get_capabilies( + js: JsCoreHandle, + capability: String, +) -> FieldResult { let mut js = js.clone(); let script = format!( r#"JSON.stringify( - await core.callResolver("Query", "getCapabilities", {}) + await core.callResolver("Query", "getCapabilities", "{}") )"#, capability ); let result = js.execute(script).await; match result { - Ok(result) => Ok(result), - Err(e) => { - log::error!("UNAUTHORIZED: {:?}", e); - Err(FieldError::new( - "UNAUTHORIZED", - graphql_value!({ "type": "UNAUTHORIZED" }), - )) + Ok(result) => { + let result = serde_json::from_str::(&result)?; + match result.get("Ok") { + Some(ok) => Ok(ok + .get("capabilities") + .expect("missing capabilities") + .to_owned()), + None => Err(FieldError::new( + result.get("Error").unwrap(), + graphql_value!({ "type": "UNAUTHORIZED" }), + )), + } } + Err(e) => Err(FieldError::new( + e.to_string(), + graphql_value!({ "type": "UNAUTHORIZED" }), + )), } } diff --git a/rust-executor/src/js_core/jwt_extension.js b/rust-executor/src/js_core/jwt_extension.js index b2e8ee594..2059d9ae4 100644 --- a/rust-executor/src/js_core/jwt_extension.js +++ b/rust-executor/src/js_core/jwt_extension.js @@ -2,8 +2,8 @@ const core = Deno.core; globalThis.JWT = { - generateJwt: async (issuer, audience, expiration_time) => { - return core.opAsync("generate_jwt", issuer, audience, expiration_time); + generateJwt: async (issuer, audience, expiration_time, capabilities) => { + return core.opAsync("generate_jwt", issuer, audience, expiration_time, capabilities); }, verifyJwt: async (token) => { return core.opAsync("verify_jwt", token); diff --git a/rust-executor/src/js_core/jwt_extension.rs b/rust-executor/src/js_core/jwt_extension.rs index dc17546c6..4c96499b9 100644 --- a/rust-executor/src/js_core/jwt_extension.rs +++ b/rust-executor/src/js_core/jwt_extension.rs @@ -6,19 +6,51 @@ use serde::{Deserialize, Serialize}; use crate::wallet::Wallet; +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AuthInfoExtended { + request_id: String, + auth: AuthInfo, +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AuthInfo { + app_name: String, + app_desc: String, + app_domain: Option, + app_url: Option, + app_icon_path: Option, + capabilities: Option>, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct Capability { + with: Resource, + can: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct Resource { + domain: String, + pointers: Vec, +} + #[derive(Debug, Serialize, Deserialize)] struct Claims { iss: String, aud: String, - exp: String, + exp: u64, iat: u64, + capabilities: AuthInfo, } #[op] async fn generate_jwt( issuer: String, audience: String, - expiration_time: String, + expiration_time: u64, + capabilities: AuthInfo, ) -> Result { // Get the private key let wallet = Wallet::instance(); @@ -39,8 +71,9 @@ async fn generate_jwt( let payload = Claims { iss: issuer, aud: audience, - exp: expiration_time, + exp: unix_timestamp + expiration_time, iat: unix_timestamp, + capabilities: capabilities, }; let token = encode( diff --git a/tests/js/tests/authentication.test.ts b/tests/js/tests/authentication.test.ts index 29ee8d6ac..7585358ce 100644 --- a/tests/js/tests/authentication.test.ts +++ b/tests/js/tests/authentication.test.ts @@ -38,7 +38,7 @@ describe("Authentication integration tests", () => { executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); - ad4mClient = new Ad4mClient(apolloClient(gqlPort)) + ad4mClient = new Ad4mClient(apolloClient(gqlPort), false) await ad4mClient.agent.generate("passphrase") }) @@ -98,10 +98,10 @@ describe("Authentication integration tests", () => { executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort, false, "123"); - adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123")) + adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123"), false) await adminAd4mClient.agent.generate("passphrase") - unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort)) + unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort), false) }) after(async () => { @@ -208,19 +208,19 @@ describe("Authentication integration tests", () => { let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) expect((await authenticatedAppAd4mClient!.agent.status()).isUnlocked).to.be.true; }) it("user with invalid jwt can not query agent status", async () => { // @ts-ignore - let ad4mClient = new Ad4mClient(apolloClient(gqlPort, "invalid-jwt")) + let ad4mClient = new Ad4mClient(apolloClient(gqlPort, "invalid-jwt"), false) const call = async () => { return await ad4mClient!.agent.status() } - await expect(call()).to.be.rejectedWith("Invalid Compact JWS"); + await expect(call()).to.be.rejectedWith("InvalidToken"); }) it("authenticated user can not query agent status if capability is not matched", async () => { @@ -243,7 +243,7 @@ describe("Authentication integration tests", () => { let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { return await authenticatedAppAd4mClient!.agent.status() From a5673bdaefe1e8836b4e55a8d009888417d5ee55 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 24 May 2023 17:27:17 +0100 Subject: [PATCH 309/722] add capability checks to subscriptions! --- .../src/core/graphQL-interface/GraphQL.ts | 5 + .../src/graphql/subscription_resolvers.rs | 126 +++++++++++++++++- rust-executor/src/graphql/utils.rs | 77 +++++++++++ 3 files changed, 207 insertions(+), 1 deletion(-) diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 7e0cbce51..eafa1e502 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -20,6 +20,8 @@ import { checkCapability, checkTokenAuthorized } from '../agent/Auth' import { OuterConfig } from '../../main'; import path from 'path'; import Perspective from '../Perspective'; +import { Capability } from '../agent/Auth' +import { Capabilities } from '../agent/Auth' function checkLinkLanguageInstalled(perspective: Perspective) { if(perspective.state != PerspectiveState.Synced && perspective.state != PerspectiveState.LinkLanguageInstalledButNotSynced) { @@ -48,6 +50,9 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { return { capabilities, token }; }, + checkCapability: async (suppliedCapabilities: Capabilities, expectedCapabilities: Capability) => { + await checkCapability(suppliedCapabilities, expectedCapabilities); + }, //@ts-ignore agent: (context) => { checkCapability(context.capabilities, Auth.AGENT_READ_CAPABILITY) diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs index 6a6ce70cc..b9f994acf 100644 --- a/rust-executor/src/graphql/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -13,7 +13,11 @@ use crate::pubsub::{ }; use super::graphql_types::*; -use super::utils::get_capabilies; +use super::utils::{ + check_capabilities, get_capabilies, AGENT_SUBSCRIBE_CAPABILITY, + PERSPECTIVE_SUBSCRIBE_CAPABILITY, RUNTIME_EXCEPTION_SUBSCRIBE_CAPABILITY, + RUNTIME_MESSAGES_SUBSCRIBE_CAPABILITY, +}; use super::RequestContext; pub struct Subscription; @@ -48,6 +52,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(AGENT_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + } + let pubsub = get_global_pubsub().await; let topic = &AGENT_UPDATED_TOPIC; @@ -65,6 +81,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(RUNTIME_EXCEPTION_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + } + let pubsub = get_global_pubsub().await; let topic = &EXCEPTION_OCCURRED_TOPIC; @@ -83,6 +111,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(RUNTIME_MESSAGES_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + let pubsub = get_global_pubsub().await; let topic = &NEIGHBOURHOOD_SIGNAL_TOPIC; @@ -105,6 +145,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_ADDED_TOPIC; @@ -123,6 +175,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_LINK_ADDED_TOPIC; @@ -141,6 +205,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_LINK_REMOVED_TOPIC; @@ -177,6 +253,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_REMOVED_TOPIC; @@ -195,6 +283,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC; @@ -212,6 +312,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + let pubsub = get_global_pubsub().await; let topic = &PERSPECTIVE_UPDATED_TOPIC; @@ -229,6 +341,18 @@ impl Subscription { async move { Err(capabilities.err().unwrap()) }, )); } + + let cap_check = check_capabilities( + context.js_handle.clone(), + capabilities.unwrap(), + serde_json::to_value(PERSPECTIVE_SUBSCRIBE_CAPABILITY.clone()).unwrap(), + ) + .await; + + if cap_check.is_err() { + return Box::pin(stream::once(async move { Err(cap_check.err().unwrap()) })); + }; + let pubsub = get_global_pubsub().await; let topic = &RUNTIME_MESSAGED_RECEIVED_TOPIC; diff --git a/rust-executor/src/graphql/utils.rs b/rust-executor/src/graphql/utils.rs index f866e80d8..5114f2ff5 100644 --- a/rust-executor/src/graphql/utils.rs +++ b/rust-executor/src/graphql/utils.rs @@ -1,4 +1,5 @@ use juniper::{graphql_value, FieldError, FieldResult}; +use serde::{Deserialize, Serialize}; use crate::js_core::JsCoreHandle; @@ -34,3 +35,79 @@ pub async fn get_capabilies( )), } } + +pub async fn check_capabilities( + js: JsCoreHandle, + capability: serde_json::Value, + expected_capabilities: serde_json::Value, +) -> FieldResult<()> { + let mut js = js.clone(); + + let script = format!( + r#"JSON.stringify( + await core.callResolver("Query", "checkCapability", {}, {}) + )"#, + capability, expected_capabilities + ); + let result = js.execute(script).await; + match result { + Ok(_result) => Ok(()), + Err(err) => Err(FieldError::new( + err.to_string(), + graphql_value!({ "type": "UNAUTHORIZED" }), + )), + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Capability { + pub with: WithCapability, + pub can: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct WithCapability { + pub domain: String, + pub pointers: Vec, +} + +lazy_static::lazy_static! { + pub static ref AGENT: String = String::from("agent"); + pub static ref PERSPECTIVE: String = String::from("perspective"); + pub static ref RUNTIME_MESSAGES: String = String::from("runtime.messages"); + pub static ref RUNTIME_EXCEPTION: String = String::from("runtime.exception"); + pub static ref WILD_CARD: String = String::from("*"); + pub static ref SUBSCRIBE: String = String::from("SUBSCRIBE"); + + pub static ref AGENT_SUBSCRIBE_CAPABILITY: Capability = Capability { + with: WithCapability { + domain: AGENT.to_string(), + pointers: vec![WILD_CARD.to_string()], + }, + can: vec![SUBSCRIBE.to_string()], + }; + + pub static ref PERSPECTIVE_SUBSCRIBE_CAPABILITY: Capability = Capability { + with: WithCapability { + domain: PERSPECTIVE.to_string(), + pointers: vec![WILD_CARD.to_string()], + }, + can: vec![SUBSCRIBE.to_string()], + }; + + pub static ref RUNTIME_MESSAGES_SUBSCRIBE_CAPABILITY: Capability = Capability { + with: WithCapability{ + domain: RUNTIME_MESSAGES.to_string(), + pointers: vec![WILD_CARD.to_string()], + }, + can: vec![SUBSCRIBE.to_string()], + }; + + pub static ref RUNTIME_EXCEPTION_SUBSCRIBE_CAPABILITY: Capability = Capability { + with: WithCapability{ + domain: RUNTIME_EXCEPTION.to_string(), + pointers: vec![WILD_CARD.to_string()], + }, + can: vec![SUBSCRIBE.to_string()], + }; +} From 4e5d7f0591f4e94276c3a48b9b8f90703389f91b Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 2 Jun 2023 17:10:01 +0300 Subject: [PATCH 310/722] update turbo confif & workspace + deps package.json's --- cli/package.json | 37 +++++++++++++++++++++++++++ executor/package.json | 5 ++-- package.json | 15 +++-------- rust-executor/package.json | 36 ++++++++++++++++++++++++++ turbo.json | 52 +++++++------------------------------- ui/package.json | 8 +----- 6 files changed, 89 insertions(+), 64 deletions(-) create mode 100644 cli/package.json create mode 100644 rust-executor/package.json diff --git a/cli/package.json b/cli/package.json new file mode 100644 index 000000000..12fd0ba32 --- /dev/null +++ b/cli/package.json @@ -0,0 +1,37 @@ +{ + "name": "@perspect3vism/ad4m-cli", + "version": "0.3.4", + "description": "AD4M cli for starting an AD4M agent, and querying the executor", + "main": "", + "files": [], + "type": "module", + "types": "", + "scripts": { + "build": "cargo build --release", + "test": "cargo test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/perspect3vism/ad4m.git" + }, + "author": { + "name": "Nicolas Luck", + "email": "nicolas@lucksus.eu" + }, + "contributors": [ + { + "name": "Joshua Parkin", + "email": "joshuadparkin@gmail.com" + } + ], + "license": "CAL-1.0", + "bugs": { + "url": "https://github.com/perspect3vism/ad4m/issues" + }, + "devDependencies": { + "@perspect3vism/ad4m-executor": "*", + "@perspect3vism/rust-ad4m-executor": "*" + }, + "dependencies": { + } +} diff --git a/executor/package.json b/executor/package.json index e36bcff86..663c5f065 100644 --- a/executor/package.json +++ b/executor/package.json @@ -16,14 +16,13 @@ "type": "module", "types": "lib/main.d.ts", "scripts": { - "build": "tsc", + "build": "tsc && yarn run bundle", "bundle": "node scripts/bundle.js", "run": "node --experimental-specifier-resolution=node lib/main.js", - "test": "yarn run test-perspective && yarn test-db && yarn run test-prolog && yarn run test-swipl && yarn run test-auth-unit", + "test": "yarn run test-perspective && yarn test-db && yarn run test-prolog && yarn run test-auth-unit", "test-perspective": "ts-mocha -p tsconfig.json --exit src/core/Perspective.test.ts", "test-db": "ts-mocha -p tsconfig.json --exit src/core/db.test.ts", "test-prolog": "ts-mocha -p tsconfig.json --exit src/core/PrologInstance.test.ts", - "test-swipl": "ts-mocha -p tsconfig.json --exit src/core/Swipl.test.ts", "test-auth-unit": "ts-mocha -p tsconfig.json --exit src/core/agent/Auth.test.ts" }, "repository": { diff --git a/package.json b/package.json index b56284c99..0c4c1d85e 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,13 @@ "docs", "docs-src", "executor", - "host", "ui", "connect", "test-runner", "bootstrap-languages/*", - "tests/js" + "tests/js", + "rust-executor", + "cli" ], "private": true, "scripts": { @@ -28,16 +29,8 @@ "fetch-binaries:macos": "./download-binaries-macos.sh", "fetch-binaries:windows": "powershell.exe -ExecutionPolicy Bypass -File download-binaries-windows.ps1", "fetch-binaries:linux": "./download-binaries-linux.sh", - "package-macos": "turbo run package-macos", - "package-windows": "turbo run package-windows", - "package-linux": "turbo run package-linux", - "build-macos": "turbo run build-macos", - "build-windows": "turbo run build-windows", - "build-linux": "turbo run build-linux", + "package-ad4m": "turbo run package-ad4m", "build-languages": "turbo run build-languages", - "build-all-macos": "turbo run build-all-macos", - "build-all-linux": "turbo run build-all-linux", - "build-all-windows": "turbo run build-all-windows", "docs": "jsdoc -c jsdoc.json", "docs:api:jsdoc2md": "jsdoc2md --configure jsdoc.json --partial docs/header.hbs --global-index-format none --files src/**/* > docs-src/api.md", "docs:api:tsconcat": "concat-md --decrease-title-levels --dir-name-as-title docs-src/typedoc > docs-src/api.md", diff --git a/rust-executor/package.json b/rust-executor/package.json new file mode 100644 index 000000000..c675568fc --- /dev/null +++ b/rust-executor/package.json @@ -0,0 +1,36 @@ +{ + "name": "@perspect3vism/rust-ad4m-executor", + "version": "0.3.4", + "description": "Rust built version of the ad4m-executor, exposing GraphQL methods for AD4M", + "main": "", + "files": [], + "type": "module", + "types": "", + "scripts": { + "build": "cargo build --release", + "test": "cargo test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/perspect3vism/ad4m.git" + }, + "author": { + "name": "Nicolas Luck", + "email": "nicolas@lucksus.eu" + }, + "contributors": [ + { + "name": "Joshua Parkin", + "email": "joshuadparkin@gmail.com" + } + ], + "license": "CAL-1.0", + "bugs": { + "url": "https://github.com/perspect3vism/ad4m/issues" + }, + "devDependencies": { + "@perspect3vism/ad4m-executor": "*" + }, + "dependencies": { + } +} diff --git a/turbo.json b/turbo.json index db75a1953..c6cf55644 100644 --- a/turbo.json +++ b/turbo.json @@ -6,7 +6,7 @@ "outputs": ["dist/**", "lib/**", "build/**"] }, "build-libs": { - "dependsOn": ["@perspect3vism/ad4m#build", "@perspect3vism/ad4m-connect#build", "@perspect3vism/ad4m-executor#build", "@perspect3vism/ad4m-test#build"], + "dependsOn": ["@perspect3vism/ad4m#build", "@perspect3vism/ad4m-connect#build", "@perspect3vism/ad4m-executor#build", "@perspect3vism/ad4m-test#build", "@perspect3vism/ad4m-cli#build"], "outputs": ["dist/**", "lib/**", "build/**"] }, "build-languages": { @@ -17,6 +17,11 @@ "outputs": ["dist/**", "lib/**", "build/**"] }, + "ad4m-launcher#package-ad4m": { + "dependsOn": [], + "outputs": ["dist/**"] + }, + "lint": { "outputs": [] }, @@ -32,55 +37,16 @@ "outputs": [] }, "test:macos": { - "dependsOn": ["ad4m-host#package-macos", "test"], + "dependsOn": ["test"], "outputs": [] }, "test:linux": { - "dependsOn": ["ad4m-host#package-linux", "test"], + "dependsOn": ["test"], "outputs": [] }, "test:windows": { - "dependsOn": ["ad4m-host#package-windows", "test"], + "dependsOn": ["test"], "outputs": [] - }, - - "ad4m-host#package-linux": { - "dependsOn": ["^lint", "@perspect3vism/ad4m#build", "@perspect3vism/ad4m-executor#build", "ad4m-host#build"], - "outputs": ["dist/**", "lib/**", "build/**"] - }, - "ad4m-host#package-macos": { - "dependsOn": ["^lint", "@perspect3vism/ad4m#build", "@perspect3vism/ad4m-executor#build", "ad4m-host#build"], - "outputs": ["dist/**", "lib/**", "build/**"] - }, - "ad4m-host#package-windows": { - "dependsOn": ["^lint", "@perspect3vism/ad4m#build", "@perspect3vism/ad4m-executor#build", "ad4m-host#build"], - "outputs": ["dist/**", "lib/**", "build/**"] - }, - - "ad4m-launcher#build-linux": { - "dependsOn": ["ad4m-host#package-linux"], - "outputs": ["dist/**"] - }, - "ad4m-launcher#build-macos": { - "dependsOn": ["ad4m-host#package-macos"], - "outputs": ["dist/**"] - }, - "ad4m-launcher#build-windows": { - "dependsOn": ["ad4m-host#package-windows"], - "outputs": ["dist/**"] - }, - - "ad4m-launcher#build-all-linux": { - "dependsOn": ["ad4m-host#package-linux"], - "outputs": ["dist/**"] - }, - "ad4m-launcher#build-all-macos": { - "dependsOn": ["ad4m-host#package-macos"], - "outputs": ["dist/**"] - }, - "ad4m-launcher#build-all-windows": { - "dependsOn": ["ad4m-host#package-windows"], - "outputs": ["dist/**"] } } } diff --git a/ui/package.json b/ui/package.json index f7ead7130..1ee208762 100644 --- a/ui/package.json +++ b/ui/package.json @@ -28,13 +28,7 @@ "tauri": "tauri", "eject": "vite eject", "build": "vite build", - "build-all": "yarn run build && yarn run tauri -- build -v", - "build-linux": "./scripts/copy-ad4m-host.sh && yarn run build-all", - "build-macos": "./scripts/copy-ad4m-host.sh && yarn run build-all", - "build-windows": "powershell -ExecutionPolicy Bypass -File ./scripts/copy-ad4m-host.ps1 && yarn run build-all", - "build-all-linux": "rm -rf ../target && yarn run build-linux", - "build-all-macos": "rm -rf ../target && yarn run build-macos", - "build-all-windows": "rm -rf ../target && yarn run build-windows" + "package-ad4m": "yarn run build && yarn run tauri -- build -v" }, "eslintConfig": { "extends": [ From 69664de559ab6be55b9d2798a40c49ada3711a56 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 2 Jun 2023 17:10:16 +0300 Subject: [PATCH 311/722] only grab hc when downloading binaries --- download-binaries-linux.sh | 17 ----------------- download-binaries-macos.sh | 18 ------------------ download-binaries-windows.ps1 | 12 +----------- 3 files changed, 1 insertion(+), 46 deletions(-) diff --git a/download-binaries-linux.sh b/download-binaries-linux.sh index 53ff64368..4142893d4 100755 --- a/download-binaries-linux.sh +++ b/download-binaries-linux.sh @@ -11,20 +11,3 @@ if [ ! -f "./executor/temp/binary/hc" ]; then cp ./executor/temp/binary/hc /usr/local/bin/hc fi fi - -if [ ! -f "./executor/temp/binary/holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 - mv holochain-linux-0.1.0 ./executor/temp/binary/holochain - chmod +x ./executor/temp/binary/holochain - - if [ ! -f "/usr/local/bin/holochain" ]; then - echo "Copying holochain to /usr/local/bin" - cp ./executor/temp/binary/holochain /usr/local/bin/holochain - fi -fi - -if [ ! -f "./executor/temp/swipl/bin/swipl" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/swipl-linux-x86.zip - unzip swipl-linux-x86.zip -d ./executor/temp - rm -rf swipl-linux-x64.zip -fi \ No newline at end of file diff --git a/download-binaries-macos.sh b/download-binaries-macos.sh index a595231f8..758917e2d 100755 --- a/download-binaries-macos.sh +++ b/download-binaries-macos.sh @@ -12,21 +12,3 @@ if [ ! -f "./executor/temp/binary/hc" ]; then cp ./executor/temp/binary/hc /usr/local/bin/hc fi fi - -if [ ! -f "./executor/temp/binary/holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-darwin-0.1.0 - mv holochain-darwin-0.1.0 ./executor/temp/binary/holochain - chmod +x ./executor/temp/binary/holochain - - if [ ! -f "/usr/local/bin/holochain" ]; then - echo "Copying holochain to /usr/local/bin" - cp ./executor/temp/binary/holochain /usr/local/bin/holochain - fi -fi - -if [ ! -f "./executor/temp/swipl/bin/swipl" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/swipl-darwin-x86.zip - unzip swipl-darwin-x86.zip -d ./temp - rm -rf ./executor/temp/__MACOSX - rm -rf swipl-linux-x64.zip -fi \ No newline at end of file diff --git a/download-binaries-windows.ps1 b/download-binaries-windows.ps1 index 241000d4e..4a0a0d3e4 100644 --- a/download-binaries-windows.ps1 +++ b/download-binaries-windows.ps1 @@ -1,14 +1,7 @@ -choco install wget --no-progress -choco install swi-prolog - -$env:path += ";C:\Program Files\swipl\bin" - mkdir executor/temp/binary wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./executor/temp/binary/hc.exe -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-windows-0.1.0.exe -O ./executor/temp/binary/holochain.exe - # Global path where the binary should be copied to $global_path = "C:\Windows\System32\" @@ -18,7 +11,4 @@ if (-not (Test-Path $global_path -PathType Container)) { exit 1 } -Copy-Item ./executor/temp/binary/hc.exe $global_path -Copy-Item ./executor/temp/binary/holochain.exe $global_path -$SwiplPath = Get-Command swipl.exe | Select-Object -ExpandProperty Definition -Copy-Item $SwiplPath -Destination ./executor/temp/binary/swipl.exe \ No newline at end of file +Copy-Item ./executor/temp/binary/hc.exe $global_path \ No newline at end of file From a2c937700432b360a39110db614e722dedf9f21d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 2 Jun 2023 17:11:13 +0300 Subject: [PATCH 312/722] remove changeset & ad4m-host! --- .changeset/README.md | 8 - .changeset/config.json | 11 - .gitignore | 4 - executor/src/core/Swipl.test.ts | 27 -- host/.editorconfig | 10 - host/.gitignore | 7 - host/README.md | 247 ------------------ .../hoppscotch-ad4m-graphql-operations.json | 135 ---------- host/mainnet_seed.json | 14 - host/oldestSupportedVersion.js | 3 - host/package.json | 82 ------ host/scripts/copy-swipl.ps1 | 3 - host/scripts/download-binaries-linux.sh | 20 -- host/scripts/download-binaries-macos.sh | 22 -- host/scripts/download-binaries-windows.ps1 | 7 - host/scripts/esbuild.js | 16 -- host/scripts/postinstall.js | 11 - host/src/ad4mDataDirectory.ts | 9 - host/src/cli.ts | 69 ----- host/src/commands/client/agent.ts | 77 ------ host/src/commands/client/expression.ts | 77 ------ host/src/commands/client/languages.ts | 146 ----------- host/src/commands/client/neighbourhood.ts | 63 ----- host/src/commands/client/perspective.ts | 165 ------------ host/src/commands/client/runtime.ts | 166 ------------ host/src/commands/client/util.ts | 49 ---- host/src/commands/init.ts | 171 ------------ host/src/commands/prepare.ts | 94 ------- host/src/commands/serve.ts | 169 ------------ host/src/utils/config.ts | 36 --- host/tsconfig.json | 101 ------- ui/scripts/copy-ad4m-host.ps1 | 5 - ui/scripts/copy-ad4m-host.sh | 20 -- 33 files changed, 2044 deletions(-) delete mode 100644 .changeset/README.md delete mode 100644 .changeset/config.json delete mode 100644 executor/src/core/Swipl.test.ts delete mode 100644 host/.editorconfig delete mode 100644 host/.gitignore delete mode 100644 host/README.md delete mode 100644 host/docs/hoppscotch-ad4m-graphql-operations.json delete mode 100644 host/mainnet_seed.json delete mode 100644 host/oldestSupportedVersion.js delete mode 100644 host/package.json delete mode 100644 host/scripts/copy-swipl.ps1 delete mode 100755 host/scripts/download-binaries-linux.sh delete mode 100755 host/scripts/download-binaries-macos.sh delete mode 100644 host/scripts/download-binaries-windows.ps1 delete mode 100644 host/scripts/esbuild.js delete mode 100644 host/scripts/postinstall.js delete mode 100644 host/src/ad4mDataDirectory.ts delete mode 100644 host/src/cli.ts delete mode 100644 host/src/commands/client/agent.ts delete mode 100644 host/src/commands/client/expression.ts delete mode 100644 host/src/commands/client/languages.ts delete mode 100644 host/src/commands/client/neighbourhood.ts delete mode 100644 host/src/commands/client/perspective.ts delete mode 100644 host/src/commands/client/runtime.ts delete mode 100644 host/src/commands/client/util.ts delete mode 100644 host/src/commands/init.ts delete mode 100644 host/src/commands/prepare.ts delete mode 100644 host/src/commands/serve.ts delete mode 100644 host/src/utils/config.ts delete mode 100644 host/tsconfig.json delete mode 100644 ui/scripts/copy-ad4m-host.ps1 delete mode 100755 ui/scripts/copy-ad4m-host.sh diff --git a/.changeset/README.md b/.changeset/README.md deleted file mode 100644 index e5b6d8d6a..000000000 --- a/.changeset/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Changesets - -Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works -with multi-package repos, or single-package repos to help you version and publish your code. You can -find the full documentation for it [in our repository](https://github.com/changesets/changesets) - -We have a quick list of common questions to get you started engaging with this project in -[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index 0a4a640a5..000000000 --- a/.changeset/config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@2.2.0/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": false, - "fixed": [], - "linked": [], - "access": "public", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "ignore": ["ad4m-host", "ad4m-launcher"] -} diff --git a/.gitignore b/.gitignore index ffb51a54f..76a384e76 100644 --- a/.gitignore +++ b/.gitignore @@ -20,10 +20,6 @@ docs-src/api.md docs-src/typedoc docs-src/_book -host/dist -host/build - - ui/build ui/src-tauri/bins ui/.pnp diff --git a/executor/src/core/Swipl.test.ts b/executor/src/core/Swipl.test.ts deleted file mode 100644 index a9161dea4..000000000 --- a/executor/src/core/Swipl.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -//@ts-ignore -import swipl from 'swipl-stdio' -import { expect } from "chai"; -import path from 'path'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -describe('swipl', () => { - it('can call Prolog predicate', async () => { - const engine = new swipl.Engine(path.join(__dirname, '../tst-tmp', 'swipl')); - const query = await engine.createQuery('member(X, [1,2,3,4])'); - let allMatches = [] - try { - let ret = null; - while (ret = await query.next()) { - //@ts-ignore - allMatches.push(ret.X) - } - } finally { - await query.close() - } - - expect(allMatches).to.be.deep.equal([1,2,3,4]) - }) -}) diff --git a/host/.editorconfig b/host/.editorconfig deleted file mode 100644 index 303d02980..000000000 --- a/host/.editorconfig +++ /dev/null @@ -1,10 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true - -[*.{ts,js,json,yml}] -charset = utf-8 -indent_style = space -indent_size = 2 diff --git a/host/.gitignore b/host/.gitignore deleted file mode 100644 index a6ab670b1..000000000 --- a/host/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -temp -.DS_Store -dist -build -default.nix -swipl-* \ No newline at end of file diff --git a/host/README.md b/host/README.md deleted file mode 100644 index 8c66eb009..000000000 --- a/host/README.md +++ /dev/null @@ -1,247 +0,0 @@ -# Ad4m Host - -This is command-line program to host ad4m service and request to the service with build-in commands. - -## Usage - -Dowload the latest program on the [Release page](https://github.com/fluxsocial/ad4m-host/releases), here take Mac os as example, - -```shell -wget -O ad4m https://github.com/fluxsocial/ad4m-host/releases/download/v0.0.2/ad4m-macos-x64 -chmod +x ./ad4m -``` - -Get help inforamtion for available commands, - -```shell -./ad4m -h -./ad4m serve -h -./ad4m agent -h -``` - -Initialize the dependencies by coping the holochain binaries (**Required**), - -```shell -# Initializes the ad4m-host with default config -./ad4m init - -# Initalize ad4m-host with different environment using dataPath flag -./ad4m init --dataPath ad4m-host --networkBootstrapSeed ./custom_seed.json - -# To override the environment you can use overrideConfig flag -./ad4m init --dataPath ad4m-host --networkBootstrapSeed ./custom_seed.json --overrideConfig -``` - -Run ad4m service with or without connecting to an existing running holochain process, - -```shell - # connect with existing running holochain process -./ad4m serve --connectHolochain - -# start its own holochain process (will use the default environment i.e ad4m) -./ad4m serve - -# will start holochain process for this environment -./ad4m serve --dataPath environment_name - -# Start server with only languageLanguage and ignore other languages -./ad4m serve --languageLanguageOnly - -# Pass custom bootstrap languages & perspective -./ad4m serve --bootstrapLanguage ./bootstrap_language.json --bootstrapPerspective ./bootstrap_perspective.json -``` - -When running the AD4M executor for the very first time, we need to generate an agent (i.e. DID and keys) with: - -```shell -./ad4m agent generate -``` - -After restart the ad4m service, it's usually necessary to check agent status and unlock the agent with passphrase, - -```shell -./ad4m agent status -./ad4m agent unlock -``` - -**Create an expression,** - -```shell -# show all the downloaded languages -./ad4m languages get --all - -# install the note-ipfs language with its address -./ad4m languages get --address QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL - -# if got "not a trustedAgent error", try add a trusted agent with the language creator's did -./ad4m runtime addTrustedAgent --did "did:key:zQ3shfhvaHzE81hZqLorVNDmq971EpGPXq3nhyLF1JRP18LM3" - -# create an expression with note-ipfs language, return the url of the expression -./ad4m expression create --content "This is a test note" --address QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL - -# get the expression with its url -./ad4m expression get --url "QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL://QmSsCCtXMDAZXMpyiNLzwjGEU4hLmhG7fphidhEEodQ4Wy" -``` - -**Publish a language,** - -```shell -# publish a template langauge by replacing the path and meta params. -# you can also omit the path and meta params, and input them interactively. -# it should give the address of the language. -./ad4m languages publish --path "/Users/kaichaosun/github/holo/ad4m-languages/release/shortform/bundle.js" --meta '{"name":"shortform-expression","description":"Shortform expression for flux application","possibleTemplateParams":["uid","name"],"sourceCodeLink":"https://github.com/juntofoundation/ad4m-languages"}' - -# check the metadata of the template language -./ad4m languages meta --address QmWN1LBR3Zzx3yE7mncf93BPna8RbwtkSrYxTETktfpUyJ - -# publish a language by appling template data to a template language -# it should give the address of the templated language -./ad4m languages applyTemplateAndPublish --address QmWN1LBR3Zzx3yE7mncf93BPna8RbwtkSrYxTETktfpUyJ --templateData '{"uid":"123","name":"test-shortform-expression"}' - -# check the metadata of the templated language -./ad4m languages meta --address QmX2e2MaN9ayWaoA4MRhjjVw72RqgxUh7v7SWNbU5Kebpq -``` - -**Create a perspective, and turns it into a neighbourhood** - -```shell -# shall all perspectives -./ad4m perspective get --all - -# add a new perspective -# it should give a random unique ID that is used to reference it -./ad4m perspective add --name "A new perspective" - -# get a specific perspective -./ad4m perspective get --uuid "22bdcd2b-44c4-416b-a9b8-8db089a361b0" - -# add link to a perspective -# link contains a source, target and optional predicate -# in this example, the source is root, target is the note-ipfs expression we just created -./ad4m perspective addLink --uuid "22bdcd2b-44c4-416b-a9b8-8db089a361b0" --link '{"source":"root","target":"QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL://QmSsCCtXMDAZXMpyiNLzwjGEU4hLmhG7fphidhEEodQ4Wy"}' - -# a perspective can be shared by publish it, aka turning it into a neighbourhood. -# we need a language to store links, here we use social-context link language by templating it. -# it should give the address of our link language. -./ad4m languages applyTemplateAndPublish --address QmbCKYo6fWgEP7PiqoYH1jKiJHWFCnGUmwxDfUUEjXQvXB --templateData '{"uid":"123","name":"test-social-context"}' - -# check the metadata of our link language -./ad4m languages meta --address QmYHx1LzwWevEH2dkyEzF3c5ALCHc1PcyBHwukVUdBLFBU - -# publish perspective into neighbourhood with perspective id and link language address -# it should give the url of the neighbourhood, and further used to join the neighbourhood by other users -./ad4m neighbourhood publishFromPerspective --uuid "22bdcd2b-44c4-416b-a9b8-8db089a361b0" --address "QmYHx1LzwWevEH2dkyEzF3c5ALCHc1PcyBHwukVUdBLFBU" --meta '{"links":[]}' - -# another user can join a neighbourhood -# it should give the id of a new perspective -./ad4m neighbourhood joinFromUrl --url 'neighbourhood://QmQggyZvTNkPJQM8m3439kCse5ZRRDAdD7NDR64xv5gTjm' - -# the link added to a neighbourhood will be synced to another user and available to query -# it should give the links which usually contains the expression url in target -./ad4m perspective queryLinks --uuid "ac9e5301-fbf0-4049-abf6-c26f0959d93e" --query "{}" - -# query the expression via url -./ad4m expression get --url "QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL://QmSsCCtXMDAZXMpyiNLzwjGEU4hLmhG7fphidhEEodQ4Wy" -``` - -## Development - -Install dependencies, - -```shell -npm install -``` - -Prepare holochain binaries and bootstrap languages, - -```shell -npm run download-binaries-macos/windows/linux (choose your correct OS) -``` - -Local development without installing any binary, - -```shell -npm run dev # start ad4m service -``` - -To build the binary package, - -```shell -npm run package-macos/windows/linux (choose your correct OS) -``` - -## Operate with GraphQL - -A handly online GraphQL client, https://hoppscotch.io/graphql. You can also save the querys and import/export the collections. - -You can also use this pre-exported [collection](docs/hoppscotch-ad4m-graphql-operations.json). - -### Examples - -**query agent status**, - -```graphql -query agentStatus { - agentStatus { - did - didDocument - error - isInitialized - isUnlocked - } -} -``` - -**unlock agent**, - -```graphql -mutation agentUnlock($passphrase: String!) { - agentUnlock(passphrase: $passphrase) { - isInitialized - isUnlocked - did - error - } -} -``` - -variables, - -```json -{ "passphrase": "yourpassword" } -``` - -**publish a language**, - -```graphql -mutation languagePublish( - $languageMeta: LanguageMetaInput! - $languagePath: String! -) { - languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) { - name - address - author - description - possibleTemplateParams - sourceCodeLink - templateAppliedParams - templateSourceLanguageAddress - templated - } -} -``` - -variables, - -```json -{ - "languageMeta": { - "name": "shortform-expression", - "description": "Shortform expression for flux application", - "possibleTemplateParams": ["uid", "name"], - "sourceCodeLink": "https://github.com/juntofoundation/ad4m-languages" - }, - "languagePath": "your-language-path" -} -``` diff --git a/host/docs/hoppscotch-ad4m-graphql-operations.json b/host/docs/hoppscotch-ad4m-graphql-operations.json deleted file mode 100644 index f0fa0b002..000000000 --- a/host/docs/hoppscotch-ad4m-graphql-operations.json +++ /dev/null @@ -1,135 +0,0 @@ -[ - { - "name": "ad4m", - "v": 1, - "requests": [ - { - "v": 1, - "headers": [ - { - "active": true, - "value": "", - "key": "" - } - ], - "variables": "{ \"id\": \"1\" }", - "url": "http://127.0.0.1:4000/graphql", - "query": "query agentStatus {\n agentStatus {\n did\n didDocument\n error\n isInitialized\n isUnlocked\n }\n}\n", - "name": "ad4m agent status" - }, - { - "url": "http://127.0.0.1:4000/graphql", - "name": "ad4m agent unlock", - "headers": [ - { - "value": "", - "key": "", - "active": true - } - ], - "v": 1, - "query": "mutation agentUnlock($passphrase: String!) {\n agentUnlock(passphrase: $passphrase) {\n isInitialized\n isUnlocked\n did\n error\n }\n}\n", - "variables": "{ \"passphrase\": \"123456\" }" - }, - { - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "variables": "{ \n \"languageMeta\": {\n \"name\": \"shortform-expression\",\n \"description\": \"Shortform expression for flux application\",\n \"possibleTemplateParams\": [\"uid\", \"name\"],\n \"sourceCodeLink\": \"https://github.com/juntofoundation/ad4m-languages\"\n },\n \"languagePath\": \"/Users/kaichaosun/github/holo/ad4m-languages/release/shortform/bundle.js\"\n}", - "headers": [ - { - "active": true, - "key": "", - "value": "" - } - ], - "v": 1, - "url": "http://127.0.0.1:4000/graphql", - "name": "ad4m publish shortform language" - }, - { - "url": "http://127.0.0.1:4000/graphql", - "headers": [ - { - "value": "", - "key": "", - "active": true - } - ], - "v": 1, - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "variables": "{ \n \"languageMeta\": {\n \"name\": \"social-context\",\n \"description\": \"Link sharing for ad4m neighbourhoods\",\n \"possibleTemplateParams\": [\"uid\", \"name\"],\n \"sourceCodeLink\": \"https://github.com/juntofoundation/Social-Context\"\n },\n \"languagePath\": \"/Users/kaichaosun/Downloads/bundle.js\"\n}", - "name": "ad4m publish social context" - }, - { - "v": 1, - "name": "ad4m language meta", - "variables": "{ \n \"address\": \"QmeG3xVQEqdXwjR4ceYuVEaL7x51RdUUY8A4hbNpbaVmxY\"\n}", - "headers": [ - { - "active": true, - "key": "", - "value": "" - } - ], - "url": "http://127.0.0.1:4000/graphql", - "query": "query languageMeta($address: String!) {\n languageMeta(address: $address) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n" - }, - { - "variables": "{ \n \"languageMeta\": {\n \"name\": \"group-expression\",\n \"description\": \"Group expression for flux application\",\n \"possibleTemplateParams\": [\"uid\", \"name\"],\n \"sourceCodeLink\": \"https://github.com/juntofoundation/ad4m-languages\"\n },\n \"languagePath\": \"/Users/kaichaosun/github/holo/ad4m-languages/release/group/bundle.js\"\n}", - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "url": "http://127.0.0.1:4000/graphql", - "name": "ad4m publish group language", - "headers": [ - { - "value": "", - "key": "", - "active": true - } - ], - "v": 1 - }, - { - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "url": "http://127.0.0.1:4000/graphql", - "name": "ad4m publish profile expression", - "v": 1, - "headers": [ - { - "active": true, - "key": "", - "value": "" - } - ], - "variables": "{ \n \"languageMeta\": {\n \"name\": \"profile-expression\",\n \"description\": \"Profile expression for flux application\",\n \"possibleTemplateParams\": [\"uid\", \"name\"],\n \"sourceCodeLink\": \"https://github.com/jdeepee/profiles\"\n },\n \"languagePath\": \"/Users/kaichaosun/github/holo/josh/profiles/build/bundle.js\"\n}" - }, - { - "name": "ad4m publish note ipfs expression", - "v": 1, - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "headers": [ - { - "value": "", - "active": true, - "key": "" - } - ], - "url": "http://127.0.0.1:4000/graphql", - "variables": "{ \n \"languageMeta\": {\n \"name\": \"note-ipfs\",\n \"description\": \"Language for storing data in ipfs\",\n \"possibleTemplateParams\": [],\n \"sourceCodeLink\": \"https://github.com/perspect3vism/lang-note-ipfs\"\n },\n \"languagePath\": \"/Users/kaichaosun/Downloads/QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL\"\n}" - }, - { - "v": 1, - "variables": "{ \n \"languageMeta\": {\n \"name\": \"ui-bundle-expression\",\n \"description\": \"UI bundle expression for flux application\",\n \"possibleTemplateParams\": [],\n \"sourceCodeLink\": \"https://github.com/juntofoundation/file-store-languages\"\n },\n \"languagePath\": \"/Users/kaichaosun/github/holo/file-store-languages/release/ui-bundle-store.js\"\n}", - "url": "http://127.0.0.1:4000/graphql", - "headers": [ - { - "active": true, - "value": "", - "key": "" - } - ], - "query": "mutation languagePublish($languageMeta: LanguageMetaInput!, $languagePath: String!) {\n languagePublish(languageMeta: $languageMeta, languagePath: $languagePath) {\n name\n address\n author\n description\n possibleTemplateParams\n sourceCodeLink\n templateAppliedParams\n templateSourceLanguageAddress\n templated\n }\n}\n", - "name": "ad4m publish ui bundle language" - } - ], - "folders": [] - } -] \ No newline at end of file diff --git a/host/mainnet_seed.json b/host/mainnet_seed.json deleted file mode 100644 index b851c4a80..000000000 --- a/host/mainnet_seed.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "trustedAgents": [ - "did:key:zQ3shh5eZoXQAbHwUwyypdEd4knEpsaUnLwrjSxjNmHMVPBqQ", - "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" - ], - "knownLinkLanguages": [ - "QmdTbh2uSJj62XFmDzRHTRr65bk6p8aHBQFQ6ZDpQfxFpc" - ], - "directMessageLanguage": "QmXR4MZqxqdPmSnCNF24f82EkvahwgXW3FKzGWPZrdC8qb", - "agentLanguage": "QmVYQxroapbRebjjbZnjKSTQBsqvk5sEBCcyiEKyBRXKLo", - "perspectiveLanguage": "QmYRCZkyZJ7axzPcNCizgEqkjXwvC2nu2UR1M31geggx4W", - "neighbourhoodLanguage": "QmNLtgDrjri7DzqDohmQUKJzr5fXVAN95K4VhMr9GhM9ia", - "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar http = require('http');\nvar https = require('https');\nvar url = require('url');\nvar stream = require('stream');\nvar assert = require('assert');\nvar tty = require('tty');\nvar util = require('util');\nvar fs = require('fs');\nvar net = require('net');\nvar zlib = require('zlib');\nvar os = require('os');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar http__default = /*#__PURE__*/_interopDefaultLegacy(http);\nvar https__default = /*#__PURE__*/_interopDefaultLegacy(https);\nvar url__default = /*#__PURE__*/_interopDefaultLegacy(url);\nvar stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);\nvar assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);\nvar tty__default = /*#__PURE__*/_interopDefaultLegacy(tty);\nvar util__default = /*#__PURE__*/_interopDefaultLegacy(util);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\nvar net__default = /*#__PURE__*/_interopDefaultLegacy(net);\nvar zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);\nvar os__default = /*#__PURE__*/_interopDefaultLegacy(os);\n\nvar bind = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer$1(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString$1(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction$1(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction$1(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nvar utils = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer$1,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString$1,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction$1,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nvar buildURL = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nvar InterceptorManager_1 = InterceptorManager;\n\nvar normalizeHeaderName = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nvar enhanceError = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n\nvar transitional = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nvar createError = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nvar settle = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\nvar cookies = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nvar isAbsoluteURL = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nvar combineURLs = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nvar buildFullPath = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\nvar isURLSameOrigin = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nvar Cancel_1 = Cancel;\n\nvar xhr = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional$1 = config.transitional || transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nvar ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\nvar debug$1 = createCommonjsModule(function (module, exports) {\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = ms;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n});\n\nvar browser = createCommonjsModule(function (module, exports) {\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n});\n\nvar node = createCommonjsModule(function (module, exports) {\n/**\n * Module dependencies.\n */\n\n\n\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util__default[\"default\"].deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')();\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty__default[\"default\"].isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util__default[\"default\"].format.apply(util__default[\"default\"], arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty__default[\"default\"].WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = fs__default[\"default\"];\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = net__default[\"default\"];\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n});\n\nvar src = createCommonjsModule(function (module) {\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = browser;\n} else {\n module.exports = node;\n}\n});\n\nvar debug;\n\nvar debug_1 = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = src(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n\nvar URL = url__default[\"default\"].URL;\n\n\nvar Writable = stream__default[\"default\"].Writable;\n\n\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url__default[\"default\"].format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url__default[\"default\"].parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url__default[\"default\"].format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url__default[\"default\"].resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug_1(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url__default[\"default\"].parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = url__default[\"default\"].parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert__default[\"default\"].equal(options.protocol, protocol, \"protocol mismatch\");\n debug_1(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert__default[\"default\"](isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nvar followRedirects = wrap({ http: http__default[\"default\"], https: https__default[\"default\"] });\nvar wrap_1 = wrap;\nfollowRedirects.wrap = wrap_1;\n\nvar data = {\n \"version\": \"0.26.1\"\n};\n\nvar httpFollow = followRedirects.http;\nvar httpsFollow = followRedirects.https;\n\n\nvar VERSION$1 = data.version;\n\n\n\n\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nvar http_1 = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION$1;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url__default[\"default\"].parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url__default[\"default\"].parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https__default[\"default\"] : http__default[\"default\"];\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib__default[\"default\"].createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional$1 = config.transitional || transitional;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = xhr;\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = http_1;\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitional,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults_1 = defaults;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nvar transformData = function transformData(data, headers, fns) {\n var context = this || defaults_1;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n\nvar isCancel = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel_1('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nvar dispatchRequest = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults_1.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nvar mergeConfig = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n\nvar VERSION = data.version;\n\nvar validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nvar validator = {\n assertOptions: assertOptions,\n validators: validators$1\n};\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_1(),\n response: new InterceptorManager_1()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nvar Axios_1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel_1(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nvar CancelToken_1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nvar spread = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nvar isAxiosError = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios_1(defaultConfig);\n var instance = bind(Axios_1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios_1.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios$1 = createInstance(defaults_1);\n\n// Expose Axios class to allow class inheritance\naxios$1.Axios = Axios_1;\n\n// Expose Cancel & CancelToken\naxios$1.Cancel = Cancel_1;\naxios$1.CancelToken = CancelToken_1;\naxios$1.isCancel = isCancel;\naxios$1.VERSION = data.version;\n\n// Expose all/spread\naxios$1.all = function all(promises) {\n return Promise.all(promises);\n};\naxios$1.spread = spread;\n\n// Expose isAxiosError\naxios$1.isAxiosError = isAxiosError;\n\nvar axios_1 = axios$1;\n\n// Allow use of default import syntax in TypeScript\nvar _default = axios$1;\naxios_1.default = _default;\n\nvar axios = axios_1;\n\ncreateCommonjsModule(function (module) {\n// Generated by CoffeeScript 2.5.1\n(function() {\n // This file's name is set up in such a way that it will always show up first in\n // the list of files given to coffee --join, so that the other files can assume\n // that XMLHttpRequestEventTarget was already defined.\n\n // The DOM EventTarget subclass used by XMLHttpRequest.\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n var InvalidStateError, NetworkError, ProgressEvent, SecurityError, SyntaxError, XMLHttpRequest, XMLHttpRequestEventTarget, XMLHttpRequestUpload, http, https, os, url;\n\n XMLHttpRequestEventTarget = (function() {\n class XMLHttpRequestEventTarget {\n // @private\n // This is an abstract class and should not be instantiated directly.\n constructor() {\n this.onloadstart = null;\n this.onprogress = null;\n this.onabort = null;\n this.onerror = null;\n this.onload = null;\n this.ontimeout = null;\n this.onloadend = null;\n this._listeners = {};\n }\n\n // Adds a new-style listener for one of the XHR events.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#events\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener function that will be called when\n // the event fires\n // @return {undefined} undefined\n addEventListener(eventType, listener) {\n var base;\n eventType = eventType.toLowerCase();\n (base = this._listeners)[eventType] || (base[eventType] = []);\n this._listeners[eventType].push(listener);\n return void 0;\n }\n\n // Removes an event listener added by calling addEventListener.\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener the value passed in a previous\n // call to addEventListener.\n // @return {undefined} undefined\n removeEventListener(eventType, listener) {\n var index;\n eventType = eventType.toLowerCase();\n if (this._listeners[eventType]) {\n index = this._listeners[eventType].indexOf(listener);\n if (index !== -1) {\n this._listeners[eventType].splice(index, 1);\n }\n }\n return void 0;\n }\n\n // Calls all the listeners for an event.\n\n // @param {ProgressEvent} event the event to be dispatched\n // @return {undefined} undefined\n dispatchEvent(event) {\n var eventType, j, len, listener, listeners;\n event.currentTarget = event.target = this;\n eventType = event.type;\n if (listeners = this._listeners[eventType]) {\n for (j = 0, len = listeners.length; j < len; j++) {\n listener = listeners[j];\n listener.call(this, event);\n }\n }\n if (listener = this[`on${eventType}`]) {\n listener.call(this, event);\n }\n return void 0;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadstart' event\n XMLHttpRequestEventTarget.prototype.onloadstart = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'progress' event\n XMLHttpRequestEventTarget.prototype.onprogress = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'abort' event\n XMLHttpRequestEventTarget.prototype.onabort = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'error' event\n XMLHttpRequestEventTarget.prototype.onerror = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'load' event\n XMLHttpRequestEventTarget.prototype.onload = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'timeout' event\n XMLHttpRequestEventTarget.prototype.ontimeout = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadend' event\n XMLHttpRequestEventTarget.prototype.onloadend = null;\n\n return XMLHttpRequestEventTarget;\n\n }).call(this);\n\n // This file's name is set up in such a way that it will always show up second\n // in the list of files given to coffee --join, so it can use the\n // XMLHttpRequestEventTarget definition and so that the other files can assume\n // that XMLHttpRequest was already defined.\n http = http__default[\"default\"];\n\n https = https__default[\"default\"];\n\n os = os__default[\"default\"];\n\n url = url__default[\"default\"];\n\n XMLHttpRequest = (function() {\n // The ECMAScript HTTP API.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#introduction\n class XMLHttpRequest extends XMLHttpRequestEventTarget {\n // Creates a new request.\n\n // @param {Object} options one or more of the options below\n // @option options {Boolean} anon if true, the request's anonymous flag\n // will be set\n // @see http://www.w3.org/TR/XMLHttpRequest/#constructors\n // @see http://www.w3.org/TR/XMLHttpRequest/#anonymous-flag\n constructor(options) {\n super();\n this.onreadystatechange = null;\n this._anonymous = options && options.anon;\n this.readyState = XMLHttpRequest.UNSENT;\n this.response = null;\n this.responseText = '';\n this.responseType = '';\n this.responseURL = '';\n this.status = 0;\n this.statusText = '';\n this.timeout = 0;\n this.upload = new XMLHttpRequestUpload(this);\n this._method = null; // String\n this._url = null; // Return value of url.parse()\n this._sync = false;\n this._headers = null; // Object\n this._loweredHeaders = null; // Object\n this._mimeOverride = null;\n this._request = null; // http.ClientRequest\n this._response = null; // http.ClientResponse\n this._responseParts = null; // Array\n this._responseHeaders = null; // Object\n this._aborting = null;\n this._error = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n }\n\n // Sets the XHR's method, URL, synchronous flag, and authentication params.\n\n // @param {String} method the HTTP method to be used\n // @param {String} url the URL that the request will be made to\n // @param {?Boolean} async if false, the XHR should be processed\n // synchronously; true by default\n // @param {?String} user the user credential to be used in HTTP basic\n // authentication\n // @param {?String} password the password credential to be used in HTTP basic\n // authentication\n // @return {undefined} undefined\n // @throw {SecurityError} method is not one of the allowed methods\n // @throw {SyntaxError} urlString is not a valid URL\n // @throw {Error} the URL contains an unsupported protocol; the supported\n // protocols are file, http and https\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n open(method, url, async, user, password) {\n var xhrUrl;\n method = method.toUpperCase();\n if (method in this._restrictedMethods) {\n throw new SecurityError(`HTTP method ${method} is not allowed in XHR`);\n }\n xhrUrl = this._parseUrl(url);\n if (async === void 0) {\n async = true;\n }\n switch (this.readyState) {\n case XMLHttpRequest.UNSENT:\n case XMLHttpRequest.OPENED:\n case XMLHttpRequest.DONE:\n break;\n case XMLHttpRequest.HEADERS_RECEIVED:\n case XMLHttpRequest.LOADING:\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n return void 0;\n }\n\n // Appends a header to the list of author request headers.\n\n // @param {String} name the HTTP header name\n // @param {String} value the HTTP header value\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @throw {SyntaxError} name is not a valid HTTP header name or value is not\n // a valid HTTP header value\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n setRequestHeader(name, value) {\n var loweredName;\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec\\-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(`Refused to set unsafe header \\\"${name}\\\"`);\n return void 0;\n }\n value = value.toString();\n if (loweredName in this._loweredHeaders) {\n // Combine value with the existing header value.\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + ', ' + value;\n } else {\n // New header.\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n return void 0;\n }\n\n // Initiates the request.\n\n // @param {?String, ?ArrayBufferView} data the data to be sent; ignored for\n // GET and HEAD requests\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n send(data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n if (this._request) {\n throw new InvalidStateError(\"send() already called\");\n }\n switch (this._url.protocol) {\n case 'file:':\n this._sendFile(data);\n break;\n case 'http:':\n case 'https:':\n this._sendHttp(data);\n break;\n default:\n throw new NetworkError(`Unsupported protocol ${this._url.protocol}`);\n }\n return void 0;\n }\n\n // Cancels the network activity performed by this request.\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method\n abort() {\n if (!this._request) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n return void 0;\n }\n\n // Returns a header value in the HTTP response for this XHR.\n\n // @param {String} name case-insensitive HTTP header name\n // @return {?String} value the value of the header whose name matches the\n // given name, or null if there is no such header\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n getResponseHeader(name) {\n var loweredName;\n if (!this._responseHeaders) {\n return null;\n }\n loweredName = name.toLowerCase();\n if (loweredName in this._responseHeaders) {\n return this._responseHeaders[loweredName];\n } else {\n return null;\n }\n }\n\n // Returns all the HTTP headers in this XHR's response.\n\n // @return {String} header lines separated by CR LF, where each header line\n // has the name and value separated by a \": \" (colon, space); the empty\n // string is returned if the headers are not available\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n getAllResponseHeaders() {\n var lines, name, value;\n if (!this._responseHeaders) {\n return '';\n }\n lines = (function() {\n var ref, results;\n ref = this._responseHeaders;\n results = [];\n for (name in ref) {\n value = ref[name];\n results.push(`${name}: ${value}`);\n }\n return results;\n }).call(this);\n return lines.join(\"\\r\\n\");\n }\n\n // Overrides the Content-Type\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-overridemimetype()-method\n overrideMimeType(newMimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new InvalidStateError(\"overrideMimeType() not allowed in LOADING or DONE\");\n }\n this._mimeOverride = newMimeType.toLowerCase();\n return void 0;\n }\n\n // Network configuration not exposed in the XHR API.\n\n // Although the XMLHttpRequest specification calls itself \"ECMAScript HTTP\",\n // it assumes that requests are always performed in the context of a browser\n // application, where some network parameters are set by the browser user and\n // should not be modified by Web applications. This API provides access to\n // these network parameters.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the value for the nodejsHttpAgent\n // property (the agent used for HTTP requests)\n // @option options {?https.Agent} httpsAgent the value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n nodejsSet(options) {\n var baseUrl, parsedUrl;\n if ('httpAgent' in options) {\n this.nodejsHttpAgent = options.httpAgent;\n }\n if ('httpsAgent' in options) {\n this.nodejsHttpsAgent = options.httpsAgent;\n }\n if ('baseUrl' in options) {\n baseUrl = options.baseUrl;\n if (baseUrl !== null) {\n parsedUrl = url.parse(baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = baseUrl;\n }\n return void 0;\n }\n\n // Default settings for the network configuration not exposed in the XHR API.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the default value for the\n // nodejsHttpAgent property (the agent used for HTTP requests)\n // @option options {https.Agent} httpsAgent the default value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n // @see XMLHttpRequest.nodejsSet\n static nodejsSet(options) {\n // \"this\" will be set to XMLHttpRequest.prototype, so the instance nodejsSet\n // operates on default property values.\n XMLHttpRequest.prototype.nodejsSet(options);\n return void 0;\n }\n\n // Sets the readyState property and fires the readystatechange event.\n\n // @private\n // @param {Number} newReadyState the new value of readyState\n // @return {undefined} undefined\n _setReadyState(newReadyState) {\n var event;\n this.readyState = newReadyState;\n event = new ProgressEvent('readystatechange');\n this.dispatchEvent(event);\n return void 0;\n }\n\n // XMLHttpRequest#send() implementation for the file: protocol.\n\n // @private\n _sendFile() {\n if (this._url.method !== 'GET') {\n throw new NetworkError('The file protocol only supports GET');\n }\n throw new Error(\"Protocol file: not implemented\");\n }\n\n // XMLHttpRequest#send() implementation for the http: and https: protocols.\n\n // @private\n // This method sets the instance variables and calls _sendHxxpRequest(), which\n // is responsible for building a node.js request and firing it off. The code\n // in _sendHxxpRequest() is separated off so it can be reused when handling\n // redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHttp(data) {\n if (this._sync) {\n throw new Error(\"Synchronous XHR processing not implemented\");\n }\n if ((data != null) && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(`Discarding entity body for ${this._method} requests`);\n data = null;\n } else {\n // Send Content-Length: 0\n data || (data = '');\n }\n // NOTE: this is called before finalizeHeaders so that the uploader can\n // figure out Content-Length and Content-Type.\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return void 0;\n }\n\n // Sets up and fires off a HTTP/HTTPS request using the node.js API.\n\n // @private\n // This method contains the bulk of the XMLHttpRequest#send() implementation,\n // and is also used to issue new HTTP requests when handling HTTP redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHxxpRequest() {\n var agent, hxxp, request;\n if (this._url.protocol === 'http:') {\n hxxp = http;\n agent = this.nodejsHttpAgent;\n } else {\n hxxp = https;\n agent = this.nodejsHttpsAgent;\n }\n request = hxxp.request({\n hostname: this._url.hostname,\n port: this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, () => {\n return this._onHttpTimeout(request);\n });\n }\n request.on('response', (response) => {\n return this._onHttpResponse(request, response);\n });\n request.on('error', (error) => {\n return this._onHttpRequestError(request, error);\n });\n this.upload._startUpload(request);\n if (this._request === request) { // An http error might have already fired.\n this._dispatchProgress('loadstart');\n }\n return void 0;\n }\n\n // Fills in the restricted HTTP headers with default values.\n\n // This is called right before the HTTP request is sent off.\n\n // @private\n // @return {undefined} undefined\n _finalizeHeaders() {\n var base;\n this._headers['Connection'] = 'keep-alive';\n this._headers['Host'] = this._url.host;\n if (this._anonymous) {\n this._headers['Referer'] = 'about:blank';\n }\n (base = this._headers)['User-Agent'] || (base['User-Agent'] = this._userAgent);\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n return void 0;\n }\n\n // Called when the headers of an HTTP response have been received.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // produced this response\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // passed to\n _onHttpResponse(request, response) {\n var lengthString;\n if (this._request !== request) {\n return;\n }\n // Transparent redirection handling.\n switch (response.statusCode) {\n case 301:\n case 302:\n case 303:\n case 307:\n case 308:\n this._url = this._parseUrl(response.headers['location']);\n this._method = 'GET';\n if ('content-type' in this._loweredHeaders) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n // XMLHttpRequestUpload#_finalizeHeaders() sets Content-Type directly.\n if ('Content-Type' in this._headers) {\n delete this._headers['Content-Type'];\n }\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', (data) => {\n return this._onHttpResponseData(response, data);\n });\n this._response.on('end', () => {\n return this._onHttpResponseEnd(response);\n });\n this._response.on('close', () => {\n return this._onHttpResponseClose(response);\n });\n this.responseURL = this._url.href.split('#')[0];\n this.status = this._response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n if (lengthString = this._responseHeaders['content-length']) {\n this._totalBytes = parseInt(lengthString);\n this._lengthComputable = true;\n } else {\n this._lengthComputable = false;\n }\n return this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n }\n\n // Called when some data has been received on a HTTP connection.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n // @param {String, Buffer} data the data that has been received\n _onHttpResponseData(response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(data);\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n return this._dispatchProgress('progress');\n }\n\n // Called when the HTTP request finished processing.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseEnd(response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the underlying HTTP connection was closed prematurely.\n\n // If this method is called, it will be called after or instead of\n // onHttpResponseEnd.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseClose(response) {\n var request;\n if (this._response !== response) {\n return;\n }\n request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the timeout set on the HTTP socket expires.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n _onHttpTimeout(request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n return this._dispatchProgress('loadend');\n }\n\n // Called when something wrong happens on the HTTP socket\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n // @param {Error} error emitted exception\n _onHttpRequestError(request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Fires an XHR progress event.\n\n // @private\n // @param {String} eventType one of the XHR progress event types, such as\n // 'load' and 'progress'\n _dispatchProgress(eventType) {\n var event;\n event = new ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n return void 0;\n }\n\n // Sets up the XHR to reflect the fact that an error has occurred.\n\n // The possible errors are a network error, a timeout, or an abort.\n\n // @private\n _setError() {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n return void 0;\n }\n\n // Parses a request URL string.\n\n // @private\n // This method is a thin wrapper around url.parse() that normalizes HTTP\n // user/password credentials. It is used to parse the URL string passed to\n // XMLHttpRequest#open() and the URLs in the Location headers of HTTP redirect\n // responses.\n\n // @param {String} urlString the URL to be parsed\n // @return {Object} parsed URL\n _parseUrl(urlString) {\n var absoluteUrlString, index, password, user, xhrUrl;\n if (this.nodejsBaseUrl === null) {\n absoluteUrlString = urlString;\n } else {\n absoluteUrlString = url.resolve(this.nodejsBaseUrl, urlString);\n }\n xhrUrl = url.parse(absoluteUrlString, false, true);\n xhrUrl.hash = null;\n if (xhrUrl.auth && ((typeof user !== \"undefined\" && user !== null) || (typeof password !== \"undefined\" && password !== null))) {\n index = xhrUrl.auth.indexOf(':');\n if (index === -1) {\n if (!user) {\n user = xhrUrl.auth;\n }\n } else {\n if (!user) {\n user = xhrUrl.substring(0, index);\n }\n if (!password) {\n password = xhrUrl.substring(index + 1);\n }\n }\n }\n if (user || password) {\n xhrUrl.auth = `${user}:${password}`;\n }\n return xhrUrl;\n }\n\n // Reads the headers from a node.js ClientResponse instance.\n\n // @private\n // @param {http.ClientResponse} response the response whose headers will be\n // imported into this XMLHttpRequest's state\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n _parseResponseHeaders(response) {\n var loweredName, name, ref, value;\n this._responseHeaders = {};\n ref = response.headers;\n for (name in ref) {\n value = ref[name];\n loweredName = name.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n if (this._mimeOverride !== null && loweredName === 'content-type') {\n value = this._mimeOverride;\n }\n this._responseHeaders[loweredName] = value;\n }\n if (this._mimeOverride !== null && !('content-type' in this._responseHeaders)) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n return void 0;\n }\n\n // Sets the response and responseText properties when an XHR completes.\n\n // @private\n // @return {undefined} undefined\n _parseResponse() {\n var arrayBuffer, buffer, i, j, ref, view;\n if (Buffer.concat) {\n buffer = Buffer.concat(this._responseParts);\n } else {\n // node 0.6\n buffer = this._concatBuffers(this._responseParts);\n }\n this._responseParts = null;\n switch (this.responseType) {\n case 'text':\n this._parseTextResponse(buffer);\n break;\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n } catch (error1) {\n this.response = null;\n }\n break;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n break;\n case 'arraybuffer':\n this.responseText = null;\n arrayBuffer = new ArrayBuffer(buffer.length);\n view = new Uint8Array(arrayBuffer);\n for (i = j = 0, ref = buffer.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n break;\n default:\n // TODO(pwnall): content-base detection\n this._parseTextResponse(buffer);\n }\n return void 0;\n }\n\n // Sets response and responseText for a 'text' response type.\n\n // @private\n // @param {Buffer} buffer the node.js Buffer containing the binary response\n // @return {undefined} undefined\n _parseTextResponse(buffer) {\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n } catch (error1) {\n // Unknown encoding.\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n return void 0;\n }\n\n // Figures out the string encoding of the XHR's response.\n\n // This is called to determine the encoding when responseText is set.\n\n // @private\n // @return {String} a string encoding, e.g. 'utf-8'\n _parseResponseEncoding() {\n var contentType, match;\n if (contentType = this._responseHeaders['content-type']) {\n if (match = /\\;\\s*charset\\=(.*)$/.exec(contentType)) {\n return match[1];\n }\n }\n return 'utf-8';\n }\n\n // Buffer.concat implementation for node 0.6.\n\n // @private\n // @param {Array} buffers the buffers whose contents will be merged\n // @return {Buffer} same as Buffer.concat(buffers) in node 0.8 and above\n _concatBuffers(buffers) {\n var buffer, j, k, len, len1, length, target;\n if (buffers.length === 0) {\n return Buffer.alloc(0);\n }\n if (buffers.length === 1) {\n return buffers[0];\n }\n length = 0;\n for (j = 0, len = buffers.length; j < len; j++) {\n buffer = buffers[j];\n length += buffer.length;\n }\n target = Buffer.alloc(length);\n length = 0;\n for (k = 0, len1 = buffers.length; k < len1; k++) {\n buffer = buffers[k];\n buffer.copy(target, length);\n length += buffer.length;\n }\n return target;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler for the\n // 'readystatechange' event\n XMLHttpRequest.prototype.onreadystatechange = null;\n\n // @property {Number} the current state of the XHR object\n // @see http://www.w3.org/TR/XMLHttpRequest/#states\n XMLHttpRequest.prototype.readyState = null;\n\n // @property {String, ArrayBuffer, Buffer, Object} processed XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-response-attribute\n XMLHttpRequest.prototype.response = null;\n\n // @property {String} response string, if responseType is '' or 'text'\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute\n XMLHttpRequest.prototype.responseText = null;\n\n // @property {String} sets the parsing method for the XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetype-attribute\n XMLHttpRequest.prototype.responseType = null;\n\n // @property {Number} the HTTP\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute\n XMLHttpRequest.prototype.status = null;\n\n // @property {Number} milliseconds to wait for the request to complete\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute\n XMLHttpRequest.prototype.timeout = null;\n\n // @property {XMLHttpRequestUpload} the associated upload information\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute\n XMLHttpRequest.prototype.upload = null;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.prototype.UNSENT = 0;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.UNSENT = 0;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.prototype.OPENED = 1;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.OPENED = 1;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.prototype.HEADERS_RECEIVED = 2;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.prototype.LOADING = 3;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.LOADING = 3;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.prototype.DONE = 4;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.DONE = 4;\n\n // @property {http.Agent} the agent option passed to HTTP requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\n\n // @property {https.Agent} the agent option passed to HTTPS requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpsAgent = https.globalAgent;\n\n // @property {String} the base URL that relative URLs get resolved to\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // Its browser equivalent is the base URL of the document associated with the\n // Window object. It is a stable node-xhr2 API provided for libraries such as\n // Angular Universal.\n XMLHttpRequest.prototype.nodejsBaseUrl = null;\n\n // HTTP methods that are disallowed in the XHR spec.\n\n // @private\n // @see Step 6 in http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n XMLHttpRequest.prototype._restrictedMethods = {\n CONNECT: true,\n TRACE: true,\n TRACK: true\n };\n\n // HTTP request headers that are disallowed in the XHR spec.\n\n // @private\n // @see Step 5 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n XMLHttpRequest.prototype._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true\n };\n\n // HTTP response headers that should not be exposed according to the XHR spec.\n\n // @private\n // @see Step 3 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n XMLHttpRequest.prototype._privateHeaders = {\n 'set-cookie': true,\n 'set-cookie2': true\n };\n\n // The default value of the User-Agent header.\n XMLHttpRequest.prototype._userAgent = `Mozilla/5.0 (${os.type()} ${os.arch()}) ` + `node.js/${process.versions.node} v8/${process.versions.v8}`;\n\n return XMLHttpRequest;\n\n }).call(this);\n\n // XMLHttpRequest is the result of require('node-xhr2').\n module.exports = XMLHttpRequest;\n\n // Make node-xhr2 work as a drop-in replacement for libraries that promote the\n // following usage pattern:\n // var XMLHttpRequest = require('xhr-library-name').XMLHttpRequest\n XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;\n\n // This file defines the custom errors used in the XMLHttpRequest specification.\n\n // Thrown if the XHR security policy is violated.\n SecurityError = class SecurityError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if the XHR security policy is violated.\n XMLHttpRequest.SecurityError = SecurityError;\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {};\n\n XMLHttpRequest.InvalidStateError = InvalidStateError;\n\n // Thrown if there is a problem with the URL passed to the XHR.\n NetworkError = class NetworkError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if parsing URLs errors out.\n XMLHttpRequest.SyntaxError = SyntaxError;\n\n SyntaxError = class SyntaxError extends Error {\n // @private:\n constructor() {\n super();\n }\n\n };\n\n ProgressEvent = (function() {\n // http://xhr.spec.whatwg.org/#interface-progressevent\n class ProgressEvent {\n // Creates a new event.\n\n // @param {String} type the event type, e.g. 'readystatechange'; must be\n // lowercased\n constructor(type) {\n this.type = type;\n this.target = null;\n this.currentTarget = null;\n this.lengthComputable = false;\n this.loaded = 0;\n this.total = 0;\n }\n\n }\n // Getting the time from the OS is expensive, skip on that for now.\n // @timeStamp = Date.now()\n\n // @property {Boolean} for compatibility with DOM events\n ProgressEvent.prototype.bubbles = false;\n\n // @property {Boolean} for fompatibility with DOM events\n ProgressEvent.prototype.cancelable = false;\n\n // @property {XMLHttpRequest} the request that caused this event\n ProgressEvent.prototype.target = null;\n\n // @property {Number} number of bytes that have already been downloaded or\n // uploaded\n ProgressEvent.prototype.loaded = null;\n\n // @property {Boolean} true if the Content-Length response header is available\n // and the value of the event's total property is meaningful\n ProgressEvent.prototype.lengthComputable = null;\n\n // @property {Number} number of bytes that will be downloaded or uploaded by\n // the request that fired the event\n ProgressEvent.prototype.total = null;\n\n return ProgressEvent;\n\n }).call(this);\n\n // The XHR spec exports the ProgressEvent constructor.\n XMLHttpRequest.ProgressEvent = ProgressEvent;\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n XMLHttpRequestUpload = class XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n // @private\n // @param {XMLHttpRequest} the XMLHttpRequest that this upload object is\n // associated with\n constructor(request) {\n super();\n this._request = request;\n this._reset();\n }\n\n // Sets up this Upload to handle a new request.\n\n // @private\n // @return {undefined} undefined\n _reset() {\n this._contentType = null;\n this._body = null;\n return void 0;\n }\n\n // Implements the upload-related part of the send() XHR specification.\n\n // @private\n // @param {?String, ?Buffer, ?ArrayBufferView} data the argument passed to\n // XMLHttpRequest#send()\n // @return {undefined} undefined\n // @see step 4 of http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n _setData(data) {\n var body, i, j, k, offset, ref, ref1, view;\n if (typeof data === 'undefined' || data === null) {\n return;\n }\n if (typeof data === 'string') {\n // DOMString\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = Buffer.from(data, 'utf8');\n } else if (Buffer.isBuffer(data)) {\n // node.js Buffer\n this._body = data;\n } else if (data instanceof ArrayBuffer) {\n // ArrayBuffer arguments were supported in an old revision of the spec.\n body = Buffer.alloc(data.byteLength);\n view = new Uint8Array(data);\n for (i = j = 0, ref = data.byteLength; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n body[i] = view[i];\n }\n this._body = body;\n } else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n // ArrayBufferView\n body = Buffer.alloc(data.byteLength);\n offset = data.byteOffset;\n view = new Uint8Array(data.buffer);\n for (i = k = 0, ref1 = data.byteLength; (0 <= ref1 ? k < ref1 : k > ref1); i = 0 <= ref1 ? ++k : --k) {\n body[i] = view[i + offset];\n }\n this._body = body;\n } else {\n // NOTE: diverging from the XHR specification of coercing everything else\n // to Strings via toString() because that behavior masks bugs and is\n // rarely useful\n throw new Error(`Unsupported send() data ${data}`);\n }\n return void 0;\n }\n\n // Updates the HTTP headers right before the request is sent.\n\n // This is used to set data-dependent headers such as Content-Length and\n // Content-Type.\n\n // @private\n // @param {Object} headers the HTTP headers to be sent\n // @param {Object} loweredHeaders maps lowercased HTTP header\n // names (e.g., 'content-type') to the actual names used in the headers\n // parameter (e.g., 'Content-Type')\n // @return {undefined} undefined\n _finalizeHeaders(headers, loweredHeaders) {\n if (this._contentType) {\n if (!('content-type' in loweredHeaders)) {\n headers['Content-Type'] = this._contentType;\n }\n }\n if (this._body) {\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n headers['Content-Length'] = this._body.length.toString();\n }\n return void 0;\n }\n\n // Starts sending the HTTP request data.\n\n // @private\n // @param {http.ClientRequest} request the HTTP request\n // @return {undefined} undefined\n _startUpload(request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n return void 0;\n }\n\n };\n\n // Export the XMLHttpRequestUpload constructor.\n XMLHttpRequest.XMLHttpRequestUpload = XMLHttpRequestUpload;\n\n}).call(commonjsGlobal);\n});\n\nclass LangAdapter {\n constructor(context) {\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw (e);\n }\n let languageSource;\n try {\n const getLanguageSource = await axios.get(presignedUrl);\n languageSource = getLanguageSource.data;\n }\n catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw (e);\n }\n return languageSource;\n }\n}\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CloudflarePutAdapter_agent, _CloudflarePutAdapter_IPFS;\nclass CloudflarePutAdapter {\n constructor(context) {\n _CloudflarePutAdapter_agent.set(this, void 0);\n _CloudflarePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet(this, _CloudflarePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet(this, _CloudflarePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet(this, _CloudflarePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet(this, _CloudflarePutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n //Build the key value object for the meta object\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n // Content of the new object.\n value: JSON.stringify(expression),\n };\n //Save the meta information to the KV store\n const httpsAgent = new https__default[\"default\"].Agent({\n rejectUnauthorized: false\n });\n try {\n const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent });\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n //Build the key value object for the language bundle\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString(),\n };\n //Save the language bundle to the KV store\n const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent });\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n}\n_CloudflarePutAdapter_agent = new WeakMap(), _CloudflarePutAdapter_IPFS = new WeakMap();\n\nclass Adapter {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axios.get(presignedUrl);\n metaObject = getMetaObject.data;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\n\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports.PROXY_URL = PROXY_URL;\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" -} \ No newline at end of file diff --git a/host/oldestSupportedVersion.js b/host/oldestSupportedVersion.js deleted file mode 100644 index d0b9926ec..000000000 --- a/host/oldestSupportedVersion.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function oldestSupportedVersion() { - return {"version": "0.3.4", "shouldClearState": true} -} diff --git a/host/package.json b/host/package.json deleted file mode 100644 index eb7afd9a1..000000000 --- a/host/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "ad4m-host", - "version": "0.3.4", - "description": "Self hosting ad4m service", - "private": true, - "bin": { - "ad4m": "build/cli.cjs" - }, - "type": "module", - "scripts": { - "build": "tsc && yarn run build-commonjs", - "build-commonjs": "node scripts/esbuild.js", - "dev": "yarn run build && node --experimental-specifier-resolution=node build/cli.js", - "serve": "yarn run build && node --experimental-specifier-resolution=node build/cli.js serve", - "prepare": "yarn run build && node --experimental-specifier-resolution=node build/cli.js prepare", - "postinstall": "node scripts/postinstall.js", - "download-binaries-macos": "./scripts/download-binaries-macos.sh", - "download-binaries-linux": "./scripts/download-binaries-linux.sh", - "download-binaries-windows": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command scripts\\download-binaries-windows.ps1", - "copy-swipl:windows": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command scripts\\copy-swipl.ps1", - "package-windows": "yarn run download-binaries-windows && yarn run copy-swipl:windows && pkg . -o dist/ad4m-windows-x64 -t node16-windows-x64 --public-packages \"*\"", - "package-linux": "yarn run download-binaries-linux && pkg . -o dist/ad4m-linux-x64 -t node16-linux-x64 --public-packages \"*\"", - "package-macos": "yarn run download-binaries-macos && pkg . -o dist/ad4m-macos-x64 -t node16-macos-x64 --public-packages \"*\"" - }, - "pkg": { - "scripts": "build/cli.cjs", - "assets": [ - "temp/**/*", - "temp/binary/hc.exe", - "temp/binary/holochain.exe", - "mainnet_seed.json", - "package.json", - "node_modules/leveldown/**/*", - "../node_modules/classic-level/**/*", - "node_modules/ts-invariant/**/*", - "node_modules/@apollo/client/node_modules/ts-invariant/**/*" - ], - "outputPath": "dist", - "patches": { - "node_modules/leveldown/binding.js": [] - } - }, - "repository": { - "type": "git", - "url": "git+https://github.com/perspect3vism/ad4m.git" - }, - "keywords": [ - "Holochain" - ], - "author": "Kaichao Sun", - "license": "CAL-1.0", - "bugs": { - "url": "https://github.com/perspect3vism/ad4m/issues" - }, - "homepage": "https://github.com/perspect3vism/ad4m#readme", - "dependencies": { - "@apollo/client": "3.7.10", - "@perspect3vism/ad4m": "*", - "@perspect3vism/ad4m-executor": "*", - "appdata-path": "perspect3vism/appdata-path", - "esm": "^3.2.25", - "fs-extra": "^9.1.0", - "get-port": "5.1.1", - "graphql-ws": "5.12.0", - "node-fetch": "^2.5.11", - "readline-sync": "^1.4.10", - "semver": "^7.3.8", - "unzipper": "^0.10.11", - "wget-improved": "^3.3.1", - "ws": "8.13.0", - "yargs": "^17.3.1" - }, - "devDependencies": { - "@types/node": "^18.0.0", - "@types/yargs": "^17.0.8", - "@vercel/ncc": "^0.33.1", - "esbuild": "^0.15.5", - "patch-package": "^6.5.0", - "pkg": "^5.8.0", - "typescript": "^4.6.2" - } -} diff --git a/host/scripts/copy-swipl.ps1 b/host/scripts/copy-swipl.ps1 deleted file mode 100644 index fa72f1af9..000000000 --- a/host/scripts/copy-swipl.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -choco install swi-prolog -Copy-Item -Recurse -Path "C:\Program Files\swipl" -Destination temp/ -Copy-Item -Path ../node_modules/swipl-stdio/top.pl -Destination temp/swipl \ No newline at end of file diff --git a/host/scripts/download-binaries-linux.sh b/host/scripts/download-binaries-linux.sh deleted file mode 100755 index 13ecc6954..000000000 --- a/host/scripts/download-binaries-linux.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" - -if [ ! -f "./temp/binary/hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 - mv hc-linux-0.1.0 temp/binary/hc - chmod +x temp/binary/hc -fi - -if [ ! -f "./temp/binary/holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 - mv holochain-linux-0.1.0 temp/binary/holochain - chmod +x temp/binary/holochain -fi - -if [ ! -f "./temp/swipl/bin/swipl" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/swipl-linux-x86.zip - unzip swipl-linux-x86.zip -d temp - rm -rf swipl-linux-x64.zip -fi \ No newline at end of file diff --git a/host/scripts/download-binaries-macos.sh b/host/scripts/download-binaries-macos.sh deleted file mode 100755 index bd3ccab6f..000000000 --- a/host/scripts/download-binaries-macos.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" - -if [ ! -f "./temp/binary/hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-darwin-0.1.0 - mv hc-darwin-0.1.0 temp/binary/hc - chmod +x temp/binary/hc -fi - -if [ ! -f "./temp/binary/holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-darwin-0.1.0 - mv holochain-darwin-0.1.0 temp/binary/holochain - chmod +x temp/binary/holochain -fi - -if [ ! -f "./temp/swipl/bin/swipl" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/swipl-darwin-x86.zip - unzip swipl-darwin-x86.zip -d temp - rm -rf temp/__MACOSX - rm -rf swipl-linux-x64.zip -fi \ No newline at end of file diff --git a/host/scripts/download-binaries-windows.ps1 b/host/scripts/download-binaries-windows.ps1 deleted file mode 100644 index 0d1a06623..000000000 --- a/host/scripts/download-binaries-windows.ps1 +++ /dev/null @@ -1,7 +0,0 @@ -choco install wget --no-progress - -mkdir temp/binary - -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./temp/binary/hc.exe - -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-windows-0.1.0.exe -O ./temp/binary/holochain.exe diff --git a/host/scripts/esbuild.js b/host/scripts/esbuild.js deleted file mode 100644 index bcb82b8cc..000000000 --- a/host/scripts/esbuild.js +++ /dev/null @@ -1,16 +0,0 @@ -import { build } from 'esbuild' -build({ - entryPoints: ["./src/cli.ts"], - platform: 'node', - bundle: true, - format: "cjs", - minify: false, - sourcemap: false, - outfile: "build/cli.cjs", - external: ['classic-level', 'default-gateway'], - watch: process.env.NODE_ENV === "dev" ? true : false, - }) - .catch((er) => { - console.log('errr', er) - process.exit(1) - }); \ No newline at end of file diff --git a/host/scripts/postinstall.js b/host/scripts/postinstall.js deleted file mode 100644 index 49f4fcb9e..000000000 --- a/host/scripts/postinstall.js +++ /dev/null @@ -1,11 +0,0 @@ -import { execSync } from 'child_process'; - -var isWin = process.platform === "win32"; - -execSync("rm -rf node_modules/ipfs-core-types/src"); - -execSync("cd ../ && yarn run patchpackage"); - -if (!isWin) { - execSync("ln -sf node_modules/@perspect3vism/ad4m-executor/default.nix default.nix") -} \ No newline at end of file diff --git a/host/src/ad4mDataDirectory.ts b/host/src/ad4mDataDirectory.ts deleted file mode 100644 index e041d7993..000000000 --- a/host/src/ad4mDataDirectory.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { homedir } from 'os' -import path from 'path' - -export function ad4mDataDirectory(override?: string) { - if(override) - return path.resolve(override) - else - return path.join(homedir(), '.ad4m') -} \ No newline at end of file diff --git a/host/src/cli.ts b/host/src/cli.ts deleted file mode 100644 index b2e0a285e..000000000 --- a/host/src/cli.ts +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env node - -import yargs from 'yargs'; -import { hideBin } from 'yargs/helpers'; -import { - command as serveCommand, desc as serveDesc, - builder as serveBuilder, handler as serveHandler, -} from './commands/serve'; -import { - command as agentCommand, desc as agentDesc, - builder as agentBuilder, handler as agentHandler, -} from './commands/client/agent'; -import { - command as languagesCommand, desc as languagesDesc, - builder as languagesBuilder, handler as languagesHandler, -} from './commands/client/languages'; -import { - command as expressionCommand, desc as expressionDesc, - builder as expressionBuilder, handler as expressionHandler, -} from './commands/client/expression'; -import { - command as perspectiveCommand, desc as perspectiveDesc, - builder as perspectiveBuilder, handler as perspectiveHandler, -} from './commands/client/perspective'; -import { - command as neighbourhoodCommand, desc as neighbourhoodDesc, - builder as neighbourhoodBuilder, handler as neighbourhoodHandler, -} from './commands/client/neighbourhood'; -import { - command as runtimeCommand, desc as runtimeDesc, - builder as runtimeBuilder, handler as runtimeHandler, -} from './commands/client/runtime'; -import { - command as initCommand, desc as initDesc, - builder as initBuilder, handler as initHandler, -} from './commands/init'; -import { - command as prepareCommand, desc as prepareDesc, - builder as prepareBuilder, handler as prepareHandler, -} from './commands/prepare'; - -yargs(hideBin(process.argv)) - .command(prepareCommand, prepareDesc, prepareBuilder, prepareHandler) - .command(initCommand, initDesc, initBuilder, initHandler) - .command(serveCommand, serveDesc, serveBuilder, serveHandler) - .command(agentCommand, agentDesc, agentBuilder, agentHandler) - .command(languagesCommand, languagesDesc, languagesBuilder, languagesHandler) - .command(expressionCommand, expressionDesc, expressionBuilder, expressionHandler) - .command(perspectiveCommand, perspectiveDesc, perspectiveBuilder, perspectiveHandler) - .command(neighbourhoodCommand, neighbourhoodDesc, neighbourhoodBuilder, neighbourhoodHandler) - .command(runtimeCommand, runtimeDesc, runtimeBuilder, runtimeHandler) - .options({ - server: { - type: 'string', - describe: 'Connect to this endpoint when request to ad4m service', - default: 'ws://localhost:4000/graphql', - alias: 's', - }, - verbose: { type: "boolean", default: false, alias: 'v' }, - }) - // Enable strict mode. - .strict() - // Useful aliases. - .alias({ h: 'help' }) - .fail((msg, err) => { - console.error('Running command with error: ', msg, err); - process.exit(1); - }) - .argv; diff --git a/host/src/commands/client/agent.ts b/host/src/commands/client/agent.ts deleted file mode 100644 index 2522f2006..000000000 --- a/host/src/commands/client/agent.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Ad4mClient } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, readPassphrase, prettify, CommonOptions } from './util'; - -export const command: string = 'agent [action]'; -export const desc: string = 'Agent related action'; - -type Options = CommonOptions & { - passphrase?: string; -}; -; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the agent', - choices: ['generate', 'lock', 'unlock', 'status', 'me', 'getApps'], - default: 'status', - }).options({ - passphrase: {type: 'string', describe: 'Password for the agent'} - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, verbose, action, passphrase } = argv; - if (verbose) { - console.info(`Attempting to connect to ${server}`); - } - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'generate': await generate(ad4mClient, passphrase); break; - case 'lock': await lock(ad4mClient); break; - case 'unlock': await unlock(ad4mClient, passphrase); break; - case 'status': await status(ad4mClient); break; - case 'me': await me(ad4mClient); break; - case 'getApps': await getApps(ad4mClient); break; - - default: - console.info(`Action "${argv.action}" is not defined on agent.`) - break; - } - - process.exit(); -}; - -async function generate(ad4mClient: Ad4mClient, password: string) { - const passphrase = password || readPassphrase(); - const agentStatus = await ad4mClient.agent.generate(passphrase); - prettify(agentStatus); -} - -async function lock(ad4mClient: Ad4mClient) { - // Passphrase not needed - const agentStatus = await ad4mClient.agent.lock(""); - prettify(agentStatus); -} - -async function unlock(ad4mClient: Ad4mClient, password: string) { - const passphrase = password || readPassphrase(); - const agentStatus = await ad4mClient.agent.unlock(passphrase); - prettify(agentStatus); -} - -async function status(ad4mClient: Ad4mClient) { - const agentStatus = await ad4mClient.agent.status(); - prettify(agentStatus); -} - -async function me(ad4mClient: Ad4mClient) { - const agent = await ad4mClient.agent.me(); - prettify(agent); -} - -async function getApps(ad4mClient: Ad4mClient) { - const apps = await ad4mClient.agent.getApps(); - prettify(apps); -} diff --git a/host/src/commands/client/expression.ts b/host/src/commands/client/expression.ts deleted file mode 100644 index 4900710b9..000000000 --- a/host/src/commands/client/expression.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Ad4mClient } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; - -export const command: string = 'expression [action]'; -export const desc: string = 'Expression related action'; - -type Options = CommonOptions & { - url?: string; - raw?: boolean; - content?: string; - address?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the expression', - choices: ['get', 'create'], - }) - .options({ - url: { type: "string", describe: 'url of the expression' }, - raw: { type: "boolean", describe: 'Flag to request raw data of the expression' }, - content: { type: "string", describe: 'Content when create the expression'}, - address: { type: "string", describe: 'Address of language used to create the expression' }, - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, url, raw, content, address, action } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'get': await get(ad4mClient, url, raw); break; - case 'create': await create(ad4mClient, content, address); break; - - default: - console.info(`Action "${argv.action}" is not defined on expression.`) - break; - } - - process.exit(); -}; - -async function get(ad4mClient: Ad4mClient, url: string, raw: boolean) { - if (raw && url) { - const expression = await ad4mClient.expression.getRaw(url); - prettify(expression) - return; - } - - if (url) { - const expression = await ad4mClient.expression.get(url); - prettify(expression) - return; - } - - console.info('Expression get action is missiong param '); -} - -async function create(ad4mClient: Ad4mClient, content: string, address: string) { - var parsedContent; - try { - parsedContent = JSON.parse(content); - } catch (e) { - parsedContent = content; - } - - if (content && address) { - const expression = await ad4mClient.expression.create(parsedContent, address); - prettify(expression) - return; - } - - console.info('Expression create action is missiong param
    '); -} - diff --git a/host/src/commands/client/languages.ts b/host/src/commands/client/languages.ts deleted file mode 100644 index 1c2d64236..000000000 --- a/host/src/commands/client/languages.ts +++ /dev/null @@ -1,146 +0,0 @@ -import { Ad4mClient, LanguageMetaInput } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; -import ReadlineSync from 'readline-sync'; - -export const command: string = 'languages [action]'; -export const desc: string = 'Languages related action'; - -type Options = CommonOptions & { - address?: string; - filter?: string; - all?: boolean; - settings?: string; - templateData?: string; - path?: string; - meta?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the languages', - choices: ['get', 'writeSettings', 'applyTemplateAndPublish', 'publish', 'meta', 'source'], - }) - .options({ - address: { type: "string", describe: 'Address of the language' }, - filter: { type: "string", describe: 'Filter the languages when query' }, - all: { type: "boolean", describe: 'Flag to request all the languages' }, - settings: { type: "string", describe: 'Settings of the language to write' }, - templateData: { type: "string", describe: 'Apply template data when publish templated language' }, - path: { type: "string", describe: 'Refer to the language under this path' }, - meta: { type: "string", describe: 'metadata of the language' } - }); - -export const handler = async (argv: Arguments): Promise => { - const { - server, address, filter, all, settings, - templateData, path, meta, action - } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'get': await get(ad4mClient, address, filter, all); break; - case 'writeSettings': await writeSettings(ad4mClient, address, settings); break; - case 'applyTemplateAndPublish': await applyTemplateAndPublish(ad4mClient, address, templateData); break; - case 'publish': await publish(ad4mClient, path, meta); break - case 'meta': await getMeta(ad4mClient, address); break; - case 'source': await source(ad4mClient, address); break; - - default: - console.info(`Action "${argv.action}" is not defined on languages.`) - break; - } - - process.exit(); -}; - -async function get(ad4mClient: Ad4mClient, address: string, filter: string, all: boolean) { - if (address) { - const language = await ad4mClient.languages.byAddress(address); - prettify(language) - return; - } - if (filter) { - const languages = await ad4mClient.languages.byFilter(filter); - prettify(languages) - return; - } - if (all) { - const languages = (await ad4mClient.languages.all()).map(l => { - return { name: l.name, address: l.address }; - }) - prettify(languages) - return; - } - console.info('Language get action is missing param
    //'); -} - -async function writeSettings(ad4mClient: Ad4mClient, address?: string, settings?: string) { - if (address == undefined || settings == undefined) { - console.info('Language writeSettings action is missing params
    and '); - return; - } - const result = await ad4mClient.languages.writeSettings(address!, settings!); - prettify(result); -} - -async function applyTemplateAndPublish(ad4mClient: Ad4mClient, address?: string, templateData?: string) { - if (address == undefined || templateData == undefined) { - console.info('Language applyTemplateAndPublish action is missing params
    and '); - return; - } - const result = await ad4mClient.languages.applyTemplateAndPublish(address, templateData); - prettify(result); -} - -async function publish(ad4mClient: Ad4mClient, path?: string, meta?: string) { - let languageMetaInput: LanguageMetaInput; - if (path == undefined) { - path = ReadlineSync.question("Path of the bundled file: "); - } - if (meta == undefined) { - const name = ReadlineSync.question("Name (must match name in source code): "); - const description = ReadlineSync.question("Description: "); - const templateParams = ReadlineSync.question("In case of a templateable Language, list of template parameters (comma separated): "); - const sourceLink = ReadlineSync.question("Link to source code / Github repo: "); - - languageMetaInput = new LanguageMetaInput(name, description); - - if(sourceLink.trim().length > 0) { - languageMetaInput.sourceCodeLink = sourceLink.trim() - } - - const params = templateParams.split(',').map(e => e.trim()) - if(params.length > 0) { - languageMetaInput.possibleTemplateParams = params - } - } else { - let languageMetaObj = JSON.parse(meta); - languageMetaInput = new LanguageMetaInput(languageMetaObj.name, languageMetaObj.description); - languageMetaInput.sourceCodeLink = languageMetaObj.sourceCodeLink.trim(); - languageMetaInput.possibleTemplateParams = languageMetaObj.possibleTemplateParams; - } - - const result = await ad4mClient.languages.publish(path, languageMetaInput); - prettify(result); -} - -async function getMeta(ad4mClient: Ad4mClient, address?: string) { - if (address) { - const result = await ad4mClient.languages.meta(address); - prettify(result); - return; - } - console.info('Language meta action is missing param
    '); -} - -async function source(ad4mClient: Ad4mClient, address?: string) { - if (address) { - const result = await ad4mClient.languages.source(address); - console.log(result); - return; - } - console.info('Language source action is missing param
    '); -} diff --git a/host/src/commands/client/neighbourhood.ts b/host/src/commands/client/neighbourhood.ts deleted file mode 100644 index 5c93233ea..000000000 --- a/host/src/commands/client/neighbourhood.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Ad4mClient, Link, LinkQuery } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; - -export const command: string = 'neighbourhood [action]'; -export const desc: string = 'Neighbourhood related action'; - -type Options = CommonOptions & { - uuid?: string; - address?: string; - meta?: string; - url?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the neighbourhood', - choices: ['publishFromPerspective', 'joinFromUrl'], - }) - .options({ - uuid: { type: "string", describe: 'Identifier of the perspective' }, - address: { type: "string", describe: 'Address of the link language used for the neighbourhood' }, - meta: { type: "string", describe: 'Metadata of the neighbourhood' }, - url: { type: "string", describe: 'URL of the neighbourhood'}, - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, uuid, address, meta, url, action } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'publishFromPerspective': await publishFromPerspective(ad4mClient, uuid, address, meta); break; - case 'joinFromUrl': await joinFromUrl(ad4mClient, url); break; - - default: - console.info(`Action "${argv.action}" is not defined on neighbourhood.`) - break; - } - - process.exit(); -}; - -async function publishFromPerspective(ad4mClient: Ad4mClient, uuid: string, address: string, meta: string) { - if (uuid && address && meta) { - const result = await ad4mClient.neighbourhood.publishFromPerspective(uuid, address, JSON.parse(meta)); - prettify(result) - return; - } - - console.info('Neighbourhood publishFromPerspective action is missiong param
    '); -} - -async function joinFromUrl(ad4mClient: Ad4mClient, url: string) { - if (url) { - const result = await ad4mClient.neighbourhood.joinFromUrl(url); - prettify(result) - return; - } - - console.info('Neighbourhood joinFromUrl action is missiong param '); -} diff --git a/host/src/commands/client/perspective.ts b/host/src/commands/client/perspective.ts deleted file mode 100644 index d6a0197ee..000000000 --- a/host/src/commands/client/perspective.ts +++ /dev/null @@ -1,165 +0,0 @@ -import { Ad4mClient, Link, LinkQuery } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; - -export const command: string = 'perspective [action]'; -export const desc: string = 'Perspective related action'; - -type Options = CommonOptions & { - uuid?: string; - snapshot?: boolean; - all?: boolean; - query?: string; - name?: string; - link?: string; - newLink?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the perspective', - choices: ['get', 'add', 'update', 'remove', 'queryLinks', 'addLink', 'updateLink', 'removeLink', 'queryProlog'], - }) - .options({ - uuid: { type: "string", describe: 'Identifier of the perspective' }, - snapshot: { type: "boolean", describe: 'Flag to request the snapshot of the perspective' }, - all: { type: "boolean", describe: 'Flag to request all the perspectives' }, - query: { type: "string", describe: 'Conditions used when query links or prolog' }, - name: { type: "string", describe: 'Name of the perspective when adding a new one' }, - link: { type: "string", describe: 'Add, update or remove a link in the perspective' }, - newLink: { type: "string", describe: 'Use this new link to update an existing link' }, - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, uuid, snapshot, all, query, name, link, newLink, action } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'get': await get(ad4mClient, uuid, snapshot, all); break; - case 'add': await add(ad4mClient, name); break; - case 'update': await update(ad4mClient, uuid, name); break; - case 'remove': await remove(ad4mClient, uuid); break; - case 'queryLinks': await queryLinks(ad4mClient, uuid, query); break; - case 'addLink': await addLink(ad4mClient, uuid, link); break; - case 'updateLink': await updateLink(ad4mClient, uuid, link, newLink); break; - case 'removeLink': await removeLink(ad4mClient, uuid, link); break; - case 'queryProlog': await queryProlog(ad4mClient, uuid, query); break; - - default: - console.info(`Action "${argv.action}" is not defined on perspective.`) - break; - } - - process.exit(); -}; - -async function get(ad4mClient: Ad4mClient, uuid: string, snapshot: boolean, all: boolean) { - if (snapshot && uuid) { - const result = await ad4mClient.perspective.snapshotByUUID(uuid); - prettify(result) - return; - } - - if (uuid) { - const result = await ad4mClient.perspective.byUUID(uuid); - prettify({ name: result.name, uuid: result.uuid, sharedUrl: result.sharedUrl }) - return; - } - - if (all) { - const results = await ad4mClient.perspective.all(); - const formatted = results.map(proxy => { - return { - name: proxy.name, - uuid: proxy.uuid, - sharedUrl: proxy.sharedUrl - } - }); - prettify(formatted); - return; - } - - console.info('Perspective get action is missiong param '); -} - -async function add(ad4mClient: Ad4mClient, name: string) { - if (name) { - const result = await ad4mClient.perspective.add(name); - prettify({ name: result.name, uuid: result.uuid, sharedUrl: result.sharedUrl }) - return; - } - - console.info('Perspective add action is missiong param '); -} - -async function update(ad4mClient: Ad4mClient, uuid: string, name: string) { - if (uuid && name) { - const result = await ad4mClient.perspective.update(uuid, name); - prettify({ name: result.name, uuid: result.uuid, sharedUrl: result.sharedUrl }) - return; - } - - console.info('Perspective update action is missiong param '); -} - -async function remove(ad4mClient: Ad4mClient, uuid: string) { - if (uuid) { - const result = await ad4mClient.perspective.remove(uuid); - prettify(result) - return; - } - - console.info('Perspective remove action is missiong param '); -} - -async function queryLinks(ad4mClient: Ad4mClient, uuid: string, query: string) { - if (uuid && query) { - const links = await ad4mClient.perspective.queryLinks(uuid, new LinkQuery(JSON.parse(query))); - prettify(links) - return; - } - - console.info('Perspective queryLinks action is missiong param '); -} - -async function addLink(ad4mClient: Ad4mClient, uuid: string, link: string) { - if (uuid && link) { - const result = await ad4mClient.perspective.addLink(uuid, new Link(JSON.parse(link))); - prettify(result) - return; - } - - console.info('Perspective addLink action is missiong param '); -} - -async function updateLink(ad4mClient: Ad4mClient, uuid: string, link: string, newLink: string) { - if (uuid && link && newLink) { - const result = await ad4mClient.perspective.updateLink(uuid, JSON.parse(link), JSON.parse(newLink)); - prettify(result) - return; - } - - console.info('Perspective updateLink action is missiong param '); -} - -async function removeLink(ad4mClient: Ad4mClient, uuid: string, link: string) { - if (uuid && link) { - const result = await ad4mClient.perspective.removeLink(uuid, JSON.parse(link)); - prettify(result) - return; - } - - console.info('Perspective removeLink action is missiong param '); -} - -async function queryProlog(ad4mClient: Ad4mClient, uuid: string, query: string) { - if (uuid && query) { - const result = await ad4mClient.perspective.queryProlog(uuid, query); - prettify(result) - return; - } - - console.info('Perspective queryProlog action is missiong param '); -} diff --git a/host/src/commands/client/runtime.ts b/host/src/commands/client/runtime.ts deleted file mode 100644 index 0df07980b..000000000 --- a/host/src/commands/client/runtime.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { Ad4mClient, Link, LinkQuery } from '@perspect3vism/ad4m'; -import type { Arguments, Argv } from 'yargs'; -import { buildAd4mClient, CommonOptions, prettify } from './util'; -import fs from 'fs'; - -export const command: string = 'runtime [action]'; -export const desc: string = 'Runtime related action'; - -type Options = CommonOptions & { - address?: string; - did?: string; - raw?: boolean; - path?: string; -}; - -export const builder = (yargs: Argv) => - yargs - .positional('action', { - type: 'string', - describe: 'Action that should be executed on the runtime', - choices: [ - 'getTrustedAgents', 'addTrustedAgent', 'deleteTrustedAgent', - 'knownLinkLanguageTemplates', 'addKnownLinkLanguageTemplate', 'removeKnownLinkLanguageTemplate', - 'friends', 'addFriend', 'removeFriend', - 'hcAgentInfos', 'hcAddAgentInfos', - ], - }) - .options({ - address: { type: 'string', describe: 'Address of the known link language' }, - did: { type: 'string', describe: 'The did of one agent' }, - raw: { type: 'boolean', describe: 'Flag to request raw agent infos' }, - path: { type: 'string', describe: 'Resolve agent infos under this path' }, - }); - -export const handler = async (argv: Arguments): Promise => { - const { server, address, did, raw, path, action } = argv; - - const ad4mClient = buildAd4mClient(server); - switch (action) { - case 'getTrustedAgents': await getTrustedAgents(ad4mClient); break; - case 'addTrustedAgent': await addTrustedAgent(ad4mClient, did); break; - case 'deleteTrustedAgent': await deleteTrustedAgent(ad4mClient, did); break; - - case 'knownLinkLanguageTemplates': await knownLinkLanguageTemplates(ad4mClient); break; - case 'addKnownLinkLanguageTemplate': await addKnownLinkLanguageTemplate(ad4mClient, address); break; - case 'removeKnownLinkLanguageTemplate': await removeKnownLinkLanguageTemplate(ad4mClient, address); break; - - case 'friends': await friends(ad4mClient); break; - case 'addFriend': await addFriend(ad4mClient, did); break; - case 'removeFriend': await removeFriend(ad4mClient, did); break; - - case 'hcAgentInfos': await hcAgentInfos(ad4mClient, raw); break; - case 'hcAddAgentInfos': await hcAddAgentInfos(ad4mClient, path); break; - - default: - console.info(`Action "${argv.action}" is not defined on runtime.`) - break; - } - - process.exit(); -}; - -async function getTrustedAgents(ad4mClient: Ad4mClient) { - const result = await ad4mClient.runtime.getTrustedAgents(); - prettify(result); -} - -async function addTrustedAgent(ad4mClient: Ad4mClient, did: string) { - if (did) { - const result = await ad4mClient.runtime.addTrustedAgents([did]); - prettify(result); - return; - } - - console.info('Runtime addTrustedAgent action is missiong param '); -} - -async function deleteTrustedAgent(ad4mClient: Ad4mClient, did: string) { - if (did) { - const result = await ad4mClient.runtime.deleteTrustedAgents([did]); - prettify(result); - return; - } - - console.info('Runtime deleteTrustedAgent action is missiong param '); -} - -async function knownLinkLanguageTemplates(ad4mClient: Ad4mClient) { - const result = await ad4mClient.runtime.knownLinkLanguageTemplates(); - prettify(result); -} - -async function addKnownLinkLanguageTemplate(ad4mClient: Ad4mClient, address: string) { - if (address) { - const result = await ad4mClient.runtime.addKnownLinkLanguageTemplates([address]); - prettify(result); - return; - } - - console.info('Runtime addKnownLinkLanguageTemplate action is missiong param
    '); -} - -async function removeKnownLinkLanguageTemplate(ad4mClient: Ad4mClient, address: string) { - if (address) { - const result = await ad4mClient.runtime.removeKnownLinkLanguageTemplates([address]); - prettify(result); - return; - } - - console.info('Runtime removeKnownLinkLanguageTemplate action is missiong param
    '); -} - -async function friends(ad4mClient: Ad4mClient) { - const result = await ad4mClient.runtime.friends(); - prettify(result); -} - -async function addFriend(ad4mClient: Ad4mClient, did: string) { - if (did) { - const result = await ad4mClient.runtime.addFriends([did]); - prettify(result); - return; - } - - console.info('Runtime addFriend action is missiong param '); -} - -async function removeFriend(ad4mClient: Ad4mClient, did: string) { - if (did) { - const result = await ad4mClient.runtime.removeFriends([did]); - prettify(result); - return; - } - - console.info('Runtime removeFriend action is missiong param '); -} - -async function hcAgentInfos(ad4mClient: Ad4mClient, raw: boolean) { - const agentInfos = await ad4mClient.runtime.hcAgentInfos(); - - if (raw) { - prettify(agentInfos); - return; - } - - //@ts-ignore - const agentInfosFormatted = JSON.parse(agentInfos).map(info => { - return { - agent: Buffer.from(info.agent.data), - signature: Buffer.from(info.signature.data), - agent_info: Buffer.from(info.agent_info.data) - } - }) - agentInfosFormatted.forEach(info => console.log("\n", info.agent_info.toString(), "\n")) -} - -async function hcAddAgentInfos(ad4mClient: Ad4mClient, path: string) { - if (path) { - const agentInfos = fs.readFileSync(path).toString(); - const result = await ad4mClient.runtime.hcAddAgentInfos(agentInfos); - prettify(result); - return; - } - - console.info('Runtime hcAddAgentInfos action is missiong param '); -} diff --git a/host/src/commands/client/util.ts b/host/src/commands/client/util.ts deleted file mode 100644 index 9b6cde474..000000000 --- a/host/src/commands/client/util.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Ad4mClient } from '@perspect3vism/ad4m'; -import { ApolloClient, InMemoryCache } from '@apollo/client/core'; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from "graphql-ws"; -import Websocket from "ws"; -import ReadlineSync from 'readline-sync'; -import util from 'util'; - -export type CommonOptions = { - server?: string; - verbose?: boolean; -} - -export function buildAd4mClient(server: string): Ad4mClient { - const wsLink = new GraphQLWsLink(createClient({ - url: server, - webSocketImpl: Websocket, - connectionParams: () => { - return { - headers: { - authorization: "" - } - } - }, - })); - const apolloClient = new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); - - return new Ad4mClient(apolloClient); -} - -export function readPassphrase(): string { - const password = ReadlineSync.question("Password: ", { hideEchoBack: true }); - return password; -} - -export function prettify(obj) { - console.info("=>\n", util.inspect(obj, {showHidden: false, depth: null})); -} diff --git a/host/src/commands/init.ts b/host/src/commands/init.ts deleted file mode 100644 index dd04963f6..000000000 --- a/host/src/commands/init.ts +++ /dev/null @@ -1,171 +0,0 @@ -/** - * Copy binaries from pkg to os file system, https://github.com/vercel/pkg/issues/342 - */ - -import type { Arguments, Argv } from 'yargs'; -import path from 'path'; -import fs from 'fs-extra'; -// @ts-ignore -import utils from 'util'; -import { CONFIG, getConfig, getAd4mHostVersion } from '../utils/config'; -import ReadlineSync from 'readline-sync'; -import os from 'os' -import { ad4mDataDirectory } from '../ad4mDataDirectory'; - -const copyFile = utils.promisify(fs.copyFile); -const copyDir = utils.promisify(fs.copy) -const chmod = utils.promisify(fs.chmod); - -async function copy(source, target) { - //@ts-ignore - if (process.pkg) { - // use stream pipe to reduce memory usage - // when loading a large file into memory. - return new Promise((resolve, reject) => { - let readStream = fs.createReadStream(source); - let writeStream = fs.createWriteStream(target); - readStream.pipe(writeStream); - readStream.on('error', reject); - writeStream.on('finish', resolve); - writeStream.on('error', reject); - }); - } else { - await copyFile(source, target); - } -} - -type Options = { - hcOnly?: boolean; - dataPath?: string; - networkBootstrapSeed?: string; - overrideConfig?: boolean; -}; - -export const command: string = 'init'; -export const desc: string = 'Init ad4m service with prebuild binary.'; - -export const builder = (yargs: Argv) => - yargs - .options({ - hcOnly: { type: "boolean" }, - dataPath: { - type: 'string', - describe: 'Name of directory to store ad4m data in the systems app data path', - alias: 'rp' - }, - networkBootstrapSeed: { - type: 'string', - describe: 'Path to the seed file', - alias: 'nbf' - }, - overrideConfig: { - type: 'boolean', - describe: 'Override the existing config file', - }, - }); - -export const handler = async (argv: Arguments): Promise => { - const { hcOnly, dataPath = '', networkBootstrapSeed, overrideConfig } = argv; - const appDataPath = ad4mDataDirectory(dataPath) - - //Check the ad4m data directory exists - if (!fs.existsSync(appDataPath)) { - //Create the data path - fs.mkdirSync(appDataPath, { recursive: true }) - - //Create the last-seen-version file - const currentVersion = getAd4mHostVersion(); - const lastSeenFile = path.join(appDataPath, 'last-seen-version'); - fs.writeFileSync(lastSeenFile, currentVersion); - } - - const binaryPath = path.join(appDataPath, 'binary') - - if(!fs.existsSync(binaryPath)) { - fs.mkdirSync(binaryPath, { recursive: true }) - } - - const platform = os.platform(); - const holochain = platform === 'win32' ? 'holochain.exe' : 'holochain'; - const hc = platform === 'win32' ? 'hc.exe' : 'hc'; - - if(!hcOnly) { - const holochainSource = path.join(__dirname, `../temp/binary/${holochain}`); - const holochaintarget = path.join(binaryPath, holochain); - await copy(holochainSource, holochaintarget); - await chmod(holochaintarget, '755'); - } - - const hcSource = path.join(__dirname, `../temp/binary/${hc}`); - const hcTarget = path.join(binaryPath, hc); - await copy(hcSource, hcTarget); - await chmod(hcTarget, '755'); - - await getSeedConfig(dataPath, networkBootstrapSeed, overrideConfig); - - const swiplSource = path.join(__dirname, `../temp/swipl`); - const swiplTarget = path.join(appDataPath, 'swipl') - await copyDir(swiplSource, swiplTarget) - - process.exit(); -}; - -async function getSeedFilePath(dataPath?: string, networkBootstrapSeed?: string) { - const appDataPath = ad4mDataDirectory(dataPath) - - if (!networkBootstrapSeed) { - console.log("No bootstrap seed supplied... using the one found in local files"); - const targetSeedPath = path.join(appDataPath, 'mainnet_seed.seed'); - await copy(path.join(__dirname, `../mainnet_seed.json`), targetSeedPath); - return targetSeedPath; - } else { - return path.isAbsolute(networkBootstrapSeed) ? networkBootstrapSeed: path.join(__dirname, networkBootstrapSeed); - } -} - -async function getSeedConfig(dataPath?: string, networkBootstrapSeed?: string, override?: boolean) { - let seedPath; - let configDataPath; - let globalConfig; - - try { - globalConfig = getConfig(dataPath); - - if (networkBootstrapSeed) { - let decision; - - if (override === undefined) { - decision = ReadlineSync.question("There is a already a config present, do you want to override it? (Y|N): "); - } - - if (decision === 'Y' || decision === 'y' || override) { - configDataPath = dataPath; - seedPath = await getSeedFilePath(dataPath, networkBootstrapSeed); - } - } else { - if (!globalConfig[dataPath]) { - configDataPath = dataPath; - seedPath = await getSeedFilePath(dataPath, networkBootstrapSeed) - } else { - seedPath = globalConfig[dataPath].seedPath; - configDataPath = globalConfig[dataPath].dataPath; - } - } - - } catch (e) { - console.log(e) - configDataPath = dataPath; - seedPath = getSeedFilePath(dataPath, networkBootstrapSeed) - } - - const config = { - dataPath: configDataPath, - seedPath - } - - const dest = path.join(ad4mDataDirectory(dataPath), CONFIG); - - globalConfig[configDataPath] = config; - - fs.writeFileSync(dest, JSON.stringify(globalConfig)) -} \ No newline at end of file diff --git a/host/src/commands/prepare.ts b/host/src/commands/prepare.ts deleted file mode 100644 index 8531ea757..000000000 --- a/host/src/commands/prepare.ts +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Copy binaries from pkg to os file system, https://github.com/vercel/pkg/issues/342 - */ - -import type { Arguments, Argv } from 'yargs'; -import path from 'path'; -import fs from 'fs-extra'; -import { getAd4mHostVersion } from '../utils/config'; -import oldestSupportedVersion from '../../oldestSupportedVersion'; -import { ad4mDataDirectory } from '../ad4mDataDirectory'; -import semver from "semver"; - -type Options = { - dataPath?: string; -}; - -export const command: string = 'prepare'; -export const desc: string = 'Check the AD4M data directory and remove any old data from previous versions if required'; - -export const builder = (yargs: Argv) => - yargs - .options({ - dataPath: { - type: 'string', - describe: 'Name of directory to store ad4m data in the systems app data path', - alias: 'rp' - }, - }); - -function cleanAd4mData(dataPath: string, shouldClearState: boolean) { - const appDataPath = ad4mDataDirectory(dataPath); - if (fs.existsSync(appDataPath)) { - // Path to our binaries - const binaryPath = path.join(appDataPath, 'binary'); - // Path to our config - const configPath = path.join(appDataPath, 'ad4m-host-config.json'); - // Path to bootstrap seed - const bootstrapSeedPath = path.join(appDataPath, 'mainnet_seed.json'); - // Path to holochain data - const holochainDataPath = path.join(appDataPath, 'ad4m', 'h'); - // Path to languages - const languagesPath = path.join(appDataPath, 'ad4m', 'languages'); - - //Delete all the data which may conflict with the new version - fs.removeSync(binaryPath); - fs.removeSync(configPath); - fs.removeSync(bootstrapSeedPath); - fs.removeSync(holochainDataPath); - fs.removeSync(languagesPath); - - if (shouldClearState) { - const dbPath = path.join(appDataPath, 'ad4m', 'data', 'db.json'); - fs.removeSync(dbPath); - const languagesPath = path.join(appDataPath, 'ad4m', 'languages'); - fs.removeSync(languagesPath); - const perspectivePath = path.join(appDataPath, 'ad4m', 'perspectives.json'); - fs.removeSync(perspectivePath); - } - } -} - -export const handler = (argv: Arguments): void => { - const {dataPath = ''} = argv; - const appDataPath = ad4mDataDirectory(dataPath); - - if (!fs.existsSync(appDataPath)) { - console.log("No ad4m data directory found, skipping prepare command"); - // The ad4mDataDirectory is not created yet, dont create here, but instead have it be created in init.ts - return; - } - - const lastSeenFile = path.join(appDataPath, 'last-seen-version'); - if (!fs.existsSync(lastSeenFile)) { - // No last seen version file, lets clean their state. Note we are assuming the first time this added to a release - // we wish to clear the stat eof an agent - console.log("Not last seen version file, lets clean their state"); - cleanAd4mData(dataPath, true); - fs.writeFileSync(lastSeenFile, getAd4mHostVersion()); - return; - } - - const lastSeenVersion = fs.readFileSync(lastSeenFile, { encoding: 'utf-8' }); - console.log("Current last seen version is", lastSeenVersion); - const migratonInfo = oldestSupportedVersion(); - if (!semver.gte(lastSeenVersion, migratonInfo.version)) { - // Agents old ad4m version is too old, lets clean their state - console.log("Agents old ad4m version is too old, lets clean their state"); - cleanAd4mData(dataPath, migratonInfo.shouldClearState); - fs.writeFileSync(lastSeenFile, getAd4mHostVersion()); - return; - } - - process.exit(); -}; \ No newline at end of file diff --git a/host/src/commands/serve.ts b/host/src/commands/serve.ts deleted file mode 100644 index 4920896a1..000000000 --- a/host/src/commands/serve.ts +++ /dev/null @@ -1,169 +0,0 @@ -import { Arguments, Argv } from 'yargs'; -// @ts-ignore -import { init } from "@perspect3vism/ad4m-executor"; -import path from 'path'; -import fs from 'fs'; -// @ts-ignore -import getPort from 'get-port'; -import { getConfig } from '../utils/config'; -import { ad4mDataDirectory } from '../ad4mDataDirectory'; -import { homedir } from 'os'; - - -type Options = { - port?: number; - ipfsPort?: number; - hcAdminPort?: number; - hcAppPort?: number; - connectHolochain?: boolean; - languageLanguageOnly?: boolean; - bootstrapLanguage?: string; - bootstrapPerspective?: string; - appLangAliases?: string; - dataPath?: string; - reqCredential?: string; - hcUseBootrap?: boolean; - hcUseProxy?: boolean; - hcUseLocalProxy?: boolean; - hcUseMdns?: boolean; -}; - -export const command: string = 'serve'; -export const desc: string = 'Serve ad4m service at given port'; - -export const builder = (yargs: Argv) => - yargs - .options({ - port: { - type: 'number', - describe: 'Use this port to run ad4m GraphQL service', - default: 4000, - alias: 'p' - }, - ipfsPort: { - type: 'number', - describe: 'Use this port to bind IPFS to', - default: 14000, - }, - hcAdminPort: { - type: 'number', - describe: 'Admin port of holochain conductor' - }, - hcAppPort: { - type: 'number', - describe: 'Port used by hApp' - }, - connectHolochain: { - type: "boolean", - describe: 'Flag to connect existing running holochain process' - }, - dataPath: { - type: 'string', - describe: 'Name of directory (within the systems app data path) to store ad4m data', - alias: 'rp' - }, - languageLanguageOnly: { - type: 'boolean', - describe: 'Should the ad4m-executor be started with only the languageLanguage, so it can be used for publish other system languages', - default: false, - alias: 'll' - }, - bootstrapLanguage: { - type: 'string', - describe: 'Path to Bootstrap languages json file (list of languages)', - }, - bootstrapPerspective: { - type: 'string', - describe: 'Path to Bootstrap perspectives json file (list of perspectives)' - }, - appLangAliases: { - type: 'string', - describe: 'Language aliases to be loaded into ad4m-executor', - default: '{}' - }, - reqCredential: { - type: 'string', - describe: 'The credential for an admin client to override capability checks', - }, - hcUseBootrap: { - type: 'boolean', - describe: 'Flag to use bootstrap node for holochain conductor', - default: true - }, - hcUseProxy: { - type: 'boolean', - describe: 'Flag to use proxy for holochain conductor', - default: true - }, - hcUseLocalProxy: { - type: 'boolean', - describe: 'Flag to use local proxy for holochain conductor', - default: false - }, - hcUseMdns: { - type: 'boolean', - describe: 'Flag to use mdns for holochain conductor', - default: true - } - }); - -export const handler = async (argv: Arguments): Promise => { - const { - port, ipfsPort, hcAdminPort, hcAppPort, connectHolochain, languageLanguageOnly, - dataPath, bootstrapLanguage, bootstrapPerspective, appLangAliases, - reqCredential, hcUseBootrap, hcUseProxy, hcUseLocalProxy, hcUseMdns - } = argv; - - const globalConfig = getConfig(dataPath); - - if(!globalConfig[dataPath || '']) { - throw Error('No config found, please run ad4m-host init with the dataPath & networkBootstrapSeed params') - } - - const { seedPath } = globalConfig[dataPath || '']; - - let appDataPath = ad4mDataDirectory(dataPath) - - const binaryPath = path.join(appDataPath, 'binary'); - const swiplHomePath = (process.platform == "win32" ? path.join(appDataPath, 'swipl/') : path.join(appDataPath, 'swipl/lib/swipl/')) - const swiplPath = path.join(appDataPath, 'swipl/bin/swipl'); - const gqlPort = await getPort({ port }) - const ipfsRepoPath = path.join(appDataPath, 'ipfs') - - if (!fs.existsSync(appDataPath)) { - fs.mkdirSync(appDataPath); - } - - const bLanguage = bootstrapLanguage ? await import(path.isAbsolute(bootstrapLanguage) ? bootstrapLanguage: path.join(__dirname, bootstrapLanguage)) : []; - - const bPerspective = bootstrapPerspective ? await import(path.isAbsolute(bootstrapPerspective) ? bootstrapPerspective: path.join(__dirname, bootstrapPerspective)) : []; - - const config = { - appDataPath: appDataPath, - resourcePath: binaryPath, - networkBootstrapSeed: seedPath, - languageLanguageOnly: languageLanguageOnly, - bootstrapFixtures: { - languages: [...bLanguage], - perspectives: [...bPerspective], - }, - appLangAliases: JSON.parse(appLangAliases), - mocks: false, - runDappServer: true, - gqlPort, - hcPortAdmin: hcAdminPort, - hcPortApp: hcAppPort, - ipfsRepoPath, - ipfsSwarmPort: ipfsPort, - connectHolochain, - reqCredential, - swiplPath, - swiplHomePath, - hcUseBootrap, - hcUseProxy, - hcUseLocalProxy, - hcUseMdns - }; - - await init(config); -}; diff --git a/host/src/utils/config.ts b/host/src/utils/config.ts deleted file mode 100644 index 5533dc7f8..000000000 --- a/host/src/utils/config.ts +++ /dev/null @@ -1,36 +0,0 @@ -import path from "path"; -import fs from 'fs'; -import { ad4mDataDirectory } from "../ad4mDataDirectory"; - -export const CONFIG = 'ad4m-host-config.json'; - -type GetConfigReturntype = { - seedPath?: string; - dataPath?: string; -} - -export function getConfig(dataPath = ''): GetConfigReturntype { - try { - const ad4mHostConfig = path.join(ad4mDataDirectory(dataPath), CONFIG); - - const config = fs.readFileSync(ad4mHostConfig, { encoding: 'utf-8' }) - - const parsed = JSON.parse(config); - - return parsed; - } catch (e) { - const dest = path.join(ad4mDataDirectory(dataPath), CONFIG); - - fs.writeFileSync(dest, JSON.stringify({})) - - return {} - } -} - -export function getAd4mHostVersion(): string { - const packageJson = path.join(__dirname, `../package.json`); - const packageJsonParsed = JSON.parse(fs.readFileSync(packageJson, { encoding: 'utf-8' })); - const version = packageJsonParsed["version"]; - console.log("Got ad4mHost version: ", version); - return version; -} diff --git a/host/tsconfig.json b/host/tsconfig.json deleted file mode 100644 index 013cd986d..000000000 --- a/host/tsconfig.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Projects */ - // "incremental": true, /* Enable incremental compilation */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "ES2020", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - - /* Modules */ - "module": "ES2020", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./build", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - "noImplicitAny": false, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - "strictNullChecks": false, /* When type checking, take into account `null` and `undefined`. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } -} diff --git a/ui/scripts/copy-ad4m-host.ps1 b/ui/scripts/copy-ad4m-host.ps1 deleted file mode 100644 index 2a3d94cd4..000000000 --- a/ui/scripts/copy-ad4m-host.ps1 +++ /dev/null @@ -1,5 +0,0 @@ -rm -rf src-tauri/bins -mkdir src-tauri/bins - -Copy-Item ../host/dist/ad4m-windows-x64.exe -Destination src-tauri/bins/ad4m-host-x86_64-pc-windows-gnu.exe -Copy-Item ../host/dist/ad4m-windows-x64.exe -Destination src-tauri/bins/ad4m-host-x86_64-pc-windows-msvc.exe \ No newline at end of file diff --git a/ui/scripts/copy-ad4m-host.sh b/ui/scripts/copy-ad4m-host.sh deleted file mode 100755 index 8fcbb1023..000000000 --- a/ui/scripts/copy-ad4m-host.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -set -e - -rm -rf src-tauri/bins -mkdir src-tauri/bins - -TARGET_TRIPLE=$(rustc -vV | sed -n 's/^.*host: \(.*\)*$/\1/p') - -unameOut="$(uname -s)" -case "${unameOut}" in - Linux*) AD4M_HOST_BINARY=../host/dist/ad4m-linux-x64;; - Darwin*) AD4M_HOST_BINARY=../host/dist/ad4m-macos-x64;; - *) echo "Machine is not supported: ${unameOut}" && exit 1;; -esac -echo "Got ad4m-host binaries for machine type: ${unameOut}" - -cp $AD4M_HOST_BINARY src-tauri/bins/ad4m-host-$TARGET_TRIPLE - -chmod 755 src-tauri/bins/ad4m-host-$TARGET_TRIPLE From 9207a66829bfa506b39c4357a27e1a9794138cd2 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 2 Jun 2023 17:11:31 +0300 Subject: [PATCH 313/722] fix exports and compilation of rust-executor --- rust-executor/src/lib.rs | 2 +- rust-executor/src/main.rs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index d1167ba53..18f06b161 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -1,11 +1,11 @@ mod config; mod globals; pub mod graphql; +mod holochain_service; mod js_core; mod utils; mod wallet; -mod holochain_service; pub mod init; mod pubsub; diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 0ce7f5274..336876550 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -1,5 +1,6 @@ mod globals; mod graphql; +mod holochain_service; mod js_core; mod utils; mod wallet; From 465e0cd62b25467250b29ef4e8e3aaf17a85f6e8 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 2 Jun 2023 17:11:45 +0300 Subject: [PATCH 314/722] fix up js-executor unit tests again --- executor/src/core/Perspective.test.ts | 1 - executor/src/testutils/expression.ts | 14 ++++++++++++++ executor/src/testutils/links.ts | 10 ++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 executor/src/testutils/expression.ts create mode 100644 executor/src/testutils/links.ts diff --git a/executor/src/core/Perspective.test.ts b/executor/src/core/Perspective.test.ts index f1af8ba29..63c921006 100644 --- a/executor/src/core/Perspective.test.ts +++ b/executor/src/core/Perspective.test.ts @@ -1,7 +1,6 @@ import { v4 as uuidv4 } from 'uuid'; import { Neighbourhood, LinkQuery, PerspectiveHandle, PerspectiveState } from '@perspect3vism/ad4m' import { Perspective as Ad4mPerspective, LinkExpression } from '@perspect3vism/ad4m' -import Memory from 'lowdb/adapters/Memory' import path from "path"; import { fileURLToPath } from 'url'; import { expect } from "chai"; diff --git a/executor/src/testutils/expression.ts b/executor/src/testutils/expression.ts new file mode 100644 index 000000000..67f4bbaff --- /dev/null +++ b/executor/src/testutils/expression.ts @@ -0,0 +1,14 @@ +import { Expression } from "@perspect3vism/ad4m"; +import faker from 'faker' + +export function createMockExpression(did: string, data: object): Expression { + return { + author: did, + timestamp: faker.date.recent().toISOString(), + data, + proof: { + signature: "abcdefgh", + key: `${did}#primary` + } + } +} diff --git a/executor/src/testutils/links.ts b/executor/src/testutils/links.ts new file mode 100644 index 000000000..0c93fc495 --- /dev/null +++ b/executor/src/testutils/links.ts @@ -0,0 +1,10 @@ +import { Link } from '@perspect3vism/ad4m' +import faker from 'faker' + +export function createLink(): Link { + return { + source: faker.internet.url(), + target: faker.internet.url(), + predicate: faker.internet.url(), + } as Link +} \ No newline at end of file From b175e93bcbe3d677e8c41103c18a6ec4716b7925 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 2 Jun 2023 17:12:02 +0300 Subject: [PATCH 315/722] integrate bat tests with ad4m rust cli instead of ad4m-host --- tests/binaries.bats | 4 ---- tests/integration.bats | 8 ++++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/binaries.bats b/tests/binaries.bats index f97f0be89..bc6e50495 100644 --- a/tests/binaries.bats +++ b/tests/binaries.bats @@ -3,10 +3,6 @@ setup() { load 'test_helper/bats-assert/load' } -@test "can run ad4m-host" { - ./host/dist/ad4m-macos-x64 -} - get_ad4m_cli_banner() { ./target/release/ad4m 2>&1 } diff --git a/tests/integration.bats b/tests/integration.bats index 6e9226f31..139db6989 100644 --- a/tests/integration.bats +++ b/tests/integration.bats @@ -2,10 +2,10 @@ setup_file() { echo "Creating test agent 1" >&3 echo "Initalizing data directory..." >&3 rm -rf ./tests/ad4m1 - ./host/dist/ad4m-macos-x64 init --dataPath ./tests/ad4m1 + ./target/release/ad4m init --data-path ./tests/ad4m1 echo "done." >&3 echo "Starting agent 1..." >&3 - ./host/dist/ad4m-macos-x64 serve --dataPath ./tests/ad4m1 & + ./target/release/ad4m serve --app-data-path ./tests/ad4m1 & sleep 5 echo "done." >&3 @@ -17,10 +17,10 @@ setup_file() { #echo "Creating test agent 2" >&3 #echo "Initalizing data directory..." >&3 #rm -rf ./tests/ad4m2 - #./host/dist/ad4m-macos-x64 init --dataPath ./tests/ad4m2 + #./target/release/ad4m init --data-path ./tests/ad4m2 #echo "done." >&3 #echo "Starting agent 2..." >&3 - #./host/dist/ad4m-macos-x64 serve --dataPath ./tests/ad4m2 --port 4001 --ipfsPort 15000 --hcAdminPort 2337 --hcAppPort 2338 & + #./target/release/ad4m serve --app-data-path ./tests/ad4m2 --gql-port 4001 --ipfs-swarm-port 15000 --hc-admin-port 2337 --hc-app-port 2338 & #sleep 5 #echo "done." >&3 From 059350217ff110ef5f7e0a239d77a9f66731b82a Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 2 Jun 2023 17:12:21 +0300 Subject: [PATCH 316/722] first pass at integrating ci test & release workflows with new refactor --- .github/workflows/integration_cli.yml | 10 ++------ .github/workflows/integration_js.yml | 7 ++---- .github/workflows/publish.yml | 33 ++++++++++----------------- .github/workflows/publish_staging.yml | 33 ++++++++++----------------- 4 files changed, 28 insertions(+), 55 deletions(-) diff --git a/.github/workflows/integration_cli.yml b/.github/workflows/integration_cli.yml index 9f2426090..0c3c01b5d 100644 --- a/.github/workflows/integration_cli.yml +++ b/.github/workflows/integration_cli.yml @@ -9,7 +9,7 @@ on: jobs: test: - name: AD4M cli <> AD4M host + name: AD4M cli runs-on: macos-latest strategy: matrix: @@ -49,15 +49,9 @@ jobs: - name: Yarn Install run: yarn install - - name: Yarn Build + - name: Yarn Build (builds entire workspace) run: yarn build - - name: Build AD4M-Host - run: yarn run package-macos - - - name: Build AD4M cli - run: cd cli && cargo build --release - - name: Run binaries test script run: ./tests/bats/bin/bats tests/binaries.bats || cat ~/Library/Logs/DiagnosticReports/* diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index c9e6e502f..5ee5c3885 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -9,7 +9,7 @@ on: jobs: test: - name: JS Ad4mClient <> AD4M host + name: JS Ad4mClient <> AD4M Executor runs-on: macos-latest strategy: matrix: @@ -49,12 +49,9 @@ jobs: - name: Yarn Install run: yarn install - - name: Yarn Build + - name: Yarn Build (builds entire workspace) run: yarn build - - name: Build AD4M-Host - run: yarn run package-macos - - name: Run tests/js run: | cd tests/js diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index dc0b49595..51da2a1bf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -27,7 +27,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token with: tag_name: ${{ steps.create_tag.outputs.version }} - release_name: AD4M Launcher & Host ${{ steps.create_tag.outputs.version }} + release_name: AD4M Launcher & Cli ${{ steps.create_tag.outputs.version }} body: See the assets to download this version and install. draft: true prerelease: false @@ -79,17 +79,8 @@ jobs: - name: Yarn Install run: yarn install - - name: Build AD4M-Host & build Launcher binary (macos-latest) - if: matrix.platform == 'macos-latest' - run: yarn run build-macos - - - name: Build AD4M-Host & build Launcher binary (windows-latest) - if: matrix.platform == 'windows-latest' - run: yarn run build-windows - - - name: Build AD4M-Host & build Launcher binary (linux-latest) - if: matrix.platform == 'ubuntu-latest' - run: yarn run build-linux + - name: Build Launcher binary + run: yarn run package-macos - name: Upload Release Deb Asset id: upload-release-deb-asset @@ -103,15 +94,15 @@ jobs: asset_name: ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Linux Binary - id: upload-release-linux-ad4m-host-binary + - name: Upload Release AD4M CLI Linux Binary + id: upload-release-linux-ad4m-cli-binary if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/host/dist/ad4m-linux-x64 + asset_path: /home/runner/work/ad4m/ad4m/target/release/ad4m asset_name: ad4m-linux-${{ steps.extract_version.outputs.version }}-x64 asset_content_type: application/octet-stream @@ -127,15 +118,15 @@ jobs: asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Macos Binary - id: upload-release-macos-ad4m-host-binary + - name: Upload Release AD4M CLI Macos Binary + id: upload-release-macos-ad4m-cli-binary if: matrix.platform == 'macos-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/host/dist/ad4m-macos-x64 + asset_path: /Users/runner/work/ad4m/ad4m/target/release/ad4m asset_name: ad4m-macos-${{ steps.extract_version.outputs.version }}-x64 asset_content_type: application/octet-stream @@ -151,15 +142,15 @@ jobs: asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Windows Binary - id: upload-release-windows-ad4m-host-binary + - name: Upload Release AD4M CLI Windows Binary + id: upload-release-windows-ad4m-cli-binary if: matrix.platform == 'windows-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\host\dist\ad4m-windows-x64.exe + asset_path: D:\a\ad4m\ad4m\target\release\ad4m-x64.exe asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe asset_content_type: application/octet-stream diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 31d6dd33b..1c8f22f26 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -27,7 +27,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token with: tag_name: ${{ steps.create_tag.outputs.version }} - release_name: AD4M Launcher & Host ${{ steps.create_tag.outputs.version }} Prerelease + release_name: AD4M Launcher & CLI ${{ steps.create_tag.outputs.version }} Prerelease body: See the assets to download this version and install. draft: true prerelease: true @@ -79,17 +79,8 @@ jobs: - name: Yarn Install run: yarn install - - name: Build AD4M-Host & build Launcher binary (macos-latest) - if: matrix.platform == 'macos-latest' - run: yarn run build-macos - - - name: Build AD4M-Host & build Launcher binary (windows-latest) - if: matrix.platform == 'windows-latest' - run: yarn run build-windows - - - name: Build AD4M-Host & build Launcher binary (linux-latest) - if: matrix.platform == 'ubuntu-latest' - run: yarn run build-linux + - name: Build AD4M-CLI & build Launcher binary (macos-latest) + run: yarn run package-ad4m - name: Upload Release Deb Asset id: upload-release-deb-asset @@ -103,15 +94,15 @@ jobs: asset_name: ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Linux Binary - id: upload-release-linux-ad4m-host-binary + - name: Upload Release AD4M CLI Linux Binary + id: upload-release-linux-ad4m-cli-binary if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/host/dist/ad4m-linux-x64 + asset_path: /home/runner/work/ad4m/ad4m/target/release/ad4m asset_name: ad4m-linux-${{ steps.extract_version.outputs.version }}-x64 asset_content_type: application/octet-stream @@ -127,15 +118,15 @@ jobs: asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Macos Binary - id: upload-release-macos-ad4m-host-binary + - name: Upload Release AD4M CLI Macos Binary + id: upload-release-macos-ad4m-cli-binary if: matrix.platform == 'macos-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/host/dist/ad4m-macos-x64 + asset_path: /Users/runner/work/ad4m/ad4m/target/release/ad4m asset_name: ad4m-macos-${{ steps.extract_version.outputs.version }}-x64 asset_content_type: application/octet-stream @@ -151,15 +142,15 @@ jobs: asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi asset_content_type: application/octet-stream - - name: Upload Release AD4M Host Windows Binary - id: upload-release-windows-ad4m-host-binary + - name: Upload Release AD4M CLI Windows Binary + id: upload-release-windows-ad4m-cli-binary if: matrix.platform == 'windows-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\host\dist\ad4m-windows-x64.exe + asset_path: D:\a\ad4m\ad4m\target\release\ad4m.exe asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe asset_content_type: application/octet-stream From 53f48b21fdb95bf959ea91f73387a1ec1abf4540 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 5 Jun 2023 15:19:30 +0530 Subject: [PATCH 317/722] neighbourhood language added --- .../neighbourhood-language/adapter.ts | 73 +- .../neighbourhood-language/dna.js | 4 + .../neighbourhood-language/hc-dna/Cargo.lock | 2321 +++++++++++++++++ .../neighbourhood-language/hc-dna/Cargo.toml | 11 + .../neighbourhood-language/hc-dna/build.ps1 | 3 + .../neighbourhood-language/hc-dna/build.sh | 3 + .../neighbourhood-language/hc-dna/default.nix | 14 + .../hc-dna/holochain_version.nix | 20 + .../hc-dna/nix/sources.json | 14 + .../hc-dna/nix/sources.nix | 174 ++ .../hc-dna/tests/download-hc-binaries.sh | 14 + .../hc-dna/tests/index.ts | 83 + .../hc-dna/tests/package.json | 26 + .../hc-dna/tests/tsconfig.json | 10 + .../hc-dna/tests/yarn.lock | 1149 ++++++++ .../hc-dna/workdir/dna.yaml | 15 + .../hc-dna/zomes/integrity/Cargo.toml | 18 + .../hc-dna/zomes/integrity/src/lib.rs | 56 + .../zomes/neighbourhood_storage/.gitignore | 1 + .../zomes/neighbourhood_storage/Cargo.toml | 21 + .../zomes/neighbourhood_storage/src/lib.rs | 50 + .../neighbourhood-language/index.ts | 2 - .../neighbourhoodStorage.ts | 22 + .../neighbourhood-language/package.json | 25 +- .../neighbourhood-language/rollup.config.js | 4 +- .../neighbourhood-language/types.ts | 7 + 26 files changed, 4084 insertions(+), 56 deletions(-) create mode 100644 bootstrap-languages/neighbourhood-language/dna.js create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/Cargo.lock create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/Cargo.toml create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/build.ps1 create mode 100755 bootstrap-languages/neighbourhood-language/hc-dna/build.sh create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/default.nix create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/holochain_version.nix create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.json create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.nix create mode 100755 bootstrap-languages/neighbourhood-language/hc-dna/tests/download-hc-binaries.sh create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/tests/package.json create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/tests/tsconfig.json create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/tests/yarn.lock create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/Cargo.toml create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/.gitignore create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/Cargo.toml create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs create mode 100644 bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts create mode 100644 bootstrap-languages/neighbourhood-language/types.ts diff --git a/bootstrap-languages/neighbourhood-language/adapter.ts b/bootstrap-languages/neighbourhood-language/adapter.ts index 8a42b2dd6..3e9a7616b 100644 --- a/bootstrap-languages/neighbourhood-language/adapter.ts +++ b/bootstrap-languages/neighbourhood-language/adapter.ts @@ -1,75 +1,60 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService } from "@perspect3vism/ad4m"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService, HolochainLanguageDelegate, NeighbourhoodExpression } from "@perspect3vism/ad4m"; import type { IPFS } from "ipfs-core-types" import axios from "axios"; import https from "https"; -import { PROXY_URL } from "."; +import { DNA_NICK } from "./dna"; +import { NeighbourhoodStorage } from "./neighbourhoodStorage"; class NeighbourhoodPutAdapter implements PublicSharing { - #agent: AgentService; - #IPFS: IPFS + #agent: AgentService + #DNA: HolochainLanguageDelegate; constructor(context: LanguageContext) { - this.#agent = context.agent; - this.#IPFS = context.IPFS; + this.#agent = context.agent + this.#DNA = context.Holochain as HolochainLanguageDelegate; } async createPublic(neighbourhood: object): Promise
    { - const ipfsAddress = await this.#IPFS.add( - { content: JSON.stringify(neighbourhood)}, - { onlyHash: true}, - ); - // @ts-ignore - const hash = ipfsAddress.cid.toString(); + const storage = new NeighbourhoodStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "file_storage", fn_name, payload)); - const agent = this.#agent; - const expression = agent.createSignedExpression(neighbourhood); + const expression: any = this.#agent.createSignedExpression(neighbourhood) - //Build the key value object for the neighbourhood object - const key = hash; - const neighbourhoodPostData = { - key: key, - // Content of the new object. - value: JSON.stringify(expression), + //Store the FileMetadataExpression + const address = await storage.storeNeighbourhoodExpression(expression) + if (!Buffer.isBuffer(address)) { + throw new Error("Could not create FileExpression data") }; - //Save the neighbourhood information to the KV store - const httpsAgent = new https.Agent({ - rejectUnauthorized: false - }); - const neighbourhoodPostResult = await axios.post(PROXY_URL, neighbourhoodPostData, { httpsAgent }); - if (neighbourhoodPostResult.status != 200) { - console.error("Upload neighbourhood data gets error: ", neighbourhoodPostResult); - } - return hash as Address; + //@ts-ignore + return address.toString("hex") } } export default class Adapter implements ExpressionAdapter { putAdapter: PublicSharing; + #DNA: HolochainLanguageDelegate; constructor(context: LanguageContext) { this.putAdapter = new NeighbourhoodPutAdapter(context); + this.#DNA = context.Holochain as HolochainLanguageDelegate; } async get(address: Address): Promise { const cid = address.toString(); - let presignedUrl; - try { - const getPresignedUrl = await axios.get(PROXY_URL+`?key=${cid}`); - presignedUrl = getPresignedUrl.data.url; - } catch (e) { - console.error("Get neighbourhood failed at getting presigned url", e); - } + const storage = new NeighbourhoodStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language-language", fn_name, payload)); - let neighbourhoodObject; - try { - const getneighbourhoodObject = await axios.get(presignedUrl); - neighbourhoodObject = getneighbourhoodObject.data; - } catch (e) { - console.error("Get meta information failed at getting meta information", e); - } + let addressBuffer = Buffer.from(address, 'hex'); + const expression = (await storage.getNeighbourhoodExpression(addressBuffer)) as NeighbourhoodExpression - return neighbourhoodObject; + if (!expression) { + return null; + }; + if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) { + expression.data.data_base64 = ""; + return expression; + }; + + return expression } } diff --git a/bootstrap-languages/neighbourhood-language/dna.js b/bootstrap-languages/neighbourhood-language/dna.js new file mode 100644 index 000000000..395231e3d --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/dna.js @@ -0,0 +1,4 @@ +import dna from "./hc-dna/workdir/neighbourhood-language.dna"; + +export const DNA = Buffer.from(dna, "base64"); +export const DNA_NICK = "neighbourhood-language"; diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.lock b/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.lock new file mode 100644 index 000000000..d6251fc4a --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.lock @@ -0,0 +1,2321 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli 0.27.1", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.30.3", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" + +[[package]] +name = "bytecheck" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f" +dependencies = [ + "bytecheck_derive", + "ptr_meta", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "camino" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.16", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +dependencies = [ + "iana-time-zone", + "num-integer", + "num-traits", + "serde", + "time", + "winapi", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "corosensei" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" +dependencies = [ + "autocfg", + "cfg-if", + "libc", + "scopeguard", + "windows-sys 0.33.0", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +dependencies = [ + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "gimli 0.26.2", + "log", + "regalloc", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" + +[[package]] +name = "cranelift-entity" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" + +[[package]] +name = "cranelift-frontend" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.7.1", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cxx" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "enumset" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753" +dependencies = [ + "enumset_derive", +] + +[[package]] +name = "enumset_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "gcollections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377" +dependencies = [ + "bit-set", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221996f774192f0f718773def8201c4ae31f02616a54ccfc2d358bb0e5cefdec" + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hdi" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8046116c32434837d28ad1b443802e2444a38d8cdb69caca9169414364fe0b69" +dependencies = [ + "hdk_derive", + "holo_hash", + "holochain_integrity_types", + "holochain_wasmer_guest", + "paste", + "serde", + "serde_bytes", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cbecb374a53eba516cbfefaad21f4bc805f4c731b81bd800a9a9e0239004eb3" +dependencies = [ + "getrandom", + "hdi", + "hdk_derive", + "holo_hash", + "holochain_wasmer_guest", + "holochain_zome_types", + "paste", + "serde", + "serde_bytes", + "thiserror", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8eade453438a832944ab3f4006482f6bb5693997ff58e3049f23a8f8c617a4" +dependencies = [ + "darling", + "heck", + "holochain_integrity_types", + "paste", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "holo_hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cffb2fb9ce1d2ce4c98d4cc9d625ddb92f6982f47094ed2e36fa93f5a096f36" +dependencies = [ + "base64", + "blake2b_simd", + "derive_more", + "holochain_serialized_bytes", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "thiserror", +] + +[[package]] +name = "holochain_integrity_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0630a221701e40ddf0fb369ead8eb6e18e3ec84241b3c77f803ea137930017b" +dependencies = [ + "holo_hash", + "holochain_serialized_bytes", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "tracing", +] + +[[package]] +name = "holochain_serialized_bytes" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" +dependencies = [ + "holochain_serialized_bytes_derive", + "rmp-serde", + "serde", + "serde-transcode", + "serde_bytes", + "serde_json", + "thiserror", +] + +[[package]] +name = "holochain_serialized_bytes_derive" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "holochain_wasmer_common" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +dependencies = [ + "holochain_serialized_bytes", + "serde", + "serde_bytes", + "test-fuzz", + "thiserror", + "wasmer", + "wasmer-engine", +] + +[[package]] +name = "holochain_wasmer_guest" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +dependencies = [ + "holochain_serialized_bytes", + "holochain_wasmer_common", + "parking_lot", + "paste", + "serde", + "tracing", +] + +[[package]] +name = "holochain_zome_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df99af259b89d8309121d2a81852f8e468dc587332ce59a93130f4e1149758b4" +dependencies = [ + "holo_hash", + "holochain_integrity_types", + "holochain_serialized_bytes", + "holochain_wasmer_common", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "thiserror", + "tracing", +] + +[[package]] +name = "home" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" +dependencies = [ + "winapi", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "indexmap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integrity" +version = "0.1.0" +dependencies = [ + "chrono", + "derive_more", + "hdi", + "hdk", + "holo_hash", + "serde", +] + +[[package]] +name = "intervallum" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1" +dependencies = [ + "bit-set", + "gcollections", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "itoa" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" + +[[package]] +name = "js-sys" +version = "0.3.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kitsune_p2p_dht_arc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +dependencies = [ + "derive_more", + "gcollections", + "intervallum", + "num-traits", + "serde", +] + +[[package]] +name = "kitsune_p2p_timestamp" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +dependencies = [ + "chrono", + "derive_more", + "serde", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +dependencies = [ + "cc", +] + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "loupe" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" +dependencies = [ + "indexmap", + "loupe-derive", + "rustversion", +] + +[[package]] +name = "loupe-derive" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "neighbourhood_storage" +version = "0.1.0" +dependencies = [ + "chrono", + "derive_more", + "hdk", + "holo_hash", + "integrity", + "lazy_static", + "serde", + "sha2", + "thiserror", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +dependencies = [ + "crc32fast", + "hashbrown 0.11.2", + "indexmap", + "memchr", +] + +[[package]] +name = "object" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.45.0", +] + +[[package]] +name = "paste" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" + +[[package]] +name = "pest" +version = "2.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "quote" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rayon" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regalloc" +version = "0.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +dependencies = [ + "log", + "rustc-hash", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "region" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rkyv" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15" +dependencies = [ + "bytecheck", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rmp" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.16", +] + +[[package]] +name = "rustversion" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" + +[[package]] +name = "ryu" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scratch" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-transcode" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "subprocess" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-lexicon" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "test-fuzz" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125df852011c4f8f31df5620f4aea38ecddb5dfb4d9bc569b30485b15ffc3d4e" +dependencies = [ + "serde", + "test-fuzz-internal", + "test-fuzz-macro", + "test-fuzz-runtime", +] + +[[package]] +name = "test-fuzz-internal" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" +dependencies = [ + "cargo_metadata", + "proc-macro2", + "quote", + "serde", + "strum_macros", +] + +[[package]] +name = "test-fuzz-macro" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "856bbca0314c328004691b9c0639fb198ca764d1ce0e20d4dd8b78f2697c2a6f" +dependencies = [ + "darling", + "if_chain", + "lazy_static", + "proc-macro2", + "quote", + "subprocess", + "syn", + "test-fuzz-internal", + "toolchain_find", + "unzip-n", +] + +[[package]] +name = "test-fuzz-runtime" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "303774eb17994c2ddb59c460369f4c3a55496f013380278d78eeebd2deb896ac" +dependencies = [ + "bincode", + "hex", + "num-traits", + "serde", + "sha-1", + "test-fuzz-internal", +] + +[[package]] +name = "thiserror" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "toolchain_find" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" +dependencies = [ + "home", + "lazy_static", + "regex", + "semver 0.11.0", + "walkdir", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "trilean" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicode-ident" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unzip-n" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" + +[[package]] +name = "wasm-encoder" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c3e4bc09095436c8e7584d86d33e6c3ee67045af8fb262cbb9cc321de553428" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" +dependencies = [ + "cfg-if", + "indexmap", + "js-sys", + "loupe", + "more-asserts", + "target-lexicon", + "thiserror", + "wasm-bindgen", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-compiler-cranelift", + "wasmer-derive", + "wasmer-engine", + "wasmer-engine-dylib", + "wasmer-engine-universal", + "wasmer-types", + "wasmer-vm", + "wat", + "winapi", +] + +[[package]] +name = "wasmer-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" +dependencies = [ + "enumset", + "loupe", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-compiler" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" +dependencies = [ + "enumset", + "loupe", + "rkyv", + "serde", + "serde_bytes", + "smallvec", + "target-lexicon", + "thiserror", + "wasmer-types", + "wasmparser", +] + +[[package]] +name = "wasmer-compiler-cranelift" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "gimli 0.26.2", + "loupe", + "more-asserts", + "rayon", + "smallvec", + "target-lexicon", + "tracing", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-derive" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "wasmer-engine" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" +dependencies = [ + "backtrace", + "enumset", + "lazy_static", + "loupe", + "memmap2", + "more-asserts", + "rustc-demangle", + "serde", + "serde_bytes", + "target-lexicon", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-engine-dylib" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" +dependencies = [ + "cfg-if", + "enum-iterator", + "enumset", + "leb128", + "libloading", + "loupe", + "object 0.28.4", + "rkyv", + "serde", + "tempfile", + "tracing", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-engine", + "wasmer-object", + "wasmer-types", + "wasmer-vm", + "which", +] + +[[package]] +name = "wasmer-engine-universal" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" +dependencies = [ + "cfg-if", + "enumset", + "leb128", + "loupe", + "region", + "rkyv", + "wasmer-compiler", + "wasmer-engine", + "wasmer-engine-universal-artifact", + "wasmer-types", + "wasmer-vm", + "winapi", +] + +[[package]] +name = "wasmer-engine-universal-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" +dependencies = [ + "enum-iterator", + "enumset", + "loupe", + "rkyv", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-object" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" +dependencies = [ + "object 0.28.4", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-types" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" +dependencies = [ + "backtrace", + "enum-iterator", + "indexmap", + "loupe", + "more-asserts", + "rkyv", + "serde", + "thiserror", +] + +[[package]] +name = "wasmer-vm" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" +dependencies = [ + "backtrace", + "cc", + "cfg-if", + "corosensei", + "enum-iterator", + "indexmap", + "lazy_static", + "libc", + "loupe", + "mach", + "memoffset 0.6.5", + "more-asserts", + "region", + "rkyv", + "scopeguard", + "serde", + "thiserror", + "wasmer-artifact", + "wasmer-types", + "winapi", +] + +[[package]] +name = "wasmparser" +version = "0.83.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" + +[[package]] +name = "wast" +version = "53.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8244fa24196b1d8fd3ca4a96a3a164c40f846498c5deab6caf414c67340ca4af" +dependencies = [ + "leb128", + "memchr", + "unicode-width", + "wasm-encoder", +] + +[[package]] +name = "wat" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4620f1059add6dad511decb9d5d88b4a0a0d3e2e315ed34f79b0dc0dce18aa4b" +dependencies = [ + "wast", +] + +[[package]] +name = "which" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +dependencies = [ + "either", + "libc", + "once_cell", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" +dependencies = [ + "windows_aarch64_msvc 0.33.0", + "windows_i686_gnu 0.33.0", + "windows_i686_msvc 0.33.0", + "windows_x86_64_gnu 0.33.0", + "windows_x86_64_msvc 0.33.0", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" + +[[package]] +name = "windows_i686_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" + +[[package]] +name = "windows_i686_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.toml b/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.toml new file mode 100644 index 000000000..8ae82fefc --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] +members = [ + "zomes/integrity", + "zomes/neighbourhood_storage" +] + +[profile.dev] +opt-level = "z" + +[profile.release] +opt-level = "z" \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/build.ps1 b/bootstrap-languages/neighbourhood-language/hc-dna/build.ps1 new file mode 100644 index 000000000..e7bcb228e --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/build.ps1 @@ -0,0 +1,3 @@ +$env:CARGO_TARGET_DIR = target +cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/build.sh b/bootstrap-languages/neighbourhood-language/hc-dna/build.sh new file mode 100755 index 000000000..a089cc772 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/default.nix b/bootstrap-languages/neighbourhood-language/hc-dna/default.nix new file mode 100644 index 000000000..33f97a914 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/default.nix @@ -0,0 +1,14 @@ +let + holonixPath = (import ./nix/sources.nix).holonix; # points to the current state of the Holochain repository + holonix = import (holonixPath) { + holochainVersionId = "main"; + }; + nixpkgs = holonix.pkgs; +in nixpkgs.mkShell { + inputsFrom = [ holonix.main ]; + packages = with nixpkgs; [ + binaryen + nodejs-16_x + swiProlog + ]; +} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/holochain_version.nix b/bootstrap-languages/neighbourhood-language/hc-dna/holochain_version.nix new file mode 100644 index 000000000..9f44831c8 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/holochain_version.nix @@ -0,0 +1,20 @@ +# This file was generated with the following command: +# update-holochain-versions --git-src=revision:holochain-0.0.161 --lair-version-req=~0.2 --output-file=holochain_version.nix +# For usage instructions please visit https://github.com/holochain/holochain-nixpkgs/#readme + +{ + url = "https://github.com/holochain/holochain"; + rev = "holochain-0.1.0"; + sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; + cargoLock = { + outputHashes = { + }; + }; + + binsFilter = [ + "holochain" + "hc" + "kitsune-p2p-proxy" + "kitsune-p2p-tx2-proxy" + ]; +} diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.json b/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.json new file mode 100644 index 000000000..451563814 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.json @@ -0,0 +1,14 @@ +{ + "holonix": { + "branch": "main", + "description": "NixOS && Holochain", + "homepage": "", + "owner": "holochain", + "repo": "holonix", + "rev": "241c1754a37881f51f2f33921a2777b38c34fa24", + "sha256": "sha256:0zaa477kyzpsrcc3nk1jznp4gchwm4pk5p37pwkq6mjhiizcxshy", + "type": "tarball", + "url": "https://github.com/holochain/holonix/archive/241c1754a37881f51f2f33921a2777b38c34fa24.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + } +} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.nix b/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.nix new file mode 100644 index 000000000..fe2468872 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.nix @@ -0,0 +1,174 @@ +# This file has been generated by Niv. + +let + + # + # The fetchers. fetch_ fetches specs of type . + # + + fetch_file = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchurl { inherit (spec) url sha256; name = name'; } + else + pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; + + fetch_tarball = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchTarball { name = name'; inherit (spec) url sha256; } + else + pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; + + fetch_git = name: spec: + let + ref = + if spec ? ref then spec.ref else + if spec ? branch then "refs/heads/${spec.branch}" else + if spec ? tag then "refs/tags/${spec.tag}" else + abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; + in + builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; + + fetch_local = spec: spec.path; + + fetch_builtin-tarball = name: throw + ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=tarball -a builtin=true''; + + fetch_builtin-url = name: throw + ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=file -a builtin=true''; + + # + # Various helpers + # + + # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 + sanitizeName = name: + ( + concatMapStrings (s: if builtins.isList s then "-" else s) + ( + builtins.split "[^[:alnum:]+._?=-]+" + ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) + ) + ); + + # The set of packages used when specs are fetched using non-builtins. + mkPkgs = sources: system: + let + sourcesNixpkgs = + import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; + hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; + hasThisAsNixpkgsPath = == ./.; + in + if builtins.hasAttr "nixpkgs" sources + then sourcesNixpkgs + else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then + import {} + else + abort + '' + Please specify either (through -I or NIX_PATH=nixpkgs=...) or + add a package called "nixpkgs" to your sources.json. + ''; + + # The actual fetching function. + fetch = pkgs: name: spec: + + if ! builtins.hasAttr "type" spec then + abort "ERROR: niv spec ${name} does not have a 'type' attribute" + else if spec.type == "file" then fetch_file pkgs name spec + else if spec.type == "tarball" then fetch_tarball pkgs name spec + else if spec.type == "git" then fetch_git name spec + else if spec.type == "local" then fetch_local spec + else if spec.type == "builtin-tarball" then fetch_builtin-tarball name + else if spec.type == "builtin-url" then fetch_builtin-url name + else + abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; + + # If the environment variable NIV_OVERRIDE_${name} is set, then use + # the path directly as opposed to the fetched source. + replace = name: drv: + let + saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name; + ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; + in + if ersatz == "" then drv else + # this turns the string into an actual Nix path (for both absolute and + # relative paths) + if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; + + # Ports of functions for older nix versions + + # a Nix version of mapAttrs if the built-in doesn't exist + mapAttrs = builtins.mapAttrs or ( + f: set: with builtins; + listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) + ); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 + range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 + stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 + stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); + concatMapStrings = f: list: concatStrings (map f list); + concatStrings = builtins.concatStringsSep ""; + + # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 + optionalAttrs = cond: as: if cond then as else {}; + + # fetchTarball version that is compatible between all the versions of Nix + builtins_fetchTarball = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchTarball; + in + if lessThan nixVersion "1.12" then + fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchTarball attrs; + + # fetchurl version that is compatible between all the versions of Nix + builtins_fetchurl = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchurl; + in + if lessThan nixVersion "1.12" then + fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchurl attrs; + + # Create the final "sources" from the config + mkSources = config: + mapAttrs ( + name: spec: + if builtins.hasAttr "outPath" spec + then abort + "The values in sources.json should not have an 'outPath' attribute" + else + spec // { outPath = replace name (fetch config.pkgs name spec); } + ) config.sources; + + # The "config" used by the fetchers + mkConfig = + { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null + , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile) + , system ? builtins.currentSystem + , pkgs ? mkPkgs sources system + }: rec { + # The sources, i.e. the attribute set of spec name to spec + inherit sources; + + # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers + inherit pkgs; + }; + +in +mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/download-hc-binaries.sh b/bootstrap-languages/neighbourhood-language/hc-dna/tests/download-hc-binaries.sh new file mode 100755 index 000000000..e78e813ec --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/tests/download-hc-binaries.sh @@ -0,0 +1,14 @@ +#!/bin/bash +[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" + +if [ ! -f "./hc" ]; then + wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 + mv hc-linux-0.1.0 ./hc + chmod +x ./hc +fi + +if [ ! -f "./holochain" ]; then + wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 + mv holochain-linux-0.1.0 ./holochain + chmod +x ./holochain +fi \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts b/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts new file mode 100644 index 000000000..fcf0546ae --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts @@ -0,0 +1,83 @@ +import { CallableCell, runScenario, Scenario } from "@holochain/tryorama"; +import test from "tape-promise/tape.js"; +import path from "path"; +import { resolve } from "path"; +import { NeighbourhoodStorage } from "../../neighbourhoodStorage"; +import { Blob } from "buffer"; +import { NeighbourhoodExpression } from "@perspect3vism/ad4m"; + +const dnas = [{ source: {path: path.join("../workdir/neighbourhood-laguage.dna") } }]; + +function sleep(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +test("Share full FileExpression between Alice and Bob", async (t) => { + await runScenario(async (scenario: Scenario) => { + const alice = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "neighbourhood-laguage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + const bob = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "neighbourhood-laguage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + console.log("Sharing all agents") + await scenario.shareAllAgents(); + + + const aliceClient = new NeighbourhoodStorage((fn_name, payload) => alice.cells[0].callZome({zome_name: "neighbourhood_storage", fn_name, payload})); + const bobClient = new NeighbourhoodStorage((fn_name, payload) => bob.cells[0].callZome({zome_name: "neighbourhood_storage", fn_name, payload})); + + + let randomNumbers:number[] = []; + for(let i = 0; i < 1000000; i++) { + randomNumbers.push(Math.floor(Math.random() * 1000)); + } + const buf = Buffer.from(randomNumbers); + const blobUp = new Blob([buf]) + + const neighbourhoodExpression: NeighbourhoodExpression = { + linkLangugae: "test", + meta: { + links: [] + } + } + + const neighbourhoodExpressionAddr = await aliceClient.storeNeighbourhoodExpression(neighbourhoodExpression) + + await new Promise(resolve => setTimeout(resolve, 3000)) + + const neighbourdhoodExpressionDown = await bobClient.getNeighbourhoodExpression(neighbourhoodExpressionAddr) + t.deepEqual(neighbourdhoodExpressionDown, neighbourhoodExpression) + + await scenario.shutDown(); + + }) + }) diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/package.json b/bootstrap-languages/neighbourhood-language/hc-dna/tests/package.json new file mode 100644 index 000000000..36257fbce --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/tests/package.json @@ -0,0 +1,26 @@ +{ + "name": "file-storage-test", + "version": "1.0.0", + "main": "index.js", + "type": "module", + "license": "MIT", + "dependencies": { + "@holochain/client": "^0.12.0", + "@holochain/tryorama": "^0.11.1", + "tape-promise": "^4.0.0", + "ts-node": "^10.8.0", + "@types/node": "^14.0.14", + "typescript": "^4.2.4" + }, + "devDependencies": { + "@types/faker": "^5.5.3", + "@types/tape-promise": "^4.0.1", + "tape": "^5.5.3", + "blob-compare": "^1.1.0" + }, + "scripts": { + "build": "cd .. && ./build.sh", + "build-ci": "cd ../ && CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown && ./tests/hc dna pack workdir && cd ./tests", + "test": "TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node index.ts" + } +} diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/tsconfig.json b/bootstrap-languages/neighbourhood-language/hc-dna/tests/tsconfig.json new file mode 100644 index 000000000..f2a5da84f --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/tests/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "types": ["node"], + "importsNotUsedAsValues": "preserve" + }, + "include": ["*.ts"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"], + "allowJs": true +} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/yarn.lock b/bootstrap-languages/neighbourhood-language/hc-dna/tests/yarn.lock new file mode 100644 index 000000000..578e78d80 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/tests/yarn.lock @@ -0,0 +1,1149 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@holochain/client@^0.12.0": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" + integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/serialization@^0.1.0-beta-rc.3": + version "0.1.0-beta-rc.3" + resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" + integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== + +"@holochain/tryorama@^0.11.1": + version "0.11.2" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.2.tgz#abd18097cac08a352c846b2c5af852a03104f5b3" + integrity sha512-RCi7QtGejpzfGIx1EKyTX+QnkooGaUAY0TiFHDc5uamCvNNX1Ya6Esgvyrt2zpO5YBUUrSbdbB1gBB3a8bwr7A== + dependencies: + "@holochain/client" "^0.12.0" + get-port "^6.1.2" + lodash "^4.17.21" + uuid "^8.3.2" + winston "^3.8.2" + ws "^8.11.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@msgpack/msgpack@^2.7.2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" + integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== + +"@tauri-apps/api@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.3.0.tgz#d0c853ab2cc7506bd826c5f7f260c67c7c15def5" + integrity sha512-AH+3FonkKZNtfRtGrObY38PrzEj4d+1emCbwNGu0V2ENbXjlLHMZQlUh+Bhu/CRmjaIwZMGJ3yFvWaZZgTHoog== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/faker@^5.5.3": + version "5.5.9" + resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== + +"@types/node@*": + version "20.2.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" + integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== + +"@types/node@^14.0.14": + version "14.18.48" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.48.tgz#ee5c7ac6e38fd2a9e6885f15c003464cf2da343c" + integrity sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg== + +"@types/tape-promise@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/tape-promise/-/tape-promise-4.0.1.tgz#a72fa8d2d5351704d651b174931ecc8f996e68ca" + integrity sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg== + dependencies: + "@types/tape" "*" + +"@types/tape@*": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@types/tape/-/tape-5.6.0.tgz#d8bc031c3cac16a3df9d7865843db78af1e1c56e" + integrity sha512-yt27qxGg45IVJ0i2PdbYopND9d4eaXwne/jpi0saYb7PHYu8ZYaQB+cADjj+YZkZZjCM4rnhMPYFGd6+M8sWKg== + dependencies: + "@types/node" "*" + "@types/through" "*" + +"@types/through@*": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" + integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg== + dependencies: + "@types/node" "*" + +"@types/triple-beam@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8" + integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array.prototype.every@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.4.tgz#2762daecd9cec87cb63f3ca6be576817074a684e" + integrity sha512-Aui35iRZk1HHLRAyF7QP0KAnOnduaQ6fo6k1NVWfRc0xTs2AZ70ytlXvOmkC6Di4JmUs2Wv3DYzGtCQFSk5uGg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + is-string "^1.0.7" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +blob-compare@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/blob-compare/-/blob-compare-1.1.0.tgz#bb26f66f4795b57f1cfc8de48b89af42ae14c72f" + integrity sha512-2IAxmSdPgS91n9COyZz2G2ZwG/9ALrcgyCW12E50YMuJ5YR/BaEI2AidK6t0HwuZ1ODsXgD9gmrHrhpQlDCMoA== + dependencies: + webworker-promise "^0.4.2" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +deep-equal@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" + integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.0" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +emittery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" + integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +js-base64@^3.7.3: + version "3.7.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b" + integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== + dependencies: + "@colors/colors" "1.5.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resumer@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== + dependencies: + through "~2.3.4" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-stable-stringify@^2.3.1: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tape-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tape-promise/-/tape-promise-4.0.0.tgz#c1f3553959b2e9d64b1546e7276b8a017c616897" + integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== + dependencies: + is-promise "^2.1.0" + onetime "^2.0.0" + +tape@^5.5.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.3.tgz#0d3cc82f96b0906f73b0981df1a38a44fec7901d" + integrity sha512-cUDDGSbyoSIpdUAqbqLI/r7i/S4BHuCB9M5j7E/LrLs/x/i4zeAJ798aqo+FGo+kr9seBZwr8AkZW6rjceyAMQ== + dependencies: + array.prototype.every "^1.1.4" + call-bind "^1.0.2" + deep-equal "^2.2.0" + defined "^1.0.1" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.3" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.7" + object-inspect "^1.12.3" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + resolve "^2.0.0-next.4" + resumer "^0.0.0" + string.prototype.trim "^1.2.7" + through "^2.3.8" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +through@^2.3.8, through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +ts-node@^10.8.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typescript@^4.2.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +webworker-promise@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/webworker-promise/-/webworker-promise-0.4.4.tgz#722b0ccade10ccb4e810325e5ebff00eb0e1b1be" + integrity sha512-NfdSlaWqd+0iSrQudB0N0MELfJ9TVTlynhXMpi06piuZhyc9Yy7Hz6BFu2HUkvIb9lCS0pFW42ptd/JnXVnptg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.8.2: + version "3.9.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.9.0.tgz#2bbdeb8167a75fac6d9a0c6d002890cd908016c2" + integrity sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ== + dependencies: + "@colors/colors" "1.5.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.11.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml b/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml new file mode 100644 index 000000000..2325cace6 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml @@ -0,0 +1,15 @@ +--- +manifest_version: '1' +name: neighbourhood-language + +integrity: + network_seed: 00000000-0000-0000-0000-000000000000 + properties: null + origin_time: 2023-02-07T14:37:17.497352Z + zomes: + - name: integrity + bundled: ../target/wasm32-unknown-unknown/release/integrity.wasm +coordinator: + zomes: + - name: neighbourhood_storage + bundled: ../target/wasm32-unknown-unknown/release/neighbourhood_storage.wasm \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/Cargo.toml new file mode 100644 index 000000000..8a860b176 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "integrity" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "rlib"] +name = "integrity" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +derive_more = "0" +serde = "1" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } +holo_hash = "0.1.0" +hdi = "0.2.0" +hdk = "0.1.0" diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs new file mode 100644 index 000000000..031faaab9 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs @@ -0,0 +1,56 @@ +use chrono::{DateTime, Utc}; +use hdi::prelude::*; +use std::any::{Any}; + +#[hdk_entry_helper] +pub struct NeighbourhoodChunk(SerializedBytes); + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] +pub struct Link { + pub source: String, + pub target: String, + pub predicate: Option, +} + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] +pub struct LinkExpression { + author: String, + timestamp: DateTime, + data: Link, + proof: ExpressionProof, +} + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] +pub struct Perspective { + pub links: Vec, +} + +#[hdk_entry_helper] +pub struct NeighbourhoodMetadata { + pub linkLanguage: String, + pub meta: Perspective, +} + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq)] +pub struct ExpressionProof { + pub signature: String, + pub key: String, +} + +#[hdk_entry_helper] +pub struct NeighbourhoodExpression { + pub author: String, + pub proof: ExpressionProof, + pub timestamp: DateTime, + pub data: NeighbourhoodMetadata, +} + +#[hdk_entry_defs] +#[unit_enum(UnitEntryTypes)] +pub enum EntryTypes { + #[entry_def(visibility = "public")] + NeighbourhoodExpression(NeighbourhoodExpression), + + #[entry_def(visibility = "public")] + NeighbourhoodChunk(NeighbourhoodChunk), +} diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/.gitignore b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/.gitignore new file mode 100644 index 000000000..ea8c4bf7f --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/.gitignore @@ -0,0 +1 @@ +/target diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/Cargo.toml b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/Cargo.toml new file mode 100644 index 000000000..d66c505b6 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "neighbourhood_storage" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ["cdylib", "rlib"] +name = "neighbourhood_storage" + +[dependencies] +derive_more = "0" +serde = "1" +lazy_static = "*" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } +thiserror = "1.0.20" +integrity = { path = "../integrity" } +sha2 = "0.10.5" +hdk = "0.1.0" +holo_hash = "0.1.0" \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs new file mode 100644 index 000000000..da61bd66c --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs @@ -0,0 +1,50 @@ +use chrono::{DateTime, NaiveDateTime, Utc}; +use hdk::prelude::*; +use integrity::{EntryTypes, NeighbourhoodExpression}; + +#[hdk_extern] +fn init(_: ()) -> ExternResult { + Ok(InitCallbackResult::Pass) +} + +pub fn get_now() -> DateTime { + match sys_time() { + Ok(time) => { + let now = time.as_seconds_and_nanos(); + let out = DateTime::::from_utc( + NaiveDateTime::from_timestamp_opt(now.0, now.1).unwrap(), + Utc, + ); + out + } + Err(_err) => Utc::now(), + } +} + +#[hdk_extern] +pub fn store_neighbourhood_expression(expression: NeighbourhoodExpression) -> ExternResult { + let hash = hash_entry(&expression)?; + create_entry(&EntryTypes::NeighbourhoodExpression(expression))?; + + Ok(hash) +} + +#[hdk_extern] +pub fn get_neighbourhood_expression( + file_expression_hash: EntryHash, +) -> ExternResult> { + match get(file_expression_hash.clone(), GetOptions::default())? { + Some(record) => { + let file_expression: NeighbourhoodExpression = record + .entry() + .to_app_option() + .map_err(|e| wasm_error!(e))? + .ok_or(wasm_error!(WasmErrorInner::Guest( + "Malformed file chunk".into() + )))?; + + Ok(Some(file_expression)) + } + None => Ok(None), + } +} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/index.ts b/bootstrap-languages/neighbourhood-language/index.ts index cc7c7c032..03fa22ab9 100644 --- a/bootstrap-languages/neighbourhood-language/index.ts +++ b/bootstrap-languages/neighbourhood-language/index.ts @@ -17,8 +17,6 @@ export class UI implements ExpressionUI { export const name = "neighbourhood-store"; -export const PROXY_URL = "https://bootstrap-store-gateway.perspect3vism.workers.dev/"; - export default async function create(context: LanguageContext): Promise { //const Holochain = context.Holochain as HolochainLanguageDelegate; //await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]); diff --git a/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts b/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts new file mode 100644 index 000000000..1933ed5bb --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts @@ -0,0 +1,22 @@ +import type { NeighbourhoodExpression } from "@perspect3vism/ad4m"; +import type { EntryHash } from "./types"; + +type ZomeCallFn = (fn: string, params: any) => Promise; + +export class NeighbourhoodStorage { + #zomeCall: ZomeCallFn; + + constructor(zomeCall: ZomeCallFn) { + this.#zomeCall = zomeCall; + } + + async storeNeighbourhoodExpression(neighbourhoodExpression: NeighbourhoodExpression): Promise { + return await this.#zomeCall("store_neighbourhood_expression", neighbourhoodExpression); + } + + async getNeighbourhoodExpression(fileHash: EntryHash): Promise { + return await this.#zomeCall("get_neighbourhood_expression", fileHash) as NeighbourhoodExpression; + } +} + +export default NeighbourhoodExpression \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index 034117126..e525eee3d 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -4,19 +4,28 @@ "description": "This is a Language for storing AD4M neighbourhood objects", "main": "index.js", "scripts": { - "test": "echo \"No neighbourhood language integration tests\"", - "build": "tsc && rollup -c", - "dev": "tsc && rollup -c -w" + "integration-test": "node ../../test-runner/build/cli.js --test ./integration.test.cjs --bundle ./build/bundle.js --meta '{\"name\":\"file-storage\",\"description\":\"An AD4M Language for file storage leveraging a holochain DNA\",\"sourceCodeLink\":\"https://github.com/perspect3vism/file-storage-language\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", + "build": "run-script-os", + "build:linux": "yarn run build-dna && tsc && rollup -c", + "build:macos": "yarn run build-dna && tsc && rollup -c", + "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", + "build-dna": "cd ./hc-dna && ./build.sh && cd ..", + "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" }, "author": "joshuadparkin@gmail.com", "license": "ISC", "devDependencies": { "@perspect3vism/ad4m": "*", + "@perspect3vism/ad4m-test": "*", + "@perspect3vism/rollup-plugin-dna": "^0.0.2", "@rollup/plugin-commonjs": "^14.0.0", "@rollup/plugin-node-resolve": "^8.0.0", "@rollup/plugin-typescript": "^4.0.0", "@tsconfig/svelte": "^1.0.0", - "ipfs-core-types": "0.10.1", + "@types/express": "^4.17.8", + "@types/uuid": "9.0.1", + "browserify": "^17.0.0", + "pako": "2.1.0", "rollup": "^2.3.4", "rollup-plugin-postcss": "^3.1.8", "rollup-plugin-string": "^3.0.0", @@ -26,10 +35,8 @@ "svelte-check": "^1.0.0", "svelte-preprocess": "^4.0.0", "tslib": "^2.0.0", - "typescript": "^4.5.5" - }, - "dependencies": { - "@types/node": "^18.0.0", - "axios": "^0.26.1" + "typescript": "^4.2.4", + "uint8arrays": "^3.0.0", + "run-script-os": "^1.1.6" } } diff --git a/bootstrap-languages/neighbourhood-language/rollup.config.js b/bootstrap-languages/neighbourhood-language/rollup.config.js index 86f4995c4..ee9b729d3 100644 --- a/bootstrap-languages/neighbourhood-language/rollup.config.js +++ b/bootstrap-languages/neighbourhood-language/rollup.config.js @@ -4,6 +4,7 @@ import commonjs from '@rollup/plugin-commonjs'; import sveltePreprocess from 'svelte-preprocess'; import postcss from "rollup-plugin-postcss"; import { string } from 'rollup-plugin-string' +import dna from "@perspect3vism/rollup-plugin-dna"; const production = !process.env.ROLLUP_WATCH; @@ -51,7 +52,8 @@ export default { ] }] ] - }) + }), + dna() ], watch: { clearScreen: false diff --git a/bootstrap-languages/neighbourhood-language/types.ts b/bootstrap-languages/neighbourhood-language/types.ts new file mode 100644 index 000000000..c8fe7ad26 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/types.ts @@ -0,0 +1,7 @@ +import { ExpressionGeneric } from "@perspect3vism/ad4m"; + +export type EntryHash = Uint8Array; + +export class NeighbourhoodMetadata {} + +export class NeighbourhoodExpression extends ExpressionGeneric(NeighbourhoodMetadata) {} ; From 5fdd86d2669357d04f6011dbb289db09fa44d410 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 5 Jun 2023 15:20:03 +0530 Subject: [PATCH 318/722] language language added --- .../language-language/adapter.ts | 43 +- bootstrap-languages/language-language/dna.js | 4 + .../language-language/hc-dna/Cargo.lock | 2321 +++++++++++++++++ .../language-language/hc-dna/Cargo.toml | 11 + .../language-language/hc-dna/build.ps1 | 3 + .../language-language/hc-dna/build.sh | 3 + .../language-language/hc-dna/default.nix | 14 + .../hc-dna/holochain_version.nix | 20 + .../language-language/hc-dna/nix/sources.json | 14 + .../language-language/hc-dna/nix/sources.nix | 174 ++ .../hc-dna/tests/download-hc-binaries.sh | 14 + .../language-language/hc-dna/tests/index.ts | 176 ++ .../hc-dna/tests/package.json | 26 + .../hc-dna/tests/tsconfig.json | 16 + .../language-language/hc-dna/tests/yarn.lock | 1149 ++++++++ .../language-language/hc-dna/workdir/dna.yaml | 15 + .../hc-dna/zomes/integrity/Cargo.toml | 18 + .../hc-dna/zomes/integrity/src/lib.rs | 39 + .../hc-dna/zomes/language_storage/.gitignore | 1 + .../hc-dna/zomes/language_storage/Cargo.toml | 21 + .../hc-dna/zomes/language_storage/src/lib.rs | 79 + .../language-language/index.ts | 2 - .../language-language/languageAdapter.ts | 61 +- .../language-language/languageStorage.ts | 100 + .../language-language/package.json | 24 +- .../language-language/putAdapter.ts | 124 +- .../language-language/rollup.config.js | 4 +- .../language-language/tsconfig.json | 2 +- .../language-language/types.ts | 15 + 29 files changed, 4372 insertions(+), 121 deletions(-) create mode 100644 bootstrap-languages/language-language/dna.js create mode 100644 bootstrap-languages/language-language/hc-dna/Cargo.lock create mode 100644 bootstrap-languages/language-language/hc-dna/Cargo.toml create mode 100644 bootstrap-languages/language-language/hc-dna/build.ps1 create mode 100755 bootstrap-languages/language-language/hc-dna/build.sh create mode 100644 bootstrap-languages/language-language/hc-dna/default.nix create mode 100644 bootstrap-languages/language-language/hc-dna/holochain_version.nix create mode 100644 bootstrap-languages/language-language/hc-dna/nix/sources.json create mode 100644 bootstrap-languages/language-language/hc-dna/nix/sources.nix create mode 100755 bootstrap-languages/language-language/hc-dna/tests/download-hc-binaries.sh create mode 100644 bootstrap-languages/language-language/hc-dna/tests/index.ts create mode 100644 bootstrap-languages/language-language/hc-dna/tests/package.json create mode 100644 bootstrap-languages/language-language/hc-dna/tests/tsconfig.json create mode 100644 bootstrap-languages/language-language/hc-dna/tests/yarn.lock create mode 100644 bootstrap-languages/language-language/hc-dna/workdir/dna.yaml create mode 100644 bootstrap-languages/language-language/hc-dna/zomes/integrity/Cargo.toml create mode 100644 bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs create mode 100644 bootstrap-languages/language-language/hc-dna/zomes/language_storage/.gitignore create mode 100644 bootstrap-languages/language-language/hc-dna/zomes/language_storage/Cargo.toml create mode 100644 bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs create mode 100644 bootstrap-languages/language-language/languageStorage.ts create mode 100644 bootstrap-languages/language-language/types.ts diff --git a/bootstrap-languages/language-language/adapter.ts b/bootstrap-languages/language-language/adapter.ts index dfc5e118e..ec4244168 100644 --- a/bootstrap-languages/language-language/adapter.ts +++ b/bootstrap-languages/language-language/adapter.ts @@ -1,13 +1,16 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; -import { CloudflarePutAdapter } from "./putAdapter"; -import axios from "axios"; -import { PROXY_URL } from "."; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; +import { LanguageStoragePutAdapter } from "./putAdapter"; +import { DNA_NICK } from "./dna"; +import { LanguageStorage } from "./languageStorage"; +import type { LanguageExpression } from "./types"; export default class Adapter implements ExpressionAdapter { putAdapter: PublicSharing; + #DNA: HolochainLanguageDelegate; constructor(context: LanguageContext) { - this.putAdapter = new CloudflarePutAdapter(context); + this.putAdapter = new LanguageStoragePutAdapter(context); + this.#DNA = context.Holochain as HolochainLanguageDelegate; } async get(address: Address): Promise { @@ -16,26 +19,20 @@ export default class Adapter implements ExpressionAdapter { console.error("LanguageLanguage.get(): The address is not a valid hash"); return null; } - const metaDataKey = `meta-${address}`; - - let presignedUrl; - try { - const getPresignedUrl = await axios.get(PROXY_URL+`?key=${metaDataKey}`); - presignedUrl = getPresignedUrl.data.url; - } catch (e) { - console.error("Get meta information failed at getting presigned url", address); - return null; - } - let metaObject; - try { - const getMetaObject = await axios.get(presignedUrl); - metaObject = getMetaObject.data; - } catch (e) { - console.error("Get meta information failed at getting meta information", presignedUrl); + const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language-language", fn_name, payload)); + + let addressBuffer = Buffer.from(address, 'hex'); + const expression = (await storage.getLanguageExpression(addressBuffer)) as LanguageExpression + + if (!expression) { return null; - } + }; + if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) { + expression.data.data_base64 = ""; + return expression; + }; - return metaObject; + return expression } } diff --git a/bootstrap-languages/language-language/dna.js b/bootstrap-languages/language-language/dna.js new file mode 100644 index 000000000..5eb346fc7 --- /dev/null +++ b/bootstrap-languages/language-language/dna.js @@ -0,0 +1,4 @@ +import dna from "./hc-dna/workdir/language-language.dna"; + +export const DNA = Buffer.from(dna, "base64"); +export const DNA_NICK = "language-language"; diff --git a/bootstrap-languages/language-language/hc-dna/Cargo.lock b/bootstrap-languages/language-language/hc-dna/Cargo.lock new file mode 100644 index 000000000..36033b67a --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/Cargo.lock @@ -0,0 +1,2321 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli 0.27.1", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.30.3", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" + +[[package]] +name = "bytecheck" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f" +dependencies = [ + "bytecheck_derive", + "ptr_meta", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "camino" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.16", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +dependencies = [ + "iana-time-zone", + "num-integer", + "num-traits", + "serde", + "time", + "winapi", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "corosensei" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" +dependencies = [ + "autocfg", + "cfg-if", + "libc", + "scopeguard", + "windows-sys 0.33.0", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +dependencies = [ + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "gimli 0.26.2", + "log", + "regalloc", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" + +[[package]] +name = "cranelift-entity" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" + +[[package]] +name = "cranelift-frontend" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.7.1", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cxx" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "enumset" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753" +dependencies = [ + "enumset_derive", +] + +[[package]] +name = "enumset_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "gcollections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377" +dependencies = [ + "bit-set", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221996f774192f0f718773def8201c4ae31f02616a54ccfc2d358bb0e5cefdec" + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hdi" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8046116c32434837d28ad1b443802e2444a38d8cdb69caca9169414364fe0b69" +dependencies = [ + "hdk_derive", + "holo_hash", + "holochain_integrity_types", + "holochain_wasmer_guest", + "paste", + "serde", + "serde_bytes", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cbecb374a53eba516cbfefaad21f4bc805f4c731b81bd800a9a9e0239004eb3" +dependencies = [ + "getrandom", + "hdi", + "hdk_derive", + "holo_hash", + "holochain_wasmer_guest", + "holochain_zome_types", + "paste", + "serde", + "serde_bytes", + "thiserror", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8eade453438a832944ab3f4006482f6bb5693997ff58e3049f23a8f8c617a4" +dependencies = [ + "darling", + "heck", + "holochain_integrity_types", + "paste", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "holo_hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cffb2fb9ce1d2ce4c98d4cc9d625ddb92f6982f47094ed2e36fa93f5a096f36" +dependencies = [ + "base64", + "blake2b_simd", + "derive_more", + "holochain_serialized_bytes", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "thiserror", +] + +[[package]] +name = "holochain_integrity_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0630a221701e40ddf0fb369ead8eb6e18e3ec84241b3c77f803ea137930017b" +dependencies = [ + "holo_hash", + "holochain_serialized_bytes", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "tracing", +] + +[[package]] +name = "holochain_serialized_bytes" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" +dependencies = [ + "holochain_serialized_bytes_derive", + "rmp-serde", + "serde", + "serde-transcode", + "serde_bytes", + "serde_json", + "thiserror", +] + +[[package]] +name = "holochain_serialized_bytes_derive" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "holochain_wasmer_common" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +dependencies = [ + "holochain_serialized_bytes", + "serde", + "serde_bytes", + "test-fuzz", + "thiserror", + "wasmer", + "wasmer-engine", +] + +[[package]] +name = "holochain_wasmer_guest" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +dependencies = [ + "holochain_serialized_bytes", + "holochain_wasmer_common", + "parking_lot", + "paste", + "serde", + "tracing", +] + +[[package]] +name = "holochain_zome_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df99af259b89d8309121d2a81852f8e468dc587332ce59a93130f4e1149758b4" +dependencies = [ + "holo_hash", + "holochain_integrity_types", + "holochain_serialized_bytes", + "holochain_wasmer_common", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "thiserror", + "tracing", +] + +[[package]] +name = "home" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" +dependencies = [ + "winapi", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "indexmap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integrity" +version = "0.1.0" +dependencies = [ + "chrono", + "derive_more", + "hdi", + "hdk", + "holo_hash", + "serde", +] + +[[package]] +name = "intervallum" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1" +dependencies = [ + "bit-set", + "gcollections", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "itoa" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" + +[[package]] +name = "js-sys" +version = "0.3.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kitsune_p2p_dht_arc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +dependencies = [ + "derive_more", + "gcollections", + "intervallum", + "num-traits", + "serde", +] + +[[package]] +name = "kitsune_p2p_timestamp" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +dependencies = [ + "chrono", + "derive_more", + "serde", +] + +[[package]] +name = "language_storage" +version = "0.1.0" +dependencies = [ + "chrono", + "derive_more", + "hdk", + "holo_hash", + "integrity", + "lazy_static", + "serde", + "sha2", + "thiserror", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +dependencies = [ + "cc", +] + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "loupe" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" +dependencies = [ + "indexmap", + "loupe-derive", + "rustversion", +] + +[[package]] +name = "loupe-derive" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +dependencies = [ + "crc32fast", + "hashbrown 0.11.2", + "indexmap", + "memchr", +] + +[[package]] +name = "object" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.45.0", +] + +[[package]] +name = "paste" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" + +[[package]] +name = "pest" +version = "2.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "quote" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rayon" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regalloc" +version = "0.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +dependencies = [ + "log", + "rustc-hash", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "region" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rkyv" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15" +dependencies = [ + "bytecheck", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rmp" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.16", +] + +[[package]] +name = "rustversion" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" + +[[package]] +name = "ryu" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scratch" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-transcode" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "subprocess" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-lexicon" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "test-fuzz" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125df852011c4f8f31df5620f4aea38ecddb5dfb4d9bc569b30485b15ffc3d4e" +dependencies = [ + "serde", + "test-fuzz-internal", + "test-fuzz-macro", + "test-fuzz-runtime", +] + +[[package]] +name = "test-fuzz-internal" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" +dependencies = [ + "cargo_metadata", + "proc-macro2", + "quote", + "serde", + "strum_macros", +] + +[[package]] +name = "test-fuzz-macro" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "856bbca0314c328004691b9c0639fb198ca764d1ce0e20d4dd8b78f2697c2a6f" +dependencies = [ + "darling", + "if_chain", + "lazy_static", + "proc-macro2", + "quote", + "subprocess", + "syn", + "test-fuzz-internal", + "toolchain_find", + "unzip-n", +] + +[[package]] +name = "test-fuzz-runtime" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "303774eb17994c2ddb59c460369f4c3a55496f013380278d78eeebd2deb896ac" +dependencies = [ + "bincode", + "hex", + "num-traits", + "serde", + "sha-1", + "test-fuzz-internal", +] + +[[package]] +name = "thiserror" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "toolchain_find" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" +dependencies = [ + "home", + "lazy_static", + "regex", + "semver 0.11.0", + "walkdir", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "trilean" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicode-ident" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unzip-n" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" + +[[package]] +name = "wasm-encoder" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c3e4bc09095436c8e7584d86d33e6c3ee67045af8fb262cbb9cc321de553428" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" +dependencies = [ + "cfg-if", + "indexmap", + "js-sys", + "loupe", + "more-asserts", + "target-lexicon", + "thiserror", + "wasm-bindgen", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-compiler-cranelift", + "wasmer-derive", + "wasmer-engine", + "wasmer-engine-dylib", + "wasmer-engine-universal", + "wasmer-types", + "wasmer-vm", + "wat", + "winapi", +] + +[[package]] +name = "wasmer-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" +dependencies = [ + "enumset", + "loupe", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-compiler" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" +dependencies = [ + "enumset", + "loupe", + "rkyv", + "serde", + "serde_bytes", + "smallvec", + "target-lexicon", + "thiserror", + "wasmer-types", + "wasmparser", +] + +[[package]] +name = "wasmer-compiler-cranelift" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "gimli 0.26.2", + "loupe", + "more-asserts", + "rayon", + "smallvec", + "target-lexicon", + "tracing", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-derive" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "wasmer-engine" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" +dependencies = [ + "backtrace", + "enumset", + "lazy_static", + "loupe", + "memmap2", + "more-asserts", + "rustc-demangle", + "serde", + "serde_bytes", + "target-lexicon", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-engine-dylib" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" +dependencies = [ + "cfg-if", + "enum-iterator", + "enumset", + "leb128", + "libloading", + "loupe", + "object 0.28.4", + "rkyv", + "serde", + "tempfile", + "tracing", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-engine", + "wasmer-object", + "wasmer-types", + "wasmer-vm", + "which", +] + +[[package]] +name = "wasmer-engine-universal" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" +dependencies = [ + "cfg-if", + "enumset", + "leb128", + "loupe", + "region", + "rkyv", + "wasmer-compiler", + "wasmer-engine", + "wasmer-engine-universal-artifact", + "wasmer-types", + "wasmer-vm", + "winapi", +] + +[[package]] +name = "wasmer-engine-universal-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" +dependencies = [ + "enum-iterator", + "enumset", + "loupe", + "rkyv", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-object" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" +dependencies = [ + "object 0.28.4", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-types" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" +dependencies = [ + "backtrace", + "enum-iterator", + "indexmap", + "loupe", + "more-asserts", + "rkyv", + "serde", + "thiserror", +] + +[[package]] +name = "wasmer-vm" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" +dependencies = [ + "backtrace", + "cc", + "cfg-if", + "corosensei", + "enum-iterator", + "indexmap", + "lazy_static", + "libc", + "loupe", + "mach", + "memoffset 0.6.5", + "more-asserts", + "region", + "rkyv", + "scopeguard", + "serde", + "thiserror", + "wasmer-artifact", + "wasmer-types", + "winapi", +] + +[[package]] +name = "wasmparser" +version = "0.83.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" + +[[package]] +name = "wast" +version = "53.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8244fa24196b1d8fd3ca4a96a3a164c40f846498c5deab6caf414c67340ca4af" +dependencies = [ + "leb128", + "memchr", + "unicode-width", + "wasm-encoder", +] + +[[package]] +name = "wat" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4620f1059add6dad511decb9d5d88b4a0a0d3e2e315ed34f79b0dc0dce18aa4b" +dependencies = [ + "wast", +] + +[[package]] +name = "which" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +dependencies = [ + "either", + "libc", + "once_cell", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" +dependencies = [ + "windows_aarch64_msvc 0.33.0", + "windows_i686_gnu 0.33.0", + "windows_i686_msvc 0.33.0", + "windows_x86_64_gnu 0.33.0", + "windows_x86_64_msvc 0.33.0", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" + +[[package]] +name = "windows_i686_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" + +[[package]] +name = "windows_i686_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" diff --git a/bootstrap-languages/language-language/hc-dna/Cargo.toml b/bootstrap-languages/language-language/hc-dna/Cargo.toml new file mode 100644 index 000000000..d7e06db86 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] +members = [ + "zomes/integrity", + "zomes/language_storage" +] + +[profile.dev] +opt-level = "z" + +[profile.release] +opt-level = "z" \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/build.ps1 b/bootstrap-languages/language-language/hc-dna/build.ps1 new file mode 100644 index 000000000..e7bcb228e --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/build.ps1 @@ -0,0 +1,3 @@ +$env:CARGO_TARGET_DIR = target +cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/build.sh b/bootstrap-languages/language-language/hc-dna/build.sh new file mode 100755 index 000000000..a089cc772 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/default.nix b/bootstrap-languages/language-language/hc-dna/default.nix new file mode 100644 index 000000000..33f97a914 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/default.nix @@ -0,0 +1,14 @@ +let + holonixPath = (import ./nix/sources.nix).holonix; # points to the current state of the Holochain repository + holonix = import (holonixPath) { + holochainVersionId = "main"; + }; + nixpkgs = holonix.pkgs; +in nixpkgs.mkShell { + inputsFrom = [ holonix.main ]; + packages = with nixpkgs; [ + binaryen + nodejs-16_x + swiProlog + ]; +} \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/holochain_version.nix b/bootstrap-languages/language-language/hc-dna/holochain_version.nix new file mode 100644 index 000000000..9f44831c8 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/holochain_version.nix @@ -0,0 +1,20 @@ +# This file was generated with the following command: +# update-holochain-versions --git-src=revision:holochain-0.0.161 --lair-version-req=~0.2 --output-file=holochain_version.nix +# For usage instructions please visit https://github.com/holochain/holochain-nixpkgs/#readme + +{ + url = "https://github.com/holochain/holochain"; + rev = "holochain-0.1.0"; + sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; + cargoLock = { + outputHashes = { + }; + }; + + binsFilter = [ + "holochain" + "hc" + "kitsune-p2p-proxy" + "kitsune-p2p-tx2-proxy" + ]; +} diff --git a/bootstrap-languages/language-language/hc-dna/nix/sources.json b/bootstrap-languages/language-language/hc-dna/nix/sources.json new file mode 100644 index 000000000..451563814 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/nix/sources.json @@ -0,0 +1,14 @@ +{ + "holonix": { + "branch": "main", + "description": "NixOS && Holochain", + "homepage": "", + "owner": "holochain", + "repo": "holonix", + "rev": "241c1754a37881f51f2f33921a2777b38c34fa24", + "sha256": "sha256:0zaa477kyzpsrcc3nk1jznp4gchwm4pk5p37pwkq6mjhiizcxshy", + "type": "tarball", + "url": "https://github.com/holochain/holonix/archive/241c1754a37881f51f2f33921a2777b38c34fa24.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + } +} \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/nix/sources.nix b/bootstrap-languages/language-language/hc-dna/nix/sources.nix new file mode 100644 index 000000000..fe2468872 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/nix/sources.nix @@ -0,0 +1,174 @@ +# This file has been generated by Niv. + +let + + # + # The fetchers. fetch_ fetches specs of type . + # + + fetch_file = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchurl { inherit (spec) url sha256; name = name'; } + else + pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; + + fetch_tarball = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchTarball { name = name'; inherit (spec) url sha256; } + else + pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; + + fetch_git = name: spec: + let + ref = + if spec ? ref then spec.ref else + if spec ? branch then "refs/heads/${spec.branch}" else + if spec ? tag then "refs/tags/${spec.tag}" else + abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; + in + builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; + + fetch_local = spec: spec.path; + + fetch_builtin-tarball = name: throw + ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=tarball -a builtin=true''; + + fetch_builtin-url = name: throw + ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=file -a builtin=true''; + + # + # Various helpers + # + + # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 + sanitizeName = name: + ( + concatMapStrings (s: if builtins.isList s then "-" else s) + ( + builtins.split "[^[:alnum:]+._?=-]+" + ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) + ) + ); + + # The set of packages used when specs are fetched using non-builtins. + mkPkgs = sources: system: + let + sourcesNixpkgs = + import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; + hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; + hasThisAsNixpkgsPath = == ./.; + in + if builtins.hasAttr "nixpkgs" sources + then sourcesNixpkgs + else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then + import {} + else + abort + '' + Please specify either (through -I or NIX_PATH=nixpkgs=...) or + add a package called "nixpkgs" to your sources.json. + ''; + + # The actual fetching function. + fetch = pkgs: name: spec: + + if ! builtins.hasAttr "type" spec then + abort "ERROR: niv spec ${name} does not have a 'type' attribute" + else if spec.type == "file" then fetch_file pkgs name spec + else if spec.type == "tarball" then fetch_tarball pkgs name spec + else if spec.type == "git" then fetch_git name spec + else if spec.type == "local" then fetch_local spec + else if spec.type == "builtin-tarball" then fetch_builtin-tarball name + else if spec.type == "builtin-url" then fetch_builtin-url name + else + abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; + + # If the environment variable NIV_OVERRIDE_${name} is set, then use + # the path directly as opposed to the fetched source. + replace = name: drv: + let + saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name; + ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; + in + if ersatz == "" then drv else + # this turns the string into an actual Nix path (for both absolute and + # relative paths) + if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; + + # Ports of functions for older nix versions + + # a Nix version of mapAttrs if the built-in doesn't exist + mapAttrs = builtins.mapAttrs or ( + f: set: with builtins; + listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) + ); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 + range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 + stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 + stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); + concatMapStrings = f: list: concatStrings (map f list); + concatStrings = builtins.concatStringsSep ""; + + # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 + optionalAttrs = cond: as: if cond then as else {}; + + # fetchTarball version that is compatible between all the versions of Nix + builtins_fetchTarball = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchTarball; + in + if lessThan nixVersion "1.12" then + fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchTarball attrs; + + # fetchurl version that is compatible between all the versions of Nix + builtins_fetchurl = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchurl; + in + if lessThan nixVersion "1.12" then + fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchurl attrs; + + # Create the final "sources" from the config + mkSources = config: + mapAttrs ( + name: spec: + if builtins.hasAttr "outPath" spec + then abort + "The values in sources.json should not have an 'outPath' attribute" + else + spec // { outPath = replace name (fetch config.pkgs name spec); } + ) config.sources; + + # The "config" used by the fetchers + mkConfig = + { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null + , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile) + , system ? builtins.currentSystem + , pkgs ? mkPkgs sources system + }: rec { + # The sources, i.e. the attribute set of spec name to spec + inherit sources; + + # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers + inherit pkgs; + }; + +in +mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/tests/download-hc-binaries.sh b/bootstrap-languages/language-language/hc-dna/tests/download-hc-binaries.sh new file mode 100755 index 000000000..e78e813ec --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/tests/download-hc-binaries.sh @@ -0,0 +1,14 @@ +#!/bin/bash +[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" + +if [ ! -f "./hc" ]; then + wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 + mv hc-linux-0.1.0 ./hc + chmod +x ./hc +fi + +if [ ! -f "./holochain" ]; then + wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 + mv holochain-linux-0.1.0 ./holochain + chmod +x ./holochain +fi \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/tests/index.ts b/bootstrap-languages/language-language/hc-dna/tests/index.ts new file mode 100644 index 000000000..9216b4fc4 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/tests/index.ts @@ -0,0 +1,176 @@ +import { CallableCell, runScenario, Scenario } from "@holochain/tryorama"; +import test from "tape-promise/tape.js"; +import path from "path"; +import { resolve } from "path"; +import { LanguageStorage } from "../../languageStorage"; +import { Blob } from "buffer"; + +const dnas = [{ source: {path: path.join("../workdir/language-laguage.dna") } }]; + +function sleep(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +test("Share 1MB between Alice and Bob", async (t) => { + await runScenario(async (scenario: Scenario) => { + const alice = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "language-laguage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + const bob = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "language-laguage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + console.log("Sharing all agents") + await scenario.shareAllAgents(); + + + const aliceClient = new LanguageStorage((fn_name, payload) => alice.cells[0].callZome({zome_name: "language_storage", fn_name, payload})); + const bobClient = new LanguageStorage((fn_name, payload) => bob.cells[0].callZome({zome_name: "language_storage", fn_name, payload})); + + + let randomNumbers:number[] = []; + for(let i = 0; i < 1000000; i++) { + randomNumbers.push(Math.floor(Math.random() * 1000)); + } + const buf = Buffer.from(randomNumbers); + const blobUp = new Blob([buf]) + + console.log("Uploading language...") + const hashes = await aliceClient.upload(blobUp); + console.log("Done") + console.log("Got hashes", hashes) + console.log("Waiting 3 second...") + await new Promise(resolve => setTimeout(resolve, 3000)) + console.log("Done") + console.log("Downloading language...") + const blobDown = await bobClient.download(hashes); + t.equal(blobDown.size, buf.length); + + // compare the contents of the blobs + // @ts-ignore + const bufDown = Buffer.from(await blobDown.arrayBuffer()); + const bufUp = Buffer.from(await blobUp.arrayBuffer()); + t.assert(bufUp.compare(bufDown) == 0) + + await scenario.shutDown() + }) +}) + + +test("Share full FileExpression between Alice and Bob", async (t) => { + await runScenario(async (scenario: Scenario) => { + const alice = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "language-laguage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + const bob = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "language-laguage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + console.log("Sharing all agents") + await scenario.shareAllAgents(); + + + const aliceClient = new LanguageStorage((fn_name, payload) => alice.cells[0].callZome({zome_name: "language_storage", fn_name, payload})); + const bobClient = new LanguageStorage((fn_name, payload) => bob.cells[0].callZome({zome_name: "language_storage", fn_name, payload})); + + + let randomNumbers:number[] = []; + for(let i = 0; i < 1000000; i++) { + randomNumbers.push(Math.floor(Math.random() * 1000)); + } + const buf = Buffer.from(randomNumbers); + const blobUp = new Blob([buf]) + + const hashes = await aliceClient.upload(blobUp); + const fileMetadata = { + name: "test.txt", + size: buf.length, + file_type: "text/plain", + checksum: "1234", + chunks_hashes: hashes + } + + const fileExpression = { + author: "did:test:alice", + timestamp: new Date().toISOString(), + data: fileMetadata, + proof: { + signature: "1234", + key: "1234" + } + } + + const fileExpressionAddr = await aliceClient.storeLanguageExpression(fileExpression) + + await new Promise(resolve => setTimeout(resolve, 3000)) + + const fileExpressionDown = await bobClient.getLanguageExpression(fileExpressionAddr) + t.deepEqual(fileExpressionDown, fileExpression) + + const blobDown = await bobClient.download(fileExpression.data.chunks_hashes); + t.equal(blobDown.size, buf.length); + + // compare the contents of the blobs + // @ts-ignore + const bufDown = Buffer.from(await blobDown.arrayBuffer()); + const bufUp = Buffer.from(await blobUp.arrayBuffer()); + t.assert(bufUp.compare(bufDown) == 0) + + await scenario.shutDown(); + + }) + }) diff --git a/bootstrap-languages/language-language/hc-dna/tests/package.json b/bootstrap-languages/language-language/hc-dna/tests/package.json new file mode 100644 index 000000000..36257fbce --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/tests/package.json @@ -0,0 +1,26 @@ +{ + "name": "file-storage-test", + "version": "1.0.0", + "main": "index.js", + "type": "module", + "license": "MIT", + "dependencies": { + "@holochain/client": "^0.12.0", + "@holochain/tryorama": "^0.11.1", + "tape-promise": "^4.0.0", + "ts-node": "^10.8.0", + "@types/node": "^14.0.14", + "typescript": "^4.2.4" + }, + "devDependencies": { + "@types/faker": "^5.5.3", + "@types/tape-promise": "^4.0.1", + "tape": "^5.5.3", + "blob-compare": "^1.1.0" + }, + "scripts": { + "build": "cd .. && ./build.sh", + "build-ci": "cd ../ && CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown && ./tests/hc dna pack workdir && cd ./tests", + "test": "TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node index.ts" + } +} diff --git a/bootstrap-languages/language-language/hc-dna/tests/tsconfig.json b/bootstrap-languages/language-language/hc-dna/tests/tsconfig.json new file mode 100644 index 000000000..3725a409f --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/tests/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "ESNext", + "target": "ESNext", + "moduleResolution": "Node", + "sourceMap": true, + "declaration": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "strict": true + }, + "include": [ + "ts/**/*" + ] + } \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/tests/yarn.lock b/bootstrap-languages/language-language/hc-dna/tests/yarn.lock new file mode 100644 index 000000000..578e78d80 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/tests/yarn.lock @@ -0,0 +1,1149 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@holochain/client@^0.12.0": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" + integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/serialization@^0.1.0-beta-rc.3": + version "0.1.0-beta-rc.3" + resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" + integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== + +"@holochain/tryorama@^0.11.1": + version "0.11.2" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.2.tgz#abd18097cac08a352c846b2c5af852a03104f5b3" + integrity sha512-RCi7QtGejpzfGIx1EKyTX+QnkooGaUAY0TiFHDc5uamCvNNX1Ya6Esgvyrt2zpO5YBUUrSbdbB1gBB3a8bwr7A== + dependencies: + "@holochain/client" "^0.12.0" + get-port "^6.1.2" + lodash "^4.17.21" + uuid "^8.3.2" + winston "^3.8.2" + ws "^8.11.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@msgpack/msgpack@^2.7.2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" + integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== + +"@tauri-apps/api@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.3.0.tgz#d0c853ab2cc7506bd826c5f7f260c67c7c15def5" + integrity sha512-AH+3FonkKZNtfRtGrObY38PrzEj4d+1emCbwNGu0V2ENbXjlLHMZQlUh+Bhu/CRmjaIwZMGJ3yFvWaZZgTHoog== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/faker@^5.5.3": + version "5.5.9" + resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== + +"@types/node@*": + version "20.2.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" + integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== + +"@types/node@^14.0.14": + version "14.18.48" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.48.tgz#ee5c7ac6e38fd2a9e6885f15c003464cf2da343c" + integrity sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg== + +"@types/tape-promise@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/tape-promise/-/tape-promise-4.0.1.tgz#a72fa8d2d5351704d651b174931ecc8f996e68ca" + integrity sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg== + dependencies: + "@types/tape" "*" + +"@types/tape@*": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@types/tape/-/tape-5.6.0.tgz#d8bc031c3cac16a3df9d7865843db78af1e1c56e" + integrity sha512-yt27qxGg45IVJ0i2PdbYopND9d4eaXwne/jpi0saYb7PHYu8ZYaQB+cADjj+YZkZZjCM4rnhMPYFGd6+M8sWKg== + dependencies: + "@types/node" "*" + "@types/through" "*" + +"@types/through@*": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" + integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg== + dependencies: + "@types/node" "*" + +"@types/triple-beam@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8" + integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array.prototype.every@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.4.tgz#2762daecd9cec87cb63f3ca6be576817074a684e" + integrity sha512-Aui35iRZk1HHLRAyF7QP0KAnOnduaQ6fo6k1NVWfRc0xTs2AZ70ytlXvOmkC6Di4JmUs2Wv3DYzGtCQFSk5uGg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + is-string "^1.0.7" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +blob-compare@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/blob-compare/-/blob-compare-1.1.0.tgz#bb26f66f4795b57f1cfc8de48b89af42ae14c72f" + integrity sha512-2IAxmSdPgS91n9COyZz2G2ZwG/9ALrcgyCW12E50YMuJ5YR/BaEI2AidK6t0HwuZ1ODsXgD9gmrHrhpQlDCMoA== + dependencies: + webworker-promise "^0.4.2" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +deep-equal@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" + integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.0" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +emittery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" + integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +js-base64@^3.7.3: + version "3.7.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b" + integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== + dependencies: + "@colors/colors" "1.5.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resumer@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== + dependencies: + through "~2.3.4" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-stable-stringify@^2.3.1: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tape-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tape-promise/-/tape-promise-4.0.0.tgz#c1f3553959b2e9d64b1546e7276b8a017c616897" + integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== + dependencies: + is-promise "^2.1.0" + onetime "^2.0.0" + +tape@^5.5.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.3.tgz#0d3cc82f96b0906f73b0981df1a38a44fec7901d" + integrity sha512-cUDDGSbyoSIpdUAqbqLI/r7i/S4BHuCB9M5j7E/LrLs/x/i4zeAJ798aqo+FGo+kr9seBZwr8AkZW6rjceyAMQ== + dependencies: + array.prototype.every "^1.1.4" + call-bind "^1.0.2" + deep-equal "^2.2.0" + defined "^1.0.1" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.3" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.7" + object-inspect "^1.12.3" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + resolve "^2.0.0-next.4" + resumer "^0.0.0" + string.prototype.trim "^1.2.7" + through "^2.3.8" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +through@^2.3.8, through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +ts-node@^10.8.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typescript@^4.2.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +webworker-promise@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/webworker-promise/-/webworker-promise-0.4.4.tgz#722b0ccade10ccb4e810325e5ebff00eb0e1b1be" + integrity sha512-NfdSlaWqd+0iSrQudB0N0MELfJ9TVTlynhXMpi06piuZhyc9Yy7Hz6BFu2HUkvIb9lCS0pFW42ptd/JnXVnptg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.8.2: + version "3.9.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.9.0.tgz#2bbdeb8167a75fac6d9a0c6d002890cd908016c2" + integrity sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ== + dependencies: + "@colors/colors" "1.5.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.11.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/bootstrap-languages/language-language/hc-dna/workdir/dna.yaml b/bootstrap-languages/language-language/hc-dna/workdir/dna.yaml new file mode 100644 index 000000000..5bd3bd53b --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/workdir/dna.yaml @@ -0,0 +1,15 @@ +--- +manifest_version: '1' +name: language-language + +integrity: + network_seed: 00000000-0000-0000-0000-000000000000 + properties: null + origin_time: 2023-02-07T14:37:17.497352Z + zomes: + - name: integrity + bundled: ../target/wasm32-unknown-unknown/release/integrity.wasm +coordinator: + zomes: + - name: language_storage + bundled: ../target/wasm32-unknown-unknown/release/language_storage.wasm \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/language-language/hc-dna/zomes/integrity/Cargo.toml new file mode 100644 index 000000000..8a860b176 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/zomes/integrity/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "integrity" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "rlib"] +name = "integrity" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +derive_more = "0" +serde = "1" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } +holo_hash = "0.1.0" +hdi = "0.2.0" +hdk = "0.1.0" diff --git a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs new file mode 100644 index 000000000..9e787b5ed --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs @@ -0,0 +1,39 @@ +use chrono::{DateTime, Utc}; +use hdi::prelude::*; + +#[hdk_entry_helper] +pub struct LanguageChunk(SerializedBytes); + +#[hdk_entry_helper] +pub struct LanguageMetadata { + pub name: String, + pub description: String, + pub address: String, + pub size: usize, + pub checksum: String, + pub chunks_hashes: Vec, +} + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq)] +pub struct ExpressionProof { + pub signature: String, + pub key: String, +} + +#[hdk_entry_helper] +pub struct LanguageExpression { + pub author: String, + pub proof: ExpressionProof, + pub timestamp: DateTime, + pub data: LanguageMetadata, +} + +#[hdk_entry_defs] +#[unit_enum(UnitEntryTypes)] +pub enum EntryTypes { + #[entry_def(visibility = "public")] + LanguageExpression(LanguageExpression), + + #[entry_def(visibility = "public")] + LanguageChunk(LanguageChunk), +} diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/.gitignore b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/.gitignore new file mode 100644 index 000000000..ea8c4bf7f --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/.gitignore @@ -0,0 +1 @@ +/target diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/Cargo.toml b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/Cargo.toml new file mode 100644 index 000000000..ae6e2a5f1 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "language_storage" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ["cdylib", "rlib"] +name = "language_storage" + +[dependencies] +derive_more = "0" +serde = "1" +lazy_static = "*" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } +thiserror = "1.0.20" +integrity = { path = "../integrity" } +sha2 = "0.10.5" +hdk = "0.1.0" +holo_hash = "0.1.0" \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs new file mode 100644 index 000000000..56ec30785 --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs @@ -0,0 +1,79 @@ +use chrono::{DateTime, NaiveDateTime, Utc}; +use hdk::prelude::*; +use integrity::{EntryTypes, LanguageChunk, LanguageExpression}; + +#[hdk_extern] +fn init(_: ()) -> ExternResult { + Ok(InitCallbackResult::Pass) +} + +pub fn get_now() -> DateTime { + match sys_time() { + Ok(time) => { + let now = time.as_seconds_and_nanos(); + let out = DateTime::::from_utc( + NaiveDateTime::from_timestamp_opt(now.0, now.1).unwrap(), + Utc, + ); + out + } + Err(_err) => Utc::now(), + } +} + +#[hdk_extern] +pub fn store_language_expression(expression: LanguageExpression) -> ExternResult { + let hash = hash_entry(&expression)?; + create_entry(&EntryTypes::LanguageExpression(expression))?; + + Ok(hash) +} + +#[hdk_extern] +pub fn store_chunk(file_chunk: LanguageChunk) -> ExternResult { + let file_chunk_hash = hash_entry(&file_chunk)?; + + if let None = get(file_chunk_hash.clone(), GetOptions::default())? { + create_entry(&EntryTypes::LanguageChunk(file_chunk))?; + } + + Ok(file_chunk_hash) +} + +#[hdk_extern] +pub fn get_language_expression( + file_expression_hash: EntryHash, +) -> ExternResult> { + match get(file_expression_hash.clone(), GetOptions::default())? { + Some(record) => { + let file_expression: LanguageExpression = record + .entry() + .to_app_option() + .map_err(|e| wasm_error!(e))? + .ok_or(wasm_error!(WasmErrorInner::Guest( + "Malformed file chunk".into() + )))?; + + Ok(Some(file_expression)) + } + None => Ok(None), + } +} + +#[hdk_extern] +pub fn get_language_chunk(file_chunk_hash: EntryHash) -> ExternResult> { + match get(file_chunk_hash, GetOptions::default())? { + Some(record) => { + let file_chunk: LanguageChunk = record + .entry() + .to_app_option() + .map_err(|e| wasm_error!(e))? + .ok_or(wasm_error!(WasmErrorInner::Guest( + "Malformed file chunk".into() + )))?; + + Ok(Some(file_chunk)) + } + None => Ok(None), + } +} diff --git a/bootstrap-languages/language-language/index.ts b/bootstrap-languages/language-language/index.ts index ae7903aa0..c50ca8e50 100644 --- a/bootstrap-languages/language-language/index.ts +++ b/bootstrap-languages/language-language/index.ts @@ -4,8 +4,6 @@ import Adapter from "./adapter"; export const name = "languages"; -export const PROXY_URL = "https://bootstrap-store-gateway.perspect3vism.workers.dev"; - function interactions(expression: Address): Interaction[] { return []; } diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index 1430a7a3d..40f59dccc 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -1,40 +1,45 @@ -import type { Address, LanguageAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; -import axios from "axios"; -import { PROXY_URL } from "."; -import XMLHttpRequest from 'xhr2'; +import type { Address, LanguageAdapter, PublicSharing, LanguageContext, HolochainLanguageDelegate, LanguageExpression } from "@perspect3vism/ad4m"; +import pako from "pako"; +import { DNA_NICK } from "./dna"; +import { LanguageStorage } from "./languageStorage"; +import { LanguageStoragePutAdapter } from "./putAdapter"; export default class LangAdapter implements LanguageAdapter { putAdapter: PublicSharing; + #DNA: HolochainLanguageDelegate; constructor(context: LanguageContext) { + this.putAdapter = new LanguageStoragePutAdapter(context); + this.#DNA = context.Holochain as HolochainLanguageDelegate; } - async getLanguageSource(address: Address): Promise { - //Check the first two characters of address are equal to Qm - if (address.substring(0, 2) != "Qm") { - console.error("LanguageLanguage.getLanguageSource(): The address is not a valid hash"); - return ""; - } - const cid = address.toString(); - - let presignedUrl; - try { - const getPresignedUrl = await axios.get(PROXY_URL+`?key=${cid}`); - presignedUrl = getPresignedUrl.data.url; - } catch (e) { - console.error("Get language source failed at getting presigned url", address); - throw (e) + //Check the first two characters of address are equal to Qm + if (address.substring(0, 2) != "Qm") { + console.error("LanguageLanguage.get(): The address is not a valid hash"); + return null; } - let languageSource; - try { - const getLanguageSource = await axios.get(presignedUrl); - languageSource = getLanguageSource.data; - } catch (e) { - console.error("Get language source failed at getting language source", address); - throw (e) - } + const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language-language", fn_name, payload)); + + let addressBuffer = Buffer.from(address, 'hex'); + const expression = (await storage.getLanguageExpression(addressBuffer)) as LanguageExpression + + if (!expression) { + console.error("LanguageLanguage.get(): Failed to fetch language"); + return null; + }; + if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) { + expression.data.data_base64 = ""; + console.error("LanguageLanguage.get(): Failed to fetch language"); + return null; + }; + + const data_compressed = await storage.download(expression.data.chunks_hashes); + let data_stream = await data_compressed.arrayBuffer(); + + const data_uncompressed = pako.inflate(data_stream); + const buffer = Buffer.from(data_uncompressed) - return languageSource; + return buffer.toString("base64") } } diff --git a/bootstrap-languages/language-language/languageStorage.ts b/bootstrap-languages/language-language/languageStorage.ts new file mode 100644 index 000000000..388866e86 --- /dev/null +++ b/bootstrap-languages/language-language/languageStorage.ts @@ -0,0 +1,100 @@ +import type { LanguageExpression, EntryHash } from "./types"; +import { Blob } from "buffer"; + +type ZomeCallFn = (fn: string, params: any) => Promise; + +export class LanguageStorage { + #zomeCall: ZomeCallFn; + + constructor(zomeCall: ZomeCallFn) { + this.#zomeCall = zomeCall; + } + + async upload( + file: Blob, + onProgress: + | undefined + | ((percentatgeProgress: number, bytesSent: number) => void) = undefined, + chunkSize: number = 256 * 1024 + ): Promise { + console.log("splitting file...") + const blobs = this.splitBlob(file, chunkSize); + console.log("done") + const numberOfChunks = blobs.length; + const bytesPerChunk = blobs[0].size; + + const chunksHashes: Array = []; + for (let i = 0; i < blobs.length; i++) { + console.log("creating chunk", i) + const chunkHash = await this.createChunk(blobs[i]); + console.log("done") + chunksHashes.push(chunkHash); + if (onProgress) { + onProgress(((i + 1) * 1.0) / numberOfChunks, bytesPerChunk * (i + 1)); + } + } + + return chunksHashes; + } + + async download(chunksHashes: Array): Promise { + const chunks = []; + for (const chunkHash of chunksHashes) { + let chunk = await this.fetchChunk(chunkHash); + chunks.push(chunk); + } + return this.mergeChunks(chunks); + } + + async storeLanguageExpression(fileExpression: LanguageExpression): Promise { + return await this.#zomeCall("store_language_expression", fileExpression); + } + + async getLanguageExpression(fileHash: EntryHash): Promise { + return await this.#zomeCall("get_language_expression", fileHash) as LanguageExpression; + } + + async fetchChunk(fileChunkHash: EntryHash): Promise { + let bytes = null + let tries = 0 + while (bytes === null && tries < 10) { + tries++ + bytes = await this.#zomeCall("get_language_chunk", fileChunkHash); + if (bytes === null) { + await new Promise(resolve => setTimeout(resolve, 500)) + } + } + + if(bytes === null) { + throw new Error("Could not fetch chunk. Giving up after 10 attempts.") + } + + // @ts-ignore + return new Blob([new Uint8Array(bytes)]); + } + + private splitBlob(file: Blob, chunkSize: number): Blob[] { + let offset = 0; + const chunks: Blob[] = []; + + while (file.size > offset) { + const chunk = file.slice(offset, offset + chunkSize); + offset += chunkSize; + chunks.push(chunk); + } + + return chunks; + } + + private mergeChunks(chunks: Blob[]): Blob { + const merged = new Blob(chunks); + return merged; + } + + private async createChunk(chunk: Blob): Promise { + const bytes = await chunk.arrayBuffer(); + // @ts-ignore + return this.#zomeCall("store_chunk", new Uint8Array(bytes)); + } + +} diff --git a/bootstrap-languages/language-language/package.json b/bootstrap-languages/language-language/package.json index a7c893ead..92e3785e5 100644 --- a/bootstrap-languages/language-language/package.json +++ b/bootstrap-languages/language-language/package.json @@ -4,19 +4,28 @@ "description": "An AD4M Language for storing of language bundles on Cloudflare", "main": "index.js", "scripts": { - "test": "echo \"No language language integration tests\"", - "build": "tsc && rollup -c", + "integration-test": "node ../../test-runner/build/cli.js --test ./integration.test.cjs --bundle ./build/bundle.js --meta '{\"name\":\"file-storage\",\"description\":\"An AD4M Language for file storage leveraging a holochain DNA\",\"sourceCodeLink\":\"https://github.com/perspect3vism/file-storage-language\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", + "build": "run-script-os", + "build:linux": "yarn run build-dna && tsc && rollup -c", + "build:macos": "yarn run build-dna && tsc && rollup -c", + "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", + "build-dna": "cd ./hc-dna && ./build.sh && cd ..", "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" }, "author": "joshuadparkin@gmail.com", "license": "ISC", "devDependencies": { "@perspect3vism/ad4m": "*", + "@perspect3vism/ad4m-test": "*", + "@perspect3vism/rollup-plugin-dna": "^0.0.2", "@rollup/plugin-commonjs": "^14.0.0", "@rollup/plugin-node-resolve": "^8.0.0", "@rollup/plugin-typescript": "^4.0.0", "@tsconfig/svelte": "^1.0.0", - "ipfs-core-types": "0.10.1", + "@types/express": "^4.17.8", + "@types/uuid": "9.0.1", + "browserify": "^17.0.0", + "pako": "2.1.0", "rollup": "^2.3.4", "rollup-plugin-postcss": "^3.1.8", "rollup-plugin-string": "^3.0.0", @@ -26,11 +35,8 @@ "svelte-check": "^1.0.0", "svelte-preprocess": "^4.0.0", "tslib": "^2.0.0", - "typescript": "^4.2.4" - }, - "dependencies": { - "@types/node": "^18.0.0", - "axios": "^0.26.1", - "xhr2": "^0.2.1" + "typescript": "^4.2.4", + "uint8arrays": "^3.0.0", + "run-script-os": "^1.1.6" } } diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index 03505f4f4..d914c08e2 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -1,60 +1,70 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, LanguageLanguageInput} from "@perspect3vism/ad4m"; -import type { IPFS } from "ipfs-core-types" -import axios from "axios"; -import https from "https"; -import { PROXY_URL } from "."; - -export class CloudflarePutAdapter implements PublicSharing { - #agent: AgentService; - #IPFS: IPFS; - - constructor(context: LanguageContext) { - this.#agent = context.agent; - this.#IPFS = context.IPFS; - } - - async createPublic(language: LanguageLanguageInput): Promise
    { - const ipfsAddress = await this.#IPFS.add( - { content: language.bundle.toString()}, - { onlyHash: true}, - ); - // @ts-ignore - const hash = ipfsAddress.cid.toString(); - - if(hash != language.meta.address) - throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`) - - const agent = this.#agent; - const expression = agent.createSignedExpression(language.meta); - - //Build the key value object for the meta object - const key = `meta-${hash}`; - const metaPostData = { - key: key, - // Content of the new object. - value: JSON.stringify(expression), - }; - //Save the meta information to the KV store - const httpsAgent = new https.Agent({ - rejectUnauthorized: false - }); - const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent }); - if (metaPostResult.status != 200) { - console.error("Upload language meta data gets error: ", metaPostResult); - } +import type { Address, AgentService, PublicSharing, LanguageContext, HolochainLanguageDelegate, LanguageLanguageInput, LanguageMeta, LanguageMetaInternal, LanguageExpression } from "@perspect3vism/ad4m"; +import pako from "pako"; +import { LanguageStorage } from "./languageStorage"; +import { DNA_NICK } from "./dna"; +import { Blob } from "buffer"; +import type { LanguageMetadata } from "./types"; - //Build the key value object for the language bundle - const languageBundleBucketParams = { - key: hash, - // Content of the new object. - value: language.bundle.toString(), - }; - //Save the language bundle to the KV store - const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent }); - if (bundlePostResult.status != 200) { - console.error("Upload language bundle data gets error: ", metaPostResult); - } +export type EntryHash = Uint8Array; - return hash as Address; - } +export interface LanguageData { + name: string; + file_type: string; + data_base64: string; } + + +export class LanguageStoragePutAdapter implements PublicSharing { + #agent: AgentService + #DNA: HolochainLanguageDelegate; + + constructor(context: LanguageContext) { + this.#agent = context.agent + this.#DNA = context.Holochain as HolochainLanguageDelegate; + } + + async createPublic(language: LanguageLanguageInput): Promise
    { + console.log("createPublic fileData", language) + try { + // Just in case... + if(typeof language === "string"){ + //@ts-ignore + fileData = JSON.parse(fileData) + } + }catch(e){} + + const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language-language", fn_name, payload)); + + const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString(), "base64")); + const data_compressed = pako.deflate(data_uncompressed) + const blob = new Blob([data_compressed]) + + const hashes = await storage.upload(blob); + + const fileMetadata = { + name: language.meta.name, + address: hashes.toString(), + description: language.meta.description, + checksum: "1234", + chunks_hashes: hashes, + data_base64: language.bundle.toString(), + size: data_uncompressed.length, + } as LanguageMetadata + + //Create the signed expression object + const expression: LanguageExpression = this.#agent.createSignedExpression(fileMetadata) + //Remove the data_base64 from the expression, since this is already stored above + delete expression.data.data_base64; + delete expression.data.size; + delete expression.data.checksum; + delete expression.data.chunks_hashes; + + //Store the FileMetadataExpression + const address = await storage.storeLanguageExpression(expression) + if (!Buffer.isBuffer(address)) { + throw new Error("Could not create FileExpression data") + }; + //@ts-ignore + return address.toString("hex") + } +} \ No newline at end of file diff --git a/bootstrap-languages/language-language/rollup.config.js b/bootstrap-languages/language-language/rollup.config.js index 983a568e1..823287e56 100644 --- a/bootstrap-languages/language-language/rollup.config.js +++ b/bootstrap-languages/language-language/rollup.config.js @@ -5,6 +5,7 @@ import commonjs from "@rollup/plugin-commonjs"; import sveltePreprocess from "svelte-preprocess"; import postcss from "rollup-plugin-postcss"; import { string } from "rollup-plugin-string"; +import dna from "@perspect3vism/rollup-plugin-dna"; const production = !process.env.ROLLUP_WATCH; @@ -52,7 +53,8 @@ export default { }, ], ], - }) + }), + dna() ], watch: { clearScreen: false, diff --git a/bootstrap-languages/language-language/tsconfig.json b/bootstrap-languages/language-language/tsconfig.json index cfbc9c197..cadf4532b 100644 --- a/bootstrap-languages/language-language/tsconfig.json +++ b/bootstrap-languages/language-language/tsconfig.json @@ -4,7 +4,7 @@ "compilerOptions": { "moduleResolution": "node", "target": "es2017", - /** + /** Svelte Preprocess cannot figure out whether you have a value or a type, so tell TypeScript to enforce using `import type` instead of `import` for Types. */ diff --git a/bootstrap-languages/language-language/types.ts b/bootstrap-languages/language-language/types.ts new file mode 100644 index 000000000..4eabbbd70 --- /dev/null +++ b/bootstrap-languages/language-language/types.ts @@ -0,0 +1,15 @@ +import { ExpressionGeneric } from "@perspect3vism/ad4m"; + +export type EntryHash = Uint8Array; + +export class LanguageMetadata { + name: string; + description: string; + address: string; + size: number; + checksum: string; + chunks_hashes: Array; +} + + +export class LanguageExpression extends ExpressionGeneric(LanguageMetadata) {} ; From 55ec903e4fa754ae6d2bd6076887683c2b041028 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 5 Jun 2023 16:34:47 +0530 Subject: [PATCH 319/722] added tests --- .../language-language/integration.test.cjs | 22 +++++++++++++++++ .../language-language/package.json | 2 +- .../hc-dna/tests/index.ts | 1 - .../integration.test.cjs | 24 +++++++++++++++++++ .../neighbourhood-language/package.json | 2 +- 5 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 bootstrap-languages/language-language/integration.test.cjs create mode 100644 bootstrap-languages/neighbourhood-language/integration.test.cjs diff --git a/bootstrap-languages/language-language/integration.test.cjs b/bootstrap-languages/language-language/integration.test.cjs new file mode 100644 index 000000000..a9878840a --- /dev/null +++ b/bootstrap-languages/language-language/integration.test.cjs @@ -0,0 +1,22 @@ +const { spawnExpressionAgent } = require('@perspect3vism/ad4m-test/helpers') + +describe("Expression", () => { + it("Create Expression", async () => { + const agent = await spawnExpressionAgent() + + const data_base64 = Buffer.from("test data").toString('base64'); + const exp = await agent.create({ + data_base64: data_base64, + name: "test file object", + }); + console.log("created exp", exp); + + expect(exp).not.toBeNull() + + const fetched = await agent.get(exp) + expect(fetched).not.toBeNull() + expect(fetched.proof.valid).toBe(true); + const data = JSON.parse(fetched.data); + expect(data.data_base64).toBe(data_base64); + }) +}) \ No newline at end of file diff --git a/bootstrap-languages/language-language/package.json b/bootstrap-languages/language-language/package.json index 92e3785e5..a16ab9fc8 100644 --- a/bootstrap-languages/language-language/package.json +++ b/bootstrap-languages/language-language/package.json @@ -4,7 +4,7 @@ "description": "An AD4M Language for storing of language bundles on Cloudflare", "main": "index.js", "scripts": { - "integration-test": "node ../../test-runner/build/cli.js --test ./integration.test.cjs --bundle ./build/bundle.js --meta '{\"name\":\"file-storage\",\"description\":\"An AD4M Language for file storage leveraging a holochain DNA\",\"sourceCodeLink\":\"https://github.com/perspect3vism/file-storage-language\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", + "integration-test": "node ../../test-runner/build/cli.js --test ./integration.test.cjs --bundle ./build/bundle.js --meta '{\"name\":\"language-storage\",\"description\":\"An AD4M Language for file storage leveraging a holochain DNA\",\"sourceCodeLink\":\"https://github.com/perspect3vism/file-storage-language\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", "build": "run-script-os", "build:linux": "yarn run build-dna && tsc && rollup -c", "build:macos": "yarn run build-dna && tsc && rollup -c", diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts b/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts index fcf0546ae..3cf4d2c06 100644 --- a/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts +++ b/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts @@ -78,6 +78,5 @@ test("Share full FileExpression between Alice and Bob", async (t) => { t.deepEqual(neighbourdhoodExpressionDown, neighbourhoodExpression) await scenario.shutDown(); - }) }) diff --git a/bootstrap-languages/neighbourhood-language/integration.test.cjs b/bootstrap-languages/neighbourhood-language/integration.test.cjs new file mode 100644 index 000000000..4d98ca48a --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/integration.test.cjs @@ -0,0 +1,24 @@ +const { spawnExpressionAgent } = require('@perspect3vism/ad4m-test/helpers') + +describe("Expression", () => { + it("Create Expression", async () => { + const agent = await spawnExpressionAgent() + + const exp = await agent.create({ + linkLanguage: "test", + meta: { + links: [] + } + }); + console.log("created exp", exp); + + expect(exp).not.toBeNull() + + const fetched = await agent.get(exp) + console.log("fetched exp", fetched); + expect(fetched).not.toBeNull() + expect(fetched.proof.valid).toBe(true); + const data = JSON.parse(fetched.data); + expect(data.linkLanguage).toBe("test"); + }) +}) \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index e525eee3d..9ccb94c7b 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -4,7 +4,7 @@ "description": "This is a Language for storing AD4M neighbourhood objects", "main": "index.js", "scripts": { - "integration-test": "node ../../test-runner/build/cli.js --test ./integration.test.cjs --bundle ./build/bundle.js --meta '{\"name\":\"file-storage\",\"description\":\"An AD4M Language for file storage leveraging a holochain DNA\",\"sourceCodeLink\":\"https://github.com/perspect3vism/file-storage-language\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", + "integration-test": "node ../../test-runner/build/cli.js --test ./integration.test.cjs --bundle ./build/bundle.js --meta '{\"name\":\"neighbourhood-storage\",\"description\":\"An AD4M Language for neighboirhood storage leveraging a holochain DNA\",\"sourceCodeLink\":\"https://github.com/perspect3vism/file-storage-language\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", "build": "run-script-os", "build:linux": "yarn run build-dna && tsc && rollup -c", "build:macos": "yarn run build-dna && tsc && rollup -c", From 5cd0630be5309ac93575b02c3e18fa682022f76d Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 6 Jun 2023 10:02:02 +0530 Subject: [PATCH 320/722] Neighbourhood language fixed --- .../neighbourhood-language/.gitignore | 4 +++- .../neighbourhood-language/adapter.ts | 16 +++------------- .../neighbourhood-language/dna.js | 2 +- .../hc-dna/workdir/dna.yaml | 2 +- .../neighbourhood-language/index.ts | 9 ++++++--- .../neighbourhoodStorage.ts | 2 +- 6 files changed, 15 insertions(+), 20 deletions(-) diff --git a/bootstrap-languages/neighbourhood-language/.gitignore b/bootstrap-languages/neighbourhood-language/.gitignore index b99cc4259..98b62ef64 100644 --- a/bootstrap-languages/neighbourhood-language/.gitignore +++ b/bootstrap-languages/neighbourhood-language/.gitignore @@ -9,4 +9,6 @@ build/* !rollup.config.js !dna.js -node_modules \ No newline at end of file +node_modules +.ad4m-test +ad4m-test-0 \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/adapter.ts b/bootstrap-languages/neighbourhood-language/adapter.ts index 3e9a7616b..d9e50afe3 100644 --- a/bootstrap-languages/neighbourhood-language/adapter.ts +++ b/bootstrap-languages/neighbourhood-language/adapter.ts @@ -1,7 +1,4 @@ import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService, HolochainLanguageDelegate, NeighbourhoodExpression } from "@perspect3vism/ad4m"; -import type { IPFS } from "ipfs-core-types" -import axios from "axios"; -import https from "https"; import { DNA_NICK } from "./dna"; import { NeighbourhoodStorage } from "./neighbourhoodStorage"; @@ -15,14 +12,14 @@ class NeighbourhoodPutAdapter implements PublicSharing { } async createPublic(neighbourhood: object): Promise
    { - const storage = new NeighbourhoodStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "file_storage", fn_name, payload)); + const storage = new NeighbourhoodStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "neighbourhood_storage", fn_name, payload)); const expression: any = this.#agent.createSignedExpression(neighbourhood) //Store the FileMetadataExpression const address = await storage.storeNeighbourhoodExpression(expression) if (!Buffer.isBuffer(address)) { - throw new Error("Could not create FileExpression data") + throw new Error("Could not create NeighbourhoodExpression data") }; //@ts-ignore @@ -40,20 +37,13 @@ export default class Adapter implements ExpressionAdapter { } async get(address: Address): Promise { - const cid = address.toString(); - - const storage = new NeighbourhoodStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language-language", fn_name, payload)); + const storage = new NeighbourhoodStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "neighbourhood_storage", fn_name, payload)); let addressBuffer = Buffer.from(address, 'hex'); const expression = (await storage.getNeighbourhoodExpression(addressBuffer)) as NeighbourhoodExpression - if (!expression) { return null; }; - if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) { - expression.data.data_base64 = ""; - return expression; - }; return expression } diff --git a/bootstrap-languages/neighbourhood-language/dna.js b/bootstrap-languages/neighbourhood-language/dna.js index 395231e3d..d554764b2 100644 --- a/bootstrap-languages/neighbourhood-language/dna.js +++ b/bootstrap-languages/neighbourhood-language/dna.js @@ -1,4 +1,4 @@ -import dna from "./hc-dna/workdir/neighbourhood-language.dna"; +import dna from "./hc-dna/workdir/neighbourhood-storage.dna"; export const DNA = Buffer.from(dna, "base64"); export const DNA_NICK = "neighbourhood-language"; diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml b/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml index 2325cace6..beda8e743 100644 --- a/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml +++ b/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml @@ -1,6 +1,6 @@ --- manifest_version: '1' -name: neighbourhood-language +name: neighbourhood-storage integrity: network_seed: 00000000-0000-0000-0000-000000000000 diff --git a/bootstrap-languages/neighbourhood-language/index.ts b/bootstrap-languages/neighbourhood-language/index.ts index 03fa22ab9..843bd4693 100644 --- a/bootstrap-languages/neighbourhood-language/index.ts +++ b/bootstrap-languages/neighbourhood-language/index.ts @@ -1,5 +1,6 @@ -import type { Address, Language, LanguageContext, ExpressionUI, Interaction } from "@perspect3vism/ad4m"; +import type { Address, Language, LanguageContext, ExpressionUI, Interaction, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; import Adapter from "./adapter"; +import { DNA, DNA_NICK } from "./dna"; function interactions(expression: Address): Interaction[] { return []; @@ -18,8 +19,10 @@ export class UI implements ExpressionUI { export const name = "neighbourhood-store"; export default async function create(context: LanguageContext): Promise { - //const Holochain = context.Holochain as HolochainLanguageDelegate; - //await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]); + const Holochain = context.Holochain as HolochainLanguageDelegate; + // @ts-ignore + await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]); + const expressionAdapter = new Adapter(context); //const expressionUI = new UI(); diff --git a/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts b/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts index 1933ed5bb..8a00744c9 100644 --- a/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts +++ b/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts @@ -19,4 +19,4 @@ export class NeighbourhoodStorage { } } -export default NeighbourhoodExpression \ No newline at end of file +export default NeighbourhoodStorage \ No newline at end of file From f28d2e36c108783223d335ecb8b6f0bda150179a Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 6 Jun 2023 10:38:28 +0530 Subject: [PATCH 321/722] Neighbourhood language works now --- bootstrap-languages/language-language/.gitignore | 4 +++- bootstrap-languages/language-language/adapter.ts | 12 +----------- .../hc-dna/zomes/integrity/src/lib.rs | 1 - bootstrap-languages/language-language/index.ts | 5 +++++ .../language-language/integration.test.cjs | 11 ++++++++--- .../language-language/languageAdapter.ts | 2 +- bootstrap-languages/language-language/putAdapter.ts | 7 +------ bootstrap-languages/language-language/types.ts | 1 - 8 files changed, 19 insertions(+), 24 deletions(-) diff --git a/bootstrap-languages/language-language/.gitignore b/bootstrap-languages/language-language/.gitignore index b99cc4259..98b62ef64 100644 --- a/bootstrap-languages/language-language/.gitignore +++ b/bootstrap-languages/language-language/.gitignore @@ -9,4 +9,6 @@ build/* !rollup.config.js !dna.js -node_modules \ No newline at end of file +node_modules +.ad4m-test +ad4m-test-0 \ No newline at end of file diff --git a/bootstrap-languages/language-language/adapter.ts b/bootstrap-languages/language-language/adapter.ts index ec4244168..b50e64157 100644 --- a/bootstrap-languages/language-language/adapter.ts +++ b/bootstrap-languages/language-language/adapter.ts @@ -14,13 +14,7 @@ export default class Adapter implements ExpressionAdapter { } async get(address: Address): Promise { - //Check the first two characters of address are equal to Qm - if (address.substring(0, 2) != "Qm") { - console.error("LanguageLanguage.get(): The address is not a valid hash"); - return null; - } - - const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language-language", fn_name, payload)); + const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language_storage", fn_name, payload)); let addressBuffer = Buffer.from(address, 'hex'); const expression = (await storage.getLanguageExpression(addressBuffer)) as LanguageExpression @@ -28,10 +22,6 @@ export default class Adapter implements ExpressionAdapter { if (!expression) { return null; }; - if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) { - expression.data.data_base64 = ""; - return expression; - }; return expression } diff --git a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs index 9e787b5ed..44fe36efc 100644 --- a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs +++ b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs @@ -8,7 +8,6 @@ pub struct LanguageChunk(SerializedBytes); pub struct LanguageMetadata { pub name: String, pub description: String, - pub address: String, pub size: usize, pub checksum: String, pub chunks_hashes: Vec, diff --git a/bootstrap-languages/language-language/index.ts b/bootstrap-languages/language-language/index.ts index c50ca8e50..9451f4a18 100644 --- a/bootstrap-languages/language-language/index.ts +++ b/bootstrap-languages/language-language/index.ts @@ -1,6 +1,7 @@ import type { Address, Language, HolochainLanguageDelegate, LanguageContext, Interaction, ExpressionUI } from "@perspect3vism/ad4m"; import LangAdapter from "./languageAdapter"; import Adapter from "./adapter"; +import { DNA, DNA_NICK } from "./dna"; export const name = "languages"; @@ -9,6 +10,10 @@ function interactions(expression: Address): Interaction[] { } export default async function create(context: LanguageContext): Promise { + const Holochain = context.Holochain as HolochainLanguageDelegate; + // @ts-ignore + await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]); + const expressionAdapter = new Adapter(context); const languageAdapter = new LangAdapter(context); diff --git a/bootstrap-languages/language-language/integration.test.cjs b/bootstrap-languages/language-language/integration.test.cjs index a9878840a..930639dc2 100644 --- a/bootstrap-languages/language-language/integration.test.cjs +++ b/bootstrap-languages/language-language/integration.test.cjs @@ -6,17 +6,22 @@ describe("Expression", () => { const data_base64 = Buffer.from("test data").toString('base64'); const exp = await agent.create({ - data_base64: data_base64, - name: "test file object", + bundle: data_base64, + meta: { + name: "language-language", + address: "sklfjasfja", + description: "description" + } }); console.log("created exp", exp); expect(exp).not.toBeNull() const fetched = await agent.get(exp) + console.log("fetched exp", fetched); expect(fetched).not.toBeNull() expect(fetched.proof.valid).toBe(true); const data = JSON.parse(fetched.data); - expect(data.data_base64).toBe(data_base64); + expect(data.name).toBe("language-language"); }) }) \ No newline at end of file diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index 40f59dccc..ca61de5ba 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -19,7 +19,7 @@ export default class LangAdapter implements LanguageAdapter { return null; } - const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language-language", fn_name, payload)); + const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language_storage", fn_name, payload)); let addressBuffer = Buffer.from(address, 'hex'); const expression = (await storage.getLanguageExpression(addressBuffer)) as LanguageExpression diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index d914c08e2..af064ea9d 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -33,7 +33,7 @@ export class LanguageStoragePutAdapter implements PublicSharing { } }catch(e){} - const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language-language", fn_name, payload)); + const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language_storage", fn_name, payload)); const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString(), "base64")); const data_compressed = pako.deflate(data_uncompressed) @@ -43,11 +43,9 @@ export class LanguageStoragePutAdapter implements PublicSharing { const fileMetadata = { name: language.meta.name, - address: hashes.toString(), description: language.meta.description, checksum: "1234", chunks_hashes: hashes, - data_base64: language.bundle.toString(), size: data_uncompressed.length, } as LanguageMetadata @@ -55,9 +53,6 @@ export class LanguageStoragePutAdapter implements PublicSharing { const expression: LanguageExpression = this.#agent.createSignedExpression(fileMetadata) //Remove the data_base64 from the expression, since this is already stored above delete expression.data.data_base64; - delete expression.data.size; - delete expression.data.checksum; - delete expression.data.chunks_hashes; //Store the FileMetadataExpression const address = await storage.storeLanguageExpression(expression) diff --git a/bootstrap-languages/language-language/types.ts b/bootstrap-languages/language-language/types.ts index 4eabbbd70..45c724b6e 100644 --- a/bootstrap-languages/language-language/types.ts +++ b/bootstrap-languages/language-language/types.ts @@ -5,7 +5,6 @@ export type EntryHash = Uint8Array; export class LanguageMetadata { name: string; description: string; - address: string; size: number; checksum: string; chunks_hashes: Array; From a80447caddd9a22494de1ee52b44bc52417b0bad Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 6 Jun 2023 15:41:51 +0530 Subject: [PATCH 322/722] Languages now work with just their unique ipfs hash --- .../language-language/adapter.ts | 9 ++- .../hc-dna/zomes/integrity/src/lib.rs | 12 ++++ .../hc-dna/zomes/language_storage/src/lib.rs | 63 +++++++++++++----- .../zomes/language_storage/src/utils.rs | 26 ++++++++ .../language-language/languageAdapter.ts | 5 +- .../language-language/languageStorage.ts | 2 +- .../language-language/putAdapter.ts | 26 ++++++-- .../language-language/types.ts | 1 + .../neighbourhood-language/adapter.ts | 30 +++++++-- .../hc-dna/zomes/integrity/src/lib.rs | 18 +++++ .../zomes/neighbourhood_storage/src/lib.rs | 65 ++++++++++++++----- .../zomes/neighbourhood_storage/src/utils.rs | 26 ++++++++ .../neighbourhoodStorage.ts | 2 +- 13 files changed, 232 insertions(+), 53 deletions(-) create mode 100644 bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs create mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/utils.rs diff --git a/bootstrap-languages/language-language/adapter.ts b/bootstrap-languages/language-language/adapter.ts index b50e64157..3e074ee3e 100644 --- a/bootstrap-languages/language-language/adapter.ts +++ b/bootstrap-languages/language-language/adapter.ts @@ -14,10 +14,15 @@ export default class Adapter implements ExpressionAdapter { } async get(address: Address): Promise { + //Check the first two characters of address are equal to Qm + if (address.substring(0, 2) != "Qm") { + console.error("LanguageLanguage.get(): The address is not a valid hash"); + return null; + } + const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language_storage", fn_name, payload)); - let addressBuffer = Buffer.from(address, 'hex'); - const expression = (await storage.getLanguageExpression(addressBuffer)) as LanguageExpression + const expression = (await storage.getLanguageExpression(address)) as LanguageExpression if (!expression) { return null; diff --git a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs index 44fe36efc..f4b5b3553 100644 --- a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs +++ b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs @@ -4,10 +4,14 @@ use hdi::prelude::*; #[hdk_entry_helper] pub struct LanguageChunk(SerializedBytes); +#[hdk_entry_helper] +pub struct LanguageAddress(pub String); + #[hdk_entry_helper] pub struct LanguageMetadata { pub name: String, pub description: String, + pub address: String, pub size: usize, pub checksum: String, pub chunks_hashes: Vec, @@ -35,4 +39,12 @@ pub enum EntryTypes { #[entry_def(visibility = "public")] LanguageChunk(LanguageChunk), + + #[entry_def(visibility = "public")] + LanguageAddress(LanguageAddress), } + +#[hdk_link_types] +pub enum LinkTypes { + LanguageLink, +} \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs index 56ec30785..b1139df80 100644 --- a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs +++ b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs @@ -1,6 +1,8 @@ use chrono::{DateTime, NaiveDateTime, Utc}; use hdk::prelude::*; -use integrity::{EntryTypes, LanguageChunk, LanguageExpression}; +use integrity::{EntryTypes, LanguageChunk, LanguageExpression, LinkTypes, LanguageAddress}; +mod utils; +use utils::{err, get_latest_link}; #[hdk_extern] fn init(_: ()) -> ExternResult { @@ -22,11 +24,23 @@ pub fn get_now() -> DateTime { } #[hdk_extern] -pub fn store_language_expression(expression: LanguageExpression) -> ExternResult { - let hash = hash_entry(&expression)?; - create_entry(&EntryTypes::LanguageExpression(expression))?; +pub fn store_language_expression(expression: LanguageExpression) -> ExternResult<()> { + let address = EntryTypes::LanguageAddress(LanguageAddress(expression.data.address.clone())); + let address_hash = hash_entry(&address)?; - Ok(hash) + let language_expression = EntryTypes::LanguageExpression(expression); + let language_expression_hash = hash_entry(&language_expression)?; + create_entry(&language_expression)?; + + //Link profile entry to did + create_link( + address_hash, + language_expression_hash, + LinkTypes::LanguageLink, + LinkTag::from("".as_bytes().to_owned()), + )?; + + Ok(()) } #[hdk_extern] @@ -42,19 +56,36 @@ pub fn store_chunk(file_chunk: LanguageChunk) -> ExternResult { #[hdk_extern] pub fn get_language_expression( - file_expression_hash: EntryHash, + file_expression_hash: LanguageAddress, ) -> ExternResult> { - match get(file_expression_hash.clone(), GetOptions::default())? { - Some(record) => { - let file_expression: LanguageExpression = record - .entry() - .to_app_option() - .map_err(|e| wasm_error!(e))? - .ok_or(wasm_error!(WasmErrorInner::Guest( - "Malformed file chunk".into() - )))?; + let expression_links = get_latest_link( + hash_entry(file_expression_hash)?, + Some(LinkTag::from("".as_bytes().to_owned())), + ) + .map_err(|error| err(format!("{}", error).as_ref()))?; - Ok(Some(file_expression)) + match expression_links { + Some(link) => { + match get( + link.target + .into_entry_hash() + .expect("could not get action hash"), + GetOptions::default(), + ) + .map_err(|error| err(format!("{}", error).as_ref()))? + { + Some(elem) => { + let exp_data: LanguageExpression = elem + .entry() + .to_app_option() + .map_err(|sb_err| err(&format!("{}", sb_err)))? + .ok_or(err( + "Could not deserialize link expression data into Profile type", + ))?; + Ok(Some(exp_data)) + } + None => Ok(None), + } } None => Ok(None), } diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs new file mode 100644 index 000000000..7ca73ba3a --- /dev/null +++ b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs @@ -0,0 +1,26 @@ +use integrity::LinkTypes; +use hdk::prelude::*; + +pub(crate) fn err(reason: &str) -> WasmError { + wasm_error!(WasmErrorInner::Host(String::from(reason))) +} + +pub(crate) fn get_latest_link(base: EntryHash, tag: Option) -> ExternResult> { + let language_info = get_links(base, LinkTypes::LanguageLink, tag)?; + + // Find the latest + let latest_info = + language_info + .into_iter() + .fold(None, |latest: Option, link| match latest { + Some(latest) => { + if link.timestamp > latest.timestamp { + Some(link) + } else { + Some(latest) + } + } + None => Some(link), + }); + return Ok(latest_info); +} diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index ca61de5ba..d5a0ff18d 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -21,15 +21,14 @@ export default class LangAdapter implements LanguageAdapter { const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language_storage", fn_name, payload)); - let addressBuffer = Buffer.from(address, 'hex'); - const expression = (await storage.getLanguageExpression(addressBuffer)) as LanguageExpression + const expression = (await storage.getLanguageExpression(address)) as LanguageExpression if (!expression) { console.error("LanguageLanguage.get(): Failed to fetch language"); return null; }; + if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) { - expression.data.data_base64 = ""; console.error("LanguageLanguage.get(): Failed to fetch language"); return null; }; diff --git a/bootstrap-languages/language-language/languageStorage.ts b/bootstrap-languages/language-language/languageStorage.ts index 388866e86..21edf0b05 100644 --- a/bootstrap-languages/language-language/languageStorage.ts +++ b/bootstrap-languages/language-language/languageStorage.ts @@ -50,7 +50,7 @@ export class LanguageStorage { return await this.#zomeCall("store_language_expression", fileExpression); } - async getLanguageExpression(fileHash: EntryHash): Promise { + async getLanguageExpression(fileHash: string): Promise { return await this.#zomeCall("get_language_expression", fileHash) as LanguageExpression; } diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index af064ea9d..f2d6cba54 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -4,6 +4,7 @@ import { LanguageStorage } from "./languageStorage"; import { DNA_NICK } from "./dna"; import { Blob } from "buffer"; import type { LanguageMetadata } from "./types"; +import type { IPFS } from "ipfs-core-types" export type EntryHash = Uint8Array; @@ -17,13 +18,27 @@ export interface LanguageData { export class LanguageStoragePutAdapter implements PublicSharing { #agent: AgentService #DNA: HolochainLanguageDelegate; + #IPFS: IPFS; constructor(context: LanguageContext) { - this.#agent = context.agent + this.#agent = context.agent; this.#DNA = context.Holochain as HolochainLanguageDelegate; + // @ts-ignore + this.#IPFS = context.IPFS; } async createPublic(language: LanguageLanguageInput): Promise
    { + const ipfsAddress = await this.#IPFS.add( + { content: language.bundle.toString()}, + { onlyHash: true}, + ); + // @ts-ignore + const hash = ipfsAddress.cid.toString(); + + if(hash != language.meta.address) { + throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`) + } + console.log("createPublic fileData", language) try { // Just in case... @@ -44,6 +59,7 @@ export class LanguageStoragePutAdapter implements PublicSharing { const fileMetadata = { name: language.meta.name, description: language.meta.description, + address: language.meta.address, checksum: "1234", chunks_hashes: hashes, size: data_uncompressed.length, @@ -55,11 +71,9 @@ export class LanguageStoragePutAdapter implements PublicSharing { delete expression.data.data_base64; //Store the FileMetadataExpression - const address = await storage.storeLanguageExpression(expression) - if (!Buffer.isBuffer(address)) { - throw new Error("Could not create FileExpression data") - }; + await storage.storeLanguageExpression(expression) + //@ts-ignore - return address.toString("hex") + return hash } } \ No newline at end of file diff --git a/bootstrap-languages/language-language/types.ts b/bootstrap-languages/language-language/types.ts index 45c724b6e..4eabbbd70 100644 --- a/bootstrap-languages/language-language/types.ts +++ b/bootstrap-languages/language-language/types.ts @@ -5,6 +5,7 @@ export type EntryHash = Uint8Array; export class LanguageMetadata { name: string; description: string; + address: string; size: number; checksum: string; chunks_hashes: Array; diff --git a/bootstrap-languages/neighbourhood-language/adapter.ts b/bootstrap-languages/neighbourhood-language/adapter.ts index d9e50afe3..26a434620 100644 --- a/bootstrap-languages/neighbourhood-language/adapter.ts +++ b/bootstrap-languages/neighbourhood-language/adapter.ts @@ -1,29 +1,40 @@ import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService, HolochainLanguageDelegate, NeighbourhoodExpression } from "@perspect3vism/ad4m"; import { DNA_NICK } from "./dna"; import { NeighbourhoodStorage } from "./neighbourhoodStorage"; +import type { IPFS } from "ipfs-core-types" class NeighbourhoodPutAdapter implements PublicSharing { #agent: AgentService #DNA: HolochainLanguageDelegate; + #IPFS: IPFS; constructor(context: LanguageContext) { this.#agent = context.agent this.#DNA = context.Holochain as HolochainLanguageDelegate; + // @ts-ignore + this.#IPFS = context.IPFS; } async createPublic(neighbourhood: object): Promise
    { + const ipfsAddress = await this.#IPFS.add( + { content: JSON.stringify(neighbourhood)}, + { onlyHash: true}, + ); + // @ts-ignore + const hash = ipfsAddress.cid.toString(); + const storage = new NeighbourhoodStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "neighbourhood_storage", fn_name, payload)); const expression: any = this.#agent.createSignedExpression(neighbourhood) //Store the FileMetadataExpression - const address = await storage.storeNeighbourhoodExpression(expression) - if (!Buffer.isBuffer(address)) { - throw new Error("Could not create NeighbourhoodExpression data") - }; + await storage.storeNeighbourhoodExpression({ + neighbourhood: expression, + address: hash + }) //@ts-ignore - return address.toString("hex") + return hash } } @@ -37,10 +48,15 @@ export default class Adapter implements ExpressionAdapter { } async get(address: Address): Promise { + //Check the first two characters of address are equal to Qm + if (address.substring(0, 2) != "Qm") { + console.error("LanguageLanguage.get(): The address is not a valid hash"); + return null; + } + const storage = new NeighbourhoodStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "neighbourhood_storage", fn_name, payload)); - let addressBuffer = Buffer.from(address, 'hex'); - const expression = (await storage.getNeighbourhoodExpression(addressBuffer)) as NeighbourhoodExpression + const expression = (await storage.getNeighbourhoodExpression(address)) as NeighbourhoodExpression if (!expression) { return null; }; diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs index 031faaab9..18256feb4 100644 --- a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs +++ b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs @@ -45,6 +45,16 @@ pub struct NeighbourhoodExpression { pub data: NeighbourhoodMetadata, } +#[hdk_entry_helper] +pub struct NeighbourhoodParam { + pub neighbourhood: NeighbourhoodExpression, + pub address: String, +} + +#[hdk_entry_helper] +pub struct NeighbourhoodAddress(pub String); + + #[hdk_entry_defs] #[unit_enum(UnitEntryTypes)] pub enum EntryTypes { @@ -53,4 +63,12 @@ pub enum EntryTypes { #[entry_def(visibility = "public")] NeighbourhoodChunk(NeighbourhoodChunk), + + #[entry_def(visibility = "public")] + NeighbourhoodAddress(NeighbourhoodAddress), } + +#[hdk_link_types] +pub enum LinkTypes { + NeighbourhoodLink, +} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs index da61bd66c..0bdff55cb 100644 --- a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs +++ b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs @@ -1,6 +1,8 @@ use chrono::{DateTime, NaiveDateTime, Utc}; use hdk::prelude::*; -use integrity::{EntryTypes, NeighbourhoodExpression}; +use integrity::{EntryTypes, NeighbourhoodExpression, NeighbourhoodParam, LinkTypes, NeighbourhoodAddress}; +mod utils; +use utils::{err, get_latest_link}; #[hdk_extern] fn init(_: ()) -> ExternResult { @@ -22,28 +24,57 @@ pub fn get_now() -> DateTime { } #[hdk_extern] -pub fn store_neighbourhood_expression(expression: NeighbourhoodExpression) -> ExternResult { - let hash = hash_entry(&expression)?; - create_entry(&EntryTypes::NeighbourhoodExpression(expression))?; +pub fn store_neighbourhood_expression(neighbourhood: NeighbourhoodParam) -> ExternResult<()> { + let address = EntryTypes::NeighbourhoodAddress(NeighbourhoodAddress(neighbourhood.address.clone())); + let address_hash = hash_entry(&address)?; - Ok(hash) + let neighbourhood_expression = EntryTypes::NeighbourhoodExpression(neighbourhood.neighbourhood); + let neighbourhood_expression_hash = hash_entry(&neighbourhood_expression)?; + create_entry(&neighbourhood_expression)?; + + //Link profile entry to did + create_link( + address_hash, + neighbourhood_expression_hash, + LinkTypes::NeighbourhoodLink, + LinkTag::from("".as_bytes().to_owned()), + )?; + + Ok(()) } #[hdk_extern] pub fn get_neighbourhood_expression( - file_expression_hash: EntryHash, + file_expression_hash: NeighbourhoodAddress, ) -> ExternResult> { - match get(file_expression_hash.clone(), GetOptions::default())? { - Some(record) => { - let file_expression: NeighbourhoodExpression = record - .entry() - .to_app_option() - .map_err(|e| wasm_error!(e))? - .ok_or(wasm_error!(WasmErrorInner::Guest( - "Malformed file chunk".into() - )))?; - - Ok(Some(file_expression)) + let expression_links = get_latest_link( + hash_entry(file_expression_hash)?, + Some(LinkTag::from("".as_bytes().to_owned())), + ) + .map_err(|error| err(format!("{}", error).as_ref()))?; + + match expression_links { + Some(link) => { + match get( + link.target + .into_entry_hash() + .expect("could not get action hash"), + GetOptions::default(), + ) + .map_err(|error| err(format!("{}", error).as_ref()))? + { + Some(elem) => { + let exp_data: NeighbourhoodExpression = elem + .entry() + .to_app_option() + .map_err(|sb_err| err(&format!("{}", sb_err)))? + .ok_or(err( + "Could not deserialize link expression data into Profile type", + ))?; + Ok(Some(exp_data)) + } + None => Ok(None), + } } None => Ok(None), } diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/utils.rs b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/utils.rs new file mode 100644 index 000000000..2801e0856 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/utils.rs @@ -0,0 +1,26 @@ +use integrity::LinkTypes; +use hdk::prelude::*; + +pub(crate) fn err(reason: &str) -> WasmError { + wasm_error!(WasmErrorInner::Host(String::from(reason))) +} + +pub(crate) fn get_latest_link(base: EntryHash, tag: Option) -> ExternResult> { + let neighbourhood_info = get_links(base, LinkTypes::NeighbourhoodLink, tag)?; + + // Find the latest + let latest_info = + neighbourhood_info + .into_iter() + .fold(None, |latest: Option, link| match latest { + Some(latest) => { + if link.timestamp > latest.timestamp { + Some(link) + } else { + Some(latest) + } + } + None => Some(link), + }); + return Ok(latest_info); +} diff --git a/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts b/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts index 8a00744c9..ed8a123f6 100644 --- a/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts +++ b/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts @@ -14,7 +14,7 @@ export class NeighbourhoodStorage { return await this.#zomeCall("store_neighbourhood_expression", neighbourhoodExpression); } - async getNeighbourhoodExpression(fileHash: EntryHash): Promise { + async getNeighbourhoodExpression(fileHash: string): Promise { return await this.#zomeCall("get_neighbourhood_expression", fileHash) as NeighbourhoodExpression; } } From dcc42f866e9aa0993d993903baf45448582c9477 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 6 Jun 2023 15:41:59 +0530 Subject: [PATCH 323/722] Tests updated --- bootstrap-languages/language-language/integration.test.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap-languages/language-language/integration.test.cjs b/bootstrap-languages/language-language/integration.test.cjs index 930639dc2..6cef1ed39 100644 --- a/bootstrap-languages/language-language/integration.test.cjs +++ b/bootstrap-languages/language-language/integration.test.cjs @@ -9,7 +9,7 @@ describe("Expression", () => { bundle: data_base64, meta: { name: "language-language", - address: "sklfjasfja", + address: "QmdJ7bZY6UEZsxHpbk1fteHVWJ9dCgR1Avqw9Cj1KRG1Um", description: "description" } }); From 15637ff2ac4a3aa91bb7b36efa38200d1f83feb6 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 8 Jun 2023 13:09:58 +0100 Subject: [PATCH 324/722] use remote node-swipl again --- executor/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/package.json b/executor/package.json index 663c5f065..1a313a476 100644 --- a/executor/package.json +++ b/executor/package.json @@ -96,7 +96,7 @@ "run-script-os": "^1.1.6", "sha256": "^0.2.0", "sha3": "^2.1.3", - "swipl-stdio": "file:../../node-swipl-stdio", + "swipl-stdio": "https://github.com/perspect3vism/node-swipl-stdio.git", "tmp": "^0.2.1", "@msgpack/msgpack": "^2.7.2" } From 4319898339140206f42ca2cc31b49d9c8c7f19ed Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 8 Jun 2023 13:45:52 +0100 Subject: [PATCH 325/722] delete old yarn.lock --- yarn.lock | 20544 ---------------------------------------------------- 1 file changed, 20544 deletions(-) delete mode 100644 yarn.lock diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index bf506fbf8..000000000 --- a/yarn.lock +++ /dev/null @@ -1,20544 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@adobe/css-tools@^4.0.1": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" - integrity sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA== - -"@ampproject/remapping@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@apideck/better-ajv-errors@^0.3.1": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz#957d4c28e886a64a8141f7522783be65733ff097" - integrity sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA== - dependencies: - json-schema "^0.4.0" - jsonpointer "^5.0.0" - leven "^3.1.0" - -"@apollo/client@3.7.10": - version "3.7.10" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.7.10.tgz#addc5fcebaf016981d9476268a06d529be83f568" - integrity sha512-/k1MfrqPKYiPNdHcOzdxg9cEx96vhAGxAcSorzfBvV29XtFQcYW2cPNQOTjK/fpSMtqVo8UNmu5vwQAWD1gfCg== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - "@wry/context" "^0.7.0" - "@wry/equality" "^0.5.0" - "@wry/trie" "^0.3.0" - graphql-tag "^2.12.6" - hoist-non-react-statics "^3.3.2" - optimism "^0.16.1" - prop-types "^15.7.2" - response-iterator "^0.2.6" - symbol-observable "^4.0.0" - ts-invariant "^0.10.3" - tslib "^2.3.0" - zen-observable-ts "^1.2.5" - -"@apollo/protobufjs@1.2.6": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.6.tgz#d601e65211e06ae1432bf5993a1a0105f2862f27" - integrity sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - "@types/node" "^10.1.0" - long "^4.0.0" - -"@apollo/protobufjs@1.2.7": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.7.tgz#3a8675512817e4a046a897e5f4f16415f16a7d8a" - integrity sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - long "^4.0.0" - -"@apollo/usage-reporting-protobuf@^4.0.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.0.tgz#b54b8c32702bbe81aa0e399076ddabaf75a13f9b" - integrity sha512-hXouMuw5pQVkzi8dgMybmr6Y11+eRmMQVoB5TF0HyTwAg9SOq/v3OCuiYqcVUKdBcskU9Msp+XvjAk0GKpWCwQ== - dependencies: - "@apollo/protobufjs" "1.2.7" - -"@apollo/utils.dropunuseddefinitions@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz#02b04006442eaf037f4c4624146b12775d70d929" - integrity sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg== - -"@apollo/utils.keyvaluecache@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz#2bfe358c4d82f3a0950518451996758c52613f57" - integrity sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg== - dependencies: - "@apollo/utils.logger" "^1.0.0" - lru-cache "7.10.1 - 7.13.1" - -"@apollo/utils.logger@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@apollo/utils.logger/-/utils.logger-1.0.1.tgz#aea0d1bb7ceb237f506c6bbf38f10a555b99a695" - integrity sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA== - -"@apollo/utils.printwithreducedwhitespace@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz#c466299a4766eef8577a2a64c8f27712e8bd7e30" - integrity sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q== - -"@apollo/utils.removealiases@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz#75f6d83098af1fcae2d3beb4f515ad4a8452a8c1" - integrity sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A== - -"@apollo/utils.sortast@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz#93218c7008daf3e2a0725196085a33f5aab5ad07" - integrity sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA== - dependencies: - lodash.sortby "^4.7.0" - -"@apollo/utils.stripsensitiveliterals@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz#4920651f36beee8e260e12031a0c5863ad0c7b28" - integrity sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w== - -"@apollo/utils.usagereporting@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz#3c70b49e554771659576fe35381c7a4b321d27fd" - integrity sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ== - dependencies: - "@apollo/usage-reporting-protobuf" "^4.0.0" - "@apollo/utils.dropunuseddefinitions" "^1.1.0" - "@apollo/utils.printwithreducedwhitespace" "^1.1.0" - "@apollo/utils.removealiases" "1.0.0" - "@apollo/utils.sortast" "^1.1.0" - "@apollo/utils.stripsensitiveliterals" "^1.2.0" - -"@apollographql/apollo-tools@^0.5.3": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz#cb3998c6cf12e494b90c733f44dd9935e2d8196c" - integrity sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw== - -"@apollographql/graphql-playground-html@1.6.29": - version "1.6.29" - resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453" - integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA== - dependencies: - xss "^1.0.8" - -"@asciidoctor/cli@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@asciidoctor/cli/-/cli-3.5.0.tgz#0b0a0204880b325971fb2af33bf490ab67672d8f" - integrity sha512-/VMHXcZBnZ9vgWfmqk9Hu0x0gMjPLup0YGq/xA8qCQuk11kUIZNMVQwgSsIUzOEwJqIUD7CgncJdtfwv1Ndxuw== - dependencies: - yargs "16.2.0" - -"@asciidoctor/core@2.2.6": - version "2.2.6" - resolved "https://registry.yarnpkg.com/@asciidoctor/core/-/core-2.2.6.tgz#a59a9e8ab48ac0a615d5a3200214d3071291c5d5" - integrity sha512-TmB2K5UfpDpSbCNBBntXzKHcAk2EA3/P68jmWvmJvglVUdkO9V6kTAuXVe12+h6C4GK0ndwuCrHHtEVcL5t6pQ== - dependencies: - asciidoctor-opal-runtime "0.3.3" - unxhr "1.0.1" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.8.3": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" - integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" - integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== - -"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.14.8", "@babel/core@^7.16.0", "@babel/core@^7.2.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0", "@babel/core@^7.9.6": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659" - integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-compilation-targets" "^7.21.4" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.4" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.4" - "@babel/types" "^7.21.4" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/eslint-parser@^7.16.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz#d79e822050f2de65d7f368a076846e7184234af7" - integrity sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg== - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - -"@babel/generator@7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" - integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== - dependencies: - "@babel/types" "^7.18.2" - "@jridgewell/gen-mapping" "^0.3.0" - jsesc "^2.5.1" - -"@babel/generator@^7.21.4", "@babel/generator@^7.7.2": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc" - integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA== - dependencies: - "@babel/types" "^7.21.4" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656" - integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg== - dependencies: - "@babel/compat-data" "^7.21.4" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18" - integrity sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz#40411a8ab134258ad2cf3a3d987ec6aa0723cee5" - integrity sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.3.1" - -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" - integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== - dependencies: - "@babel/types" "^7.21.0" - -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" - integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== - dependencies: - "@babel/types" "^7.21.4" - -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" - integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" - integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== - dependencies: - "@babel/types" "^7.20.0" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.18.10", "@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== - dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" - -"@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" - integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@7.18.4": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" - integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4", "@babel/parser@^7.9.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" - integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" - -"@babel/plugin-proposal-async-generator-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-class-static-block@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-decorators@^7.16.4": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63" - integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/plugin-syntax-decorators" "^7.21.0" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" - integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-decorators@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78" - integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-flow@^7.18.6": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz#3e37fca4f06d93567c1cd9b75156422e90a67107" - integrity sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" - integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" - integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-arrow-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-async-to-generator@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-block-scoping@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" - integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-classes@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" - integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/template" "^7.20.7" - -"@babel/plugin-transform-destructuring@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" - integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-flow-strip-types@^7.16.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" - integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-flow" "^7.18.6" - -"@babel/plugin-transform-for-of@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" - integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== - dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-modules-amd@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== - dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" - integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== - dependencies: - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" - -"@babel/plugin-transform-modules-systemjs@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== - dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-identifier" "^7.19.1" - -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - -"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" - integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-react-constant-elements@^7.12.1": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz#b32a5556100d424b25e388dd689050d78396884d" - integrity sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" - integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-react-jsx-development@^7.16.7", "@babel/plugin-transform-react-jsx-development@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" - integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.18.6" - -"@babel/plugin-transform-react-jsx-self@^7.14.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz#ec98d4a9baafc5a1eb398da4cf94afbb40254a54" - integrity sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-react-jsx-source@^7.14.5": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86" - integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz#656b42c2fdea0a6d8762075d58ef9d4e3c4ab8a2" - integrity sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.21.0" - -"@babel/plugin-transform-react-pure-annotations@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" - integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-regenerator@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - regenerator-transform "^0.15.1" - -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-runtime@^7.16.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa" - integrity sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA== - dependencies: - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-plugin-utils" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - semver "^6.3.0" - -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-spread@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typescript@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz#316c5be579856ea890a57ebc5116c5d064658f2b" - integrity sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-typescript" "^7.20.0" - -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.4.tgz#a952482e634a8dd8271a3fe5459a16eb10739c58" - integrity sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw== - dependencies: - "@babel/compat-data" "^7.21.4" - "@babel/helper-compilation-targets" "^7.21.4" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" - "@babel/plugin-proposal-async-generator-functions" "^7.20.7" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.21.0" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.21.0" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.21.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.20.7" - "@babel/plugin-transform-async-to-generator" "^7.20.7" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.21.0" - "@babel/plugin-transform-classes" "^7.21.0" - "@babel/plugin-transform-computed-properties" "^7.20.7" - "@babel/plugin-transform-destructuring" "^7.21.3" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.21.0" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.20.11" - "@babel/plugin-transform-modules-commonjs" "^7.21.2" - "@babel/plugin-transform-modules-systemjs" "^7.20.11" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.21.3" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.20.5" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.20.7" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.21.4" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" - integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-react-display-name" "^7.18.6" - "@babel/plugin-transform-react-jsx" "^7.18.6" - "@babel/plugin-transform-react-jsx-development" "^7.18.6" - "@babel/plugin-transform-react-pure-annotations" "^7.18.6" - -"@babel/preset-typescript@^7.16.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz#b913ac8e6aa8932e47c21b01b4368d8aa239a529" - integrity sha512-sMLNWY37TCdRH/bJ6ZeeOH1nPuanED7Ai9Y/vH31IPqalioJ6ZNFUWONsakhv4r4n+I6gm5lmoE0olkgib/j/A== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-syntax-jsx" "^7.21.4" - "@babel/plugin-transform-modules-commonjs" "^7.21.2" - "@babel/plugin-transform-typescript" "^7.21.3" - -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.20.1", "@babel/runtime@^7.20.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" - integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.7.2": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" - integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q== - dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.4" - "@babel/types" "^7.21.4" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" - integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== - dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" - to-fast-properties "^2.0.0" - -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.2", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" - integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@changesets/apply-release-plan@^6.1.3": - version "6.1.3" - resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-6.1.3.tgz#3bcc0bd57ba00d50d20df7d0141f1a9b2134eaf7" - integrity sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/config" "^2.3.0" - "@changesets/get-version-range-type" "^0.3.2" - "@changesets/git" "^2.0.0" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - detect-indent "^6.0.0" - fs-extra "^7.0.1" - lodash.startcase "^4.4.0" - outdent "^0.5.0" - prettier "^2.7.1" - resolve-from "^5.0.0" - semver "^5.4.1" - -"@changesets/assemble-release-plan@^5.2.3": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-5.2.3.tgz#5ce6191c6e193d40b566a7b0e01690cfb106f4db" - integrity sha512-g7EVZCmnWz3zMBAdrcKhid4hkHT+Ft1n0mLussFMcB1dE2zCuwcvGoy9ec3yOgPGF4hoMtgHaMIk3T3TBdvU9g== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.5" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - semver "^5.4.1" - -"@changesets/changelog-git@^0.1.14": - version "0.1.14" - resolved "https://registry.yarnpkg.com/@changesets/changelog-git/-/changelog-git-0.1.14.tgz#852caa7727dcf91497c131d05bc2cd6248532ada" - integrity sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA== - dependencies: - "@changesets/types" "^5.2.1" - -"@changesets/cli@^2.25.2": - version "2.26.1" - resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.26.1.tgz#2d10858d7d32314a524e383111c96d831eb0402f" - integrity sha512-XnTa+b51vt057fyAudvDKGB0Sh72xutQZNAdXkCqPBKO2zvs2yYZx5hFZj1u9cbtpwM6Sxtcr02/FQJfZOzemQ== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/apply-release-plan" "^6.1.3" - "@changesets/assemble-release-plan" "^5.2.3" - "@changesets/changelog-git" "^0.1.14" - "@changesets/config" "^2.3.0" - "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.5" - "@changesets/get-release-plan" "^3.0.16" - "@changesets/git" "^2.0.0" - "@changesets/logger" "^0.0.5" - "@changesets/pre" "^1.0.14" - "@changesets/read" "^0.5.9" - "@changesets/types" "^5.2.1" - "@changesets/write" "^0.2.3" - "@manypkg/get-packages" "^1.1.3" - "@types/is-ci" "^3.0.0" - "@types/semver" "^6.0.0" - ansi-colors "^4.1.3" - chalk "^2.1.0" - enquirer "^2.3.0" - external-editor "^3.1.0" - fs-extra "^7.0.1" - human-id "^1.0.2" - is-ci "^3.0.1" - meow "^6.0.0" - outdent "^0.5.0" - p-limit "^2.2.0" - preferred-pm "^3.0.0" - resolve-from "^5.0.0" - semver "^5.4.1" - spawndamnit "^2.0.0" - term-size "^2.1.0" - tty-table "^4.1.5" - -"@changesets/config@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@changesets/config/-/config-2.3.0.tgz#bff074d6492fa772cee139f9a04efa4cd56445bb" - integrity sha512-EgP/px6mhCx8QeaMAvWtRrgyxW08k/Bx2tpGT+M84jEdX37v3VKfh4Cz1BkwrYKuMV2HZKeHOh8sHvja/HcXfQ== - dependencies: - "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.5" - "@changesets/logger" "^0.0.5" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - fs-extra "^7.0.1" - micromatch "^4.0.2" - -"@changesets/errors@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@changesets/errors/-/errors-0.1.4.tgz#f79851746c43679a66b383fdff4c012f480f480d" - integrity sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q== - dependencies: - extendable-error "^0.1.5" - -"@changesets/get-dependents-graph@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@changesets/get-dependents-graph/-/get-dependents-graph-1.3.5.tgz#f94c6672d2f9a87aa35512eea74550585ba41c21" - integrity sha512-w1eEvnWlbVDIY8mWXqWuYE9oKhvIaBhzqzo4ITSJY9hgoqQ3RoBqwlcAzg11qHxv/b8ReDWnMrpjpKrW6m1ZTA== - dependencies: - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - chalk "^2.1.0" - fs-extra "^7.0.1" - semver "^5.4.1" - -"@changesets/get-release-plan@^3.0.16": - version "3.0.16" - resolved "https://registry.yarnpkg.com/@changesets/get-release-plan/-/get-release-plan-3.0.16.tgz#5d9cfc4ffda02c496ef0fde407210de8e3a0fb19" - integrity sha512-OpP9QILpBp1bY2YNIKFzwigKh7Qe9KizRsZomzLe6pK8IUo8onkAAVUD8+JRKSr8R7d4+JRuQrfSSNlEwKyPYg== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/assemble-release-plan" "^5.2.3" - "@changesets/config" "^2.3.0" - "@changesets/pre" "^1.0.14" - "@changesets/read" "^0.5.9" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - -"@changesets/get-version-range-type@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz#8131a99035edd11aa7a44c341cbb05e668618c67" - integrity sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg== - -"@changesets/git@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@changesets/git/-/git-2.0.0.tgz#8de57649baf13a86eb669a25fa51bcad5cea517f" - integrity sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/errors" "^0.1.4" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - is-subdir "^1.1.1" - micromatch "^4.0.2" - spawndamnit "^2.0.0" - -"@changesets/logger@^0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@changesets/logger/-/logger-0.0.5.tgz#68305dd5a643e336be16a2369cb17cdd8ed37d4c" - integrity sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw== - dependencies: - chalk "^2.1.0" - -"@changesets/parse@^0.3.16": - version "0.3.16" - resolved "https://registry.yarnpkg.com/@changesets/parse/-/parse-0.3.16.tgz#f8337b70aeb476dc81745ab3294022909bc4a84a" - integrity sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg== - dependencies: - "@changesets/types" "^5.2.1" - js-yaml "^3.13.1" - -"@changesets/pre@^1.0.14": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@changesets/pre/-/pre-1.0.14.tgz#9df73999a4d15804da7381358d77bb37b00ddf0f" - integrity sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/errors" "^0.1.4" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - fs-extra "^7.0.1" - -"@changesets/read@^0.5.9": - version "0.5.9" - resolved "https://registry.yarnpkg.com/@changesets/read/-/read-0.5.9.tgz#a1b63a82b8e9409738d7a0f9cc39b6d7c28cbab0" - integrity sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/git" "^2.0.0" - "@changesets/logger" "^0.0.5" - "@changesets/parse" "^0.3.16" - "@changesets/types" "^5.2.1" - chalk "^2.1.0" - fs-extra "^7.0.1" - p-filter "^2.1.0" - -"@changesets/types@^4.0.1": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@changesets/types/-/types-4.1.0.tgz#fb8f7ca2324fd54954824e864f9a61a82cb78fe0" - integrity sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== - -"@changesets/types@^5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@changesets/types/-/types-5.2.1.tgz#a228c48004aa8a93bce4be2d1d31527ef3bf21f6" - integrity sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg== - -"@changesets/write@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@changesets/write/-/write-0.2.3.tgz#baf6be8ada2a67b9aba608e251bfea4fdc40bc63" - integrity sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/types" "^5.2.1" - fs-extra "^7.0.1" - human-id "^1.0.2" - prettier "^2.7.1" - -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@csstools/normalize.css@*": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4" - integrity sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg== - -"@csstools/postcss-cascade-layers@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" - integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== - dependencies: - "@csstools/selector-specificity" "^2.0.2" - postcss-selector-parser "^6.0.10" - -"@csstools/postcss-color-function@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" - integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -"@csstools/postcss-font-format-keywords@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" - integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-hwb-function@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" - integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-ic-unit@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" - integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -"@csstools/postcss-is-pseudo-class@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" - integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== - dependencies: - "@csstools/selector-specificity" "^2.0.0" - postcss-selector-parser "^6.0.10" - -"@csstools/postcss-nested-calc@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" - integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-normalize-display-values@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" - integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-oklab-function@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" - integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" - integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-stepped-value-functions@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" - integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-text-decoration-shorthand@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" - integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-trigonometric-functions@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" - integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-unset-value@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" - integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== - -"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" - integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== - -"@electron/get@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40" - integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - progress "^2.0.3" - semver "^6.2.0" - sumchecker "^3.0.1" - optionalDependencies: - global-agent "^3.0.0" - global-tunnel-ng "^2.7.1" - -"@esbuild/android-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz#893ad71f3920ccb919e1757c387756a9bca2ef42" - integrity sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA== - -"@esbuild/android-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" - integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== - -"@esbuild/android-arm@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" - integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== - -"@esbuild/android-arm@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.15.tgz#143e0d4e4c08c786ea410b9a7739779a9a1315d8" - integrity sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg== - -"@esbuild/android-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" - integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== - -"@esbuild/android-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.15.tgz#d2d12a7676b2589864281b2274355200916540bc" - integrity sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ== - -"@esbuild/android-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" - integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== - -"@esbuild/darwin-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz#2e88e79f1d327a2a7d9d06397e5232eb0a473d61" - integrity sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA== - -"@esbuild/darwin-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" - integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== - -"@esbuild/darwin-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz#9384e64c0be91388c57be6d3a5eaf1c32a99c91d" - integrity sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg== - -"@esbuild/darwin-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" - integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== - -"@esbuild/freebsd-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz#2ad5a35bc52ebd9ca6b845dbc59ba39647a93c1a" - integrity sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg== - -"@esbuild/freebsd-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" - integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== - -"@esbuild/freebsd-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz#b513a48446f96c75fda5bef470e64d342d4379cd" - integrity sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ== - -"@esbuild/freebsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" - integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== - -"@esbuild/linux-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz#9697b168175bfd41fa9cc4a72dd0d48f24715f31" - integrity sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA== - -"@esbuild/linux-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" - integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== - -"@esbuild/linux-arm@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz#5b22062c54f48cd92fab9ffd993732a52db70cd3" - integrity sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw== - -"@esbuild/linux-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" - integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== - -"@esbuild/linux-ia32@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz#eb28a13f9b60b5189fcc9e98e1024f6b657ba54c" - integrity sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q== - -"@esbuild/linux-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" - integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== - -"@esbuild/linux-loong64@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" - integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== - -"@esbuild/linux-loong64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz#32454bdfe144cf74b77895a8ad21a15cb81cfbe5" - integrity sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ== - -"@esbuild/linux-loong64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" - integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== - -"@esbuild/linux-mips64el@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz#af12bde0d775a318fad90eb13a0455229a63987c" - integrity sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ== - -"@esbuild/linux-mips64el@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" - integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== - -"@esbuild/linux-ppc64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz#34c5ed145b2dfc493d3e652abac8bd3baa3865a5" - integrity sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg== - -"@esbuild/linux-ppc64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" - integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== - -"@esbuild/linux-riscv64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz#87bd515e837f2eb004b45f9e6a94dc5b93f22b92" - integrity sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA== - -"@esbuild/linux-riscv64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" - integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== - -"@esbuild/linux-s390x@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz#20bf7947197f199ddac2ec412029a414ceae3aa3" - integrity sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg== - -"@esbuild/linux-s390x@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" - integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== - -"@esbuild/linux-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz#31b93f9c94c195e852c20cd3d1914a68aa619124" - integrity sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg== - -"@esbuild/linux-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" - integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== - -"@esbuild/netbsd-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz#8da299b3ac6875836ca8cdc1925826498069ac65" - integrity sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA== - -"@esbuild/netbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" - integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== - -"@esbuild/openbsd-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz#04a1ec3d4e919714dba68dcf09eeb1228ad0d20c" - integrity sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w== - -"@esbuild/openbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" - integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== - -"@esbuild/sunos-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz#6694ebe4e16e5cd7dab6505ff7c28f9c1c695ce5" - integrity sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ== - -"@esbuild/sunos-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" - integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== - -"@esbuild/win32-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz#1f95b2564193c8d1fee8f8129a0609728171d500" - integrity sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q== - -"@esbuild/win32-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" - integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== - -"@esbuild/win32-ia32@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz#c362b88b3df21916ed7bcf75c6d09c6bf3ae354a" - integrity sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w== - -"@esbuild/win32-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" - integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== - -"@esbuild/win32-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz#c2e737f3a201ebff8e2ac2b8e9f246b397ad19b8" - integrity sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA== - -"@esbuild/win32-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" - integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz#f6f729b02feee2c749f57e334b7a1b5f40a81724" - integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== - -"@eslint/eslintrc@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" - integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.1" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.37.0": - version "8.37.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" - integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== - -"@graphql-tools/merge@8.3.1": - version "8.3.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.1.tgz#06121942ad28982a14635dbc87b5d488a041d722" - integrity sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg== - dependencies: - "@graphql-tools/utils" "8.9.0" - tslib "^2.4.0" - -"@graphql-tools/merge@8.4.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.0.tgz#47fbe5c4b6764276dc35bd19c4e7d3c46d3dc0fc" - integrity sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA== - dependencies: - "@graphql-tools/utils" "9.2.1" - tslib "^2.4.0" - -"@graphql-tools/mock@^8.1.2": - version "8.7.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.19.tgz#b6c01ecc44074a01d6f472213de5f56fe0a3380c" - integrity sha512-LT2boYM+Y1vGFEhzmC7xDFRL8RPG20FbNcuk2/hHGH0Kh8K1hkItvL89tul3Pl7N6xerOnDZ3c3fx7Ls5GuFxA== - dependencies: - "@graphql-tools/schema" "9.0.17" - "@graphql-tools/utils" "9.2.1" - fast-json-stable-stringify "^2.1.0" - tslib "^2.4.0" - -"@graphql-tools/schema@9.0.17": - version "9.0.17" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.17.tgz#d731e9899465f88d5b9bf69e607ec465bb88b062" - integrity sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng== - dependencies: - "@graphql-tools/merge" "8.4.0" - "@graphql-tools/utils" "9.2.1" - tslib "^2.4.0" - value-or-promise "1.0.12" - -"@graphql-tools/schema@^8.0.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" - integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg== - dependencies: - "@graphql-tools/merge" "8.3.1" - "@graphql-tools/utils" "8.9.0" - tslib "^2.4.0" - value-or-promise "1.0.11" - -"@graphql-tools/utils@8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7" - integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== - dependencies: - tslib "^2.4.0" - -"@graphql-tools/utils@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" - integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - tslib "^2.4.0" - -"@graphql-typed-document-node/core@^3.1.1": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" - integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== - -"@holochain/client@0.12.5": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" - integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/client@perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b": - version "0.12.5" - resolved "https://codeload.github.com/perspect3vism/holochain-client-js/tar.gz/2f3a436b6d28344b0aca883ef3dc229cd042c04b" - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/serialization@^0.1.0-beta-rc.3": - version "0.1.0-beta-rc.3" - resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" - integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== - -"@honkit/asciidoc@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@honkit/asciidoc/-/asciidoc-4.0.7.tgz#7e6deb19c91ccf6e4177c215652919e53f081d96" - integrity sha512-YgIInbeGtuhvKO4cUhJ9q5g8iNkbwEL/U4suwP1uC9sZXFfYzXg+Vt2zPPx47A+Nj0cirdrbbh1fJhQWJIgm8A== - dependencies: - "@honkit/html" "^4.0.7" - asciidoctor "^2.2.0" - lodash "^4.13.1" - -"@honkit/honkit-plugin-highlight@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-4.0.7.tgz#d54911155167bd2bcd79442b9548737e5d4c636c" - integrity sha512-VeXVJ2orU4F2V8ncf3bGNnPFzuS8+IV5NdHNW4C3Nt9+MoB6cp7lAoi95+ZuYC9T4iIVkfBtXFA/tCivEAjfgg== - dependencies: - highlight.js "^10.7.1" - -"@honkit/honkit-plugin-theme-default@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-4.0.7.tgz#758360e3a1bda6db306b32e1db6959247bce3400" - integrity sha512-C/4WLD26p8f7gDTR6R60lPL6CJys+1/z7o6wUd5qEUya3Xu/YjiZmNviIyw99C5RUu4X7YutVvMijGTwC1izgA== - -"@honkit/html@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@honkit/html/-/html-4.0.7.tgz#e22f04d270f225abf68a80215ba4e6491f0d9f07" - integrity sha512-8f3VqAwJqxSmmaiS7tDQpTMNwssXSW6s09AeLstOI8qhyCGf0ajpbfgQ1WrqY4duu6yqaZrubY8o9U7eSgxnVg== - dependencies: - cheerio "^1.0.0-rc.12" - lodash "^4.13.1" - q "^1.1.2" - -"@honkit/markdown-legacy@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@honkit/markdown-legacy/-/markdown-legacy-4.0.7.tgz#87c62f1df4579fbfa2881ae5db42adfcae950c73" - integrity sha512-wg+ErBy0Mk5Je6VVSbFoSwSvHNSstAzJnKiem1wR9nbrF21M5Ip4mLDZRsuuSPi0HOTFz3AhZMJC+ch+chIIEA== - dependencies: - "@honkit/html" "^4.0.7" - kramed "0.5.6" - lodash "^4.13.1" - -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" - slash "^3.0.0" - -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - -"@jest/console@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" - integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - slash "^3.0.0" - -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/core@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" - integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/reporters" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^27.5.1" - jest-config "^27.5.1" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-resolve-dependencies "^27.5.1" - jest-runner "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - jest-watcher "^27.5.1" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== - dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - -"@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" - integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== - dependencies: - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - -"@jest/expect-utils@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" - integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== - dependencies: - jest-get-type "^29.4.3" - -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== - dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" - "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -"@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" - integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== - dependencies: - "@jest/types" "^27.5.1" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" - -"@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" - integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/types" "^27.5.1" - expect "^27.5.1" - -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" - -"@jest/reporters@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" - integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-haste-map "^27.5.1" - jest-resolve "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/schemas@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" - integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" - integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== - dependencies: - "@sinclair/typebox" "^0.25.16" - -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" - integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.9" - source-map "^0.6.0" - -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== - dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-result@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" - integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== - dependencies: - "@jest/console" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== - dependencies: - "@jest/test-result" "^26.6.2" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - -"@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" - integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== - dependencies: - "@jest/test-result" "^27.5.1" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" - -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jest/types@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" - integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== - dependencies: - "@jest/schemas" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jest/types@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" - integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== - dependencies: - "@jest/schemas" "^29.4.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@josephg/resolvable@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" - integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@jspm/core@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@jspm/core/-/core-2.0.1.tgz#3f08c59c60a5f5e994523ed6b0b665ec80adc94e" - integrity sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw== - -"@junto-foundation/junto-elements@^0.5.5": - version "0.5.5" - resolved "https://registry.yarnpkg.com/@junto-foundation/junto-elements/-/junto-elements-0.5.5.tgz#525b254faee09fed9fdb4a89c2dc38285e913672" - integrity sha512-t1B2m8Yg+s92Q/W/Q3qxBcLwtzxMzVRfqovLagrWHqEVwmfFx0zJQm25qFnfkzBxeZonVjibCG6mUoexZ2cjUQ== - dependencies: - "@popperjs/core" "^2.9.2" - construct-style-sheets-polyfill "^3.1.0" - jdenticon "^3.1.0" - lit "^2.0.0-rc.2" - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== - -"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.0.tgz#3361d6b8c4cb2ac426d5794ac7cd9776cd2f0814" - integrity sha512-92uQ5ARf7UXYrzaFcAX3T2rTvaS9Z1//ukV+DqjACM4c8s0ZBQd7ayJU5Dh2AFLD/Ayuyz4uMmxQec8q3U4Ong== - -"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.1.tgz#0d958b6d479d0e3db5fc1132ecc4fa84be3f0b93" - integrity sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA== - dependencies: - "@lit-labs/ssr-dom-shim" "^1.0.0" - -"@manypkg/find-root@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.1.0.tgz#a62d8ed1cd7e7d4c11d9d52a8397460b5d4ad29f" - integrity sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== - dependencies: - "@babel/runtime" "^7.5.5" - "@types/node" "^12.7.1" - find-up "^4.1.0" - fs-extra "^8.1.0" - -"@manypkg/get-packages@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.3.tgz#e184db9bba792fa4693de4658cfb1463ac2c9c47" - integrity sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A== - dependencies: - "@babel/runtime" "^7.5.5" - "@changesets/types" "^4.0.1" - "@manypkg/find-root" "^1.1.0" - fs-extra "^8.1.0" - globby "^11.0.0" - read-yaml-file "^1.1.0" - -"@mattrglobal/bbs-signatures@0.5.0", "@mattrglobal/bbs-signatures@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz#c8e3842a657cabbf7f1e16db06f77c9f84a42f3f" - integrity sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ== - optionalDependencies: - "@mattrglobal/node-bbs-signatures" "0.11.0" - -"@mattrglobal/bls12381-key-pair@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz#dd6014b5b14903d4a280af4286c74d8a97b38410" - integrity sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg== - dependencies: - "@mattrglobal/bbs-signatures" "0.5.0" - bs58 "4.0.1" - rfc4648 "1.4.0" - -"@mattrglobal/node-bbs-signatures@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz#c63ab8648a529cfe1dd855cc78a93f78ee27a9f4" - integrity sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw== - dependencies: - neon-cli "0.4.0" - node-pre-gyp "0.14.0" - -"@msgpack/msgpack@^2.7.2": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" - integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== - -"@next/eslint-plugin-next@12.3.4": - version "12.3.4" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz#e7dc00e2e89ed361f111d687b8534483ec15518b" - integrity sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og== - dependencies: - glob "7.1.7" - -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== - dependencies: - eslint-scope "5.1.1" - -"@noble/secp256k1@^1.7.0": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" - integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@peculiar/asn1-schema@^2.3.6": - version "2.3.6" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" - integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== - dependencies: - asn1js "^3.0.5" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -"@peculiar/json-schema@^1.1.12": - version "1.1.12" - resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" - integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== - dependencies: - tslib "^2.0.0" - -"@peculiar/webcrypto@^1.1.3", "@peculiar/webcrypto@^1.1.6", "@peculiar/webcrypto@^1.1.7": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" - integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== - dependencies: - "@peculiar/asn1-schema" "^2.3.6" - "@peculiar/json-schema" "^1.1.12" - pvtsutils "^1.3.2" - tslib "^2.5.0" - webcrypto-core "^1.7.7" - -"@perspect3vism/rollup-plugin-dna@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@perspect3vism/rollup-plugin-dna/-/rollup-plugin-dna-0.0.2.tgz#d8a1a99677877b3f090f228c3b5937d4f0aa758b" - integrity sha512-+18Prdkzv1dcEzyWIp/DersXHcfpU6rDxDPdXGtfzB/ritepc7ehYSN60E94uNNzuOy7QaK4p2YL3DPPkgsb8g== - -"@pmmmwh/react-refresh-webpack-plugin@^0.5.3": - version "0.5.10" - resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8" - integrity sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA== - dependencies: - ansi-html-community "^0.0.8" - common-path-prefix "^3.0.0" - core-js-pure "^3.23.3" - error-stack-parser "^2.0.6" - find-up "^5.0.0" - html-entities "^2.1.0" - loader-utils "^2.0.4" - schema-utils "^3.0.0" - source-map "^0.7.3" - -"@popperjs/core@^2.9.2": - version "2.11.7" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.7.tgz#ccab5c8f7dc557a52ca3288c10075c9ccd37fff7" - integrity sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw== - -"@preact/preset-vite@^2.4.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@preact/preset-vite/-/preset-vite-2.5.0.tgz#6ff815558c16062a36e2d5da4b1225d7b216478d" - integrity sha512-BUhfB2xQ6ex0yPkrT1Z3LbfPzjpJecOZwQ/xJrXGFSZD84+ObyS//41RdEoQCMWsM0t7UHGaujUxUBub7WM1Jw== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.14.9" - "@babel/plugin-transform-react-jsx-development" "^7.16.7" - "@prefresh/vite" "^2.2.8" - "@rollup/pluginutils" "^4.1.1" - babel-plugin-transform-hook-names "^1.0.2" - debug "^4.3.1" - kolorist "^1.2.10" - resolve "^1.20.0" - -"@prefresh/babel-plugin@0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@prefresh/babel-plugin/-/babel-plugin-0.4.4.tgz#54872f9f938d3adff587037ab987c5e6449bdfee" - integrity sha512-/EvgIFMDL+nd20WNvMO0JQnzIl1EJPgmSaSYrZUww7A+aSdKsi37aL07TljrZR1cBMuzFxcr4xvqsUQLFJEukw== - -"@prefresh/core@^1.3.3": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@prefresh/core/-/core-1.4.1.tgz#b75a917b500e5373aeb9c485f18ca91e1d4433a8" - integrity sha512-og1vaBj3LMJagVncNrDb37Gqc0cWaUcDbpVt5hZtsN4i2Iwzd/5hyTsDHvlMirhSym3wL9ihU0Xa2VhSaOue7g== - -"@prefresh/utils@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@prefresh/utils/-/utils-1.1.3.tgz#c764c6c8f0917f0a72ae14ec57ed8befde3f9bac" - integrity sha512-Mb9abhJTOV4yCfkXrMrcgFiFT7MfNOw8sDa+XyZBdq/Ai2p4Zyxqsb3EgHLOEdHpMj6J9aiZ54W8H6FTam1u+A== - -"@prefresh/vite@^2.2.8", "@prefresh/vite@^2.2.9": - version "2.2.9" - resolved "https://registry.yarnpkg.com/@prefresh/vite/-/vite-2.2.9.tgz#e719126fbba3f0de93f1f95d494ab44d064243c1" - integrity sha512-1ERBF85Ja9/lkrfaltmo4Gca7R2ClQPSHHDDysFgfvPzHmLUeyB0x9WHwhwov/AA1DnyPhsfYT54z3yQd8XrgA== - dependencies: - "@babel/core" "^7.9.6" - "@prefresh/babel-plugin" "0.4.4" - "@prefresh/core" "^1.3.3" - "@prefresh/utils" "^1.1.2" - "@rollup/pluginutils" "^4.1.0" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@remix-run/router@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.5.0.tgz#57618e57942a5f0131374a9fdb0167e25a117fdc" - integrity sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg== - -"@rollup/plugin-alias@^3.1.5": - version "3.1.9" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz#a5d267548fe48441f34be8323fb64d1d4a1b3fdf" - integrity sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw== - dependencies: - slash "^3.0.0" - -"@rollup/plugin-babel@^5.2.0": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" - integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@rollup/pluginutils" "^3.1.0" - -"@rollup/plugin-commonjs@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" - integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - -"@rollup/plugin-commonjs@^17.0.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" - integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== - dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" - -"@rollup/plugin-commonjs@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz#3246872dcbcb18a54aaa6277a8c7d7f1b155b745" - integrity sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg== - dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" - -"@rollup/plugin-json@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - -"@rollup/plugin-node-resolve@^11.2.1": - version "11.2.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" - integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.19.0" - -"@rollup/plugin-node-resolve@^13.0.4": - version "13.3.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz#da1c5c5ce8316cef96a2f823d111c1e4e498801c" - integrity sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - deepmerge "^4.2.2" - is-builtin-module "^3.1.0" - is-module "^1.0.0" - resolve "^1.19.0" - -"@rollup/plugin-node-resolve@^8.0.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - -"@rollup/plugin-replace@^2.4.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" - integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== - dependencies: - "@rollup/pluginutils" "^3.1.0" - magic-string "^0.25.7" - -"@rollup/plugin-typescript@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.0.tgz#4dd2a98475a791200d3e4dd1b8234073ad96c535" - integrity sha512-86flrfE+bSHB69znnTV6kVjkncs2LBMhcTCyxWgRxLyfXfQrxg4UwlAqENnjrrxnSNS/XKCDJCl8EkdFJVHOxw== - dependencies: - "@rollup/pluginutils" "^5.0.1" - resolve "^1.22.1" - -"@rollup/plugin-typescript@^4.0.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-4.1.2.tgz#6f910430276ae3e53a47a12ad65820627e7b6ad9" - integrity sha512-+7UlGat/99e2JbmGNnIauxwEhYLwrL7adO/tSJxUN57xrrS3Ps+ZzYpLCDGPZJ57j+ZJTZLLN89KXW9JMEB+jg== - dependencies: - "@rollup/pluginutils" "^3.0.1" - resolve "^1.14.1" - -"@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@rollup/pluginutils@^4.1.0", "@rollup/pluginutils@^4.1.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" - integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - -"@rollup/pluginutils@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" - integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^2.3.1" - -"@rushstack/eslint-patch@^1.1.0", "@rushstack/eslint-patch@^1.1.3": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" - integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== - -"@samverschueren/stream-to-observable@^0.3.0", "@samverschueren/stream-to-observable@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" - integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== - dependencies: - any-observable "^0.3.0" - -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== - -"@sinclair/typebox@^0.25.16": - version "0.25.24" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" - integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@sindresorhus/is@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" - integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== - -"@sindresorhus/is@^4.0.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - -"@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/commons@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" - integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== - dependencies: - type-detect "4.0.8" - -"@sinonjs/commons@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" - integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== - dependencies: - "@sinonjs/commons" "^2.0.0" - -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@sinonjs/samsam@^8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" - integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== - dependencies: - "@sinonjs/commons" "^2.0.0" - lodash.get "^4.4.2" - type-detect "^4.0.8" - -"@sinonjs/text-encoding@^0.7.1": - version "0.7.2" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" - integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== - -"@stablelib/aead@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" - integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== - -"@stablelib/aes-kw@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz#43f25517f719d69bb995909a5b69a2d9172c2a93" - integrity sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w== - dependencies: - "@stablelib/aes" "^1.0.1" - "@stablelib/binary" "^1.0.1" - "@stablelib/blockcipher" "^1.0.1" - "@stablelib/constant-time" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/aes@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/aes/-/aes-1.0.1.tgz#f2a8aec2cebaf0e69be2b49c7c57b4267867ffa5" - integrity sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/blockcipher" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/binary@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" - integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== - dependencies: - "@stablelib/int" "^1.0.1" - -"@stablelib/blockcipher@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz#535f067d147ecdc9625ccd2b0d129f6d53d563d2" - integrity sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew== - -"@stablelib/bytes@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" - integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== - -"@stablelib/chacha20poly1305@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" - integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== - dependencies: - "@stablelib/aead" "^1.0.1" - "@stablelib/binary" "^1.0.1" - "@stablelib/chacha" "^1.0.1" - "@stablelib/constant-time" "^1.0.1" - "@stablelib/poly1305" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/chacha@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371" - integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/constant-time@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" - integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== - -"@stablelib/ed25519@^1.0.1": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996" - integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== - dependencies: - "@stablelib/random" "^1.0.2" - "@stablelib/sha512" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/hash@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" - integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== - -"@stablelib/int@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" - integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== - -"@stablelib/keyagreement@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" - integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== - dependencies: - "@stablelib/bytes" "^1.0.1" - -"@stablelib/poly1305@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" - integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== - dependencies: - "@stablelib/constant-time" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/random@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" - integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/sha512@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" - integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/wipe@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" - integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== - -"@stablelib/x25519@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" - integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== - dependencies: - "@stablelib/keyagreement" "^1.0.1" - "@stablelib/random" "^1.0.2" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/xchacha20@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz#e98808d1f7d8b20e3ff37c71a3062a2a955d9a8c" - integrity sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/chacha" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/xchacha20poly1305@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz#addcaf30b92dd956f76b3357888e2f91b92e7a61" - integrity sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg== - dependencies: - "@stablelib/aead" "^1.0.1" - "@stablelib/chacha20poly1305" "^1.0.1" - "@stablelib/constant-time" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - "@stablelib/xchacha20" "^1.0.1" - -"@surma/rollup-plugin-off-main-thread@^2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" - integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== - dependencies: - ejs "^3.1.6" - json5 "^2.2.0" - magic-string "^0.25.0" - string.prototype.matchall "^4.0.6" - -"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" - integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== - -"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" - integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== - -"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" - integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== - -"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" - integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== - -"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" - integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== - -"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" - integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== - -"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" - integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== - -"@svgr/babel-plugin-transform-svg-component@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" - integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== - -"@svgr/babel-preset@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" - integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" - "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" - "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" - "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" - "@svgr/babel-plugin-transform-svg-component" "^5.5.0" - -"@svgr/core@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" - integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== - dependencies: - "@svgr/plugin-jsx" "^5.5.0" - camelcase "^6.2.0" - cosmiconfig "^7.0.0" - -"@svgr/hast-util-to-babel-ast@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" - integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== - dependencies: - "@babel/types" "^7.12.6" - -"@svgr/plugin-jsx@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" - integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== - dependencies: - "@babel/core" "^7.12.3" - "@svgr/babel-preset" "^5.5.0" - "@svgr/hast-util-to-babel-ast" "^5.5.0" - svg-parser "^2.0.2" - -"@svgr/plugin-svgo@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" - integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== - dependencies: - cosmiconfig "^7.0.0" - deepmerge "^4.2.2" - svgo "^1.2.2" - -"@svgr/webpack@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" - integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== - dependencies: - "@babel/core" "^7.12.3" - "@babel/plugin-transform-react-constant-elements" "^7.12.1" - "@babel/preset-env" "^7.12.1" - "@babel/preset-react" "^7.12.5" - "@svgr/core" "^5.5.0" - "@svgr/plugin-jsx" "^5.5.0" - "@svgr/plugin-svgo" "^5.5.0" - loader-utils "^2.0.0" - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@szmarczak/http-timer@^4.0.0": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - -"@tauri-apps/api@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" - integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== - -"@tauri-apps/cli-darwin-arm64@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.2.1.tgz#e75d6582f76b6ef33f251f9b559e7692b7892faa" - integrity sha512-WiAxSON52owFI65Whd3NjcKjXdO1zJfafBVZ3v+Y3F2zlXhRPiirXbtefAc3mvN56zDz/pfi018Qb4XesuVzHA== - -"@tauri-apps/cli-darwin-x64@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.2.1.tgz#3fefdb0154d7d804ea1b08fad342abec625b36e4" - integrity sha512-jfumnrn7RYKVtDmHgrQhImoxpqT51bDrO4KxgpIXaYSaf6MdG2JT72dwUovPrURw0JX2Z/Elihq+dYbrsKoV/w== - -"@tauri-apps/cli-linux-arm-gnueabihf@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.2.1.tgz#6f5f403334b840d0085fec38cca4551c5c6b36a6" - integrity sha512-n4p6Ekn6Wa9X/klUGevEGgoWAGApGGsLrJYE4c8bKTbAUfQ9Nyzjh8gK/GDii1dg9oRW0FdXDa6BJa7aEEj9sA== - -"@tauri-apps/cli-linux-arm64-gnu@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.2.1.tgz#d1c536d0fe4819029de9132974bdfb6fa08e55a7" - integrity sha512-oAHkQQGfNCh8pQQHuDzzqt+S5sOj3tiUkySaquR2z/AQEHeDGAMrRGLZwOiDw9Xvu7qxFiF9H0e5OMK7BkncDw== - -"@tauri-apps/cli-linux-arm64-musl@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.2.1.tgz#22dd054d3ae2a923d5f7d3c7f529f48e7113ec19" - integrity sha512-1dEZ5fdFYkMyB1U7ZkDJUlwYwCeqy9Y3vXmtZ6pCxrvgs844s8+RIFDuMU42pTN+lUxfFeQARmv0LpS4eF/QWQ== - -"@tauri-apps/cli-linux-x64-gnu@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.2.1.tgz#bfe23577a46a74699b27714d82162f0ae9280090" - integrity sha512-wkgCD3s5P6tgBPnn0/gDx7MXMx2Hx+jdA+JP8zdCq4cIeYXlxdZG/zXbHb5ldPadNh582lzHiGg+Pmc+wDg2fA== - -"@tauri-apps/cli-linux-x64-musl@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.2.1.tgz#dce7fb0254a1975238bdde5882115b38271ec9b7" - integrity sha512-zD+a+5cSlYVU0ECOojWp71ok/9jE0DJufzb9oky17XIKV/oiOAG60z4OYRe+oqxYS1TcBt+pUa1/2zlu/6SRdA== - -"@tauri-apps/cli-win32-ia32-msvc@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.2.1.tgz#b6cb355f2d85704710c845800a29784536fb7240" - integrity sha512-nEgdRd8czaKL1RQfj946dsfzlk6atmD95Fm7NVTVOe77PFHTS3ztHeWK7X6jirCaOF3h/F7qpJVCU6JMnq2tfA== - -"@tauri-apps/cli-win32-x64-msvc@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.2.1.tgz#b2b431ffed68fab9024d59ac2a2bafb02c5b9a5a" - integrity sha512-ceWiQkmNNRrnfgbLMnndT4QF1IyLK7aOJsMqS/HueshAwmVQWnC1DUE0C58Taetgq38Cavc4gGnZOCHuH6ZuTw== - -"@tauri-apps/cli@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.2.1.tgz#d7f61547915a8b052a92197ac70b8322838c6d2d" - integrity sha512-JrFFT1/4V+AGSRjKdgszZwOr+/a1519LDhNxBkbsIg6D/kFK+3kk1qImaQBY9DvvIWK6IV4whc8OAkgxm+Sl3w== - optionalDependencies: - "@tauri-apps/cli-darwin-arm64" "1.2.1" - "@tauri-apps/cli-darwin-x64" "1.2.1" - "@tauri-apps/cli-linux-arm-gnueabihf" "1.2.1" - "@tauri-apps/cli-linux-arm64-gnu" "1.2.1" - "@tauri-apps/cli-linux-arm64-musl" "1.2.1" - "@tauri-apps/cli-linux-x64-gnu" "1.2.1" - "@tauri-apps/cli-linux-x64-musl" "1.2.1" - "@tauri-apps/cli-win32-ia32-msvc" "1.2.1" - "@tauri-apps/cli-win32-x64-msvc" "1.2.1" - -"@testing-library/dom@^8.0.0": - version "8.20.0" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.0.tgz#914aa862cef0f5e89b98cc48e3445c4c921010f6" - integrity sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^5.0.1" - aria-query "^5.0.0" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.4.4" - pretty-format "^27.0.2" - -"@testing-library/jest-dom@^5.16.2": - version "5.16.5" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" - integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== - dependencies: - "@adobe/css-tools" "^4.0.1" - "@babel/runtime" "^7.9.2" - "@types/testing-library__jest-dom" "^5.9.1" - aria-query "^5.0.0" - chalk "^3.0.0" - css.escape "^1.5.1" - dom-accessibility-api "^0.5.6" - lodash "^4.17.15" - redent "^3.0.0" - -"@testing-library/react@^12.1.4": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" - integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== - dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^8.0.0" - "@types/react-dom" "<18.0.0" - -"@testing-library/user-event@^13.5.0": - version "13.5.0" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295" - integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== - dependencies: - "@babel/runtime" "^7.12.5" - -"@textlint/ast-node-types@^12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-12.6.1.tgz#35ecefe74e701d7f632c083d4fda89cab1b89012" - integrity sha512-uzlJ+ZsCAyJm+lBi7j0UeBbj+Oy6w/VWoGJ3iHRHE5eZ8Z4iK66mq+PG/spupmbllLtz77OJbY89BYqgFyjXmA== - -"@textlint/markdown-to-ast@^12.1.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.1.tgz#fcccb5733b3e76cd0db78a323763ab101f2d803b" - integrity sha512-T0HO+VrU9VbLRiEx/kH4+gwGMHNMIGkp0Pok+p0I33saOOLyhfGvwOKQgvt2qkxzQEV2L5MtGB8EnW4r5d3CqQ== - dependencies: - "@textlint/ast-node-types" "^12.6.1" - debug "^4.3.4" - mdast-util-gfm-autolink-literal "^0.1.3" - remark-footnotes "^3.0.0" - remark-frontmatter "^3.0.0" - remark-gfm "^1.0.0" - remark-parse "^9.0.0" - traverse "^0.6.7" - unified "^9.2.2" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@transmute/did-key-bls12381@^0.2.1-unstable.42": - version "0.2.1-unstable.42" - resolved "https://registry.yarnpkg.com/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz#d2f2252043cf9c1e874acbc7f51fd9f4bcd7707a" - integrity sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ== - dependencies: - "@mattrglobal/bbs-signatures" "^0.5.0" - "@mattrglobal/bls12381-key-pair" "^0.5.0" - base64url "^3.0.1" - bs58 "^4.0.1" - -"@transmute/did-key-cipher@^0.2.1-unstable.42": - version "0.2.1-unstable.42" - resolved "https://registry.yarnpkg.com/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz#355da8523610aed24dbc42fa3db61b1660023bd5" - integrity sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw== - dependencies: - "@peculiar/webcrypto" "^1.1.3" - "@stablelib/aes-kw" "^1.0.0" - "@stablelib/xchacha20poly1305" "^1.0.0" - "@transmute/did-key-common" "^0.2.1-unstable.42" - web-streams-polyfill "^3.0.0" - -"@transmute/did-key-common@^0.2.1-unstable.42": - version "0.2.1-unstable.42" - resolved "https://registry.yarnpkg.com/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz#494b266308b28a41a88cea7fe3697a5474c33bbb" - integrity sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A== - dependencies: - base64url "^3.0.1" - borc "^2.1.2" - canonicalize "^1.0.3" - cbor "^5.1.0" - -"@transmute/did-key-ed25519@^0.2.1-unstable.29", "@transmute/did-key-ed25519@^0.2.1-unstable.42": - version "0.2.1-unstable.42" - resolved "https://registry.yarnpkg.com/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz#b319eea9991f3ed092c221fee69bbe1edd71d8a1" - integrity sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw== - dependencies: - "@stablelib/ed25519" "^1.0.1" - "@transmute/did-key-common" "^0.2.1-unstable.42" - "@transmute/did-key-x25519" "^0.2.1-unstable.42" - "@trust/keyto" "^1.0.1" - base64url "^3.0.1" - bs58 "^4.0.1" - canonicalize "^1.0.1" - -"@transmute/did-key-secp256k1@^0.2.1-unstable.29", "@transmute/did-key-secp256k1@^0.2.1-unstable.42": - version "0.2.1-unstable.42" - resolved "https://registry.yarnpkg.com/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz#619a2bcc10c53adb831930610f1c49f5ec771261" - integrity sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ== - dependencies: - "@transmute/did-key-common" "^0.2.1-unstable.42" - "@trust/keyto" "^1.0.1" - base64url "^3.0.1" - bs58 "^4.0.1" - canonicalize "^1.0.1" - secp256k1 "^4.0.1" - -"@transmute/did-key-web-crypto@^0.2.1-unstable.42": - version "0.2.1-unstable.42" - resolved "https://registry.yarnpkg.com/@transmute/did-key-web-crypto/-/did-key-web-crypto-0.2.1-unstable.42.tgz#3f400bff3019ec722bf6047136436065bd051eaa" - integrity sha512-GaD320cZxPJAVdQtSrxgTn91T1M/2qwSMQgowVdnY5HKEik2BS3o1kU7DYAJpUPdU2WNKg9W3Rr+C/dRY0Q0rQ== - dependencies: - "@transmute/web-crypto-key-pair" "^0.6.1-unstable.18" - -"@transmute/did-key-x25519@^0.2.1-unstable.42": - version "0.2.1-unstable.42" - resolved "https://registry.yarnpkg.com/@transmute/did-key-x25519/-/did-key-x25519-0.2.1-unstable.42.tgz#752d1ec8b55ae4804866e982aec838e4a2d12b18" - integrity sha512-pInHZaepvjmfym1fBDrdbL5isUVbYHR1nYBsH3uD9EPn7SwZfEBe0Vg9hUop81b4x/6+VVWuGm2dIhpVBxsRPQ== - dependencies: - "@stablelib/ed25519" "^1.0.1" - "@stablelib/x25519" "^1.0.0" - "@transmute/did-key-cipher" "^0.2.1-unstable.42" - "@transmute/did-key-common" "^0.2.1-unstable.42" - "@trust/keyto" "^1.0.1" - base64url "^3.0.1" - bs58 "^4.0.1" - canonicalize "^1.0.1" - -"@transmute/did-key.js@^0.2.1-unstable.29": - version "0.2.1-unstable.42" - resolved "https://registry.yarnpkg.com/@transmute/did-key.js/-/did-key.js-0.2.1-unstable.42.tgz#f919e3371df8fa90ae1ccc52b1afcb7f6a2268ef" - integrity sha512-vqwkJeAIkpekSCszKztIOVGFuWZMF8GJfiSHMv+vsS0cgLqzHer8WCUCudWt76rc2s90uK7FdlkvdwoZgGRl6g== - dependencies: - "@transmute/did-key-bls12381" "^0.2.1-unstable.42" - "@transmute/did-key-ed25519" "^0.2.1-unstable.42" - "@transmute/did-key-secp256k1" "^0.2.1-unstable.42" - "@transmute/did-key-web-crypto" "^0.2.1-unstable.42" - "@transmute/did-key-x25519" "^0.2.1-unstable.42" - -"@transmute/did-wallet@lucksus/did-wallet": - version "0.0.0-6" - resolved "https://codeload.github.com/lucksus/did-wallet/tar.gz/cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2" - dependencies: - base64url "^3.0.1" - jsonschema "^1.2.4" - lodash "^4.17.11" - -"@transmute/ld-key-pair@^0.6.1-unstable.37": - version "0.6.1-unstable.37" - resolved "https://registry.yarnpkg.com/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz#ffe8af071b4ea991a49c795724b93999f4e6c8af" - integrity sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ== - -"@transmute/web-crypto-key-pair@^0.6.1-unstable.18": - version "0.6.1-unstable.37" - resolved "https://registry.yarnpkg.com/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.6.1-unstable.37.tgz#02c70d017b69c79d040965df546c06ae32311733" - integrity sha512-BVN5ECm3t5ldJiyixsdoXaptr14p2PxOOGWvyBm5eqWlVy/kiWQiVh43wZgEbHtjOkacTfw+BaVAtYkyGn2tpw== - dependencies: - "@peculiar/webcrypto" "^1.1.6" - "@transmute/ld-key-pair" "^0.6.1-unstable.37" - big-integer "^1.6.48" - -"@trust/keyto@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@trust/keyto/-/keyto-1.0.1.tgz#60fdea0a6049c04161a2a011772d6294edd7cd53" - integrity sha512-OXTmKkrnkwktCX86XA7eWs1TQ6u64enm0syzAfNhjigbuGLy5aLhbhRYWtjt4zzdG/irWudluheRZ9Ic9pCwsA== - dependencies: - asn1.js "^5.2.0" - base64url "^3.0.1" - elliptic "^6.5.2" - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== - -"@tsconfig/svelte@^1.0.0": - version "1.0.13" - resolved "https://registry.yarnpkg.com/@tsconfig/svelte/-/svelte-1.0.13.tgz#2fa34376627192c0d643ce54964915e2bd3a58e4" - integrity sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA== - -"@types/accepts@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" - integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== - dependencies: - "@types/node" "*" - -"@types/aria-query@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" - integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" - integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" - integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== - dependencies: - "@babel/types" "^7.3.0" - -"@types/bn.js@*": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== - dependencies: - "@types/node" "*" - -"@types/body-parser@*", "@types/body-parser@1.19.2": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== - dependencies: - "@types/node" "*" - -"@types/cacheable-request@^6.0.1": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" - integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "^3.1.4" - "@types/node" "*" - "@types/responselike" "^1.0.0" - -"@types/chai-as-promised@*": - version "7.1.5" - resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz#6e016811f6c7a64f2eed823191c3a6955094e255" - integrity sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ== - dependencies: - "@types/chai" "*" - -"@types/chai@*": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== - -"@types/connect-history-api-fallback@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/cors@2.8.12": - version "2.8.12" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== - -"@types/elliptic@^6.4.9": - version "6.4.14" - resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.14.tgz#7bbaad60567a588c1f08b10893453e6b9b4de48e" - integrity sha512-z4OBcDAU0GVwDTuwJzQCiL6188QvZMkvoERgcVjq0/mPM8jCfdwZ3x5zQEVoL9WCAru3aG5wl3Z5Ww5wBWn7ZQ== - dependencies: - "@types/bn.js" "*" - -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.37.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.37.0.tgz#29cebc6c2a3ac7fea7113207bf5a828fdf4d7ef1" - integrity sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/expect@*": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@types/expect/-/expect-24.3.0.tgz#d7cab8b3c10c2d92a0cbb31981feceb81d3486f1" - integrity sha512-aq5Z+YFBz5o2b6Sp1jigx5nsmoZMK5Ceurjwy6PZmRv7dEi1jLtkARfvB1ME+OXJUG+7TZUDcv3WoCr/aor6dQ== - dependencies: - expect "*" - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.33": - version "4.17.33" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" - integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express-serve-static-core@4.17.31": - version "4.17.31" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" - integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14", "@types/express@^4.17.8": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/express@4.17.14": - version "4.17.14" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/faker@^5.5.7": - version "5.5.9" - resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" - integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== - -"@types/fs-extra@^9.0.12", "@types/fs-extra@^9.0.13": - version "9.0.13" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" - integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== - dependencies: - "@types/node" "*" - -"@types/glob@^7.1.3": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/graceful-fs@^4.1.2": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== - dependencies: - "@types/node" "*" - -"@types/html-minifier-terser@^6.0.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" - integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== - -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - -"@types/http-proxy@^1.17.8": - version "1.17.10" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.10.tgz#e576c8e4a0cc5c6a138819025a88e167ebb38d6c" - integrity sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g== - dependencies: - "@types/node" "*" - -"@types/is-ci@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/is-ci/-/is-ci-3.0.0.tgz#7e8910af6857601315592436f030aaa3ed9783c3" - integrity sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ== - dependencies: - ci-info "^3.1.0" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@*": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.0.tgz#337b90bbcfe42158f39c2fb5619ad044bbb518ac" - integrity sha512-3Emr5VOl/aoBwnWcH/EFQvlSAmjV+XtV9GGu5mwdYew5vhQh0IUZx/60x0TzHDu09Bi7HMx10t/namdJw5QIcg== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - -"@types/jest@^26.0.14": - version "26.0.24" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" - integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== - dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" - -"@types/jest@^27.4.1": - version "27.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c" - integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== - dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" - -"@types/js-yaml@^4.0.2": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" - integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== - -"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/json-stable-stringify@^1.0.33": - version "1.0.34" - resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" - integrity sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/keyv@^3.1.1", "@types/keyv@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" - integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== - dependencies: - "@types/node" "*" - -"@types/linkify-it@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9" - integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== - -"@types/lodash@*": - version "4.14.192" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.192.tgz#5790406361a2852d332d41635d927f1600811285" - integrity sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A== - -"@types/long@^4.0.0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/lowdb@^1.0.11": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@types/lowdb/-/lowdb-1.0.11.tgz#d8336a635ea0dbd48a7f6f62fb9fccc5ec358ae3" - integrity sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg== - dependencies: - "@types/lodash" "*" - -"@types/markdown-it@^12.2.3": - version "12.2.3" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" - integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== - dependencies: - "@types/linkify-it" "*" - "@types/mdurl" "*" - -"@types/mdast@^3.0.0": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.11.tgz#dc130f7e7d9306124286f6d6cee40cf4d14a3dc0" - integrity sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw== - dependencies: - "@types/unist" "*" - -"@types/mdurl@*": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" - integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/mocha@*", "@types/mocha@^10.0.0": - version "10.0.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" - integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== - -"@types/node-fetch@^2.5.11", "@types/node-fetch@^2.6.1": - version "2.6.3" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.3.tgz#175d977f5e24d93ad0f57602693c435c57ad7e80" - integrity sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node@*", "@types/node@>=6", "@types/node@^18.0.0": - version "18.15.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" - integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== - -"@types/node@^10.1.0": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - -"@types/node@^12.7.1": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/node@^14.11.2", "@types/node@^14.14.22": - version "14.18.42" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.42.tgz#fa39b2dc8e0eba61bdf51c66502f84e23b66e114" - integrity sha512-xefu+RBie4xWlK8hwAzGh3npDz/4VhF6icY/shU+zv/1fNn+ZVG7T7CRwe9LId9sAYRPxI+59QBPuKL3WpyGRg== - -"@types/node@^16.11.26": - version "16.18.23" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.23.tgz#b6e934fe427eb7081d0015aad070acb3373c3c90" - integrity sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/prettier@^2.0.0", "@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== - -"@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - -"@types/pug@^2.0.4": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6" - integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== - -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/react-dom@<18.0.0": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.19.tgz#36feef3aa35d045cacd5ed60fe0eef5272f19492" - integrity sha512-PiYG40pnQRdPHnlf7tZnp0aQ6q9tspYr72vD61saO6zFCybLfMqwUCN0va1/P+86DXn18ZWeW30Bk7xlC5eEAQ== - dependencies: - "@types/react" "^17" - -"@types/react-dom@^18.0.9": - version "18.0.11" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" - integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== - dependencies: - "@types/react" "*" - -"@types/react@*": - version "18.0.33" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.33.tgz#a1575160cb4376787c2f5fe0312302f824baa61e" - integrity sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^17", "@types/react@^17.0.40": - version "17.0.56" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.56.tgz#16f54a0b0a4820065b8296f1dd6da80791fcf964" - integrity sha512-Z13f9Qz7Hg8f2g2NsBjiJSVWmON2b3K8RIqFK8mMKCIgvD0CD0ZChTukz87H3lI28X3ukXoNFGzo3ZW1ICTtPA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== - -"@types/sass@^1.16.0": - version "1.45.0" - resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.45.0.tgz#a949eb1e080ff34715e6c2040357b940bffb89bb" - integrity sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA== - dependencies: - sass "*" - -"@types/scheduler@*": - version "0.16.3" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" - integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== - -"@types/secp256k1@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" - integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== - dependencies: - "@types/node" "*" - -"@types/semver@^6.0.0": - version "6.2.3" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-6.2.3.tgz#5798ecf1bec94eaa64db39ee52808ec0693315aa" - integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== - -"@types/semver@^7.3.12", "@types/semver@^7.3.3": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== - -"@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.1" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" - integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== - dependencies: - "@types/mime" "*" - "@types/node" "*" - -"@types/sha256@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@types/sha256/-/sha256-0.2.0.tgz#e91194d70f4eb67f08812e847feecf5146f4afdd" - integrity sha512-QYMr6HuxTQunFWRLZpGopbkgQFoFWOmKTBGgNSYiWMqU/CWnQSTo3edyHvgsRXsOWtOSOG/cmDptPzgCeOsQGw== - dependencies: - "@types/node" "*" - -"@types/sinon@*": - version "10.0.13" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.13.tgz#60a7a87a70d9372d0b7b38cc03e825f46981fb83" - integrity sha512-UVjDqJblVNQYvVNUsj0PuYYw0ELRmgt1Nt5Vk0pT5f16ROGfcKJY8o1HVuMOJOpD727RrGB9EGvoaTQE5tgxZQ== - dependencies: - "@types/sinonjs__fake-timers" "*" - -"@types/sinonjs__fake-timers@*": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e" - integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA== - -"@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== - dependencies: - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/testing-library__jest-dom@^5.9.1": - version "5.14.5" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" - integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ== - dependencies: - "@types/jest" "*" - -"@types/trusted-types@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" - integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== - -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - -"@types/unzipper@^0.10.5": - version "0.10.5" - resolved "https://registry.yarnpkg.com/@types/unzipper/-/unzipper-0.10.5.tgz#36a963cf025162b4ac31642590cb4192971d633b" - integrity sha512-NrLJb29AdnBARpg9S/4ktfPEisbJ0AvaaAr3j7Q1tg8AgcEUsq2HqbNzvgLRoWyRtjzeLEv7vuL39u1mrNIyNA== - dependencies: - "@types/node" "*" - -"@types/uuid@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" - integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== - -"@types/uuid@^8.3.1", "@types/uuid@^8.3.2": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@8.5.4", "@types/ws@^8.5.1": - version "8.5.4" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" - integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== - dependencies: - "@types/node" "*" - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^15.0.0": - version "15.0.15" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.15.tgz#e609a2b1ef9e05d90489c2f5f45bbfb2be092158" - integrity sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^16.0.0": - version "16.0.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.5.tgz#12cc86393985735a283e387936398c2f9e5f88e3" - integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== - dependencies: - "@types/yargs-parser" "*" - -"@types/yauzl@^2.9.1": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" - integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== - dependencies: - "@types/node" "*" - -"@types/zen-observable@^0.8.0": - version "0.8.3" - resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" - integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== - -"@typescript-eslint/eslint-plugin@^5.5.0": - version "5.57.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.1.tgz#d1ab162a3cd2671b8a1c9ddf6e2db73b14439735" - integrity sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.57.1" - "@typescript-eslint/type-utils" "5.57.1" - "@typescript-eslint/utils" "5.57.1" - debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/experimental-utils@^5.0.0": - version "5.57.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.57.1.tgz#da521391f16379b396896b120919c63f24fa78c2" - integrity sha512-5F5s8mpM1Y0RQ5iWzKQPQm5cmhARgcMfUwyHX1ZZFL8Tm0PyzyQ+9jgYSMaW74XXvpDg9/KdmMICLlwNwKtO7w== - dependencies: - "@typescript-eslint/utils" "5.57.1" - -"@typescript-eslint/parser@^5.21.0", "@typescript-eslint/parser@^5.5.0": - version "5.57.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.57.1.tgz#af911234bd4401d09668c5faf708a0570a17a748" - integrity sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA== - dependencies: - "@typescript-eslint/scope-manager" "5.57.1" - "@typescript-eslint/types" "5.57.1" - "@typescript-eslint/typescript-estree" "5.57.1" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.57.1": - version "5.57.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.57.1.tgz#5d28799c0fc8b501a29ba1749d827800ef22d710" - integrity sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw== - dependencies: - "@typescript-eslint/types" "5.57.1" - "@typescript-eslint/visitor-keys" "5.57.1" - -"@typescript-eslint/type-utils@5.57.1": - version "5.57.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.57.1.tgz#235daba621d3f882b8488040597b33777c74bbe9" - integrity sha512-/RIPQyx60Pt6ga86hKXesXkJ2WOS4UemFrmmq/7eOyiYjYv/MUSHPlkhU6k9T9W1ytnTJueqASW+wOmW4KrViw== - dependencies: - "@typescript-eslint/typescript-estree" "5.57.1" - "@typescript-eslint/utils" "5.57.1" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.57.1": - version "5.57.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.57.1.tgz#d9989c7a9025897ea6f0550b7036027f69e8a603" - integrity sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA== - -"@typescript-eslint/typescript-estree@5.57.1": - version "5.57.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.1.tgz#10d9643e503afc1ca4f5553d9bbe672ea4050b71" - integrity sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw== - dependencies: - "@typescript-eslint/types" "5.57.1" - "@typescript-eslint/visitor-keys" "5.57.1" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.57.1", "@typescript-eslint/utils@^5.43.0": - version "5.57.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.57.1.tgz#0f97b0bbd88c2d5e2036869f26466be5f4c69475" - integrity sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.57.1" - "@typescript-eslint/types" "5.57.1" - "@typescript-eslint/typescript-estree" "5.57.1" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.57.1": - version "5.57.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.1.tgz#585e5fa42a9bbcd9065f334fd7c8a4ddfa7d905e" - integrity sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA== - dependencies: - "@typescript-eslint/types" "5.57.1" - eslint-visitor-keys "^3.3.0" - -"@undecaf/barcode-detector-polyfill@^0.9.15": - version "0.9.15" - resolved "https://registry.yarnpkg.com/@undecaf/barcode-detector-polyfill/-/barcode-detector-polyfill-0.9.15.tgz#f19535553ff946054c550d7557df94137c934e73" - integrity sha512-uJSjIbXxWujOFVjZLjBXwENY5zA+15uKSN3/V+5F1gov1eM+HkpdCC9oy8jN3viY/JwLKv2zsAq4wr9V/jiomw== - dependencies: - "@undecaf/zbar-wasm" "^0.9.12" - -"@undecaf/zbar-wasm@^0.9.12": - version "0.9.12" - resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.12.tgz#158ebf73d6a82112e0eea749a54f77b3857304c7" - integrity sha512-r580a4yNDEJFCayS+t4ibDjPNVLI60zo5045XuUgVQAbAzOfyAlEiwvr1PjYehOrS97rHoPk5hcMNP2n2WUu/w== - -"@vercel/ncc@^0.33.1": - version "0.33.4" - resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.33.4.tgz#e44a87511f583b7ba88e4b9ae90eeb7ba252b872" - integrity sha512-ln18hs7dMffelP47tpkaR+V5Tj6coykNyxJrlcmCormPqRQjB/Gv4cu2FfBG+PMzIfdZp2CLDsrrB1NPU22Qhg== - -"@vitejs/plugin-react-refresh@^1.3.6": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.6.tgz#19818392db01e81746cfeb04e096ab3010e79fe3" - integrity sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA== - dependencies: - "@babel/core" "^7.14.8" - "@babel/plugin-transform-react-jsx-self" "^7.14.5" - "@babel/plugin-transform-react-jsx-source" "^7.14.5" - "@rollup/pluginutils" "^4.1.1" - react-refresh "^0.10.0" - -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== - -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@xtuc/long" "4.2.2" - -"@wry/context@^0.4.0": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz#e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8" - integrity sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag== - dependencies: - "@types/node" ">=6" - tslib "^1.9.3" - -"@wry/context@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.0.tgz#be88e22c0ddf62aeb0ae9f95c3d90932c619a5c8" - integrity sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ== - dependencies: - tslib "^2.3.0" - -"@wry/equality@^0.1.2": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" - integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== - dependencies: - tslib "^1.9.3" - -"@wry/equality@^0.5.0": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" - integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== - dependencies: - tslib "^2.3.0" - -"@wry/trie@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" - integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== - dependencies: - tslib "^2.3.0" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - -JSONStream@^1.0.3: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -a-sync-waterfall@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz#75b6b6aa72598b497a125e7a2770f14f4c8a1fa7" - integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== - -abab@^2.0.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^7.0.0, acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^7.0.0, acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -address@^1.0.1, address@^1.1.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== - -adjust-sourcemap-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" - integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== - dependencies: - loader-utils "^2.0.0" - regex-parser "^2.2.11" - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -aloedb-node@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/aloedb-node/-/aloedb-node-1.1.1.tgz#76fb08ffa7857a1d0bf21a917e8a1213ed624bd5" - integrity sha512-BH5RP5DvN4LEnfGGR+cX4VFf/asmWa1zwKVMVrAuFj3jjgySt9SBLGXTOsP0Epf1O5lzFQyoPDzmTzE44RmPUw== - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== - -anchor-markdown-header@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/anchor-markdown-header/-/anchor-markdown-header-0.6.0.tgz#908f2031281766f44ac350380ca0de77ab7065b8" - integrity sha512-v7HJMtE1X7wTpNFseRhxsY/pivP4uAJbidVhPT+yhz4i/vV1+qx371IXuV9V7bN6KjFtheLJxqaSm0Y/8neJTA== - dependencies: - emoji-regex "~10.1.0" - -ansi-align@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-colors@^4.1.1, ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escape-sequences@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz#2483c8773f50dd9174dd9557e92b1718f1816097" - integrity sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw== - dependencies: - array-back "^3.0.1" - -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-sequence-parser@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz#4d790f31236ac20366b23b3916b789e1bde39aed" - integrity sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== - -ansi-styles@^3.1.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" - integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== - -any-observable@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.5.1.tgz#ab7d49ff64ebe6dd3ae26760a3f5a881e8db791e" - integrity sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA== - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -apollo-boost@^0.4.9: - version "0.4.9" - resolved "https://registry.yarnpkg.com/apollo-boost/-/apollo-boost-0.4.9.tgz#ab3ba539c2ca944e6fd156583a1b1954b17a6791" - integrity sha512-05y5BKcDaa8w47f8d81UVwKqrAjn8uKLv6QM9fNdldoNzQ+rnOHgFlnrySUZRz9QIT3vPftQkEz2UEASp1Mi5g== - dependencies: - apollo-cache "^1.3.5" - apollo-cache-inmemory "^1.6.6" - apollo-client "^2.6.10" - apollo-link "^1.0.6" - apollo-link-error "^1.0.3" - apollo-link-http "^1.3.1" - graphql-tag "^2.4.2" - ts-invariant "^0.4.0" - tslib "^1.10.0" - -apollo-cache-inmemory@^1.6.6: - version "1.6.6" - resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz#56d1f2a463a6b9db32e9fa990af16d2a008206fd" - integrity sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A== - dependencies: - apollo-cache "^1.3.5" - apollo-utilities "^1.3.4" - optimism "^0.10.0" - ts-invariant "^0.4.0" - tslib "^1.10.0" - -apollo-cache@1.3.5, apollo-cache@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.5.tgz#9dbebfc8dbe8fe7f97ba568a224bca2c5d81f461" - integrity sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA== - dependencies: - apollo-utilities "^1.3.4" - tslib "^1.10.0" - -apollo-client@^2.6.10: - version "2.6.10" - resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.10.tgz#86637047b51d940c8eaa771a4ce1b02df16bea6a" - integrity sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA== - dependencies: - "@types/zen-observable" "^0.8.0" - apollo-cache "1.3.5" - apollo-link "^1.0.0" - apollo-utilities "1.3.4" - symbol-observable "^1.0.2" - ts-invariant "^0.4.0" - tslib "^1.10.0" - zen-observable "^0.8.0" - -apollo-datasource@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.2.tgz#5711f8b38d4b7b53fb788cb4dbd4a6a526ea74c8" - integrity sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg== - dependencies: - "@apollo/utils.keyvaluecache" "^1.0.1" - apollo-server-env "^4.2.1" - -apollo-link-error@^1.0.3: - version "1.1.13" - resolved "https://registry.yarnpkg.com/apollo-link-error/-/apollo-link-error-1.1.13.tgz#c1a1bb876ffe380802c8df0506a32c33aad284cd" - integrity sha512-jAZOOahJU6bwSqb2ZyskEK1XdgUY9nkmeclCrW7Gddh1uasHVqmoYc4CKdb0/H0Y1J9lvaXKle2Wsw/Zx1AyUg== - dependencies: - apollo-link "^1.2.14" - apollo-link-http-common "^0.2.16" - tslib "^1.9.3" - -apollo-link-http-common@^0.2.16: - version "0.2.16" - resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc" - integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg== - dependencies: - apollo-link "^1.2.14" - ts-invariant "^0.4.0" - tslib "^1.9.3" - -apollo-link-http@^1.3.1: - version "1.5.17" - resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz#499e9f1711bf694497f02c51af12d82de5d8d8ba" - integrity sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg== - dependencies: - apollo-link "^1.2.14" - apollo-link-http-common "^0.2.16" - tslib "^1.9.3" - -apollo-link@^1.0.0, apollo-link@^1.0.6, apollo-link@^1.2.14: - version "1.2.14" - resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" - integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== - dependencies: - apollo-utilities "^1.3.0" - ts-invariant "^0.4.0" - tslib "^1.9.3" - zen-observable-ts "^0.8.21" - -apollo-reporting-protobuf@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz#6edd31f09d4a3704d9e808d1db30eca2229ded26" - integrity sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog== - dependencies: - "@apollo/protobufjs" "1.2.6" - -apollo-server-core@3.12.0, apollo-server-core@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.12.0.tgz#8aa2a7329ce6fe1823290c45168c749db01548df" - integrity sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg== - dependencies: - "@apollo/utils.keyvaluecache" "^1.0.1" - "@apollo/utils.logger" "^1.0.0" - "@apollo/utils.usagereporting" "^1.0.0" - "@apollographql/apollo-tools" "^0.5.3" - "@apollographql/graphql-playground-html" "1.6.29" - "@graphql-tools/mock" "^8.1.2" - "@graphql-tools/schema" "^8.0.0" - "@josephg/resolvable" "^1.0.0" - apollo-datasource "^3.3.2" - apollo-reporting-protobuf "^3.4.0" - apollo-server-env "^4.2.1" - apollo-server-errors "^3.3.1" - apollo-server-plugin-base "^3.7.2" - apollo-server-types "^3.8.0" - async-retry "^1.2.1" - fast-json-stable-stringify "^2.1.0" - graphql-tag "^2.11.0" - loglevel "^1.6.8" - lru-cache "^6.0.0" - node-abort-controller "^3.0.1" - sha.js "^2.4.11" - uuid "^9.0.0" - whatwg-mimetype "^3.0.0" - -apollo-server-env@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185" - integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g== - dependencies: - node-fetch "^2.6.7" - -apollo-server-errors@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" - integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== - -apollo-server-express@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.12.0.tgz#a6e392bb0427544b8c7e5d841ef07f7691b0c105" - integrity sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ== - dependencies: - "@types/accepts" "^1.3.5" - "@types/body-parser" "1.19.2" - "@types/cors" "2.8.12" - "@types/express" "4.17.14" - "@types/express-serve-static-core" "4.17.31" - accepts "^1.3.5" - apollo-server-core "^3.12.0" - apollo-server-types "^3.8.0" - body-parser "^1.19.0" - cors "^2.8.5" - parseurl "^1.3.3" - -apollo-server-plugin-base@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz#c19cd137bc4c993ba2490ba2b571b0f3ce60a0cd" - integrity sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw== - dependencies: - apollo-server-types "^3.8.0" - -apollo-server-types@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.8.0.tgz#d976b6967878681f715fe2b9e4dad9ba86b1346f" - integrity sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A== - dependencies: - "@apollo/utils.keyvaluecache" "^1.0.1" - "@apollo/utils.logger" "^1.0.0" - apollo-reporting-protobuf "^3.4.0" - apollo-server-env "^4.2.1" - -apollo-utilities@1.3.4, apollo-utilities@^1.3.0, apollo-utilities@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" - integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== - dependencies: - "@wry/equality" "^0.1.2" - fast-json-stable-stringify "^2.0.0" - ts-invariant "^0.4.0" - tslib "^1.10.0" - -appdata-path@perspect3vism/appdata-path: - version "1.0.0" - resolved "https://codeload.github.com/perspect3vism/appdata-path/tar.gz/6304ea16cbfebc98749c33941d643c3046b45985" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -arg@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -aria-query@^5.0.0, aria-query@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== - dependencies: - deep-equal "^2.0.5" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-back@^1.0.3, array-back@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" - integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== - dependencies: - typical "^2.6.0" - -array-back@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" - integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== - dependencies: - typical "^2.6.1" - -array-back@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" - integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-difference@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-difference/-/array-difference-0.0.1.tgz#c7cafd9b54b35eb82f72e7ba319e938a3fd32b07" - integrity sha512-LMXXDKmRSsO+d7N73LyTBWlT+GiLfNUCWeeWmZivzJ1NxSPOobS+w8bIAAfGEV35oVBsk9u9cXii8dDceU5NPw== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -array.prototype.flat@^1.2.3, array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.2.5, array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -array.prototype.reduce@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" - integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -array.prototype.tosorted@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" - integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asap@^2.0.3, asap@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -asciidoctor-opal-runtime@0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.3.tgz#2667635f858d3eb3fdfcf6795cf68138e2040174" - integrity sha512-/CEVNiOia8E5BMO9FLooo+Kv18K4+4JBFRJp8vUy/N5dMRAg+fRNV4HA+o6aoSC79jVU/aT5XvUpxSxSsTS8FQ== - dependencies: - glob "7.1.3" - unxhr "1.0.1" - -asciidoctor@^2.2.0: - version "2.2.6" - resolved "https://registry.yarnpkg.com/asciidoctor/-/asciidoctor-2.2.6.tgz#43b5fec8ab91ed2d8d1815c75067cfa29da2e568" - integrity sha512-EXG3+F2pO21B+COfQmV/WgEgGiy7nG/mJiS/o5DXpaT2q82FRZWPVkbMZrpDvpu4pjXe5c754RbZR9Vz0L0Vtw== - dependencies: - "@asciidoctor/cli" "3.5.0" - "@asciidoctor/core" "2.2.6" - -asn1.js@^5.0.1, asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -asn1js@^3.0.1, asn1js@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" - integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== - dependencies: - pvtsutils "^1.3.2" - pvutils "^1.1.3" - tslib "^2.4.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -assert@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== - -async-exit-hook@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" - integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== - -async-mutex@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.3.2.tgz#1485eda5bda1b0ec7c8df1ac2e815757ad1831df" - integrity sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA== - dependencies: - tslib "^2.3.1" - -async-retry@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== - dependencies: - retry "0.13.1" - -async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -auto-bind@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-5.0.1.tgz#50d8e63ea5a1dddcb5e5e36451c1a8266ffbb2ae" - integrity sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg== - -autoprefixer@^10.4.13: - version "10.4.14" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== - dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" - integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== - -axe-core@^4.6.2: - version "4.6.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" - integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== - -axobject-query@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" - integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== - dependencies: - deep-equal "^2.0.5" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-jest@^27.4.2, babel-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== - dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-loader@^8.2.3: - version "8.3.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" - integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-import-to-require@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz#432b9ee7fe9d77de03e849247c78a6e51fb18009" - integrity sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ== - dependencies: - babel-template "^6.26.0" - -babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-macros@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" - integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== - dependencies: - "@babel/runtime" "^7.12.5" - cosmiconfig "^7.0.0" - resolve "^1.19.0" - -babel-plugin-named-asset-import@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" - integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== - -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" - -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - -babel-plugin-transform-hook-names@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-hook-names/-/babel-plugin-transform-hook-names-1.0.2.tgz#0d75c2d78e8bbcdb258241131562b9cf07f010f3" - integrity sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw== - -babel-plugin-transform-react-remove-prop-types@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" - integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== - dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== - dependencies: - babel-plugin-jest-hoist "^27.5.1" - babel-preset-current-node-syntax "^1.0.0" - -babel-preset-react-app@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz#ed6005a20a24f2c88521809fa9aea99903751584" - integrity sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg== - dependencies: - "@babel/core" "^7.16.0" - "@babel/plugin-proposal-class-properties" "^7.16.0" - "@babel/plugin-proposal-decorators" "^7.16.4" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" - "@babel/plugin-proposal-numeric-separator" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-private-methods" "^7.16.0" - "@babel/plugin-transform-flow-strip-types" "^7.16.0" - "@babel/plugin-transform-react-display-name" "^7.16.0" - "@babel/plugin-transform-runtime" "^7.16.4" - "@babel/preset-env" "^7.16.4" - "@babel/preset-react" "^7.16.0" - "@babel/preset-typescript" "^7.16.0" - "@babel/runtime" "^7.16.3" - babel-plugin-macros "^3.1.0" - babel-plugin-transform-react-remove-prop-types "^0.4.24" - -babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -backo2@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.0.2, base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64url@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" - integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bash-color@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/bash-color/-/bash-color-0.0.4.tgz#e9be8ce33540cada4881768c59bd63865736e913" - integrity sha512-ZNB4525U7BxT6v9C8LEtywyCgB4Pjnm7/bh+ru/Z9Ecxvg3fDjaJ6z305z9a61orQdbB1zqYHh5JbUqx4s4K0g== - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -better-path-resolve@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d" - integrity sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== - dependencies: - is-windows "^1.0.0" - -bfj@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" - integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== - dependencies: - bluebird "^3.5.5" - check-types "^11.1.1" - hoopy "^0.1.4" - tryer "^1.0.1" - -big-integer@^1.6.17, big-integer@^1.6.48: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -bignumber.js@^9.0.0, bignumber.js@^9.0.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" - integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -binary@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" - integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bluebird@^3.5.5, bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bluebird@~3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.8, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -body-parser@^1.19.0: - version "1.20.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -body@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - integrity sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ== - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - -bonjour-service@^1.0.11: - version "1.1.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" - integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== - dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -boolean@^3.0.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" - integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== - -borc@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" - integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== - dependencies: - bignumber.js "^9.0.0" - buffer "^5.5.0" - commander "^2.15.0" - ieee754 "^1.1.13" - iso-url "~0.4.7" - json-text-sequence "~0.1.0" - readable-stream "^3.6.0" - -boxen@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.2" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -breakword@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/breakword/-/breakword-1.0.5.tgz#fd420a417f55016736b5b615161cae1c8f819810" - integrity sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg== - dependencies: - wcwidth "^1.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-pack@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" - integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== - dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.8.0" - defined "^1.0.0" - safe-buffer "^5.1.1" - through2 "^2.0.0" - umd "^3.0.0" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-resolve@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" - integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== - dependencies: - resolve "^1.17.0" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserify@^17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-17.0.0.tgz#4c48fed6c02bfa2b51fd3b670fddb805723cdc22" - integrity sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w== - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^2.0.0" - browserify-zlib "~0.2.0" - buffer "~5.2.1" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.1" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^3.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.2.1" - labeled-stream-splicer "^2.0.0" - mkdirp-classic "^0.5.2" - module-deps "^6.2.3" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "^1.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum-object "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^3.0.0" - stream-http "^3.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.12.0" - vm-browserify "^1.0.0" - xtend "^4.0.0" - -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bs58@4.0.1, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-crc32@^0.2.5, buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-from@1.x, buffer-from@^1.0.0, buffer-from@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-indexof-polyfill@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" - integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -buffer@^5.1.0, buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" - integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" - integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== - -builtin-modules@^3.1.0, builtin-modules@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== - -bytes@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ== - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-lookup@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" - integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== - dependencies: - "@types/keyv" "^3.1.1" - keyv "^4.0.0" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -cacheable-request@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - -cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" - integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - -callsites@^3.0.0, callsites@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001474" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz#13b6fe301a831fe666cce8ca4ef89352334133d5" - integrity sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q== - -canonicalize@^1.0.1, canonicalize@^1.0.3: - version "1.0.8" - resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.8.tgz#24d1f1a00ed202faafd9bf8e63352cd4450c6df1" - integrity sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A== - -canvas-renderer@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/canvas-renderer/-/canvas-renderer-2.2.1.tgz#c1d131f78a9799aca8af9679ad0a005052b65550" - integrity sha512-RrBgVL5qCEDIXpJ6NrzyRNoTnXxYarqm/cS/W6ERhUJts5UQtt/XPEosGN3rqUkZ4fjBArlnCbsISJ+KCFnIAg== - dependencies: - "@types/node" "*" - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -case-sensitive-paths-webpack-plugin@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" - integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -catharsis@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" - integrity sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A== - dependencies: - lodash "^4.17.15" - -cbor@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" - integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== - dependencies: - bignumber.js "^9.0.1" - nofilter "^1.0.4" - -ccount@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" - integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== - -chai-as-promised@*: - version "7.1.1" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" - integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== - dependencies: - check-error "^1.0.2" - -chai@*: - version "4.3.7" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" - integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^4.1.2" - get-func-name "^2.0.0" - loupe "^2.3.1" - pathval "^1.1.1" - type-detect "^4.0.5" - -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" - integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== - dependencies: - traverse ">=0.3.0 <0.4" - -chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" - integrity sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ== - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -char-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" - integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== - -check-types@^11.1.1: - version "11.2.2" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.2.tgz#7afc0b6a860d686885062f2dba888ba5710335b4" - integrity sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA== - -cheerio-select@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.6.0.tgz#489f36604112c722afa147dedd0d4609c09e1696" - integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== - dependencies: - css-select "^4.3.0" - css-what "^6.0.1" - domelementtype "^2.2.0" - domhandler "^4.3.1" - domutils "^2.8.0" - -cheerio-select@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" - integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== - dependencies: - boolbase "^1.0.0" - css-select "^5.1.0" - css-what "^6.1.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - -cheerio@1.0.0-rc.10: - version "1.0.0-rc.10" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" - integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== - dependencies: - cheerio-select "^1.5.0" - dom-serializer "^1.3.2" - domhandler "^4.2.0" - htmlparser2 "^6.1.0" - parse5 "^6.0.1" - parse5-htmlparser2-tree-adapter "^6.0.1" - tslib "^2.2.0" - -cheerio@^1.0.0-rc.12: - version "1.0.0-rc.12" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" - integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== - dependencies: - cheerio-select "^2.1.0" - dom-serializer "^2.0.0" - domhandler "^5.0.3" - domutils "^3.0.1" - htmlparser2 "^8.0.1" - parse5 "^7.0.0" - parse5-htmlparser2-tree-adapter "^7.0.0" - -chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1, chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.1.0, ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -class-validator@^0.13.1: - version "0.13.2" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.13.2.tgz#64b031e9f3f81a1e1dcd04a5d604734608b24143" - integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== - dependencies: - libphonenumber-js "^1.9.43" - validator "^13.7.0" - -clean-css@^5.2.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" - integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== - dependencies: - source-map "~0.6.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cli-cursor@^2.0.0, cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== - dependencies: - restore-cursor "^2.0.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== - dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colord@^2.9.1: - version "2.9.3" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - -colorette@^2.0.10: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== - -combine-source-map@^0.8.0, combine-source-map@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" - integrity sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg== - dependencies: - convert-source-map "~1.1.0" - inline-source-map "~0.6.0" - lodash.memoize "~3.0.3" - source-map "~0.5.3" - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -command-line-args@^4.0.2: - version "4.0.7" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" - integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== - dependencies: - array-back "^2.0.0" - find-replace "^1.0.3" - typical "^2.6.1" - -command-line-commands@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/command-line-commands/-/command-line-commands-2.0.1.tgz#c58aa13dc78c06038ed67077e57ad09a6f858f46" - integrity sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ== - dependencies: - array-back "^2.0.0" - -command-line-usage@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-4.1.0.tgz#a6b3b2e2703b4dcf8bd46ae19e118a9a52972882" - integrity sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g== - dependencies: - ansi-escape-sequences "^4.0.0" - array-back "^2.0.0" - table-layout "^0.4.2" - typical "^2.6.1" - -commander@^2.15.0, commander@^2.20.0, commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -commander@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -common-path-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" - integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== - -common-tags@^1.8.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-md@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/concat-md/-/concat-md-0.5.1.tgz#03c72343a5d81306aa5ae1040d6368ffbc444781" - integrity sha512-iZr6yxlwPQ5IZup2mvqgm+JI0jnu5yGkND2ra5DinBtcevDQPQiAGpf4RXOnor1UpKBUydqegDLfPY8b+FfI+Q== - dependencies: - doctoc "^2.2.1" - front-matter "^4.0.2" - globby "^11.1.0" - lodash.startcase "^4.4.0" - meow "^9.0.0" - transform-markdown-links "^2.0.0" - -concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@~1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-with-sourcemaps@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" - integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== - dependencies: - source-map "^0.6.1" - -config-chain@^1.1.11: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -confusing-browser-globals@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" - integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -constants-browserify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - -construct-style-sheets-polyfill@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/construct-style-sheets-polyfill/-/construct-style-sheets-polyfill-3.1.0.tgz#c490abd79efdb359fafa62ec14ea55232be0eecf" - integrity sha512-HBLKP0chz8BAY6rBdzda11c3wAZeCZ+kIG4weVC2NM3AXzxx09nhe8t0SQNdloAvg5GLuHwq/0SPOOSPvtCcKw== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - integrity sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA== - -convert-hex@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/convert-hex/-/convert-hex-0.1.0.tgz#08c04568922c27776b8a2e81a95d393362ea0b65" - integrity sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A== - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" - integrity sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg== - -convert-string@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/convert-string/-/convert-string-0.1.0.tgz#79ce41a9bb0d03bcf72cdc6a8f3c56fbbc64410a" - integrity sha512-1KX9ESmtl8xpT2LN2tFnKSbV4NiarbVi8DVb39ZriijvtTklyrT+4dT1wsGMHKD3CJUjXgvJzstm9qL9ICojGA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - -core-js-compat@^3.25.1: - version "3.30.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.0.tgz#99aa2789f6ed2debfa1df3232784126ee97f4d80" - integrity sha512-P5A2h/9mRYZFIAP+5Ab8ns6083IyVpSclU74UNvbGVQ8VM7n3n3/g2yF3AkKQ9NXz2O+ioxLbEWKnDtgsFamhg== - dependencies: - browserslist "^4.21.5" - -core-js-pure@^3.23.3: - version "3.30.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.0.tgz#41b6c42e5f363bd53d79999bd35093b17e42e1bf" - integrity sha512-+2KbMFGeBU0ln/csoPqTe0i/yfHbrd2EUhNMObsGtXMKS/RTtlkYyi+/3twLcevbgNR0yM/r0Psa3TEoQRpFMQ== - -core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-js@^3.19.2: - version "3.30.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.0.tgz#64ac6f83bc7a49fd42807327051701d4b1478dea" - integrity sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cors@^2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - -cosmiconfig@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" - integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cp@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/cp/-/cp-0.2.0.tgz#a0874183a09e885eb72792582ab68ce3932b135d" - integrity sha512-4ftCvShHjIZG/zzomHyunNpBof3sOFTTmU6s6q9DdqAL/ANqrKV3pr6Z6kVfBI4hjn59DFLImrBqn7GuuMqSZA== - -cpr@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cpr/-/cpr-3.0.1.tgz#b9a55038b7cd81a35c17b9761895bd8496aef1e5" - integrity sha512-Xch4PXQ/KC8lJ+KfJ9JI6eG/nmppLrPPWg5Q+vh65Qr9EjuJEubxh/H/Le1TmCZ7+Xv7iJuNRqapyOFZB+wsxA== - dependencies: - graceful-fs "^4.1.5" - minimist "^1.2.0" - mkdirp "~0.5.1" - rimraf "^2.5.4" - -crc@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" - integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== - dependencies: - buffer "^5.1.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - -crypto-browserify@^3.0.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-blank-pseudo@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" - integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== - dependencies: - postcss-selector-parser "^6.0.9" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-declaration-sorter@^6.3.1: - version "6.4.0" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" - integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== - -css-has-pseudo@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" - integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== - dependencies: - postcss-selector-parser "^6.0.9" - -css-loader@^6.5.1: - version "6.7.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" - integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== - dependencies: - icss-utils "^5.1.0" - postcss "^8.4.19" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.2.0" - semver "^7.3.8" - -css-minimizer-webpack-plugin@^3.2.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz#ab78f781ced9181992fe7b6e4f3422e76429878f" - integrity sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q== - dependencies: - cssnano "^5.0.6" - jest-worker "^27.0.2" - postcss "^8.3.5" - schema-utils "^4.0.0" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - -css-modules-loader-core@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" - integrity sha512-XWOBwgy5nwBn76aA+6ybUGL/3JBnCtBX9Ay9/OWIpzKYWlVHMazvJ+WtHumfi+xxdPF440cWK7JCYtt8xDifew== - dependencies: - icss-replace-symbols "1.1.0" - postcss "6.0.1" - postcss-modules-extract-imports "1.1.0" - postcss-modules-local-by-default "1.2.0" - postcss-modules-scope "1.1.0" - postcss-modules-values "1.3.0" - -css-prefers-color-scheme@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" - integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@^4.1.3, css-select@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== - dependencies: - boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-selector-tokenizer@^0.7.0: - version "0.7.3" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" - integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2, css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css-what@^6.0.1, css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -css.escape@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== - -cssdb@^7.1.0: - version "7.5.3" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.5.3.tgz#6bbd0c6a935919d7f78b8a3ce098faacda01ae8a" - integrity sha512-NQNRhrEnS6cW+RU/foLphb6xI/MDA70bI3Cy6VxJU8ilxgyTYz1X9zUzFGVTG5nGPylcKAGIt/UNc4deT56lQQ== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssfilter@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" - integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-preset-default@^5.2.14: - version "5.2.14" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" - integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== - dependencies: - css-declaration-sorter "^6.3.1" - cssnano-utils "^3.1.0" - postcss-calc "^8.2.3" - postcss-colormin "^5.3.1" - postcss-convert-values "^5.1.3" - postcss-discard-comments "^5.1.2" - postcss-discard-duplicates "^5.1.0" - postcss-discard-empty "^5.1.1" - postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.7" - postcss-merge-rules "^5.1.4" - postcss-minify-font-values "^5.1.0" - postcss-minify-gradients "^5.1.1" - postcss-minify-params "^5.1.4" - postcss-minify-selectors "^5.2.1" - postcss-normalize-charset "^5.1.0" - postcss-normalize-display-values "^5.1.0" - postcss-normalize-positions "^5.1.1" - postcss-normalize-repeat-style "^5.1.1" - postcss-normalize-string "^5.1.0" - postcss-normalize-timing-functions "^5.1.0" - postcss-normalize-unicode "^5.1.1" - postcss-normalize-url "^5.1.0" - postcss-normalize-whitespace "^5.1.1" - postcss-ordered-values "^5.1.3" - postcss-reduce-initial "^5.1.2" - postcss-reduce-transforms "^5.1.0" - postcss-svgo "^5.1.0" - postcss-unique-selectors "^5.1.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano-utils@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" - integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -cssnano@^5.0.1, cssnano@^5.0.6: - version "5.1.15" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" - integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== - dependencies: - cssnano-preset-default "^5.2.14" - lilconfig "^2.0.3" - yaml "^1.10.2" - -csso@^4.0.2, csso@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -csstype@^3.0.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== - -csv-generate@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.4.3.tgz#bc42d943b45aea52afa896874291da4b9108ffff" - integrity sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw== - -csv-parse@^4.16.3: - version "4.16.3" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.16.3.tgz#7ca624d517212ebc520a36873c3478fa66efbaf7" - integrity sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg== - -csv-stringify@^5.6.5: - version "5.6.5" - resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.6.5.tgz#c6d74badda4b49a79bf4e72f91cce1e33b94de00" - integrity sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== - -csv@^5.5.3: - version "5.5.3" - resolved "https://registry.yarnpkg.com/csv/-/csv-5.5.3.tgz#cd26c1e45eae00ce6a9b7b27dcb94955ec95207d" - integrity sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== - dependencies: - csv-generate "^3.4.3" - csv-parse "^4.16.3" - csv-stringify "^5.6.5" - stream-transform "^2.1.3" - -customize-cra@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/customize-cra/-/customize-cra-1.0.0.tgz#73286563631aa08127ad4d30a2e3c89cf4e93c8d" - integrity sha512-DbtaLuy59224U+xCiukkxSq8clq++MOtJ1Et7LED1fLszWe88EoblEYFBJ895sB1mC6B4uu3xPT/IjClELhMbA== - dependencies: - lodash.flow "^3.5.0" - -damerau-levenshtein@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" - integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== - -dash-ast@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" - integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -date-fns@^1.27.2: - version "1.30.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" - integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.4, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -decimal.js@^10.2.1: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== - dependencies: - mimic-response "^1.0.0" - -decompress-response@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" - integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== - dependencies: - mimic-response "^2.0.0" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deep-eql@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" - integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== - dependencies: - type-detect "^4.0.0" - -deep-equal@^2.0.5: - version "2.2.0" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" - integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== - dependencies: - call-bind "^1.0.2" - es-get-iterator "^1.1.2" - get-intrinsic "^1.1.3" - is-arguments "^1.1.1" - is-array-buffer "^3.0.1" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - -deep-extend@^0.6.0, deep-extend@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" - integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== - -del@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" - integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== - dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -delimit-stream@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" - integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -deps-sort@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" - integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== - dependencies: - JSONStream "^1.0.3" - shasum-object "^1.0.0" - subarg "^1.0.0" - through2 "^2.0.0" - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0, destroy@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg== - -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -detect-libc@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -detect-port-alt@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" - integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== - dependencies: - address "^1.0.1" - debug "^2.6.0" - -detective@^5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" - integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== - dependencies: - acorn-node "^1.8.2" - defined "^1.0.0" - minimist "^1.2.6" - -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - -diff-sequences@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" - integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" - integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -direction@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/direction/-/direction-0.1.5.tgz#ce5d797f97e26f8be7beff53f7dc40e1c1a9ec4c" - integrity sha512-HceXsAluGbXKCz2qCVbXFUH4Vn4eNMWxY5gzydMFMnS1zKSwvDASqLwcrYLIFDpwuZ63FUAqjDLEP1eicHt8DQ== - -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - -dns-over-http-resolver@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9" - integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== - dependencies: - debug "^4.3.1" - native-fetch "^3.0.0" - receptacle "^1.3.2" - -dns-packet@^5.2.2: - version "5.5.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.5.0.tgz#f59cbf3396c130957c56a6ad5fd3959ccdc30065" - integrity sha512-USawdAUzRkV6xrqTjiAEp6M9YagZEzWcSUaZTcIFAiyQWW1SoI6KyId8y2+/71wbgHKQAKd+iupLv4YvEwYWvA== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - -doctoc@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/doctoc/-/doctoc-2.2.1.tgz#83f6a6bf4df97defbe027c9a82d13091a138ffe2" - integrity sha512-qNJ1gsuo7hH40vlXTVVrADm6pdg30bns/Mo7Nv1SxuXSM1bwF9b4xQ40a6EFT/L1cI+Yylbyi8MPI4G4y7XJzQ== - dependencies: - "@textlint/markdown-to-ast" "^12.1.1" - anchor-markdown-header "^0.6.0" - htmlparser2 "^7.2.0" - minimist "^1.2.6" - underscore "^1.13.2" - update-section "^0.3.3" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: - version "0.5.16" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" - integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -dom-serializer@^1.0.1, dom-serializer@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domain-browser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -domhandler@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" - integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== - dependencies: - domelementtype "^2.0.1" - -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.4.2, domutils@^2.5.2, domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -domutils@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" - integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.1" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== - dependencies: - is-obj "^2.0.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - -duplexer2@^0.1.2, duplexer2@^0.1.4, duplexer2@~0.1.0, duplexer2@~0.1.2, duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== - dependencies: - readable-stream "^2.0.2" - -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== - -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -ejs@^3.1.6: - version "3.1.9" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" - integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== - dependencies: - jake "^10.8.5" - -electron-to-chromium@^1.4.284: - version "1.4.352" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.352.tgz#be96bd7c2f4b980deebc9338a49a67430a33ed73" - integrity sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q== - -electron@^20.0.3: - version "20.3.12" - resolved "https://registry.yarnpkg.com/electron/-/electron-20.3.12.tgz#5884b848f62daa6a3d07bbb9e29498c2da5da667" - integrity sha512-CuCZKhwdSXaUNIoEuPVZ25YH18zmox3wEM8Acwcy9tlpD8Jiuq3ji3RZ98eVWJalrpqbdE9LtTD/sLC86GIkLg== - dependencies: - "@electron/get" "^1.14.1" - "@types/node" "^16.11.26" - extract-zip "^2.0.1" - -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" - integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== - -elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -email-validator@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" - integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== - -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== - -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - -emittery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" - integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -emoji-regex@~10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.1.0.tgz#d50e383743c0f7a5945c47087295afc112e3cf66" - integrity sha512-xAEnNCT3w2Tg6MA7ly6QqYJvEoY1tm9iIjJ3yMKK9JPlWuRHAMoe5iETwQnx3M9TVbFMfsrBgWKR+IsmswwNjg== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@^1.0.2, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -enquirer@^2.3.0: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - -entities@^4.2.0, entities@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" - integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== - -entities@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -err-code@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" - integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.0.6: - version "2.1.4" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" - integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== - dependencies: - stackframe "^1.3.4" - -error@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - integrity sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw== - dependencies: - string-template "~0.2.1" - xtend "~4.0.0" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" - integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== - dependencies: - array-buffer-byte-length "^1.0.0" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.3" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-get-iterator@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -es6-promise@^3.1.2: - version "3.3.1" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" - integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== - -esbuild-android-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" - integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== - -esbuild-android-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" - integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== - -esbuild-darwin-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" - integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== - -esbuild-darwin-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" - integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== - -esbuild-freebsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" - integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== - -esbuild-freebsd-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" - integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== - -esbuild-linux-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" - integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== - -esbuild-linux-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" - integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== - -esbuild-linux-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" - integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== - -esbuild-linux-arm@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" - integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== - -esbuild-linux-mips64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" - integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== - -esbuild-linux-ppc64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" - integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== - -esbuild-linux-riscv64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" - integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== - -esbuild-linux-s390x@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" - integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== - -esbuild-netbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" - integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== - -esbuild-openbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" - integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== - -esbuild-plugin-alias@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz#45a86cb941e20e7c2bc68a2bea53562172494fcb" - integrity sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ== - -esbuild-plugin-lit@^0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/esbuild-plugin-lit/-/esbuild-plugin-lit-0.0.10.tgz#919b7794576bca351ca06a0be2a5a3f22dd1f662" - integrity sha512-0Vz+TRglIQsV2plsRJw+opO8erTIwXLtKjcFOLOiQDxRvKjFnmlENdB+fL9eLxXQu1HjRZkI9WW0ywWldoymtQ== - -esbuild-plugin-polyfill-node@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/esbuild-plugin-polyfill-node/-/esbuild-plugin-polyfill-node-0.2.0.tgz#26a3572c6b32bee126319ebdb4fa3ab584e30106" - integrity sha512-rpCoK4mag0nehBtFlFMLSuL9bNBLEh8h3wZ/FsrJEDompA/AwOqInx6Xow01+CXAcvZYhkoJ0SIZiS37qkecDA== - dependencies: - "@jspm/core" "^2.0.1" - import-meta-resolve "^2.2.2" - -esbuild-sunos-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" - integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== - -esbuild-windows-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" - integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== - -esbuild-windows-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" - integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== - -esbuild-windows-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" - integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== - -esbuild@^0.15.5: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" - integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== - optionalDependencies: - "@esbuild/android-arm" "0.15.18" - "@esbuild/linux-loong64" "0.15.18" - esbuild-android-64 "0.15.18" - esbuild-android-arm64 "0.15.18" - esbuild-darwin-64 "0.15.18" - esbuild-darwin-arm64 "0.15.18" - esbuild-freebsd-64 "0.15.18" - esbuild-freebsd-arm64 "0.15.18" - esbuild-linux-32 "0.15.18" - esbuild-linux-64 "0.15.18" - esbuild-linux-arm "0.15.18" - esbuild-linux-arm64 "0.15.18" - esbuild-linux-mips64le "0.15.18" - esbuild-linux-ppc64le "0.15.18" - esbuild-linux-riscv64 "0.15.18" - esbuild-linux-s390x "0.15.18" - esbuild-netbsd-64 "0.15.18" - esbuild-openbsd-64 "0.15.18" - esbuild-sunos-64 "0.15.18" - esbuild-windows-32 "0.15.18" - esbuild-windows-64 "0.15.18" - esbuild-windows-arm64 "0.15.18" - -esbuild@^0.17.15, esbuild@^0.17.5: - version "0.17.15" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.15.tgz#209ebc87cb671ffb79574db93494b10ffaf43cbc" - integrity sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw== - optionalDependencies: - "@esbuild/android-arm" "0.17.15" - "@esbuild/android-arm64" "0.17.15" - "@esbuild/android-x64" "0.17.15" - "@esbuild/darwin-arm64" "0.17.15" - "@esbuild/darwin-x64" "0.17.15" - "@esbuild/freebsd-arm64" "0.17.15" - "@esbuild/freebsd-x64" "0.17.15" - "@esbuild/linux-arm" "0.17.15" - "@esbuild/linux-arm64" "0.17.15" - "@esbuild/linux-ia32" "0.17.15" - "@esbuild/linux-loong64" "0.17.15" - "@esbuild/linux-mips64el" "0.17.15" - "@esbuild/linux-ppc64" "0.17.15" - "@esbuild/linux-riscv64" "0.17.15" - "@esbuild/linux-s390x" "0.17.15" - "@esbuild/linux-x64" "0.17.15" - "@esbuild/netbsd-x64" "0.17.15" - "@esbuild/openbsd-x64" "0.17.15" - "@esbuild/sunos-x64" "0.17.15" - "@esbuild/win32-arm64" "0.17.15" - "@esbuild/win32-ia32" "0.17.15" - "@esbuild/win32-x64" "0.17.15" - -esbuild@^0.17.19: - version "0.17.19" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" - integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== - optionalDependencies: - "@esbuild/android-arm" "0.17.19" - "@esbuild/android-arm64" "0.17.19" - "@esbuild/android-x64" "0.17.19" - "@esbuild/darwin-arm64" "0.17.19" - "@esbuild/darwin-x64" "0.17.19" - "@esbuild/freebsd-arm64" "0.17.19" - "@esbuild/freebsd-x64" "0.17.19" - "@esbuild/linux-arm" "0.17.19" - "@esbuild/linux-arm64" "0.17.19" - "@esbuild/linux-ia32" "0.17.19" - "@esbuild/linux-loong64" "0.17.19" - "@esbuild/linux-mips64el" "0.17.19" - "@esbuild/linux-ppc64" "0.17.19" - "@esbuild/linux-riscv64" "0.17.19" - "@esbuild/linux-s390x" "0.17.19" - "@esbuild/linux-x64" "0.17.19" - "@esbuild/netbsd-x64" "0.17.19" - "@esbuild/openbsd-x64" "0.17.19" - "@esbuild/sunos-x64" "0.17.19" - "@esbuild/win32-arm64" "0.17.19" - "@esbuild/win32-ia32" "0.17.19" - "@esbuild/win32-x64" "0.17.19" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-goat@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-3.0.0.tgz#e8b5fb658553fe8a3c4959c316c6ebb8c842b19c" - integrity sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw== - -escape-html@^1.0.3, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-custom@*: - version "0.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-custom/-/eslint-config-custom-0.0.0.tgz#7829bdd98e657a63b03377538b5675c811247cf0" - integrity sha512-kwCw78yisbgKdJBJ5qooPmpBYDphDfM2oxSROmtfOwBXBwXuRiSV3suO01W3mVLEFpmQZxMWd/qajKpJhkKSug== - dependencies: - eslint-config-next "^12.0.8" - eslint-config-prettier "^8.3.0" - eslint-plugin-react "7.28.0" - -eslint-config-next@^12.0.8: - version "12.3.4" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.3.4.tgz#3d4d9e74b919b879c4cc79c61bdc388fb2b964ee" - integrity sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ== - dependencies: - "@next/eslint-plugin-next" "12.3.4" - "@rushstack/eslint-patch" "^1.1.3" - "@typescript-eslint/parser" "^5.21.0" - eslint-import-resolver-node "^0.3.6" - eslint-import-resolver-typescript "^2.7.1" - eslint-plugin-import "^2.26.0" - eslint-plugin-jsx-a11y "^6.5.1" - eslint-plugin-react "^7.31.7" - eslint-plugin-react-hooks "^4.5.0" - -eslint-config-prettier@^8.3.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== - -eslint-config-react-app@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz#73ba3929978001c5c86274c017ea57eb5fa644b4" - integrity sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA== - dependencies: - "@babel/core" "^7.16.0" - "@babel/eslint-parser" "^7.16.3" - "@rushstack/eslint-patch" "^1.1.0" - "@typescript-eslint/eslint-plugin" "^5.5.0" - "@typescript-eslint/parser" "^5.5.0" - babel-preset-react-app "^10.0.1" - confusing-browser-globals "^1.0.11" - eslint-plugin-flowtype "^8.0.3" - eslint-plugin-import "^2.25.3" - eslint-plugin-jest "^25.3.0" - eslint-plugin-jsx-a11y "^6.5.1" - eslint-plugin-react "^7.27.1" - eslint-plugin-react-hooks "^4.3.0" - eslint-plugin-testing-library "^5.0.1" - -eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== - dependencies: - debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" - -eslint-import-resolver-typescript@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz#a90a4a1c80da8d632df25994c4c5fdcdd02b8751" - integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== - dependencies: - debug "^4.3.4" - glob "^7.2.0" - is-glob "^4.0.3" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" - -eslint-module-utils@^2.7.4: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== - dependencies: - debug "^3.2.7" - -eslint-plugin-flowtype@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz#e1557e37118f24734aa3122e7536a038d34a4912" - integrity sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ== - dependencies: - lodash "^4.17.21" - string-natural-compare "^3.0.1" - -eslint-plugin-import@^2.25.3, eslint-plugin-import@^2.26.0: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-jest@^25.3.0: - version "25.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" - integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== - dependencies: - "@typescript-eslint/experimental-utils" "^5.0.0" - -eslint-plugin-jsx-a11y@^6.5.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" - integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== - dependencies: - "@babel/runtime" "^7.20.7" - aria-query "^5.1.3" - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - ast-types-flow "^0.0.7" - axe-core "^4.6.2" - axobject-query "^3.1.1" - damerau-levenshtein "^1.0.8" - emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.3.3" - language-tags "=1.0.5" - minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - semver "^6.3.0" - -eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" - integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== - -eslint-plugin-react@7.28.0: - version "7.28.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz#8f3ff450677571a659ce76efc6d80b6a525adbdf" - integrity sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw== - dependencies: - array-includes "^3.1.4" - array.prototype.flatmap "^1.2.5" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.0.4" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.0" - object.values "^1.1.5" - prop-types "^15.7.2" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.6" - -eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.7: - version "7.32.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" - integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== - dependencies: - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - array.prototype.tosorted "^1.1.1" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - object.hasown "^1.1.2" - object.values "^1.1.6" - prop-types "^15.8.1" - resolve "^2.0.0-next.4" - semver "^6.3.0" - string.prototype.matchall "^4.0.8" - -eslint-plugin-testing-library@^5.0.1: - version "5.10.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.10.2.tgz#12f231ad9b52b6aef45c801fd00aa129a932e0c2" - integrity sha512-f1DmDWcz5SDM+IpCkEX0lbFqrrTs8HRsEElzDEqN/EBI0hpRj8Cns5+IVANXswE8/LeybIJqPAOQIFu2j5Y5sw== - dependencies: - "@typescript-eslint/utils" "^5.43.0" - -eslint-scope@5.1.1, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" - integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== - -eslint-webpack-plugin@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c" - integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w== - dependencies: - "@types/eslint" "^7.29.0 || ^8.4.1" - jest-worker "^28.0.2" - micromatch "^4.0.5" - normalize-path "^3.0.0" - schema-utils "^4.0.0" - -eslint@^8.3.0: - version "8.37.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.37.0.tgz#1f660ef2ce49a0bfdec0b0d698e0b8b627287412" - integrity sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.2" - "@eslint/js" "8.37.0" - "@humanwhocodes/config-array" "^0.11.8" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.4.0" - espree "^9.5.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-sdsl "^4.1.4" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -esm@^3.2.25: - version "3.2.25" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== - -esmify@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/esmify/-/esmify-2.1.1.tgz#bb788a8b347739d003c873d9eddf9724bbf032b3" - integrity sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ== - dependencies: - "@babel/core" "^7.2.2" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.2.0" - babel-plugin-import-to-require "^1.0.0" - cached-path-relative "^1.0.2" - concat-stream "^1.6.2" - duplexer2 "^0.1.4" - through2 "^2.0.5" - -espree@^9.5.1: - version "9.5.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" - integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -estree-walker@^2.0.1, estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -eventemitter3@^4.0.0, eventemitter3@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0, events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - -expect@*, expect@^29.0.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" - integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== - dependencies: - "@jest/expect-utils" "^29.5.0" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== - dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== - dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - -express@4.18.2, express@^4.17.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extendable-error@^0.1.5: - version "0.1.7" - resolved "https://registry.yarnpkg.com/extendable-error/-/extendable-error-0.1.7.tgz#60b9adf206264ac920058a7395685ae4670c2b96" - integrity sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== - -external-editor@^2.0.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -external-editor@^3.0.3, external-editor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-zip@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -faker@^5.1.0, faker@^5.5.3: - version "5.5.3" - resolved "https://registry.yarnpkg.com/faker/-/faker-5.5.3.tgz#c57974ee484431b25205c2c8dc09fda861e51e0e" - integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.12, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-safe-stringify@^2.0.7: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -fault@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" - integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== - dependencies: - format "^0.2.0" - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ== - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - -figures@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== - dependencies: - escape-string-regexp "^1.0.5" - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -filelist@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - -filesize@^8.0.6: - version "8.0.7" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" - integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-process@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/find-process/-/find-process-1.4.7.tgz#8c76962259216c381ef1099371465b5b439ea121" - integrity sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg== - dependencies: - chalk "^4.0.0" - commander "^5.1.0" - debug "^4.1.1" - -find-replace@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" - integrity sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA== - dependencies: - array-back "^1.0.4" - test-value "^2.1.0" - -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-yarn-workspace-root2@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9" - integrity sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA== - dependencies: - micromatch "^4.0.2" - pkg-dir "^4.2.0" - -find-yarn-workspace-root@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" - integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== - dependencies: - micromatch "^4.0.2" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -follow-redirects@^1.0.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -fork-ts-checker-webpack-plugin@^6.5.0: - version "6.5.3" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" - integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== - dependencies: - "@babel/code-frame" "^7.8.3" - "@types/json-schema" "^7.0.5" - chalk "^4.1.0" - chokidar "^3.4.2" - cosmiconfig "^6.0.0" - deepmerge "^4.2.2" - fs-extra "^9.0.0" - glob "^7.1.6" - memfs "^3.1.2" - minimatch "^3.0.4" - schema-utils "2.7.0" - semver "^7.3.2" - tapable "^1.0.0" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -format@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" - integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== - -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -from2@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -front-matter@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.3.0.tgz#7203af896ce357ee04e2aa45169ea91ed7f67504" - integrity sha512-+gOIDsGWHVAiWSDfg3vpiHwkOrwO4XNS3YQH5DMmneLEPWzdCAnbSQCtxReF4yPK1nszLvAmLeR2SprnDQDnyQ== - dependencies: - js-yaml "^3.10.0" - -front-matter@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-4.0.2.tgz#b14e54dc745cfd7293484f3210d15ea4edd7f4d5" - integrity sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg== - dependencies: - js-yaml "^3.13.1" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^10.0.0, fs-extra@^10.0.1: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs-monkey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" - integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== - dependencies: - loader-utils "^1.1.0" - -generic-names@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" - integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== - dependencies: - loader-utils "^3.2.0" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-assigned-identifiers@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" - integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-port@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -git-config@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/git-config/-/git-config-0.0.7.tgz#a9c8a3ef07a776c3d72261356d8b727b62202b28" - integrity sha512-LidZlYZXWzVjS+M3TEwhtYBaYwLeOZrXci1tBgqp/vDdZTBMl02atvwb6G35L64ibscYoPnxfbwwUS+VZAISLA== - dependencies: - iniparser "~1.0.5" - -gitbook-plugin-fontsettings@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gitbook-plugin-fontsettings/-/gitbook-plugin-fontsettings-2.0.0.tgz#835f900ae3dd111086fe7ed4425ee3de024861ab" - integrity sha512-bZpz/Jev7lL1d3VNp41KHZD67UYqyqdOwbsJE6YEW93R2mGiLfZLpUs86d2nrY61BedhlNck1xF52FNT6sWeig== - -gitbook-plugin-livereload@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/gitbook-plugin-livereload/-/gitbook-plugin-livereload-0.0.1.tgz#c0c9dc6f55f82fc24f97532b25287abbbb416b96" - integrity sha512-+5xinicId2ZcbP6jBTFfQBnjz8nhoBgcOuQfKTEM6Yg9fBsmo2mxY6ubrx1b5ozuIMyfDLkSihx97A7+X+EtQQ== - -gitbook-plugin-lunr@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gitbook-plugin-lunr/-/gitbook-plugin-lunr-1.2.0.tgz#f3e80ec76512fbdb75eb0524aa82b8dff12a50ab" - integrity sha512-QBfFLMZmoyOfLzc5aZrlRCkmzb9YcSjzdnyJFiRI/nX+Nd6kK1XyN4DLGnNSMHkRcJchcpWiQ6XGqSqo7e+d+g== - dependencies: - gitbook-plugin-search "*" - html-entities "1.2.0" - lunr "0.5.12" - -gitbook-plugin-search@*, gitbook-plugin-search@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/gitbook-plugin-search/-/gitbook-plugin-search-2.2.1.tgz#6d25b5a776990fa98fdfdfa37de331f78e0f6b13" - integrity sha512-oP9jhaKFUVPo756G9ywuuI43YdkZClSjfpFzNKe/a/Rcn3oVsrAM/PjdQ+dt65KfZVo3iW1LY4WdiZnNqzRP8g== - -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== - -github-slugid@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/github-slugid/-/github-slugid-1.0.1.tgz#bccdd0815bfad69d8a359fa4fd65947d606ec3c0" - integrity sha512-L5uVRzSM8jyWTgHUtaHwmymZW8S234JrIaOGotPK+0emNz9XsO6qqgw1KiI5YfP1SyBjG0ApNYU0vpb01teM9Q== - -github-url-from-git@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0" - integrity sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-agent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" - integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== - dependencies: - boolean "^3.0.1" - es6-error "^4.1.1" - matcher "^3.0.0" - roarr "^2.15.3" - semver "^7.3.2" - serialize-error "^7.0.1" - -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - -global-dirs@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" - integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== - dependencies: - ini "2.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== - dependencies: - type-fest "^0.20.2" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globalthis@^1.0.1, globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.0.0, globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -got@^10.6.0: - version "10.7.0" - resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" - integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== - dependencies: - "@sindresorhus/is" "^2.0.0" - "@szmarczak/http-timer" "^4.0.0" - "@types/cacheable-request" "^6.0.1" - cacheable-lookup "^2.0.0" - cacheable-request "^7.0.1" - decompress-response "^5.0.0" - duplexer3 "^0.1.4" - get-stream "^5.0.0" - lowercase-keys "^2.0.0" - mimic-response "^2.1.0" - p-cancelable "^2.0.0" - p-event "^4.0.0" - responselike "^2.0.0" - to-readable-stream "^2.0.0" - type-fest "^0.10.0" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -graphql-query-complexity@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" - integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== - dependencies: - lodash.get "^4.4.2" - -graphql-subscriptions@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" - integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== - dependencies: - iterall "^1.3.0" - -graphql-tag@^2.11.0, graphql-tag@^2.12.6, graphql-tag@^2.4.2: - version "2.12.6" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" - integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== - dependencies: - tslib "^2.1.0" - -graphql-ws@5.12.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.12.0.tgz#d06fe38916334b4a4c827f73268cbf4359a32ed7" - integrity sha512-PA3ImUp8utrpEjoxBMhvxsjkStvFEdU0E1gEBREt8HZIWkxOUymwJBhFnBL7t/iHhUq1GVPeZevPinkZFENxTw== - -graphql@15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.7.2.tgz#85ab0eeb83722977151b3feb4d631b5f2ab287ef" - integrity sha512-AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== - -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -handlebars@^4.1.0, handlebars@^4.7.7: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -harmony-reflect@^1.4.6: - version "1.6.2" - resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" - integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.0, he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -highlight.js@^10.7.1: - version "10.7.3" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" - integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -honkit@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/honkit/-/honkit-4.0.7.tgz#dd1480721f0a4980418465e59a8211a9c5de1a3e" - integrity sha512-E6+OQ+vrR7Ig2cJyoNwnYtmRQQD/IzPgZJwlv9gmYQ5OIc6DfpcuS32f2Dfwis5AVMa7nwKcpmwO07e+X2JFUw== - dependencies: - "@honkit/asciidoc" "^4.0.7" - "@honkit/honkit-plugin-highlight" "^4.0.7" - "@honkit/honkit-plugin-theme-default" "^4.0.7" - "@honkit/markdown-legacy" "^4.0.7" - bash-color "^0.0.4" - cheerio "^1.0.0-rc.12" - chokidar "^3.3.0" - commander "^5.1.0" - cp "^0.2.0" - cpr "^3.0.1" - crc "^3.8.0" - destroy "^1.0.4" - direction "^0.1.5" - dom-serializer "^0.1.0" - error "7.0.2" - escape-html "^1.0.3" - escape-string-regexp "^4.0.0" - extend "^3.0.0" - flat-cache "^2.0.1" - front-matter "^2.1.0" - gitbook-plugin-fontsettings "^2.0.0" - gitbook-plugin-livereload "^0.0.1" - gitbook-plugin-lunr "^1.2.0" - gitbook-plugin-search "^2.2.1" - github-slugid "^1.0.1" - i18n-t "^1.0.1" - ignore "^5.1.8" - immutable "^3.8.1" - is "^3.1.0" - js-yaml "^3.6.1" - json-schema-defaults "^0.1.1" - jsonschema "1.1.0" - juice "^8.0.0" - lru_map "^0.4.1" - memoize-one "^5.1.1" - mkdirp "^1.0.4" - moment "^2.24.0" - nunjucks "^3.2.0" - nunjucks-do "^1.0.0" - object-path "^0.11.5" - omit-keys "^0.1.0" - open "^7.0.0" - q "^1.5.1" - resolve "^1.17.0" - semver "^5.1.0" - send "^0.17.1" - tiny-lr "^1.1.1" - tmp "0.0.28" - try-resolve "^1.0.1" - urijs "^1.19.6" - -hoopy@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" - integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== - dependencies: - lru-cache "^6.0.0" - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-entities@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" - integrity sha512-0md7tlUUyb0BEQGsZzbqty1CgV6RESOoxdivt94AScqhBhYsPCCQCOaGvur/RospMjYpPJ7iFe3zw4Bu4SVA8g== - -html-entities@^2.1.0, html-entities@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-minifier-terser@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" - integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== - dependencies: - camel-case "^4.1.2" - clean-css "^5.2.2" - commander "^8.3.0" - he "^1.2.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.10.0" - -html-webpack-plugin@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" - integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== - dependencies: - "@types/html-minifier-terser" "^6.0.0" - html-minifier-terser "^6.0.2" - lodash "^4.17.21" - pretty-error "^4.0.0" - tapable "^2.0.0" - -htmlescape@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" - integrity sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg== - -htmlparser2@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" - integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== - dependencies: - domelementtype "^2.0.1" - domhandler "^3.3.0" - domutils "^2.4.2" - entities "^2.0.0" - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -htmlparser2@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5" - integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.2" - domutils "^2.8.0" - entities "^3.0.1" - -htmlparser2@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" - integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - entities "^4.4.0" - -http-cache-semantics@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-proxy-middleware@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" - integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-id@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/human-id/-/human-id-1.0.2.tgz#e654d4b2b0d8b07e45da9f6020d8af17ec0a5df3" - integrity sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw== - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -i18n-t@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/i18n-t/-/i18n-t-1.0.1.tgz#b7bf4b003e395dc747843e8fca5de477658b0b1c" - integrity sha512-2NmZwpsnRTzpZfIP6Rcic16m5QBNVaIwVyU182+iatd6RNbWmGi74LTA/R/oDa58RZ87bHChLgWpmulEAoEruQ== - dependencies: - lodash "^4.13.1" - -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -idb@^7.0.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" - integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== - -identity-obj-proxy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== - dependencies: - harmony-reflect "^1.4.6" - -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore-walk@^3.0.1, ignore-walk@^3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" - integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== - dependencies: - minimatch "^3.0.4" - -ignore@^5.1.8, ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -immer@^9.0.7: - version "9.0.21" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" - integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== - -immutability-helper@^2.7.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-2.9.1.tgz#71c423ba387e67b6c6ceba0650572f2a2a6727df" - integrity sha512-r/RmRG8xO06s/k+PIaif2r5rGc3j4Yhc01jSBfwPCXDLYZwp/yxralI37Df1mwmuzcCsen/E/ITKcTEvc1PQmQ== - dependencies: - invariant "^2.2.0" - -immutable@^3.8.1: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== - -immutable@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" - integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== - dependencies: - import-from "^2.1.0" - -import-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" - integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== - dependencies: - import-from "^3.0.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== - dependencies: - resolve-from "^3.0.0" - -import-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" - integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== - dependencies: - resolve-from "^5.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -import-meta-resolve@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz#75237301e72d1f0fbd74dbc6cca9324b164c2cc9" - integrity sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -ini@1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -iniparser@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/iniparser/-/iniparser-1.0.5.tgz#836d6befe6dfbfcee0bccf1cf9f2acc7027f783d" - integrity sha512-i40MWqgTU6h/70NtMsDVVDLjDYWwcIR1yIEVDPfxZIJno9z9L4s83p/V7vAu2i48Vj0gpByrkGFub7ko9XvPrw== - -inline-source-map@~0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - integrity sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA== - dependencies: - source-map "~0.5.3" - -inquirer-autosubmit-prompt@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz#a10f952af4f7bac9c43010e3e9e0891d7e8d15a1" - integrity sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q== - dependencies: - chalk "^2.4.1" - inquirer "^6.2.1" - rxjs "^6.3.3" - -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -inquirer@^6.2.1: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -inquirer@^7.0.0, inquirer@^7.3.3: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -insert-module-globals@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3" - integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg== - dependencies: - JSONStream "^1.0.3" - acorn-node "^1.5.2" - combine-source-map "^0.8.0" - concat-stream "^1.6.1" - is-buffer "^1.1.0" - path-is-absolute "^1.0.1" - process "~0.11.0" - through2 "^2.0.0" - undeclared-identifiers "^1.1.2" - xtend "^4.0.0" - -interface-datastore@^6.0.2: - version "6.1.1" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" - integrity sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg== - dependencies: - interface-store "^2.0.2" - nanoid "^3.0.2" - uint8arrays "^3.0.0" - -interface-store@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c" - integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== - -internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - -into-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" - integrity sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA== - dependencies: - from2 "^2.3.0" - p-is-promise "^3.0.0" - -invariant@^2.2.0, invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -ip-regex@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== - -ipfs-core-types@0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz#53c60f589e4e54c2d566f0c856c2fcf0ea4a5577" - integrity sha512-s5+kXXcjkIdWPHblrE0TyiKxROQdL7zfkVI7FpEEwv5rtHCjpI0I4vKSzziZLLzLXf3a2F1qtscOnlaT0ruWBw== - dependencies: - interface-datastore "^6.0.2" - multiaddr "^10.0.0" - multiformats "^9.5.1" - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arguments@^1.0.4, is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.1.0, is-buffer@^1.1.5, is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-builtin-module@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" - integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== - dependencies: - builtin-modules "^3.3.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-ci@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - -is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-installed-globally@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-installed-globally@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-ip@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" - integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== - dependencies: - ip-regex "^4.0.0" - -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-npm@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" - integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== - dependencies: - symbol-observable "^1.1.0" - -is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-inside@^3.0.1, is-path-inside@^3.0.2, is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-reference@^1.1.2, is-reference@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-root@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" - integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== - -is-scoped@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" - integrity sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ== - dependencies: - scoped-regex "^2.0.0" - -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-subdir@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-subdir/-/is-subdir-1.2.0.tgz#b791cd28fab5202e91a08280d51d9d7254fd20d4" - integrity sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== - dependencies: - better-path-resolve "1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-url-superb@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" - integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== - -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -is-windows@^1.0.0, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^2.1.1, is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -is@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" - integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -iso-url@~0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" - integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== - -isobject@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e" - integrity sha512-VaWq6XYAsbvM0wf4dyBO7WH9D7GosB7ZZlqrawI9BBiTMINBeCyqSKBa35m870MY3O4aM31pYyZi9DfGrYMJrQ== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isomorphic-ws@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" - integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -issue-regex@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/issue-regex/-/issue-regex-3.1.0.tgz#0671f094d6449c5b712fac3c9562aecb727d709e" - integrity sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -iterall@^1.2.1, iterall@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - -jake@^10.8.5: - version "10.8.5" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" - integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.1" - minimatch "^3.0.4" - -jdenticon@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/jdenticon/-/jdenticon-3.2.0.tgz#b5b9ef413cb66f70c600d6e69a764c977f248a46" - integrity sha512-z6Iq3fTODUMSOiR2nNYrqigS6Y0GvdXfyQWrUby7htDHvX7GNEwaWR4hcaL+FmhEgBe08Xkup/BKxXQhDJByPA== - dependencies: - canvas-renderer "~2.2.0" - -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== - dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" - -jest-changed-files@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" - integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== - dependencies: - "@jest/types" "^27.5.1" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" - integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== - dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" - prompts "^2.0.1" - yargs "^15.4.1" - -jest-cli@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" - integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== - dependencies: - "@jest/core" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" - -jest-config@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" - integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== - dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.5.1" - "@jest/types" "^27.5.1" - babel-jest "^27.5.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^27.5.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^26.0.0, jest-diff@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-diff@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" - integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.4.3" - jest-get-type "^29.4.3" - pretty-format "^29.5.0" - -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" - integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== - dependencies: - detect-newline "^3.0.0" - -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" - -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" - integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" - -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" - integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" - -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" - integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== - -jest-get-type@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" - integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== - -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" - -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== - dependencies: - "@jest/types" "^27.5.1" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^26.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-jasmine2@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" - integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" - integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== - dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== - dependencies: - chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" - integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== - dependencies: - chalk "^4.0.0" - jest-diff "^29.5.0" - jest-get-type "^29.4.3" - pretty-format "^29.5.0" - -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" - slash "^3.0.0" - stack-utils "^2.0.2" - -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-message-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" - integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-message-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" - integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.5.0" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.5.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== - -jest-regex-util@^28.0.0: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== - -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== - dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" - -jest-resolve-dependencies@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" - integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== - dependencies: - "@jest/types" "^27.5.1" - jest-regex-util "^27.5.1" - jest-snapshot "^27.5.1" - -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" - slash "^3.0.0" - -jest-resolve@^27.4.2, jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" - integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.7.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" - source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" - integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - cjs-module-lexer "^0.6.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^15.4.1" - -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" - integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/globals" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" - chalk "^4.0.0" - expect "^26.6.2" - graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - natural-compare "^1.4.0" - pretty-format "^26.6.2" - semver "^7.3.2" - -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" - integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.5.1" - graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" - -jest-util@^26.1.0, jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" - integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" - integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== - dependencies: - "@jest/types" "^29.5.0" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== - dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" - chalk "^4.0.0" - jest-get-type "^26.3.0" - leven "^3.1.0" - pretty-format "^26.6.2" - -jest-validate@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" - integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== - dependencies: - "@jest/types" "^27.5.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.5.1" - leven "^3.1.0" - pretty-format "^27.5.1" - -jest-watch-typeahead@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz#b4a6826dfb9c9420da2f7bc900de59dad11266a9" - integrity sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw== - dependencies: - ansi-escapes "^4.3.1" - chalk "^4.0.0" - jest-regex-util "^28.0.0" - jest-watcher "^28.0.0" - slash "^4.0.0" - string-length "^5.0.1" - strip-ansi "^7.0.1" - -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== - dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^26.6.2" - string-length "^4.0.1" - -jest-watcher@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" - integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== - dependencies: - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.5.1" - string-length "^4.0.1" - -jest-watcher@^28.0.0: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" - integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== - dependencies: - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.1.3" - string-length "^4.0.1" - -jest-worker@^26.2.1, jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^27.0.2, jest-worker@^27.4.5, jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^28.0.2: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^26.6.0: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== - dependencies: - "@jest/core" "^26.6.3" - import-local "^3.0.2" - jest-cli "^26.6.3" - -jest@^27.4.3: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" - integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== - dependencies: - "@jest/core" "^27.5.1" - import-local "^3.0.2" - jest-cli "^27.5.1" - -jiti@^1.17.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" - integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== - -jose@^4.8.1: - version "4.13.1" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.13.1.tgz#449111bb5ab171db85c03f1bd2cb1647ca06db1c" - integrity sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ== - -js-base64@^3.7.3: - version "3.7.5" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" - integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== - -js-sdsl@^4.1.4: - version "4.4.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" - integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== - -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js2xmlparser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.2.tgz#2a1fdf01e90585ef2ae872a01bc169c6a8d5e60a" - integrity sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA== - dependencies: - xmlcreate "^2.0.4" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsdoc@^3.6.11: - version "3.6.11" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.11.tgz#8bbb5747e6f579f141a5238cbad4e95e004458ce" - integrity sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg== - dependencies: - "@babel/parser" "^7.9.4" - "@types/markdown-it" "^12.2.3" - bluebird "^3.7.2" - catharsis "^0.9.0" - escape-string-regexp "^2.0.0" - js2xmlparser "^4.0.2" - klaw "^3.0.0" - markdown-it "^12.3.2" - markdown-it-anchor "^8.4.1" - marked "^4.0.10" - mkdirp "^1.0.4" - requizzle "^0.2.3" - strip-json-comments "^3.1.0" - taffydb "2.6.2" - underscore "~1.13.2" - -jsdom@^16.4.0, jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-defaults@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/json-schema-defaults/-/json-schema-defaults-0.1.1.tgz#1c6c6103c4349b71b6f4aa382c3dd9aa1c8bada3" - integrity sha512-6Q5YS7pSDCXUbtS9uAFE+uUgvE45dBHCMyhqe6liJmL+oIa4zbACSS6nr6Lh+73mN+MnWBCExtN3C14S7Jrm7w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.4.0, json-schema@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stable-stringify@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" - integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== - dependencies: - jsonify "^0.0.1" - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json-text-sequence@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" - integrity sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w== - dependencies: - delimit-stream "0.1.0" - -json5@2.x, json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -json5@^1.0.1, json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -jsonc-parser@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" - integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -jsonpointer@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" - integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== - -jsonschema@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.1.0.tgz#039cc219ed524b06e71daf12ca60d02639faf29a" - integrity sha512-nQhT+ioA1XM8CpxJYlBfcUj6HF3f3f2KbLgV3tcxOt85RKpk2b0Do/C5BnCCCfdAarAjWRSFlln0Uanl4tBCHA== - -jsonschema@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" - integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" - integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== - dependencies: - array-includes "^3.1.5" - object.assign "^4.1.3" - -juice@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/juice/-/juice-8.1.0.tgz#4ea23362522fe06418229943237ee3751a4fca70" - integrity sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA== - dependencies: - cheerio "1.0.0-rc.10" - commander "^6.1.0" - mensch "^0.3.4" - slick "^1.12.2" - web-resource-inliner "^6.0.1" - -just-extend@^4.0.2: - version "4.2.1" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" - integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== - -key-encoder@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba" - integrity sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg== - dependencies: - "@types/elliptic" "^6.4.9" - asn1.js "^5.0.1" - bn.js "^4.11.8" - elliptic "^6.4.1" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -keyv@^4.0.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== - dependencies: - json-buffer "3.0.1" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - -klaw@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" - integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== - dependencies: - graceful-fs "^4.1.9" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -kleur@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" - integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== - -klona@^2.0.4, klona@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" - integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== - -kolorist@^1.2.10: - version "1.7.0" - resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.7.0.tgz#8e22bc470ea2d2743dbd461808f8b5246b19f5f4" - integrity sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g== - -kramed@0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/kramed/-/kramed-0.5.6.tgz#5c37979bcbb59cbb7a8d231049409298857b5162" - integrity sha512-V4qwQAp8HPQPU6Ph9Q4bc+P+nKQWEGlWYLRDkK7n+CPaMi8/VRm9/R710tRmag4whLsnKR91CO9Ras/Rnff9bw== - -labeled-stream-splicer@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" - integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== - dependencies: - inherits "^2.0.1" - stream-splicer "^2.0.0" - -language-subtag-registry@~0.3.2: - version "0.3.22" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" - integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== - -language-tags@=1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== - dependencies: - language-subtag-registry "~0.3.2" - -latest-version@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -launch-editor@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" - integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.7.3" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -libphonenumber-js@^1.9.43: - version "1.10.26" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.26.tgz#3e6604357b3434b0005f85778b44153f4fadeecd" - integrity sha512-oB3l4J5gEhMV+ymmlIjWedsbCpsNRqbEZ/E/MpN2QVyinKNra6DcuXywxSk/72M3DZDoH/6kzurOq1erznBMwQ== - -lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -linkify-it@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" - integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== - dependencies: - uc.micro "^1.0.1" - -listenercount@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" - integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== - -listr-input@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/listr-input/-/listr-input-0.2.1.tgz#ce735c34530683580388fdf9462ecfebd3b66126" - integrity sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg== - dependencies: - inquirer "^7.0.0" - inquirer-autosubmit-prompt "^0.2.0" - rxjs "^6.5.3" - through "^2.3.8" - -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== - -listr-update-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" - integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" - integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== - dependencies: - chalk "^2.4.1" - cli-cursor "^2.1.0" - date-fns "^1.27.2" - figures "^2.0.0" - -listr@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" - integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" - rxjs "^6.3.3" - -lit-element@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.1.tgz#9dcb950b1fadf156dacf3ded8d7d51a8cf16a966" - integrity sha512-Gl+2409uXWbf7n6cCl7Kzasm7zjT9xmdwi2BhLNi70sRKAgRkqueDu5mSIH3hPYMM0/vqBCdPXod3NbGkRA2ww== - dependencies: - "@lit-labs/ssr-dom-shim" "^1.1.0" - "@lit/reactive-element" "^1.3.0" - lit-html "^2.7.0" - -lit-html@^2.7.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.7.1.tgz#eeea32f9639b0c1bda43ea83dc886431f3744c51" - integrity sha512-san46v7VXK6+2RXS4yveQYFUf9CoO/1bcNb0NibxLoTqlP48vs+l28tRPFDYcXGKWm0XoqcDuCC6mxIs8Jj3Zw== - dependencies: - "@types/trusted-types" "^2.0.2" - -lit@^2.0.0-rc.2, lit@^2.3.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.1.tgz#8425eceff08fc392ee500de486f7113d600eaee0" - integrity sha512-t1cVWUVQj+ucdx16QPvqzyHWYTj/bvlv6vRCUuZ5T/dA4W2Ui4a4tz7uJ1IhoTb9rKe3pTJiWmoN2GJGGteszw== - dependencies: - "@lit/reactive-element" "^1.6.0" - lit-element "^3.3.0" - lit-html "^2.7.0" - -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" - integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -load-yaml-file@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d" - integrity sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw== - dependencies: - graceful-fs "^4.1.5" - js-yaml "^3.13.0" - pify "^4.0.1" - strip-bom "^3.0.0" - -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@^1.1.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0, loader-utils@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -loader-utils@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" - integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.flow@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" - integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.memoize@~3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" - integrity sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.padend@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" - integrity sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw== - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== - -lodash.startcase@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash.zip@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" - integrity sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== - -lodash@4.x, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@4.1.0, log-symbols@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== - dependencies: - chalk "^1.0.0" - -log-update@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" - integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== - dependencies: - ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" - -loglevel@^1.6.8: - version "1.8.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" - integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -longest-streak@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" - integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loupe@^2.3.1: - version "2.3.6" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" - integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== - dependencies: - get-func-name "^2.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -"lru-cache@7.10.1 - 7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" - integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lru_map@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.4.1.tgz#f7b4046283c79fb7370c36f8fca6aee4324b0a98" - integrity sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg== - -lunr@0.5.12: - version "0.5.12" - resolved "https://registry.yarnpkg.com/lunr/-/lunr-0.5.12.tgz#a2f6b7d7801cbe2ccb1696da67f1f7788f89e0c8" - integrity sha512-/EtfOyuNP7BLVKhDvLyKJkFvCup2vwcIwQXCuasZEFk7XUJ4/blztVuefeLapUb1I5uMGsosN9A8J9Mu9A6yBg== - -lunr@^2.3.9: - version "2.3.9" - resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" - integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== - -lz-string@^1.4.4: - version "1.5.0" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" - integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== - -magic-string@^0.25.0, magic-string@^0.25.2, magic-string@^0.25.7: - version "0.25.9" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" - integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== - dependencies: - sourcemap-codec "^1.4.8" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@1.x, make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-age-cleaner@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - -markdown-it-anchor@^8.4.1: - version "8.6.7" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" - integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== - -markdown-it@^12.3.2: - version "12.3.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" - integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== - dependencies: - argparse "^2.0.1" - entities "~2.1.0" - linkify-it "^3.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -markdown-table@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" - integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== - dependencies: - repeat-string "^1.0.0" - -marked@^4.0.10, marked@^4.2.12: - version "4.3.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" - integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== - -matcher@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" - integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== - dependencies: - escape-string-regexp "^4.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -md5@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -mdast-util-find-and-replace@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" - integrity sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA== - dependencies: - escape-string-regexp "^4.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - -mdast-util-footnote@^0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz#4b226caeab4613a3362c144c94af0fdd6f7e0ef0" - integrity sha512-QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w== - dependencies: - mdast-util-to-markdown "^0.6.0" - micromark "~2.11.0" - -mdast-util-from-markdown@^0.8.0: - version "0.8.5" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" - integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^2.0.0" - micromark "~2.11.0" - parse-entities "^2.0.0" - unist-util-stringify-position "^2.0.0" - -mdast-util-frontmatter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz#8bd5cd55e236c03e204a036f7372ebe9e6748240" - integrity sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ== - dependencies: - micromark-extension-frontmatter "^0.2.0" - -mdast-util-gfm-autolink-literal@^0.1.0, mdast-util-gfm-autolink-literal@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz#9c4ff399c5ddd2ece40bd3b13e5447d84e385fb7" - integrity sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A== - dependencies: - ccount "^1.0.0" - mdast-util-find-and-replace "^1.1.0" - micromark "^2.11.3" - -mdast-util-gfm-strikethrough@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz#45eea337b7fff0755a291844fbea79996c322890" - integrity sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA== - dependencies: - mdast-util-to-markdown "^0.6.0" - -mdast-util-gfm-table@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz#af05aeadc8e5ee004eeddfb324b2ad8c029b6ecf" - integrity sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ== - dependencies: - markdown-table "^2.0.0" - mdast-util-to-markdown "~0.6.0" - -mdast-util-gfm-task-list-item@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz#70c885e6b9f543ddd7e6b41f9703ee55b084af10" - integrity sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A== - dependencies: - mdast-util-to-markdown "~0.6.0" - -mdast-util-gfm@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" - integrity sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ== - dependencies: - mdast-util-gfm-autolink-literal "^0.1.0" - mdast-util-gfm-strikethrough "^0.2.0" - mdast-util-gfm-table "^0.1.0" - mdast-util-gfm-task-list-item "^0.1.0" - mdast-util-to-markdown "^0.6.1" - -mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: - version "0.6.5" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" - integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== - dependencies: - "@types/unist" "^2.0.0" - longest-streak "^2.0.0" - mdast-util-to-string "^2.0.0" - parse-entities "^2.0.0" - repeat-string "^1.0.0" - zwitch "^1.0.0" - -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" - integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -memfs@^3.1.2, memfs@^3.4.3: - version "3.4.13" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.13.tgz#248a8bd239b3c240175cd5ec548de5227fc4f345" - integrity sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg== - dependencies: - fs-monkey "^1.0.3" - -memoize-one@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" - integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -mensch@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/mensch/-/mensch-0.3.4.tgz#770f91b46cb16ea5b204ee735768c3f0c491fecd" - integrity sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g== - -meow@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" - integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "^4.0.2" - normalize-package-data "^2.5.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.13.1" - yargs-parser "^18.1.3" - -meow@^8.1.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -meow@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" - integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize "^1.2.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromark-extension-footnote@^0.3.0: - version "0.3.2" - resolved "https://registry.yarnpkg.com/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz#129b74ef4920ce96719b2c06102ee7abb2b88a20" - integrity sha512-gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ== - dependencies: - micromark "~2.11.0" - -micromark-extension-frontmatter@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz#61b8e92e9213e1d3c13f5a59e7862f5ca98dfa53" - integrity sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A== - dependencies: - fault "^1.0.0" - -micromark-extension-gfm-autolink-literal@~0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz#53866c1f0c7ef940ae7ca1f72c6faef8fed9f204" - integrity sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw== - dependencies: - micromark "~2.11.3" - -micromark-extension-gfm-strikethrough@~0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz#96cb83356ff87bf31670eefb7ad7bba73e6514d1" - integrity sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm-table@~0.4.0: - version "0.4.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz#4d49f1ce0ca84996c853880b9446698947f1802b" - integrity sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm-tagfilter@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad" - integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== - -micromark-extension-gfm-task-list-item@~0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" - integrity sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm@^0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz#36d1a4c089ca8bdfd978c9bd2bf1a0cb24e2acfe" - integrity sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A== - dependencies: - micromark "~2.11.0" - micromark-extension-gfm-autolink-literal "~0.5.0" - micromark-extension-gfm-strikethrough "~0.6.5" - micromark-extension-gfm-table "~0.4.0" - micromark-extension-gfm-tagfilter "~0.3.0" - micromark-extension-gfm-task-list-item "~0.3.0" - -micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: - version "2.11.4" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" - integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== - dependencies: - debug "^4.0.0" - parse-entities "^2.0.0" - -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.6: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" - integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^2.0.0, mimic-response@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -mini-css-extract-plugin@^2.4.5: - version "2.7.5" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz#afbb344977659ec0f1f6e050c7aea456b121cfc5" - integrity sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ== - dependencies: - schema-utils "^4.0.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^7.1.3: - version "7.4.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.5.tgz#e721f2a6faba6846f3b891ccff9966dcf728813e" - integrity sha512-OzOamaOmNBJZUv2qqY1OSWa+++4YPpOkLgkc0w30Oov5ufKlWWXnFUl0l4dgmSv5Shq/zRVkEOXAe2NaqO4l5Q== - dependencies: - brace-expansion "^2.0.1" - -minimist-options@4.1.0, minimist-options@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mixme@^0.5.1: - version "0.5.9" - resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.9.tgz#a5a58e17354632179ff3ce5b0fc130899c8ba81c" - integrity sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw== - -mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -mkdirp@1.x, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mocha@*: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -module-deps@^6.2.3: - version "6.2.3" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee" - integrity sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA== - dependencies: - JSONStream "^1.0.3" - browser-resolve "^2.0.0" - cached-path-relative "^1.0.2" - concat-stream "~1.6.0" - defined "^1.0.0" - detective "^5.2.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - parents "^1.0.0" - readable-stream "^2.0.2" - resolve "^1.4.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" - -moment@^2.24.0: - version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" - integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== - -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multiaddr@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-10.0.1.tgz#0d15848871370860a4d266bb44d93b3dac5d90ef" - integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg== - dependencies: - dns-over-http-resolver "^1.2.3" - err-code "^3.0.1" - is-ip "^3.1.0" - multiformats "^9.4.5" - uint8arrays "^3.0.0" - varint "^6.0.0" - -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - -multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.1: - version "9.9.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" - integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== - -multistream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8" - integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw== - dependencies: - once "^1.4.0" - readable-stream "^3.6.0" - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - -nanoid@^3.0.2, nanoid@^3.3.4: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - -native-fetch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" - integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== - -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -needle@^2.2.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" - integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.6.0, neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -neon-cli@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/neon-cli/-/neon-cli-0.4.0.tgz#d89e0a55b8db577324af70470e2b4e67157205f6" - integrity sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w== - dependencies: - chalk "~2.1.0" - command-line-args "^4.0.2" - command-line-commands "^2.0.0" - command-line-usage "^4.0.0" - git-config "0.0.7" - handlebars "^4.1.0" - inquirer "^3.0.6" - mkdirp "^0.5.1" - quickly-copy-file "^1.0.0" - rimraf "^2.6.1" - rsvp "^4.6.1" - semver "^5.1.0" - toml "^2.3.0" - ts-typed-json "^0.2.2" - validate-npm-package-license "^3.0.1" - validate-npm-package-name "^3.0.0" - -new-github-release-url@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-1.0.0.tgz#493847e6fecce39c247e9d89929be773d2e7f777" - integrity sha512-dle7yf655IMjyFUqn6Nxkb18r4AOAkzRcgcZv6WZ0IqrOH4QCEZ8Sm6I7XX21zvHdBeeMeTkhR9qT2Z0EJDx6A== - dependencies: - type-fest "^0.4.1" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -nise@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.4.tgz#491ce7e7307d4ec546f5a659b2efe94a18b4bbc0" - integrity sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - path-to-regexp "^1.7.0" - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-abi@^3.3.0: - version "3.34.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.34.0.tgz#3bac9f69fda94ece1752515ed996ed409da4fa26" - integrity sha512-O5sNsdgxptez/bSXk2CfpTcVu4yTiFW1YcMHIVn2uAY8MksXWQeReMx63krFrj/QSyjRJ5/jIBkWvJ3/ZimdcA== - dependencies: - semver "^7.3.5" - -node-abort-controller@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" - integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@2, node-fetch@^2.5.11, node-fetch@^2.6.0, node-fetch@^2.6.6, node-fetch@^2.6.7: - version "2.6.9" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" - integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== - dependencies: - whatwg-url "^5.0.0" - -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-fetch@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" - integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-gyp-build@^4.2.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" - integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - -node-pre-gyp@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - -node-wget-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/node-wget-js/-/node-wget-js-1.0.1.tgz#2390bf9c9f99f280cc7a221d07d096103161e78c" - integrity sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw== - dependencies: - request "^2.88.0" - -nofilter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" - integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== - -nopt@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -np@^7.6.2: - version "7.7.0" - resolved "https://registry.yarnpkg.com/np/-/np-7.7.0.tgz#7fbf2495f6395bcc702b84ca38c4a125363fd5a5" - integrity sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.1" - any-observable "^0.5.1" - async-exit-hook "^2.0.1" - chalk "^4.1.0" - cosmiconfig "^7.0.0" - del "^6.0.0" - escape-goat "^3.0.0" - escape-string-regexp "^4.0.0" - execa "^5.0.0" - github-url-from-git "^1.5.0" - has-yarn "^2.1.0" - hosted-git-info "^3.0.7" - ignore-walk "^3.0.3" - import-local "^3.0.2" - inquirer "^7.3.3" - is-installed-globally "^0.3.2" - is-interactive "^1.0.0" - is-scoped "^2.1.0" - issue-regex "^3.1.0" - listr "^0.14.3" - listr-input "^0.2.1" - log-symbols "^4.0.0" - meow "^8.1.0" - minimatch "^3.0.4" - new-github-release-url "^1.0.0" - npm-name "^6.0.1" - onetime "^5.1.2" - open "^7.3.0" - ow "^0.21.0" - p-memoize "^4.0.1" - p-timeout "^4.1.0" - pkg-dir "^5.0.0" - read-pkg-up "^7.0.1" - rxjs "^6.6.3" - semver "^7.3.4" - split "^1.0.1" - symbol-observable "^3.0.0" - terminal-link "^2.1.1" - update-notifier "^5.0.1" - -npm-bundled@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" - integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-name@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/npm-name/-/npm-name-6.0.1.tgz#73e05b4cb6332766a6727b2635e247bb4107255b" - integrity sha512-fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw== - dependencies: - got "^10.6.0" - is-scoped "^2.1.0" - is-url-superb "^4.0.0" - lodash.zip "^4.2.0" - org-regex "^1.0.0" - p-map "^3.0.0" - registry-auth-token "^4.0.0" - registry-url "^5.1.0" - validate-npm-package-name "^3.0.0" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - -npm-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" - integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== - dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0, npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== - -nunjucks-do@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/nunjucks-do/-/nunjucks-do-1.0.0.tgz#506bbd4b42db29ab3dada41b455546b9907ef1df" - integrity sha512-GQwENqZdcSbni0iYfEiNi3hs634JBSQdxnbnd9CetGkMYPnpjG1Jn5DT/qgAaC/STwMc7C4MSIJvLSNertclSg== - -nunjucks@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.3.tgz#1b33615247290e94e28263b5d855ece765648a31" - integrity sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ== - dependencies: - a-sync-waterfall "^1.0.0" - asap "^2.0.3" - commander "^5.1.0" - -nwsapi@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-path@^0.11.5: - version "0.11.8" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" - integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.3, object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.entries@^1.1.5, object.entries@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" - integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.fromentries@^2.0.5, object.fromentries@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" - integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== - dependencies: - array.prototype.reduce "^1.0.5" - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.hasown@^1.1.0, object.hasown@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" - integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== - dependencies: - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -omit-keys@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/omit-keys/-/omit-keys-0.1.0.tgz#e14ec5ca09cd4ae07fc39e8ca35939738449bec8" - integrity sha512-JfTw3lVL54592o0Vb1frMN6DpS/wT8Uz/IWg1e0w2ZkjF4yyPYHGJAtdcBcUbp/RMf/LbdMzIz6QZ6ycaRCFUA== - dependencies: - array-difference "0.0.1" - isobject "^0.2.0" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^7.0.0, open@^7.3.0, open@^7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -open@^8.0.9, open@^8.4.0: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -optimism@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.10.3.tgz#163268fdc741dea2fb50f300bedda80356445fd7" - integrity sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw== - dependencies: - "@wry/context" "^0.4.0" - -optimism@^0.16.1: - version "0.16.2" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.2.tgz#519b0c78b3b30954baed0defe5143de7776bf081" - integrity sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ== - dependencies: - "@wry/context" "^0.7.0" - "@wry/trie" "^0.3.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -org-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/org-regex/-/org-regex-1.0.0.tgz#67ebb9ab3cb124fea5841289d60b59434f041a59" - integrity sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ== - -os-browserify@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -outdent@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.5.0.tgz#9e10982fdc41492bb473ad13840d22f9655be2ff" - integrity sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== - -ow@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/ow/-/ow-0.21.0.tgz#c2df2ad78d1bfc2ea9cdca311b7a6275258df621" - integrity sha512-dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw== - dependencies: - "@sindresorhus/is" "^4.0.0" - callsites "^3.1.0" - dot-prop "^6.0.1" - lodash.isequal "^4.5.0" - type-fest "^0.20.2" - vali-date "^1.0.0" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== - -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - -p-event@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" - integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== - dependencies: - p-timeout "^3.1.0" - -p-filter@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" - integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== - dependencies: - p-map "^2.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-is-promise@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" - integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ== - -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-memoize@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/p-memoize/-/p-memoize-4.0.4.tgz#90a4c4668866737fc5c8364c56b06f6ca44afb15" - integrity sha512-ijdh0DP4Mk6J4FXlOM6vPPoCjPytcEseW8p/k5SDTSSfGV3E9bpt9Yzfifvzp6iohIieoLTkXRb32OWV0fB2Lw== - dependencies: - map-age-cleaner "^0.1.3" - mimic-fn "^3.0.0" - p-settle "^4.1.1" - -p-queue@^6.3.0, p-queue@^6.6.2: - version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" - integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== - dependencies: - eventemitter3 "^4.0.4" - p-timeout "^3.2.0" - -p-reflect@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-reflect/-/p-reflect-2.1.0.tgz#5d67c7b3c577c4e780b9451fc9129675bd99fe67" - integrity sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg== - -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== - dependencies: - "@types/retry" "0.12.0" - retry "^0.13.1" - -p-settle@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/p-settle/-/p-settle-4.1.1.tgz#37fbceb2b02c9efc28658fc8d36949922266035f" - integrity sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ== - dependencies: - p-limit "^2.2.2" - p-reflect "^2.1.0" - -p-timeout@^3.1.0, p-timeout@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-timeout@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-4.1.0.tgz#788253c0452ab0ffecf18a62dff94ff1bd09ca0a" - integrity sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw== - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parents@^1.0.0, parents@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - integrity sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg== - dependencies: - path-platform "~0.11.15" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0, parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5-htmlparser2-tree-adapter@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - -parse5-htmlparser2-tree-adapter@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" - integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== - dependencies: - domhandler "^5.0.2" - parse5 "^7.0.0" - -parse5@6.0.1, parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parse5@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" - integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== - dependencies: - entities "^4.4.0" - -parseurl@^1.3.3, parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -patch-package@^6.5.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.5.1.tgz#3e5d00c16997e6160291fee06a521c42ac99b621" - integrity sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^4.1.2" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^2.0.0" - fs-extra "^9.0.0" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.6" - open "^7.4.2" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - yaml "^1.10.2" - -path-browserify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-platform@~0.11.15: - version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" - integrity sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" - integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== - -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - -pirates@^4.0.1, pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" - -pkg-fetch@3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.4.2.tgz#6f68ebc54842b73f8c0808959a9df3739dcb28b7" - integrity sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA== - dependencies: - chalk "^4.1.2" - fs-extra "^9.1.0" - https-proxy-agent "^5.0.0" - node-fetch "^2.6.6" - progress "^2.0.3" - semver "^7.3.5" - tar-fs "^2.1.1" - yargs "^16.2.0" - -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - -pkg@^5.8.0: - version "5.8.1" - resolved "https://registry.yarnpkg.com/pkg/-/pkg-5.8.1.tgz#862020f3c0575638ef7d1146f951a54d65ddc984" - integrity sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA== - dependencies: - "@babel/generator" "7.18.2" - "@babel/parser" "7.18.4" - "@babel/types" "7.19.0" - chalk "^4.1.2" - fs-extra "^9.1.0" - globby "^11.1.0" - into-stream "^6.0.0" - is-core-module "2.9.0" - minimist "^1.2.6" - multistream "^4.1.0" - pkg-fetch "3.4.2" - prebuild-install "7.1.1" - resolve "^1.22.0" - stream-meter "^1.0.4" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -postcss-attribute-case-insensitive@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" - integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-browser-comments@^4: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz#bcfc86134df5807f5d3c0eefa191d42136b5e72a" - integrity sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg== - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-calc@^8.2.3: - version "8.2.4" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" - integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== - dependencies: - postcss-selector-parser "^6.0.9" - postcss-value-parser "^4.2.0" - -postcss-clamp@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" - integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-color-functional-notation@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" - integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-color-hex-alpha@^8.0.4: - version "8.0.4" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" - integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-color-rebeccapurple@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" - integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-colormin@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" - integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== - dependencies: - browserslist "^4.21.4" - caniuse-api "^3.0.0" - colord "^2.9.1" - postcss-value-parser "^4.2.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" - integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== - dependencies: - browserslist "^4.21.4" - postcss-value-parser "^4.2.0" - -postcss-custom-media@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" - integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-custom-properties@^12.1.10: - version "12.1.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" - integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-custom-selectors@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" - integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-dir-pseudo-class@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" - integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-comments@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" - integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" - integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" - integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" - integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== - -postcss-double-position-gradients@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" - integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -postcss-env-function@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" - integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-flexbugs-fixes@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" - integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== - -postcss-focus-visible@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" - integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== - dependencies: - postcss-selector-parser "^6.0.9" - -postcss-focus-within@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" - integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== - dependencies: - postcss-selector-parser "^6.0.9" - -postcss-font-variant@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" - integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== - -postcss-gap-properties@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" - integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== - -postcss-image-set-function@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" - integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-import@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" - integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-initial@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" - integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== - -postcss-js@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" - integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== - dependencies: - camelcase-css "^2.0.1" - -postcss-lab-function@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" - integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -postcss-load-config@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-load-config@^3.0.0, postcss-load-config@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" - integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== - dependencies: - lilconfig "^2.0.5" - yaml "^1.10.2" - -postcss-loader@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" - integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== - dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.5" - semver "^7.3.5" - -postcss-logical@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" - integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== - -postcss-media-minmax@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" - integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-longhand@^5.1.7: - version "5.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" - integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== - dependencies: - postcss-value-parser "^4.2.0" - stylehacks "^5.1.1" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-merge-rules@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" - integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== - dependencies: - browserslist "^4.21.4" - caniuse-api "^3.0.0" - cssnano-utils "^3.1.0" - postcss-selector-parser "^6.0.5" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-font-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" - integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" - integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== - dependencies: - colord "^2.9.1" - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-params@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" - integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== - dependencies: - browserslist "^4.21.4" - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-minify-selectors@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" - integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-modules-extract-imports@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" - integrity sha512-zF9+UIEvtpeqMGxhpeT9XaIevQSrBBCz9fi7SwfkmjVacsSj8DY5eFVgn+wY8I9vvdDDwK5xC8Myq4UkoLFIkA== - dependencies: - postcss "^6.0.1" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA== - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw== - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA== - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-2.0.0.tgz#473d0d7326651d8408585c2a154115d5cb36cce0" - integrity sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw== - dependencies: - css-modules-loader-core "^1.1.0" - generic-names "^2.0.1" - lodash.camelcase "^4.3.0" - postcss "^7.0.1" - string-hash "^1.1.1" - -postcss-modules@^4.0.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.3.1.tgz#517c06c09eab07d133ae0effca2c510abba18048" - integrity sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q== - dependencies: - generic-names "^4.0.0" - icss-replace-symbols "^1.1.0" - lodash.camelcase "^4.3.0" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - string-hash "^1.1.1" - -postcss-nested@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" - integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-nesting@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" - integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== - dependencies: - "@csstools/selector-specificity" "^2.0.0" - postcss-selector-parser "^6.0.10" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-charset@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" - integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-display-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" - integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" - integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" - integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" - integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" - integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" - integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== - dependencies: - browserslist "^4.21.4" - postcss-value-parser "^4.2.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" - integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== - dependencies: - normalize-url "^6.0.1" - postcss-value-parser "^4.2.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" - integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-10.0.1.tgz#464692676b52792a06b06880a176279216540dd7" - integrity sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA== - dependencies: - "@csstools/normalize.css" "*" - postcss-browser-comments "^4" - sanitize.css "*" - -postcss-opacity-percentage@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" - integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" - integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== - dependencies: - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-overflow-shorthand@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" - integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-page-break@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" - integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== - -postcss-place@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" - integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-preset-env@^7.0.1: - version "7.8.3" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" - integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== - dependencies: - "@csstools/postcss-cascade-layers" "^1.1.1" - "@csstools/postcss-color-function" "^1.1.1" - "@csstools/postcss-font-format-keywords" "^1.0.1" - "@csstools/postcss-hwb-function" "^1.0.2" - "@csstools/postcss-ic-unit" "^1.0.1" - "@csstools/postcss-is-pseudo-class" "^2.0.7" - "@csstools/postcss-nested-calc" "^1.0.0" - "@csstools/postcss-normalize-display-values" "^1.0.1" - "@csstools/postcss-oklab-function" "^1.1.1" - "@csstools/postcss-progressive-custom-properties" "^1.3.0" - "@csstools/postcss-stepped-value-functions" "^1.0.1" - "@csstools/postcss-text-decoration-shorthand" "^1.0.0" - "@csstools/postcss-trigonometric-functions" "^1.0.2" - "@csstools/postcss-unset-value" "^1.0.2" - autoprefixer "^10.4.13" - browserslist "^4.21.4" - css-blank-pseudo "^3.0.3" - css-has-pseudo "^3.0.4" - css-prefers-color-scheme "^6.0.3" - cssdb "^7.1.0" - postcss-attribute-case-insensitive "^5.0.2" - postcss-clamp "^4.1.0" - postcss-color-functional-notation "^4.2.4" - postcss-color-hex-alpha "^8.0.4" - postcss-color-rebeccapurple "^7.1.1" - postcss-custom-media "^8.0.2" - postcss-custom-properties "^12.1.10" - postcss-custom-selectors "^6.0.3" - postcss-dir-pseudo-class "^6.0.5" - postcss-double-position-gradients "^3.1.2" - postcss-env-function "^4.0.6" - postcss-focus-visible "^6.0.4" - postcss-focus-within "^5.0.4" - postcss-font-variant "^5.0.0" - postcss-gap-properties "^3.0.5" - postcss-image-set-function "^4.0.7" - postcss-initial "^4.0.1" - postcss-lab-function "^4.2.1" - postcss-logical "^5.0.4" - postcss-media-minmax "^5.0.0" - postcss-nesting "^10.2.0" - postcss-opacity-percentage "^1.1.2" - postcss-overflow-shorthand "^3.0.4" - postcss-page-break "^3.0.4" - postcss-place "^7.0.5" - postcss-pseudo-class-any-link "^7.1.6" - postcss-replace-overflow-wrap "^4.0.0" - postcss-selector-not "^6.0.1" - postcss-value-parser "^4.2.0" - -postcss-pseudo-class-any-link@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" - integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-initial@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" - integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== - dependencies: - browserslist "^4.21.4" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-transforms@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" - integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-replace-overflow-wrap@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" - integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== - -postcss-selector-not@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" - integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: - version "6.0.11" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-svgo@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" - integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== - dependencies: - postcss-value-parser "^4.2.0" - svgo "^2.7.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-unique-selectors@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" - integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" - integrity sha512-VbGX1LQgQbf9l3cZ3qbUuC3hGqIEOGQFHAEHQ/Diaeo0yLgpgK5Rb8J+OcamIfQ9PbAU/fzBjVtQX3AhJHUvZw== - dependencies: - chalk "^1.1.3" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.1: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.35: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -postcss@^8.0.9, postcss@^8.2.1, postcss@^8.3.5, postcss@^8.4.19, postcss@^8.4.21, postcss@^8.4.4: - version "8.4.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" - integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -preact-compat@^3.19.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/preact-compat/-/preact-compat-3.19.0.tgz#a71457b6a3bf051690a4411603bc2085aa061c2f" - integrity sha512-f83A4hIhH8Uzhb9GbIcGk8SM19ffWlwP9mDaYwQdRnMdekZwcCA7eIAbeV4EMQaV9C0Yuy8iKgBAtyTKPZQt/Q== - dependencies: - immutability-helper "^2.7.1" - preact-context "^1.1.3" - preact-render-to-string "^3.8.2" - preact-transition-group "^1.1.1" - prop-types "^15.6.2" - standalone-react-addons-pure-render-mixin "^0.1.1" - -preact-context@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/preact-context/-/preact-context-1.1.4.tgz#866ebd35bef5788f73fc453f06f01b03ddf8f4ff" - integrity sha512-gcCjPJ65R0MiW9hDu8W/3WAmyTElIvwLyEO6oLQiM6/TbLKLxCpBCWV8GJjx52TTEyUr60HLDcmoCXZlslelzQ== - -preact-render-to-string@^3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-3.8.2.tgz#bd72964d705a57da3a9e72098acaa073dd3ceff9" - integrity sha512-przuZPajiurStGgxMoJP0EJeC4xj5CgHv+M7GfF3YxAdhGgEWAkhOSE0xympAFN20uMayntBZpttIZqqLl77fw== - dependencies: - pretty-format "^3.5.1" - -preact-transition-group@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/preact-transition-group/-/preact-transition-group-1.1.1.tgz#f0a49327ea515ece34ea2be864c4a7d29e5d6e10" - integrity sha512-v89XLodCvylf5lMrhI+LqIhDsAjWfiDKV4keAU+L5yDtxmqn8uvjZXn+haKMEG0x0PZz81own19SuNJD5NlOFQ== - -preact@^10.11.3: - version "10.13.2" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.13.2.tgz#2c40c73d57248b57234c4ae6cd9ab9d8186ebc0a" - integrity sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw== - -prebuild-install@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" - integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== - dependencies: - detect-libc "^2.0.0" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^3.3.0" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^4.0.0" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - -preferred-pm@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.0.3.tgz#1b6338000371e3edbce52ef2e4f65eb2e73586d6" - integrity sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ== - dependencies: - find-up "^5.0.0" - find-yarn-workspace-root2 "1.2.16" - path-exists "^4.0.0" - which-pm "2.0.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== - -prettier@^2.7.1, prettier@latest: - version "2.8.7" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450" - integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw== - -pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: - version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" - integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== - -pretty-error@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" - integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== - dependencies: - lodash "^4.17.20" - renderkid "^3.0.0" - -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-format@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" - integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== - dependencies: - "@jest/schemas" "^28.1.3" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-format@^29.0.0, pretty-format@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" - integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== - dependencies: - "@jest/schemas" "^29.4.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-format@^3.5.1: - version "3.8.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385" - integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@~0.11.0: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise.series@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" - integrity sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ== - -promise@^8.1.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" - integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== - dependencies: - asap "~2.0.6" - -prompts@^2.0.1, prompts@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - -psl@^1.1.28, psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - -punycode@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -pupa@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - -pvtsutils@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" - integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== - dependencies: - tslib "^2.4.0" - -pvutils@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" - integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== - -q@^1.1.2, q@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - -qr.js@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/qr.js/-/qr.js-0.0.0.tgz#cace86386f59a0db8050fa90d9b6b0e88a1e364f" - integrity sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ== - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@^6.4.0: - version "6.11.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" - integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -querystring-es3@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -quickly-copy-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz#9f8ff066230510ee7422b0121472b093a8690859" - integrity sha512-Coy5ADj9Z3iKZ/7Y0Qtf04mBET550LPemwp9rLPE2rROidvuqB42nP7w5SwM6Wl6jPNcrxSSgzco01h1Hu8iIg== - dependencies: - mkdirp "~0.5.0" - -raf@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - integrity sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg== - dependencies: - bytes "1" - string_decoder "0.10" - -rc@1.2.8, rc@^1.2.7, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-app-polyfill@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz#95221e0a9bd259e5ca6b177c7bb1cb6768f68fd7" - integrity sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w== - dependencies: - core-js "^3.19.2" - object-assign "^4.1.1" - promise "^8.1.0" - raf "^3.4.1" - regenerator-runtime "^0.13.9" - whatwg-fetch "^3.6.2" - -react-app-rewired@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/react-app-rewired/-/react-app-rewired-2.2.1.tgz#84901ee1e3f26add0377ebec0b41bcdfce9fc211" - integrity sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA== - dependencies: - semver "^5.6.0" - -react-dev-utils@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" - integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== - dependencies: - "@babel/code-frame" "^7.16.0" - address "^1.1.2" - browserslist "^4.18.1" - chalk "^4.1.2" - cross-spawn "^7.0.3" - detect-port-alt "^1.1.6" - escape-string-regexp "^4.0.0" - filesize "^8.0.6" - find-up "^5.0.0" - fork-ts-checker-webpack-plugin "^6.5.0" - global-modules "^2.0.0" - globby "^11.0.4" - gzip-size "^6.0.0" - immer "^9.0.7" - is-root "^2.1.0" - loader-utils "^3.2.0" - open "^8.4.0" - pkg-up "^3.1.0" - prompts "^2.4.2" - react-error-overlay "^6.0.11" - recursive-readdir "^2.2.2" - shell-quote "^1.7.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -react-dom@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.0" - -react-error-overlay@6.0.9: - version "6.0.9" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" - integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== - -react-error-overlay@^6.0.11: - version "6.0.11" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" - integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== - -react-is@^16.13.1, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -react-qr-code@^2.0.7: - version "2.0.11" - resolved "https://registry.yarnpkg.com/react-qr-code/-/react-qr-code-2.0.11.tgz#444c759a2100424972e17135fbe0e32eaffa19e8" - integrity sha512-P7mvVM5vk9NjGdHMt4Z0KWeeJYwRAtonHTghZT2r+AASinLUUKQ9wfsGH2lPKsT++gps7hXmaiMGRvwTDEL9OA== - dependencies: - prop-types "^15.8.1" - qr.js "0.0.0" - -react-refresh@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.10.0.tgz#2f536c9660c0b9b1d500684d9e52a65e7404f7e3" - integrity sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ== - -react-refresh@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" - integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== - -react-router-dom@^6.3.0: - version "6.10.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.10.0.tgz#090ddc5c84dc41b583ce08468c4007c84245f61f" - integrity sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg== - dependencies: - "@remix-run/router" "1.5.0" - react-router "6.10.0" - -react-router@6.10.0: - version "6.10.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.10.0.tgz#230f824fde9dd0270781b5cb497912de32c0a971" - integrity sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ== - dependencies: - "@remix-run/router" "1.5.0" - -react-scripts@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-5.0.1.tgz#6285dbd65a8ba6e49ca8d651ce30645a6d980003" - integrity sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ== - dependencies: - "@babel/core" "^7.16.0" - "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3" - "@svgr/webpack" "^5.5.0" - babel-jest "^27.4.2" - babel-loader "^8.2.3" - babel-plugin-named-asset-import "^0.3.8" - babel-preset-react-app "^10.0.1" - bfj "^7.0.2" - browserslist "^4.18.1" - camelcase "^6.2.1" - case-sensitive-paths-webpack-plugin "^2.4.0" - css-loader "^6.5.1" - css-minimizer-webpack-plugin "^3.2.0" - dotenv "^10.0.0" - dotenv-expand "^5.1.0" - eslint "^8.3.0" - eslint-config-react-app "^7.0.1" - eslint-webpack-plugin "^3.1.1" - file-loader "^6.2.0" - fs-extra "^10.0.0" - html-webpack-plugin "^5.5.0" - identity-obj-proxy "^3.0.0" - jest "^27.4.3" - jest-resolve "^27.4.2" - jest-watch-typeahead "^1.0.0" - mini-css-extract-plugin "^2.4.5" - postcss "^8.4.4" - postcss-flexbugs-fixes "^5.0.2" - postcss-loader "^6.2.1" - postcss-normalize "^10.0.1" - postcss-preset-env "^7.0.1" - prompts "^2.4.2" - react-app-polyfill "^3.0.0" - react-dev-utils "^12.0.1" - react-refresh "^0.11.0" - resolve "^1.20.0" - resolve-url-loader "^4.0.0" - sass-loader "^12.3.0" - semver "^7.3.5" - source-map-loader "^3.0.0" - style-loader "^3.3.1" - tailwindcss "^3.0.2" - terser-webpack-plugin "^5.2.5" - webpack "^5.64.4" - webpack-dev-server "^4.6.0" - webpack-manifest-plugin "^4.0.2" - workbox-webpack-plugin "^6.4.1" - optionalDependencies: - fsevents "^2.3.2" - -react@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -react@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" - integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== - dependencies: - loose-envify "^1.1.0" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - -read-only-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - integrity sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w== - dependencies: - readable-stream "^2.0.2" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -read-yaml-file@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-yaml-file/-/read-yaml-file-1.1.0.tgz#9362bbcbdc77007cc8ea4519fe1c0b821a7ce0d8" - integrity sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== - dependencies: - graceful-fs "^4.1.5" - js-yaml "^3.6.1" - pify "^4.0.1" - strip-bom "^3.0.0" - -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -readline-sync@^1.4.10: - version "1.4.10" - resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" - integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== - -receptacle@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" - integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== - dependencies: - ms "^2.1.1" - -recursive-readdir@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" - integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== - dependencies: - minimatch "^3.0.5" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -reduce-flatten@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-1.0.1.tgz#258c78efd153ddf93cb561237f61184f3696e327" - integrity sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ== - -reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.9: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regex-parser@^2.2.11: - version "2.2.11" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" - integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== - dependencies: - "@babel/regjsgen" "^0.8.0" - regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - -registry-auth-token@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" - integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== - dependencies: - rc "1.2.8" - -registry-url@^5.0.0, registry-url@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== - dependencies: - jsesc "~0.5.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -remark-footnotes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-3.0.0.tgz#5756b56f8464fa7ed80dbba0c966136305d8cb8d" - integrity sha512-ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg== - dependencies: - mdast-util-footnote "^0.1.0" - micromark-extension-footnote "^0.3.0" - -remark-frontmatter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz#ca5d996361765c859bd944505f377d6b186a6ec6" - integrity sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA== - dependencies: - mdast-util-frontmatter "^0.2.0" - micromark-extension-frontmatter "^0.2.0" - -remark-gfm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" - integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA== - dependencies: - mdast-util-gfm "^0.1.0" - micromark-extension-gfm "^0.3.0" - -remark-parse@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" - integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== - dependencies: - mdast-util-from-markdown "^0.8.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -renderkid@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" - integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^6.0.1" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.0.0, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -requizzle@^0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.4.tgz#319eb658b28c370f0c20f968fa8ceab98c13d27c" - integrity sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw== - dependencies: - lodash "^4.17.21" - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz#d50d4ddc746bb10468443167acf800dcd6c3ad57" - integrity sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA== - dependencies: - adjust-sourcemap-loader "^4.0.0" - convert-source-map "^1.7.0" - loader-utils "^2.0.0" - postcss "^7.0.35" - source-map "0.6.1" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - -resolve.exports@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" - integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== - -resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.1, resolve@^1.14.2, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.4.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^2.0.0-next.3, resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -response-iterator@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" - integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== - dependencies: - lowercase-keys "^1.0.0" - -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@0.13.1, retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfc4648@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.4.0.tgz#c75b2856ad2e2d588b6ddb985d556f1f7f2a2abd" - integrity sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== - -rimraf@2, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -roarr@^2.15.3: - version "2.15.4" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" - integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== - dependencies: - boolean "^3.0.1" - detect-node "^2.0.4" - globalthis "^1.0.1" - json-stringify-safe "^5.0.1" - semver-compare "^1.0.0" - sprintf-js "^1.1.2" - -rollup-plugin-postcss@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz#d1bcaf8eb0fcb0936e3684c22dd8628d13a82fd1" - integrity sha512-JHnGfW8quNc6ePxEkZ05HEZ1YiRxDgY9RKEetMfsrwxR2kh/d90OVScTc6b1c2Q17Cs/5TRYL+1uddG21lQe3w== - dependencies: - chalk "^4.0.0" - concat-with-sourcemaps "^1.1.0" - cssnano "^4.1.10" - import-cwd "^3.0.0" - p-queue "^6.3.0" - pify "^5.0.0" - postcss "^7.0.27" - postcss-load-config "^2.1.0" - postcss-modules "^2.0.0" - promise.series "^0.2.0" - resolve "^1.16.1" - rollup-pluginutils "^2.8.2" - safe-identifier "^0.4.1" - style-inject "^0.3.0" - -rollup-plugin-postcss@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" - integrity sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w== - dependencies: - chalk "^4.1.0" - concat-with-sourcemaps "^1.1.0" - cssnano "^5.0.1" - import-cwd "^3.0.0" - p-queue "^6.6.2" - pify "^5.0.0" - postcss-load-config "^3.0.0" - postcss-modules "^4.0.0" - promise.series "^0.2.0" - resolve "^1.19.0" - rollup-pluginutils "^2.8.2" - safe-identifier "^0.4.2" - style-inject "^0.3.0" - -rollup-plugin-string@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-string/-/rollup-plugin-string-3.0.0.tgz#fed2d6301fae1e59eb610957df757ef13fada3f0" - integrity sha512-vqyzgn9QefAgeKi+Y4A7jETeIAU1zQmS6VotH6bzm/zmUQEnYkpIGRaOBPY41oiWYV4JyBoGAaBjYMYuv+6wVw== - dependencies: - rollup-pluginutils "^2.4.1" - -rollup-plugin-svelte@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz#66362cf0500fb7a848283ebcf19d289a60ef0871" - integrity sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow== - dependencies: - require-relative "^0.8.7" - rollup-pluginutils "^2.8.2" - sourcemap-codec "^1.4.8" - -rollup-plugin-terser@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" - integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== - dependencies: - "@babel/code-frame" "^7.10.4" - jest-worker "^26.2.1" - serialize-javascript "^4.0.0" - terser "^5.0.0" - -rollup-pluginutils@^2.4.1, rollup-pluginutils@^2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@^2.3.4, rollup@^2.43.1, rollup@^2.56.3: - version "2.79.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" - integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== - optionalDependencies: - fsevents "~2.3.2" - -rollup@^3.18.0: - version "3.20.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.20.2.tgz#f798c600317f216de2e4ad9f4d9ab30a89b690ff" - integrity sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg== - optionalDependencies: - fsevents "~2.3.2" - -rsvp@^3.5.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" - integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== - -rsvp@^4.6.1, rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -run-async@^2.2.0, run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -run-script-os@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/run-script-os/-/run-script-os-1.1.6.tgz#8b0177fb1b54c99a670f95c7fdc54f18b9c72347" - integrity sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw== - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg== - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA== - -rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@^6.6.3: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -sade@^1.7.4: - version "1.8.1" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" - integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - dependencies: - mri "^1.1.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-identifier@^0.4.1, safe-identifier@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" - integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - integrity sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A== - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sander@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" - integrity sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA== - dependencies: - es6-promise "^3.1.2" - graceful-fs "^4.1.3" - mkdirp "^0.5.1" - rimraf "^2.5.2" - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -sanitize.css@*: - version "13.0.0" - resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173" - integrity sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA== - -sass-loader@^12.3.0: - version "12.6.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" - integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== - dependencies: - klona "^2.0.4" - neo-async "^2.6.2" - -sass@*: - version "1.60.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.60.0.tgz#657f0c23a302ac494b09a5ba8497b739fb5b5a81" - integrity sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - -sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== - dependencies: - loose-envify "^1.1.0" - -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" - integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.8.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" - -scoped-regex@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" - integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== - -secp256k1@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== - dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== - dependencies: - node-forge "^1" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -send@^0.17.1: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "1.8.1" - mime "1.6.0" - ms "2.1.3" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-error@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" - integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== - dependencies: - type-fest "^0.13.1" - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sha256@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/sha256/-/sha256-0.2.0.tgz#73a0b418daab7035bff86e8491e363412fc2ab05" - integrity sha512-kTWMJUaez5iiT9CcMv8jSq6kMhw3ST0uRdcIWl3D77s6AsLXNXRp3heeqqfu5+Dyfu4hwpQnMzhqHh8iNQxw0w== - dependencies: - convert-hex "~0.1.0" - convert-string "~0.1.0" - -sha3@^2.1.3: - version "2.1.4" - resolved "https://registry.yarnpkg.com/sha3/-/sha3-2.1.4.tgz#000fac0fe7c2feac1f48a25e7a31b52a6492cc8f" - integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg== - dependencies: - buffer "6.0.3" - -shasum-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" - integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== - dependencies: - fast-safe-stringify "^2.0.7" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.6.1, shell-quote@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" - integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -shiki@^0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.1.tgz#9fbe082d0a8aa2ad63df4fbf2ee11ec924aa7ee1" - integrity sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw== - dependencies: - ansi-sequence-parser "^1.1.0" - jsonc-parser "^3.2.0" - vscode-oniguruma "^1.7.0" - vscode-textmate "^8.0.0" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" - integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== - dependencies: - decompress-response "^6.0.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -sinon@*: - version "15.0.3" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.0.3.tgz#38005fcd80827177b6aa0245f82401d9ec88994b" - integrity sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw== - dependencies: - "@sinonjs/commons" "^3.0.0" - "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/samsam" "^8.0.0" - diff "^5.1.0" - nise "^5.1.4" - supports-color "^7.2.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== - -slick@^1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" - integrity sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A== - -smartwrap@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-2.0.2.tgz#7e25d3dd58b51c6ca4aba3a9e391650ea62698a4" - integrity sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA== - dependencies: - array.prototype.flat "^1.2.3" - breakword "^1.0.5" - grapheme-splitter "^1.0.4" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - yargs "^15.1.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -sorcery@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" - integrity sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g== - dependencies: - buffer-crc32 "^0.2.5" - minimist "^1.2.0" - sander "^0.5.0" - sourcemap-codec "^1.3.0" - -source-list-map@^2.0.0, source-list-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-loader@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.2.tgz#af23192f9b344daa729f6772933194cc5fa54fee" - integrity sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg== - dependencies: - abab "^2.0.5" - iconv-lite "^0.6.3" - source-map-js "^1.0.1" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.6, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.5.6, source-map@~0.5.3: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -source-map@^0.8.0-beta.0: - version "0.8.0-beta.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" - integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== - dependencies: - whatwg-url "^7.0.0" - -sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -spawndamnit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-2.0.0.tgz#9f762ac5c3476abb994b42ad592b5ad22bb4b0ad" - integrity sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA== - dependencies: - cross-spawn "^5.1.0" - signal-exit "^3.0.2" - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -split@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^2.0.2, stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -stackframe@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" - integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== - -standalone-react-addons-pure-render-mixin@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz#3c7409f4c79c40de9ac72c616cf679a994f37551" - integrity sha512-HFkwqpJmvz4vxHyzdeUcjtsp8Am+NauLXdU2/YXT1/InPbszaRo1cLPAy/58H7oOPNNjteqHcv04JEw+d9C+Xw== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - -stream-browserify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - dependencies: - inherits "~2.0.4" - readable-stream "^3.5.0" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-http@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" - integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - -stream-meter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz#52af95aa5ea760a2491716704dbff90f73afdd1d" - integrity sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ== - dependencies: - readable-stream "^2.1.4" - -stream-splicer@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" - integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.2" - -stream-transform@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.1.3.tgz#a1c3ecd72ddbf500aa8d342b0b9df38f5aa598e3" - integrity sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ== - dependencies: - mixme "^0.5.1" - -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-length@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-5.0.1.tgz#3d647f497b6e8e8d41e422f7e0b23bc536c8381e" - integrity sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow== - dependencies: - char-regex "^2.0.0" - strip-ansi "^7.0.1" - -string-natural-compare@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" - integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" - integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" - side-channel "^1.0.4" - -string.prototype.padend@^3.0.0: - version "3.1.4" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz#2c43bb3a89eb54b6750de5942c123d6c98dd65b6" - integrity sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string_decoder@0.10: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" - integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -style-inject@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" - integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== - -style-loader@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.2.tgz#eaebca714d9e462c19aa1e3599057bc363924899" - integrity sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw== - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -stylehacks@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" - integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== - dependencies: - browserslist "^4.21.4" - postcss-selector-parser "^6.0.4" - -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - integrity sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg== - dependencies: - minimist "^1.1.0" - -subscriptions-transport-ws@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz#baf88f050cba51d52afe781de5e81b3c31f89883" - integrity sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ== - dependencies: - backo2 "^1.0.2" - eventemitter3 "^3.1.0" - iterall "^1.2.1" - symbol-observable "^1.0.4" - ws "^5.2.0 || ^6.0.0 || ^7.0.0" - -sucrase@^3.29.0: - version "3.31.0" - resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.31.0.tgz#daae4fd458167c5d4ba1cce6aef57b988b417b33" - integrity sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ== - dependencies: - commander "^4.0.0" - glob "7.1.6" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" - -sumchecker@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" - integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== - dependencies: - debug "^4.1.0" - -supports-color@8.1.1, supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== - dependencies: - has-flag "^1.0.0" - -supports-color@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - integrity sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw== - dependencies: - has-flag "^2.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svelte-check@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-1.6.0.tgz#fcc7b28252a89be0e4cd369c58bbf8e76e81295f" - integrity sha512-nQTlbFJWhwoeLY5rkhgbjzGQSwk5F1pRdEXait0EFaQSrE/iJF+PIjrQlk0BjL/ogk9HaR9ZI0DQSYrl7jl3IQ== - dependencies: - chalk "^4.0.0" - chokidar "^3.4.1" - glob "^7.1.6" - import-fresh "^3.2.1" - minimist "^1.2.5" - sade "^1.7.4" - source-map "^0.7.3" - svelte-preprocess "^4.0.0" - typescript "*" - -svelte-preprocess@^4.0.0: - version "4.10.7" - resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz#3626de472f51ffe20c9bc71eff5a3da66797c362" - integrity sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw== - dependencies: - "@types/pug" "^2.0.4" - "@types/sass" "^1.16.0" - detect-indent "^6.0.0" - magic-string "^0.25.7" - sorcery "^0.10.0" - strip-indent "^3.0.0" - -svelte@^3.0.0: - version "3.58.0" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.58.0.tgz#d3e6f103efd6129e51c7d709225ad3b4c052b64e" - integrity sha512-brIBNNB76mXFmU/Kerm4wFnkskBbluBDCjx/8TcpYRb298Yh2dztS2kQ6bhtjMcvUhd5ynClfwpz5h2gnzdQ1A== - -svg-parser@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" - integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== - -svgo@^1.0.0, svgo@^1.2.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -svgo@^2.7.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" - picocolors "^1.0.0" - stable "^0.1.8" - -"swipl-stdio@file:../node-swipl-stdio": - version "1.0.4" - dependencies: - debug "^2.6.4" - split "^1.0.1" - -symbol-observable@^1.0.2, symbol-observable@^1.0.4, symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - -symbol-observable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-3.0.0.tgz#eea8f6478c651018e059044268375c408c15c533" - integrity sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q== - -symbol-observable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" - integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -syntax-error@^1.1.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" - integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== - dependencies: - acorn-node "^1.2.0" - -table-layout@^0.4.2: - version "0.4.5" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-0.4.5.tgz#d906de6a25fa09c0c90d1d08ecd833ecedcb7378" - integrity sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw== - dependencies: - array-back "^2.0.0" - deep-extend "~0.6.0" - lodash.padend "^4.6.1" - typical "^2.6.1" - wordwrapjs "^3.0.0" - -taffydb@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" - integrity sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== - -tailwindcss@^3.0.2: - version "3.3.1" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.1.tgz#b6662fab6a9b704779e48d083a9fef5a81d2b81e" - integrity sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g== - dependencies: - arg "^5.0.2" - chokidar "^3.5.3" - color-name "^1.1.4" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.2.12" - glob-parent "^6.0.2" - is-glob "^4.0.3" - jiti "^1.17.2" - lilconfig "^2.0.6" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.0.9" - postcss-import "^14.1.0" - postcss-js "^4.0.0" - postcss-load-config "^3.1.4" - postcss-nested "6.0.0" - postcss-selector-parser "^6.0.11" - postcss-value-parser "^4.2.0" - quick-lru "^5.1.1" - resolve "^1.22.1" - sucrase "^3.29.0" - -tapable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -tar-fs@^2.0.0, tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar@^4.4.2: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -temp-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" - integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== - -tempy@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" - integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== - dependencies: - is-stream "^2.0.0" - temp-dir "^2.0.0" - type-fest "^0.16.0" - unique-string "^2.0.0" - -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - -terminal-link@^2.0.0, terminal-link@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5: - version "5.3.7" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz#ef760632d24991760f339fe9290deb936ad1ffc7" - integrity sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.17" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.16.5" - -terser@^5.0.0, terser@^5.10.0, terser@^5.16.5: - version "5.16.8" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.8.tgz#ccde583dabe71df3f4ed02b65eb6532e0fae15d5" - integrity sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -test-value@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" - integrity sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w== - dependencies: - array-back "^1.0.3" - typical "^2.6.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - -throat@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" - integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== - -through2@^2.0.0, through2@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - integrity sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q== - dependencies: - process "~0.11.0" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== - -tiny-lr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -tmp@0.0.28: - version "0.0.28" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" - integrity sha512-c2mmfiBmND6SOVxzogm1oda0OJ1HZVIk/5n26N59dDTh80MUeavpiCls4PGAdkX1PFkKokLpcf7prSjCeXLsJg== - dependencies: - os-tmpdir "~1.0.1" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmp@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-readable-stream@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" - integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -toml@^2.3.0: - version "2.3.6" - resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" - integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== - -tough-cookie@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== - dependencies: - punycode "^2.1.0" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -transform-markdown-links@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/transform-markdown-links/-/transform-markdown-links-2.1.0.tgz#de2178d96ef0e020226ebd967dcc5873df039792" - integrity sha512-7HWQwQ9US+tJSMMzi1aP+KA3QwfjDs8sB4H5GBMRHFNBMQVdgoF6VfIFy2nJR/UHRTkYoGFwWh2pe+QIwSvfOA== - -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" - integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== - -traverse@^0.6.7: - version "0.6.7" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" - integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - -try-resolve@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/try-resolve/-/try-resolve-1.0.1.tgz#cfde6fabd72d63e5797cfaab873abbe8e700e912" - integrity sha512-yHeaPjCBzVaXwWl5IMUapTaTC2rn/eBYg2fsG2L+CvJd+ttFbk0ylDnpTO3wVhosmE1tQEvcebbBeKLCwScQSQ== - -tryer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== - -ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== - -ts-invariant@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" - integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== - dependencies: - tslib "^2.1.0" - -ts-invariant@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" - integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== - dependencies: - tslib "^1.9.3" - -ts-jest@^26.5.6: - version "26.5.6" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.6.tgz#c32e0746425274e1dfe333f43cd3c800e014ec35" - integrity sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA== - dependencies: - bs-logger "0.x" - buffer-from "1.x" - fast-json-stable-stringify "2.x" - jest-util "^26.1.0" - json5 "2.x" - lodash "4.x" - make-error "1.x" - mkdirp "1.x" - semver "7.x" - yargs-parser "20.x" - -ts-mocha@*: - version "10.0.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.0.0.tgz#41a8d099ac90dbbc64b06976c5025ffaebc53cb9" - integrity sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw== - dependencies: - ts-node "7.0.1" - optionalDependencies: - tsconfig-paths "^3.5.0" - -ts-node@10.9.1, ts-node@^10.5.0: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -ts-node@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" - integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== - dependencies: - arrify "^1.0.0" - buffer-from "^1.1.0" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.5.6" - yn "^2.0.0" - -ts-typed-json@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/ts-typed-json/-/ts-typed-json-0.2.2.tgz#53184bee893e45991b73c8c463a38b59e27cd47e" - integrity sha512-9VrASRmfrPbsuXvl9rdq82TzGs3Qg7D8eI5vF6LOLBhFh5sju5wbpE73DzxUtyQ954kfVO9yfF9NNgXAJ16cPw== - dependencies: - rsvp "^3.5.0" - -tsconfig-paths@^3.14.1, tsconfig-paths@^3.5.0: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== - -tty-table@^4.1.5: - version "4.2.1" - resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.2.1.tgz#c06cd76c54542acf4e2b4a0e9a5802984b65cba6" - integrity sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g== - dependencies: - chalk "^4.1.2" - csv "^5.5.3" - kleur "^4.1.5" - smartwrap "^2.0.2" - strip-ansi "^6.0.1" - wcwidth "^1.0.1" - yargs "^17.7.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tunnel@0.0.6, tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -turbo-darwin-64@1.8.8: - version "1.8.8" - resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.8.8.tgz#f72b1b6275415b17238f450032c8ef5e5fc71777" - integrity sha512-18cSeIm7aeEvIxGyq7PVoFyEnPpWDM/0CpZvXKHpQ6qMTkfNt517qVqUTAwsIYqNS8xazcKAqkNbvU1V49n65Q== - -turbo-darwin-arm64@1.8.8: - version "1.8.8" - resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.8.8.tgz#8ec78848e0d5978fd732b3588a1b406fdb978839" - integrity sha512-ruGRI9nHxojIGLQv1TPgN7ud4HO4V8mFBwSgO6oDoZTNuk5ybWybItGR+yu6fni5vJoyMHXOYA2srnxvOc7hjQ== - -turbo-linux-64@1.8.8: - version "1.8.8" - resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.8.8.tgz#b1f707b23bc6e22b2894dd8063fc2fa4dbb6ffb9" - integrity sha512-N/GkHTHeIQogXB1/6ZWfxHx+ubYeb8Jlq3b/3jnU4zLucpZzTQ8XkXIAfJG/TL3Q7ON7xQ8yGOyGLhHL7MpFRg== - -turbo-linux-arm64@1.8.8: - version "1.8.8" - resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.8.8.tgz#34575bdffd2af8c835d9ba3dd9e3a83e0d31dac9" - integrity sha512-hKqLbBHgUkYf2Ww8uBL9UYdBFQ5677a7QXdsFhONXoACbDUPvpK4BKlz3NN7G4NZ+g9dGju+OJJjQP0VXRHb5w== - -turbo-windows-64@1.8.8: - version "1.8.8" - resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.8.8.tgz#73f67969d54269c95cbf7f082e22c20368aedddc" - integrity sha512-2ndjDJyzkNslXxLt+PQuU21AHJWc8f6MnLypXy3KsN4EyX/uKKGZS0QJWz27PeHg0JS75PVvhfFV+L9t9i+Yyg== - -turbo-windows-arm64@1.8.8: - version "1.8.8" - resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.8.8.tgz#c80b9a170adf6ee028e9dcae45b07755af83f3f2" - integrity sha512-xCA3oxgmW9OMqpI34AAmKfOVsfDljhD5YBwgs0ZDsn5h3kCHhC4x9W5dDk1oyQ4F5EXSH3xVym5/xl1J6WRpUg== - -turbo@latest: - version "1.8.8" - resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.8.8.tgz#8bb331e3f0bd9656b20321339e91e899ad499012" - integrity sha512-qYJ5NjoTX+591/x09KgsDOPVDUJfU9GoS+6jszQQlLp1AHrf1wRFA3Yps8U+/HTG03q0M4qouOfOLtRQP4QypA== - optionalDependencies: - turbo-darwin-64 "1.8.8" - turbo-darwin-arm64 "1.8.8" - turbo-linux-64 "1.8.8" - turbo-linux-arm64 "1.8.8" - turbo-windows-64 "1.8.8" - turbo-windows-arm64 "1.8.8" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" - integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== - -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - -type-fest@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" - integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" - integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-graphql@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" - integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== - dependencies: - "@types/glob" "^7.1.3" - "@types/node" "^14.11.2" - "@types/semver" "^7.3.3" - glob "^7.1.6" - graphql-query-complexity "^0.7.0" - graphql-subscriptions "^1.1.0" - semver "^7.3.2" - tslib "^2.0.1" - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -typedoc-plugin-markdown@^3.13.6: - version "3.14.0" - resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.14.0.tgz#17b99ee3ab0d21046d253f185f7669e80d0d7891" - integrity sha512-UyQLkLRkfTFhLdhSf3RRpA3nNInGn+k6sll2vRXjflaMNwQAAiB61SYbisNZTg16t4K1dt1bPQMMGLrxS0GZ0Q== - dependencies: - handlebars "^4.7.7" - -typedoc@^0.23.16: - version "0.23.28" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.28.tgz#3ce9c36ef1c273fa849d2dea18651855100d3ccd" - integrity sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w== - dependencies: - lunr "^2.3.9" - marked "^4.2.12" - minimatch "^7.1.3" - shiki "^0.14.1" - -typescript@*: - version "5.0.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.3.tgz#fe976f0c826a88d0a382007681cbb2da44afdedf" - integrity sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA== - -typescript@^4.2.4, typescript@^4.5.5, typescript@^4.6.2: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -typical@^2.6.0, typical@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" - integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - -uglify-js@^3.1.4: - version "3.17.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" - integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== - -uint8arrays@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" - integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== - dependencies: - multiformats "^9.4.2" - -umd@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" - integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -undeclared-identifiers@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" - integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== - dependencies: - acorn-node "^1.3.0" - dash-ast "^1.0.0" - get-assigned-identifiers "^1.2.0" - simple-concat "^1.0.0" - xtend "^4.0.1" - -underscore@^1.13.2, underscore@~1.13.2: - version "1.13.6" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" - integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - -unified@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" - integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" - integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== - -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - dependencies: - "@types/unist" "^2.0.2" - -unist-util-visit-parents@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" - integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -unxhr@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unxhr/-/unxhr-1.0.1.tgz#92200322d66c728993de771f9e01eeb21f41bc7b" - integrity sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg== - -unzipper@^0.10.11: - version "0.10.11" - resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" - integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== - dependencies: - big-integer "^1.6.17" - binary "~0.3.0" - bluebird "~3.4.1" - buffer-indexof-polyfill "~1.0.0" - duplexer2 "~0.1.4" - fstream "^1.0.12" - graceful-fs "^4.2.2" - listenercount "~1.0.1" - readable-stream "~2.3.6" - setimmediate "~1.0.4" - -upath@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-notifier@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" - integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== - dependencies: - boxen "^5.0.0" - chalk "^4.1.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.4.0" - is-npm "^5.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.1.0" - pupa "^2.1.1" - semver "^7.3.4" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -update-section@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158" - integrity sha512-BpRZMZpgXLuTiKeiu7kK0nIPwGdyrqrs6EDSaXtjD/aQ2T+qVo9a5hRC3HN3iJjCMxNT/VxoLGQ7E/OzE5ucnw== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urijs@^1.19.6: - version "1.19.11" - resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc" - integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ== - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== - dependencies: - inherits "2.0.1" - -util@~0.12.0: - version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -v8-to-istanbul@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" - integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" - integrity sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg== - -valid-data-url@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/valid-data-url/-/valid-data-url-3.0.1.tgz#826c1744e71b5632e847dd15dbd45b9fb38aa34f" - integrity sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== - dependencies: - builtins "^1.0.3" - -validator@^13.7.0: - version "13.9.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.9.0.tgz#33e7b85b604f3bbce9bb1a05d5c3e22e1c2ff855" - integrity sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA== - -value-or-promise@1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" - integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== - -value-or-promise@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" - integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== - -varint@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" - integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" - -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - -vite@^4.0.1, vite@^4.1.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.2.1.tgz#6c2eb337b0dfd80a9ded5922163b94949d7fc254" - integrity sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg== - dependencies: - esbuild "^0.17.5" - postcss "^8.4.21" - resolve "^1.22.1" - rollup "^3.18.0" - optionalDependencies: - fsevents "~2.3.2" - -vm-browserify@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vscode-oniguruma@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" - integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== - -vscode-textmate@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d" - integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -web-resource-inliner@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz#df0822f0a12028805fe80719ed52ab6526886e02" - integrity sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A== - dependencies: - ansi-colors "^4.1.1" - escape-goat "^3.0.0" - htmlparser2 "^5.0.0" - mime "^2.4.6" - node-fetch "^2.6.0" - valid-data-url "^3.0.0" - -web-streams-polyfill@^3.0.0, web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - -web-vitals@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" - integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== - -webcrypto-core@^1.7.7: - version "1.7.7" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" - integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== - dependencies: - "@peculiar/asn1-schema" "^2.3.6" - "@peculiar/json-schema" "^1.1.12" - asn1js "^3.0.1" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== - dependencies: - colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@^4.6.0: - version "4.13.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.13.2.tgz#d97445481d78691efe6d9a3b230833d802fc31f9" - integrity sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" - ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" - ws "^8.13.0" - -webpack-manifest-plugin@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz#10f8dbf4714ff93a215d5a45bcc416d80506f94f" - integrity sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow== - dependencies: - tapable "^2.0.0" - webpack-sources "^2.2.0" - -webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" - integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack@^5.64.4: - version "5.77.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.77.0.tgz#dea3ad16d7ea6b84aa55fa42f4eac9f30e7eb9b4" - integrity sha512-sbGNjBr5Ya5ss91yzjeJTLKyfiwo5C628AFjEa6WSXcZa4E+F57om3Cc8xLb1Jh0b243AWuSYRf3dn7HVeFQ9Q== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -wget-improved@^3.3.0, wget-improved@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/wget-improved/-/wget-improved-3.3.1.tgz#4ca99dc80db0ae388e99f4137f8deadd358630bc" - integrity sha512-OF22MM9ImbOcuB5ZV3ye0q1udaYeTP/V6LOfjNyGCNNC7bGB219ljZv6Wk5mPogeigJJ6CqheLScv17AFbsdGA== - dependencies: - minimist "1.2.6" - tunnel "0.0.6" - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-fetch@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" - integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== - -which-pm@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae" - integrity sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w== - dependencies: - load-yaml-file "^0.2.0" - path-exists "^4.0.0" - -which-typed-array@^1.1.2, which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -wordwrapjs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-3.0.0.tgz#c94c372894cadc6feb1a66bff64e1d9af92c5d1e" - integrity sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw== - dependencies: - reduce-flatten "^1.0.1" - typical "^2.6.1" - -workbox-background-sync@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9" - integrity sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g== - dependencies: - idb "^7.0.1" - workbox-core "6.5.4" - -workbox-broadcast-update@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz#8441cff5417cd41f384ba7633ca960a7ffe40f66" - integrity sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw== - dependencies: - workbox-core "6.5.4" - -workbox-build@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.4.tgz#7d06d31eb28a878817e1c991c05c5b93409f0389" - integrity sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA== - dependencies: - "@apideck/better-ajv-errors" "^0.3.1" - "@babel/core" "^7.11.1" - "@babel/preset-env" "^7.11.0" - "@babel/runtime" "^7.11.2" - "@rollup/plugin-babel" "^5.2.0" - "@rollup/plugin-node-resolve" "^11.2.1" - "@rollup/plugin-replace" "^2.4.1" - "@surma/rollup-plugin-off-main-thread" "^2.2.3" - ajv "^8.6.0" - common-tags "^1.8.0" - fast-json-stable-stringify "^2.1.0" - fs-extra "^9.0.1" - glob "^7.1.6" - lodash "^4.17.20" - pretty-bytes "^5.3.0" - rollup "^2.43.1" - rollup-plugin-terser "^7.0.0" - source-map "^0.8.0-beta.0" - stringify-object "^3.3.0" - strip-comments "^2.0.1" - tempy "^0.6.0" - upath "^1.2.0" - workbox-background-sync "6.5.4" - workbox-broadcast-update "6.5.4" - workbox-cacheable-response "6.5.4" - workbox-core "6.5.4" - workbox-expiration "6.5.4" - workbox-google-analytics "6.5.4" - workbox-navigation-preload "6.5.4" - workbox-precaching "6.5.4" - workbox-range-requests "6.5.4" - workbox-recipes "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - workbox-streams "6.5.4" - workbox-sw "6.5.4" - workbox-window "6.5.4" - -workbox-cacheable-response@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz#a5c6ec0c6e2b6f037379198d4ef07d098f7cf137" - integrity sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug== - dependencies: - workbox-core "6.5.4" - -workbox-core@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.4.tgz#df48bf44cd58bb1d1726c49b883fb1dffa24c9ba" - integrity sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q== - -workbox-expiration@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.4.tgz#501056f81e87e1d296c76570bb483ce5e29b4539" - integrity sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ== - dependencies: - idb "^7.0.1" - workbox-core "6.5.4" - -workbox-google-analytics@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz#c74327f80dfa4c1954cbba93cd7ea640fe7ece7d" - integrity sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg== - dependencies: - workbox-background-sync "6.5.4" - workbox-core "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - -workbox-navigation-preload@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz#ede56dd5f6fc9e860a7e45b2c1a8f87c1c793212" - integrity sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng== - dependencies: - workbox-core "6.5.4" - -workbox-precaching@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.4.tgz#740e3561df92c6726ab5f7471e6aac89582cab72" - integrity sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg== - dependencies: - workbox-core "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - -workbox-range-requests@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz#86b3d482e090433dab38d36ae031b2bb0bd74399" - integrity sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg== - dependencies: - workbox-core "6.5.4" - -workbox-recipes@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.4.tgz#cca809ee63b98b158b2702dcfb741b5cc3e24acb" - integrity sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA== - dependencies: - workbox-cacheable-response "6.5.4" - workbox-core "6.5.4" - workbox-expiration "6.5.4" - workbox-precaching "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - -workbox-routing@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.4.tgz#6a7fbbd23f4ac801038d9a0298bc907ee26fe3da" - integrity sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg== - dependencies: - workbox-core "6.5.4" - -workbox-strategies@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.4.tgz#4edda035b3c010fc7f6152918370699334cd204d" - integrity sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw== - dependencies: - workbox-core "6.5.4" - -workbox-streams@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.4.tgz#1cb3c168a6101df7b5269d0353c19e36668d7d69" - integrity sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg== - dependencies: - workbox-core "6.5.4" - workbox-routing "6.5.4" - -workbox-sw@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.4.tgz#d93e9c67924dd153a61367a4656ff4d2ae2ed736" - integrity sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA== - -workbox-webpack-plugin@^6.4.1: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz#baf2d3f4b8f435f3469887cf4fba2b7fac3d0fd7" - integrity sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg== - dependencies: - fast-json-stable-stringify "^2.1.0" - pretty-bytes "^5.4.1" - upath "^1.2.0" - webpack-sources "^1.4.3" - workbox-build "6.5.4" - -workbox-window@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.4.tgz#d991bc0a94dff3c2dbb6b84558cff155ca878e91" - integrity sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug== - dependencies: - "@types/trusted-types" "^2.0.2" - workbox-core "6.5.4" - -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== - -wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@8.13.0, ws@^8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.4.6: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xmlcreate@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" - integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== - -xmlhttprequest@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== - -xss@^1.0.8: - version "1.0.14" - resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" - integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== - dependencies: - commander "^2.20.3" - cssfilter "0.0.10" - -xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^18.1.2, yargs-parser@^18.1.3: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^15.1.0, yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^17.3.1, yargs@^17.7.1: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" - integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zen-observable-ts@^0.8.21: - version "0.8.21" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" - integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== - dependencies: - tslib "^1.9.3" - zen-observable "^0.8.0" - -zen-observable-ts@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" - integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== - dependencies: - zen-observable "0.8.15" - -zen-observable@0.8.15, zen-observable@^0.8.0: - version "0.8.15" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== - -zwitch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== \ No newline at end of file From 553f797cf8ab77dde21b0c24992c13f64493ed36 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 8 Jun 2023 14:30:10 +0100 Subject: [PATCH 326/722] delete ad4m-host from package-json in tests and add new yarn lock --- tests/js/package.json | 1 - yarn.lock | 22258 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 22258 insertions(+), 1 deletion(-) create mode 100644 yarn.lock diff --git a/tests/js/package.json b/tests/js/package.json index 21ccaf5c6..05976bb62 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -51,7 +51,6 @@ "typescript": "^4.6.2", "unzipper": "^0.10.11", "ws": "8.13.0", - "ad4m-host": "*", "run-script-os": "^1.1.6" } } diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..bfd6fed43 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,22258 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adobe/css-tools@^4.0.1": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" + integrity sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA== + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@apideck/better-ajv-errors@^0.3.1": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz#957d4c28e886a64a8141f7522783be65733ff097" + integrity sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA== + dependencies: + json-schema "^0.4.0" + jsonpointer "^5.0.0" + leven "^3.1.0" + +"@apollo/client@3.7.10": + version "3.7.10" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.7.10.tgz#addc5fcebaf016981d9476268a06d529be83f568" + integrity sha512-/k1MfrqPKYiPNdHcOzdxg9cEx96vhAGxAcSorzfBvV29XtFQcYW2cPNQOTjK/fpSMtqVo8UNmu5vwQAWD1gfCg== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@wry/context" "^0.7.0" + "@wry/equality" "^0.5.0" + "@wry/trie" "^0.3.0" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.1" + prop-types "^15.7.2" + response-iterator "^0.2.6" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" + +"@apollo/protobufjs@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.6.tgz#d601e65211e06ae1432bf5993a1a0105f2862f27" + integrity sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +"@apollo/protobufjs@1.2.7": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.7.tgz#3a8675512817e4a046a897e5f4f16415f16a7d8a" + integrity sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + long "^4.0.0" + +"@apollo/usage-reporting-protobuf@^4.0.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.0.tgz#b54b8c32702bbe81aa0e399076ddabaf75a13f9b" + integrity sha512-hXouMuw5pQVkzi8dgMybmr6Y11+eRmMQVoB5TF0HyTwAg9SOq/v3OCuiYqcVUKdBcskU9Msp+XvjAk0GKpWCwQ== + dependencies: + "@apollo/protobufjs" "1.2.7" + +"@apollo/utils.dropunuseddefinitions@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz#02b04006442eaf037f4c4624146b12775d70d929" + integrity sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg== + +"@apollo/utils.keyvaluecache@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz#2bfe358c4d82f3a0950518451996758c52613f57" + integrity sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg== + dependencies: + "@apollo/utils.logger" "^1.0.0" + lru-cache "7.10.1 - 7.13.1" + +"@apollo/utils.logger@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@apollo/utils.logger/-/utils.logger-1.0.1.tgz#aea0d1bb7ceb237f506c6bbf38f10a555b99a695" + integrity sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA== + +"@apollo/utils.printwithreducedwhitespace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz#c466299a4766eef8577a2a64c8f27712e8bd7e30" + integrity sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q== + +"@apollo/utils.removealiases@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz#75f6d83098af1fcae2d3beb4f515ad4a8452a8c1" + integrity sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A== + +"@apollo/utils.sortast@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz#93218c7008daf3e2a0725196085a33f5aab5ad07" + integrity sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA== + dependencies: + lodash.sortby "^4.7.0" + +"@apollo/utils.stripsensitiveliterals@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz#4920651f36beee8e260e12031a0c5863ad0c7b28" + integrity sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w== + +"@apollo/utils.usagereporting@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz#3c70b49e554771659576fe35381c7a4b321d27fd" + integrity sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ== + dependencies: + "@apollo/usage-reporting-protobuf" "^4.0.0" + "@apollo/utils.dropunuseddefinitions" "^1.1.0" + "@apollo/utils.printwithreducedwhitespace" "^1.1.0" + "@apollo/utils.removealiases" "1.0.0" + "@apollo/utils.sortast" "^1.1.0" + "@apollo/utils.stripsensitiveliterals" "^1.2.0" + +"@apollographql/apollo-tools@^0.5.3": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz#cb3998c6cf12e494b90c733f44dd9935e2d8196c" + integrity sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw== + +"@apollographql/graphql-playground-html@1.6.29": + version "1.6.29" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453" + integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA== + dependencies: + xss "^1.0.8" + +"@asciidoctor/cli@3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@asciidoctor/cli/-/cli-3.5.0.tgz#0b0a0204880b325971fb2af33bf490ab67672d8f" + integrity sha512-/VMHXcZBnZ9vgWfmqk9Hu0x0gMjPLup0YGq/xA8qCQuk11kUIZNMVQwgSsIUzOEwJqIUD7CgncJdtfwv1Ndxuw== + dependencies: + yargs "16.2.0" + +"@asciidoctor/core@2.2.6": + version "2.2.6" + resolved "https://registry.yarnpkg.com/@asciidoctor/core/-/core-2.2.6.tgz#a59a9e8ab48ac0a615d5a3200214d3071291c5d5" + integrity sha512-TmB2K5UfpDpSbCNBBntXzKHcAk2EA3/P68jmWvmJvglVUdkO9V6kTAuXVe12+h6C4GK0ndwuCrHHtEVcL5t6pQ== + dependencies: + asciidoctor-opal-runtime "0.3.3" + unxhr "1.0.1" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.8.3": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.22.0", "@babel/compat-data@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.3.tgz#cd502a6a0b6e37d7ad72ce7e71a7160a3ae36f7e" + integrity sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ== + +"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.14.8", "@babel/core@^7.16.0", "@babel/core@^7.2.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0", "@babel/core@^7.9.6": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.1.tgz#5de51c5206f4c6f5533562838337a603c1033cfd" + integrity sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.22.0" + "@babel/helper-compilation-targets" "^7.22.1" + "@babel/helper-module-transforms" "^7.22.1" + "@babel/helpers" "^7.22.0" + "@babel/parser" "^7.22.0" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/eslint-parser@^7.16.3": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.8.tgz#59fb6fc4f3b017ab86987c076226ceef7b2b2ef2" + integrity sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + +"@babel/generator@^7.22.0", "@babel/generator@^7.22.3", "@babel/generator@^7.7.2": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.3.tgz#0ff675d2edb93d7596c5f6728b52615cfc0df01e" + integrity sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A== + dependencies: + "@babel/types" "^7.22.3" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.3.tgz#c9b83d1ba74e163e023f008a3d3204588a7ceb60" + integrity sha512-ahEoxgqNoYXm0k22TvOke48i1PkavGu0qGCmcq9ugi6gnmvKNaMjKBSrZTnWUi1CFEeNAUiVba0Wtzm03aSkJg== + dependencies: + "@babel/types" "^7.22.3" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz#bfcd6b7321ffebe33290d68550e2c9d7eb7c7a58" + integrity sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ== + dependencies: + "@babel/compat-data" "^7.22.0" + "@babel/helper-validator-option" "^7.21.0" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.1.tgz#ae3de70586cc757082ae3eba57240d42f468c41b" + integrity sha512-SowrZ9BWzYFgzUMwUmowbPSGu6CXL5MSuuCkG3bejahSpSymioPmuLdhPxNOc9MjuNGjy7M/HaXvJ8G82Lywlw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.22.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.22.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + semver "^6.3.0" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.1.tgz#a7ed9a8488b45b467fca353cd1a44dc5f0cf5c70" + integrity sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.3.1" + semver "^6.3.0" + +"@babel/helper-define-polyfill-provider@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz#487053f103110f25b9755c5980e031e93ced24d8" + integrity sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8" + integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA== + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.22.0": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.3.tgz#4b77a12c1b4b8e9e28736ed47d8b91f00976911f" + integrity sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA== + dependencies: + "@babel/types" "^7.22.3" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + dependencies: + "@babel/types" "^7.21.4" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz#e0cad47fedcf3cae83c11021696376e2d5a50c63" + integrity sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" + integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== + +"@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.1.tgz#38cf6e56f7dc614af63a21b45565dd623f0fdc95" + integrity sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-member-expression-to-functions" "^7.22.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" + +"@babel/helper-simple-access@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" + integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" + integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== + +"@babel/helper-wrap-function@^7.18.9": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/helpers@^7.22.0": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.3.tgz#53b74351da9684ea2f694bf0877998da26dd830e" + integrity sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w== + dependencies: + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.3" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.22.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32" + integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.3.tgz#a75be1365c0c3188c51399a662168c1c98108659" + integrity sha512-6r4yRwEnorYByILoDRnEqxtojYKuiIv9FojW2E8GUKo9eWBwbKcd9IiZOZpdyXc64RmyGGyPu3/uAcrz/dq2kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-transform-optional-chaining" "^7.22.3" + +"@babel/plugin-proposal-class-properties@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-decorators@^7.16.4": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.3.tgz#3502c0f8cfe0cdb79b62102c9c9b111309d942b7" + integrity sha512-XjTKH3sHr6pPqG+hR1NCdVupwiosfdKM2oSMyKQVQ5Bym9l/p7BuLAqT5U32zZzRCfPq/TPRPzMiiTE9bOXU4w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-replace-supers" "^7.22.1" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/plugin-syntax-decorators" "^7.22.3" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-optional-chaining@^7.16.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.21.0": + version "7.21.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" + integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.3.tgz#760f2d812d56c1d05970d01cdcd3c05e3d87d6ca" + integrity sha512-R16Zuge73+8/nLcDjkIpyhi5wIbN7i7fiuLJR8yQX7vPAa/ltUKtd3iLbb4AgP5nrLi91HnNUNosELIGUGH1bg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.18.6": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz#3e37fca4f06d93567c1cd9b75156422e90a67107" + integrity sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-import-assertions@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-syntax-import-attributes@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.3.tgz#d7168f22b9b49a6cc1792cec78e06a18ad2e7b4b" + integrity sha512-i35jZJv6aO7hxEbIWQ41adVfOzjm9dcYDNeWlBMd8p0ZQRtNUCBrmGwZt+H5lb+oOC9a3svp956KP0oWGA1YsA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" + integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.21.4", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" + integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" + integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-async-generator-functions@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.3.tgz#3ed99924c354fb9e80dabb2cc8d002c702e94527" + integrity sha512-36A4Aq48t66btydbZd5Fk0/xJqbpg/v4QWI4AH4cYHBXy9Mu42UOupZpebKFiCFNT9S9rJFcsld0gsv0ayLjtA== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" + integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" + integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-class-properties@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.3.tgz#3407145e513830df77f0cef828b8b231c166fe4c" + integrity sha512-mASLsd6rhOrLZ5F3WbCxkzl67mmOnqik0zrg5W6D/X0QMW7HtvnoL1dRARLKIbMP3vXwkwziuLesPqWVGIl6Bw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-class-static-block@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.3.tgz#e352cf33567385c731a8f21192efeba760358773" + integrity sha512-5BirgNWNOx7cwbTJCOmKFJ1pZjwk5MUfMIwiBBvsirCJMZeQgs5pk6i1OlkVg+1Vef5LfBahFOrdCnAWvkVKMw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" + integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" + integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/template" "^7.20.7" + +"@babel/plugin-transform-destructuring@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" + integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-dynamic-import@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.1.tgz#6c56afaf896a07026330cf39714532abed8d9ed1" + integrity sha512-rlhWtONnVBPdmt+jeewS0qSnMz/3yLFrqAP8hHC6EDcrYRSyuz9f9yQhHvVn2Ad6+yO9fHXac5piudeYrInxwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-export-namespace-from@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.3.tgz#9b8700aa495007d3bebac8358d1c562434b680b9" + integrity sha512-5Ti1cHLTDnt3vX61P9KZ5IG09bFXp4cDVFJIAeCZuxu9OXXJJZp5iP0n/rzM2+iAutJY+KWEyyHcRaHlpQ/P5g== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-flow-strip-types@^7.16.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" + integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-flow" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" + integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-json-strings@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.3.tgz#a181b8679cf7c93e9d0e3baa5b1776d65be601a9" + integrity sha512-IuvOMdeOOY2X4hRNAT6kwbePtK21BUyrAEgLKviL8pL6AEEVUVcqtRdN/HJXBLGIbt9T3ETmXRnFedRRmQNTYw== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-logical-assignment-operators@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.3.tgz#9e021455810f33b0baccb82fb759b194f5dc36f0" + integrity sha512-CbayIfOw4av2v/HYZEsH+Klks3NC2/MFIR3QR8gnpGNNPEaq2fdlVCRYG/paKs7/5hvBLQ+H70pGWOHtlNEWNA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" + integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== + dependencies: + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" + integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== + dependencies: + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-simple-access" "^7.21.5" + +"@babel/plugin-transform-modules-systemjs@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz#cc507e03e88d87b016feaeb5dae941e6ef50d91e" + integrity sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw== + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.3.tgz#db6fb77e6b3b53ec3b8d370246f0b7cf67d35ab4" + integrity sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-new-target@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.3.tgz#deb0377d741cbee2f45305868b9026dcd6dd96e2" + integrity sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.3.tgz#8c519f8bf5af94a9ca6f65cf422a9d3396e542b9" + integrity sha512-CpaoNp16nX7ROtLONNuCyenYdY/l7ZsR6aoVa7rW7nMWisoNoQNIH5Iay/4LDyRjKMuElMqXiBoOQCDLTMGZiw== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.3.tgz#02493070ca6685884b0eee705363ee4da2132ab0" + integrity sha512-+AF88fPDJrnseMh5vD9+SH6wq4ZMvpiTMHh58uLs+giMEyASFVhcT3NkoyO+NebFCNnpHJEq5AXO2txV4AGPDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.3.tgz#da6fba693effb8c203d8c3bdf7bf4e2567e802e9" + integrity sha512-38bzTsqMMCI46/TQnJwPPpy33EjLCc1Gsm2hRTF6zTMWnKsN61vdrpuzIEGQyKEhDSYDKyZHrrd5FMj4gcUHhw== + dependencies: + "@babel/compat-data" "^7.22.3" + "@babel/helper-compilation-targets" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.3" + +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-optional-catch-binding@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.3.tgz#e971a083fc7d209d9cd18253853af1db6d8dc42f" + integrity sha512-bnDFWXFzWY0BsOyqaoSXvMQ2F35zutQipugog/rqotL2S4ciFOKlRYUu9djt4iq09oh2/34hqfRR2k1dIvuu4g== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.3.tgz#5fd24a4a7843b76da6aeec23c7f551da5d365290" + integrity sha512-63v3/UFFxhPKT8j8u1jTTGVyITxl7/7AfOqK8C5gz1rHURPUGe3y5mvIf68eYKGoBNahtJnTxBKug4BQOnzeJg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.3.tgz#24477acfd2fd2bc901df906c9bf17fbcfeee900d" + integrity sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-private-methods@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.3.tgz#adac38020bab5047482d3297107c1f58e9c574f6" + integrity sha512-fC7jtjBPFqhqpPAE+O4LKwnLq7gGkD3ZmC2E3i4qWH34mH3gOg2Xrq5YMHUq6DM30xhqM1DNftiRaSqVjEG+ug== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.3.tgz#031621b02c7b7d95389de1a3dba2fe9e8c548e56" + integrity sha512-C7MMl4qWLpgVCbXfj3UW8rR1xeCnisQ0cU7YJHV//8oNBS0aCIVg1vFnZXxOckHhEpQyqNNkWmvSEWnMLlc+Vw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-constant-elements@^7.12.1": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.3.tgz#b87a436c3377f29b37409f9c02c99c9ce377909d" + integrity sha512-b5J6muxQYp4H7loAQv/c7GO5cPuRA6H5hx4gO+/Hn+Cu9MRQU0PNiUoWq1L//8sq6kFSNxGXFb2XTaUfa9y+Pg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" + integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-jsx-development@^7.16.7", "@babel/plugin-transform-react-jsx-development@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" + integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.18.6" + +"@babel/plugin-transform-react-jsx-self@^7.14.5": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz#ec98d4a9baafc5a1eb398da4cf94afbb40254a54" + integrity sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-react-jsx-source@^7.14.5": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86" + integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.18.6", "@babel/plugin-transform-react-jsx@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.3.tgz#5a1f380df3703ba92eb1a930a539c6d88836f690" + integrity sha512-JEulRWG2f04a7L8VWaOngWiK6p+JOSpB+DAtwfJgOaej1qdbNxqtK7MwTBHjUA10NeFcszlFNqCdbRcirzh2uQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/types" "^7.22.3" + +"@babel/plugin-transform-react-pure-annotations@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" + integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-regenerator@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" + integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + regenerator-transform "^0.15.1" + +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-runtime@^7.16.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.4.tgz#f8353f313f18c3ce1315688631ec48657b97af42" + integrity sha512-Urkiz1m4zqiRo17klj+l3nXgiRTFQng91Bc1eiLF7BMQu1e7wE5Gcq9xSv062IF068NHjcutSbIMev60gXxAvA== + dependencies: + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-plugin-utils" "^7.21.5" + babel-plugin-polyfill-corejs2 "^0.4.3" + babel-plugin-polyfill-corejs3 "^0.8.1" + babel-plugin-polyfill-regenerator "^0.5.0" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typescript@^7.21.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.3.tgz#8f662cec8ba88c873f1c7663c0c94e3f68592f09" + integrity sha512-pyjnCIniO5PNaEuGxT28h0HbMru3qCVrMqVgVOz/krComdIrY9W6FCLBq9NWHY8HDGaUlan+UhmZElDENIfCcw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-typescript" "^7.21.4" + +"@babel/plugin-transform-unicode-escapes@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" + integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-unicode-property-regex@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.3.tgz#597b6a614dc93eaae605ee293e674d79d32eb380" + integrity sha512-5ScJ+OmdX+O6HRuMGW4kv7RL9vIKdtdAj9wuWUKy1wbHY3jaM/UlyIiC1G7J6UJiiyMukjjK0QwL3P0vBd0yYg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-unicode-sets-regex@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.3.tgz#7c14ee33fa69782b0101d0f7143d3fc73ce00700" + integrity sha512-hNufLdkF8vqywRp+P55j4FHXqAX2LRUccoZHH7AFn1pq5ZOO2ISKW9w13bFZVjBoTqeve2HOgoJCcaziJVhGNw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.4.tgz#c86a82630f0e8c61d9bb9327b7b896732028cbed" + integrity sha512-c3lHOjbwBv0TkhYCr+XCR6wKcSZ1QbQTVdSkZUaVpLv8CVWotBMArWUi5UAJrcrQaEnleVkkvaV8F/pmc/STZQ== + dependencies: + "@babel/compat-data" "^7.22.3" + "@babel/helper-compilation-targets" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.3" + "@babel/plugin-proposal-private-property-in-object" "^7.21.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-attributes" "^7.22.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.21.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.3" + "@babel/plugin-transform-async-to-generator" "^7.20.7" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-class-properties" "^7.22.3" + "@babel/plugin-transform-class-static-block" "^7.22.3" + "@babel/plugin-transform-classes" "^7.21.0" + "@babel/plugin-transform-computed-properties" "^7.21.5" + "@babel/plugin-transform-destructuring" "^7.21.3" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-dynamic-import" "^7.22.1" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-export-namespace-from" "^7.22.3" + "@babel/plugin-transform-for-of" "^7.21.5" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-json-strings" "^7.22.3" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.3" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.20.11" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-modules-systemjs" "^7.22.3" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.3" + "@babel/plugin-transform-new-target" "^7.22.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.3" + "@babel/plugin-transform-numeric-separator" "^7.22.3" + "@babel/plugin-transform-object-rest-spread" "^7.22.3" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-optional-catch-binding" "^7.22.3" + "@babel/plugin-transform-optional-chaining" "^7.22.3" + "@babel/plugin-transform-parameters" "^7.22.3" + "@babel/plugin-transform-private-methods" "^7.22.3" + "@babel/plugin-transform-private-property-in-object" "^7.22.3" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.21.5" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.20.7" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.21.5" + "@babel/plugin-transform-unicode-property-regex" "^7.22.3" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.3" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.22.4" + babel-plugin-polyfill-corejs2 "^0.4.3" + babel-plugin-polyfill-corejs3 "^0.8.1" + babel-plugin-polyfill-regenerator "^0.5.0" + core-js-compat "^3.30.2" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.3.tgz#2ec7f91d0c924fa2ea0c7cfbbf690bc62b79cd84" + integrity sha512-lxDz1mnZ9polqClBCVBjIVUypoB4qV3/tZUDb/IlYbW1kiiLaXaX+bInbRjl+lNQ/iUZraQ3+S8daEmoELMWug== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-transform-react-display-name" "^7.18.6" + "@babel/plugin-transform-react-jsx" "^7.22.3" + "@babel/plugin-transform-react-jsx-development" "^7.18.6" + "@babel/plugin-transform-react-pure-annotations" "^7.18.6" + +"@babel/preset-typescript@^7.16.0": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz#68292c884b0e26070b4d66b202072d391358395f" + integrity sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-typescript" "^7.21.3" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.20.1", "@babel/runtime@^7.20.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.3.tgz#0a7fce51d43adbf0f7b517a71f4c3aaca92ebcbb" + integrity sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.21.9", "@babel/template@^7.3.3": + version "7.21.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb" + integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/parser" "^7.21.9" + "@babel/types" "^7.21.5" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.22.1", "@babel/traverse@^7.7.2": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.4.tgz#c3cf96c5c290bd13b55e29d025274057727664c0" + integrity sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.22.3" + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.22.4" + "@babel/types" "^7.22.4" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071" + integrity sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA== + dependencies: + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@braintree/sanitize-url@^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz#6110f918d273fe2af8ea1c4398a88774bb9fc12f" + integrity sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg== + +"@changesets/apply-release-plan@^6.1.3": + version "6.1.3" + resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-6.1.3.tgz#3bcc0bd57ba00d50d20df7d0141f1a9b2134eaf7" + integrity sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg== + dependencies: + "@babel/runtime" "^7.20.1" + "@changesets/config" "^2.3.0" + "@changesets/get-version-range-type" "^0.3.2" + "@changesets/git" "^2.0.0" + "@changesets/types" "^5.2.1" + "@manypkg/get-packages" "^1.1.3" + detect-indent "^6.0.0" + fs-extra "^7.0.1" + lodash.startcase "^4.4.0" + outdent "^0.5.0" + prettier "^2.7.1" + resolve-from "^5.0.0" + semver "^5.4.1" + +"@changesets/assemble-release-plan@^5.2.3": + version "5.2.3" + resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-5.2.3.tgz#5ce6191c6e193d40b566a7b0e01690cfb106f4db" + integrity sha512-g7EVZCmnWz3zMBAdrcKhid4hkHT+Ft1n0mLussFMcB1dE2zCuwcvGoy9ec3yOgPGF4hoMtgHaMIk3T3TBdvU9g== + dependencies: + "@babel/runtime" "^7.20.1" + "@changesets/errors" "^0.1.4" + "@changesets/get-dependents-graph" "^1.3.5" + "@changesets/types" "^5.2.1" + "@manypkg/get-packages" "^1.1.3" + semver "^5.4.1" + +"@changesets/changelog-git@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@changesets/changelog-git/-/changelog-git-0.1.14.tgz#852caa7727dcf91497c131d05bc2cd6248532ada" + integrity sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA== + dependencies: + "@changesets/types" "^5.2.1" + +"@changesets/cli@^2.25.2": + version "2.26.1" + resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.26.1.tgz#2d10858d7d32314a524e383111c96d831eb0402f" + integrity sha512-XnTa+b51vt057fyAudvDKGB0Sh72xutQZNAdXkCqPBKO2zvs2yYZx5hFZj1u9cbtpwM6Sxtcr02/FQJfZOzemQ== + dependencies: + "@babel/runtime" "^7.20.1" + "@changesets/apply-release-plan" "^6.1.3" + "@changesets/assemble-release-plan" "^5.2.3" + "@changesets/changelog-git" "^0.1.14" + "@changesets/config" "^2.3.0" + "@changesets/errors" "^0.1.4" + "@changesets/get-dependents-graph" "^1.3.5" + "@changesets/get-release-plan" "^3.0.16" + "@changesets/git" "^2.0.0" + "@changesets/logger" "^0.0.5" + "@changesets/pre" "^1.0.14" + "@changesets/read" "^0.5.9" + "@changesets/types" "^5.2.1" + "@changesets/write" "^0.2.3" + "@manypkg/get-packages" "^1.1.3" + "@types/is-ci" "^3.0.0" + "@types/semver" "^6.0.0" + ansi-colors "^4.1.3" + chalk "^2.1.0" + enquirer "^2.3.0" + external-editor "^3.1.0" + fs-extra "^7.0.1" + human-id "^1.0.2" + is-ci "^3.0.1" + meow "^6.0.0" + outdent "^0.5.0" + p-limit "^2.2.0" + preferred-pm "^3.0.0" + resolve-from "^5.0.0" + semver "^5.4.1" + spawndamnit "^2.0.0" + term-size "^2.1.0" + tty-table "^4.1.5" + +"@changesets/config@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@changesets/config/-/config-2.3.0.tgz#bff074d6492fa772cee139f9a04efa4cd56445bb" + integrity sha512-EgP/px6mhCx8QeaMAvWtRrgyxW08k/Bx2tpGT+M84jEdX37v3VKfh4Cz1BkwrYKuMV2HZKeHOh8sHvja/HcXfQ== + dependencies: + "@changesets/errors" "^0.1.4" + "@changesets/get-dependents-graph" "^1.3.5" + "@changesets/logger" "^0.0.5" + "@changesets/types" "^5.2.1" + "@manypkg/get-packages" "^1.1.3" + fs-extra "^7.0.1" + micromatch "^4.0.2" + +"@changesets/errors@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@changesets/errors/-/errors-0.1.4.tgz#f79851746c43679a66b383fdff4c012f480f480d" + integrity sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q== + dependencies: + extendable-error "^0.1.5" + +"@changesets/get-dependents-graph@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@changesets/get-dependents-graph/-/get-dependents-graph-1.3.5.tgz#f94c6672d2f9a87aa35512eea74550585ba41c21" + integrity sha512-w1eEvnWlbVDIY8mWXqWuYE9oKhvIaBhzqzo4ITSJY9hgoqQ3RoBqwlcAzg11qHxv/b8ReDWnMrpjpKrW6m1ZTA== + dependencies: + "@changesets/types" "^5.2.1" + "@manypkg/get-packages" "^1.1.3" + chalk "^2.1.0" + fs-extra "^7.0.1" + semver "^5.4.1" + +"@changesets/get-release-plan@^3.0.16": + version "3.0.16" + resolved "https://registry.yarnpkg.com/@changesets/get-release-plan/-/get-release-plan-3.0.16.tgz#5d9cfc4ffda02c496ef0fde407210de8e3a0fb19" + integrity sha512-OpP9QILpBp1bY2YNIKFzwigKh7Qe9KizRsZomzLe6pK8IUo8onkAAVUD8+JRKSr8R7d4+JRuQrfSSNlEwKyPYg== + dependencies: + "@babel/runtime" "^7.20.1" + "@changesets/assemble-release-plan" "^5.2.3" + "@changesets/config" "^2.3.0" + "@changesets/pre" "^1.0.14" + "@changesets/read" "^0.5.9" + "@changesets/types" "^5.2.1" + "@manypkg/get-packages" "^1.1.3" + +"@changesets/get-version-range-type@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz#8131a99035edd11aa7a44c341cbb05e668618c67" + integrity sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg== + +"@changesets/git@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@changesets/git/-/git-2.0.0.tgz#8de57649baf13a86eb669a25fa51bcad5cea517f" + integrity sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A== + dependencies: + "@babel/runtime" "^7.20.1" + "@changesets/errors" "^0.1.4" + "@changesets/types" "^5.2.1" + "@manypkg/get-packages" "^1.1.3" + is-subdir "^1.1.1" + micromatch "^4.0.2" + spawndamnit "^2.0.0" + +"@changesets/logger@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@changesets/logger/-/logger-0.0.5.tgz#68305dd5a643e336be16a2369cb17cdd8ed37d4c" + integrity sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw== + dependencies: + chalk "^2.1.0" + +"@changesets/parse@^0.3.16": + version "0.3.16" + resolved "https://registry.yarnpkg.com/@changesets/parse/-/parse-0.3.16.tgz#f8337b70aeb476dc81745ab3294022909bc4a84a" + integrity sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg== + dependencies: + "@changesets/types" "^5.2.1" + js-yaml "^3.13.1" + +"@changesets/pre@^1.0.14": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@changesets/pre/-/pre-1.0.14.tgz#9df73999a4d15804da7381358d77bb37b00ddf0f" + integrity sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ== + dependencies: + "@babel/runtime" "^7.20.1" + "@changesets/errors" "^0.1.4" + "@changesets/types" "^5.2.1" + "@manypkg/get-packages" "^1.1.3" + fs-extra "^7.0.1" + +"@changesets/read@^0.5.9": + version "0.5.9" + resolved "https://registry.yarnpkg.com/@changesets/read/-/read-0.5.9.tgz#a1b63a82b8e9409738d7a0f9cc39b6d7c28cbab0" + integrity sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ== + dependencies: + "@babel/runtime" "^7.20.1" + "@changesets/git" "^2.0.0" + "@changesets/logger" "^0.0.5" + "@changesets/parse" "^0.3.16" + "@changesets/types" "^5.2.1" + chalk "^2.1.0" + fs-extra "^7.0.1" + p-filter "^2.1.0" + +"@changesets/types@^4.0.1": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@changesets/types/-/types-4.1.0.tgz#fb8f7ca2324fd54954824e864f9a61a82cb78fe0" + integrity sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== + +"@changesets/types@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@changesets/types/-/types-5.2.1.tgz#a228c48004aa8a93bce4be2d1d31527ef3bf21f6" + integrity sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg== + +"@changesets/write@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@changesets/write/-/write-0.2.3.tgz#baf6be8ada2a67b9aba608e251bfea4fdc40bc63" + integrity sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw== + dependencies: + "@babel/runtime" "^7.20.1" + "@changesets/types" "^5.2.1" + fs-extra "^7.0.1" + human-id "^1.0.2" + prettier "^2.7.1" + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@csstools/normalize.css@*": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4" + integrity sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg== + +"@csstools/postcss-cascade-layers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" + integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== + dependencies: + "@csstools/selector-specificity" "^2.0.2" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-color-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" + integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-font-format-keywords@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" + integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-hwb-function@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" + integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-ic-unit@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" + integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-is-pseudo-class@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" + integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-nested-calc@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" + integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" + integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" + integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" + integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-stepped-value-functions@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" + integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-text-decoration-shorthand@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" + integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" + integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-unset-value@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" + integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== + +"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== + +"@electron/get@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40" + integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^3.0.0" + global-tunnel-ng "^2.7.1" + +"@esbuild/android-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" + integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== + +"@esbuild/android-arm@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" + integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== + +"@esbuild/android-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" + integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== + +"@esbuild/android-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" + integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== + +"@esbuild/darwin-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" + integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== + +"@esbuild/darwin-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" + integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== + +"@esbuild/freebsd-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" + integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== + +"@esbuild/freebsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" + integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== + +"@esbuild/linux-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" + integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== + +"@esbuild/linux-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" + integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== + +"@esbuild/linux-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" + integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== + +"@esbuild/linux-loong64@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" + integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== + +"@esbuild/linux-loong64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" + integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== + +"@esbuild/linux-mips64el@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" + integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== + +"@esbuild/linux-ppc64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" + integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== + +"@esbuild/linux-riscv64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" + integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== + +"@esbuild/linux-s390x@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" + integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== + +"@esbuild/linux-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" + integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== + +"@esbuild/netbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" + integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== + +"@esbuild/openbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" + integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== + +"@esbuild/sunos-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" + integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== + +"@esbuild/win32-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" + integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== + +"@esbuild/win32-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" + integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== + +"@esbuild/win32-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" + integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== + +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.2" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.42.0": + version "8.42.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" + integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== + +"@graphql-tools/merge@8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.1.tgz#06121942ad28982a14635dbc87b5d488a041d722" + integrity sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg== + dependencies: + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + +"@graphql-tools/merge@^8.4.1": + version "8.4.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" + integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== + dependencies: + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + +"@graphql-tools/mock@^8.1.2": + version "8.7.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.20.tgz#c83ae0f1940d194a3982120c9c85f3ac6b4f7f20" + integrity sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ== + dependencies: + "@graphql-tools/schema" "^9.0.18" + "@graphql-tools/utils" "^9.2.1" + fast-json-stable-stringify "^2.1.0" + tslib "^2.4.0" + +"@graphql-tools/schema@^8.0.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" + integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg== + dependencies: + "@graphql-tools/merge" "8.3.1" + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/schema@^9.0.18": + version "9.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" + integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== + dependencies: + "@graphql-tools/merge" "^8.4.1" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/utils@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7" + integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@^9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" + integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + tslib "^2.4.0" + +"@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@headlessui/react@^1.7.10": + version "1.7.15" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.15.tgz#53ef6ae132af81b8f188414767b6e79ebf8dc73f" + integrity sha512-OTO0XtoRQ6JPB1cKNFYBZv2Q0JMqMGNhYP1CjPvcJvjz8YGokz8oAj89HIYZGN0gZzn/4kk9iUpmMF4Q21Gsqw== + dependencies: + client-only "^0.0.1" + +"@holochain/client@0.12.5": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" + integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/client@perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b": + version "0.12.5" + resolved "https://codeload.github.com/perspect3vism/holochain-client-js/tar.gz/2f3a436b6d28344b0aca883ef3dc229cd042c04b" + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/serialization@^0.1.0-beta-rc.3": + version "0.1.0-beta-rc.3" + resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" + integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== + +"@honkit/asciidoc@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/asciidoc/-/asciidoc-4.0.7.tgz#7e6deb19c91ccf6e4177c215652919e53f081d96" + integrity sha512-YgIInbeGtuhvKO4cUhJ9q5g8iNkbwEL/U4suwP1uC9sZXFfYzXg+Vt2zPPx47A+Nj0cirdrbbh1fJhQWJIgm8A== + dependencies: + "@honkit/html" "^4.0.7" + asciidoctor "^2.2.0" + lodash "^4.13.1" + +"@honkit/honkit-plugin-highlight@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-4.0.7.tgz#d54911155167bd2bcd79442b9548737e5d4c636c" + integrity sha512-VeXVJ2orU4F2V8ncf3bGNnPFzuS8+IV5NdHNW4C3Nt9+MoB6cp7lAoi95+ZuYC9T4iIVkfBtXFA/tCivEAjfgg== + dependencies: + highlight.js "^10.7.1" + +"@honkit/honkit-plugin-theme-default@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-4.0.7.tgz#758360e3a1bda6db306b32e1db6959247bce3400" + integrity sha512-C/4WLD26p8f7gDTR6R60lPL6CJys+1/z7o6wUd5qEUya3Xu/YjiZmNviIyw99C5RUu4X7YutVvMijGTwC1izgA== + +"@honkit/html@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/html/-/html-4.0.7.tgz#e22f04d270f225abf68a80215ba4e6491f0d9f07" + integrity sha512-8f3VqAwJqxSmmaiS7tDQpTMNwssXSW6s09AeLstOI8qhyCGf0ajpbfgQ1WrqY4duu6yqaZrubY8o9U7eSgxnVg== + dependencies: + cheerio "^1.0.0-rc.12" + lodash "^4.13.1" + q "^1.1.2" + +"@honkit/markdown-legacy@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/markdown-legacy/-/markdown-legacy-4.0.7.tgz#87c62f1df4579fbfa2881ae5db42adfcae950c73" + integrity sha512-wg+ErBy0Mk5Je6VVSbFoSwSvHNSstAzJnKiem1wR9nbrF21M5Ip4mLDZRsuuSPi0HOTFz3AhZMJC+ch+chIIEA== + dependencies: + "@honkit/html" "^4.0.7" + kramed "0.5.6" + lodash "^4.13.1" + +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + +"@jest/console@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" + micromatch "^4.0.4" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== + dependencies: + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + +"@jest/expect-utils@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" + integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== + dependencies: + jest-get-type "^29.4.3" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== + dependencies: + "@jest/types" "^27.5.1" + "@sinonjs/fake-timers" "^8.0.1" + "@types/node" "*" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.1.0" + +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== + dependencies: + "@sinclair/typebox" "^0.24.1" + +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== + dependencies: + "@sinclair/typebox" "^0.25.16" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.9" + source-map "^0.6.0" + +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== + dependencies: + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-result@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== + dependencies: + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== + dependencies: + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.5.1" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== + dependencies: + "@jest/schemas" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== + dependencies: + "@jest/schemas" "^29.4.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@josephg/resolvable@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" + integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@jspm/core@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@jspm/core/-/core-2.0.1.tgz#3f08c59c60a5f5e994523ed6b0b665ec80adc94e" + integrity sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw== + +"@junto-foundation/junto-elements@^0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@junto-foundation/junto-elements/-/junto-elements-0.5.5.tgz#525b254faee09fed9fdb4a89c2dc38285e913672" + integrity sha512-t1B2m8Yg+s92Q/W/Q3qxBcLwtzxMzVRfqovLagrWHqEVwmfFx0zJQm25qFnfkzBxeZonVjibCG6mUoexZ2cjUQ== + dependencies: + "@popperjs/core" "^2.9.2" + construct-style-sheets-polyfill "^3.1.0" + jdenticon "^3.1.0" + lit "^2.0.0-rc.2" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== + +"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" + integrity sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ== + +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.2.tgz#c256690f82f2d7d0ffb0b1cdf68dcb1ec86cea28" + integrity sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.0.0" + +"@manypkg/find-root@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.1.0.tgz#a62d8ed1cd7e7d4c11d9d52a8397460b5d4ad29f" + integrity sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== + dependencies: + "@babel/runtime" "^7.5.5" + "@types/node" "^12.7.1" + find-up "^4.1.0" + fs-extra "^8.1.0" + +"@manypkg/get-packages@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.3.tgz#e184db9bba792fa4693de4658cfb1463ac2c9c47" + integrity sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A== + dependencies: + "@babel/runtime" "^7.5.5" + "@changesets/types" "^4.0.1" + "@manypkg/find-root" "^1.1.0" + fs-extra "^8.1.0" + globby "^11.0.0" + read-yaml-file "^1.1.0" + +"@mattrglobal/bbs-signatures@0.5.0", "@mattrglobal/bbs-signatures@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@mattrglobal/bbs-signatures/-/bbs-signatures-0.5.0.tgz#c8e3842a657cabbf7f1e16db06f77c9f84a42f3f" + integrity sha512-4te4TpacAmeCM8aa/kHkU0i1IJwsO1x/Tez6/YLUWg6rK6bfGA1NNO7IBc12u9ETkoTsiU32UmsiYWXcw9QwKQ== + optionalDependencies: + "@mattrglobal/node-bbs-signatures" "0.11.0" + +"@mattrglobal/bls12381-key-pair@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@mattrglobal/bls12381-key-pair/-/bls12381-key-pair-0.5.0.tgz#dd6014b5b14903d4a280af4286c74d8a97b38410" + integrity sha512-eXAtke0HOEr9RcT+NEI1MERE50gUnnLm1mYBJkUugk9REP3MfKXtX2Mo4FXyCH/IR4Oxj2jCcfNYW/h0Q3x5sg== + dependencies: + "@mattrglobal/bbs-signatures" "0.5.0" + bs58 "4.0.1" + rfc4648 "1.4.0" + +"@mattrglobal/node-bbs-signatures@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@mattrglobal/node-bbs-signatures/-/node-bbs-signatures-0.11.0.tgz#c63ab8648a529cfe1dd855cc78a93f78ee27a9f4" + integrity sha512-V0wcY0ZewrPOiMOrL3wam0oYL1SLbF2ihgAM6JQvLrAKw1MckYiJ8T4vL+nOBs2hf1PA1TZI+USe5mqMWuVKTw== + dependencies: + neon-cli "0.4.0" + node-pre-gyp "0.14.0" + +"@mdx-js/mdx@^2.2.1", "@mdx-js/mdx@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-2.3.0.tgz#d65d8c3c28f3f46bb0e7cb3bf7613b39980671a9" + integrity sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/mdx" "^2.0.0" + estree-util-build-jsx "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-util-to-js "^1.1.0" + estree-walker "^3.0.0" + hast-util-to-estree "^2.0.0" + markdown-extensions "^1.0.0" + periscopic "^3.0.0" + remark-mdx "^2.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + unified "^10.0.0" + unist-util-position-from-estree "^1.0.0" + unist-util-stringify-position "^3.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + +"@mdx-js/react@^2.2.1", "@mdx-js/react@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-2.3.0.tgz#4208bd6d70f0d0831def28ef28c26149b03180b3" + integrity sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g== + dependencies: + "@types/mdx" "^2.0.0" + "@types/react" ">=16" + +"@msgpack/msgpack@^2.7.2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" + integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== + +"@napi-rs/simple-git-android-arm-eabi@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.8.tgz#303bea1ec00db24466e3b3ba13de337d87c5371b" + integrity sha512-JJCejHBB1G6O8nxjQLT4quWCcvLpC3oRdJJ9G3MFYSCoYS8i1bWCWeU+K7Br+xT+D6s1t9q8kNJAwJv9Ygpi0g== + +"@napi-rs/simple-git-android-arm64@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.8.tgz#42c8d04287364fd1619002629fa52183dcf462ee" + integrity sha512-mraHzwWBw3tdRetNOS5KnFSjvdAbNBnjFLA8I4PwTCPJj3Q4txrigcPp2d59cJ0TC51xpnPXnZjYdNwwSI9g6g== + +"@napi-rs/simple-git-darwin-arm64@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.8.tgz#e210808e6d646d6efecea84c67ced8eb44a8f821" + integrity sha512-ufy/36eI/j4UskEuvqSH7uXtp3oXeLDmjQCfKJz3u5Vx98KmOMKrqAm2H81AB2WOtCo5mqS6PbBeUXR8BJX8lQ== + +"@napi-rs/simple-git-darwin-x64@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.8.tgz#d717525c33e0dfd8a6d6215da2fcbc0ad40011e1" + integrity sha512-Vb21U+v3tPJNl+8JtIHHT8HGe6WZ8o1Tq3f6p+Jx9Cz71zEbcIiB9FCEMY1knS/jwQEOuhhlI9Qk7d4HY+rprA== + +"@napi-rs/simple-git-linux-arm-gnueabihf@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.8.tgz#03e7b2dd299c10e61bbf29f405ea74f6571cf6a1" + integrity sha512-6BPTJ7CzpSm2t54mRLVaUr3S7ORJfVJoCk2rQ8v8oDg0XAMKvmQQxOsAgqKBo9gYNHJnqrOx3AEuEgvB586BuQ== + +"@napi-rs/simple-git-linux-arm64-gnu@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.8.tgz#945123f75c9a36fd0364e789ce06cd29a74a43cc" + integrity sha512-qfESqUCAA/XoQpRXHptSQ8gIFnETCQt1zY9VOkplx6tgYk9PCeaX4B1Xuzrh3eZamSCMJFn+1YB9Ut8NwyGgAA== + +"@napi-rs/simple-git-linux-arm64-musl@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.8.tgz#2c20a0bff7c08f60b033ed7056dcb07bbbff8310" + integrity sha512-G80BQPpaRmQpn8dJGHp4I2/YVhWDUNJwcCrJAtAdbKFDCMyCHJBln2ERL/+IEUlIAT05zK/c1Z5WEprvXEdXow== + +"@napi-rs/simple-git-linux-x64-gnu@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.8.tgz#980e22b7376252a0767298ec801d374d97553da1" + integrity sha512-NI6o1sZYEf6vPtNWJAm9w8BxJt+LlSFW0liSjYe3lc3e4dhMfV240f0ALeqlwdIldRPaDFwZSJX5/QbS7nMzhw== + +"@napi-rs/simple-git-linux-x64-musl@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.8.tgz#edca3b2833dc5d3fc9151f5b931f7b14478ccca4" + integrity sha512-wljGAEOW41er45VTiU8kXJmO480pQKzsgRCvPlJJSCaEVBbmo6XXbFIXnZy1a2J3Zyy2IOsRB4PVkUZaNuPkZQ== + +"@napi-rs/simple-git-win32-arm64-msvc@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.8.tgz#3ac4c7fe816a2cdafabd091ded76161d1ba1fe88" + integrity sha512-QuV4QILyKPfbWHoQKrhXqjiCClx0SxbCTVogkR89BwivekqJMd9UlMxZdoCmwLWutRx4z9KmzQqokvYI5QeepA== + +"@napi-rs/simple-git-win32-x64-msvc@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.8.tgz#3b825bc2cb1c7ff535a3ca03768142d68bbf5c19" + integrity sha512-UzNS4JtjhZhZ5hRLq7BIUq+4JOwt1ThIKv11CsF1ag2l99f0123XvfEpjczKTaa94nHtjXYc2Mv9TjccBqYOew== + +"@napi-rs/simple-git@^0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git/-/simple-git-0.1.8.tgz#391cb58436d50bd32d924611d45bdc41f5e7607a" + integrity sha512-BvOMdkkofTz6lEE35itJ/laUokPhr/5ToMGlOH25YnhLD2yN1KpRAT4blW9tT8281/1aZjW3xyi73bs//IrDKA== + optionalDependencies: + "@napi-rs/simple-git-android-arm-eabi" "0.1.8" + "@napi-rs/simple-git-android-arm64" "0.1.8" + "@napi-rs/simple-git-darwin-arm64" "0.1.8" + "@napi-rs/simple-git-darwin-x64" "0.1.8" + "@napi-rs/simple-git-linux-arm-gnueabihf" "0.1.8" + "@napi-rs/simple-git-linux-arm64-gnu" "0.1.8" + "@napi-rs/simple-git-linux-arm64-musl" "0.1.8" + "@napi-rs/simple-git-linux-x64-gnu" "0.1.8" + "@napi-rs/simple-git-linux-x64-musl" "0.1.8" + "@napi-rs/simple-git-win32-arm64-msvc" "0.1.8" + "@napi-rs/simple-git-win32-x64-msvc" "0.1.8" + +"@next/env@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.4.tgz#46b620f6bef97fe67a1566bf570dbb791d40c50a" + integrity sha512-q/y7VZj/9YpgzDe64Zi6rY1xPizx80JjlU2BTevlajtaE3w1LqweH1gGgxou2N7hdFosXHjGrI4OUvtFXXhGLg== + +"@next/eslint-plugin-next@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz#e7dc00e2e89ed361f111d687b8534483ec15518b" + integrity sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og== + dependencies: + glob "7.1.7" + +"@next/swc-darwin-arm64@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.4.tgz#8c14083c2478e2a9a8d140cce5900f76b75667ff" + integrity sha512-xfjgXvp4KalNUKZMHmsFxr1Ug+aGmmO6NWP0uoh4G3WFqP/mJ1xxfww0gMOeMeSq/Jyr5k7DvoZ2Pv+XOITTtw== + +"@next/swc-darwin-x64@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.4.tgz#5fe01c65c80fcb833c8789fd70f074ea99893864" + integrity sha512-ZY9Ti1hkIwJsxGus3nlubIkvYyB0gNOYxKrfsOrLEqD0I2iCX8D7w8v6QQZ2H+dDl6UT29oeEUdDUNGk4UEpfg== + +"@next/swc-linux-arm64-gnu@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.4.tgz#f2e071f38e8a6cdadf507cc5d28956f73360d064" + integrity sha512-+KZnDeMShYkpkqAvGCEDeqYTRADJXc6SY1jWXz+Uo6qWQO/Jd9CoyhTJwRSxvQA16MoYzvILkGaDqirkRNctyA== + +"@next/swc-linux-arm64-musl@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.4.tgz#23bf75c544e54562bc24ec1be036e4bd9cf89e2c" + integrity sha512-evC1twrny2XDT4uOftoubZvW3EG0zs0ZxMwEtu/dDGVRO5n5pT48S8qqEIBGBUZYu/Xx4zzpOkIxx1vpWdE+9A== + +"@next/swc-linux-x64-gnu@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.4.tgz#bd42590950a01957952206f89cf5622e7c9e4196" + integrity sha512-PX706XcCHr2FfkyhP2lpf+pX/tUvq6/ke7JYnnr0ykNdEMo+sb7cC/o91gnURh4sPYSiZJhsF2gbIqg9rciOHQ== + +"@next/swc-linux-x64-musl@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.4.tgz#907d81feb1abec3daec0ecb61e3f39b56e7aeafe" + integrity sha512-TKUUx3Ftd95JlHV6XagEnqpT204Y+IsEa3awaYIjayn0MOGjgKZMZibqarK3B1FsMSPaieJf2FEAcu9z0yT5aA== + +"@next/swc-win32-arm64-msvc@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.4.tgz#1d754d2bb10bdf9907c0acc83711438697c3b5fe" + integrity sha512-FP8AadgSq4+HPtim7WBkCMGbhr5vh9FePXiWx9+YOdjwdQocwoCK5ZVC3OW8oh3TWth6iJ0AXJ/yQ1q1cwSZ3A== + +"@next/swc-win32-ia32-msvc@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.4.tgz#77b2c7f7534b675d46e46301869e08d504d23956" + integrity sha512-3WekVmtuA2MCdcAOrgrI+PuFiFURtSyyrN1I3UPtS0ckR2HtLqyqmS334Eulf15g1/bdwMteePdK363X/Y9JMg== + +"@next/swc-win32-x64-msvc@13.4.4": + version "13.4.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.4.tgz#faab69239f8a9d0be7cd473e65f5a07735ef7b0e" + integrity sha512-AHRITu/CrlQ+qzoqQtEMfaTu7GHaQ6bziQln/pVWpOYC1wU+Mq6VQQFlsDtMCnDztPZtppAXdvvbNS7pcfRzlw== + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@noble/secp256k1@^1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@peculiar/asn1-schema@^2.3.6": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" + integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.1.3", "@peculiar/webcrypto@^1.1.6", "@peculiar/webcrypto@^1.1.7": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" + integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.2" + tslib "^2.5.0" + webcrypto-core "^1.7.7" + +"@perspect3vism/rollup-plugin-dna@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@perspect3vism/rollup-plugin-dna/-/rollup-plugin-dna-0.0.2.tgz#d8a1a99677877b3f090f228c3b5937d4f0aa758b" + integrity sha512-+18Prdkzv1dcEzyWIp/DersXHcfpU6rDxDPdXGtfzB/ritepc7ehYSN60E94uNNzuOy7QaK4p2YL3DPPkgsb8g== + +"@pmmmwh/react-refresh-webpack-plugin@^0.5.3": + version "0.5.10" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8" + integrity sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA== + dependencies: + ansi-html-community "^0.0.8" + common-path-prefix "^3.0.0" + core-js-pure "^3.23.3" + error-stack-parser "^2.0.6" + find-up "^5.0.0" + html-entities "^2.1.0" + loader-utils "^2.0.4" + schema-utils "^3.0.0" + source-map "^0.7.3" + +"@popperjs/core@^2.11.6", "@popperjs/core@^2.9.2": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@preact/preset-vite@^2.4.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@preact/preset-vite/-/preset-vite-2.5.0.tgz#6ff815558c16062a36e2d5da4b1225d7b216478d" + integrity sha512-BUhfB2xQ6ex0yPkrT1Z3LbfPzjpJecOZwQ/xJrXGFSZD84+ObyS//41RdEoQCMWsM0t7UHGaujUxUBub7WM1Jw== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.14.9" + "@babel/plugin-transform-react-jsx-development" "^7.16.7" + "@prefresh/vite" "^2.2.8" + "@rollup/pluginutils" "^4.1.1" + babel-plugin-transform-hook-names "^1.0.2" + debug "^4.3.1" + kolorist "^1.2.10" + resolve "^1.20.0" + +"@prefresh/babel-plugin@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@prefresh/babel-plugin/-/babel-plugin-0.5.0.tgz#61d8ef959007390077c9eddb7e9307c46e19277c" + integrity sha512-joAwpkUDwo7ZqJnufXRGzUb+udk20RBgfA8oLPBh5aJH2LeStmV1luBfeJTztPdyCscC2j2SmZ/tVxFRMIxAEw== + +"@prefresh/core@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@prefresh/core/-/core-1.5.1.tgz#2f51c0dd509a7b302d67ee889815653abdf4c0d1" + integrity sha512-e0mB0Oxtog6ZpKPDBYbzFniFJDIktuKMzOHp7sguntU+ot0yi6dbhJRE9Css1qf0u16wdSZjpL2W2ODWuU05Cw== + +"@prefresh/utils@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@prefresh/utils/-/utils-1.2.0.tgz#cbdfe549b207041e38bb6cc382408b30cd24fec8" + integrity sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ== + +"@prefresh/vite@^2.2.8", "@prefresh/vite@^2.2.9": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@prefresh/vite/-/vite-2.4.0.tgz#53fd34b8df21e4e4b03f5147a3277bb3395411d0" + integrity sha512-makifAztmlWCMx79E8tl/gMKPKe3WartplGk+GTqtXSZ/JqoTiN4nkF9GqlhATqGEvsdtRnlDGKQ09s7fneJ/Q== + dependencies: + "@babel/core" "^7.9.6" + "@prefresh/babel-plugin" "0.5.0" + "@prefresh/core" "^1.5.1" + "@prefresh/utils" "^1.2.0" + "@rollup/pluginutils" "^4.1.0" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@remix-run/router@1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.6.3.tgz#8205baf6e17ef93be35bf62c37d2d594e9be0dad" + integrity sha512-EXJysQ7J3veRECd0kZFQwYYd5sJMcq2O/m60zu1W2l3oVQ9xtub8jTOtYRE0+M2iomyG/W3Ps7+vp2kna0C27Q== + +"@rollup/plugin-alias@^3.1.5": + version "3.1.9" + resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz#a5d267548fe48441f34be8323fb64d1d4a1b3fdf" + integrity sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw== + dependencies: + slash "^3.0.0" + +"@rollup/plugin-babel@^5.2.0": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" + integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" + +"@rollup/plugin-commonjs@^14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" + integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + commondir "^1.0.1" + estree-walker "^1.0.1" + glob "^7.1.2" + is-reference "^1.1.2" + magic-string "^0.25.2" + resolve "^1.11.0" + +"@rollup/plugin-commonjs@^17.0.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" + integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-commonjs@^20.0.0": + version "20.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz#3246872dcbcb18a54aaa6277a8c7d7f1b155b745" + integrity sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-json@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" + integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + +"@rollup/plugin-node-resolve@^11.2.1": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" + integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-node-resolve@^13.0.4": + version "13.3.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz#da1c5c5ce8316cef96a2f823d111c1e4e498801c" + integrity sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + deepmerge "^4.2.2" + is-builtin-module "^3.1.0" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-node-resolve@^8.0.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" + integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deep-freeze "^0.0.1" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.17.0" + +"@rollup/plugin-replace@^2.4.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" + integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/plugin-typescript@^11.1.0": + version "11.1.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.1.tgz#258663a7aa6b51390dd39ae6e5502f2c4b2807cb" + integrity sha512-Ioir+x5Bejv72Lx2Zbz3/qGg7tvGbxQZALCLoJaGrkNXak/19+vKgKYJYM3i/fJxvsb23I9FuFQ8CUBEfsmBRg== + dependencies: + "@rollup/pluginutils" "^5.0.1" + resolve "^1.22.1" + +"@rollup/plugin-typescript@^4.0.0": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-4.1.2.tgz#6f910430276ae3e53a47a12ad65820627e7b6ad9" + integrity sha512-+7UlGat/99e2JbmGNnIauxwEhYLwrL7adO/tSJxUN57xrrS3Ps+ZzYpLCDGPZJ57j+ZJTZLLN89KXW9JMEB+jg== + dependencies: + "@rollup/pluginutils" "^3.0.1" + resolve "^1.14.1" + +"@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^4.1.0", "@rollup/pluginutils@^4.1.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" + integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rushstack/eslint-patch@^1.1.0", "@rushstack/eslint-patch@^1.1.3": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.1.tgz#edbb85ff95f3be41eaa70c6d6ad6d8ba0a9c7e46" + integrity sha512-RkmuBcqiNioeeBKbgzMlOdreUkJfYaSjwgx9XDgGGpjvWgyaxWvDmZVSN9CS6LjEASadhgPv2BcFp+SeouWXXA== + +"@samverschueren/stream-to-observable@^0.3.0", "@samverschueren/stream-to-observable@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== + dependencies: + any-observable "^0.3.0" + +"@sinclair/typebox@^0.24.1": + version "0.24.51" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== + +"@sinclair/typebox@^0.25.16": + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sindresorhus/is@^2.0.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" + integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sinonjs/commons@^1.7.0": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== + dependencies: + type-detect "4.0.8" + +"@sinonjs/commons@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" + integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2", "@sinonjs/fake-timers@^10.2.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz#b3e322a34c5f26e3184e7f6115695f299c1b1194" + integrity sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/samsam@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" + integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== + dependencies: + "@sinonjs/commons" "^2.0.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== + +"@stablelib/aead@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" + integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== + +"@stablelib/aes-kw@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/aes-kw/-/aes-kw-1.0.1.tgz#43f25517f719d69bb995909a5b69a2d9172c2a93" + integrity sha512-KrOkiRex1tQTbWk+hFB5fFw4vqKhNnTUtlCRf1bhUEOFp7hadWe49/sLa/P4X4FBQVoh3Z9Lj0zS1OWu/AHA1w== + dependencies: + "@stablelib/aes" "^1.0.1" + "@stablelib/binary" "^1.0.1" + "@stablelib/blockcipher" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/aes@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/aes/-/aes-1.0.1.tgz#f2a8aec2cebaf0e69be2b49c7c57b4267867ffa5" + integrity sha512-bMiezJDeFONDHbMEa+Kic26962+bwkZfsHPAmcqTjLaHCAhEQuK3i1H0POPOkcHCdj75oVRIqFCraCA0cyHPvw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/blockcipher" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/blockcipher@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/blockcipher/-/blockcipher-1.0.1.tgz#535f067d147ecdc9625ccd2b0d129f6d53d563d2" + integrity sha512-4bkpV8HUAv0CgI1fUqkPUEEvv3RXQ3qBkuZaSWhshXGAz1JCpriesgiO9Qs4f0KzBJkCtvcho5n7d/RKvnHbew== + +"@stablelib/bytes@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" + integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== + +"@stablelib/chacha20poly1305@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" + integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== + dependencies: + "@stablelib/aead" "^1.0.1" + "@stablelib/binary" "^1.0.1" + "@stablelib/chacha" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/poly1305" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/chacha@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371" + integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/constant-time@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" + integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== + +"@stablelib/ed25519@^1.0.1": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996" + integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== + dependencies: + "@stablelib/random" "^1.0.2" + "@stablelib/sha512" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hash@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/keyagreement@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" + integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== + dependencies: + "@stablelib/bytes" "^1.0.1" + +"@stablelib/poly1305@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" + integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/random@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" + integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha512@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" + integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + +"@stablelib/x25519@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" + integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== + dependencies: + "@stablelib/keyagreement" "^1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/xchacha20@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz#e98808d1f7d8b20e3ff37c71a3062a2a955d9a8c" + integrity sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/chacha" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/xchacha20poly1305@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz#addcaf30b92dd956f76b3357888e2f91b92e7a61" + integrity sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg== + dependencies: + "@stablelib/aead" "^1.0.1" + "@stablelib/chacha20poly1305" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + "@stablelib/xchacha20" "^1.0.1" + +"@surma/rollup-plugin-off-main-thread@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" + integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== + dependencies: + ejs "^3.1.6" + json5 "^2.2.0" + magic-string "^0.25.0" + string.prototype.matchall "^4.0.6" + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== + +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + +"@svgr/core@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== + dependencies: + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" + +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== + dependencies: + "@babel/types" "^7.12.6" + +"@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== + dependencies: + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== + dependencies: + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" + svgo "^1.2.2" + +"@svgr/webpack@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" + loader-utils "^2.0.0" + +"@swc/helpers@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + dependencies: + tslib "^2.4.0" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@szmarczak/http-timer@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@tauri-apps/api@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.3.0.tgz#d0c853ab2cc7506bd826c5f7f260c67c7c15def5" + integrity sha512-AH+3FonkKZNtfRtGrObY38PrzEj4d+1emCbwNGu0V2ENbXjlLHMZQlUh+Bhu/CRmjaIwZMGJ3yFvWaZZgTHoog== + +"@tauri-apps/cli-darwin-arm64@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.2.1.tgz#e75d6582f76b6ef33f251f9b559e7692b7892faa" + integrity sha512-WiAxSON52owFI65Whd3NjcKjXdO1zJfafBVZ3v+Y3F2zlXhRPiirXbtefAc3mvN56zDz/pfi018Qb4XesuVzHA== + +"@tauri-apps/cli-darwin-x64@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.2.1.tgz#3fefdb0154d7d804ea1b08fad342abec625b36e4" + integrity sha512-jfumnrn7RYKVtDmHgrQhImoxpqT51bDrO4KxgpIXaYSaf6MdG2JT72dwUovPrURw0JX2Z/Elihq+dYbrsKoV/w== + +"@tauri-apps/cli-linux-arm-gnueabihf@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.2.1.tgz#6f5f403334b840d0085fec38cca4551c5c6b36a6" + integrity sha512-n4p6Ekn6Wa9X/klUGevEGgoWAGApGGsLrJYE4c8bKTbAUfQ9Nyzjh8gK/GDii1dg9oRW0FdXDa6BJa7aEEj9sA== + +"@tauri-apps/cli-linux-arm64-gnu@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.2.1.tgz#d1c536d0fe4819029de9132974bdfb6fa08e55a7" + integrity sha512-oAHkQQGfNCh8pQQHuDzzqt+S5sOj3tiUkySaquR2z/AQEHeDGAMrRGLZwOiDw9Xvu7qxFiF9H0e5OMK7BkncDw== + +"@tauri-apps/cli-linux-arm64-musl@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.2.1.tgz#22dd054d3ae2a923d5f7d3c7f529f48e7113ec19" + integrity sha512-1dEZ5fdFYkMyB1U7ZkDJUlwYwCeqy9Y3vXmtZ6pCxrvgs844s8+RIFDuMU42pTN+lUxfFeQARmv0LpS4eF/QWQ== + +"@tauri-apps/cli-linux-x64-gnu@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.2.1.tgz#bfe23577a46a74699b27714d82162f0ae9280090" + integrity sha512-wkgCD3s5P6tgBPnn0/gDx7MXMx2Hx+jdA+JP8zdCq4cIeYXlxdZG/zXbHb5ldPadNh582lzHiGg+Pmc+wDg2fA== + +"@tauri-apps/cli-linux-x64-musl@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.2.1.tgz#dce7fb0254a1975238bdde5882115b38271ec9b7" + integrity sha512-zD+a+5cSlYVU0ECOojWp71ok/9jE0DJufzb9oky17XIKV/oiOAG60z4OYRe+oqxYS1TcBt+pUa1/2zlu/6SRdA== + +"@tauri-apps/cli-win32-ia32-msvc@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.2.1.tgz#b6cb355f2d85704710c845800a29784536fb7240" + integrity sha512-nEgdRd8czaKL1RQfj946dsfzlk6atmD95Fm7NVTVOe77PFHTS3ztHeWK7X6jirCaOF3h/F7qpJVCU6JMnq2tfA== + +"@tauri-apps/cli-win32-x64-msvc@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.2.1.tgz#b2b431ffed68fab9024d59ac2a2bafb02c5b9a5a" + integrity sha512-ceWiQkmNNRrnfgbLMnndT4QF1IyLK7aOJsMqS/HueshAwmVQWnC1DUE0C58Taetgq38Cavc4gGnZOCHuH6ZuTw== + +"@tauri-apps/cli@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.2.1.tgz#d7f61547915a8b052a92197ac70b8322838c6d2d" + integrity sha512-JrFFT1/4V+AGSRjKdgszZwOr+/a1519LDhNxBkbsIg6D/kFK+3kk1qImaQBY9DvvIWK6IV4whc8OAkgxm+Sl3w== + optionalDependencies: + "@tauri-apps/cli-darwin-arm64" "1.2.1" + "@tauri-apps/cli-darwin-x64" "1.2.1" + "@tauri-apps/cli-linux-arm-gnueabihf" "1.2.1" + "@tauri-apps/cli-linux-arm64-gnu" "1.2.1" + "@tauri-apps/cli-linux-arm64-musl" "1.2.1" + "@tauri-apps/cli-linux-x64-gnu" "1.2.1" + "@tauri-apps/cli-linux-x64-musl" "1.2.1" + "@tauri-apps/cli-win32-ia32-msvc" "1.2.1" + "@tauri-apps/cli-win32-x64-msvc" "1.2.1" + +"@testing-library/dom@^8.0.0": + version "8.20.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.0.tgz#914aa862cef0f5e89b98cc48e3445c4c921010f6" + integrity sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "^5.0.0" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.4.4" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@^5.16.2": + version "5.16.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" + integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== + dependencies: + "@adobe/css-tools" "^4.0.1" + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.5.6" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/react@^12.1.4": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" + integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^8.0.0" + "@types/react-dom" "<18.0.0" + +"@testing-library/user-event@^13.5.0": + version "13.5.0" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295" + integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== + dependencies: + "@babel/runtime" "^7.12.5" + +"@textlint/ast-node-types@^12.6.1": + version "12.6.1" + resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-12.6.1.tgz#35ecefe74e701d7f632c083d4fda89cab1b89012" + integrity sha512-uzlJ+ZsCAyJm+lBi7j0UeBbj+Oy6w/VWoGJ3iHRHE5eZ8Z4iK66mq+PG/spupmbllLtz77OJbY89BYqgFyjXmA== + +"@textlint/markdown-to-ast@^12.1.1": + version "12.6.1" + resolved "https://registry.yarnpkg.com/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.1.tgz#fcccb5733b3e76cd0db78a323763ab101f2d803b" + integrity sha512-T0HO+VrU9VbLRiEx/kH4+gwGMHNMIGkp0Pok+p0I33saOOLyhfGvwOKQgvt2qkxzQEV2L5MtGB8EnW4r5d3CqQ== + dependencies: + "@textlint/ast-node-types" "^12.6.1" + debug "^4.3.4" + mdast-util-gfm-autolink-literal "^0.1.3" + remark-footnotes "^3.0.0" + remark-frontmatter "^3.0.0" + remark-gfm "^1.0.0" + remark-parse "^9.0.0" + traverse "^0.6.7" + unified "^9.2.2" + +"@theguild/remark-mermaid@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@theguild/remark-mermaid/-/remark-mermaid-0.0.1.tgz#984f0f03bee4809cde02abbe4dbdbc192c806109" + integrity sha512-MbLi7CIn25r0MypN1yaTrvuQHBE/UXy/DKfVjaLlXx5ut4PasOwzGIJihzM4d9kqNADJKilHpQWcd66ivbvJEQ== + dependencies: + mermaid "10.2.1" + unist-util-visit "4.1.2" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@transmute/did-key-bls12381@^0.2.1-unstable.42": + version "0.2.1-unstable.42" + resolved "https://registry.yarnpkg.com/@transmute/did-key-bls12381/-/did-key-bls12381-0.2.1-unstable.42.tgz#d2f2252043cf9c1e874acbc7f51fd9f4bcd7707a" + integrity sha512-NYe8Sp09+M20BtXEd/GhVeqzVksdl5pKf71nCMpvjZHHKG5FPAcGc5uYpbk/CbY5Xb/2lH76lTndim0IMU6IIQ== + dependencies: + "@mattrglobal/bbs-signatures" "^0.5.0" + "@mattrglobal/bls12381-key-pair" "^0.5.0" + base64url "^3.0.1" + bs58 "^4.0.1" + +"@transmute/did-key-cipher@^0.2.1-unstable.42": + version "0.2.1-unstable.42" + resolved "https://registry.yarnpkg.com/@transmute/did-key-cipher/-/did-key-cipher-0.2.1-unstable.42.tgz#355da8523610aed24dbc42fa3db61b1660023bd5" + integrity sha512-drD/G7R2yQkK6PnGkmLOlOieL3ybtiEXsubaebaBayoRsWqBRX/IJ0ufGwjRgohTvvlSoKWd4Ustyyhi9kK+Mw== + dependencies: + "@peculiar/webcrypto" "^1.1.3" + "@stablelib/aes-kw" "^1.0.0" + "@stablelib/xchacha20poly1305" "^1.0.0" + "@transmute/did-key-common" "^0.2.1-unstable.42" + web-streams-polyfill "^3.0.0" + +"@transmute/did-key-common@^0.2.1-unstable.42": + version "0.2.1-unstable.42" + resolved "https://registry.yarnpkg.com/@transmute/did-key-common/-/did-key-common-0.2.1-unstable.42.tgz#494b266308b28a41a88cea7fe3697a5474c33bbb" + integrity sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A== + dependencies: + base64url "^3.0.1" + borc "^2.1.2" + canonicalize "^1.0.3" + cbor "^5.1.0" + +"@transmute/did-key-ed25519@^0.2.1-unstable.29", "@transmute/did-key-ed25519@^0.2.1-unstable.42": + version "0.2.1-unstable.42" + resolved "https://registry.yarnpkg.com/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz#b319eea9991f3ed092c221fee69bbe1edd71d8a1" + integrity sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw== + dependencies: + "@stablelib/ed25519" "^1.0.1" + "@transmute/did-key-common" "^0.2.1-unstable.42" + "@transmute/did-key-x25519" "^0.2.1-unstable.42" + "@trust/keyto" "^1.0.1" + base64url "^3.0.1" + bs58 "^4.0.1" + canonicalize "^1.0.1" + +"@transmute/did-key-secp256k1@^0.2.1-unstable.29", "@transmute/did-key-secp256k1@^0.2.1-unstable.42": + version "0.2.1-unstable.42" + resolved "https://registry.yarnpkg.com/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz#619a2bcc10c53adb831930610f1c49f5ec771261" + integrity sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ== + dependencies: + "@transmute/did-key-common" "^0.2.1-unstable.42" + "@trust/keyto" "^1.0.1" + base64url "^3.0.1" + bs58 "^4.0.1" + canonicalize "^1.0.1" + secp256k1 "^4.0.1" + +"@transmute/did-key-web-crypto@^0.2.1-unstable.42": + version "0.2.1-unstable.42" + resolved "https://registry.yarnpkg.com/@transmute/did-key-web-crypto/-/did-key-web-crypto-0.2.1-unstable.42.tgz#3f400bff3019ec722bf6047136436065bd051eaa" + integrity sha512-GaD320cZxPJAVdQtSrxgTn91T1M/2qwSMQgowVdnY5HKEik2BS3o1kU7DYAJpUPdU2WNKg9W3Rr+C/dRY0Q0rQ== + dependencies: + "@transmute/web-crypto-key-pair" "^0.6.1-unstable.18" + +"@transmute/did-key-x25519@^0.2.1-unstable.42": + version "0.2.1-unstable.42" + resolved "https://registry.yarnpkg.com/@transmute/did-key-x25519/-/did-key-x25519-0.2.1-unstable.42.tgz#752d1ec8b55ae4804866e982aec838e4a2d12b18" + integrity sha512-pInHZaepvjmfym1fBDrdbL5isUVbYHR1nYBsH3uD9EPn7SwZfEBe0Vg9hUop81b4x/6+VVWuGm2dIhpVBxsRPQ== + dependencies: + "@stablelib/ed25519" "^1.0.1" + "@stablelib/x25519" "^1.0.0" + "@transmute/did-key-cipher" "^0.2.1-unstable.42" + "@transmute/did-key-common" "^0.2.1-unstable.42" + "@trust/keyto" "^1.0.1" + base64url "^3.0.1" + bs58 "^4.0.1" + canonicalize "^1.0.1" + +"@transmute/did-key.js@^0.2.1-unstable.29": + version "0.2.1-unstable.42" + resolved "https://registry.yarnpkg.com/@transmute/did-key.js/-/did-key.js-0.2.1-unstable.42.tgz#f919e3371df8fa90ae1ccc52b1afcb7f6a2268ef" + integrity sha512-vqwkJeAIkpekSCszKztIOVGFuWZMF8GJfiSHMv+vsS0cgLqzHer8WCUCudWt76rc2s90uK7FdlkvdwoZgGRl6g== + dependencies: + "@transmute/did-key-bls12381" "^0.2.1-unstable.42" + "@transmute/did-key-ed25519" "^0.2.1-unstable.42" + "@transmute/did-key-secp256k1" "^0.2.1-unstable.42" + "@transmute/did-key-web-crypto" "^0.2.1-unstable.42" + "@transmute/did-key-x25519" "^0.2.1-unstable.42" + +"@transmute/did-wallet@lucksus/did-wallet": + version "0.0.0-6" + resolved "https://codeload.github.com/lucksus/did-wallet/tar.gz/cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2" + dependencies: + base64url "^3.0.1" + jsonschema "^1.2.4" + lodash "^4.17.11" + +"@transmute/ld-key-pair@^0.6.1-unstable.37": + version "0.6.1-unstable.37" + resolved "https://registry.yarnpkg.com/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz#ffe8af071b4ea991a49c795724b93999f4e6c8af" + integrity sha512-DcTpEruAQBfOd2laZkg3uCQ+67Y7dw2hsvo42NAQ5tItCIx5AClP7zccri7T2JUcfDUFaE32z/BLTMEKYt3XZQ== + +"@transmute/web-crypto-key-pair@^0.6.1-unstable.18": + version "0.6.1-unstable.37" + resolved "https://registry.yarnpkg.com/@transmute/web-crypto-key-pair/-/web-crypto-key-pair-0.6.1-unstable.37.tgz#02c70d017b69c79d040965df546c06ae32311733" + integrity sha512-BVN5ECm3t5ldJiyixsdoXaptr14p2PxOOGWvyBm5eqWlVy/kiWQiVh43wZgEbHtjOkacTfw+BaVAtYkyGn2tpw== + dependencies: + "@peculiar/webcrypto" "^1.1.6" + "@transmute/ld-key-pair" "^0.6.1-unstable.37" + big-integer "^1.6.48" + +"@trust/keyto@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@trust/keyto/-/keyto-1.0.1.tgz#60fdea0a6049c04161a2a011772d6294edd7cd53" + integrity sha512-OXTmKkrnkwktCX86XA7eWs1TQ6u64enm0syzAfNhjigbuGLy5aLhbhRYWtjt4zzdG/irWudluheRZ9Ic9pCwsA== + dependencies: + asn1.js "^5.2.0" + base64url "^3.0.1" + elliptic "^6.5.2" + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@tsconfig/svelte@^1.0.0": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@tsconfig/svelte/-/svelte-1.0.13.tgz#2fa34376627192c0d643ce54964915e2bd3a58e4" + integrity sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA== + +"@types/accepts@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== + dependencies: + "@types/node" "*" + +"@types/acorn@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" + integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== + dependencies: + "@types/estree" "*" + +"@types/aria-query@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" + integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" + integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" + integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== + dependencies: + "@babel/types" "^7.20.7" + +"@types/bn.js@*": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== + dependencies: + "@types/node" "*" + +"@types/body-parser@*", "@types/body-parser@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + dependencies: + "@types/node" "*" + +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + +"@types/chai-as-promised@*": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz#6e016811f6c7a64f2eed823191c3a6955094e255" + integrity sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ== + dependencies: + "@types/chai" "*" + +"@types/chai@*": + version "4.3.5" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" + integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== + +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" + integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/cors@2.8.12": + version "2.8.12" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + +"@types/debug@^4.0.0": + version "4.1.8" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" + integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ== + dependencies: + "@types/ms" "*" + +"@types/elliptic@^6.4.9": + version "6.4.14" + resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.14.tgz#7bbaad60567a588c1f08b10893453e6b9b4de48e" + integrity sha512-z4OBcDAU0GVwDTuwJzQCiL6188QvZMkvoERgcVjq0/mPM8jCfdwZ3x5zQEVoL9WCAru3aG5wl3Z5Ww5wBWn7ZQ== + dependencies: + "@types/bn.js" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.0.tgz#ae73dc9ec5237f2794c4f79efd6a4c73b13daf23" + integrity sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree-jsx@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.0.tgz#7bfc979ab9f692b492017df42520f7f765e98df1" + integrity sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ== + dependencies: + "@types/estree" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/expect@*": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@types/expect/-/expect-24.3.0.tgz#d7cab8b3c10c2d92a0cbb31981feceb81d3486f1" + integrity sha512-aq5Z+YFBz5o2b6Sp1jigx5nsmoZMK5Ceurjwy6PZmRv7dEi1jLtkARfvB1ME+OXJUG+7TZUDcv3WoCr/aor6dQ== + dependencies: + expect "*" + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.33": + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express-serve-static-core@4.17.31": + version "4.17.31" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14", "@types/express@^4.17.8": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/express@4.17.14": + version "4.17.14" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/faker@^5.5.7": + version "5.5.9" + resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== + +"@types/fs-extra@^9.0.12", "@types/fs-extra@^9.0.13": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.3": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" + integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + dependencies: + "@types/node" "*" + +"@types/hast@^2.0.0": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" + integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + dependencies: + "@types/unist" "*" + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/http-proxy@^1.17.8": + version "1.17.11" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" + integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== + dependencies: + "@types/node" "*" + +"@types/is-ci@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/is-ci/-/is-ci-3.0.0.tgz#7e8910af6857601315592436f030aaa3ed9783c3" + integrity sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ== + dependencies: + ci-info "^3.1.0" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@*": + version "29.5.2" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.2.tgz#86b4afc86e3a8f3005b297ed8a72494f89e6395b" + integrity sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/jest@^26.0.14": + version "26.0.24" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/jest@^27.4.1": + version "27.5.2" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c" + integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== + dependencies: + jest-matcher-utils "^27.0.0" + pretty-format "^27.0.0" + +"@types/js-yaml@^4.0.0", "@types/js-yaml@^4.0.2": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" + integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== + +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + +"@types/json-stable-stringify@^1.0.33": + version "1.0.34" + resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" + integrity sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/katex@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.14.0.tgz#b84c0afc3218069a5ad64fe2a95321881021b5fe" + integrity sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA== + +"@types/katex@^0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.16.0.tgz#0e640df3647fe237212be863e1f5111eb9754f93" + integrity sha512-hz+S3nV6Mym5xPbT9fnO8dDhBFQguMYpY0Ipxv06JMi1ORgnEM4M1ymWDUhUNer3ElLmT583opRo4RzxKmh9jw== + +"@types/keyv@^3.1.1", "@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/lodash@*": + version "4.14.195" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" + integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + +"@types/long@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/lowdb@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@types/lowdb/-/lowdb-1.0.11.tgz#d8336a635ea0dbd48a7f6f62fb9fccc5ec358ae3" + integrity sha512-h99VMxvTuz+VsXUVCCJo4dsps4vbkXwvU71TpmxDoiBU24bJ0VBygIHgmMm+UPoQIFihmV6euRik4z8J7XDJWg== + dependencies: + "@types/lodash" "*" + +"@types/mdast@^3.0.0": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.11.tgz#dc130f7e7d9306124286f6d6cee40cf4d14a3dc0" + integrity sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw== + dependencies: + "@types/unist" "*" + +"@types/mdx@^2.0.0": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.5.tgz#9a85a8f70c7c4d9e695a21d5ae5c93645eda64b1" + integrity sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg== + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + +"@types/mocha@*", "@types/mocha@^10.0.0": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" + integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== + +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + +"@types/node-fetch@^2.5.11", "@types/node-fetch@^2.6.1": + version "2.6.4" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" + integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node@*", "@types/node@>=6": + version "20.2.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" + integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== + +"@types/node@18.11.10": + version "18.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" + integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== + +"@types/node@^10.1.0": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^12.7.1": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + +"@types/node@^14.11.2", "@types/node@^14.14.22": + version "14.18.48" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.48.tgz#ee5c7ac6e38fd2a9e6885f15c003464cf2da343c" + integrity sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg== + +"@types/node@^16.11.26": + version "16.18.34" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.34.tgz#62d2099b30339dec4b1b04a14c96266459d7c8b2" + integrity sha512-VmVm7gXwhkUimRfBwVI1CHhwp86jDWR04B5FGebMMyxV90SlCmFujwUHrxTD4oO+SOYU86SoxvhgeRQJY7iXFg== + +"@types/node@^18.0.0": + version "18.16.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.16.tgz#3b64862856c7874ccf7439e6bab872d245c86d8e" + integrity sha512-NpaM49IGQQAUlBhHMF82QH80J08os4ZmyF9MkpCzWAGuOHqE4gTEbhzd7L3l5LmWuZ6E0OiC1FweQ4tsiW35+g== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.0.0", "@types/prettier@^2.1.5": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/pug@^2.0.4": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6" + integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== + +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/react-dom@<18.0.0": + version "17.0.20" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.20.tgz#e0c8901469d732b36d8473b40b679ad899da1b53" + integrity sha512-4pzIjSxDueZZ90F52mU3aPoogkHIoSIDG+oQ+wQK7Cy2B9S+MvOqY0uEA/qawKz381qrEDkvpwyt8Bm31I8sbA== + dependencies: + "@types/react" "^17" + +"@types/react-dom@^18.0.9": + version "18.2.4" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.4.tgz#13f25bfbf4e404d26f62ac6e406591451acba9e0" + integrity sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@>=16": + version "18.2.9" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.9.tgz#9207f8571afdc59a9c9c30df50e8ad2591ecefaf" + integrity sha512-pL3JAesUkF7PEQGxh5XOwdXGV907te6m1/Qe1ERJLgomojS6Ne790QiA7GUl434JEkFA2aAaB6qJ5z4e1zJn/w== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@^17", "@types/react@^17.0.40": + version "17.0.60" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.60.tgz#a4a97dcdbebad76612c188fc06440e4995fd8ad2" + integrity sha512-pCH7bqWIfzHs3D+PDs3O/COCQJka+Kcw3RnO9rFA2zalqoXg7cNjJDh6mZ7oRtY1wmY4LVwDdAbA1F7Z8tv3BQ== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/sass@^1.16.0": + version "1.45.0" + resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.45.0.tgz#a949eb1e080ff34715e6c2040357b940bffb89bb" + integrity sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA== + dependencies: + sass "*" + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + +"@types/secp256k1@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + dependencies: + "@types/node" "*" + +"@types/semver@^6.0.0": + version "6.2.3" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-6.2.3.tgz#5798ecf1bec94eaa64db39ee52808ec0693315aa" + integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== + +"@types/semver@^7.3.12", "@types/semver@^7.3.3": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" + integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.1" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" + integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/sha256@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@types/sha256/-/sha256-0.2.0.tgz#e91194d70f4eb67f08812e847feecf5146f4afdd" + integrity sha512-QYMr6HuxTQunFWRLZpGopbkgQFoFWOmKTBGgNSYiWMqU/CWnQSTo3edyHvgsRXsOWtOSOG/cmDptPzgCeOsQGw== + dependencies: + "@types/node" "*" + +"@types/sinon@*": + version "10.0.15" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.15.tgz#513fded9c3cf85e589bbfefbf02b2a0541186b48" + integrity sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ== + dependencies: + "@types/sinonjs__fake-timers" "*" + +"@types/sinonjs__fake-timers@*": + version "8.1.2" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e" + integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA== + +"@types/sockjs@^0.3.33": + version "0.3.33" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" + integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + dependencies: + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/testing-library__jest-dom@^5.9.1": + version "5.14.6" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.6.tgz#4887f6e1af11215428ab02777873bcede98a53b0" + integrity sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA== + dependencies: + "@types/jest" "*" + +"@types/trusted-types@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" + integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + +"@types/unzipper@^0.10.5": + version "0.10.6" + resolved "https://registry.yarnpkg.com/@types/unzipper/-/unzipper-0.10.6.tgz#767101c65fa3968a725c02de11884f75952b091e" + integrity sha512-zcBj329AHgKLQyz209N/S9R0GZqXSkUQO4tJSYE3x02qg4JuDFpgKMj50r82Erk1natCWQDIvSccDddt7jPzjA== + dependencies: + "@types/node" "*" + +"@types/uuid@9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" + integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== + +"@types/uuid@^8.3.1", "@types/uuid@^8.3.2": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" + integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== + +"@types/ws@8.5.4", "@types/ws@^8.5.1": + version "8.5.4" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" + integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^15.0.0": + version "15.0.15" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.15.tgz#e609a2b1ef9e05d90489c2f5f45bbfb2be092158" + integrity sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^16.0.0": + version "16.0.5" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.5.tgz#12cc86393985735a283e387936398c2f9e5f88e3" + integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^17.0.8": + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + +"@types/zen-observable@^0.8.0": + version "0.8.3" + resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" + integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== + +"@typescript-eslint/eslint-plugin@^5.5.0": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" + integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/type-utils" "5.59.9" + "@typescript-eslint/utils" "5.59.9" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@^5.0.0": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.9.tgz#e77482a8b70f1a6aa3a1c6a128be4a5e0e6db940" + integrity sha512-eZTK/Ci0QAqNc/q2MqMwI2+QI5ZI9HM12FcfGwbEvKif5ev/CIIYLmrlckvgPrC8XSbl39HtErR5NJiQkRkvWg== + dependencies: + "@typescript-eslint/utils" "5.59.9" + +"@typescript-eslint/parser@^5.21.0", "@typescript-eslint/parser@^5.5.0": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" + integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== + dependencies: + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/typescript-estree" "5.59.9" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz#eadce1f2733389cdb58c49770192c0f95470d2f4" + integrity sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ== + dependencies: + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/visitor-keys" "5.59.9" + +"@typescript-eslint/type-utils@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz#53bfaae2e901e6ac637ab0536d1754dfef4dafc2" + integrity sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q== + dependencies: + "@typescript-eslint/typescript-estree" "5.59.9" + "@typescript-eslint/utils" "5.59.9" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.9.tgz#3b4e7ae63718ce1b966e0ae620adc4099a6dcc52" + integrity sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw== + +"@typescript-eslint/typescript-estree@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz#6bfea844e468427b5e72034d33c9fffc9557392b" + integrity sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA== + dependencies: + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/visitor-keys" "5.59.9" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.59.9", "@typescript-eslint/utils@^5.58.0": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.9.tgz#adee890107b5ffe02cd46fdaa6c2125fb3c6c7c4" + integrity sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/typescript-estree" "5.59.9" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz#9f86ef8e95aca30fb5a705bb7430f95fc58b146d" + integrity sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q== + dependencies: + "@typescript-eslint/types" "5.59.9" + eslint-visitor-keys "^3.3.0" + +"@undecaf/barcode-detector-polyfill@^0.9.15": + version "0.9.16" + resolved "https://registry.yarnpkg.com/@undecaf/barcode-detector-polyfill/-/barcode-detector-polyfill-0.9.16.tgz#3033d55536e720ddc28e590bfccc2efdefc0bea5" + integrity sha512-wijWm5sHavKBpd0TWuQ++5XEFf9E+8zmrD5ezGJipNj+SbziKm2MQqNRAOpGN+LHGYHF00MwEJafYxNz3LWzkA== + dependencies: + "@undecaf/zbar-wasm" "^0.9.12" + +"@undecaf/zbar-wasm@^0.9.12": + version "0.9.13" + resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.13.tgz#dc17280770a8d075205c32dd4d1ce95faec0546f" + integrity sha512-Xl4eyfU8nwtTHF4Wi0Qyklq8BC6BmW++GYlN0gCeIgrqeIDmV7xp3nNpIN4fQpIbdvq3lvgnvVcBKAiYn9FvzA== + +"@vitejs/plugin-react-refresh@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.6.tgz#19818392db01e81746cfeb04e096ab3010e79fe3" + integrity sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA== + dependencies: + "@babel/core" "^7.14.8" + "@babel/plugin-transform-react-jsx-self" "^7.14.5" + "@babel/plugin-transform-react-jsx-source" "^7.14.5" + "@rollup/pluginutils" "^4.1.1" + react-refresh "^0.10.0" + +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@xtuc/long" "4.2.2" + +"@wry/context@^0.4.0": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz#e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8" + integrity sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag== + dependencies: + "@types/node" ">=6" + tslib "^1.9.3" + +"@wry/context@^0.7.0": + version "0.7.3" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.3.tgz#240f6dfd4db5ef54f81f6597f6714e58d4f476a1" + integrity sha512-Nl8WTesHp89RF803Se9X3IiHjdmLBrIvPMaJkl+rKVJAYyPsz1TEUbu89943HpvujtSJgDUx9W4vZw3K1Mr3sA== + dependencies: + tslib "^2.3.0" + +"@wry/equality@^0.1.2": + version "0.1.11" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" + integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== + dependencies: + tslib "^1.9.3" + +"@wry/equality@^0.5.0": + version "0.5.6" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.6.tgz#cd4a533c72c3752993ab8cbf682d3d20e3cb601e" + integrity sha512-D46sfMTngaYlrH+OspKf8mIJETntFnf6Hsjb0V41jAXJ7Bx2kB8Rv8RCUujuVWYttFtHkUNp7g+FwxNQAr6mXA== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" + integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== + dependencies: + tslib "^2.3.0" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +JSONStream@^1.0.3: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +a-sync-waterfall@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz#75b6b6aa72598b497a125e7a2770f14f4c8a1fa7" + integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0, acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^7.0.0, acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.0.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +address@^1.0.1, address@^1.1.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +adjust-sourcemap-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" + integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.6.0, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +aloedb-node@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/aloedb-node/-/aloedb-node-1.1.1.tgz#76fb08ffa7857a1d0bf21a917e8a1213ed624bd5" + integrity sha512-BH5RP5DvN4LEnfGGR+cX4VFf/asmWa1zwKVMVrAuFj3jjgySt9SBLGXTOsP0Epf1O5lzFQyoPDzmTzE44RmPUw== + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== + +anchor-markdown-header@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/anchor-markdown-header/-/anchor-markdown-header-0.6.0.tgz#908f2031281766f44ac350380ca0de77ab7065b8" + integrity sha512-v7HJMtE1X7wTpNFseRhxsY/pivP4uAJbidVhPT+yhz4i/vV1+qx371IXuV9V7bN6KjFtheLJxqaSm0Y/8neJTA== + dependencies: + emoji-regex "~10.1.0" + +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-colors@^4.1.1, ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escape-sequences@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz#2483c8773f50dd9174dd9557e92b1718f1816097" + integrity sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw== + dependencies: + array-back "^3.0.1" + +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-sequence-parser@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz#4d790f31236ac20366b23b3916b789e1bde39aed" + integrity sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.1.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + +any-observable@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.5.1.tgz#ab7d49ff64ebe6dd3ae26760a3f5a881e8db791e" + integrity sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apollo-boost@^0.4.9: + version "0.4.9" + resolved "https://registry.yarnpkg.com/apollo-boost/-/apollo-boost-0.4.9.tgz#ab3ba539c2ca944e6fd156583a1b1954b17a6791" + integrity sha512-05y5BKcDaa8w47f8d81UVwKqrAjn8uKLv6QM9fNdldoNzQ+rnOHgFlnrySUZRz9QIT3vPftQkEz2UEASp1Mi5g== + dependencies: + apollo-cache "^1.3.5" + apollo-cache-inmemory "^1.6.6" + apollo-client "^2.6.10" + apollo-link "^1.0.6" + apollo-link-error "^1.0.3" + apollo-link-http "^1.3.1" + graphql-tag "^2.4.2" + ts-invariant "^0.4.0" + tslib "^1.10.0" + +apollo-cache-inmemory@^1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz#56d1f2a463a6b9db32e9fa990af16d2a008206fd" + integrity sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A== + dependencies: + apollo-cache "^1.3.5" + apollo-utilities "^1.3.4" + optimism "^0.10.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + +apollo-cache@1.3.5, apollo-cache@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.5.tgz#9dbebfc8dbe8fe7f97ba568a224bca2c5d81f461" + integrity sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA== + dependencies: + apollo-utilities "^1.3.4" + tslib "^1.10.0" + +apollo-client@^2.6.10: + version "2.6.10" + resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.10.tgz#86637047b51d940c8eaa771a4ce1b02df16bea6a" + integrity sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA== + dependencies: + "@types/zen-observable" "^0.8.0" + apollo-cache "1.3.5" + apollo-link "^1.0.0" + apollo-utilities "1.3.4" + symbol-observable "^1.0.2" + ts-invariant "^0.4.0" + tslib "^1.10.0" + zen-observable "^0.8.0" + +apollo-datasource@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.2.tgz#5711f8b38d4b7b53fb788cb4dbd4a6a526ea74c8" + integrity sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + apollo-server-env "^4.2.1" + +apollo-link-error@^1.0.3: + version "1.1.13" + resolved "https://registry.yarnpkg.com/apollo-link-error/-/apollo-link-error-1.1.13.tgz#c1a1bb876ffe380802c8df0506a32c33aad284cd" + integrity sha512-jAZOOahJU6bwSqb2ZyskEK1XdgUY9nkmeclCrW7Gddh1uasHVqmoYc4CKdb0/H0Y1J9lvaXKle2Wsw/Zx1AyUg== + dependencies: + apollo-link "^1.2.14" + apollo-link-http-common "^0.2.16" + tslib "^1.9.3" + +apollo-link-http-common@^0.2.16: + version "0.2.16" + resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc" + integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg== + dependencies: + apollo-link "^1.2.14" + ts-invariant "^0.4.0" + tslib "^1.9.3" + +apollo-link-http@^1.3.1: + version "1.5.17" + resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz#499e9f1711bf694497f02c51af12d82de5d8d8ba" + integrity sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg== + dependencies: + apollo-link "^1.2.14" + apollo-link-http-common "^0.2.16" + tslib "^1.9.3" + +apollo-link@^1.0.0, apollo-link@^1.0.6, apollo-link@^1.2.14: + version "1.2.14" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" + integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== + dependencies: + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" + zen-observable-ts "^0.8.21" + +apollo-reporting-protobuf@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz#6edd31f09d4a3704d9e808d1db30eca2229ded26" + integrity sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog== + dependencies: + "@apollo/protobufjs" "1.2.6" + +apollo-server-core@3.12.0, apollo-server-core@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.12.0.tgz#8aa2a7329ce6fe1823290c45168c749db01548df" + integrity sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + "@apollo/utils.logger" "^1.0.0" + "@apollo/utils.usagereporting" "^1.0.0" + "@apollographql/apollo-tools" "^0.5.3" + "@apollographql/graphql-playground-html" "1.6.29" + "@graphql-tools/mock" "^8.1.2" + "@graphql-tools/schema" "^8.0.0" + "@josephg/resolvable" "^1.0.0" + apollo-datasource "^3.3.2" + apollo-reporting-protobuf "^3.4.0" + apollo-server-env "^4.2.1" + apollo-server-errors "^3.3.1" + apollo-server-plugin-base "^3.7.2" + apollo-server-types "^3.8.0" + async-retry "^1.2.1" + fast-json-stable-stringify "^2.1.0" + graphql-tag "^2.11.0" + loglevel "^1.6.8" + lru-cache "^6.0.0" + node-abort-controller "^3.0.1" + sha.js "^2.4.11" + uuid "^9.0.0" + whatwg-mimetype "^3.0.0" + +apollo-server-env@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185" + integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g== + dependencies: + node-fetch "^2.6.7" + +apollo-server-errors@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" + integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== + +apollo-server-express@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.12.0.tgz#a6e392bb0427544b8c7e5d841ef07f7691b0c105" + integrity sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ== + dependencies: + "@types/accepts" "^1.3.5" + "@types/body-parser" "1.19.2" + "@types/cors" "2.8.12" + "@types/express" "4.17.14" + "@types/express-serve-static-core" "4.17.31" + accepts "^1.3.5" + apollo-server-core "^3.12.0" + apollo-server-types "^3.8.0" + body-parser "^1.19.0" + cors "^2.8.5" + parseurl "^1.3.3" + +apollo-server-plugin-base@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz#c19cd137bc4c993ba2490ba2b571b0f3ce60a0cd" + integrity sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw== + dependencies: + apollo-server-types "^3.8.0" + +apollo-server-types@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.8.0.tgz#d976b6967878681f715fe2b9e4dad9ba86b1346f" + integrity sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + "@apollo/utils.logger" "^1.0.0" + apollo-reporting-protobuf "^3.4.0" + apollo-server-env "^4.2.1" + +apollo-utilities@1.3.4, apollo-utilities@^1.3.0, apollo-utilities@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" + integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== + dependencies: + "@wry/equality" "^0.1.2" + fast-json-stable-stringify "^2.0.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + +appdata-path@perspect3vism/appdata-path: + version "1.0.0" + resolved "https://codeload.github.com/perspect3vism/appdata-path/tar.gz/6304ea16cbfebc98749c33941d643c3046b45985" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arch@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +are-we-there-yet@~1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-1.0.0.tgz#444d885a4e25b121640b55155ef7cd03975d6050" + integrity sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.0.0, aria-query@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-back@^1.0.3, array-back@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" + integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== + dependencies: + typical "^2.6.0" + +array-back@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" + integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== + dependencies: + typical "^2.6.1" + +array-back@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-difference@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-difference/-/array-difference-0.0.1.tgz#c7cafd9b54b35eb82f72e7ba319e938a3fd32b07" + integrity sha512-LMXXDKmRSsO+d7N73LyTBWlT+GiLfNUCWeeWmZivzJ1NxSPOobS+w8bIAAfGEV35oVBsk9u9cXii8dDceU5NPw== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-flatten@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.flat@^1.2.3, array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.2.5, array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" + integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +asap@^2.0.3, asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asciidoctor-opal-runtime@0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.3.tgz#2667635f858d3eb3fdfcf6795cf68138e2040174" + integrity sha512-/CEVNiOia8E5BMO9FLooo+Kv18K4+4JBFRJp8vUy/N5dMRAg+fRNV4HA+o6aoSC79jVU/aT5XvUpxSxSsTS8FQ== + dependencies: + glob "7.1.3" + unxhr "1.0.1" + +asciidoctor@^2.2.0: + version "2.2.6" + resolved "https://registry.yarnpkg.com/asciidoctor/-/asciidoctor-2.2.6.tgz#43b5fec8ab91ed2d8d1815c75067cfa29da2e568" + integrity sha512-EXG3+F2pO21B+COfQmV/WgEgGiy7nG/mJiS/o5DXpaT2q82FRZWPVkbMZrpDvpu4pjXe5c754RbZR9Vz0L0Vtw== + dependencies: + "@asciidoctor/cli" "3.5.0" + "@asciidoctor/core" "2.2.6" + +asn1.js@^5.0.1, asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assert@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== + +astring@^1.8.0: + version "1.8.6" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" + integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async-mutex@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.3.2.tgz#1485eda5bda1b0ec7c8df1ac2e815757ad1831df" + integrity sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA== + dependencies: + tslib "^2.3.1" + +async-retry@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +auto-bind@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-5.0.1.tgz#50d8e63ea5a1dddcb5e5e36451c1a8266ffbb2ae" + integrity sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg== + +autoprefixer@^10.4.13: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + dependencies: + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + +axe-core@^4.6.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" + integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== + +axobject-query@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-jest@^27.4.2, babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== + dependencies: + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-loader@^8.2.3: + version "8.3.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" + integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-import-to-require@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz#432b9ee7fe9d77de03e849247c78a6e51fb18009" + integrity sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ== + dependencies: + babel-template "^6.26.0" + +babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +babel-plugin-named-asset-import@^0.3.8: + version "0.3.8" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" + integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== + +babel-plugin-polyfill-corejs2@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz#75044d90ba5043a5fb559ac98496f62f3eb668fd" + integrity sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.4.0" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz#39248263c38191f0d226f928d666e6db1b4b3a8a" + integrity sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.0" + core-js-compat "^3.30.1" + +babel-plugin-polyfill-regenerator@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz#e7344d88d9ef18a3c47ded99362ae4a757609380" + integrity sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.0" + +babel-plugin-transform-hook-names@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-hook-names/-/babel-plugin-transform-hook-names-1.0.2.tgz#0d75c2d78e8bbcdb258241131562b9cf07f010f3" + integrity sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw== + +babel-plugin-transform-react-remove-prop-types@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== + dependencies: + babel-plugin-jest-hoist "^27.5.1" + babel-preset-current-node-syntax "^1.0.0" + +babel-preset-react-app@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz#ed6005a20a24f2c88521809fa9aea99903751584" + integrity sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg== + dependencies: + "@babel/core" "^7.16.0" + "@babel/plugin-proposal-class-properties" "^7.16.0" + "@babel/plugin-proposal-decorators" "^7.16.4" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" + "@babel/plugin-proposal-numeric-separator" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-private-methods" "^7.16.0" + "@babel/plugin-transform-flow-strip-types" "^7.16.0" + "@babel/plugin-transform-react-display-name" "^7.16.0" + "@babel/plugin-transform-runtime" "^7.16.4" + "@babel/preset-env" "^7.16.4" + "@babel/preset-react" "^7.16.0" + "@babel/preset-typescript" "^7.16.0" + "@babel/runtime" "^7.16.3" + babel-plugin-macros "^3.1.0" + babel-plugin-transform-react-remove-prop-types "^0.4.24" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +backo2@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== + +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64url@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" + integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bash-color@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/bash-color/-/bash-color-0.0.4.tgz#e9be8ce33540cada4881768c59bd63865736e913" + integrity sha512-ZNB4525U7BxT6v9C8LEtywyCgB4Pjnm7/bh+ru/Z9Ecxvg3fDjaJ6z305z9a61orQdbB1zqYHh5JbUqx4s4K0g== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +better-path-resolve@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d" + integrity sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== + dependencies: + is-windows "^1.0.0" + +bfj@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" + integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== + dependencies: + bluebird "^3.5.5" + check-types "^11.1.1" + hoopy "^0.1.4" + tryer "^1.0.1" + +big-integer@^1.6.17, big-integer@^1.6.48: + version "1.6.51" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bignumber.js@^9.0.0, bignumber.js@^9.0.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" + integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +binary@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" + integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== + dependencies: + buffers "~0.1.1" + chainsaw "~0.1.0" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bluebird@~3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" + integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.8, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@^1.19.0: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +body@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" + integrity sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ== + dependencies: + continuable-cache "^0.3.1" + error "^7.0.0" + raw-body "~1.1.0" + safe-json-parse "~1.0.1" + +bonjour-service@^1.0.11: + version "1.1.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" + integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== + dependencies: + array-flatten "^2.1.2" + dns-equal "^1.0.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boolean@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + +borc@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" + integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== + dependencies: + bignumber.js "^9.0.0" + buffer "^5.5.0" + commander "^2.15.0" + ieee754 "^1.1.13" + iso-url "~0.4.7" + json-text-sequence "~0.1.0" + readable-stream "^3.6.0" + +boxen@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +breakword@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/breakword/-/breakword-1.0.6.tgz#242506e7b871b7fad1bce8dc05cb0f2a129c12bd" + integrity sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw== + dependencies: + wcwidth "^1.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-pack@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.8.0" + defined "^1.0.0" + safe-buffer "^5.1.1" + through2 "^2.0.0" + umd "^3.0.0" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-resolve@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" + integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== + dependencies: + resolve "^1.17.0" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserify@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-17.0.0.tgz#4c48fed6c02bfa2b51fd3b670fddb805723cdc22" + integrity sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w== + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^2.0.0" + browserify-zlib "~0.2.0" + buffer "~5.2.1" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.1" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^3.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.2.1" + labeled-stream-splicer "^2.0.0" + mkdirp-classic "^0.5.2" + module-deps "^6.2.3" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "^1.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum-object "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^3.0.0" + stream-http "^3.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.12.0" + vm-browserify "^1.0.0" + xtend "^4.0.0" + +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: + version "4.21.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551" + integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA== + dependencies: + caniuse-lite "^1.0.30001489" + electron-to-chromium "^1.4.411" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bs58@4.0.1, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-crc32@^0.2.5, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-from@1.x, buffer-from@^1.0.0, buffer-from@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof-polyfill@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" + integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +buffer@^5.1.0, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@~5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +buffers@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" + integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== + +builtin-modules@^3.1.0, builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== + +busboy@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" + integrity sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-lookup@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" + integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== + dependencies: + "@types/keyv" "^3.1.1" + keyv "^4.0.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +cacheable-request@^7.0.1: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" + integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0, callsites@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001489: + version "1.0.30001495" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001495.tgz#64a0ccef1911a9dcff647115b4430f8eff1ef2d9" + integrity sha512-F6x5IEuigtUfU5ZMQK2jsy5JqUUlEFRVZq8bO2a+ysq5K7jD6PPc9YXZj78xDNS3uNchesp1Jw47YXEqr+Viyg== + +canonicalize@^1.0.1, canonicalize@^1.0.3: + version "1.0.8" + resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.8.tgz#24d1f1a00ed202faafd9bf8e63352cd4450c6df1" + integrity sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A== + +canvas-renderer@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/canvas-renderer/-/canvas-renderer-2.2.1.tgz#c1d131f78a9799aca8af9679ad0a005052b65550" + integrity sha512-RrBgVL5qCEDIXpJ6NrzyRNoTnXxYarqm/cS/W6ERhUJts5UQtt/XPEosGN3rqUkZ4fjBArlnCbsISJ+KCFnIAg== + dependencies: + "@types/node" "*" + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" + integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +cbor@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" + integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== + dependencies: + bignumber.js "^9.0.1" + nofilter "^1.0.4" + +ccount@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chai-as-promised@*: + version "7.1.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== + dependencies: + check-error "^1.0.2" + +chai@*: + version "4.3.7" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" + integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^4.1.2" + get-func-name "^2.0.0" + loupe "^2.3.1" + pathval "^1.1.1" + type-detect "^4.0.5" + +chainsaw@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" + integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== + dependencies: + traverse ">=0.3.0 <0.4" + +chalk@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" + integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q== + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + integrity sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ== + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +char-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" + integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== + +check-types@^11.1.1: + version "11.2.2" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.2.tgz#7afc0b6a860d686885062f2dba888ba5710335b4" + integrity sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA== + +cheerio-select@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.6.0.tgz#489f36604112c722afa147dedd0d4609c09e1696" + integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== + dependencies: + css-select "^4.3.0" + css-what "^6.0.1" + domelementtype "^2.2.0" + domhandler "^4.3.1" + domutils "^2.8.0" + +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@1.0.0-rc.10: + version "1.0.0-rc.10" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" + integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== + dependencies: + cheerio-select "^1.5.0" + dom-serializer "^1.3.2" + domhandler "^4.2.0" + htmlparser2 "^6.1.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + tslib "^2.2.0" + +cheerio@^1.0.0-rc.12: + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + +chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.1.0, ci-info@^3.2.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +class-validator@^0.13.1: + version "0.13.2" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.13.2.tgz#64b031e9f3f81a1e1dcd04a5d604734608b24143" + integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== + dependencies: + libphonenumber-js "^1.9.43" + validator "^13.7.0" + +clean-css@^5.2.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" + integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +client-only@0.0.1, client-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +clipboardy@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.2.tgz#2ce320b9ed9be1514f79878b53ff9765420903e2" + integrity sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw== + dependencies: + arch "^2.1.0" + execa "^0.8.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combine-source-map@^0.8.0, combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + integrity sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg== + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +command-line-args@^4.0.2: + version "4.0.7" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" + integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== + dependencies: + array-back "^2.0.0" + find-replace "^1.0.3" + typical "^2.6.1" + +command-line-commands@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/command-line-commands/-/command-line-commands-2.0.1.tgz#c58aa13dc78c06038ed67077e57ad09a6f858f46" + integrity sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ== + dependencies: + array-back "^2.0.0" + +command-line-usage@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-4.1.0.tgz#a6b3b2e2703b4dcf8bd46ae19e118a9a52972882" + integrity sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g== + dependencies: + ansi-escape-sequences "^4.0.0" + array-back "^2.0.0" + table-layout "^0.4.2" + typical "^2.6.1" + +commander@7, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^2.15.0, commander@^2.20.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +common-tags@^1.8.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +compute-scroll-into-view@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz#c418900a5c56e2b04b885b54995df164535962b1" + integrity sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-md@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/concat-md/-/concat-md-0.5.1.tgz#03c72343a5d81306aa5ae1040d6368ffbc444781" + integrity sha512-iZr6yxlwPQ5IZup2mvqgm+JI0jnu5yGkND2ra5DinBtcevDQPQiAGpf4RXOnor1UpKBUydqegDLfPY8b+FfI+Q== + dependencies: + doctoc "^2.2.1" + front-matter "^4.0.2" + globby "^11.1.0" + lodash.startcase "^4.4.0" + meow "^9.0.0" + transform-markdown-links "^2.0.0" + +concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@~1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-with-sourcemaps@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== + dependencies: + source-map "^0.6.1" + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +confusing-browser-globals@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +constants-browserify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== + +construct-style-sheets-polyfill@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/construct-style-sheets-polyfill/-/construct-style-sheets-polyfill-3.1.0.tgz#c490abd79efdb359fafa62ec14ea55232be0eecf" + integrity sha512-HBLKP0chz8BAY6rBdzda11c3wAZeCZ+kIG4weVC2NM3AXzxx09nhe8t0SQNdloAvg5GLuHwq/0SPOOSPvtCcKw== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +continuable-cache@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" + integrity sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA== + +convert-hex@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/convert-hex/-/convert-hex-0.1.0.tgz#08c04568922c27776b8a2e81a95d393362ea0b65" + integrity sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A== + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + integrity sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg== + +convert-string@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/convert-string/-/convert-string-0.1.0.tgz#79ce41a9bb0d03bcf72cdc6a8f3c56fbbc64410a" + integrity sha512-1KX9ESmtl8xpT2LN2tFnKSbV4NiarbVi8DVb39ZriijvtTklyrT+4dT1wsGMHKD3CJUjXgvJzstm9qL9ICojGA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +core-js-compat@^3.30.1, core-js-compat@^3.30.2: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" + integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== + dependencies: + browserslist "^4.21.5" + +core-js-pure@^3.23.3: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.2.tgz#005a82551f4af3250dcfb46ed360fad32ced114e" + integrity sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg== + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.19.2: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" + integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cose-base@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== + dependencies: + layout-base "^1.0.0" + +cose-base@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01" + integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== + dependencies: + layout-base "^2.0.0" + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cp@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/cp/-/cp-0.2.0.tgz#a0874183a09e885eb72792582ab68ce3932b135d" + integrity sha512-4ftCvShHjIZG/zzomHyunNpBof3sOFTTmU6s6q9DdqAL/ANqrKV3pr6Z6kVfBI4hjn59DFLImrBqn7GuuMqSZA== + +cpr@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cpr/-/cpr-3.0.1.tgz#b9a55038b7cd81a35c17b9761895bd8496aef1e5" + integrity sha512-Xch4PXQ/KC8lJ+KfJ9JI6eG/nmppLrPPWg5Q+vh65Qr9EjuJEubxh/H/Le1TmCZ7+Xv7iJuNRqapyOFZB+wsxA== + dependencies: + graceful-fs "^4.1.5" + minimist "^1.2.0" + mkdirp "~0.5.1" + rimraf "^2.5.4" + +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.6.tgz#bae05aa31a4da760969756318feeee6e70f15d6c" + integrity sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g== + dependencies: + node-fetch "^2.6.11" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +crypto-browserify@^3.0.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-blank-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" + integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== + dependencies: + postcss-selector-parser "^6.0.9" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-declaration-sorter@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" + integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== + +css-has-pseudo@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" + integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== + dependencies: + postcss-selector-parser "^6.0.9" + +css-loader@^6.5.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" + integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.21" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.3" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.3.8" + +css-minimizer-webpack-plugin@^3.2.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz#ab78f781ced9181992fe7b6e4f3422e76429878f" + integrity sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q== + dependencies: + cssnano "^5.0.6" + jest-worker "^27.0.2" + postcss "^8.3.5" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + +css-modules-loader-core@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" + integrity sha512-XWOBwgy5nwBn76aA+6ybUGL/3JBnCtBX9Ay9/OWIpzKYWlVHMazvJ+WtHumfi+xxdPF440cWK7JCYtt8xDifew== + dependencies: + icss-replace-symbols "1.1.0" + postcss "6.0.1" + postcss-modules-extract-imports "1.1.0" + postcss-modules-local-by-default "1.2.0" + postcss-modules-scope "1.1.0" + postcss-modules-values "1.3.0" + +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3, css-select@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-selector-tokenizer@^0.7.0: + version "0.7.3" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" + integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +cssdb@^7.1.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" + integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + +cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.3" + postcss-unique-selectors "^4.0.1" + +cssnano-preset-default@^5.2.14: + version "5.2.14" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" + integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.1" + postcss-convert-values "^5.1.3" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.7" + postcss-merge-rules "^5.1.4" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.4" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.1" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.3" + postcss-reduce-initial "^5.1.2" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== + +cssnano@^4.1.10: + version "4.1.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +cssnano@^5.0.1, cssnano@^5.0.6: + version "5.1.15" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" + integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== + dependencies: + cssnano-preset-default "^5.2.14" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.0.2, csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +csv-generate@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.4.3.tgz#bc42d943b45aea52afa896874291da4b9108ffff" + integrity sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw== + +csv-parse@^4.16.3: + version "4.16.3" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.16.3.tgz#7ca624d517212ebc520a36873c3478fa66efbaf7" + integrity sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg== + +csv-stringify@^5.6.5: + version "5.6.5" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.6.5.tgz#c6d74badda4b49a79bf4e72f91cce1e33b94de00" + integrity sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== + +csv@^5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/csv/-/csv-5.5.3.tgz#cd26c1e45eae00ce6a9b7b27dcb94955ec95207d" + integrity sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== + dependencies: + csv-generate "^3.4.3" + csv-parse "^4.16.3" + csv-stringify "^5.6.5" + stream-transform "^2.1.3" + +customize-cra@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/customize-cra/-/customize-cra-1.0.0.tgz#73286563631aa08127ad4d30a2e3c89cf4e93c8d" + integrity sha512-DbtaLuy59224U+xCiukkxSq8clq++MOtJ1Et7LED1fLszWe88EoblEYFBJ895sB1mC6B4uu3xPT/IjClELhMbA== + dependencies: + lodash.flow "^3.5.0" + +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== + dependencies: + cose-base "^1.0.0" + +cytoscape-fcose@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471" + integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== + dependencies: + cose-base "^2.2.0" + +cytoscape@^3.23.0: + version "3.25.0" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.25.0.tgz#5289e9d18be0293b073bfe93f83bb95b908b2dc1" + integrity sha512-7MW3Iz57mCUo6JQCho6CmPBCbTlJr7LzyEtIkutG255HLVd4XuBg2I9BkTZLI/e4HoaOB/BiAzXuQybQ95+r9Q== + dependencies: + heap "^0.2.6" + lodash "^4.17.21" + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" + integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-scale-chromatic@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" + integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.4.0, d3@^7.8.2: + version "7.8.5" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.5.tgz#fde4b760d4486cdb6f0cc8e2cbff318af844635c" + integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + +dagre-d3-es@7.0.10: + version "7.0.10" + resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz#19800d4be674379a3cd8c86a8216a2ac6827cadc" + integrity sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A== + dependencies: + d3 "^7.8.2" + lodash-es "^4.17.21" + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +dash-ast@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + +dayjs@^1.11.7: + version "1.11.8" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.8.tgz#4282f139c8c19dd6d0c7bd571e30c2d0ba7698ea" + integrity sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.4, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decimal.js@^10.2.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + +decompress-response@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" + integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== + dependencies: + mimic-response "^2.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-eql@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== + dependencies: + type-detect "^4.0.0" + +deep-equal@^2.0.5: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" + integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.0" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +deep-extend@^0.6.0, deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-freeze@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +del@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + +delaunator@5: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" + integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== + dependencies: + robust-predicates "^3.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +delimit-stream@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" + integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +deps-sort@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" + integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== + dependencies: + JSONStream "^1.0.3" + shasum-object "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +des.js@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0, destroy@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg== + +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port-alt@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detective@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" + integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== + dependencies: + acorn-node "^1.8.2" + defined "^1.0.0" + minimist "^1.2.6" + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + +diff-sequences@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" + integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diff@^5.0.0, diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +direction@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/direction/-/direction-0.1.5.tgz#ce5d797f97e26f8be7beff53f7dc40e1c1a9ec4c" + integrity sha512-HceXsAluGbXKCz2qCVbXFUH4Vn4eNMWxY5gzydMFMnS1zKSwvDASqLwcrYLIFDpwuZ63FUAqjDLEP1eicHt8DQ== + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + +dns-over-http-resolver@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9" + integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== + dependencies: + debug "^4.3.1" + native-fetch "^3.0.0" + receptacle "^1.3.2" + +dns-packet@^5.2.2: + version "5.6.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" + integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +doctoc@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/doctoc/-/doctoc-2.2.1.tgz#83f6a6bf4df97defbe027c9a82d13091a138ffe2" + integrity sha512-qNJ1gsuo7hH40vlXTVVrADm6pdg30bns/Mo7Nv1SxuXSM1bwF9b4xQ40a6EFT/L1cI+Yylbyi8MPI4G4y7XJzQ== + dependencies: + "@textlint/markdown-to-ast" "^12.1.1" + anchor-markdown-header "^0.6.0" + htmlparser2 "^7.2.0" + minimist "^1.2.6" + underscore "^1.13.2" + update-section "^0.3.3" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +dom-serializer@^1.0.1, dom-serializer@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domain-browser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" + integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== + dependencies: + domelementtype "^2.0.1" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +dompurify@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.3.tgz#4b115d15a091ddc96f232bcef668550a2f6f1430" + integrity sha512-axQ9zieHLnAnHh0sfAamKYiqXMJAVwu+LM/alQ7WDagoWessyWvMSFyW65CqF3owufNu8HBcE4cM2Vflu7YWcQ== + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.4.2, domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + +duplexer2@^0.1.2, duplexer2@^0.1.4, duplexer2@~0.1.0, duplexer2@~0.1.2, duplexer2@~0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== + dependencies: + readable-stream "^2.0.2" + +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^3.1.6: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.4.411: + version "1.4.425" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.425.tgz#399df13091b836d28283a545c25c8e4d9da86da8" + integrity sha512-wv1NufHxu11zfDbY4fglYQApMswleE9FL/DSeyOyauVXDZ+Kco96JK/tPfBUaDqfRarYp2WH2hJ/5UnVywp9Jg== + +electron@^20.0.3: + version "20.3.12" + resolved "https://registry.yarnpkg.com/electron/-/electron-20.3.12.tgz#5884b848f62daa6a3d07bbb9e29498c2da5da667" + integrity sha512-CuCZKhwdSXaUNIoEuPVZ25YH18zmox3wEM8Acwcy9tlpD8Jiuq3ji3RZ98eVWJalrpqbdE9LtTD/sLC86GIkLg== + dependencies: + "@electron/get" "^1.14.1" + "@types/node" "^16.11.26" + extract-zip "^2.0.1" + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== + +elkjs@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.8.2.tgz#c37763c5a3e24e042e318455e0147c912a7c248e" + integrity sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ== + +elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +email-validator@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" + integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== + +emittery@^0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" + integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emittery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" + integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emoji-regex@~10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.1.0.tgz#d50e383743c0f7a5945c47087295afc112e3cf66" + integrity sha512-xAEnNCT3w2Tg6MA7ly6QqYJvEoY1tm9iIjJ3yMKK9JPlWuRHAMoe5iETwQnx3M9TVbFMfsrBgWKR+IsmswwNjg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@^1.0.2, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.14.1: + version "5.14.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" + integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.0: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" + integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.1.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + +error@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + integrity sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw== + dependencies: + string-template "~0.2.1" + xtend "~4.0.0" + +error@^7.0.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + dependencies: + string-template "~0.2.1" + +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-module-lexer@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" + integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +es6-promise@^3.1.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== + +esbuild-android-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" + integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== + +esbuild-android-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" + integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== + +esbuild-darwin-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" + integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== + +esbuild-darwin-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" + integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== + +esbuild-freebsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" + integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== + +esbuild-freebsd-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" + integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== + +esbuild-linux-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" + integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== + +esbuild-linux-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" + integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== + +esbuild-linux-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" + integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== + +esbuild-linux-arm@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" + integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== + +esbuild-linux-mips64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" + integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== + +esbuild-linux-ppc64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" + integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== + +esbuild-linux-riscv64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" + integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== + +esbuild-linux-s390x@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" + integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== + +esbuild-netbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" + integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== + +esbuild-openbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" + integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== + +esbuild-plugin-alias@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz#45a86cb941e20e7c2bc68a2bea53562172494fcb" + integrity sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ== + +esbuild-plugin-lit@^0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/esbuild-plugin-lit/-/esbuild-plugin-lit-0.0.10.tgz#919b7794576bca351ca06a0be2a5a3f22dd1f662" + integrity sha512-0Vz+TRglIQsV2plsRJw+opO8erTIwXLtKjcFOLOiQDxRvKjFnmlENdB+fL9eLxXQu1HjRZkI9WW0ywWldoymtQ== + +esbuild-plugin-polyfill-node@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/esbuild-plugin-polyfill-node/-/esbuild-plugin-polyfill-node-0.2.0.tgz#26a3572c6b32bee126319ebdb4fa3ab584e30106" + integrity sha512-rpCoK4mag0nehBtFlFMLSuL9bNBLEh8h3wZ/FsrJEDompA/AwOqInx6Xow01+CXAcvZYhkoJ0SIZiS37qkecDA== + dependencies: + "@jspm/core" "^2.0.1" + import-meta-resolve "^2.2.2" + +esbuild-sunos-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" + integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== + +esbuild-windows-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" + integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== + +esbuild-windows-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" + integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== + +esbuild-windows-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" + integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== + +esbuild@^0.15.5: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" + integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== + optionalDependencies: + "@esbuild/android-arm" "0.15.18" + "@esbuild/linux-loong64" "0.15.18" + esbuild-android-64 "0.15.18" + esbuild-android-arm64 "0.15.18" + esbuild-darwin-64 "0.15.18" + esbuild-darwin-arm64 "0.15.18" + esbuild-freebsd-64 "0.15.18" + esbuild-freebsd-arm64 "0.15.18" + esbuild-linux-32 "0.15.18" + esbuild-linux-64 "0.15.18" + esbuild-linux-arm "0.15.18" + esbuild-linux-arm64 "0.15.18" + esbuild-linux-mips64le "0.15.18" + esbuild-linux-ppc64le "0.15.18" + esbuild-linux-riscv64 "0.15.18" + esbuild-linux-s390x "0.15.18" + esbuild-netbsd-64 "0.15.18" + esbuild-openbsd-64 "0.15.18" + esbuild-sunos-64 "0.15.18" + esbuild-windows-32 "0.15.18" + esbuild-windows-64 "0.15.18" + esbuild-windows-arm64 "0.15.18" + +esbuild@^0.17.15, esbuild@^0.17.5: + version "0.17.19" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" + integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== + optionalDependencies: + "@esbuild/android-arm" "0.17.19" + "@esbuild/android-arm64" "0.17.19" + "@esbuild/android-x64" "0.17.19" + "@esbuild/darwin-arm64" "0.17.19" + "@esbuild/darwin-x64" "0.17.19" + "@esbuild/freebsd-arm64" "0.17.19" + "@esbuild/freebsd-x64" "0.17.19" + "@esbuild/linux-arm" "0.17.19" + "@esbuild/linux-arm64" "0.17.19" + "@esbuild/linux-ia32" "0.17.19" + "@esbuild/linux-loong64" "0.17.19" + "@esbuild/linux-mips64el" "0.17.19" + "@esbuild/linux-ppc64" "0.17.19" + "@esbuild/linux-riscv64" "0.17.19" + "@esbuild/linux-s390x" "0.17.19" + "@esbuild/linux-x64" "0.17.19" + "@esbuild/netbsd-x64" "0.17.19" + "@esbuild/openbsd-x64" "0.17.19" + "@esbuild/sunos-x64" "0.17.19" + "@esbuild/win32-arm64" "0.17.19" + "@esbuild/win32-ia32" "0.17.19" + "@esbuild/win32-x64" "0.17.19" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-goat@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-3.0.0.tgz#e8b5fb658553fe8a3c4959c316c6ebb8c842b19c" + integrity sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-custom@*: + version "0.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-custom/-/eslint-config-custom-0.0.0.tgz#7829bdd98e657a63b03377538b5675c811247cf0" + integrity sha512-kwCw78yisbgKdJBJ5qooPmpBYDphDfM2oxSROmtfOwBXBwXuRiSV3suO01W3mVLEFpmQZxMWd/qajKpJhkKSug== + dependencies: + eslint-config-next "^12.0.8" + eslint-config-prettier "^8.3.0" + eslint-plugin-react "7.28.0" + +eslint-config-next@^12.0.8: + version "12.3.4" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.3.4.tgz#3d4d9e74b919b879c4cc79c61bdc388fb2b964ee" + integrity sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ== + dependencies: + "@next/eslint-plugin-next" "12.3.4" + "@rushstack/eslint-patch" "^1.1.3" + "@typescript-eslint/parser" "^5.21.0" + eslint-import-resolver-node "^0.3.6" + eslint-import-resolver-typescript "^2.7.1" + eslint-plugin-import "^2.26.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.31.7" + eslint-plugin-react-hooks "^4.5.0" + +eslint-config-prettier@^8.3.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + +eslint-config-react-app@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz#73ba3929978001c5c86274c017ea57eb5fa644b4" + integrity sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA== + dependencies: + "@babel/core" "^7.16.0" + "@babel/eslint-parser" "^7.16.3" + "@rushstack/eslint-patch" "^1.1.0" + "@typescript-eslint/eslint-plugin" "^5.5.0" + "@typescript-eslint/parser" "^5.5.0" + babel-preset-react-app "^10.0.1" + confusing-browser-globals "^1.0.11" + eslint-plugin-flowtype "^8.0.3" + eslint-plugin-import "^2.25.3" + eslint-plugin-jest "^25.3.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.27.1" + eslint-plugin-react-hooks "^4.3.0" + eslint-plugin-testing-library "^5.0.1" + +eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + dependencies: + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" + +eslint-import-resolver-typescript@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz#a90a4a1c80da8d632df25994c4c5fdcdd02b8751" + integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== + dependencies: + debug "^4.3.4" + glob "^7.2.0" + is-glob "^4.0.3" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-module-utils@^2.7.4: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-flowtype@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz#e1557e37118f24734aa3122e7536a038d34a4912" + integrity sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ== + dependencies: + lodash "^4.17.21" + string-natural-compare "^3.0.1" + +eslint-plugin-import@^2.25.3, eslint-plugin-import@^2.26.0: + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" + has "^1.0.3" + is-core-module "^2.11.0" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-jest@^25.3.0: + version "25.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" + integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== + dependencies: + "@typescript-eslint/experimental-utils" "^5.0.0" + +eslint-plugin-jsx-a11y@^6.5.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== + dependencies: + "@babel/runtime" "^7.20.7" + aria-query "^5.1.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + ast-types-flow "^0.0.7" + axe-core "^4.6.2" + axobject-query "^3.1.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + has "^1.0.3" + jsx-ast-utils "^3.3.3" + language-tags "=1.0.5" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + semver "^6.3.0" + +eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.5.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-react@7.28.0: + version "7.28.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz#8f3ff450677571a659ce76efc6d80b6a525adbdf" + integrity sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw== + dependencies: + array-includes "^3.1.4" + array.prototype.flatmap "^1.2.5" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.0.4" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.0" + object.values "^1.1.5" + prop-types "^15.7.2" + resolve "^2.0.0-next.3" + semver "^6.3.0" + string.prototype.matchall "^4.0.6" + +eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.7: + version "7.32.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" + integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== + dependencies: + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" + prop-types "^15.8.1" + resolve "^2.0.0-next.4" + semver "^6.3.0" + string.prototype.matchall "^4.0.8" + +eslint-plugin-testing-library@^5.0.1: + version "5.11.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.0.tgz#0bad7668e216e20dd12f8c3652ca353009163121" + integrity sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q== + dependencies: + "@typescript-eslint/utils" "^5.58.0" + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + +eslint-webpack-plugin@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c" + integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w== + dependencies: + "@types/eslint" "^7.29.0 || ^8.4.1" + jest-worker "^28.0.2" + micromatch "^4.0.5" + normalize-path "^3.0.0" + schema-utils "^4.0.0" + +eslint@^8.3.0: + version "8.42.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" + integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.42.0" + "@humanwhocodes/config-array" "^0.11.10" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +esm@^3.2.25: + version "3.2.25" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + +esmify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/esmify/-/esmify-2.1.1.tgz#bb788a8b347739d003c873d9eddf9724bbf032b3" + integrity sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ== + dependencies: + "@babel/core" "^7.2.2" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.2.0" + babel-plugin-import-to-require "^1.0.0" + cached-path-relative "^1.0.2" + concat-stream "^1.6.2" + duplexer2 "^0.1.4" + through2 "^2.0.5" + +espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-util-attach-comments@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz#ee44f4ff6890ee7dfb3237ac7810154c94c63f84" + integrity sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz#32f8a239fb40dc3f3dca75bb5dcf77a831e4e47b" + integrity sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg== + dependencies: + "@types/estree-jsx" "^1.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz#fb70a432dcb19045e77b05c8e732f1364b4b49b2" + integrity sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ== + +estree-util-to-js@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz#0f80d42443e3b13bd32f7012fffa6f93603f4a36" + integrity sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-value-to-estree@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz#1d3125594b4d6680f666644491e7ac1745a3df49" + integrity sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw== + dependencies: + is-plain-obj "^3.0.0" + +estree-util-visit@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-1.2.1.tgz#8bc2bc09f25b00827294703835aabee1cc9ec69d" + integrity sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^2.0.0" + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1, estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +estree-walker@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +eventemitter3@^4.0.0, eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0, events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA== + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@*, expect@^29.0.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" + integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== + dependencies: + "@jest/expect-utils" "^29.5.0" + jest-get-type "^29.4.3" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-util "^29.5.0" + +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + dependencies: + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + +express@4.18.2, express@^4.17.3: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extendable-error@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/extendable-error/-/extendable-error-0.1.7.tgz#60b9adf206264ac920058a7395685ae4670c2b96" + integrity sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3, external-editor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +faker@^5.1.0, faker@^5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/faker/-/faker-5.5.3.tgz#c57974ee484431b25205c2c8dc09fda861e51e0e" + integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.12, fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fault@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" + integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== + dependencies: + format "^0.2.0" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +filesize@^8.0.6: + version "8.0.7" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-process@^1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/find-process/-/find-process-1.4.7.tgz#8c76962259216c381ef1099371465b5b439ea121" + integrity sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg== + dependencies: + chalk "^4.0.0" + commander "^5.1.0" + debug "^4.1.1" + +find-replace@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" + integrity sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA== + dependencies: + array-back "^1.0.4" + test-value "^2.1.0" + +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-yarn-workspace-root2@1.2.16: + version "1.2.16" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9" + integrity sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA== + dependencies: + micromatch "^4.0.2" + pkg-dir "^4.2.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +flexsearch@^0.7.21: + version "0.7.31" + resolved "https://registry.yarnpkg.com/flexsearch/-/flexsearch-0.7.31.tgz#065d4110b95083110b9b6c762a71a77cc52e4702" + integrity sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA== + +focus-visible@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/focus-visible/-/focus-visible-5.2.0.tgz#3a9e41fccf587bd25dcc2ef045508284f0a4d6b3" + integrity sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ== + +follow-redirects@^1.0.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +fork-ts-checker-webpack-plugin@^6.5.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" + integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +front-matter@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.3.0.tgz#7203af896ce357ee04e2aa45169ea91ed7f67504" + integrity sha512-+gOIDsGWHVAiWSDfg3vpiHwkOrwO4XNS3YQH5DMmneLEPWzdCAnbSQCtxReF4yPK1nszLvAmLeR2SprnDQDnyQ== + dependencies: + js-yaml "^3.10.0" + +front-matter@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-4.0.2.tgz#b14e54dc745cfd7293484f3210d15ea4edd7f4d5" + integrity sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg== + dependencies: + js-yaml "^3.13.1" + +fs-extra@^10.0.0, fs-extra@^10.0.1: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-monkey@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== + dependencies: + loader-utils "^1.1.0" + +generic-names@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" + integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== + dependencies: + loader-utils "^3.2.0" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-assigned-identifiers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +git-config@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/git-config/-/git-config-0.0.7.tgz#a9c8a3ef07a776c3d72261356d8b727b62202b28" + integrity sha512-LidZlYZXWzVjS+M3TEwhtYBaYwLeOZrXci1tBgqp/vDdZTBMl02atvwb6G35L64ibscYoPnxfbwwUS+VZAISLA== + dependencies: + iniparser "~1.0.5" + +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" + integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== + dependencies: + git-up "^7.0.0" + +gitbook-plugin-fontsettings@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gitbook-plugin-fontsettings/-/gitbook-plugin-fontsettings-2.0.0.tgz#835f900ae3dd111086fe7ed4425ee3de024861ab" + integrity sha512-bZpz/Jev7lL1d3VNp41KHZD67UYqyqdOwbsJE6YEW93R2mGiLfZLpUs86d2nrY61BedhlNck1xF52FNT6sWeig== + +gitbook-plugin-livereload@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/gitbook-plugin-livereload/-/gitbook-plugin-livereload-0.0.1.tgz#c0c9dc6f55f82fc24f97532b25287abbbb416b96" + integrity sha512-+5xinicId2ZcbP6jBTFfQBnjz8nhoBgcOuQfKTEM6Yg9fBsmo2mxY6ubrx1b5ozuIMyfDLkSihx97A7+X+EtQQ== + +gitbook-plugin-lunr@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gitbook-plugin-lunr/-/gitbook-plugin-lunr-1.2.0.tgz#f3e80ec76512fbdb75eb0524aa82b8dff12a50ab" + integrity sha512-QBfFLMZmoyOfLzc5aZrlRCkmzb9YcSjzdnyJFiRI/nX+Nd6kK1XyN4DLGnNSMHkRcJchcpWiQ6XGqSqo7e+d+g== + dependencies: + gitbook-plugin-search "*" + html-entities "1.2.0" + lunr "0.5.12" + +gitbook-plugin-search@*, gitbook-plugin-search@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/gitbook-plugin-search/-/gitbook-plugin-search-2.2.1.tgz#6d25b5a776990fa98fdfdfa37de331f78e0f6b13" + integrity sha512-oP9jhaKFUVPo756G9ywuuI43YdkZClSjfpFzNKe/a/Rcn3oVsrAM/PjdQ+dt65KfZVo3iW1LY4WdiZnNqzRP8g== + +github-slugger@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" + integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== + +github-slugid@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/github-slugid/-/github-slugid-1.0.1.tgz#bccdd0815bfad69d8a359fa4fd65947d606ec3c0" + integrity sha512-L5uVRzSM8jyWTgHUtaHwmymZW8S234JrIaOGotPK+0emNz9XsO6qqgw1KiI5YfP1SyBjG0ApNYU0vpb01teM9Q== + +github-url-from-git@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0" + integrity sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" + integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== + dependencies: + boolean "^3.0.1" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-dirs@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" + integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== + dependencies: + ini "1.3.7" + +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globalthis@^1.0.1, globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.0.0, globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@^10.6.0: + version "10.7.0" + resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" + integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== + dependencies: + "@sindresorhus/is" "^2.0.0" + "@szmarczak/http-timer" "^4.0.0" + "@types/cacheable-request" "^6.0.1" + cacheable-lookup "^2.0.0" + cacheable-request "^7.0.1" + decompress-response "^5.0.0" + duplexer3 "^0.1.4" + get-stream "^5.0.0" + lowercase-keys "^2.0.0" + mimic-response "^2.1.0" + p-cancelable "^2.0.0" + p-event "^4.0.0" + responselike "^2.0.0" + to-readable-stream "^2.0.0" + type-fest "^0.10.0" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +graphql-query-complexity@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" + integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== + dependencies: + lodash.get "^4.4.2" + +graphql-subscriptions@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" + integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== + dependencies: + iterall "^1.3.0" + +graphql-tag@^2.11.0, graphql-tag@^2.12.6, graphql-tag@^2.4.2: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql-ws@5.12.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.12.0.tgz#d06fe38916334b4a4c827f73268cbf4359a32ed7" + integrity sha512-PA3ImUp8utrpEjoxBMhvxsjkStvFEdU0E1gEBREt8HZIWkxOUymwJBhFnBL7t/iHhUq1GVPeZevPinkZFENxTw== + +graphql@15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.7.2.tgz#85ab0eeb83722977151b3feb4d631b5f2ab287ef" + integrity sha512-AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A== + +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +handlebars@^4.1.0, handlebars@^4.7.7: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +harmony-reflect@^1.4.6: + version "1.6.2" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" + integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash-obj@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hash-obj/-/hash-obj-4.0.0.tgz#3fafeb0b5f17994441dbe04efbdee82e26b74c8c" + integrity sha512-FwO1BUVWkyHasWDW4S8o0ssQXjvyghLV2rfVhnN36b2bbcj45eGiuzdn9XOvOpjV3TKQD7Gm2BWNXdE9V4KKYg== + dependencies: + is-obj "^3.0.0" + sort-keys "^5.0.0" + type-fest "^1.0.2" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hast-util-from-dom@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/hast-util-from-dom/-/hast-util-from-dom-4.2.0.tgz#25836ddecc3cc0849d32749c2a7aec03e94b59a7" + integrity sha512-t1RJW/OpJbCAJQeKi3Qrj1cAOLA0+av/iPFori112+0X7R3wng+jxLA+kXec8K4szqPRGI8vPxbbpEYvvpwaeQ== + dependencies: + hastscript "^7.0.0" + web-namespaces "^2.0.0" + +hast-util-from-html-isomorphic@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-1.0.0.tgz#592b2bea880d476665b76ca1cf7d1a94925c80ec" + integrity sha512-Yu480AKeOEN/+l5LA674a+7BmIvtDj24GvOt7MtQWuhzUwlaaRWdEPXAh3Qm5vhuthpAipFb2vTetKXWOjmTvw== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-dom "^4.0.0" + hast-util-from-html "^1.0.0" + unist-util-remove-position "^4.0.0" + +hast-util-from-html@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hast-util-from-html/-/hast-util-from-html-1.0.2.tgz#2482fd701b2d8270b912b3909d6fb645d4a346cf" + integrity sha512-LhrTA2gfCbLOGJq2u/asp4kwuG0y6NhWTXiPKP+n0qNukKy7hc10whqqCFfyvIA1Q5U5d0sp9HhNim9gglEH4A== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^7.0.0" + parse5 "^7.0.0" + vfile "^5.0.0" + vfile-message "^3.0.0" + +hast-util-from-parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz#aecfef73e3ceafdfa4550716443e4eb7b02e22b0" + integrity sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + hastscript "^7.0.0" + property-information "^6.0.0" + vfile "^5.0.0" + vfile-location "^4.0.0" + web-namespaces "^2.0.0" + +hast-util-is-element@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz#cd3279cfefb70da6d45496068f020742256fc471" + integrity sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + +hast-util-parse-selector@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz#25ab00ae9e75cbc62cf7a901f68a247eade659e2" + integrity sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA== + dependencies: + "@types/hast" "^2.0.0" + +hast-util-to-estree@^2.0.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz#da60142ffe19a6296923ec222aba73339c8bf470" + integrity sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + estree-util-attach-comments "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + hast-util-whitespace "^2.0.0" + mdast-util-mdx-expression "^1.0.0" + mdast-util-mdxjs-esm "^1.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.1" + unist-util-position "^4.0.0" + zwitch "^2.0.0" + +hast-util-to-text@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz#ecf30c47141f41e91a5d32d0b1e1859fd2ac04f2" + integrity sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + hast-util-is-element "^2.0.0" + unist-util-find-after "^4.0.0" + +hast-util-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== + +hastscript@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-7.2.0.tgz#0eafb7afb153d047077fa2a833dc9b7ec604d10b" + integrity sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^3.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + +he@1.2.0, he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +heap@^0.2.6: + version "0.2.7" + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" + integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +highlight.js@^10.7.1: + version "10.7.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +honkit@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/honkit/-/honkit-4.0.7.tgz#dd1480721f0a4980418465e59a8211a9c5de1a3e" + integrity sha512-E6+OQ+vrR7Ig2cJyoNwnYtmRQQD/IzPgZJwlv9gmYQ5OIc6DfpcuS32f2Dfwis5AVMa7nwKcpmwO07e+X2JFUw== + dependencies: + "@honkit/asciidoc" "^4.0.7" + "@honkit/honkit-plugin-highlight" "^4.0.7" + "@honkit/honkit-plugin-theme-default" "^4.0.7" + "@honkit/markdown-legacy" "^4.0.7" + bash-color "^0.0.4" + cheerio "^1.0.0-rc.12" + chokidar "^3.3.0" + commander "^5.1.0" + cp "^0.2.0" + cpr "^3.0.1" + crc "^3.8.0" + destroy "^1.0.4" + direction "^0.1.5" + dom-serializer "^0.1.0" + error "7.0.2" + escape-html "^1.0.3" + escape-string-regexp "^4.0.0" + extend "^3.0.0" + flat-cache "^2.0.1" + front-matter "^2.1.0" + gitbook-plugin-fontsettings "^2.0.0" + gitbook-plugin-livereload "^0.0.1" + gitbook-plugin-lunr "^1.2.0" + gitbook-plugin-search "^2.2.1" + github-slugid "^1.0.1" + i18n-t "^1.0.1" + ignore "^5.1.8" + immutable "^3.8.1" + is "^3.1.0" + js-yaml "^3.6.1" + json-schema-defaults "^0.1.1" + jsonschema "1.1.0" + juice "^8.0.0" + lru_map "^0.4.1" + memoize-one "^5.1.1" + mkdirp "^1.0.4" + moment "^2.24.0" + nunjucks "^3.2.0" + nunjucks-do "^1.0.0" + object-path "^0.11.5" + omit-keys "^0.1.0" + open "^7.0.0" + q "^1.5.1" + resolve "^1.17.0" + semver "^5.1.0" + send "^0.17.1" + tiny-lr "^1.1.1" + tmp "0.0.28" + try-resolve "^1.0.1" + urijs "^1.19.6" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== + dependencies: + lru-cache "^6.0.0" + +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" + integrity sha512-0md7tlUUyb0BEQGsZzbqty1CgV6RESOoxdivt94AScqhBhYsPCCQCOaGvur/RospMjYpPJ7iFe3zw4Bu4SVA8g== + +html-entities@^2.1.0, html-entities@^2.3.2: + version "2.3.5" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.5.tgz#9f117bf6a5962efc31e094f6c6dad3cf3b95e33e" + integrity sha512-72TJlcMkYsEJASa/3HnX7VT59htM7iSHbH59NSZbtc+22Ap0Txnlx91sfeB+/A7wNZg7UxtZdhAW4y+/jimrdg== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-webpack-plugin@^5.5.0: + version "5.5.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz#826838e31b427f5f7f30971f8d8fa2422dfa6763" + integrity sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + integrity sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg== + +htmlparser2@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" + integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.3.0" + domutils "^2.4.2" + entities "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5" + integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.2" + domutils "^2.8.0" + entities "^3.0.1" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-cache-semantics@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-id@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/human-id/-/human-id-1.0.2.tgz#e654d4b2b0d8b07e45da9f6020d8af17ec0a5df3" + integrity sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw== + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +i18n-t@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/i18n-t/-/i18n-t-1.0.1.tgz#b7bf4b003e395dc747843e8fca5de477658b0b1c" + integrity sha512-2NmZwpsnRTzpZfIP6Rcic16m5QBNVaIwVyU182+iatd6RNbWmGi74LTA/R/oDa58RZ87bHChLgWpmulEAoEruQ== + dependencies: + lodash "^4.13.1" + +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.6, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +idb@^7.0.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== + +identity-obj-proxy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== + dependencies: + harmony-reflect "^1.4.6" + +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^3.0.1, ignore-walk@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== + dependencies: + minimatch "^3.0.4" + +ignore@^5.1.8, ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +immer@^9.0.7: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +immutability-helper@^2.7.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-2.9.1.tgz#71c423ba387e67b6c6ceba0650572f2a2a6727df" + integrity sha512-r/RmRG8xO06s/k+PIaif2r5rGc3j4Yhc01jSBfwPCXDLYZwp/yxralI37Df1mwmuzcCsen/E/ITKcTEvc1PQmQ== + dependencies: + invariant "^2.2.0" + +immutable@^3.8.1: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== + +immutable@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" + integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== + dependencies: + import-from "^2.1.0" + +import-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" + integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== + dependencies: + import-from "^3.0.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== + dependencies: + resolve-from "^3.0.0" + +import-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== + dependencies: + resolve-from "^5.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +import-meta-resolve@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz#75237301e72d1f0fbd74dbc6cca9324b164c2cc9" + integrity sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +iniparser@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/iniparser/-/iniparser-1.0.5.tgz#836d6befe6dfbfcee0bccf1cf9f2acc7027f783d" + integrity sha512-i40MWqgTU6h/70NtMsDVVDLjDYWwcIR1yIEVDPfxZIJno9z9L4s83p/V7vAu2i48Vj0gpByrkGFub7ko9XvPrw== + +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + integrity sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA== + dependencies: + source-map "~0.5.3" + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + +inquirer-autosubmit-prompt@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz#a10f952af4f7bac9c43010e3e9e0891d7e8d15a1" + integrity sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q== + dependencies: + chalk "^2.4.1" + inquirer "^6.2.1" + rxjs "^6.3.3" + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +inquirer@^6.2.1: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +inquirer@^7.0.0, inquirer@^7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +insert-module-globals@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3" + integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg== + dependencies: + JSONStream "^1.0.3" + acorn-node "^1.5.2" + combine-source-map "^0.8.0" + concat-stream "^1.6.1" + is-buffer "^1.1.0" + path-is-absolute "^1.0.1" + process "~0.11.0" + through2 "^2.0.0" + undeclared-identifiers "^1.1.2" + xtend "^4.0.0" + +interface-datastore@^6.0.2: + version "6.1.1" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" + integrity sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg== + dependencies: + interface-store "^2.0.2" + nanoid "^3.0.2" + uint8arrays "^3.0.0" + +interface-store@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c" + integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== + +internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +intersection-observer@^0.12.2: + version "0.12.2" + resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375" + integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg== + +invariant@^2.2.0, invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== + +ipfs-core-types@0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz#53c60f589e4e54c2d566f0c856c2fcf0ea4a5577" + integrity sha512-s5+kXXcjkIdWPHblrE0TyiKxROQdL7zfkVI7FpEEwv5rtHCjpI0I4vKSzziZLLzLXf3a2F1qtscOnlaT0ruWBw== + dependencies: + interface-datastore "^6.0.2" + multiaddr "^10.0.0" + multiformats "^9.5.1" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arguments@^1.0.4, is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.0, is-buffer@^1.1.5, is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-builtin-module@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + +is-installed-globally@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-3.0.0.tgz#b0889f1f9f8cb87e87df53a8d1230a2250f8b9be" + integrity sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ== + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.1, is-path-inside@^3.0.2, is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-reference@^1.1.2, is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-reference@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831" + integrity sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w== + dependencies: + "@types/estree" "*" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-root@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-scoped@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" + integrity sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ== + dependencies: + scoped-regex "^2.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-subdir@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-subdir/-/is-subdir-1.2.0.tgz#b791cd28fab5202e91a08280d51d9d7254fd20d4" + integrity sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== + dependencies: + better-path-resolve "1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-url-superb@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" + integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +is-windows@^1.0.0, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +is@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" + integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +iso-url@~0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" + integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== + +isobject@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e" + integrity sha512-VaWq6XYAsbvM0wf4dyBO7WH9D7GosB7ZZlqrawI9BBiTMINBeCyqSKBa35m870MY3O4aM31pYyZi9DfGrYMJrQ== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +issue-regex@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/issue-regex/-/issue-regex-3.1.0.tgz#0671f094d6449c5b712fac3c9562aecb727d709e" + integrity sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +iterall@^1.2.1, iterall@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + +jake@^10.8.5: + version "10.8.7" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jdenticon@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jdenticon/-/jdenticon-3.2.0.tgz#b5b9ef413cb66f70c600d6e69a764c977f248a46" + integrity sha512-z6Iq3fTODUMSOiR2nNYrqigS6Y0GvdXfyQWrUby7htDHvX7GNEwaWR4hcaL+FmhEgBe08Xkup/BKxXQhDJByPA== + dependencies: + canvas-renderer "~2.2.0" + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== + dependencies: + "@jest/types" "^27.5.1" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== + dependencies: + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + prompts "^2.0.1" + yargs "^16.2.0" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== + dependencies: + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^27.5.1" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-diff@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" + integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.5.0" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + jsdom "^16.6.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-get-type@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" + integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== + dependencies: + "@jest/types" "^27.5.1" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + throat "^6.0.1" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== + dependencies: + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" + integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== + dependencies: + chalk "^4.0.0" + jest-diff "^29.5.0" + jest-get-type "^29.4.3" + pretty-format "^29.5.0" + +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.5.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^28.1.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-message-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" + integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.5.0" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.5.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + +jest-regex-util@^28.0.0: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" + integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== + dependencies: + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-resolve@^27.4.2, jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-pnp-resolver "^1.2.2" + jest-util "^27.5.1" + jest-validate "^27.5.1" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.9" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + natural-compare "^1.4.0" + pretty-format "^27.5.1" + semver "^7.3.2" + +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" + +jest-watch-typeahead@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz#b4a6826dfb9c9420da2f7bc900de59dad11266a9" + integrity sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + jest-regex-util "^28.0.0" + jest-watcher "^28.0.0" + slash "^4.0.0" + string-length "^5.0.1" + strip-ansi "^7.0.1" + +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== + dependencies: + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.5.1" + string-length "^4.0.1" + +jest-watcher@^28.0.0: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== + dependencies: + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.10.2" + jest-util "^28.1.3" + string-length "^4.0.1" + +jest-worker@^26.2.1, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^27.0.2, jest-worker@^27.4.5, jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^28.0.2: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^26.6.0: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + +jest@^27.4.3: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== + dependencies: + "@jest/core" "^27.5.1" + import-local "^3.0.2" + jest-cli "^27.5.1" + +jiti@^1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" + integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== + +jose@^4.8.1: + version "4.14.4" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca" + integrity sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g== + +js-base64@^3.7.3: + version "3.7.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== + +js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsdom@^16.4.0, jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-defaults@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/json-schema-defaults/-/json-schema-defaults-0.1.1.tgz#1c6c6103c4349b71b6f4aa382c3dd9aa1c8bada3" + integrity sha512-6Q5YS7pSDCXUbtS9uAFE+uUgvE45dBHCMyhqe6liJmL+oIa4zbACSS6nr6Lh+73mN+MnWBCExtN3C14S7Jrm7w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0, json-schema@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stable-stringify@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" + integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== + dependencies: + jsonify "^0.0.1" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json-text-sequence@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" + integrity sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w== + dependencies: + delimit-stream "0.1.0" + +json5@2.x, json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +json5@^1.0.1, json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +jsonschema@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.1.0.tgz#039cc219ed524b06e71daf12ca60d02639faf29a" + integrity sha512-nQhT+ioA1XM8CpxJYlBfcUj6HF3f3f2KbLgV3tcxOt85RKpk2b0Do/C5BnCCCfdAarAjWRSFlln0Uanl4tBCHA== + +jsonschema@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" + integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + dependencies: + array-includes "^3.1.5" + object.assign "^4.1.3" + +juice@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/juice/-/juice-8.1.0.tgz#4ea23362522fe06418229943237ee3751a4fca70" + integrity sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA== + dependencies: + cheerio "1.0.0-rc.10" + commander "^6.1.0" + mensch "^0.3.4" + slick "^1.12.2" + web-resource-inliner "^6.0.1" + +just-extend@^4.0.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" + integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== + +katex@^0.16.0, katex@^0.16.7: + version "0.16.7" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.7.tgz#36be1d4ed96e8afdc5863407e70f8fb250aeafd5" + integrity sha512-Xk9C6oGKRwJTfqfIbtr0Kes9OSv6IFsuhFGc7tW4urlpMJtuh+7YhzU6YEG9n8gmWKcMAFzkp7nr+r69kV0zrA== + dependencies: + commander "^8.3.0" + +key-encoder@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba" + integrity sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg== + dependencies: + "@types/elliptic" "^6.4.9" + asn1.js "^5.0.1" + bn.js "^4.11.8" + elliptic "^6.4.1" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +keyv@^4.0.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" + integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== + dependencies: + json-buffer "3.0.1" + +khroma@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b" + integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +kleur@^4.0.3, kleur@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +klona@^2.0.4, klona@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +kolorist@^1.2.10: + version "1.8.0" + resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== + +kramed@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/kramed/-/kramed-0.5.6.tgz#5c37979bcbb59cbb7a8d231049409298857b5162" + integrity sha512-V4qwQAp8HPQPU6Ph9Q4bc+P+nKQWEGlWYLRDkK7n+CPaMi8/VRm9/R710tRmag4whLsnKR91CO9Ras/Rnff9bw== + +labeled-stream-splicer@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" + integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== + dependencies: + inherits "^2.0.1" + stream-splicer "^2.0.0" + +language-subtag-registry@~0.3.2: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@=1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== + dependencies: + language-subtag-registry "~0.3.2" + +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +launch-editor@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" + integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.7.3" + +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== + +layout-base@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" + integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +libphonenumber-js@^1.9.43: + version "1.10.34" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.34.tgz#63374bb988688ac28b03ed6c4b344d412199d56c" + integrity sha512-p6g4NaQH4gK1gre32+kV14Mk6GPo2EDcPDvjbi+D2ycsPFsN4gVWNbs0itdHLZqByg6YEK8mE7OeP200I/ScTQ== + +lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +listenercount@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" + integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== + +listr-input@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/listr-input/-/listr-input-0.2.1.tgz#ce735c34530683580388fdf9462ecfebd3b66126" + integrity sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg== + dependencies: + inquirer "^7.0.0" + inquirer-autosubmit-prompt "^0.2.0" + rxjs "^6.5.3" + through "^2.3.8" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + +lit-element@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.2.tgz#9913bf220b85065f0e5f1bb8878cc44f36b50cfa" + integrity sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.0" + "@lit/reactive-element" "^1.3.0" + lit-html "^2.7.0" + +lit-html@^2.7.0: + version "2.7.4" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.7.4.tgz#6d75001977c206683685b9d76594a516afda2954" + integrity sha512-/Jw+FBpeEN+z8X6PJva5n7+0MzCVAH2yypN99qHYYkq8bI+j7I39GH+68Z/MZD6rGKDK9RpzBw7CocfmHfq6+g== + dependencies: + "@types/trusted-types" "^2.0.2" + +lit@^2.0.0-rc.2, lit@^2.3.1: + version "2.7.5" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.5.tgz#60bc82990cfad169d42cd786999356dcf79b035f" + integrity sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ== + dependencies: + "@lit/reactive-element" "^1.6.0" + lit-element "^3.3.0" + lit-html "^2.7.0" + +livereload-js@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" + integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +load-yaml-file@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d" + integrity sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw== + dependencies: + graceful-fs "^4.1.5" + js-yaml "^3.13.0" + pify "^4.0.1" + strip-bom "^3.0.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^1.1.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0, loader-utils@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" + integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.flow@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" + integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.padend@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" + integrity sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash.zip@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" + integrity sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== + +lodash@4.x, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@4.1.0, log-symbols@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== + dependencies: + chalk "^1.0.0" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +loglevel@^1.6.8: + version "1.8.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" + integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +longest-streak@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" + integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loupe@^2.3.1: + version "2.3.6" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== + dependencies: + get-func-name "^2.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +"lru-cache@7.10.1 - 7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" + integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru_map@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.4.1.tgz#f7b4046283c79fb7370c36f8fca6aee4324b0a98" + integrity sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg== + +lunr@0.5.12: + version "0.5.12" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-0.5.12.tgz#a2f6b7d7801cbe2ccb1696da67f1f7788f89e0c8" + integrity sha512-/EtfOyuNP7BLVKhDvLyKJkFvCup2vwcIwQXCuasZEFk7XUJ4/blztVuefeLapUb1I5uMGsosN9A8J9Mu9A6yBg== + +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +lz-string@^1.4.4: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + +magic-string@^0.25.0, magic-string@^0.25.2, magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +markdown-extensions@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz#fea03b539faeaee9b4ef02a3769b455b189f7fc3" + integrity sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q== + +markdown-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" + integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== + dependencies: + repeat-string "^1.0.0" + +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== + +marked@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== + +match-sorter@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda" + integrity sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw== + dependencies: + "@babel/runtime" "^7.12.5" + remove-accents "0.4.2" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdast-util-definitions@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +mdast-util-find-and-replace@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" + integrity sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA== + dependencies: + escape-string-regexp "^4.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +mdast-util-find-and-replace@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz#cc2b774f7f3630da4bd592f61966fecade8b99b1" + integrity sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw== + dependencies: + "@types/mdast" "^3.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + +mdast-util-footnote@^0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz#4b226caeab4613a3362c144c94af0fdd6f7e0ef0" + integrity sha512-QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w== + dependencies: + mdast-util-to-markdown "^0.6.0" + micromark "~2.11.0" + +mdast-util-from-markdown@^0.8.0: + version "0.8.5" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" + integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^2.0.0" + micromark "~2.11.0" + parse-entities "^2.0.0" + unist-util-stringify-position "^2.0.0" + +mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.1.0, mdast-util-from-markdown@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-frontmatter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz#8bd5cd55e236c03e204a036f7372ebe9e6748240" + integrity sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ== + dependencies: + micromark-extension-frontmatter "^0.2.0" + +mdast-util-gfm-autolink-literal@^0.1.0, mdast-util-gfm-autolink-literal@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz#9c4ff399c5ddd2ece40bd3b13e5447d84e385fb7" + integrity sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A== + dependencies: + ccount "^1.0.0" + mdast-util-find-and-replace "^1.1.0" + micromark "^2.11.3" + +mdast-util-gfm-autolink-literal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz#67a13abe813d7eba350453a5333ae1bc0ec05c06" + integrity sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA== + dependencies: + "@types/mdast" "^3.0.0" + ccount "^2.0.0" + mdast-util-find-and-replace "^2.0.0" + micromark-util-character "^1.0.0" + +mdast-util-gfm-footnote@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz#ce5e49b639c44de68d5bf5399877a14d5020424e" + integrity sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + micromark-util-normalize-identifier "^1.0.0" + +mdast-util-gfm-strikethrough@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz#45eea337b7fff0755a291844fbea79996c322890" + integrity sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA== + dependencies: + mdast-util-to-markdown "^0.6.0" + +mdast-util-gfm-strikethrough@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz#5470eb105b483f7746b8805b9b989342085795b7" + integrity sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-table@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz#af05aeadc8e5ee004eeddfb324b2ad8c029b6ecf" + integrity sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ== + dependencies: + markdown-table "^2.0.0" + mdast-util-to-markdown "~0.6.0" + +mdast-util-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz#3552153a146379f0f9c4c1101b071d70bbed1a46" + integrity sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg== + dependencies: + "@types/mdast" "^3.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-task-list-item@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz#70c885e6b9f543ddd7e6b41f9703ee55b084af10" + integrity sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A== + dependencies: + mdast-util-to-markdown "~0.6.0" + +mdast-util-gfm-task-list-item@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz#b280fcf3b7be6fd0cc012bbe67a59831eb34097b" + integrity sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" + integrity sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ== + dependencies: + mdast-util-gfm-autolink-literal "^0.1.0" + mdast-util-gfm-strikethrough "^0.2.0" + mdast-util-gfm-table "^0.1.0" + mdast-util-gfm-task-list-item "^0.1.0" + mdast-util-to-markdown "^0.6.1" + +mdast-util-gfm@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz#e92f4d8717d74bdba6de57ed21cc8b9552e2d0b6" + integrity sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-gfm-autolink-literal "^1.0.0" + mdast-util-gfm-footnote "^1.0.0" + mdast-util-gfm-strikethrough "^1.0.0" + mdast-util-gfm-table "^1.0.0" + mdast-util-gfm-task-list-item "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-math@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-math/-/mdast-util-math-2.0.2.tgz#19a06a81f31643f48cc805e7c31edb7ce739242c" + integrity sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ== + dependencies: + "@types/mdast" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-mdx-expression@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz#d027789e67524d541d6de543f36d51ae2586f220" + integrity sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-mdx-jsx@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz#7c1f07f10751a78963cfabee38017cbc8b7786d1" + integrity sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + ccount "^2.0.0" + mdast-util-from-markdown "^1.1.0" + mdast-util-to-markdown "^1.3.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-remove-position "^4.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +mdast-util-mdx@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz#49b6e70819b99bb615d7223c088d295e53bb810f" + integrity sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-mdx-expression "^1.0.0" + mdast-util-mdx-jsx "^2.0.0" + mdast-util-mdxjs-esm "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-mdxjs-esm@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz#645d02cd607a227b49721d146fd81796b2e2d15b" + integrity sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" + integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== + dependencies: + "@types/mdast" "^3.0.0" + unist-util-is "^5.0.0" + +mdast-util-to-hast@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-definitions "^5.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: + version "0.6.5" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" + integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== + dependencies: + "@types/unist" "^2.0.0" + longest-streak "^2.0.0" + mdast-util-to-string "^2.0.0" + parse-entities "^2.0.0" + repeat-string "^1.0.0" + zwitch "^1.0.0" + +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" + integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.1.2, memfs@^3.4.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.3.tgz#d9b40fe4f8d5788c5f895bda804cd0d9eeee9f3b" + integrity sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw== + dependencies: + fs-monkey "^1.0.4" + +memoize-one@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" + integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +mensch@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/mensch/-/mensch-0.3.4.tgz#770f91b46cb16ea5b204ee735768c3f0c491fecd" + integrity sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g== + +meow@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" + integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "^4.0.2" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" + +meow@^8.1.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +meow@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" + integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize "^1.2.0" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +mermaid@10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-10.2.1.tgz#5183c956a64e1ed9cf0122cec6c6cb4900521966" + integrity sha512-gziwXLuAidRxPJxcA0LqPhToirGZ2J2gD+UrDEtGNeKb98BtcQde28UUcCUCmNplkQOwE7oynrzKcMe9i29AMw== + dependencies: + "@braintree/sanitize-url" "^6.0.2" + cytoscape "^3.23.0" + cytoscape-cose-bilkent "^4.1.0" + cytoscape-fcose "^2.1.0" + d3 "^7.4.0" + dagre-d3-es "7.0.10" + dayjs "^1.11.7" + dompurify "3.0.3" + elkjs "^0.8.2" + khroma "^2.0.0" + lodash-es "^4.17.21" + mdast-util-from-markdown "^1.3.0" + non-layered-tidy-tree-layout "^2.0.2" + stylis "^4.1.3" + ts-dedent "^2.2.0" + uuid "^9.0.0" + web-worker "^1.2.0" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-footnote@^0.3.0: + version "0.3.2" + resolved "https://registry.yarnpkg.com/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz#129b74ef4920ce96719b2c06102ee7abb2b88a20" + integrity sha512-gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ== + dependencies: + micromark "~2.11.0" + +micromark-extension-frontmatter@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz#61b8e92e9213e1d3c13f5a59e7862f5ca98dfa53" + integrity sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A== + dependencies: + fault "^1.0.0" + +micromark-extension-gfm-autolink-literal@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7" + integrity sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-extension-gfm-autolink-literal@~0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz#53866c1f0c7ef940ae7ca1f72c6faef8fed9f204" + integrity sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw== + dependencies: + micromark "~2.11.3" + +micromark-extension-gfm-footnote@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e" + integrity sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q== + dependencies: + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-strikethrough@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af" + integrity sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-strikethrough@~0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz#96cb83356ff87bf31670eefb7ad7bba73e6514d1" + integrity sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008" + integrity sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-table@~0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz#4d49f1ce0ca84996c853880b9446698947f1802b" + integrity sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm-tagfilter@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz#aa7c4dd92dabbcb80f313ebaaa8eb3dac05f13a7" + integrity sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-gfm-tagfilter@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad" + integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== + +micromark-extension-gfm-task-list-item@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4" + integrity sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-task-list-item@~0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" + integrity sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm@^0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz#36d1a4c089ca8bdfd978c9bd2bf1a0cb24e2acfe" + integrity sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A== + dependencies: + micromark "~2.11.0" + micromark-extension-gfm-autolink-literal "~0.5.0" + micromark-extension-gfm-strikethrough "~0.6.5" + micromark-extension-gfm-table "~0.4.0" + micromark-extension-gfm-tagfilter "~0.3.0" + micromark-extension-gfm-task-list-item "~0.3.0" + +micromark-extension-gfm@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz#e517e8579949a5024a493e49204e884aa74f5acf" + integrity sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ== + dependencies: + micromark-extension-gfm-autolink-literal "^1.0.0" + micromark-extension-gfm-footnote "^1.0.0" + micromark-extension-gfm-strikethrough "^1.0.0" + micromark-extension-gfm-table "^1.0.0" + micromark-extension-gfm-tagfilter "^1.0.0" + micromark-extension-gfm-task-list-item "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-extension-math@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-math/-/micromark-extension-math-2.1.2.tgz#52c70cc8266cd20ada1ef5a479bfed9a19b789bf" + integrity sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg== + dependencies: + "@types/katex" "^0.16.0" + katex "^0.16.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-mdx-expression@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz#5bc1f5fd90388e8293b3ef4f7c6f06c24aff6314" + integrity sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw== + dependencies: + "@types/estree" "^1.0.0" + micromark-factory-mdx-expression "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-mdx-jsx@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz#e72d24b7754a30d20fb797ece11e2c4e2cae9e82" + integrity sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + estree-util-is-identifier-name "^2.0.0" + micromark-factory-mdx-expression "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-extension-mdx-md@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz#595d4b2f692b134080dca92c12272ab5b74c6d1a" + integrity sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-mdxjs-esm@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz#e4f8be9c14c324a80833d8d3a227419e2b25dec1" + integrity sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w== + dependencies: + "@types/estree" "^1.0.0" + micromark-core-commonmark "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-position-from-estree "^1.1.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-extension-mdxjs@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz#f78d4671678d16395efeda85170c520ee795ded8" + integrity sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^1.0.0" + micromark-extension-mdx-jsx "^1.0.0" + micromark-extension-mdx-md "^1.0.0" + micromark-extension-mdxjs-esm "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-mdx-expression@^1.0.0: + version "1.0.9" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz#57ba4571b69a867a1530f34741011c71c73a4976" + integrity sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA== + dependencies: + "@types/estree" "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-position-from-estree "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-events-to-acorn@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz#a4ab157f57a380e646670e49ddee97a72b58b557" + integrity sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + "@types/unist" "^2.0.0" + estree-util-visit "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: + version "2.11.4" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" + integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== + dependencies: + debug "^4.0.0" + parse-entities "^2.0.0" + +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.6: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^2.0.0, mimic-response@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-css-extract-plugin@^2.4.5: + version "2.7.6" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" + integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== + dependencies: + schema-utils "^4.0.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== + dependencies: + brace-expansion "^2.0.1" + +minimist-options@4.1.0, minimist-options@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mixme@^0.5.1: + version "0.5.9" + resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.9.tgz#a5a58e17354632179ff3ce5b0fc130899c8ba81c" + integrity sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw== + +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@1.x, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mocha@*: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +module-deps@^6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee" + integrity sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA== + dependencies: + JSONStream "^1.0.3" + browser-resolve "^2.0.0" + cached-path-relative "^1.0.2" + concat-stream "~1.6.0" + defined "^1.0.0" + detective "^5.2.0" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.4.0" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + +moment@^2.24.0: + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multiaddr@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-10.0.1.tgz#0d15848871370860a4d266bb44d93b3dac5d90ef" + integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg== + dependencies: + dns-over-http-resolver "^1.2.3" + err-code "^3.0.1" + is-ip "^3.1.0" + multiformats "^9.4.5" + uint8arrays "^3.0.0" + varint "^6.0.0" + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.1: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +nanoid@^3.0.2, nanoid@^3.3.4, nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +native-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" + integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^2.2.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.0, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +neon-cli@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/neon-cli/-/neon-cli-0.4.0.tgz#d89e0a55b8db577324af70470e2b4e67157205f6" + integrity sha512-66HhHb8rk+zHSG64CI6jhyOQqpibBAald8ObdQPCjXcCjzSEVnkQHutUE8dyNlHRNT7xLfrZGkDbtwrYh2p+6w== + dependencies: + chalk "~2.1.0" + command-line-args "^4.0.2" + command-line-commands "^2.0.0" + command-line-usage "^4.0.0" + git-config "0.0.7" + handlebars "^4.1.0" + inquirer "^3.0.6" + mkdirp "^0.5.1" + quickly-copy-file "^1.0.0" + rimraf "^2.6.1" + rsvp "^4.6.1" + semver "^5.1.0" + toml "^2.3.0" + ts-typed-json "^0.2.2" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +new-github-release-url@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-1.0.0.tgz#493847e6fecce39c247e9d89929be773d2e7f777" + integrity sha512-dle7yf655IMjyFUqn6Nxkb18r4AOAkzRcgcZv6WZ0IqrOH4QCEZ8Sm6I7XX21zvHdBeeMeTkhR9qT2Z0EJDx6A== + dependencies: + type-fest "^0.4.1" + +next-mdx-remote@^4.2.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/next-mdx-remote/-/next-mdx-remote-4.4.1.tgz#96b16e2adc54dbcd0a7f204a9a3c3fd269d41abf" + integrity sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ== + dependencies: + "@mdx-js/mdx" "^2.2.1" + "@mdx-js/react" "^2.2.1" + vfile "^5.3.0" + vfile-matter "^3.0.1" + +next-seo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/next-seo/-/next-seo-6.0.0.tgz#4568dc61a44dbdf5fe5ff44156cd0ff8804889a2" + integrity sha512-jKKt1p1z4otMA28AyeoAONixVjdYmgFCWwpEFtu+DwRHQDllVX3RjtyXbuCQiUZEfQ9rFPBpAI90vDeLZlMBdg== + +next-themes@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.2.1.tgz#0c9f128e847979daf6c67f70b38e6b6567856e45" + integrity sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A== + +next@^13.0.6: + version "13.4.4" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.4.tgz#d1027c8d77f4c51be0b39f671b4820db03c93e60" + integrity sha512-C5S0ysM0Ily9McL4Jb48nOQHT1BukOWI59uC3X/xCMlYIh9rJZCv7nzG92J6e1cOBqQbKovlpgvHWFmz4eKKEA== + dependencies: + "@next/env" "13.4.4" + "@swc/helpers" "0.5.1" + busboy "1.6.0" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.1.1" + zod "3.21.4" + optionalDependencies: + "@next/swc-darwin-arm64" "13.4.4" + "@next/swc-darwin-x64" "13.4.4" + "@next/swc-linux-arm64-gnu" "13.4.4" + "@next/swc-linux-arm64-musl" "13.4.4" + "@next/swc-linux-x64-gnu" "13.4.4" + "@next/swc-linux-x64-musl" "13.4.4" + "@next/swc-win32-arm64-msvc" "13.4.4" + "@next/swc-win32-ia32-msvc" "13.4.4" + "@next/swc-win32-x64-msvc" "13.4.4" + +nextra-theme-docs@latest: + version "2.7.1" + resolved "https://registry.yarnpkg.com/nextra-theme-docs/-/nextra-theme-docs-2.7.1.tgz#d92827af26a2797bb59b347674115329074fd0da" + integrity sha512-C2DtoGH15q22t4r2JC89lvvajmnyiqsv3PaqHJpoHRlF2eR5giuLhZC5Oahb9AENRDcnUIUvqVi/8NlfiIM0yQ== + dependencies: + "@headlessui/react" "^1.7.10" + "@popperjs/core" "^2.11.6" + clsx "^1.2.1" + flexsearch "^0.7.21" + focus-visible "^5.2.0" + git-url-parse "^13.1.0" + intersection-observer "^0.12.2" + match-sorter "^6.3.1" + next-seo "^6.0.0" + next-themes "^0.2.1" + scroll-into-view-if-needed "^3.0.0" + zod "^3.20.2" + +nextra@latest: + version "2.7.1" + resolved "https://registry.yarnpkg.com/nextra/-/nextra-2.7.1.tgz#f3c01c45aa96e4a9285a3aee333e18e8e1d1bf71" + integrity sha512-qchTb7XSm357XAHf9MV9UlUSGolPEPE8iFnC/9KMwvhIoE4seyPYWMrnH84XraZCcGERvy9TrkFD30VE7Qv1MA== + dependencies: + "@mdx-js/mdx" "^2.3.0" + "@mdx-js/react" "^2.3.0" + "@napi-rs/simple-git" "^0.1.8" + "@theguild/remark-mermaid" "^0.0.1" + clsx "^1.2.1" + github-slugger "^2.0.0" + graceful-fs "^4.2.11" + gray-matter "^4.0.3" + katex "^0.16.7" + lodash.get "^4.4.2" + next-mdx-remote "^4.2.1" + p-limit "^3.1.0" + rehype-katex "^6.0.3" + rehype-pretty-code "0.9.4" + remark-gfm "^3.0.1" + remark-math "^5.1.1" + remark-reading-time "^2.0.1" + shiki "^0.14.2" + slash "^3.0.0" + title "^3.5.3" + unist-util-remove "^3.1.1" + unist-util-visit "^4.1.1" + zod "^3.20.2" + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +nise@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.4.tgz#491ce7e7307d4ec546f5a659b2efe94a18b4bbc0" + integrity sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg== + dependencies: + "@sinonjs/commons" "^2.0.0" + "@sinonjs/fake-timers" "^10.0.2" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + path-to-regexp "^1.7.0" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abort-controller@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@2, node-fetch@^2.6.0, node-fetch@^2.6.11, node-fetch@^2.6.7: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" + integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-gyp-build@^4.2.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" + integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-pre-gyp@0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4.4.2" + +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + +node-wget-js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/node-wget-js/-/node-wget-js-1.0.1.tgz#2390bf9c9f99f280cc7a221d07d096103161e78c" + integrity sha512-SXzjefvZvJc5kn9kqsZhs0es8aQ1o9pnnIpzA6CPeHb7CaIfl+7OkO1n8uqyVawMzzUfhEXxW6vbqUsWEgSaFw== + dependencies: + request "^2.88.0" + +nofilter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" + integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== + +non-layered-tidy-tree-layout@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804" + integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== + +nopt@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +np@^7.6.2: + version "7.7.0" + resolved "https://registry.yarnpkg.com/np/-/np-7.7.0.tgz#7fbf2495f6395bcc702b84ca38c4a125363fd5a5" + integrity sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.1" + any-observable "^0.5.1" + async-exit-hook "^2.0.1" + chalk "^4.1.0" + cosmiconfig "^7.0.0" + del "^6.0.0" + escape-goat "^3.0.0" + escape-string-regexp "^4.0.0" + execa "^5.0.0" + github-url-from-git "^1.5.0" + has-yarn "^2.1.0" + hosted-git-info "^3.0.7" + ignore-walk "^3.0.3" + import-local "^3.0.2" + inquirer "^7.3.3" + is-installed-globally "^0.3.2" + is-interactive "^1.0.0" + is-scoped "^2.1.0" + issue-regex "^3.1.0" + listr "^0.14.3" + listr-input "^0.2.1" + log-symbols "^4.0.0" + meow "^8.1.0" + minimatch "^3.0.4" + new-github-release-url "^1.0.0" + npm-name "^6.0.1" + onetime "^5.1.2" + open "^7.3.0" + ow "^0.21.0" + p-memoize "^4.0.1" + p-timeout "^4.1.0" + pkg-dir "^5.0.0" + read-pkg-up "^7.0.1" + rxjs "^6.6.3" + semver "^7.3.4" + split "^1.0.1" + symbol-observable "^3.0.0" + terminal-link "^2.1.1" + update-notifier "^5.0.1" + +npm-bundled@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-name@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/npm-name/-/npm-name-6.0.1.tgz#73e05b4cb6332766a6727b2635e247bb4107255b" + integrity sha512-fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw== + dependencies: + got "^10.6.0" + is-scoped "^2.1.0" + is-url-superb "^4.0.0" + lodash.zip "^4.2.0" + org-regex "^1.0.0" + p-map "^3.0.0" + registry-auth-token "^4.0.0" + registry-url "^5.1.0" + validate-npm-package-name "^3.0.0" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-packlist@^1.1.6: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-run-all@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + +nunjucks-do@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/nunjucks-do/-/nunjucks-do-1.0.0.tgz#506bbd4b42db29ab3dada41b455546b9907ef1df" + integrity sha512-GQwENqZdcSbni0iYfEiNi3hs634JBSQdxnbnd9CetGkMYPnpjG1Jn5DT/qgAaC/STwMc7C4MSIJvLSNertclSg== + +nunjucks@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.4.tgz#f0878eef528ce7b0aa35d67cc6898635fd74649e" + integrity sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ== + dependencies: + a-sync-waterfall "^1.0.0" + asap "^2.0.3" + commander "^5.1.0" + +nwsapi@^2.2.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.5.tgz#a52744c61b3889dd44b0a158687add39b8d935e2" + integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-path@^0.11.5: + version "0.11.8" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" + integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.3, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.5, object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.fromentries@^2.0.5, object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.6" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== + dependencies: + array.prototype.reduce "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" + +object.hasown@^1.1.0, object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +omit-keys@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/omit-keys/-/omit-keys-0.1.0.tgz#e14ec5ca09cd4ae07fc39e8ca35939738449bec8" + integrity sha512-JfTw3lVL54592o0Vb1frMN6DpS/wT8Uz/IWg1e0w2ZkjF4yyPYHGJAtdcBcUbp/RMf/LbdMzIz6QZ6ycaRCFUA== + dependencies: + array-difference "0.0.1" + isobject "^0.2.0" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^7.0.0, open@^7.3.0: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +open@^8.0.9, open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optimism@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.10.3.tgz#163268fdc741dea2fb50f300bedda80356445fd7" + integrity sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw== + dependencies: + "@wry/context" "^0.4.0" + +optimism@^0.16.1: + version "0.16.2" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.2.tgz#519b0c78b3b30954baed0defe5143de7776bf081" + integrity sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ== + dependencies: + "@wry/context" "^0.7.0" + "@wry/trie" "^0.3.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +org-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/org-regex/-/org-regex-1.0.0.tgz#67ebb9ab3cb124fea5841289d60b59434f041a59" + integrity sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ== + +os-browserify@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +outdent@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.5.0.tgz#9e10982fdc41492bb473ad13840d22f9655be2ff" + integrity sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== + +ow@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/ow/-/ow-0.21.0.tgz#c2df2ad78d1bfc2ea9cdca311b7a6275258df621" + integrity sha512-dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw== + dependencies: + "@sindresorhus/is" "^4.0.0" + callsites "^3.1.0" + dot-prop "^6.0.1" + lodash.isequal "^4.5.0" + type-fest "^0.20.2" + vali-date "^1.0.0" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-event@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + +p-filter@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" + integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== + dependencies: + p-map "^2.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-memoize@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/p-memoize/-/p-memoize-4.0.4.tgz#90a4c4668866737fc5c8364c56b06f6ca44afb15" + integrity sha512-ijdh0DP4Mk6J4FXlOM6vPPoCjPytcEseW8p/k5SDTSSfGV3E9bpt9Yzfifvzp6iohIieoLTkXRb32OWV0fB2Lw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.0.0" + p-settle "^4.1.1" + +p-queue@^6.3.0, p-queue@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-reflect@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-reflect/-/p-reflect-2.1.0.tgz#5d67c7b3c577c4e780b9451fc9129675bd99fe67" + integrity sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg== + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-settle@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/p-settle/-/p-settle-4.1.1.tgz#37fbceb2b02c9efc28658fc8d36949922266035f" + integrity sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ== + dependencies: + p-limit "^2.2.2" + p-reflect "^2.1.0" + +p-timeout@^3.1.0, p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-timeout@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-4.1.0.tgz#788253c0452ab0ffecf18a62dff94ff1bd09ca0a" + integrity sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +pako@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + integrity sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg== + dependencies: + path-platform "~0.11.15" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-entities@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" + integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + +parse5-htmlparser2-tree-adapter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + +parse5@6.0.1, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +parseurl@^1.3.3, parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +path-browserify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + integrity sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +periscopic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + +pirates@^4.0.1, pirates@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +postcss-attribute-case-insensitive@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" + integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-browser-comments@^4: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz#bcfc86134df5807f5d3c0eefa191d42136b5e72a" + integrity sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg== + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== + dependencies: + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" + integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-hex-alpha@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" + integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" + integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-colormin@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" + integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" + integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-custom-media@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" + integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-properties@^12.1.10: + version "12.1.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" + integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" + integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-dir-pseudo-class@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" + integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== + +postcss-double-position-gradients@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" + integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-env-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" + integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-flexbugs-fixes@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" + integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== + +postcss-focus-visible@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" + integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-focus-within@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" + integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" + integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== + +postcss-image-set-function@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" + integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-initial@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" + integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-lab-function@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" + integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-load-config@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-load-config@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" + integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== + dependencies: + lilconfig "^2.0.5" + yaml "^1.10.2" + +postcss-load-config@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" + integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + dependencies: + lilconfig "^2.0.5" + yaml "^2.1.1" + +postcss-loader@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" + integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.5" + semver "^7.3.5" + +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== + +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-longhand@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" + integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^5.1.1" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-merge-rules@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" + integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== + dependencies: + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-params@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" + integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + integrity sha512-zF9+UIEvtpeqMGxhpeT9XaIevQSrBBCz9fi7SwfkmjVacsSj8DY5eFVgn+wY8I9vvdDDwK5xC8Myq4UkoLFIkA== + dependencies: + postcss "^6.0.1" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-local-by-default@^4.0.0, postcss-modules-local-by-default@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA== + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-2.0.0.tgz#473d0d7326651d8408585c2a154115d5cb36cce0" + integrity sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw== + dependencies: + css-modules-loader-core "^1.1.0" + generic-names "^2.0.1" + lodash.camelcase "^4.3.0" + postcss "^7.0.1" + string-hash "^1.1.1" + +postcss-modules@^4.0.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.3.1.tgz#517c06c09eab07d133ae0effca2c510abba18048" + integrity sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q== + dependencies: + generic-names "^4.0.0" + icss-replace-symbols "^1.1.0" + lodash.camelcase "^4.3.0" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + string-hash "^1.1.1" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-nesting@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" + integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" + integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-10.0.1.tgz#464692676b52792a06b06880a176279216540dd7" + integrity sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA== + dependencies: + "@csstools/normalize.css" "*" + postcss-browser-comments "^4" + sanitize.css "*" + +postcss-opacity-percentage@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" + integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" + integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" + integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^7.0.1: + version "7.8.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" + integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== + dependencies: + "@csstools/postcss-cascade-layers" "^1.1.1" + "@csstools/postcss-color-function" "^1.1.1" + "@csstools/postcss-font-format-keywords" "^1.0.1" + "@csstools/postcss-hwb-function" "^1.0.2" + "@csstools/postcss-ic-unit" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^2.0.7" + "@csstools/postcss-nested-calc" "^1.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.1" + "@csstools/postcss-oklab-function" "^1.1.1" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + "@csstools/postcss-stepped-value-functions" "^1.0.1" + "@csstools/postcss-text-decoration-shorthand" "^1.0.0" + "@csstools/postcss-trigonometric-functions" "^1.0.2" + "@csstools/postcss-unset-value" "^1.0.2" + autoprefixer "^10.4.13" + browserslist "^4.21.4" + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^7.1.0" + postcss-attribute-case-insensitive "^5.0.2" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^4.2.4" + postcss-color-hex-alpha "^8.0.4" + postcss-color-rebeccapurple "^7.1.1" + postcss-custom-media "^8.0.2" + postcss-custom-properties "^12.1.10" + postcss-custom-selectors "^6.0.3" + postcss-dir-pseudo-class "^6.0.5" + postcss-double-position-gradients "^3.1.2" + postcss-env-function "^4.0.6" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.5" + postcss-image-set-function "^4.0.7" + postcss-initial "^4.0.1" + postcss-lab-function "^4.2.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.2.0" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.4" + postcss-page-break "^3.0.4" + postcss-place "^7.0.5" + postcss-pseudo-class-any-link "^7.1.6" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-pseudo-class-any-link@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" + integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-initial@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" + integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" + integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^2.7.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" + integrity sha512-VbGX1LQgQbf9l3cZ3qbUuC3hGqIEOGQFHAEHQ/Diaeo0yLgpgK5Rb8J+OcamIfQ9PbAU/fzBjVtQX3AhJHUvZw== + dependencies: + chalk "^1.1.3" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^6.0.1: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.35: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^8.2.1, postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4: + version "8.4.24" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" + integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +preact-compat@^3.19.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/preact-compat/-/preact-compat-3.19.0.tgz#a71457b6a3bf051690a4411603bc2085aa061c2f" + integrity sha512-f83A4hIhH8Uzhb9GbIcGk8SM19ffWlwP9mDaYwQdRnMdekZwcCA7eIAbeV4EMQaV9C0Yuy8iKgBAtyTKPZQt/Q== + dependencies: + immutability-helper "^2.7.1" + preact-context "^1.1.3" + preact-render-to-string "^3.8.2" + preact-transition-group "^1.1.1" + prop-types "^15.6.2" + standalone-react-addons-pure-render-mixin "^0.1.1" + +preact-context@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/preact-context/-/preact-context-1.1.4.tgz#866ebd35bef5788f73fc453f06f01b03ddf8f4ff" + integrity sha512-gcCjPJ65R0MiW9hDu8W/3WAmyTElIvwLyEO6oLQiM6/TbLKLxCpBCWV8GJjx52TTEyUr60HLDcmoCXZlslelzQ== + +preact-render-to-string@^3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-3.8.2.tgz#bd72964d705a57da3a9e72098acaa073dd3ceff9" + integrity sha512-przuZPajiurStGgxMoJP0EJeC4xj5CgHv+M7GfF3YxAdhGgEWAkhOSE0xympAFN20uMayntBZpttIZqqLl77fw== + dependencies: + pretty-format "^3.5.1" + +preact-transition-group@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/preact-transition-group/-/preact-transition-group-1.1.1.tgz#f0a49327ea515ece34ea2be864c4a7d29e5d6e10" + integrity sha512-v89XLodCvylf5lMrhI+LqIhDsAjWfiDKV4keAU+L5yDtxmqn8uvjZXn+haKMEG0x0PZz81own19SuNJD5NlOFQ== + +preact@^10.11.3: + version "10.15.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.15.1.tgz#a1de60c9fc0c79a522d969c65dcaddc5d994eede" + integrity sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g== + +preferred-pm@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.0.3.tgz#1b6338000371e3edbce52ef2e4f65eb2e73586d6" + integrity sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ== + dependencies: + find-up "^5.0.0" + find-yarn-workspace-root2 "1.2.16" + path-exists "^4.0.0" + which-pm "2.0.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + +prettier@^2.7.1, prettier@latest: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== + dependencies: + "@jest/schemas" "^28.1.3" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-format@^29.0.0, pretty-format@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" + integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== + dependencies: + "@jest/schemas" "^29.4.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-format@^3.5.1: + version "3.8.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385" + integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise.series@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" + integrity sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ== + +promise@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + +prompts@^2.0.1, prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d" + integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.28, psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +pvtsutils@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" + integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== + dependencies: + tslib "^2.4.0" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + +q@^1.1.2, q@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qr.js@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/qr.js/-/qr.js-0.0.0.tgz#cace86386f59a0db8050fa90d9b6b0e88a1e364f" + integrity sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@^6.4.0: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +quickly-copy-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz#9f8ff066230510ee7422b0121472b093a8690859" + integrity sha512-Coy5ADj9Z3iKZ/7Y0Qtf04mBET550LPemwp9rLPE2rROidvuqB42nP7w5SwM6Wl6jPNcrxSSgzco01h1Hu8iIg== + dependencies: + mkdirp "~0.5.0" + +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@~1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" + integrity sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg== + dependencies: + bytes "1" + string_decoder "0.10" + +rc@1.2.8, rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-app-polyfill@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz#95221e0a9bd259e5ca6b177c7bb1cb6768f68fd7" + integrity sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w== + dependencies: + core-js "^3.19.2" + object-assign "^4.1.1" + promise "^8.1.0" + raf "^3.4.1" + regenerator-runtime "^0.13.9" + whatwg-fetch "^3.6.2" + +react-app-rewired@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-app-rewired/-/react-app-rewired-2.2.1.tgz#84901ee1e3f26add0377ebec0b41bcdfce9fc211" + integrity sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA== + dependencies: + semver "^5.6.0" + +react-dev-utils@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" + integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== + dependencies: + "@babel/code-frame" "^7.16.0" + address "^1.1.2" + browserslist "^4.18.1" + chalk "^4.1.2" + cross-spawn "^7.0.3" + detect-port-alt "^1.1.6" + escape-string-regexp "^4.0.0" + filesize "^8.0.6" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.5.0" + global-modules "^2.0.0" + globby "^11.0.4" + gzip-size "^6.0.0" + immer "^9.0.7" + is-root "^2.1.0" + loader-utils "^3.2.0" + open "^8.4.0" + pkg-up "^3.1.0" + prompts "^2.4.2" + react-error-overlay "^6.0.11" + recursive-readdir "^2.2.2" + shell-quote "^1.7.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-error-overlay@6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" + integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== + +react-error-overlay@^6.0.11: + version "6.0.11" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react-qr-code@^2.0.7: + version "2.0.11" + resolved "https://registry.yarnpkg.com/react-qr-code/-/react-qr-code-2.0.11.tgz#444c759a2100424972e17135fbe0e32eaffa19e8" + integrity sha512-P7mvVM5vk9NjGdHMt4Z0KWeeJYwRAtonHTghZT2r+AASinLUUKQ9wfsGH2lPKsT++gps7hXmaiMGRvwTDEL9OA== + dependencies: + prop-types "^15.8.1" + qr.js "0.0.0" + +react-refresh@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.10.0.tgz#2f536c9660c0b9b1d500684d9e52a65e7404f7e3" + integrity sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ== + +react-refresh@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" + integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== + +react-router-dom@^6.3.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.12.0.tgz#372279caaaa1ffb0204926c83e93a139b112d861" + integrity sha512-UzLwZ3ZVaDr6YV0HdjwxuwtDKgwpJx9o1ea9fU0HV4tTvzdB8WPHzlLFMo5orchpIS84e8G4Erlhu7Rl84XDFQ== + dependencies: + "@remix-run/router" "1.6.3" + react-router "6.12.0" + +react-router@6.12.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.12.0.tgz#1afae9219c24c8611809469d7a386c8023ade39a" + integrity sha512-/tCGtLq9umxRvbYeIx3j94CmpQfue0E3qnetVm9luKhu58cR4t+3O4ZrQXBdXfJrBATOAj+wF/1ihJJQI8AoTw== + dependencies: + "@remix-run/router" "1.6.3" + +react-scripts@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-5.0.1.tgz#6285dbd65a8ba6e49ca8d651ce30645a6d980003" + integrity sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ== + dependencies: + "@babel/core" "^7.16.0" + "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3" + "@svgr/webpack" "^5.5.0" + babel-jest "^27.4.2" + babel-loader "^8.2.3" + babel-plugin-named-asset-import "^0.3.8" + babel-preset-react-app "^10.0.1" + bfj "^7.0.2" + browserslist "^4.18.1" + camelcase "^6.2.1" + case-sensitive-paths-webpack-plugin "^2.4.0" + css-loader "^6.5.1" + css-minimizer-webpack-plugin "^3.2.0" + dotenv "^10.0.0" + dotenv-expand "^5.1.0" + eslint "^8.3.0" + eslint-config-react-app "^7.0.1" + eslint-webpack-plugin "^3.1.1" + file-loader "^6.2.0" + fs-extra "^10.0.0" + html-webpack-plugin "^5.5.0" + identity-obj-proxy "^3.0.0" + jest "^27.4.3" + jest-resolve "^27.4.2" + jest-watch-typeahead "^1.0.0" + mini-css-extract-plugin "^2.4.5" + postcss "^8.4.4" + postcss-flexbugs-fixes "^5.0.2" + postcss-loader "^6.2.1" + postcss-normalize "^10.0.1" + postcss-preset-env "^7.0.1" + prompts "^2.4.2" + react-app-polyfill "^3.0.0" + react-dev-utils "^12.0.1" + react-refresh "^0.11.0" + resolve "^1.20.0" + resolve-url-loader "^4.0.0" + sass-loader "^12.3.0" + semver "^7.3.5" + source-map-loader "^3.0.0" + style-loader "^3.3.1" + tailwindcss "^3.0.2" + terser-webpack-plugin "^5.2.5" + webpack "^5.64.4" + webpack-dev-server "^4.6.0" + webpack-manifest-plugin "^4.0.2" + workbox-webpack-plugin "^6.4.1" + optionalDependencies: + fsevents "^2.3.2" + +react@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + integrity sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w== + dependencies: + readable-stream "^2.0.2" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read-yaml-file@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-yaml-file/-/read-yaml-file-1.1.0.tgz#9362bbcbdc77007cc8ea4519fe1c0b821a7ce0d8" + integrity sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== + dependencies: + graceful-fs "^4.1.5" + js-yaml "^3.6.1" + pify "^4.0.1" + strip-bom "^3.0.0" + +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reading-time@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" + integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== + +receptacle@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" + integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== + dependencies: + ms "^2.1.1" + +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== + dependencies: + minimatch "^3.0.5" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +reduce-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-1.0.1.tgz#258c78efd153ddf93cb561237f61184f3696e327" + integrity sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ== + +reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.9: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +registry-auth-token@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" + integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== + dependencies: + rc "1.2.8" + +registry-url@^5.0.0, registry-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +rehype-katex@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/rehype-katex/-/rehype-katex-6.0.3.tgz#83e5b929b0967978e9491c02117f55be3594d7e1" + integrity sha512-ByZlRwRUcWegNbF70CVRm2h/7xy7jQ3R9LaY4VVSvjnoVWwWVhNL60DiZsBpC5tSzYQOCvDbzncIpIjPZWodZA== + dependencies: + "@types/hast" "^2.0.0" + "@types/katex" "^0.14.0" + hast-util-from-html-isomorphic "^1.0.0" + hast-util-to-text "^3.1.0" + katex "^0.16.0" + unist-util-visit "^4.0.0" + +rehype-pretty-code@0.9.4: + version "0.9.4" + resolved "https://registry.yarnpkg.com/rehype-pretty-code/-/rehype-pretty-code-0.9.4.tgz#ab214026b530890c7a2e14c4f0881483e39e9cbc" + integrity sha512-3m4aQT15n8C+UizcZL0enaahoZwCDm5K1qKQ3DGgHE7U8l/DEEEJ/hm+uDe9yyK4sxVOSfZcRIMHrpJwLQi+Rg== + dependencies: + hash-obj "^4.0.0" + parse-numeric-range "^1.3.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remark-footnotes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-3.0.0.tgz#5756b56f8464fa7ed80dbba0c966136305d8cb8d" + integrity sha512-ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg== + dependencies: + mdast-util-footnote "^0.1.0" + micromark-extension-footnote "^0.3.0" + +remark-frontmatter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz#ca5d996361765c859bd944505f377d6b186a6ec6" + integrity sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA== + dependencies: + mdast-util-frontmatter "^0.2.0" + micromark-extension-frontmatter "^0.2.0" + +remark-gfm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" + integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA== + dependencies: + mdast-util-gfm "^0.1.0" + micromark-extension-gfm "^0.3.0" + +remark-gfm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" + integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-gfm "^2.0.0" + micromark-extension-gfm "^2.0.0" + unified "^10.0.0" + +remark-math@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-5.1.1.tgz#459e798d978d4ca032e745af0bac81ddcdf94964" + integrity sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-math "^2.0.0" + micromark-extension-math "^2.0.0" + unified "^10.0.0" + +remark-mdx@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.3.0.tgz#efe678025a8c2726681bde8bf111af4a93943db4" + integrity sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g== + dependencies: + mdast-util-mdx "^2.0.0" + micromark-extension-mdxjs "^1.0.0" + +remark-parse@^10.0.0: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + +remark-parse@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" + integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== + dependencies: + mdast-util-from-markdown "^0.8.0" + +remark-reading-time@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-reading-time/-/remark-reading-time-2.0.1.tgz#fe8bb8e420db7678dc749385167adb4fc99318f7" + integrity sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw== + dependencies: + estree-util-is-identifier-name "^2.0.0" + estree-util-value-to-estree "^1.3.0" + reading-time "^1.3.0" + unist-util-visit "^3.1.0" + +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + +remove-accents@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" + integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.0.0, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz#d50d4ddc746bb10468443167acf800dcd6c3ad57" + integrity sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA== + dependencies: + adjust-sourcemap-loader "^4.0.0" + convert-source-map "^1.7.0" + loader-utils "^2.0.0" + postcss "^7.0.35" + source-map "0.6.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve.exports@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" + integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== + +resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.1, resolve@^1.14.2, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.4.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.3, resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +response-iterator@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" + integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@0.13.1, retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfc4648@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.4.0.tgz#c75b2856ad2e2d588b6ddb985d556f1f7f2a2abd" + integrity sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== + +rimraf@2, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +robust-predicates@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + +rollup-plugin-postcss@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz#d1bcaf8eb0fcb0936e3684c22dd8628d13a82fd1" + integrity sha512-JHnGfW8quNc6ePxEkZ05HEZ1YiRxDgY9RKEetMfsrwxR2kh/d90OVScTc6b1c2Q17Cs/5TRYL+1uddG21lQe3w== + dependencies: + chalk "^4.0.0" + concat-with-sourcemaps "^1.1.0" + cssnano "^4.1.10" + import-cwd "^3.0.0" + p-queue "^6.3.0" + pify "^5.0.0" + postcss "^7.0.27" + postcss-load-config "^2.1.0" + postcss-modules "^2.0.0" + promise.series "^0.2.0" + resolve "^1.16.1" + rollup-pluginutils "^2.8.2" + safe-identifier "^0.4.1" + style-inject "^0.3.0" + +rollup-plugin-postcss@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" + integrity sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w== + dependencies: + chalk "^4.1.0" + concat-with-sourcemaps "^1.1.0" + cssnano "^5.0.1" + import-cwd "^3.0.0" + p-queue "^6.6.2" + pify "^5.0.0" + postcss-load-config "^3.0.0" + postcss-modules "^4.0.0" + promise.series "^0.2.0" + resolve "^1.19.0" + rollup-pluginutils "^2.8.2" + safe-identifier "^0.4.2" + style-inject "^0.3.0" + +rollup-plugin-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-string/-/rollup-plugin-string-3.0.0.tgz#fed2d6301fae1e59eb610957df757ef13fada3f0" + integrity sha512-vqyzgn9QefAgeKi+Y4A7jETeIAU1zQmS6VotH6bzm/zmUQEnYkpIGRaOBPY41oiWYV4JyBoGAaBjYMYuv+6wVw== + dependencies: + rollup-pluginutils "^2.4.1" + +rollup-plugin-svelte@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz#66362cf0500fb7a848283ebcf19d289a60ef0871" + integrity sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow== + dependencies: + require-relative "^0.8.7" + rollup-pluginutils "^2.8.2" + sourcemap-codec "^1.4.8" + +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup-pluginutils@^2.4.1, rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@^2.3.4, rollup@^2.43.1, rollup@^2.56.3: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^3.21.0: + version "3.24.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.24.0.tgz#865dee1fe0bb528747b59914dfab25e6f480e370" + integrity sha512-OgraHOIg2YpHQTjl0/ymWfFNBEyPucB7lmhXrQUh38qNOegxLapSPFs9sNr0qKR75awW41D93XafoR2QfhBdUQ== + optionalDependencies: + fsevents "~2.3.2" + +rsvp@^3.5.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== + +rsvp@^4.6.1, rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.2.0, run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run-script-os@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/run-script-os/-/run-script-os-1.1.6.tgz#8b0177fb1b54c99a670f95c7fdc54f18b9c72347" + integrity sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw== + +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg== + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA== + +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@^6.6.3: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +sade@^1.7.3, sade@^1.7.4: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-identifier@^0.4.1, safe-identifier@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" + integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== + +safe-json-parse@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" + integrity sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sander@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" + integrity sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA== + dependencies: + es6-promise "^3.1.2" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sanitize.css@*: + version "13.0.0" + resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173" + integrity sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA== + +sass-loader@^12.3.0: + version "12.6.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" + integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sass@*: + version "1.63.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.2.tgz#75f7d9a8e67d1d5b98a989507f4d98b6067b1f75" + integrity sha512-u56TU0AIFqMtauKl/OJ1AeFsXqRHkgO7nCWmHaDwfxDo9GUMSqBA4NEh6GMuh1CYVM7zuROYtZrHzPc2ixK+ww== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.2.0.tgz#7dff4881064a4f22c09f0c6a1457feb820fd0636" + integrity sha512-0zTyLGyDJYd/MBxG1AhJkKa6fpEBds4OQO2ut0w7OYG+ZGhGea09lijvzsqegYSik88zc7cUtIlnnO+/BvD6gQ== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.1.0.tgz#4cff1e434c12ed39502378b9a3e24787b37df41d" + integrity sha512-Jw+GZVbP5IggB2WAn6UHI02LBwGmsIeYN/lNbSMZyDziQ7jmtAUrqKqDja+W89YHVs+KL/3IkIMltAklqB1vAw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +scoped-regex@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" + integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== + +scroll-into-view-if-needed@^3.0.0: + version "3.0.10" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz#38fbfe770d490baff0fb2ba34ae3539f6ec44e13" + integrity sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg== + dependencies: + compute-scroll-into-view "^3.0.2" + +secp256k1@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== + dependencies: + node-forge "^1" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +send@^0.17.1: + version "0.17.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" + integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "1.8.1" + mime "1.6.0" + ms "2.1.3" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@~1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha256@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/sha256/-/sha256-0.2.0.tgz#73a0b418daab7035bff86e8491e363412fc2ab05" + integrity sha512-kTWMJUaez5iiT9CcMv8jSq6kMhw3ST0uRdcIWl3D77s6AsLXNXRp3heeqqfu5+Dyfu4hwpQnMzhqHh8iNQxw0w== + dependencies: + convert-hex "~0.1.0" + convert-string "~0.1.0" + +sha3@^2.1.3: + version "2.1.4" + resolved "https://registry.yarnpkg.com/sha3/-/sha3-2.1.4.tgz#000fac0fe7c2feac1f48a25e7a31b52a6492cc8f" + integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg== + dependencies: + buffer "6.0.3" + +shasum-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" + integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== + dependencies: + fast-safe-stringify "^2.0.7" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.6.1, shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +shiki@^0.14.1, shiki@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.2.tgz#d51440800b701392b31ce2336036058e338247a1" + integrity sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A== + dependencies: + ansi-sequence-parser "^1.1.0" + jsonc-parser "^3.2.0" + vscode-oniguruma "^1.7.0" + vscode-textmate "^8.0.0" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +sinon@*: + version "15.1.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.1.0.tgz#87656841545f7c63bd1e291df409fafd0e9aec09" + integrity sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ== + dependencies: + "@sinonjs/commons" "^3.0.0" + "@sinonjs/fake-timers" "^10.2.0" + "@sinonjs/samsam" "^8.0.0" + diff "^5.1.0" + nise "^5.1.4" + supports-color "^7.2.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== + +slick@^1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" + integrity sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A== + +smartwrap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-2.0.2.tgz#7e25d3dd58b51c6ca4aba3a9e391650ea62698a4" + integrity sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA== + dependencies: + array.prototype.flat "^1.2.3" + breakword "^1.0.5" + grapheme-splitter "^1.0.4" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + yargs "^15.1.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sorcery@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" + integrity sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g== + dependencies: + buffer-crc32 "^0.2.5" + minimist "^1.2.0" + sander "^0.5.0" + sourcemap-codec "^1.3.0" + +sort-keys@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-5.0.0.tgz#5d775f8ae93ecc29bc7312bbf3acac4e36e3c446" + integrity sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw== + dependencies: + is-plain-obj "^4.0.0" + +source-list-map@^2.0.0, source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-loader@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.2.tgz#af23192f9b344daa729f6772933194cc5fa54fee" + integrity sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg== + dependencies: + abab "^2.0.5" + iconv-lite "^0.6.3" + source-map-js "^1.0.1" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.5.6, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.7.0, source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +source-map@^0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +spawndamnit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-2.0.0.tgz#9f762ac5c3476abb994b42ad592b5ad22bb4b0ad" + integrity sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA== + dependencies: + cross-spawn "^5.1.0" + signal-exit "^3.0.2" + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.13" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" + integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +split@^1.0.0, split@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.2, stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + +standalone-react-addons-pure-render-mixin@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz#3c7409f4c79c40de9ac72c616cf679a994f37551" + integrity sha512-HFkwqpJmvz4vxHyzdeUcjtsp8Am+NauLXdU2/YXT1/InPbszaRo1cLPAy/58H7oOPNNjteqHcv04JEw+d9C+Xw== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-http@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" + integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" + +stream-splicer@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" + integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + +stream-transform@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.1.3.tgz#a1c3ecd72ddbf500aa8d342b0b9df38f5aa598e3" + integrity sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ== + dependencies: + mixme "^0.5.1" + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-length@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-5.0.1.tgz#3d647f497b6e8e8d41e422f7e0b23bc536c8381e" + integrity sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow== + dependencies: + char-regex "^2.0.0" + strip-ansi "^7.0.1" + +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + +string.prototype.padend@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz#2c43bb3a89eb54b6750de5942c123d6c98dd65b6" + integrity sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@0.10: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-entities@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +style-inject@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" + integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== + +style-loader@^3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" + integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== + +style-to-object@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.1.tgz#53cf856f7cf7f172d72939d9679556469ba5de37" + integrity sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw== + dependencies: + inline-style-parser "0.1.1" + +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +stylehacks@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" + integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + +stylis@^4.1.3: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg== + dependencies: + minimist "^1.1.0" + +subscriptions-transport-ws@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz#baf88f050cba51d52afe781de5e81b3c31f89883" + integrity sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ== + dependencies: + backo2 "^1.0.2" + eventemitter3 "^3.1.0" + iterall "^1.2.1" + symbol-observable "^1.0.4" + ws "^5.2.0 || ^6.0.0 || ^7.0.0" + +sucrase@^3.32.0: + version "3.32.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.32.0.tgz#c4a95e0f1e18b6847127258a75cf360bc568d4a7" + integrity sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +supports-color@8.1.1, supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== + dependencies: + has-flag "^1.0.0" + +supports-color@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + integrity sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw== + dependencies: + has-flag "^2.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svelte-check@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-1.6.0.tgz#fcc7b28252a89be0e4cd369c58bbf8e76e81295f" + integrity sha512-nQTlbFJWhwoeLY5rkhgbjzGQSwk5F1pRdEXait0EFaQSrE/iJF+PIjrQlk0BjL/ogk9HaR9ZI0DQSYrl7jl3IQ== + dependencies: + chalk "^4.0.0" + chokidar "^3.4.1" + glob "^7.1.6" + import-fresh "^3.2.1" + minimist "^1.2.5" + sade "^1.7.4" + source-map "^0.7.3" + svelte-preprocess "^4.0.0" + typescript "*" + +svelte-preprocess@^4.0.0: + version "4.10.7" + resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz#3626de472f51ffe20c9bc71eff5a3da66797c362" + integrity sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw== + dependencies: + "@types/pug" "^2.0.4" + "@types/sass" "^1.16.0" + detect-indent "^6.0.0" + magic-string "^0.25.7" + sorcery "^0.10.0" + strip-indent "^3.0.0" + +svelte@^3.0.0: + version "3.59.1" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.59.1.tgz#3de3d56b9165748f32f3131589b8d183cabe7449" + integrity sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ== + +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^1.0.0, svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +"swipl-stdio@https://github.com/perspect3vism/node-swipl-stdio.git": + version "1.0.4" + resolved "https://github.com/perspect3vism/node-swipl-stdio.git#a00dbfb99aeacf99cb59448e2a9c92b40a889545" + dependencies: + debug "^2.6.4" + split "^1.0.0" + +symbol-observable@^1.0.2, symbol-observable@^1.0.4, symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +symbol-observable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-3.0.0.tgz#eea8f6478c651018e059044268375c408c15c533" + integrity sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q== + +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +syntax-error@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== + dependencies: + acorn-node "^1.2.0" + +table-layout@^0.4.2: + version "0.4.5" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-0.4.5.tgz#d906de6a25fa09c0c90d1d08ecd833ecedcb7378" + integrity sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw== + dependencies: + array-back "^2.0.0" + deep-extend "~0.6.0" + lodash.padend "^4.6.1" + typical "^2.6.1" + wordwrapjs "^3.0.0" + +tailwindcss@^3.0.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.2.tgz#2f9e35d715fdf0bbf674d90147a0684d7054a2d3" + integrity sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.2.12" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.18.2" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + resolve "^1.22.2" + sucrase "^3.32.0" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar@^4.4.2: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" + integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== + dependencies: + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +term-size@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + +terminal-link@^2.0.0, terminal-link@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" + +terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: + version "5.17.7" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.7.tgz#2a8b134826fe179b711969fd9d9a0c2479b2a8c3" + integrity sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +test-value@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" + integrity sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w== + dependencies: + array-back "^1.0.3" + typical "^2.6.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +throat@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" + integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== + +through2@^2.0.0, through2@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q== + dependencies: + process "~0.11.0" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== + +tiny-lr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" + integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== + dependencies: + body "^5.1.0" + debug "^3.1.0" + faye-websocket "~0.10.0" + livereload-js "^2.3.0" + object-assign "^4.1.0" + qs "^6.4.0" + +title@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/title/-/title-3.5.3.tgz#b338d701a3d949db6b49b2c86f409f9c2f36cd91" + integrity sha512-20JyowYglSEeCvZv3EZ0nZ046vLarO37prvV0mbtQV7C8DJPGgN967r8SJkqd3XK3K3lD3/Iyfp3avjfil8Q2Q== + dependencies: + arg "1.0.0" + chalk "2.3.0" + clipboardy "1.2.2" + titleize "1.0.0" + +titleize@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" + integrity sha512-TARUb7z1pGvlLxgPk++7wJ6aycXF3GJ0sNSBTAsTuJrQG5QuZlkUQP+zl+nbjAh4gMX9yDw9ZYklMd7vAfJKEw== + +tmp@0.0.28: + version "0.0.28" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" + integrity sha512-c2mmfiBmND6SOVxzogm1oda0OJ1HZVIk/5n26N59dDTh80MUeavpiCls4PGAdkX1PFkKokLpcf7prSjCeXLsJg== + dependencies: + os-tmpdir "~1.0.1" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-readable-stream@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" + integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toml@^2.3.0: + version "2.3.6" + resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" + integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== + +tough-cookie@^4.0.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +transform-markdown-links@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/transform-markdown-links/-/transform-markdown-links-2.1.0.tgz#de2178d96ef0e020226ebd967dcc5873df039792" + integrity sha512-7HWQwQ9US+tJSMMzi1aP+KA3QwfjDs8sB4H5GBMRHFNBMQVdgoF6VfIFy2nJR/UHRTkYoGFwWh2pe+QIwSvfOA== + +"traverse@>=0.3.0 <0.4": + version "0.3.9" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" + integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== + +traverse@^0.6.7: + version "0.6.7" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" + integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + +try-resolve@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/try-resolve/-/try-resolve-1.0.1.tgz#cfde6fabd72d63e5797cfaab873abbe8e700e912" + integrity sha512-yHeaPjCBzVaXwWl5IMUapTaTC2rn/eBYg2fsG2L+CvJd+ttFbk0ylDnpTO3wVhosmE1tQEvcebbBeKLCwScQSQ== + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-dedent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== + dependencies: + tslib "^2.1.0" + +ts-invariant@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" + integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== + dependencies: + tslib "^1.9.3" + +ts-jest@^26.5.6: + version "26.5.6" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.6.tgz#c32e0746425274e1dfe333f43cd3c800e014ec35" + integrity sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + jest-util "^26.1.0" + json5 "2.x" + lodash "4.x" + make-error "1.x" + mkdirp "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-mocha@*: + version "10.0.0" + resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.0.0.tgz#41a8d099ac90dbbc64b06976c5025ffaebc53cb9" + integrity sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw== + dependencies: + ts-node "7.0.1" + optionalDependencies: + tsconfig-paths "^3.5.0" + +ts-node@10.9.1, ts-node@^10.5.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +ts-node@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" + integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== + dependencies: + arrify "^1.0.0" + buffer-from "^1.1.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.5.6" + yn "^2.0.0" + +ts-typed-json@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/ts-typed-json/-/ts-typed-json-0.2.2.tgz#53184bee893e45991b73c8c463a38b59e27cd47e" + integrity sha512-9VrASRmfrPbsuXvl9rdq82TzGs3Qg7D8eI5vF6LOLBhFh5sju5wbpE73DzxUtyQ954kfVO9yfF9NNgXAJ16cPw== + dependencies: + rsvp "^3.5.0" + +tsconfig-paths@^3.14.1, tsconfig-paths@^3.5.0: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + +tty-table@^4.1.5: + version "4.2.1" + resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.2.1.tgz#c06cd76c54542acf4e2b4a0e9a5802984b65cba6" + integrity sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g== + dependencies: + chalk "^4.1.2" + csv "^5.5.3" + kleur "^4.1.5" + smartwrap "^2.0.2" + strip-ansi "^6.0.1" + wcwidth "^1.0.1" + yargs "^17.7.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tunnel@0.0.6, tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +turbo-darwin-64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.10.2.tgz#10a92e78b98e83a37de804f9ed598c3c9b73b884" + integrity sha512-sVLpVVANByfMgqf7OYPcZM4KiDnjGu7ITvAzBSa9Iwe14yoWLn8utrNsWCRaQEB6kEqBGLPmvL7AKwkl8M2Gqg== + +turbo-darwin-arm64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.10.2.tgz#e052da2257906724feadb5a0e26a847aed1289bb" + integrity sha512-TKG91DSoYQjsCft4XBx4lYycVT5n3UQB/nOKgv/WJCSfwshLWulya3yhP8JT5erv9rPF8gwgnx87lrCmT4EAVA== + +turbo-linux-64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.10.2.tgz#0a038f26da2693cfd2af1b842e29a13128224055" + integrity sha512-ZIzAkfrzjJFkSM/uEfxU6JjseCsT5PHRu0s0lmYce37ApQbv/HC7tI0cFhuosI30+O8109/mkyZykKE7AQfgqA== + +turbo-linux-arm64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.10.2.tgz#2ff7272ec6426f91f56e71998e80eb805c20d963" + integrity sha512-G4uZA+RBQ5S1X/oUxO5KoLL2NDMkrrBZF52+00jQv6UEb9lWDgwzqSwoAGjdXxeDCrqMW5rBVwb/IBIF2/yhwA== + +turbo-windows-64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.10.2.tgz#2b05074f932bc6b032038624ebb7fd1b1e2f43ce" + integrity sha512-ObfQO37kGu1jBzFs/L+hybrCXBwdnimotJwzg7pCoSyGijKITlugrpJoPDKlg0eMr3/1Y6KUeHy26vZaDXrbuQ== + +turbo-windows-arm64@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.10.2.tgz#75e904e2f9e06960e5639f6e3f71c6a8ac01f558" + integrity sha512-7S6dx4738R/FIT2cxbsunqgHN5LelXzuzkcaZgdkU33oswRf/6KOfOABzQLdTX7Uos59cBSdwayf6KQJxuOXUg== + +turbo@latest: + version "1.10.2" + resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.10.2.tgz#b96be5aa32f6a0c7d4e50782aa720c550c3c6270" + integrity sha512-m9sR5XHhuzxUQACf0vI2qCG5OqDYAZiPTaAsTwECnwUF4/cXwEmcYddbLJnO+K9orNvcnjjent5oBNBVQ/o0ow== + optionalDependencies: + turbo-darwin-64 "1.10.2" + turbo-darwin-arm64 "1.10.2" + turbo-linux-64 "1.10.2" + turbo-linux-arm64 "1.10.2" + turbo-windows-64 "1.10.2" + turbo-windows-arm64 "1.10.2" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" + integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" + integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-graphql@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" + integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== + dependencies: + "@types/glob" "^7.1.3" + "@types/node" "^14.11.2" + "@types/semver" "^7.3.3" + glob "^7.1.6" + graphql-query-complexity "^0.7.0" + graphql-subscriptions "^1.1.0" + semver "^7.3.2" + tslib "^2.0.1" + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typedoc-plugin-markdown@^3.15.2: + version "3.15.3" + resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.15.3.tgz#f5419a32b93efbdc0fcba60ca4de37727aeb8ba9" + integrity sha512-idntFYu3vfaY3eaD+w9DeRd0PmNGqGuNLKihPU9poxFGnATJYGn9dPtEhn2QrTdishFMg7jPXAhos+2T6YCWRQ== + dependencies: + handlebars "^4.7.7" + +typedoc@^0.24.4: + version "0.24.8" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.24.8.tgz#cce9f47ba6a8d52389f5e583716a2b3b4335b63e" + integrity sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w== + dependencies: + lunr "^2.3.9" + marked "^4.3.0" + minimatch "^9.0.0" + shiki "^0.14.1" + +typescript@*: + version "5.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" + integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== + +typescript@^4.2.4, typescript@^4.5.5, typescript@^4.6.2, typescript@^4.9.3: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +typical@^2.6.0, typical@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" + integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== + +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +uint8arrays@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" + +umd@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" + integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undeclared-identifiers@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" + integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== + dependencies: + acorn-node "^1.3.0" + dash-ast "^1.0.0" + get-assigned-identifiers "^1.2.0" + simple-concat "^1.0.0" + xtend "^4.0.1" + +underscore@^1.13.2: + version "1.13.6" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" + integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unified@^10.0.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + +unified@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" + integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +unist-util-find-after@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz#80c69c92b0504033638ce11973f4135f2c822e2d" + integrity sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-generated@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-position-from-estree@^1.0.0, unist-util-position-from-estree@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz#8ac2480027229de76512079e377afbcabcfcce22" + integrity sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-position@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-remove-position@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz#a89be6ea72e23b1a402350832b02a91f6a9afe51" + integrity sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +unist-util-remove@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-3.1.1.tgz#8bfa181aff916bd32a4ed30b3ed76d0c21c077df" + integrity sha512-kfCqZK5YVY5yEa89tvpl7KnBBHu2c6CzMkqHUrlOqaRgGOMp0sMvwWOVrbAtj03KhovQB7i96Gda72v/EFE0vw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit-parents@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" + integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@4.1.2, unist-util-visit@^4.0.0, unist-util-visit@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + +unist-util-visit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" + integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^4.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unxhr@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unxhr/-/unxhr-1.0.1.tgz#92200322d66c728993de771f9e01eeb21f41bc7b" + integrity sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg== + +unzipper@^0.10.11: + version "0.10.14" + resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.14.tgz#d2b33c977714da0fbc0f82774ad35470a7c962b1" + integrity sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g== + dependencies: + big-integer "^1.6.17" + binary "~0.3.0" + bluebird "~3.4.1" + buffer-indexof-polyfill "~1.0.0" + duplexer2 "~0.1.4" + fstream "^1.0.12" + graceful-fs "^4.2.2" + listenercount "~1.0.1" + readable-stream "~2.3.6" + setimmediate "~1.0.4" + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +update-notifier@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +update-section@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158" + integrity sha512-BpRZMZpgXLuTiKeiu7kK0nIPwGdyrqrs6EDSaXtjD/aQ2T+qVo9a5hRC3HN3iJjCMxNT/VxoLGQ7E/OzE5ucnw== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urijs@^1.19.6: + version "1.19.11" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc" + integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ== + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== + dependencies: + inherits "2.0.1" + +util@~0.12.0: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + integrity sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg== + +valid-data-url@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/valid-data-url/-/valid-data-url-3.0.1.tgz#826c1744e71b5632e847dd15dbd45b9fb38aa34f" + integrity sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== + dependencies: + builtins "^1.0.3" + +validator@^13.7.0: + version "13.9.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.9.0.tgz#33e7b85b604f3bbce9bb1a05d5c3e22e1c2ff855" + integrity sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA== + +value-or-promise@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" + integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== + +value-or-promise@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" + integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== + +varint@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" + integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vfile-location@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.1.0.tgz#69df82fb9ef0a38d0d02b90dd84620e120050dd0" + integrity sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw== + dependencies: + "@types/unist" "^2.0.0" + vfile "^5.0.0" + +vfile-matter@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile-matter/-/vfile-matter-3.0.1.tgz#85e26088e43aa85c04d42ffa3693635fa2bc5624" + integrity sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg== + dependencies: + "@types/js-yaml" "^4.0.0" + is-buffer "^2.0.0" + js-yaml "^4.0.0" + +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile-message@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + +vfile@^5.0.0, vfile@^5.3.0: + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +vite@^4.0.1, vite@^4.1.1: + version "4.3.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.9.tgz#db896200c0b1aa13b37cdc35c9e99ee2fdd5f96d" + integrity sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg== + dependencies: + esbuild "^0.17.5" + postcss "^8.4.23" + rollup "^3.21.0" + optionalDependencies: + fsevents "~2.3.2" + +vm-browserify@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +vscode-oniguruma@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" + integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== + +vscode-textmate@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d" + integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + +web-resource-inliner@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz#df0822f0a12028805fe80719ed52ab6526886e02" + integrity sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A== + dependencies: + ansi-colors "^4.1.1" + escape-goat "^3.0.0" + htmlparser2 "^5.0.0" + mime "^2.4.6" + node-fetch "^2.6.0" + valid-data-url "^3.0.0" + +web-streams-polyfill@^3.0.0, web-streams-polyfill@^3.0.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + +web-vitals@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" + integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== + +web-worker@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" + integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== + +webcrypto-core@^1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" + integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-dev-middleware@^5.3.1: + version "5.3.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" + integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.6.0: + version "4.15.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz#87ba9006eca53c551607ea0d663f4ae88be7af21" + integrity sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.1" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.1" + ws "^8.13.0" + +webpack-manifest-plugin@^4.0.2: + version "4.1.1" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz#10f8dbf4714ff93a215d5a45bcc416d80506f94f" + integrity sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow== + dependencies: + tapable "^2.0.0" + webpack-sources "^2.2.0" + +webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.64.4: + version "5.86.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.86.0.tgz#b0eb81794b62aee0b7e7eb8c5073495217d9fc6d" + integrity sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.14.1" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.2" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +wget-improved@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/wget-improved/-/wget-improved-3.3.1.tgz#4ca99dc80db0ae388e99f4137f8deadd358630bc" + integrity sha512-OF22MM9ImbOcuB5ZV3ye0q1udaYeTP/V6LOfjNyGCNNC7bGB219ljZv6Wk5mPogeigJJ6CqheLScv17AFbsdGA== + dependencies: + minimist "1.2.6" + tunnel "0.0.6" + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-pm@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae" + integrity sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w== + dependencies: + load-yaml-file "^0.2.0" + path-exists "^4.0.0" + +which-typed-array@^1.1.2, which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +wordwrapjs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-3.0.0.tgz#c94c372894cadc6feb1a66bff64e1d9af92c5d1e" + integrity sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw== + dependencies: + reduce-flatten "^1.0.1" + typical "^2.6.1" + +workbox-background-sync@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f" + integrity sha512-trJd3ovpWCvzu4sW0E8rV3FUyIcC0W8G+AZ+VcqzzA890AsWZlUGOTSxIMmIHVusUw/FDq1HFWfy/kC/WTRqSg== + dependencies: + idb "^7.0.1" + workbox-core "6.6.1" + +workbox-broadcast-update@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.1.tgz#0fad9454cf8e4ace0c293e5617c64c75d8a8c61e" + integrity sha512-fBhffRdaANdeQ1V8s692R9l/gzvjjRtydBOvR6WCSB0BNE2BacA29Z4r9/RHd9KaXCPl6JTdI9q0bR25YKP8TQ== + dependencies: + workbox-core "6.6.1" + +workbox-build@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.6.1.tgz#6010e9ce550910156761448f2dbea8cfcf759cb0" + integrity sha512-INPgDx6aRycAugUixbKgiEQBWD0MPZqU5r0jyr24CehvNuLPSXp/wGOpdRJmts656lNiXwqV7dC2nzyrzWEDnw== + dependencies: + "@apideck/better-ajv-errors" "^0.3.1" + "@babel/core" "^7.11.1" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^11.2.1" + "@rollup/plugin-replace" "^2.4.1" + "@surma/rollup-plugin-off-main-thread" "^2.2.3" + ajv "^8.6.0" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^9.0.1" + glob "^7.1.6" + lodash "^4.17.20" + pretty-bytes "^5.3.0" + rollup "^2.43.1" + rollup-plugin-terser "^7.0.0" + source-map "^0.8.0-beta.0" + stringify-object "^3.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" + upath "^1.2.0" + workbox-background-sync "6.6.1" + workbox-broadcast-update "6.6.1" + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-google-analytics "6.6.1" + workbox-navigation-preload "6.6.1" + workbox-precaching "6.6.1" + workbox-range-requests "6.6.1" + workbox-recipes "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + workbox-streams "6.6.1" + workbox-sw "6.6.1" + workbox-window "6.6.1" + +workbox-cacheable-response@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.6.1.tgz#284c2b86be3f4fd191970ace8c8e99797bcf58e9" + integrity sha512-85LY4veT2CnTCDxaVG7ft3NKaFbH6i4urZXgLiU4AiwvKqS2ChL6/eILiGRYXfZ6gAwDnh5RkuDbr/GMS4KSag== + dependencies: + workbox-core "6.6.1" + +workbox-core@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.6.1.tgz#7184776d4134c5ed2f086878c882728fc9084265" + integrity sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw== + +workbox-expiration@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.6.1.tgz#a841fa36676104426dbfb9da1ef6a630b4f93739" + integrity sha512-qFiNeeINndiOxaCrd2DeL1Xh1RFug3JonzjxUHc5WkvkD2u5abY3gZL1xSUNt3vZKsFFGGORItSjVTVnWAZO4A== + dependencies: + idb "^7.0.1" + workbox-core "6.6.1" + +workbox-google-analytics@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.6.1.tgz#a07a6655ab33d89d1b0b0a935ffa5dea88618c5d" + integrity sha512-1TjSvbFSLmkpqLcBsF7FuGqqeDsf+uAXO/pjiINQKg3b1GN0nBngnxLcXDYo1n/XxK4N7RaRrpRlkwjY/3ocuA== + dependencies: + workbox-background-sync "6.6.1" + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-navigation-preload@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.1.tgz#61a34fe125558dd88cf09237f11bd966504ea059" + integrity sha512-DQCZowCecO+wRoIxJI2V6bXWK6/53ff+hEXLGlQL4Rp9ZaPDLrgV/32nxwWIP7QpWDkVEtllTAK5h6cnhxNxDA== + dependencies: + workbox-core "6.6.1" + +workbox-precaching@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.6.1.tgz#dedeeba10a2d163d990bf99f1c2066ac0d1a19e2" + integrity sha512-K4znSJ7IKxCnCYEdhNkMr7X1kNh8cz+mFgx9v5jFdz1MfI84pq8C2zG+oAoeE5kFrUf7YkT5x4uLWBNg0DVZ5A== + dependencies: + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-range-requests@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.6.1.tgz#ddaf7e73af11d362fbb2f136a9063a4c7f507a39" + integrity sha512-4BDzk28govqzg2ZpX0IFkthdRmCKgAKreontYRC5YsAPB2jDtPNxqx3WtTXgHw1NZalXpcH/E4LqUa9+2xbv1g== + dependencies: + workbox-core "6.6.1" + +workbox-recipes@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.6.1.tgz#ea70d2b2b0b0bce8de0a9d94f274d4a688e69fae" + integrity sha512-/oy8vCSzromXokDA+X+VgpeZJvtuf8SkQ8KL0xmRivMgJZrjwM3c2tpKTJn6PZA6TsbxGs3Sc7KwMoZVamcV2g== + dependencies: + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-precaching "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-routing@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.6.1.tgz#cba9a1c7e0d1ea11e24b6f8c518840efdc94f581" + integrity sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg== + dependencies: + workbox-core "6.6.1" + +workbox-strategies@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.6.1.tgz#38d0f0fbdddba97bd92e0c6418d0b1a2ccd5b8bf" + integrity sha512-WQLXkRnsk4L81fVPkkgon1rZNxnpdO5LsO+ws7tYBC6QQQFJVI6v98klrJEjFtZwzw/mB/HT5yVp7CcX0O+mrw== + dependencies: + workbox-core "6.6.1" + +workbox-streams@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.6.1.tgz#b2f7ba7b315c27a6e3a96a476593f99c5d227d26" + integrity sha512-maKG65FUq9e4BLotSKWSTzeF0sgctQdYyTMq529piEN24Dlu9b6WhrAfRpHdCncRS89Zi2QVpW5V33NX8PgH3Q== + dependencies: + workbox-core "6.6.1" + workbox-routing "6.6.1" + +workbox-sw@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.6.1.tgz#d4c4ca3125088e8b9fd7a748ed537fa0247bd72c" + integrity sha512-R7whwjvU2abHH/lR6kQTTXLHDFU2izht9kJOvBRYK65FbwutT4VvnUAJIgHvfWZ/fokrOPhfoWYoPCMpSgUKHQ== + +workbox-webpack-plugin@^6.4.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.1.tgz#4f81cc1ad4e5d2cd7477a86ba83c84ee2d187531" + integrity sha512-zpZ+ExFj9NmiI66cFEApyjk7hGsfJ1YMOaLXGXBoZf0v7Iu6hL0ZBe+83mnDq3YYWAfA3fnyFejritjOHkFcrA== + dependencies: + fast-json-stable-stringify "^2.1.0" + pretty-bytes "^5.4.1" + upath "^1.2.0" + webpack-sources "^1.4.3" + workbox-build "6.6.1" + +workbox-window@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.6.1.tgz#f22a394cbac36240d0dadcbdebc35f711bb7b89e" + integrity sha512-wil4nwOY58nTdCvif/KEZjQ2NP8uk3gGeRNy2jPBbzypU4BT4D9L8xiwbmDBpZlSgJd2xsT9FvSNU0gsxV51JQ== + dependencies: + "@types/trusted-types" "^2.0.2" + workbox-core "6.6.1" + +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@8.13.0, ws@^8.13.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.4.6: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmlhttprequest@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== + +xss@^1.0.8: + version "1.0.14" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" + integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^18.1.2, yargs-parser@^18.1.3: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^15.1.0, yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^17.3.1, yargs@^17.7.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zen-observable-ts@^0.8.21: + version "0.8.21" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" + integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== + dependencies: + tslib "^1.9.3" + zen-observable "^0.8.0" + +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15, zen-observable@^0.8.0: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zod@3.21.4, zod@^3.20.2: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From 63c6d11fe8e22c9e81893d1d4a411eb09cc42dbd Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 8 Jun 2023 14:36:26 +0100 Subject: [PATCH 327/722] add missing build step for ci test --- .github/workflows/test.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 270b97f52..0058cb328 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -43,6 +43,9 @@ jobs: - name: Install dependencies run: yarn install + + - name: Build the workspace + run: yarn run build - name: Run the tests run: yarn test @@ -84,6 +87,9 @@ jobs: - name: Install dependencies run: yarn install + - name: Build the workspace + run: yarn run build + - name: Run the tests run: | choco install swi-prolog From afd17a68f867412c1345fc50baf0ed49c2f1e1a5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 8 Jun 2023 14:41:50 +0100 Subject: [PATCH 328/722] install deno in ci workflows --- .github/workflows/integration_cli.yml | 5 +++++ .github/workflows/integration_js.yml | 5 +++++ .github/workflows/publish.yml | 4 ++++ .github/workflows/publish_staging.yml | 6 ++++++ .github/workflows/test.yml | 5 +++++ 5 files changed, 25 insertions(+) diff --git a/.github/workflows/integration_cli.yml b/.github/workflows/integration_cli.yml index 0c3c01b5d..dcd43c921 100644 --- a/.github/workflows/integration_cli.yml +++ b/.github/workflows/integration_cli.yml @@ -46,6 +46,11 @@ jobs: with: node-version: ${{ matrix.node-version }} + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - name: Yarn Install run: yarn install diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 5ee5c3885..4edff0daf 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -46,6 +46,11 @@ jobs: with: node-version: ${{ matrix.node-version }} + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - name: Yarn Install run: yarn install diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 51da2a1bf..9f1670138 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,6 +17,10 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16 + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 - name: Create Tags From id: create_tag uses: jaywcjlove/create-tag-action@v1.3.14 diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 1c8f22f26..d08261134 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -17,6 +17,12 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16 + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - name: Create Tags From id: create_tag uses: jaywcjlove/create-tag-action@v1.3.14 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0058cb328..ae83f5c95 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -84,6 +84,11 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'yarn' + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - name: Install dependencies run: yarn install From 67a04cf7f6f80ace3bd6b3d3d8aee18a4f2501d3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 8 Jun 2023 14:45:03 +0100 Subject: [PATCH 329/722] add missing deno build step in tests ci --- .github/workflows/test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ae83f5c95..2a6832fa7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,6 +41,11 @@ jobs: key: ${{ runner.os }}-cargo - run: rustup target add wasm32-unknown-unknown + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - name: Install dependencies run: yarn install From 992dbe012bdd80d3824b6af3de956e22270d0b9e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 8 Jun 2023 16:11:22 +0100 Subject: [PATCH 330/722] fix runtime client link gql definitions --- rust-client/src/runtime.gql | 62 +++++++++++++++++------------------ rust-client/src/types.rs | 64 ++++++++++++++++++------------------- 2 files changed, 63 insertions(+), 63 deletions(-) diff --git a/rust-client/src/runtime.gql b/rust-client/src/runtime.gql index 2e21fb555..f1f0a756c 100644 --- a/rust-client/src/runtime.gql +++ b/rust-client/src/runtime.gql @@ -80,14 +80,10 @@ query FriendStatus($did: String!) { links { author timestamp - data { - links { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - status - } + data { + source + predicate + target } proof { valid @@ -95,6 +91,7 @@ query FriendStatus($did: String!) { signature key } + status } } proof { @@ -118,14 +115,10 @@ query MessageInbox($filter: String) { links { author timestamp - data { - links { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - status - } + data { + source + predicate + target } proof { valid @@ -133,6 +126,7 @@ query MessageInbox($filter: String) { signature key } + status } } proof { @@ -145,21 +139,27 @@ query MessageInbox($filter: String) { } query MessageOutbox($filter: String) { - runtimeMessageOutbox(filter: $filter) { - recipient, - message { - author - timestamp - data { - links { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - status - } - } - proof { valid, invalid, signature, key } + runtimeMessageOutbox(filter: $filter) { + recipient + message { + author + timestamp + data { + links { + author + timestamp + data { + source + predicate + target + } + proof { + valid + invalid + signature + key + } + status } } proof { diff --git a/rust-client/src/types.rs b/rust-client/src/types.rs index 13fdb0286..4a286fc86 100644 --- a/rust-client/src/types.rs +++ b/rust-client/src/types.rs @@ -24,7 +24,7 @@ pub struct LinkExpression { pub data: Link, pub proof: ExpressionProof, pub timestamp: String, - pub status: Option + pub status: Option, } #[derive(Debug)] @@ -84,7 +84,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, - status: link.status + status: link.status, } } } @@ -105,7 +105,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, - status: link.status + status: link.status, } } } @@ -126,7 +126,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, - status: link.status + status: link.status, } } } @@ -147,7 +147,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, - status: link.status + status: link.status, } } } @@ -172,7 +172,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: None, }, - status: link.status + status: link.status, } } } @@ -191,7 +191,7 @@ impl From for SnapshotPerspectiveSnapshotLinks { key: link.proof.key, signature: link.proof.signature, }, - status: link.status + status: link.status, } } } @@ -212,28 +212,7 @@ impl From for LinkExpressionInput { invalid: link.proof.invalid, valid: link.proof.valid, }, - status: link.status - } - } -} - -impl From for friend_send_message::LinkExpressionInput { - fn from(link: LinkExpression) -> Self { - Self { - author: link.author, - timestamp: link.timestamp, - data: friend_send_message::LinkInput { - predicate: link.data.predicate, - source: link.data.source, - target: link.data.target, - }, - proof: friend_send_message::ExpressionProofInput { - key: link.proof.key, - signature: link.proof.signature, - invalid: link.proof.invalid, - valid: link.proof.valid, - }, - status: link.status + status: link.status, } } } @@ -256,7 +235,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: None, }, - status: link.status + status: link.status, } } } @@ -296,6 +275,27 @@ impl From for PerspectiveInput { } } +impl From for friend_send_message::LinkExpressionInput { + fn from(link: LinkExpression) -> Self { + Self { + author: link.author, + timestamp: link.timestamp, + data: friend_send_message::LinkInput { + predicate: link.data.predicate, + source: link.data.source, + target: link.data.target, + }, + proof: friend_send_message::ExpressionProofInput { + key: link.proof.key, + signature: link.proof.signature, + invalid: link.proof.invalid, + valid: link.proof.valid, + }, + status: link.status, + } + } +} + use crate::runtime::friend_send_message; impl From for friend_send_message::PerspectiveInput { @@ -353,7 +353,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: None, }, - status: link.status + status: link.status, } } } @@ -377,7 +377,7 @@ impl From for LinkExpression signature: link.proof.signature, valid: None, }, - status: link.status + status: link.status, } } } From 8ef34d7d0150de57a6232ce4dbc2d83554dffa39 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 12 Jun 2023 12:05:51 +0100 Subject: [PATCH 331/722] remove ipfs core types from ad4m core --- bootstrap-languages/perspective-language/package.json | 1 - core/package.json | 1 - core/src/language/LanguageContext.ts | 2 -- 3 files changed, 4 deletions(-) diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index 2158859ce..6cbc748b7 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -19,7 +19,6 @@ "@rollup/plugin-node-resolve": "^8.0.0", "@rollup/plugin-typescript": "^4.0.0", "@tsconfig/svelte": "^1.0.0", - "ipfs-core-types": "0.10.1", "rollup": "^2.3.4", "rollup-plugin-postcss": "^3.1.8", "rollup-plugin-string": "^3.0.0", diff --git a/core/package.json b/core/package.json index d81888781..2dfaac488 100644 --- a/core/package.json +++ b/core/package.json @@ -51,7 +51,6 @@ "cross-fetch": "^3.1.4", "graphql-ws": "5.12.0", "honkit": "^4.0.0", - "ipfs-core-types": "0.10.1", "jest": "^26.6.0", "rollup": "^2.56.3", "ts-jest": "^26.5.6", diff --git a/core/src/language/LanguageContext.ts b/core/src/language/LanguageContext.ts index c3e767c1d..cdb412087 100644 --- a/core/src/language/LanguageContext.ts +++ b/core/src/language/LanguageContext.ts @@ -1,6 +1,5 @@ import type { AppSignalCb } from '@holochain/client' import { Expression } from "../expression/Expression"; -import type { IPFS } from 'ipfs-core-types' export interface AgentService { readonly did: string @@ -13,7 +12,6 @@ export interface SignaturesService { export interface LanguageContext { agent: AgentService; - IPFS: IPFS; signatures: SignaturesService; storageDirectory: string; customSettings: object; From c09d043b9866bf8b2f0245ebfb3bc65815427fd0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 12 Jun 2023 12:06:09 +0100 Subject: [PATCH 332/722] fix up agent apps changed subscription with rust refactor --- executor/src/core/agent/AgentService.ts | 10 +++++----- rust-executor/src/graphql/graphql_types.rs | 14 ++++++++++++++ .../src/graphql/subscription_resolvers.rs | 19 ++++++++++++++++++- rust-executor/src/pubsub.rs | 1 + 4 files changed, 38 insertions(+), 6 deletions(-) diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 108b0f18f..2336b94b2 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -362,7 +362,7 @@ export default class AgentService { this.#apps = apps; fs.writeFileSync(this.#appsFile, JSON.stringify(apps)); - this.#pubsub.publish(PubSubInstance.APPS_CHANGED, null); + await PUBSUB.publish(PubSubInstance.APPS_CHANGED, null); } return jwt; @@ -372,19 +372,19 @@ export default class AgentService { return this.#apps; } - removeApp(requestId: string) { + async removeApp(requestId: string) { try { this.#apps = this.#apps.filter((app: any) => app.requestId !== requestId); fs.writeFileSync(this.#appsFile, JSON.stringify(this.#apps)); - this.#pubsub.publish(PubSubInstance.APPS_CHANGED, null); + await PUBSUB.publish(PubSubInstance.APPS_CHANGED, null); } catch (e) { console.error("Error while removing app", e); } } - revokeAppToken(requestId: string) { + async revokeAppToken(requestId: string) { try { this.#apps = this.#apps.map((app: any) => app.requestId === requestId ? { ...app, revoked: true } : app @@ -392,7 +392,7 @@ export default class AgentService { fs.writeFileSync(this.#appsFile, JSON.stringify(this.#apps)); - this.#pubsub.publish(PubSubInstance.APPS_CHANGED, null); + await PUBSUB.publish(PubSubInstance.APPS_CHANGED, null); } catch (e) { console.error("Error while revoking token", e); } diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index 6e105229a..9c135db89 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -443,6 +443,20 @@ pub trait GetFilter { fn get_filter(&self) -> Option; } +impl GetValue for Option { + type Value = Option; + + fn get_value(&self) -> Self::Value { + self.clone() + } +} + +impl GetFilter for Option { + fn get_filter(&self) -> Option { + None + } +} + // Implement the trait for the `NeighbourhoodSignalFilter` struct impl GetValue for NeighbourhoodSignalFilter { type Value = PerspectiveExpression; diff --git a/rust-executor/src/graphql/subscription_resolvers.rs b/rust-executor/src/graphql/subscription_resolvers.rs index b9f994acf..7a5459a3f 100644 --- a/rust-executor/src/graphql/subscription_resolvers.rs +++ b/rust-executor/src/graphql/subscription_resolvers.rs @@ -6,7 +6,7 @@ use std::pin::Pin; use crate::pubsub::{ get_global_pubsub, subscribe_and_process, AGENT_STATUS_CHANGED_TOPIC, AGENT_UPDATED_TOPIC, - EXCEPTION_OCCURRED_TOPIC, NEIGHBOURHOOD_SIGNAL_TOPIC, PERSPECTIVE_ADDED_TOPIC, + APPS_CHANGED, EXCEPTION_OCCURRED_TOPIC, NEIGHBOURHOOD_SIGNAL_TOPIC, PERSPECTIVE_ADDED_TOPIC, PERSPECTIVE_LINK_ADDED_TOPIC, PERSPECTIVE_LINK_REMOVED_TOPIC, PERSPECTIVE_LINK_UPDATED_TOPIC, PERSPECTIVE_REMOVED_TOPIC, PERSPECTIVE_SYNC_STATE_CHANGE_TOPIC, PERSPECTIVE_UPDATED_TOPIC, RUNTIME_MESSAGED_RECEIVED_TOPIC, @@ -41,6 +41,23 @@ impl Subscription { subscribe_and_process::(pubsub, topic.to_string(), None).await } + async fn agent_apps_changed( + &self, + context: &RequestContext, + ) -> Pin>> + Send>> { + let capabilities = + get_capabilies(context.js_handle.clone(), context.capability.clone()).await; + if capabilities.is_err() { + return Box::pin(stream::once( + async move { Err(capabilities.err().unwrap()) }, + )); + } + let pubsub = get_global_pubsub().await; + let topic = &APPS_CHANGED; + + subscribe_and_process::>(pubsub, topic.to_string(), None).await + } + async fn agent_updated( &self, context: &RequestContext, diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index bd243ff75..b7c008cfc 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -94,6 +94,7 @@ lazy_static::lazy_static! { static ref GLOBAL_PUB_SUB: Arc = Arc::new(PubSub::new()); pub static ref AGENT_STATUS_CHANGED_TOPIC: String = "agent-status-changed-topic".to_owned(); + pub static ref APPS_CHANGED: String = "apps-changed".to_owned(); pub static ref AGENT_UPDATED_TOPIC: String = "agent-updated-topic".to_owned(); pub static ref EXCEPTION_OCCURRED_TOPIC: String = "exception-occurred-topic".to_owned(); pub static ref NEIGHBOURHOOD_SIGNAL_TOPIC: String = "neighbourhood-signal-received-topic".to_owned(); From 0820a3ce73c15108b70fe273baaf196e726a809f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 13 Jun 2023 15:05:29 +0100 Subject: [PATCH 333/722] fix up perspective updated subscription & link status values --- executor/src/core/PerspectivesController.ts | 2 +- .../src/core/graphQL-interface/GraphQL.ts | 10 ++++- rust-executor/src/graphql/graphql_types.rs | 24 +++++++++++- .../src/graphql/mutation_resolvers.rs | 37 ++++++++++++++++--- 4 files changed, 64 insertions(+), 9 deletions(-) diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index da46270fb..405c0b2ad 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -148,7 +148,7 @@ export default class PerspectivesController { } async replace(perspectiveHandle: PerspectiveHandle, neighbourhood: Neighbourhood, createdFromJoin: boolean, state: PerspectiveState) { - await PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { perspective: perspectiveHandle }) + await PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, perspectiveHandle); this.#perspectiveHandles.set(perspectiveHandle.uuid, perspectiveHandle); this.#perspectiveInstances.get(perspectiveHandle.uuid)?.clearPolling(); this.#perspectiveInstances.set(perspectiveHandle.uuid, new Perspective(perspectiveHandle, this.#context, neighbourhood, createdFromJoin, state)); diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index ed8de0b2c..797c4d8f9 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -822,7 +822,10 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore perspectiveAddLink: async (args, context) => { - const { uuid, link, status } = args + let { uuid, link, status } = args + if (status == null) { + status = 'shared' + }; checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.addLink(link, status) @@ -836,7 +839,10 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore perspectiveAddLinkExpression: async (args, context) => { - const { uuid, link, status } = args + let { uuid, link, status } = args + if (status == null) { + status = 'shared' + }; checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) return await perspective.addLink(link, status) diff --git a/rust-executor/src/graphql/graphql_types.rs b/rust-executor/src/graphql/graphql_types.rs index 9c135db89..a9c92bca9 100644 --- a/rust-executor/src/graphql/graphql_types.rs +++ b/rust-executor/src/graphql/graphql_types.rs @@ -1,4 +1,6 @@ -use juniper::{FieldError, FieldResult, GraphQLInputObject, GraphQLObject, GraphQLScalar}; +use juniper::{ + FieldError, FieldResult, GraphQLEnum, GraphQLInputObject, GraphQLObject, GraphQLScalar, +}; use serde::{de::DeserializeOwned, Deserialize, Serialize}; use crate::js_core::JsCoreHandle; @@ -240,6 +242,24 @@ pub struct Link { pub target: String, } +#[derive(GraphQLEnum, Debug, Deserialize, Serialize, Clone)] +pub enum LinkStatus { + #[serde(rename = "shared")] + Shared, + #[serde(rename = "local")] + Local, +} + +//Impl display for LinkStatus +impl std::fmt::Display for LinkStatus { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + match *self { + LinkStatus::Shared => write!(f, "shared"), + LinkStatus::Local => write!(f, "local"), + } + } +} + #[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct LinkExpression { @@ -247,6 +267,7 @@ pub struct LinkExpression { pub data: Link, pub proof: ExpressionProof, pub timestamp: String, + pub status: Option, } #[derive(GraphQLInputObject, Default, Debug, Deserialize, Serialize, Clone)] @@ -256,6 +277,7 @@ pub struct LinkExpressionInput { pub data: LinkInput, pub proof: ExpressionProofInput, pub timestamp: String, + pub status: Option, } #[derive(GraphQLObject, Default, Debug, Deserialize, Serialize, Clone)] diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index cfe23fd99..2477aac64 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -1,5 +1,5 @@ #![allow(non_snake_case)] -use juniper::{graphql_object, FieldResult}; +use juniper::{graphql_object, graphql_value, FieldResult}; use log::debug; use super::graphql_types::*; @@ -695,20 +695,34 @@ impl Mutation { context: &RequestContext, link: LinkInput, uuid: String, + status: Option, ) -> FieldResult { let capabilities = get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); + let link_json = serde_json::to_string(&link)?; + let status = match status { + Some(status) => { + if status != String::from("shared") && status != String::from("local") { + return Err(juniper::FieldError::new( + "Invalid status, must be either 'shared' or 'local'", + graphql_value!({ "invalid_status": status }), + )); + } + format!(r#""{}""#, status) + } + None => String::from("null"), + }; let script = format!( r#"JSON.stringify( await core.callResolver( "Mutation", "perspectiveAddLink", - {{ link: {}, uuid: "{}" }}, + {{ link: {}, uuid: "{}", status: {} }}, {{ capabilities: {} }} ))"#, - link_json, uuid, capabilities + link_json, uuid, status, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; @@ -720,20 +734,33 @@ impl Mutation { context: &RequestContext, link: LinkExpressionInput, uuid: String, + status: Option, ) -> FieldResult { let capabilities = get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let link_json = serde_json::to_string(&link)?; + let status = match status { + Some(status) => { + if status != String::from("shared") && status != String::from("local") { + return Err(juniper::FieldError::new( + "Invalid status, must be either 'shared' or 'local'", + graphql_value!({ "invalid_status": status }), + )); + } + format!(r#""{}""#, status) + } + None => String::from("null"), + }; let script = format!( r#"JSON.stringify( await core.callResolver( "Mutation", "perspectiveAddLinkExpression", - {{ link: {}, uuid: "{}" }}, + {{ link: {}, uuid: "{}", status: {} }}, {{ capabilities: {} }} ))"#, - link_json, uuid, capabilities + link_json, uuid, status, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; From 0de89fca205c69dc6b0f4b7edfb53dc9ba136145 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 13 Jun 2023 15:05:50 +0100 Subject: [PATCH 334/722] dont log all responses in integration tests --- tests/js/utils/utils.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 90407fa2a..8fa6fd807 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -98,8 +98,6 @@ export function apolloClient(port: number, token?: string): ApolloClient { if (data.payload) { if (data.payload.errors) { console.dir(data.payload.errors, { depth: null }); - } else { - console.dir(data.payload, { depth: null }); } } }); From 654f0947894f2f7054f34f11c87c90df4bde2e17 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 13 Jun 2023 15:06:25 +0100 Subject: [PATCH 335/722] add docs out to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 76a384e76..a12d8a791 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ coverage docs-src/api.md docs-src/typedoc docs-src/_book +docs/out ui/build ui/src-tauri/bins From 4d637a36c606715c8f95b832b7478c8710f33366 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 11:52:27 +0100 Subject: [PATCH 336/722] return utf-8 string for language source data --- bootstrap-languages/language-language/languageAdapter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index d5a0ff18d..b549e9ebd 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -39,6 +39,6 @@ export default class LangAdapter implements LanguageAdapter { const data_uncompressed = pako.inflate(data_stream); const buffer = Buffer.from(data_uncompressed) - return buffer.toString("base64") + return buffer.toString("utf-8") } } From 1d5f05f5cc8159efcd556d647d096bc878cf4a04 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 12:27:28 +0100 Subject: [PATCH 337/722] revert to base64 encoding & use holochain language language & neighbourhood language in integration tests --- bootstrap-languages/language-language/languageAdapter.ts | 2 +- executor/scripts/get-builtin-test-langs.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index b549e9ebd..d5a0ff18d 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -39,6 +39,6 @@ export default class LangAdapter implements LanguageAdapter { const data_uncompressed = pako.inflate(data_stream); const buffer = Buffer.from(data_uncompressed) - return buffer.toString("utf-8") + return buffer.toString("base64") } } diff --git a/executor/scripts/get-builtin-test-langs.js b/executor/scripts/get-builtin-test-langs.js index f3c44265f..e12e38e4f 100644 --- a/executor/scripts/get-builtin-test-langs.js +++ b/executor/scripts/get-builtin-test-langs.js @@ -9,10 +9,10 @@ const languages = { bundle: "https://github.com/perspect3vism/agent-language/releases/download/0.2.1/bundle.js", }, languages: { - bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.5/bundle.js", + bundle: "../bootstrap-languages/language-language/build/bundle.js", }, "neighbourhood-store": { - bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.2/bundle.js", + bundle: "../bootstrap-languages/neighbourhood-language/build/bundle.js", }, "perspective-diff-sync": { bundle: "../bootstrap-languages/p-diff-sync/build/bundle.js", From 91121adb874896067bd03570b37d49118fe56082 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 16:57:40 +0100 Subject: [PATCH 338/722] fix encoding for file storage language data --- bootstrap-languages/language-language/languageAdapter.ts | 2 +- bootstrap-languages/language-language/putAdapter.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index d5a0ff18d..b549e9ebd 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -39,6 +39,6 @@ export default class LangAdapter implements LanguageAdapter { const data_uncompressed = pako.inflate(data_stream); const buffer = Buffer.from(data_uncompressed) - return buffer.toString("base64") + return buffer.toString("utf-8") } } diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index f2d6cba54..c265779c6 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -50,7 +50,7 @@ export class LanguageStoragePutAdapter implements PublicSharing { const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language_storage", fn_name, payload)); - const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString(), "base64")); + const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString())); const data_compressed = pako.deflate(data_uncompressed) const blob = new Blob([data_compressed]) From a0a015014d89ff2081f2f882969ea9068b9851f9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 17:06:45 +0100 Subject: [PATCH 339/722] remove file data input console log --- bootstrap-languages/language-language/putAdapter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index c265779c6..118b08619 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -39,7 +39,7 @@ export class LanguageStoragePutAdapter implements PublicSharing { throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`) } - console.log("createPublic fileData", language) + //console.log("createPublic fileData", language) try { // Just in case... if(typeof language === "string"){ From d882eadc0a18bc4926e99c810ee951147e16c55a Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 17:14:07 +0100 Subject: [PATCH 340/722] add new holochain based mainnet seed --- executor/scripts/get-builtin-test-langs.js | 4 ++-- host/mainnet_seed.json | 13 ++++++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/executor/scripts/get-builtin-test-langs.js b/executor/scripts/get-builtin-test-langs.js index e12e38e4f..f3c44265f 100644 --- a/executor/scripts/get-builtin-test-langs.js +++ b/executor/scripts/get-builtin-test-langs.js @@ -9,10 +9,10 @@ const languages = { bundle: "https://github.com/perspect3vism/agent-language/releases/download/0.2.1/bundle.js", }, languages: { - bundle: "../bootstrap-languages/language-language/build/bundle.js", + bundle: "https://github.com/perspect3vism/local-language-persistence/releases/download/0.0.5/bundle.js", }, "neighbourhood-store": { - bundle: "../bootstrap-languages/neighbourhood-language/build/bundle.js", + bundle: "https://github.com/perspect3vism/local-neighbourhood-persistence/releases/download/0.0.2/bundle.js", }, "perspective-diff-sync": { bundle: "../bootstrap-languages/p-diff-sync/build/bundle.js", diff --git a/host/mainnet_seed.json b/host/mainnet_seed.json index b851c4a80..ccfd5914c 100644 --- a/host/mainnet_seed.json +++ b/host/mainnet_seed.json @@ -1,14 +1,13 @@ { "trustedAgents": [ - "did:key:zQ3shh5eZoXQAbHwUwyypdEd4knEpsaUnLwrjSxjNmHMVPBqQ", "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" ], "knownLinkLanguages": [ - "QmdTbh2uSJj62XFmDzRHTRr65bk6p8aHBQFQ6ZDpQfxFpc" + "QmRa4ZL7pvZ3urGcegaBunJBCaWZA5JcvyGppechN6SDK2" ], - "directMessageLanguage": "QmXR4MZqxqdPmSnCNF24f82EkvahwgXW3FKzGWPZrdC8qb", - "agentLanguage": "QmVYQxroapbRebjjbZnjKSTQBsqvk5sEBCcyiEKyBRXKLo", - "perspectiveLanguage": "QmYRCZkyZJ7axzPcNCizgEqkjXwvC2nu2UR1M31geggx4W", - "neighbourhoodLanguage": "QmNLtgDrjri7DzqDohmQUKJzr5fXVAN95K4VhMr9GhM9ia", - "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar http = require('http');\nvar https = require('https');\nvar url = require('url');\nvar stream = require('stream');\nvar assert = require('assert');\nvar tty = require('tty');\nvar util = require('util');\nvar fs = require('fs');\nvar net = require('net');\nvar zlib = require('zlib');\nvar os = require('os');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar http__default = /*#__PURE__*/_interopDefaultLegacy(http);\nvar https__default = /*#__PURE__*/_interopDefaultLegacy(https);\nvar url__default = /*#__PURE__*/_interopDefaultLegacy(url);\nvar stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);\nvar assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);\nvar tty__default = /*#__PURE__*/_interopDefaultLegacy(tty);\nvar util__default = /*#__PURE__*/_interopDefaultLegacy(util);\nvar fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);\nvar net__default = /*#__PURE__*/_interopDefaultLegacy(net);\nvar zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);\nvar os__default = /*#__PURE__*/_interopDefaultLegacy(os);\n\nvar bind = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer$1(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString$1(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction$1(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction$1(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nvar utils = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer$1,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString$1,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction$1,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nvar buildURL = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nvar InterceptorManager_1 = InterceptorManager;\n\nvar normalizeHeaderName = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nvar enhanceError = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n\nvar transitional = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nvar createError = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nvar settle = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\nvar cookies = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nvar isAbsoluteURL = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nvar combineURLs = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nvar buildFullPath = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\nvar isURLSameOrigin = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nvar Cancel_1 = Cancel;\n\nvar xhr = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional$1 = config.transitional || transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nvar ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\nvar debug$1 = createCommonjsModule(function (module, exports) {\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = ms;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n});\n\nvar browser = createCommonjsModule(function (module, exports) {\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n});\n\nvar node = createCommonjsModule(function (module, exports) {\n/**\n * Module dependencies.\n */\n\n\n\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug$1;\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util__default[\"default\"].deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')();\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty__default[\"default\"].isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util__default[\"default\"].inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util__default[\"default\"].format.apply(util__default[\"default\"], arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty__default[\"default\"].WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = fs__default[\"default\"];\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = net__default[\"default\"];\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n});\n\nvar src = createCommonjsModule(function (module) {\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = browser;\n} else {\n module.exports = node;\n}\n});\n\nvar debug;\n\nvar debug_1 = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = src(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n\nvar URL = url__default[\"default\"].URL;\n\n\nvar Writable = stream__default[\"default\"].Writable;\n\n\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url__default[\"default\"].format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url__default[\"default\"].parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url__default[\"default\"].format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url__default[\"default\"].resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug_1(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url__default[\"default\"].parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = url__default[\"default\"].parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert__default[\"default\"].equal(options.protocol, protocol, \"protocol mismatch\");\n debug_1(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert__default[\"default\"](isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nvar followRedirects = wrap({ http: http__default[\"default\"], https: https__default[\"default\"] });\nvar wrap_1 = wrap;\nfollowRedirects.wrap = wrap_1;\n\nvar data = {\n \"version\": \"0.26.1\"\n};\n\nvar httpFollow = followRedirects.http;\nvar httpsFollow = followRedirects.https;\n\n\nvar VERSION$1 = data.version;\n\n\n\n\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nvar http_1 = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION$1;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(createError('Request body larger than maxBodyLength limit', config));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url__default[\"default\"].parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url__default[\"default\"].parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https__default[\"default\"] : http__default[\"default\"];\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib__default[\"default\"].createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(enhanceError(err, config, err.code, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var timeoutErrorMessage = '';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n } else {\n timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n }\n var transitional$1 = config.transitional || transitional;\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional$1.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new Cancel_1('canceled') : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = xhr;\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = http_1;\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitional,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults_1 = defaults;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nvar transformData = function transformData(data, headers, fns) {\n var context = this || defaults_1;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n\nvar isCancel = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel_1('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nvar dispatchRequest = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults_1.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nvar mergeConfig = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n\nvar VERSION = data.version;\n\nvar validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nvar validator = {\n assertOptions: assertOptions,\n validators: validators$1\n};\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_1(),\n response: new InterceptorManager_1()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nvar Axios_1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel_1(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nvar CancelToken_1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nvar spread = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nvar isAxiosError = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios_1(defaultConfig);\n var instance = bind(Axios_1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios_1.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios$1 = createInstance(defaults_1);\n\n// Expose Axios class to allow class inheritance\naxios$1.Axios = Axios_1;\n\n// Expose Cancel & CancelToken\naxios$1.Cancel = Cancel_1;\naxios$1.CancelToken = CancelToken_1;\naxios$1.isCancel = isCancel;\naxios$1.VERSION = data.version;\n\n// Expose all/spread\naxios$1.all = function all(promises) {\n return Promise.all(promises);\n};\naxios$1.spread = spread;\n\n// Expose isAxiosError\naxios$1.isAxiosError = isAxiosError;\n\nvar axios_1 = axios$1;\n\n// Allow use of default import syntax in TypeScript\nvar _default = axios$1;\naxios_1.default = _default;\n\nvar axios = axios_1;\n\ncreateCommonjsModule(function (module) {\n// Generated by CoffeeScript 2.5.1\n(function() {\n // This file's name is set up in such a way that it will always show up first in\n // the list of files given to coffee --join, so that the other files can assume\n // that XMLHttpRequestEventTarget was already defined.\n\n // The DOM EventTarget subclass used by XMLHttpRequest.\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n var InvalidStateError, NetworkError, ProgressEvent, SecurityError, SyntaxError, XMLHttpRequest, XMLHttpRequestEventTarget, XMLHttpRequestUpload, http, https, os, url;\n\n XMLHttpRequestEventTarget = (function() {\n class XMLHttpRequestEventTarget {\n // @private\n // This is an abstract class and should not be instantiated directly.\n constructor() {\n this.onloadstart = null;\n this.onprogress = null;\n this.onabort = null;\n this.onerror = null;\n this.onload = null;\n this.ontimeout = null;\n this.onloadend = null;\n this._listeners = {};\n }\n\n // Adds a new-style listener for one of the XHR events.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#events\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener function that will be called when\n // the event fires\n // @return {undefined} undefined\n addEventListener(eventType, listener) {\n var base;\n eventType = eventType.toLowerCase();\n (base = this._listeners)[eventType] || (base[eventType] = []);\n this._listeners[eventType].push(listener);\n return void 0;\n }\n\n // Removes an event listener added by calling addEventListener.\n\n // @param {String} eventType an XHR event type, such as 'readystatechange'\n // @param {function(ProgressEvent)} listener the value passed in a previous\n // call to addEventListener.\n // @return {undefined} undefined\n removeEventListener(eventType, listener) {\n var index;\n eventType = eventType.toLowerCase();\n if (this._listeners[eventType]) {\n index = this._listeners[eventType].indexOf(listener);\n if (index !== -1) {\n this._listeners[eventType].splice(index, 1);\n }\n }\n return void 0;\n }\n\n // Calls all the listeners for an event.\n\n // @param {ProgressEvent} event the event to be dispatched\n // @return {undefined} undefined\n dispatchEvent(event) {\n var eventType, j, len, listener, listeners;\n event.currentTarget = event.target = this;\n eventType = event.type;\n if (listeners = this._listeners[eventType]) {\n for (j = 0, len = listeners.length; j < len; j++) {\n listener = listeners[j];\n listener.call(this, event);\n }\n }\n if (listener = this[`on${eventType}`]) {\n listener.call(this, event);\n }\n return void 0;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadstart' event\n XMLHttpRequestEventTarget.prototype.onloadstart = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'progress' event\n XMLHttpRequestEventTarget.prototype.onprogress = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'abort' event\n XMLHttpRequestEventTarget.prototype.onabort = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'error' event\n XMLHttpRequestEventTarget.prototype.onerror = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'load' event\n XMLHttpRequestEventTarget.prototype.onload = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'timeout' event\n XMLHttpRequestEventTarget.prototype.ontimeout = null;\n\n // @property {function(ProgressEvent)} DOM level 0-style handler\n // for the 'loadend' event\n XMLHttpRequestEventTarget.prototype.onloadend = null;\n\n return XMLHttpRequestEventTarget;\n\n }).call(this);\n\n // This file's name is set up in such a way that it will always show up second\n // in the list of files given to coffee --join, so it can use the\n // XMLHttpRequestEventTarget definition and so that the other files can assume\n // that XMLHttpRequest was already defined.\n http = http__default[\"default\"];\n\n https = https__default[\"default\"];\n\n os = os__default[\"default\"];\n\n url = url__default[\"default\"];\n\n XMLHttpRequest = (function() {\n // The ECMAScript HTTP API.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#introduction\n class XMLHttpRequest extends XMLHttpRequestEventTarget {\n // Creates a new request.\n\n // @param {Object} options one or more of the options below\n // @option options {Boolean} anon if true, the request's anonymous flag\n // will be set\n // @see http://www.w3.org/TR/XMLHttpRequest/#constructors\n // @see http://www.w3.org/TR/XMLHttpRequest/#anonymous-flag\n constructor(options) {\n super();\n this.onreadystatechange = null;\n this._anonymous = options && options.anon;\n this.readyState = XMLHttpRequest.UNSENT;\n this.response = null;\n this.responseText = '';\n this.responseType = '';\n this.responseURL = '';\n this.status = 0;\n this.statusText = '';\n this.timeout = 0;\n this.upload = new XMLHttpRequestUpload(this);\n this._method = null; // String\n this._url = null; // Return value of url.parse()\n this._sync = false;\n this._headers = null; // Object\n this._loweredHeaders = null; // Object\n this._mimeOverride = null;\n this._request = null; // http.ClientRequest\n this._response = null; // http.ClientResponse\n this._responseParts = null; // Array\n this._responseHeaders = null; // Object\n this._aborting = null;\n this._error = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n }\n\n // Sets the XHR's method, URL, synchronous flag, and authentication params.\n\n // @param {String} method the HTTP method to be used\n // @param {String} url the URL that the request will be made to\n // @param {?Boolean} async if false, the XHR should be processed\n // synchronously; true by default\n // @param {?String} user the user credential to be used in HTTP basic\n // authentication\n // @param {?String} password the password credential to be used in HTTP basic\n // authentication\n // @return {undefined} undefined\n // @throw {SecurityError} method is not one of the allowed methods\n // @throw {SyntaxError} urlString is not a valid URL\n // @throw {Error} the URL contains an unsupported protocol; the supported\n // protocols are file, http and https\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n open(method, url, async, user, password) {\n var xhrUrl;\n method = method.toUpperCase();\n if (method in this._restrictedMethods) {\n throw new SecurityError(`HTTP method ${method} is not allowed in XHR`);\n }\n xhrUrl = this._parseUrl(url);\n if (async === void 0) {\n async = true;\n }\n switch (this.readyState) {\n case XMLHttpRequest.UNSENT:\n case XMLHttpRequest.OPENED:\n case XMLHttpRequest.DONE:\n break;\n case XMLHttpRequest.HEADERS_RECEIVED:\n case XMLHttpRequest.LOADING:\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n return void 0;\n }\n\n // Appends a header to the list of author request headers.\n\n // @param {String} name the HTTP header name\n // @param {String} value the HTTP header value\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @throw {SyntaxError} name is not a valid HTTP header name or value is not\n // a valid HTTP header value\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n setRequestHeader(name, value) {\n var loweredName;\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec\\-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(`Refused to set unsafe header \\\"${name}\\\"`);\n return void 0;\n }\n value = value.toString();\n if (loweredName in this._loweredHeaders) {\n // Combine value with the existing header value.\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + ', ' + value;\n } else {\n // New header.\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n return void 0;\n }\n\n // Initiates the request.\n\n // @param {?String, ?ArrayBufferView} data the data to be sent; ignored for\n // GET and HEAD requests\n // @return {undefined} undefined\n // @throw {InvalidStateError} readyState is not OPENED\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n send(data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new InvalidStateError(\"XHR readyState must be OPENED\");\n }\n if (this._request) {\n throw new InvalidStateError(\"send() already called\");\n }\n switch (this._url.protocol) {\n case 'file:':\n this._sendFile(data);\n break;\n case 'http:':\n case 'https:':\n this._sendHttp(data);\n break;\n default:\n throw new NetworkError(`Unsupported protocol ${this._url.protocol}`);\n }\n return void 0;\n }\n\n // Cancels the network activity performed by this request.\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-abort()-method\n abort() {\n if (!this._request) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n return void 0;\n }\n\n // Returns a header value in the HTTP response for this XHR.\n\n // @param {String} name case-insensitive HTTP header name\n // @return {?String} value the value of the header whose name matches the\n // given name, or null if there is no such header\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n getResponseHeader(name) {\n var loweredName;\n if (!this._responseHeaders) {\n return null;\n }\n loweredName = name.toLowerCase();\n if (loweredName in this._responseHeaders) {\n return this._responseHeaders[loweredName];\n } else {\n return null;\n }\n }\n\n // Returns all the HTTP headers in this XHR's response.\n\n // @return {String} header lines separated by CR LF, where each header line\n // has the name and value separated by a \": \" (colon, space); the empty\n // string is returned if the headers are not available\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n getAllResponseHeaders() {\n var lines, name, value;\n if (!this._responseHeaders) {\n return '';\n }\n lines = (function() {\n var ref, results;\n ref = this._responseHeaders;\n results = [];\n for (name in ref) {\n value = ref[name];\n results.push(`${name}: ${value}`);\n }\n return results;\n }).call(this);\n return lines.join(\"\\r\\n\");\n }\n\n // Overrides the Content-Type\n\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-overridemimetype()-method\n overrideMimeType(newMimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new InvalidStateError(\"overrideMimeType() not allowed in LOADING or DONE\");\n }\n this._mimeOverride = newMimeType.toLowerCase();\n return void 0;\n }\n\n // Network configuration not exposed in the XHR API.\n\n // Although the XMLHttpRequest specification calls itself \"ECMAScript HTTP\",\n // it assumes that requests are always performed in the context of a browser\n // application, where some network parameters are set by the browser user and\n // should not be modified by Web applications. This API provides access to\n // these network parameters.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the value for the nodejsHttpAgent\n // property (the agent used for HTTP requests)\n // @option options {?https.Agent} httpsAgent the value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n nodejsSet(options) {\n var baseUrl, parsedUrl;\n if ('httpAgent' in options) {\n this.nodejsHttpAgent = options.httpAgent;\n }\n if ('httpsAgent' in options) {\n this.nodejsHttpsAgent = options.httpsAgent;\n }\n if ('baseUrl' in options) {\n baseUrl = options.baseUrl;\n if (baseUrl !== null) {\n parsedUrl = url.parse(baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = baseUrl;\n }\n return void 0;\n }\n\n // Default settings for the network configuration not exposed in the XHR API.\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in\n // browsers. It is a stable node-xhr2 API.\n\n // @param {Object} options one or more of the options below\n // @option options {?http.Agent} httpAgent the default value for the\n // nodejsHttpAgent property (the agent used for HTTP requests)\n // @option options {https.Agent} httpsAgent the default value for the\n // nodejsHttpsAgent property (the agent used for HTTPS requests)\n // @return {undefined} undefined\n // @see XMLHttpRequest.nodejsSet\n static nodejsSet(options) {\n // \"this\" will be set to XMLHttpRequest.prototype, so the instance nodejsSet\n // operates on default property values.\n XMLHttpRequest.prototype.nodejsSet(options);\n return void 0;\n }\n\n // Sets the readyState property and fires the readystatechange event.\n\n // @private\n // @param {Number} newReadyState the new value of readyState\n // @return {undefined} undefined\n _setReadyState(newReadyState) {\n var event;\n this.readyState = newReadyState;\n event = new ProgressEvent('readystatechange');\n this.dispatchEvent(event);\n return void 0;\n }\n\n // XMLHttpRequest#send() implementation for the file: protocol.\n\n // @private\n _sendFile() {\n if (this._url.method !== 'GET') {\n throw new NetworkError('The file protocol only supports GET');\n }\n throw new Error(\"Protocol file: not implemented\");\n }\n\n // XMLHttpRequest#send() implementation for the http: and https: protocols.\n\n // @private\n // This method sets the instance variables and calls _sendHxxpRequest(), which\n // is responsible for building a node.js request and firing it off. The code\n // in _sendHxxpRequest() is separated off so it can be reused when handling\n // redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHttp(data) {\n if (this._sync) {\n throw new Error(\"Synchronous XHR processing not implemented\");\n }\n if ((data != null) && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(`Discarding entity body for ${this._method} requests`);\n data = null;\n } else {\n // Send Content-Length: 0\n data || (data = '');\n }\n // NOTE: this is called before finalizeHeaders so that the uploader can\n // figure out Content-Length and Content-Type.\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return void 0;\n }\n\n // Sets up and fires off a HTTP/HTTPS request using the node.js API.\n\n // @private\n // This method contains the bulk of the XMLHttpRequest#send() implementation,\n // and is also used to issue new HTTP requests when handling HTTP redirects.\n\n // @see http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send()-method\n _sendHxxpRequest() {\n var agent, hxxp, request;\n if (this._url.protocol === 'http:') {\n hxxp = http;\n agent = this.nodejsHttpAgent;\n } else {\n hxxp = https;\n agent = this.nodejsHttpsAgent;\n }\n request = hxxp.request({\n hostname: this._url.hostname,\n port: this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, () => {\n return this._onHttpTimeout(request);\n });\n }\n request.on('response', (response) => {\n return this._onHttpResponse(request, response);\n });\n request.on('error', (error) => {\n return this._onHttpRequestError(request, error);\n });\n this.upload._startUpload(request);\n if (this._request === request) { // An http error might have already fired.\n this._dispatchProgress('loadstart');\n }\n return void 0;\n }\n\n // Fills in the restricted HTTP headers with default values.\n\n // This is called right before the HTTP request is sent off.\n\n // @private\n // @return {undefined} undefined\n _finalizeHeaders() {\n var base;\n this._headers['Connection'] = 'keep-alive';\n this._headers['Host'] = this._url.host;\n if (this._anonymous) {\n this._headers['Referer'] = 'about:blank';\n }\n (base = this._headers)['User-Agent'] || (base['User-Agent'] = this._userAgent);\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n return void 0;\n }\n\n // Called when the headers of an HTTP response have been received.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // produced this response\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // passed to\n _onHttpResponse(request, response) {\n var lengthString;\n if (this._request !== request) {\n return;\n }\n // Transparent redirection handling.\n switch (response.statusCode) {\n case 301:\n case 302:\n case 303:\n case 307:\n case 308:\n this._url = this._parseUrl(response.headers['location']);\n this._method = 'GET';\n if ('content-type' in this._loweredHeaders) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n // XMLHttpRequestUpload#_finalizeHeaders() sets Content-Type directly.\n if ('Content-Type' in this._headers) {\n delete this._headers['Content-Type'];\n }\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', (data) => {\n return this._onHttpResponseData(response, data);\n });\n this._response.on('end', () => {\n return this._onHttpResponseEnd(response);\n });\n this._response.on('close', () => {\n return this._onHttpResponseClose(response);\n });\n this.responseURL = this._url.href.split('#')[0];\n this.status = this._response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n if (lengthString = this._responseHeaders['content-length']) {\n this._totalBytes = parseInt(lengthString);\n this._lengthComputable = true;\n } else {\n this._lengthComputable = false;\n }\n return this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n }\n\n // Called when some data has been received on a HTTP connection.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n // @param {String, Buffer} data the data that has been received\n _onHttpResponseData(response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(data);\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n return this._dispatchProgress('progress');\n }\n\n // Called when the HTTP request finished processing.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseEnd(response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the underlying HTTP connection was closed prematurely.\n\n // If this method is called, it will be called after or instead of\n // onHttpResponseEnd.\n\n // @private\n // @param {http.ClientResponse} response the node.js ClientResponse instance\n // that fired this event\n _onHttpResponseClose(response) {\n var request;\n if (this._response !== response) {\n return;\n }\n request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Called when the timeout set on the HTTP socket expires.\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n _onHttpTimeout(request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n return this._dispatchProgress('loadend');\n }\n\n // Called when something wrong happens on the HTTP socket\n\n // @private\n // @param {http.ClientRequest} request the node.js ClientRequest instance that\n // fired this event\n // @param {Error} error emitted exception\n _onHttpRequestError(request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n return this._dispatchProgress('loadend');\n }\n\n // Fires an XHR progress event.\n\n // @private\n // @param {String} eventType one of the XHR progress event types, such as\n // 'load' and 'progress'\n _dispatchProgress(eventType) {\n var event;\n event = new ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n return void 0;\n }\n\n // Sets up the XHR to reflect the fact that an error has occurred.\n\n // The possible errors are a network error, a timeout, or an abort.\n\n // @private\n _setError() {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n return void 0;\n }\n\n // Parses a request URL string.\n\n // @private\n // This method is a thin wrapper around url.parse() that normalizes HTTP\n // user/password credentials. It is used to parse the URL string passed to\n // XMLHttpRequest#open() and the URLs in the Location headers of HTTP redirect\n // responses.\n\n // @param {String} urlString the URL to be parsed\n // @return {Object} parsed URL\n _parseUrl(urlString) {\n var absoluteUrlString, index, password, user, xhrUrl;\n if (this.nodejsBaseUrl === null) {\n absoluteUrlString = urlString;\n } else {\n absoluteUrlString = url.resolve(this.nodejsBaseUrl, urlString);\n }\n xhrUrl = url.parse(absoluteUrlString, false, true);\n xhrUrl.hash = null;\n if (xhrUrl.auth && ((typeof user !== \"undefined\" && user !== null) || (typeof password !== \"undefined\" && password !== null))) {\n index = xhrUrl.auth.indexOf(':');\n if (index === -1) {\n if (!user) {\n user = xhrUrl.auth;\n }\n } else {\n if (!user) {\n user = xhrUrl.substring(0, index);\n }\n if (!password) {\n password = xhrUrl.substring(index + 1);\n }\n }\n }\n if (user || password) {\n xhrUrl.auth = `${user}:${password}`;\n }\n return xhrUrl;\n }\n\n // Reads the headers from a node.js ClientResponse instance.\n\n // @private\n // @param {http.ClientResponse} response the response whose headers will be\n // imported into this XMLHttpRequest's state\n // @return {undefined} undefined\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method\n _parseResponseHeaders(response) {\n var loweredName, name, ref, value;\n this._responseHeaders = {};\n ref = response.headers;\n for (name in ref) {\n value = ref[name];\n loweredName = name.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n if (this._mimeOverride !== null && loweredName === 'content-type') {\n value = this._mimeOverride;\n }\n this._responseHeaders[loweredName] = value;\n }\n if (this._mimeOverride !== null && !('content-type' in this._responseHeaders)) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n return void 0;\n }\n\n // Sets the response and responseText properties when an XHR completes.\n\n // @private\n // @return {undefined} undefined\n _parseResponse() {\n var arrayBuffer, buffer, i, j, ref, view;\n if (Buffer.concat) {\n buffer = Buffer.concat(this._responseParts);\n } else {\n // node 0.6\n buffer = this._concatBuffers(this._responseParts);\n }\n this._responseParts = null;\n switch (this.responseType) {\n case 'text':\n this._parseTextResponse(buffer);\n break;\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n } catch (error1) {\n this.response = null;\n }\n break;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n break;\n case 'arraybuffer':\n this.responseText = null;\n arrayBuffer = new ArrayBuffer(buffer.length);\n view = new Uint8Array(arrayBuffer);\n for (i = j = 0, ref = buffer.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n break;\n default:\n // TODO(pwnall): content-base detection\n this._parseTextResponse(buffer);\n }\n return void 0;\n }\n\n // Sets response and responseText for a 'text' response type.\n\n // @private\n // @param {Buffer} buffer the node.js Buffer containing the binary response\n // @return {undefined} undefined\n _parseTextResponse(buffer) {\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n } catch (error1) {\n // Unknown encoding.\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n return void 0;\n }\n\n // Figures out the string encoding of the XHR's response.\n\n // This is called to determine the encoding when responseText is set.\n\n // @private\n // @return {String} a string encoding, e.g. 'utf-8'\n _parseResponseEncoding() {\n var contentType, match;\n if (contentType = this._responseHeaders['content-type']) {\n if (match = /\\;\\s*charset\\=(.*)$/.exec(contentType)) {\n return match[1];\n }\n }\n return 'utf-8';\n }\n\n // Buffer.concat implementation for node 0.6.\n\n // @private\n // @param {Array} buffers the buffers whose contents will be merged\n // @return {Buffer} same as Buffer.concat(buffers) in node 0.8 and above\n _concatBuffers(buffers) {\n var buffer, j, k, len, len1, length, target;\n if (buffers.length === 0) {\n return Buffer.alloc(0);\n }\n if (buffers.length === 1) {\n return buffers[0];\n }\n length = 0;\n for (j = 0, len = buffers.length; j < len; j++) {\n buffer = buffers[j];\n length += buffer.length;\n }\n target = Buffer.alloc(length);\n length = 0;\n for (k = 0, len1 = buffers.length; k < len1; k++) {\n buffer = buffers[k];\n buffer.copy(target, length);\n length += buffer.length;\n }\n return target;\n }\n\n }\n // @property {function(ProgressEvent)} DOM level 0-style handler for the\n // 'readystatechange' event\n XMLHttpRequest.prototype.onreadystatechange = null;\n\n // @property {Number} the current state of the XHR object\n // @see http://www.w3.org/TR/XMLHttpRequest/#states\n XMLHttpRequest.prototype.readyState = null;\n\n // @property {String, ArrayBuffer, Buffer, Object} processed XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-response-attribute\n XMLHttpRequest.prototype.response = null;\n\n // @property {String} response string, if responseType is '' or 'text'\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute\n XMLHttpRequest.prototype.responseText = null;\n\n // @property {String} sets the parsing method for the XHR response\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-responsetype-attribute\n XMLHttpRequest.prototype.responseType = null;\n\n // @property {Number} the HTTP\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute\n XMLHttpRequest.prototype.status = null;\n\n // @property {Number} milliseconds to wait for the request to complete\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute\n XMLHttpRequest.prototype.timeout = null;\n\n // @property {XMLHttpRequestUpload} the associated upload information\n // @see http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute\n XMLHttpRequest.prototype.upload = null;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.prototype.UNSENT = 0;\n\n // readyState value before XMLHttpRequest#open() is called\n XMLHttpRequest.UNSENT = 0;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.prototype.OPENED = 1;\n\n // readyState value after XMLHttpRequest#open() is called, and before\n // XMLHttpRequest#send() is called; XMLHttpRequest#setRequestHeader() can be\n // called in this state\n XMLHttpRequest.OPENED = 1;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.prototype.HEADERS_RECEIVED = 2;\n\n // readyState value after redirects have been followed and the HTTP headers of\n // the final response have been received\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.prototype.LOADING = 3;\n\n // readyState value when the response entity body is being received\n XMLHttpRequest.LOADING = 3;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.prototype.DONE = 4;\n\n // readyState value after the request has been completely processed\n XMLHttpRequest.DONE = 4;\n\n // @property {http.Agent} the agent option passed to HTTP requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\n\n // @property {https.Agent} the agent option passed to HTTPS requests\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // It is a stable node-xhr2 API that is useful for testing & going through\n // web-proxies.\n XMLHttpRequest.prototype.nodejsHttpsAgent = https.globalAgent;\n\n // @property {String} the base URL that relative URLs get resolved to\n\n // NOTE: this is not in the XMLHttpRequest API, and will not work in browsers.\n // Its browser equivalent is the base URL of the document associated with the\n // Window object. It is a stable node-xhr2 API provided for libraries such as\n // Angular Universal.\n XMLHttpRequest.prototype.nodejsBaseUrl = null;\n\n // HTTP methods that are disallowed in the XHR spec.\n\n // @private\n // @see Step 6 in http://www.w3.org/TR/XMLHttpRequest/#the-open()-method\n XMLHttpRequest.prototype._restrictedMethods = {\n CONNECT: true,\n TRACE: true,\n TRACK: true\n };\n\n // HTTP request headers that are disallowed in the XHR spec.\n\n // @private\n // @see Step 5 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method\n XMLHttpRequest.prototype._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true\n };\n\n // HTTP response headers that should not be exposed according to the XHR spec.\n\n // @private\n // @see Step 3 in\n // http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method\n XMLHttpRequest.prototype._privateHeaders = {\n 'set-cookie': true,\n 'set-cookie2': true\n };\n\n // The default value of the User-Agent header.\n XMLHttpRequest.prototype._userAgent = `Mozilla/5.0 (${os.type()} ${os.arch()}) ` + `node.js/${process.versions.node} v8/${process.versions.v8}`;\n\n return XMLHttpRequest;\n\n }).call(this);\n\n // XMLHttpRequest is the result of require('node-xhr2').\n module.exports = XMLHttpRequest;\n\n // Make node-xhr2 work as a drop-in replacement for libraries that promote the\n // following usage pattern:\n // var XMLHttpRequest = require('xhr-library-name').XMLHttpRequest\n XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;\n\n // This file defines the custom errors used in the XMLHttpRequest specification.\n\n // Thrown if the XHR security policy is violated.\n SecurityError = class SecurityError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if the XHR security policy is violated.\n XMLHttpRequest.SecurityError = SecurityError;\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Usually thrown if the XHR is in the wrong readyState for an operation.\n InvalidStateError = class InvalidStateError extends Error {};\n\n XMLHttpRequest.InvalidStateError = InvalidStateError;\n\n // Thrown if there is a problem with the URL passed to the XHR.\n NetworkError = class NetworkError extends Error {\n // @private\n constructor() {\n super();\n }\n\n };\n\n // Thrown if parsing URLs errors out.\n XMLHttpRequest.SyntaxError = SyntaxError;\n\n SyntaxError = class SyntaxError extends Error {\n // @private:\n constructor() {\n super();\n }\n\n };\n\n ProgressEvent = (function() {\n // http://xhr.spec.whatwg.org/#interface-progressevent\n class ProgressEvent {\n // Creates a new event.\n\n // @param {String} type the event type, e.g. 'readystatechange'; must be\n // lowercased\n constructor(type) {\n this.type = type;\n this.target = null;\n this.currentTarget = null;\n this.lengthComputable = false;\n this.loaded = 0;\n this.total = 0;\n }\n\n }\n // Getting the time from the OS is expensive, skip on that for now.\n // @timeStamp = Date.now()\n\n // @property {Boolean} for compatibility with DOM events\n ProgressEvent.prototype.bubbles = false;\n\n // @property {Boolean} for fompatibility with DOM events\n ProgressEvent.prototype.cancelable = false;\n\n // @property {XMLHttpRequest} the request that caused this event\n ProgressEvent.prototype.target = null;\n\n // @property {Number} number of bytes that have already been downloaded or\n // uploaded\n ProgressEvent.prototype.loaded = null;\n\n // @property {Boolean} true if the Content-Length response header is available\n // and the value of the event's total property is meaningful\n ProgressEvent.prototype.lengthComputable = null;\n\n // @property {Number} number of bytes that will be downloaded or uploaded by\n // the request that fired the event\n ProgressEvent.prototype.total = null;\n\n return ProgressEvent;\n\n }).call(this);\n\n // The XHR spec exports the ProgressEvent constructor.\n XMLHttpRequest.ProgressEvent = ProgressEvent;\n\n // @see http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n XMLHttpRequestUpload = class XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n // @private\n // @param {XMLHttpRequest} the XMLHttpRequest that this upload object is\n // associated with\n constructor(request) {\n super();\n this._request = request;\n this._reset();\n }\n\n // Sets up this Upload to handle a new request.\n\n // @private\n // @return {undefined} undefined\n _reset() {\n this._contentType = null;\n this._body = null;\n return void 0;\n }\n\n // Implements the upload-related part of the send() XHR specification.\n\n // @private\n // @param {?String, ?Buffer, ?ArrayBufferView} data the argument passed to\n // XMLHttpRequest#send()\n // @return {undefined} undefined\n // @see step 4 of http://www.w3.org/TR/XMLHttpRequest/#the-send()-method\n _setData(data) {\n var body, i, j, k, offset, ref, ref1, view;\n if (typeof data === 'undefined' || data === null) {\n return;\n }\n if (typeof data === 'string') {\n // DOMString\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = Buffer.from(data, 'utf8');\n } else if (Buffer.isBuffer(data)) {\n // node.js Buffer\n this._body = data;\n } else if (data instanceof ArrayBuffer) {\n // ArrayBuffer arguments were supported in an old revision of the spec.\n body = Buffer.alloc(data.byteLength);\n view = new Uint8Array(data);\n for (i = j = 0, ref = data.byteLength; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {\n body[i] = view[i];\n }\n this._body = body;\n } else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n // ArrayBufferView\n body = Buffer.alloc(data.byteLength);\n offset = data.byteOffset;\n view = new Uint8Array(data.buffer);\n for (i = k = 0, ref1 = data.byteLength; (0 <= ref1 ? k < ref1 : k > ref1); i = 0 <= ref1 ? ++k : --k) {\n body[i] = view[i + offset];\n }\n this._body = body;\n } else {\n // NOTE: diverging from the XHR specification of coercing everything else\n // to Strings via toString() because that behavior masks bugs and is\n // rarely useful\n throw new Error(`Unsupported send() data ${data}`);\n }\n return void 0;\n }\n\n // Updates the HTTP headers right before the request is sent.\n\n // This is used to set data-dependent headers such as Content-Length and\n // Content-Type.\n\n // @private\n // @param {Object} headers the HTTP headers to be sent\n // @param {Object} loweredHeaders maps lowercased HTTP header\n // names (e.g., 'content-type') to the actual names used in the headers\n // parameter (e.g., 'Content-Type')\n // @return {undefined} undefined\n _finalizeHeaders(headers, loweredHeaders) {\n if (this._contentType) {\n if (!('content-type' in loweredHeaders)) {\n headers['Content-Type'] = this._contentType;\n }\n }\n if (this._body) {\n // Restricted headers can't be set by the user, no need to check\n // loweredHeaders.\n headers['Content-Length'] = this._body.length.toString();\n }\n return void 0;\n }\n\n // Starts sending the HTTP request data.\n\n // @private\n // @param {http.ClientRequest} request the HTTP request\n // @return {undefined} undefined\n _startUpload(request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n return void 0;\n }\n\n };\n\n // Export the XMLHttpRequestUpload constructor.\n XMLHttpRequest.XMLHttpRequestUpload = XMLHttpRequestUpload;\n\n}).call(commonjsGlobal);\n});\n\nclass LangAdapter {\n constructor(context) {\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw (e);\n }\n let languageSource;\n try {\n const getLanguageSource = await axios.get(presignedUrl);\n languageSource = getLanguageSource.data;\n }\n catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw (e);\n }\n return languageSource;\n }\n}\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CloudflarePutAdapter_agent, _CloudflarePutAdapter_IPFS;\nclass CloudflarePutAdapter {\n constructor(context) {\n _CloudflarePutAdapter_agent.set(this, void 0);\n _CloudflarePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet(this, _CloudflarePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet(this, _CloudflarePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet(this, _CloudflarePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = __classPrivateFieldGet(this, _CloudflarePutAdapter_agent, \"f\");\n const expression = agent.createSignedExpression(language.meta);\n //Build the key value object for the meta object\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n // Content of the new object.\n value: JSON.stringify(expression),\n };\n //Save the meta information to the KV store\n const httpsAgent = new https__default[\"default\"].Agent({\n rejectUnauthorized: false\n });\n try {\n const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent });\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n //Build the key value object for the language bundle\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString(),\n };\n //Save the language bundle to the KV store\n const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent });\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n }\n catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n}\n_CloudflarePutAdapter_agent = new WeakMap(), _CloudflarePutAdapter_IPFS = new WeakMap();\n\nclass Adapter {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axios.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axios.get(presignedUrl);\n metaObject = getMetaObject.data;\n }\n catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\n\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports.PROXY_URL = PROXY_URL;\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" + "directMessageLanguage": "QmebvujeCRLZmfLg1rkGhMutkTbjoDqRwPuUAr5RFHeawi", + "agentLanguage": "QmX6yVfRE9psY6CpNw5ZnE8RpxRmPt8EsuVZEqJfFWMoVo", + "perspectiveLanguage": "QmadTnggAzpp8KzimY7utATvoUgnzR4eypmJEEWmxcCQZK", + "neighbourhoodLanguage": "Qmb7uqnNQduKuSewvpyMxxtCDFjPYtYbfjwbZbrFrrG6tw", + "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar buffer = require('buffer');\n\n/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) ||\n flush === Z_NO_FLUSH$2 ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH$3 && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$2;\n }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\n/* ========================================================================= */\nconst deflate$2 = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 16209; /* got a data error -- remain here until reset */\nconst TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS$1) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nvar dna = \"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\";\n\nconst DNA = Buffer.from(dna, \"base64\");\nconst DNA_NICK = \"language-language\";\n\nvar __classPrivateFieldSet$3 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$3 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStorage_zomeCall;\nclass LanguageStorage {\n constructor(zomeCall) {\n _LanguageStorage_zomeCall.set(this, void 0);\n __classPrivateFieldSet$3(this, _LanguageStorage_zomeCall, zomeCall, \"f\");\n }\n async upload(file, onProgress = undefined, chunkSize = 256 * 1024) {\n console.log(\"splitting file...\");\n const blobs = this.splitBlob(file, chunkSize);\n console.log(\"done\");\n const numberOfChunks = blobs.length;\n const bytesPerChunk = blobs[0].size;\n const chunksHashes = [];\n for (let i = 0; i < blobs.length; i++) {\n console.log(\"creating chunk\", i);\n const chunkHash = await this.createChunk(blobs[i]);\n console.log(\"done\");\n chunksHashes.push(chunkHash);\n if (onProgress) {\n onProgress(((i + 1) * 1.0) / numberOfChunks, bytesPerChunk * (i + 1));\n }\n }\n return chunksHashes;\n }\n async download(chunksHashes) {\n const chunks = [];\n for (const chunkHash of chunksHashes) {\n let chunk = await this.fetchChunk(chunkHash);\n chunks.push(chunk);\n }\n return this.mergeChunks(chunks);\n }\n async storeLanguageExpression(fileExpression) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_language_expression\", fileExpression);\n }\n async getLanguageExpression(fileHash) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_expression\", fileHash);\n }\n async fetchChunk(fileChunkHash) {\n let bytes = null;\n let tries = 0;\n while (bytes === null && tries < 10) {\n tries++;\n bytes = await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_chunk\", fileChunkHash);\n if (bytes === null) {\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n if (bytes === null) {\n throw new Error(\"Could not fetch chunk. Giving up after 10 attempts.\");\n }\n // @ts-ignore\n return new buffer.Blob([new Uint8Array(bytes)]);\n }\n splitBlob(file, chunkSize) {\n let offset = 0;\n const chunks = [];\n while (file.size > offset) {\n const chunk = file.slice(offset, offset + chunkSize);\n offset += chunkSize;\n chunks.push(chunk);\n }\n return chunks;\n }\n mergeChunks(chunks) {\n const merged = new buffer.Blob(chunks);\n return merged;\n }\n async createChunk(chunk) {\n const bytes = await chunk.arrayBuffer();\n // @ts-ignore\n return __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_chunk\", new Uint8Array(bytes));\n }\n}\n_LanguageStorage_zomeCall = new WeakMap();\n\nvar __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStoragePutAdapter_agent, _LanguageStoragePutAdapter_DNA, _LanguageStoragePutAdapter_IPFS;\nclass LanguageStoragePutAdapter {\n constructor(context) {\n _LanguageStoragePutAdapter_agent.set(this, void 0);\n _LanguageStoragePutAdapter_DNA.set(this, void 0);\n _LanguageStoragePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_DNA, context.Holochain, \"f\");\n // @ts-ignore\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address) {\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n }\n //console.log(\"createPublic fileData\", language)\n try {\n // Just in case...\n if (typeof language === \"string\") {\n //@ts-ignore\n fileData = JSON.parse(fileData);\n }\n }\n catch (e) { }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString()));\n const data_compressed = pako.deflate(data_uncompressed);\n const blob = new buffer.Blob([data_compressed]);\n const hashes = await storage.upload(blob);\n const fileMetadata = {\n name: language.meta.name,\n description: language.meta.description,\n address: language.meta.address,\n checksum: \"1234\",\n chunks_hashes: hashes,\n size: data_uncompressed.length,\n };\n //Create the signed expression object\n const expression = __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_agent, \"f\").createSignedExpression(fileMetadata);\n //Remove the data_base64 from the expression, since this is already stored above\n delete expression.data.data_base64;\n //Store the FileMetadataExpression\n await storage.storeLanguageExpression(expression);\n //@ts-ignore\n return hash;\n }\n}\n_LanguageStoragePutAdapter_agent = new WeakMap(), _LanguageStoragePutAdapter_DNA = new WeakMap(), _LanguageStoragePutAdapter_IPFS = new WeakMap();\n\nvar __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LangAdapter_DNA;\nclass LangAdapter {\n constructor(context) {\n _LangAdapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet$1(this, _LangAdapter_DNA, context.Holochain, \"f\");\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$1(this, _LangAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n const data_compressed = await storage.download(expression.data.chunks_hashes);\n let data_stream = await data_compressed.arrayBuffer();\n const data_uncompressed = pako.inflate(data_stream);\n const buffer = Buffer.from(data_uncompressed);\n return buffer.toString(\"utf-8\");\n }\n}\n_LangAdapter_DNA = new WeakMap();\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Adapter_DNA;\nclass Adapter {\n constructor(context) {\n _Adapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet(this, _Adapter_DNA, context.Holochain, \"f\");\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet(this, _Adapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n return null;\n }\n return expression;\n }\n}\n_Adapter_DNA = new WeakMap();\n\nconst name = \"languages\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const Holochain = context.Holochain;\n // @ts-ignore\n await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]);\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" } \ No newline at end of file From 7f51cfd3edaa22619a49a89ee50358fe966f9d90 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 17:35:05 +0100 Subject: [PATCH 341/722] bump version to pre-release --- cli/Cargo.toml | 4 ++-- connect/package.json | 4 ++-- core/package.json | 4 ++-- executor/package.json | 2 +- executor/src/core/Config.ts | 2 +- host/package.json | 2 +- package.json | 4 ++-- rust-client/Cargo.toml | 2 +- ui/package.json | 2 +- ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/tauri.conf.json | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 920ecf812..959acf32e 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.3.4" +version = "0.3.5.prerelease" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,7 +12,7 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.3.4" } +ad4m-client = { path = "../rust-client", version = "0.3.5.prerelease" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" diff --git a/connect/package.json b/connect/package.json index 9e39a0705..bee0517ae 100644 --- a/connect/package.json +++ b/connect/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-connect", - "version": "0.3.4", + "version": "0.3.5.prerelease", "description": "Lib for handling everything needed to setup a connection to a local or remote ad4m-executor", "license": "CAL-1.0", "main": "dist/web.js", @@ -64,4 +64,4 @@ "electron": "^20.0.3", "lit": "^2.3.1" } -} \ No newline at end of file +} diff --git a/core/package.json b/core/package.json index d81888781..7e0faf99e 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m", - "version": "0.3.4", + "version": "0.3.5.prerelease", "description": "*The Agent-Centric Distributed Application Meta-ontology* or just: *Agent-Centric DApp Meta-ontology* * A new meta-ontology for interoperable, decentralized application design * A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends * The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network", "main": "lib/index.cjs", "module": "lib/index.js", @@ -58,4 +58,4 @@ "typescript": "^4.6.2", "ws": "8.13.0" } -} \ No newline at end of file +} diff --git a/executor/package.json b/executor/package.json index 9afef94a2..e89a3ae55 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.3.4", + "version": "0.3.5.prerelease", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "main": "lib/main.js", "files": [ diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index 960e2385f..3e3acfd0d 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import * as fs from 'fs'; import { Address, Expression } from '@perspect3vism/ad4m'; -export let ad4mExecutorVersion = "0.3.4"; +export let ad4mExecutorVersion = "0.3.5.prerelease"; export let agentLanguageAlias = "did"; export let languageLanguageAlias = "lang"; export let neighbourhoodLanguageAlias = "neighbourhood"; diff --git a/host/package.json b/host/package.json index eb7afd9a1..4a210a22b 100644 --- a/host/package.json +++ b/host/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-host", - "version": "0.3.4", + "version": "0.3.5.prerelease", "description": "Self hosting ad4m service", "private": true, "bin": { diff --git a/package.json b/package.json index 8f20990a2..ea4992a5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-monorepo", - "version": "0.3.4", + "version": "0.3.5.prerelease", "workspaces": [ "core", "docs", @@ -51,4 +51,4 @@ "node": ">=16.0.0" }, "packageManager": "yarn@1.22.19" -} \ No newline at end of file +} diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index eae6bd055..077f58e84 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.3.4" +version = "0.3.5.prerelease" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" diff --git a/ui/package.json b/ui/package.json index f7ead7130..c01963a2d 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-launcher", - "version": "0.3.4", + "version": "0.3.5", "private": true, "type": "module", "dependencies": { diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index ae60f8fd4..2992c31a7 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-launcher" -version = "0.3.4" +version = "0.3.5" description = "Administration of ad4m services" authors = ["Kaichao Sun"] license = "" diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index 3dcaf0dcc..ef80f49ef 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "package": { "productName": "AD4M", - "version": "0.3.4" + "version": "0.3.5" }, "build": { "distDir": "../dist", From 32144b33674a704c92440d83f581df34bc37bcb0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 17:57:29 +0100 Subject: [PATCH 342/722] use -prerelease instead of .prerelease --- connect/package.json | 2 +- core/package.json | 2 +- executor/package.json | 2 +- executor/src/core/Config.ts | 2 +- host/package.json | 2 +- package.json | 2 +- ui/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/connect/package.json b/connect/package.json index bee0517ae..faafc1a56 100644 --- a/connect/package.json +++ b/connect/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-connect", - "version": "0.3.5.prerelease", + "version": "0.3.5-prerelease", "description": "Lib for handling everything needed to setup a connection to a local or remote ad4m-executor", "license": "CAL-1.0", "main": "dist/web.js", diff --git a/core/package.json b/core/package.json index 7e0faf99e..534c47295 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m", - "version": "0.3.5.prerelease", + "version": "0.3.5-prerelease", "description": "*The Agent-Centric Distributed Application Meta-ontology* or just: *Agent-Centric DApp Meta-ontology* * A new meta-ontology for interoperable, decentralized application design * A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends * The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network", "main": "lib/index.cjs", "module": "lib/index.js", diff --git a/executor/package.json b/executor/package.json index e89a3ae55..fc750941d 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.3.5.prerelease", + "version": "0.3.5-prerelease", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "main": "lib/main.js", "files": [ diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index 3e3acfd0d..0904ee77a 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import * as fs from 'fs'; import { Address, Expression } from '@perspect3vism/ad4m'; -export let ad4mExecutorVersion = "0.3.5.prerelease"; +export let ad4mExecutorVersion = "0.3.5-prerelease"; export let agentLanguageAlias = "did"; export let languageLanguageAlias = "lang"; export let neighbourhoodLanguageAlias = "neighbourhood"; diff --git a/host/package.json b/host/package.json index 4a210a22b..a02918034 100644 --- a/host/package.json +++ b/host/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-host", - "version": "0.3.5.prerelease", + "version": "0.3.5-prerelease", "description": "Self hosting ad4m service", "private": true, "bin": { diff --git a/package.json b/package.json index ea4992a5e..8065af0d3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-monorepo", - "version": "0.3.5.prerelease", + "version": "0.3.5-prerelease", "workspaces": [ "core", "docs", diff --git a/ui/package.json b/ui/package.json index c01963a2d..488ab58ee 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-launcher", - "version": "0.3.5", + "version": "0.3.5-prerelease", "private": true, "type": "module", "dependencies": { From 4e57dddda70813e8f70dc6e3e6b40e3d868ac3af Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 18:06:51 +0100 Subject: [PATCH 343/722] fix version and remove lib publishing --- .github/workflows/publish_staging.yml | 125 +++++++++++++------------- cli/Cargo.toml | 4 +- 2 files changed, 64 insertions(+), 65 deletions(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 31d6dd33b..2a8933ece 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -173,66 +173,65 @@ jobs: # releaseBody: "See the assets to download this version and install." # projectPath: "./ui" - npm-publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # Setup .npmrc file to publish to npm - - name: Use Node.js 16.x - uses: actions/setup-node@v1 - with: - node-version: 16.x - - name: Install deps - run: yarn install - - name: Build modules - run: yarn run build-libs - - name: Publish core - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - package: core/package.json - - name: Publish connect - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - package: connect/package.json - - name: Publish executor - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - package: executor/package.json - - name: Publish Test runner - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - package: test-runner/package.json - - - crates-publish: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - - uses: actions/setup-node@v3 - with: - node-version: '16.x' - cache: 'yarn' - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - key: ${{ runner.os }}-cargo - restore-keys: ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - run: cd core && yarn install && yarn build && cd .. - - run: cargo install cargo-workspaces || echo "cargo-workspaces already installed" - - run: cargo login ${{ secrets.CARGO_REGISTRY_TOKEN }} - - run: cargo workspaces publish --from-git + # npm-publish: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # # Setup .npmrc file to publish to npm + # - name: Use Node.js 16.x + # uses: actions/setup-node@v1 + # with: + # node-version: 16.x + # - name: Install deps + # run: yarn install + # - name: Build modules + # run: yarn run build-libs + # - name: Publish core + # uses: JS-DevTools/npm-publish@v1 + # with: + # token: ${{ secrets.NPM_TOKEN }} + # package: core/package.json + # - name: Publish connect + # uses: JS-DevTools/npm-publish@v1 + # with: + # token: ${{ secrets.NPM_TOKEN }} + # package: connect/package.json + # - name: Publish executor + # uses: JS-DevTools/npm-publish@v1 + # with: + # token: ${{ secrets.NPM_TOKEN }} + # package: executor/package.json + # - name: Publish Test runner + # uses: JS-DevTools/npm-publish@v1 + # with: + # token: ${{ secrets.NPM_TOKEN }} + # package: test-runner/package.json + + # crates-publish: + # runs-on: ubuntu-20.04 + # steps: + # - uses: actions/checkout@v2 + # - uses: actions-rs/toolchain@v1 + # with: + # toolchain: stable + # override: true + # - uses: actions/setup-node@v3 + # with: + # node-version: '16.x' + # cache: 'yarn' + # - name: Cache cargo + # id: cache-cargo + # uses: actions/cache@v3 + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # key: ${{ runner.os }}-cargo + # restore-keys: ${{ runner.os }}-cargo + # - run: rustup target add wasm32-unknown-unknown + # - run: cd core && yarn install && yarn build && cd .. + # - run: cargo install cargo-workspaces || echo "cargo-workspaces already installed" + # - run: cargo login ${{ secrets.CARGO_REGISTRY_TOKEN }} + # - run: cargo workspaces publish --from-git diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 959acf32e..bd19c0f01 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.3.5.prerelease" +version = "0.3.5" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,7 +12,7 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.3.5.prerelease" } +ad4m-client = { path = "../rust-client", version = "0.3.5" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" From 88c88f59fc453894312f55089f6d7daf544b2004 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 18:08:03 +0100 Subject: [PATCH 344/722] fix workflow --- .github/workflows/publish_staging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 2a8933ece..35b923273 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -41,7 +41,7 @@ jobs: needs: - create-release - - npm-publish + # - npm-publish runs-on: ${{ matrix.platform }} From 61973773a791dd2b501271883b0df2d89574485a Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 18:09:38 +0100 Subject: [PATCH 345/722] retrigger --- .github/workflows/publish_staging.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 35b923273..70c40f360 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -44,7 +44,6 @@ jobs: # - npm-publish runs-on: ${{ matrix.platform }} - steps: - name: Fetch source code uses: actions/checkout@v2 From 3b70df8b6ad295362edab3f3350a020fa6bec814 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 18:18:32 +0100 Subject: [PATCH 346/722] fix up rust release numbers & add publishing of npm and cargo modules again --- .github/workflows/publish_staging.yml | 142 +++++++++++++------------- Cargo.lock | 6 +- rust-client/Cargo.toml | 2 +- 3 files changed, 75 insertions(+), 75 deletions(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 70c40f360..f6a9b8a08 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -41,7 +41,7 @@ jobs: needs: - create-release - # - npm-publish + - npm-publish runs-on: ${{ matrix.platform }} steps: @@ -162,75 +162,75 @@ jobs: asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe asset_content_type: application/octet-stream - # - name: "Upload built AD4MIN" - # uses: tauri-apps/tauri-action@v0.3 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version - # releaseName: "Ad4min v__VERSION__" - # releaseBody: "See the assets to download this version and install." - # projectPath: "./ui" + - name: "Upload built AD4MIN" + uses: tauri-apps/tauri-action@v0.3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version + releaseName: "Ad4min v__VERSION__" + releaseBody: "See the assets to download this version and install." + projectPath: "./ui" - # npm-publish: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v3 - # # Setup .npmrc file to publish to npm - # - name: Use Node.js 16.x - # uses: actions/setup-node@v1 - # with: - # node-version: 16.x - # - name: Install deps - # run: yarn install - # - name: Build modules - # run: yarn run build-libs - # - name: Publish core - # uses: JS-DevTools/npm-publish@v1 - # with: - # token: ${{ secrets.NPM_TOKEN }} - # package: core/package.json - # - name: Publish connect - # uses: JS-DevTools/npm-publish@v1 - # with: - # token: ${{ secrets.NPM_TOKEN }} - # package: connect/package.json - # - name: Publish executor - # uses: JS-DevTools/npm-publish@v1 - # with: - # token: ${{ secrets.NPM_TOKEN }} - # package: executor/package.json - # - name: Publish Test runner - # uses: JS-DevTools/npm-publish@v1 - # with: - # token: ${{ secrets.NPM_TOKEN }} - # package: test-runner/package.json + npm-publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + # Setup .npmrc file to publish to npm + - name: Use Node.js 16.x + uses: actions/setup-node@v1 + with: + node-version: 16.x + - name: Install deps + run: yarn install + - name: Build modules + run: yarn run build-libs + - name: Publish core + uses: JS-DevTools/npm-publish@v1 + with: + token: ${{ secrets.NPM_TOKEN }} + package: core/package.json + - name: Publish connect + uses: JS-DevTools/npm-publish@v1 + with: + token: ${{ secrets.NPM_TOKEN }} + package: connect/package.json + - name: Publish executor + uses: JS-DevTools/npm-publish@v1 + with: + token: ${{ secrets.NPM_TOKEN }} + package: executor/package.json + - name: Publish Test runner + uses: JS-DevTools/npm-publish@v1 + with: + token: ${{ secrets.NPM_TOKEN }} + package: test-runner/package.json - # crates-publish: - # runs-on: ubuntu-20.04 - # steps: - # - uses: actions/checkout@v2 - # - uses: actions-rs/toolchain@v1 - # with: - # toolchain: stable - # override: true - # - uses: actions/setup-node@v3 - # with: - # node-version: '16.x' - # cache: 'yarn' - # - name: Cache cargo - # id: cache-cargo - # uses: actions/cache@v3 - # with: - # path: | - # ~/.cargo/bin/ - # ~/.cargo/registry/index/ - # ~/.cargo/registry/cache/ - # ~/.cargo/git/db/ - # key: ${{ runner.os }}-cargo - # restore-keys: ${{ runner.os }}-cargo - # - run: rustup target add wasm32-unknown-unknown - # - run: cd core && yarn install && yarn build && cd .. - # - run: cargo install cargo-workspaces || echo "cargo-workspaces already installed" - # - run: cargo login ${{ secrets.CARGO_REGISTRY_TOKEN }} - # - run: cargo workspaces publish --from-git + crates-publish: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + - uses: actions/setup-node@v3 + with: + node-version: '16.x' + cache: 'yarn' + - name: Cache cargo + id: cache-cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + key: ${{ runner.os }}-cargo + restore-keys: ${{ runner.os }}-cargo + - run: rustup target add wasm32-unknown-unknown + - run: cd core && yarn install && yarn build && cd .. + - run: cargo install cargo-workspaces || echo "cargo-workspaces already installed" + - run: cargo login ${{ secrets.CARGO_REGISTRY_TOKEN }} + - run: cargo workspaces publish --from-git diff --git a/Cargo.lock b/Cargo.lock index 019629d99..cf7e29bf5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" [[package]] name = "ad4m" -version = "0.3.3" +version = "0.3.5" dependencies = [ "ad4m-client", "anyhow", @@ -32,7 +32,7 @@ dependencies = [ [[package]] name = "ad4m-client" -version = "0.3.3" +version = "0.3.5" dependencies = [ "anyhow", "async-std", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "ad4m-launcher" -version = "0.3.3" +version = "0.3.5" dependencies = [ "ad4m-client", "directories", diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index 077f58e84..7614d15e6 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.3.5.prerelease" +version = "0.3.5" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" From e5c36ba68b678bdce899563003fe7320ca673393 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Wed, 14 Jun 2023 23:30:21 +0530 Subject: [PATCH 347/722] disabled yarn cache --- .github/workflows/publish_staging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index f6a9b8a08..88aecc210 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -76,7 +76,7 @@ jobs: node-version: ${{ matrix.node-version }} - name: Yarn Install - run: yarn install + run: yarn install --no-cache - name: Build AD4M-Host & build Launcher binary (macos-latest) if: matrix.platform == 'macos-latest' From 9376ab50b8948487d43f7f7815d8f010fb8c6d23 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Wed, 14 Jun 2023 23:35:27 +0530 Subject: [PATCH 348/722] disabled cache in npm-publish --- .github/workflows/publish_staging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 88aecc210..30bc30784 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -182,7 +182,7 @@ jobs: with: node-version: 16.x - name: Install deps - run: yarn install + run: yarn install --no-cache - name: Build modules run: yarn run build-libs - name: Publish core From ae61f316593dae849021e5562f7d7f6c7d023ed7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 19:13:52 +0100 Subject: [PATCH 349/722] finally fixup versions (build still broken) but correct prerelease numbers for cargo & npm --- .../agent-language/package.json | 2 +- .../direct-message-language/package.json | 2 +- .../neighbourhood-language/package.json | 2 +- bootstrap-languages/p-diff-sync/package.json | 2 +- .../perspective-language/package.json | 2 +- cli/Cargo.toml | 4 +- docs/package.json | 4 +- rust-client/Cargo.toml | 2 +- setVersion.js | 56 ++++++++++++------- test-runner/package.json | 2 +- ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/tauri.conf.json | 2 +- 12 files changed, 49 insertions(+), 33 deletions(-) diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index eeef27620..431a4b3d5 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/agent-language", - "version": "0.3.2", + "version": "0.3.5-prerelease", "description": "AD4M Language implementation for Holochain profile DNA", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json index 13e181ead..9ccfb857b 100644 --- a/bootstrap-languages/direct-message-language/package.json +++ b/bootstrap-languages/direct-message-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/direct-message-language", - "version": "0.3.2", + "version": "0.3.5-prerelease", "description": "A templateable AD4M Language for personal, per-agent direct message Languages", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index 9ccb94c7b..c9b808449 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/neighbourhood-language", - "version": "0.3.2", + "version": "0.3.5-prerelease", "description": "This is a Language for storing AD4M neighbourhood objects", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index 7cf7aa87a..4cf74ae27 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-diff-sync", - "version": "0.3.4", + "version": "0.3.5-prerelease", "description": "An AD4M language for syncing mutations to a share perspective", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index a6354dbd8..4c0f384ba 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-language", - "version": "0.3.2", + "version": "0.3.5-prerelease", "description": "An AD4M Language for perspective snapshot expressions stored on IPFS", "main": "index.js", "scripts": { diff --git a/cli/Cargo.toml b/cli/Cargo.toml index bd19c0f01..7412d1784 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.3.5" +version = "0.3.5-prerelease.0" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,7 +12,7 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.3.5" } +ad4m-client = { path = "../rust-client", version = "0.3.5-prerelease.0" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" diff --git a/docs/package.json b/docs/package.json index c4136dbdf..724156e78 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-docs", - "version": "0.0.1", + "version": "0.3.5-prerelease", "description": "Documentation for AD4M", "license": "CAL-1.0", "homepage": "./", @@ -23,4 +23,4 @@ "typedoc-plugin-markdown": "^3.15.2", "typescript": "^4.9.3" } -} \ No newline at end of file +} diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index 7614d15e6..d5a7a3039 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.3.5" +version = "0.3.5-prerelease.0" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" diff --git a/setVersion.js b/setVersion.js index 3bc9b8bfb..222b2cf10 100644 --- a/setVersion.js +++ b/setVersion.js @@ -21,9 +21,11 @@ if (isPreRelease) { } let VERSION = process.argv[2] +let RUST_VERSION = process.argv[2] if (isPreRelease) { - VERSION = VERSION + ".prerelease"; + VERSION = VERSION + "-prerelease"; + RUST_VERSION = VERSION + ".0"; } const RAW_VERSION = process.argv[2]; @@ -35,10 +37,18 @@ console.log("Root repo version: " + rootRepo.version + " -> " + VERSION) rootRepo.version = VERSION fs.writeFileSync('package.json', JSON.stringify(rootRepo, null, 2) + '\n') -const cli = replaceVersionLine(fs.readFileSync('cli/Cargo.toml', 'utf8'), VERSION) -console.log("CLI version: " + cli.oldVersion + " -> " + VERSION) -const ad4mClient = replaceVersionLine(cli.newContent, VERSION, `ad4m-client = { path = "../rust-client", version = `, ` }`) -console.log(`CLI ad4m-client dep: ${ad4mClient.oldVersion} -> ${VERSION}`) +let ad4mClient; +if (isPreRelease) { + const cli = replaceVersionLine(fs.readFileSync('cli/Cargo.toml', 'utf8'), RUST_VERSION) + console.log("CLI version: " + cli.oldVersion + " -> " + RUST_VERSION) + ad4mClient = replaceVersionLine(cli.newContent, RUST_VERSION, `ad4m-client = { path = "../rust-client", version = `, ` }`) + console.log(`CLI ad4m-client dep: ${ad4mClient.oldVersion} -> ${RUST_VERSION}`) +} else { + const cli = replaceVersionLine(fs.readFileSync('cli/Cargo.toml', 'utf8'), RAW_VERSION) + console.log("CLI version: " + cli.oldVersion + " -> " + RAW_VERSION) + ad4mClient = replaceVersionLine(cli.newContent, RAW_VERSION, `ad4m-client = { path = "../rust-client", version = `, ` }`) + console.log(`CLI ad4m-client dep: ${ad4mClient.oldVersion} -> ${RAW_VERSION}`) +} fs.writeFileSync('cli/Cargo.toml', ad4mClient.newContent) const connect = JSON.parse(fs.readFileSync('connect/package.json', 'utf8')) @@ -70,44 +80,50 @@ console.log("Host version: " + host.version + " -> " + VERSION) host.version = VERSION fs.writeFileSync('host/package.json', JSON.stringify(host, null, 2) + '\n') -const rustClient = replaceVersionLine(fs.readFileSync('rust-client/Cargo.toml', 'utf8'), VERSION) -console.log("rust-client version: " + rustClient.oldVersion + " -> " + VERSION) +let rustClient; +if (isPreRelease) { + rustClient = replaceVersionLine(fs.readFileSync('rust-client/Cargo.toml', 'utf8'), RUST_VERSION) + console.log("rust-client version: " + rustClient.oldVersion + " -> " + RUST_VERSION) +} else { + rustClient = replaceVersionLine(fs.readFileSync('rust-client/Cargo.toml', 'utf8'), RAW_VERSION) + console.log("rust-client version: " + rustClient.oldVersion + " -> " + RAW_VERSION) +} fs.writeFileSync('rust-client/Cargo.toml', rustClient.newContent) const uiPackage = JSON.parse(fs.readFileSync('ui/package.json', 'utf8')) if (isPreRelease) { - console.log("UI version: " + uiPackage.version + " -> " + RAW_VERSION) - uiPackage.version = RAW_VERSION -} else { console.log("UI version: " + uiPackage.version + " -> " + VERSION) uiPackage.version = VERSION +} else { + console.log("UI version: " + uiPackage.version + " -> " + RAW_VERSION) + uiPackage.version = RAW_VERSION } fs.writeFileSync('ui/package.json', JSON.stringify(uiPackage, null, 2) + '\n') const uiTauri = JSON.parse(fs.readFileSync('ui/src-tauri/tauri.conf.json', 'utf8')) if (isPreRelease) { - console.log("UI Tauri version: " + uiTauri.package.version + " -> " + RAW_VERSION) - uiTauri.package.version = RAW_VERSION -} else { console.log("UI Tauri version: " + uiTauri.package.version + " -> " + VERSION) uiTauri.package.version = VERSION +} else { + console.log("UI Tauri version: " + uiTauri.package.version + " -> " + RAW_VERSION) + uiTauri.package.version = RAW_VERSION } fs.writeFileSync('ui/src-tauri/tauri.conf.json', JSON.stringify(uiTauri, null, 2) + '\n') let uiTauriCargo; if (isPreRelease) { - uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), RAW_VERSION) - console.log("UI Cargo version: " + uiTauriCargo.oldVersion + " -> " + RAW_VERSION) + uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), RUST_VERSION) + console.log("UI Cargo version: " + uiTauriCargo.oldVersion + " -> " + RUST_VERSION) } else { - uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), VERSION) + uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), RAW_RUST_VERSION) console.log("UI Cargo version: " + uiTauriCargo.oldVersion + " -> " + VERSION) } fs.writeFileSync('ui/src-tauri/Cargo.toml', uiTauriCargo.newContent) -const book = JSON.parse(fs.readFileSync('docs-src/book.json', 'utf8')) -console.log("Docs version: " + book.variables.ad4mVersion + " -> " + VERSION) -book.variables.ad4mVersion = VERSION -fs.writeFileSync('docs-src/book.json', JSON.stringify(book, null, 2) + '\n') +const book = JSON.parse(fs.readFileSync('docs/package.json', 'utf8')) +console.log("Docs version: " + book.version + " -> " + VERSION) +book.version = VERSION +fs.writeFileSync('docs/package.json', JSON.stringify(book, null, 2) + '\n') const testRunner = JSON.parse(fs.readFileSync('test-runner/package.json', 'utf8')) console.log("Test runner version: " + testRunner.version + " -> " + VERSION) diff --git a/test-runner/package.json b/test-runner/package.json index 53f195c8f..5f607bbe4 100644 --- a/test-runner/package.json +++ b/test-runner/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-test", - "version": "0.3.4", + "version": "0.3.5-prerelease", "description": "Testing library to test ad4m languages", "license": "MIT", "bin": "./build/cli.js", diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 2992c31a7..787ee82cd 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-launcher" -version = "0.3.5" +version = "0.3.5-prerelease.0" description = "Administration of ad4m services" authors = ["Kaichao Sun"] license = "" diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index ef80f49ef..2172ef97a 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "package": { "productName": "AD4M", - "version": "0.3.5" + "version": "0.3.5-prerelease" }, "build": { "distDir": "../dist", From c7a61fc077450a81564d451be6270b9468e798ec Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 14 Jun 2023 19:19:12 +0100 Subject: [PATCH 350/722] fix setVersion for non prerelease --- setVersion.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setVersion.js b/setVersion.js index 222b2cf10..eeee2c7f2 100644 --- a/setVersion.js +++ b/setVersion.js @@ -115,7 +115,7 @@ if (isPreRelease) { uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), RUST_VERSION) console.log("UI Cargo version: " + uiTauriCargo.oldVersion + " -> " + RUST_VERSION) } else { - uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), RAW_RUST_VERSION) + uiTauriCargo = replaceVersionLine(fs.readFileSync('ui/src-tauri/Cargo.toml', 'utf8'), RAW_VERSION) console.log("UI Cargo version: " + uiTauriCargo.oldVersion + " -> " + VERSION) } fs.writeFileSync('ui/src-tauri/Cargo.toml', uiTauriCargo.newContent) From 8ecf3301fb807aab31b08e895e03f0fd566238f5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 15 Jun 2023 13:19:13 +0100 Subject: [PATCH 351/722] set version to 0.4.0 and remove npm & crates publishing --- .github/workflows/publish_staging.yml | 66 +- Cargo.lock | 6 +- .../agent-language/package.json | 2 +- .../direct-message-language/package.json | 2 +- .../neighbourhood-language/package.json | 2 +- bootstrap-languages/p-diff-sync/package.json | 2 +- .../perspective-language/package.json | 2 +- cli/Cargo.toml | 4 +- connect/package.json | 2 +- core/package.json | 2 +- docs/package.json | 2 +- executor/package.json | 2 +- executor/src/core/Config.ts | 2 +- host/package.json | 2 +- package.json | 2 +- rust-client/Cargo.toml | 2 +- test-runner/package.json | 2 +- ui/package.json | 2 +- ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/tauri.conf.json | 2 +- yarn.lock | 7101 +++++++++++------ 21 files changed, 4634 insertions(+), 2577 deletions(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 30bc30784..5ba434aaf 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -41,7 +41,6 @@ jobs: needs: - create-release - - npm-publish runs-on: ${{ matrix.platform }} steps: @@ -170,67 +169,4 @@ jobs: tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version releaseName: "Ad4min v__VERSION__" releaseBody: "See the assets to download this version and install." - projectPath: "./ui" - - npm-publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # Setup .npmrc file to publish to npm - - name: Use Node.js 16.x - uses: actions/setup-node@v1 - with: - node-version: 16.x - - name: Install deps - run: yarn install --no-cache - - name: Build modules - run: yarn run build-libs - - name: Publish core - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - package: core/package.json - - name: Publish connect - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - package: connect/package.json - - name: Publish executor - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - package: executor/package.json - - name: Publish Test runner - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - package: test-runner/package.json - - crates-publish: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - - uses: actions/setup-node@v3 - with: - node-version: '16.x' - cache: 'yarn' - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - key: ${{ runner.os }}-cargo - restore-keys: ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - run: cd core && yarn install && yarn build && cd .. - - run: cargo install cargo-workspaces || echo "cargo-workspaces already installed" - - run: cargo login ${{ secrets.CARGO_REGISTRY_TOKEN }} - - run: cargo workspaces publish --from-git + projectPath: "./ui" \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index cf7e29bf5..94759cc65 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" [[package]] name = "ad4m" -version = "0.3.5" +version = "0.4.0" dependencies = [ "ad4m-client", "anyhow", @@ -32,7 +32,7 @@ dependencies = [ [[package]] name = "ad4m-client" -version = "0.3.5" +version = "0.4.0" dependencies = [ "anyhow", "async-std", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "ad4m-launcher" -version = "0.3.5" +version = "0.4.0" dependencies = [ "ad4m-client", "directories", diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index 431a4b3d5..54b042762 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/agent-language", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "AD4M Language implementation for Holochain profile DNA", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json index 9ccfb857b..b157721b9 100644 --- a/bootstrap-languages/direct-message-language/package.json +++ b/bootstrap-languages/direct-message-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/direct-message-language", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "A templateable AD4M Language for personal, per-agent direct message Languages", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index c9b808449..6c2aee68e 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/neighbourhood-language", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "This is a Language for storing AD4M neighbourhood objects", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index 4cf74ae27..cd69ff99b 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-diff-sync", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "An AD4M language for syncing mutations to a share perspective", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index 4c0f384ba..13a2dd981 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-language", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "An AD4M Language for perspective snapshot expressions stored on IPFS", "main": "index.js", "scripts": { diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 7412d1784..7dc8553da 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.3.5-prerelease.0" +version = "0.4.0" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,7 +12,7 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.3.5-prerelease.0" } +ad4m-client = { path = "../rust-client", version = "0.4.0" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" diff --git a/connect/package.json b/connect/package.json index faafc1a56..1465030c8 100644 --- a/connect/package.json +++ b/connect/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-connect", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "Lib for handling everything needed to setup a connection to a local or remote ad4m-executor", "license": "CAL-1.0", "main": "dist/web.js", diff --git a/core/package.json b/core/package.json index 534c47295..7c037469b 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "*The Agent-Centric Distributed Application Meta-ontology* or just: *Agent-Centric DApp Meta-ontology* * A new meta-ontology for interoperable, decentralized application design * A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends * The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network", "main": "lib/index.cjs", "module": "lib/index.js", diff --git a/docs/package.json b/docs/package.json index 724156e78..bb622c61c 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-docs", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "Documentation for AD4M", "license": "CAL-1.0", "homepage": "./", diff --git a/executor/package.json b/executor/package.json index fc750941d..cc7033167 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "main": "lib/main.js", "files": [ diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index 0904ee77a..5d2312ee8 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import * as fs from 'fs'; import { Address, Expression } from '@perspect3vism/ad4m'; -export let ad4mExecutorVersion = "0.3.5-prerelease"; +export let ad4mExecutorVersion = "0.4.0"; export let agentLanguageAlias = "did"; export let languageLanguageAlias = "lang"; export let neighbourhoodLanguageAlias = "neighbourhood"; diff --git a/host/package.json b/host/package.json index a02918034..33549614d 100644 --- a/host/package.json +++ b/host/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-host", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "Self hosting ad4m service", "private": true, "bin": { diff --git a/package.json b/package.json index 8065af0d3..f0c8cc231 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-monorepo", - "version": "0.3.5-prerelease", + "version": "0.4.0", "workspaces": [ "core", "docs", diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index d5a7a3039..15c2d10f1 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.3.5-prerelease.0" +version = "0.4.0" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" diff --git a/test-runner/package.json b/test-runner/package.json index 5f607bbe4..3c67a89f5 100644 --- a/test-runner/package.json +++ b/test-runner/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-test", - "version": "0.3.5-prerelease", + "version": "0.4.0", "description": "Testing library to test ad4m languages", "license": "MIT", "bin": "./build/cli.js", diff --git a/ui/package.json b/ui/package.json index 488ab58ee..a9cb6336c 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-launcher", - "version": "0.3.5-prerelease", + "version": "0.4.0", "private": true, "type": "module", "dependencies": { diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 787ee82cd..ecf1f1d2b 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-launcher" -version = "0.3.5-prerelease.0" +version = "0.4.0" description = "Administration of ad4m services" authors = ["Kaichao Sun"] license = "" diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index 2172ef97a..aaa96597b 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "package": { "productName": "AD4M", - "version": "0.3.5-prerelease" + "version": "0.4.0" }, "build": { "distDir": "../dist", diff --git a/yarn.lock b/yarn.lock index ccd232829..c1d84ff1e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11,41 +11,45 @@ sprintf-js "1.1.2" "@achingbrain/nat-port-mapper@^1.0.3": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz#82c414712da38a0f3da0f938982b6dd724d3c677" - integrity sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg== + version "1.0.9" + resolved "https://registry.yarnpkg.com/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.9.tgz#8e61cf6f5dbeaa55c4e64a0023a362d4a1f61a36" + integrity sha512-w1M7dh7IsO5fvX9VQpH0w8MMphzLUl52Kf+paXTScNmFH4Ua+R6XI+x5p7LI3vY36JkTllTqAxNo8g1y0CMCrA== dependencies: "@achingbrain/ssdp" "^4.0.1" "@libp2p/logger" "^2.0.0" default-gateway "^6.0.2" err-code "^3.0.1" - it-first "^1.0.7" + it-first "^3.0.1" p-defer "^4.0.0" - p-timeout "^5.0.2" - xml2js "^0.4.23" + p-timeout "^6.1.1" + xml2js "^0.6.0" "@achingbrain/ssdp@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@achingbrain/ssdp/-/ssdp-4.0.1.tgz#47ccaaa8256cf73b7b2ab86a0ad14128cfaf77b7" - integrity sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ== + version "4.0.4" + resolved "https://registry.yarnpkg.com/@achingbrain/ssdp/-/ssdp-4.0.4.tgz#681c59664f9e05ea65d66b23f96f0dbf71f0e293" + integrity sha512-fY/ShiYJmhLdr45Vn2+f88xTqZjBSH3X3F+EJu/89cjB1JIkMCVtD5CQaaS38YknIL8cEcNhjMZM4cdE3ckSSQ== dependencies: event-iterator "^2.0.0" freeport-promise "^2.0.0" merge-options "^3.0.4" - uuid "^8.3.2" - xml2js "^0.4.23" + xml2js "^0.5.0" "@adobe/css-tools@^4.0.1": version "4.2.0" resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" integrity sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA== +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + "@ampproject/remapping@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" "@apideck/better-ajv-errors@^0.3.1": @@ -204,33 +208,33 @@ resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.9.4.tgz#a483c54c1253656bb33babd464e3154a173e1577" integrity sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA== -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.8.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.22.5" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" - integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255" + integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.14.8", "@babel/core@^7.16.0", "@babel/core@^7.2.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0", "@babel/core@^7.9.6": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.3.tgz#cf1c877284a469da5d1ce1d1e53665253fae712e" - integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89" + integrity sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.3" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.3" - "@babel/types" "^7.21.3" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helpers" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -238,9 +242,9 @@ semver "^6.3.0" "@babel/eslint-parser@^7.16.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz#d79e822050f2de65d7f368a076846e7184234af7" - integrity sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.5.tgz#fa032503b9e2d188e25b1b95d29e8b8431042d78" + integrity sha512-C69RWYNYtrgIRE5CmTd77ZiLDXqgBipahJc/jHP3sLcAGj6AJzxNIuKNpVnICqbyK7X3pFUfEvL++rvtbQpZkQ== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" @@ -255,68 +259,69 @@ "@jridgewell/gen-mapping" "^0.3.0" jsesc "^2.5.1" -"@babel/generator@^7.21.3", "@babel/generator@^7.7.2": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce" - integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA== +"@babel/generator@^7.22.5", "@babel/generator@^7.7.2": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" + integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== dependencies: - "@babel/types" "^7.21.3" + "@babel/types" "^7.22.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" + integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz#fc7319fc54c5e2fa14b2909cf3c5fd3046813e02" + integrity sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw== dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" + "@babel/compat-data" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" browserslist "^4.21.3" lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" - integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" + integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + semver "^6.3.0" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb" - integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz#bb2bf0debfe39b831986a4efbf4066586819c6e4" + integrity sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-annotate-as-pure" "^7.22.5" regexpu-core "^5.3.1" + semver "^6.3.0" -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== +"@babel/helper-define-polyfill-provider@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz#487053f103110f25b9755c5980e031e93ced24d8" + integrity sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg== dependencies: "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -325,156 +330,149 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" - integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== - dependencies: - "@babel/types" "^7.21.0" - -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" - integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" - integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== - dependencies: - "@babel/types" "^7.20.0" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.18.10", "@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== - dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" - -"@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" - integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" +"@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== + +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== + dependencies: + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" + integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-transforms@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" + integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-remap-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" + integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-wrap-function" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-replace-supers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" + integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08" + integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.18.10", "@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/helper-validator-option@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== + +"@babel/helper-wrap-function@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" + integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helpers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.5.tgz#74bb4373eb390d1ceed74a15ef97767e63120820" + integrity sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q== + dependencies: + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" chalk "^2.0.0" js-tokens "^4.0.0" @@ -483,38 +481,28 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3", "@babel/parser@^7.9.4": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" - integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" + integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" + integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" + integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.5" -"@babel/plugin-proposal-async-generator-functions@^7.20.1": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.18.6": +"@babel/plugin-proposal-class-properties@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -522,59 +510,18 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-proposal-decorators@^7.16.4": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63" - integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/plugin-syntax-decorators" "^7.21.0" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.5.tgz#dc8cdda048e5aea947efda920e030199806b868d" + integrity sha512-h8hlezQ4dl6ixodgXkH8lUfcD7x+WAuIqPUjwGoItynrXOAv4a4Tci1zA/qjzQjjcl0v3QpLdc2LM6ZACQuY7A== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/plugin-syntax-decorators" "^7.22.5" -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -582,7 +529,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": +"@babel/plugin-proposal-numeric-separator@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== @@ -590,26 +537,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": +"@babel/plugin-proposal-optional-chaining@^7.16.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -618,7 +546,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.18.6": +"@babel/plugin-proposal-private-methods@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== @@ -626,17 +554,12 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" - integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== @@ -672,12 +595,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78" - integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w== +"@babel/plugin-syntax-decorators@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.5.tgz#329fe2907c73de184033775637dbbc507f09116a" + integrity sha512-avpUOBS7IU6al8MmF1XpAyj9QYeLPuSDJI5D4pVMSMdL7xQokKqJPYQC67RCT0aCTashUXPiGwMJ0DEXXCEmMA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" @@ -693,21 +616,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" - integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== +"@babel/plugin-syntax-flow@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" + integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== +"@babel/plugin-syntax-import-assertions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" + integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" + integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -721,12 +651,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -784,380 +714,513 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== +"@babel/plugin-syntax-typescript@^7.22.5", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" + integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== +"@babel/plugin-transform-arrow-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" + integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== +"@babel/plugin-transform-async-generator-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz#7336356d23380eda9a56314974f053a020dab0c3" + integrity sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-block-scoping@^7.20.2": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" - integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== +"@babel/plugin-transform-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-classes@^7.20.2": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" - integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" +"@babel/plugin-transform-block-scoped-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" + integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" + integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" + integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" + integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz#635d4e98da741fad814984639f4c0149eb0135e1" + integrity sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== +"@babel/plugin-transform-computed-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" + integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/template" "^7.20.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.20.2": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" - integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== +"@babel/plugin-transform-destructuring@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" + integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== +"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" + integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== +"@babel/plugin-transform-duplicate-keys@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" + integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== +"@babel/plugin-transform-dynamic-import@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" + integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" + integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-export-namespace-from@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" + integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-transform-flow-strip-types@^7.16.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" - integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" + integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-flow" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-for-of@^7.18.8": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" - integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== +"@babel/plugin-transform-for-of@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" + integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== +"@babel/plugin-transform-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== +"@babel/plugin-transform-json-strings@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" + integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== +"@babel/plugin-transform-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" + integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== +"@babel/plugin-transform-logical-assignment-operators@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" + integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-modules-commonjs@^7.19.6", "@babel/plugin-transform-modules-commonjs@^7.2.0": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" - integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== +"@babel/plugin-transform-member-expression-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" + integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== dependencies: - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== +"@babel/plugin-transform-modules-amd@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" + integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== +"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" + integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== +"@babel/plugin-transform-modules-systemjs@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" + integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== +"@babel/plugin-transform-modules-umd@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" - integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== +"@babel/plugin-transform-new-target@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" + integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" + integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" + integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" + integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== + dependencies: + "@babel/compat-data" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.5" + +"@babel/plugin-transform-object-super@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + +"@babel/plugin-transform-optional-catch-binding@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" + integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz#1003762b9c14295501beb41be72426736bedd1e0" + integrity sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" + integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-methods@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" + integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" + integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-constant-elements@^7.12.1": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz#b32a5556100d424b25e388dd689050d78396884d" - integrity sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz#6dfa7c1c37f7d7279e417ceddf5a04abb8bb9c29" + integrity sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" - integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" + integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx-development@^7.16.7", "@babel/plugin-transform-react-jsx-development@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" - integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== +"@babel/plugin-transform-react-jsx-development@^7.16.7", "@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== dependencies: - "@babel/plugin-transform-react-jsx" "^7.18.6" + "@babel/plugin-transform-react-jsx" "^7.22.5" "@babel/plugin-transform-react-jsx-self@^7.14.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz#ec98d4a9baafc5a1eb398da4cf94afbb40254a54" - integrity sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz#ca2fdc11bc20d4d46de01137318b13d04e481d8e" + integrity sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-jsx-source@^7.14.5": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86" - integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz#49af1615bfdf6ed9d3e9e43e425e0b2b65d15b6c" + integrity sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz#656b42c2fdea0a6d8762075d58ef9d4e3c4ab8a2" - integrity sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg== +"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" + integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.21.0" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.5" -"@babel/plugin-transform-react-pure-annotations@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" - integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== +"@babel/plugin-transform-react-pure-annotations@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" + integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== +"@babel/plugin-transform-regenerator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" + integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.1" -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== +"@babel/plugin-transform-reserved-words@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" + integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.16.4": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8" - integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.5.tgz#ca975fb5e260044473c8142e1b18b567d33c2a3b" + integrity sha512-bg4Wxd1FWeFx3daHFTWk1pkSWK/AyQuiyAoeZAOkAOUBjnZPH6KT7eMxouV47tQ6hl6ax2zyAWBdWZXbrvXlaw== + dependencies: + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.3" + babel-plugin-polyfill-corejs3 "^0.8.1" + babel-plugin-polyfill-regenerator "^0.5.0" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== +"@babel/plugin-transform-shorthand-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.19.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== +"@babel/plugin-transform-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" + integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== +"@babel/plugin-transform-sticky-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" + integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== +"@babel/plugin-transform-template-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== +"@babel/plugin-transform-typeof-symbol@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" + integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.21.0": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz#316c5be579856ea890a57ebc5116c5d064658f2b" - integrity sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw== +"@babel/plugin-transform-typescript@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz#5c0f7adfc1b5f38c4dbc8f79b1f0f8074134bd7d" + integrity sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-typescript" "^7.20.0" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== +"@babel/plugin-transform-unicode-escapes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" + integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== +"@babel/plugin-transform-unicode-property-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" + integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== +"@babel/plugin-transform-unicode-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" + integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" + integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.5.tgz#3da66078b181f3d62512c51cf7014392c511504e" + integrity sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A== + dependencies: + "@babel/compat-data" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1167,44 +1230,61 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.5" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.5" + "@babel/plugin-transform-classes" "^7.22.5" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.5" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.5" + "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.5" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-modules-systemjs" "^7.22.5" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" + "@babel/plugin-transform-numeric-separator" "^7.22.5" + "@babel/plugin-transform-object-rest-spread" "^7.22.5" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.5" + "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.5" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" + "@babel/types" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.3" + babel-plugin-polyfill-corejs3 "^0.8.1" + babel-plugin-polyfill-regenerator "^0.5.0" + core-js-compat "^3.30.2" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -1219,25 +1299,27 @@ esutils "^2.0.2" "@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" - integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.5.tgz#c4d6058fbf80bccad02dd8c313a9aaa67e3c3dd6" + integrity sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-react-display-name" "^7.18.6" - "@babel/plugin-transform-react-jsx" "^7.18.6" - "@babel/plugin-transform-react-jsx-development" "^7.18.6" - "@babel/plugin-transform-react-pure-annotations" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-transform-react-display-name" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.22.5" "@babel/preset-typescript@^7.16.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz#bcbbca513e8213691fe5d4b23d9251e01f00ebff" - integrity sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" + integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-transform-typescript" "^7.21.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-typescript" "^7.22.5" "@babel/regjsgen@^0.8.0": version "0.8.0" @@ -1245,34 +1327,34 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.20.1", "@babel/runtime@^7.20.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" - integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" + integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3", "@babel/traverse@^7.7.2": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67" - integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.3" - "@babel/types" "^7.21.3" +"@babel/template@^7.22.5", "@babel/template@^7.3.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.22.5", "@babel/traverse@^7.7.2": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" + integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" debug "^4.1.0" globals "^11.1.0" @@ -1285,13 +1367,13 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.2", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05" - integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.2", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1299,6 +1381,11 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@braintree/sanitize-url@^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz#6110f918d273fe2af8ea1c4398a88774bb9fc12f" + integrity sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg== + "@chainsafe/is-ip@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@chainsafe/is-ip/-/is-ip-2.0.1.tgz#62cb285669d91f88fd9fa285048dde3882f0993b" @@ -1358,6 +1445,13 @@ uint8arraylist "^2.3.2" uint8arrays "^4.0.2" +"@chainsafe/netmask@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@chainsafe/netmask/-/netmask-2.0.0.tgz#0d4a75f47919f65011da4327a3845c9661f1038a" + integrity sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg== + dependencies: + "@chainsafe/is-ip" "^2.0.1" + "@changesets/apply-release-plan@^6.1.3": version "6.1.3" resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-6.1.3.tgz#3bcc0bd57ba00d50d20df7d0141f1a9b2134eaf7" @@ -1397,9 +1491,9 @@ "@changesets/types" "^5.2.1" "@changesets/cli@^2.25.2": - version "2.26.0" - resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.26.0.tgz#f215ddb2b41574ffd0dda9cd77fac927ba048fd3" - integrity sha512-0cbTiDms+ICTVtEwAFLNW0jBNex9f5+fFv3I771nBvdnV/mOjd1QJ4+f8KtVSOrwD9SJkk9xbDkWFb0oXd8d1Q== + version "2.26.1" + resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.26.1.tgz#2d10858d7d32314a524e383111c96d831eb0402f" + integrity sha512-XnTa+b51vt057fyAudvDKGB0Sh72xutQZNAdXkCqPBKO2zvs2yYZx5hFZj1u9cbtpwM6Sxtcr02/FQJfZOzemQ== dependencies: "@babel/runtime" "^7.20.1" "@changesets/apply-release-plan" "^6.1.3" @@ -1680,9 +1774,9 @@ integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== "@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz#c9c61d9fe5ca5ac664e1153bb0aa0eba1c6d6308" - integrity sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== "@electron/get@^1.14.1": version "1.14.1" @@ -1700,146 +1794,146 @@ global-agent "^3.0.0" global-tunnel-ng "^2.7.1" -"@esbuild/android-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" - integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== +"@esbuild/android-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" + integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== "@esbuild/android-arm@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== -"@esbuild/android-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" - integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== - -"@esbuild/android-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" - integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== - -"@esbuild/darwin-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" - integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== - -"@esbuild/darwin-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" - integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== - -"@esbuild/freebsd-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" - integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== - -"@esbuild/freebsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" - integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== - -"@esbuild/linux-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" - integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== - -"@esbuild/linux-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" - integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== - -"@esbuild/linux-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" - integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== +"@esbuild/android-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" + integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== + +"@esbuild/android-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" + integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== + +"@esbuild/darwin-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" + integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== + +"@esbuild/darwin-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" + integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== + +"@esbuild/freebsd-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" + integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== + +"@esbuild/freebsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" + integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== + +"@esbuild/linux-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" + integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== + +"@esbuild/linux-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" + integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== + +"@esbuild/linux-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" + integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== "@esbuild/linux-loong64@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== -"@esbuild/linux-loong64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" - integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== - -"@esbuild/linux-mips64el@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" - integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== - -"@esbuild/linux-ppc64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" - integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== - -"@esbuild/linux-riscv64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" - integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== - -"@esbuild/linux-s390x@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" - integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== - -"@esbuild/linux-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" - integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== - -"@esbuild/netbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" - integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== - -"@esbuild/openbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" - integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== - -"@esbuild/sunos-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" - integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== - -"@esbuild/win32-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" - integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== - -"@esbuild/win32-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" - integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== - -"@esbuild/win32-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" - integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== +"@esbuild/linux-loong64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" + integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== + +"@esbuild/linux-mips64el@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" + integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== + +"@esbuild/linux-ppc64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" + integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== + +"@esbuild/linux-riscv64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" + integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== + +"@esbuild/linux-s390x@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" + integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== + +"@esbuild/linux-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" + integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== + +"@esbuild/netbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" + integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== + +"@esbuild/openbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" + integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== + +"@esbuild/sunos-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" + integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== + +"@esbuild/win32-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" + integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== + +"@esbuild/win32-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" + integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== + +"@esbuild/win32-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" + integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== "@eslint-community/eslint-utils@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz#a831e6e468b4b2b5ae42bf658bea015bf10bc518" - integrity sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" - integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== -"@eslint/eslintrc@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d" - integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw== +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.0" + espree "^9.5.2" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -1847,10 +1941,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.36.0": - version "8.36.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe" - integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg== +"@eslint/js@8.42.0": + version "8.42.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" + integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== "@graphql-tools/merge@8.3.1": version "8.3.1" @@ -1860,34 +1954,24 @@ "@graphql-tools/utils" "8.9.0" tslib "^2.4.0" -"@graphql-tools/merge@8.4.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.0.tgz#47fbe5c4b6764276dc35bd19c4e7d3c46d3dc0fc" - integrity sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA== +"@graphql-tools/merge@^8.4.1": + version "8.4.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" + integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== dependencies: - "@graphql-tools/utils" "9.2.1" + "@graphql-tools/utils" "^9.2.1" tslib "^2.4.0" "@graphql-tools/mock@^8.1.2": - version "8.7.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.19.tgz#b6c01ecc44074a01d6f472213de5f56fe0a3380c" - integrity sha512-LT2boYM+Y1vGFEhzmC7xDFRL8RPG20FbNcuk2/hHGH0Kh8K1hkItvL89tul3Pl7N6xerOnDZ3c3fx7Ls5GuFxA== + version "8.7.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.20.tgz#c83ae0f1940d194a3982120c9c85f3ac6b4f7f20" + integrity sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ== dependencies: - "@graphql-tools/schema" "9.0.17" - "@graphql-tools/utils" "9.2.1" + "@graphql-tools/schema" "^9.0.18" + "@graphql-tools/utils" "^9.2.1" fast-json-stable-stringify "^2.1.0" tslib "^2.4.0" -"@graphql-tools/schema@9.0.17": - version "9.0.17" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.17.tgz#d731e9899465f88d5b9bf69e607ec465bb88b062" - integrity sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng== - dependencies: - "@graphql-tools/merge" "8.4.0" - "@graphql-tools/utils" "9.2.1" - tslib "^2.4.0" - value-or-promise "1.0.12" - "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.5.1": version "8.5.1" resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" @@ -1898,6 +1982,16 @@ tslib "^2.4.0" value-or-promise "1.0.11" +"@graphql-tools/schema@^9.0.18": + version "9.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" + integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== + dependencies: + "@graphql-tools/merge" "^8.4.1" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + "@graphql-tools/utils@8.9.0": version "8.9.0" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7" @@ -1905,7 +1999,7 @@ dependencies: tslib "^2.4.0" -"@graphql-tools/utils@9.2.1": +"@graphql-tools/utils@^9.2.1": version "9.2.1" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== @@ -1914,28 +2008,28 @@ tslib "^2.4.0" "@graphql-typed-document-node/core@^3.1.1": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.2.tgz#6fc464307cbe3c8ca5064549b806360d84457b04" - integrity sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA== + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== "@grpc/grpc-js@^1.1.8": - version "1.8.12" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.12.tgz#bc0120859e8b153db764b473cc019ddf6bb2b414" - integrity sha512-MbUMvpVvakeKhdYux6gbSIPJaFMLNSY8jw4PqLI+FFztGrQRrYYAnHlR94+ncBQQewkpXQaW449m3tpH/B/ZnQ== + version "1.8.15" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.15.tgz#17829cbc9f2bc8b3b0e22a4da59d72db2a34df5c" + integrity sha512-H2Bu/w6+oQ58DsRbQol66ERBk3V5ZIak/z/MDx0T4EgDnJWps807I6BvTjq0v6UvZtOcLO+ur+Q9wvniqu3OJA== dependencies: "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.7.0": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.5.tgz#ee9e7488fa585dc6b0f7fe88cd39723a3e64c906" - integrity sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg== + version "0.7.7" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.7.tgz#d33677a77eea8407f7c66e2abd97589b60eb4b21" + integrity sha512-1TIeXOi8TuSCQprPItwoMymZXxWT0CPxUhkrkeCUH+D8U7QDwQ6b7SUz2MaLuWM2llT+J/TVFLmQI5KtML3BhQ== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" long "^4.0.0" protobufjs "^7.0.0" - yargs "^16.2.0" + yargs "^17.7.2" "@hapi/accept@^5.0.1": version "5.0.2" @@ -2187,6 +2281,13 @@ "@hapi/bourne" "2.x.x" "@hapi/hoek" "9.x.x" +"@headlessui/react@^1.7.10": + version "1.7.15" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.15.tgz#53ef6ae132af81b8f188414767b6e79ebf8dc73f" + integrity sha512-OTO0XtoRQ6JPB1cKNFYBZv2Q0JMqMGNhYP1CjPvcJvjz8YGokz8oAj89HIYZGN0gZzn/4kk9iUpmMF4Q21Gsqw== + dependencies: + client-only "^0.0.1" + "@holochain/client@0.12.5": version "0.12.5" resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" @@ -2206,49 +2307,49 @@ resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== -"@honkit/asciidoc@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@honkit/asciidoc/-/asciidoc-4.0.1.tgz#0b649f8d76493119a8fdb4c16299beffea20e4ae" - integrity sha512-R+Og2PaOO5LPXgfsc2k23bSxeTjfJgNMmBB6xodaMmAwYIMs4HApStWGLKik7WQjoIXsNzD67z4eUlTsJcOReA== +"@honkit/asciidoc@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/asciidoc/-/asciidoc-4.0.7.tgz#7e6deb19c91ccf6e4177c215652919e53f081d96" + integrity sha512-YgIInbeGtuhvKO4cUhJ9q5g8iNkbwEL/U4suwP1uC9sZXFfYzXg+Vt2zPPx47A+Nj0cirdrbbh1fJhQWJIgm8A== dependencies: - "@honkit/html" "^4.0.1" + "@honkit/html" "^4.0.7" asciidoctor "^2.2.0" lodash "^4.13.1" -"@honkit/honkit-plugin-highlight@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-4.0.0.tgz#4243dfa99e29c5c5e11283b7464eee08e7ac0e1d" - integrity sha512-3T1s12gbLVN/pKbngrkItXLE7ubDBoHK+ILHAjmPw/TYd92wMT4bcL7TUZZALjBhUR3tBj7+kofssxAxDECPOA== +"@honkit/honkit-plugin-highlight@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-4.0.7.tgz#d54911155167bd2bcd79442b9548737e5d4c636c" + integrity sha512-VeXVJ2orU4F2V8ncf3bGNnPFzuS8+IV5NdHNW4C3Nt9+MoB6cp7lAoi95+ZuYC9T4iIVkfBtXFA/tCivEAjfgg== dependencies: highlight.js "^10.7.1" -"@honkit/honkit-plugin-theme-default@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-4.0.3.tgz#11accaed52f96e51e1578d8e02b66e60c7008726" - integrity sha512-bGCkFLASQF1PAb5HWgaei33uhOLVGM3ZiwUs5BJszumKSJAGaz/X2epRH6DrIlDG+I93COZsoGV1BVOj3gzLaA== +"@honkit/honkit-plugin-theme-default@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-4.0.7.tgz#758360e3a1bda6db306b32e1db6959247bce3400" + integrity sha512-C/4WLD26p8f7gDTR6R60lPL6CJys+1/z7o6wUd5qEUya3Xu/YjiZmNviIyw99C5RUu4X7YutVvMijGTwC1izgA== -"@honkit/html@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@honkit/html/-/html-4.0.1.tgz#a9baf71e98a02af67134d845c509b481a92838e2" - integrity sha512-EB0k42QJbETe4vNgRfT5Kn9BFchNES20bmlDY7il989F/eYxCf+f8SduEcs6hsxpG1DemsR09x8Jz19WHXMTIA== +"@honkit/html@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/html/-/html-4.0.7.tgz#e22f04d270f225abf68a80215ba4e6491f0d9f07" + integrity sha512-8f3VqAwJqxSmmaiS7tDQpTMNwssXSW6s09AeLstOI8qhyCGf0ajpbfgQ1WrqY4duu6yqaZrubY8o9U7eSgxnVg== dependencies: cheerio "^1.0.0-rc.12" lodash "^4.13.1" q "^1.1.2" -"@honkit/markdown-legacy@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@honkit/markdown-legacy/-/markdown-legacy-4.0.1.tgz#e26279066142b2bea9b70a4efdbc3a1398ce10b3" - integrity sha512-5vzbvXU28SOJLEaEBjZY/57dV2Gol6kpJGkLkBVY4z29aLzugepXLOPuVA9X3X6Dbmzz3ws37siAf7/+8NLihw== +"@honkit/markdown-legacy@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@honkit/markdown-legacy/-/markdown-legacy-4.0.7.tgz#87c62f1df4579fbfa2881ae5db42adfcae950c73" + integrity sha512-wg+ErBy0Mk5Je6VVSbFoSwSvHNSstAzJnKiem1wR9nbrF21M5Ip4mLDZRsuuSPi0HOTFz3AhZMJC+ch+chIIEA== dependencies: - "@honkit/html" "^4.0.1" + "@honkit/html" "^4.0.7" kramed "0.5.6" lodash "^4.13.1" -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -2265,9 +2366,9 @@ integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@ipld/car@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@ipld/car/-/car-5.1.0.tgz#1c8d8cda72138aeceec0cea9560236e59337f434" - integrity sha512-k9pO0YqJvmFGY5pJDhF2Ocz+mRp3C3r4ikr1NrUXkzN/z4JzhE7XbQzUCcm7daq8k4tRqap0fWPjxZwjS9PUcQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/@ipld/car/-/car-5.1.1.tgz#14a26dc97c4783ade491ac811f61885259b9d75e" + integrity sha512-HoFTUqUJL9cPGhC9qRmHCvamfIsj1JllQSQ/Xu9/KN/VNJp8To9Ms4qiZPEMOwcrNFclfYqrahjGYbf4KL/d9A== dependencies: "@ipld/dag-cbor" "^9.0.0" cborg "^1.9.0" @@ -2283,11 +2384,11 @@ multiformats "^11.0.0" "@ipld/dag-cbor@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-9.0.0.tgz#51902f7d19ce2203b04e4cfe0514936b82d09d91" - integrity sha512-zdsiSiYDEOIDW7mmWOYWC9gukjXO+F8wqxz/LfN7iSwTfIyipC8+UQrCbPupFMRb/33XQTZk8yl3My8vUQBRoA== + version "9.0.2" + resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-9.0.2.tgz#a7e384924987b989ce5fa2534bc8af6f4aff401a" + integrity sha512-qME88+wkpjte1FApQAYrBRyfDjx8yL3yXj7HT1/UepMBY7ZqjnZ3LBsqaFAFBMGktmR5npb3Nk2sJan/KcxsNQ== dependencies: - cborg "^1.10.0" + cborg "^2.0.1" multiformats "^11.0.0" "@ipld/dag-json@^9.0.0": @@ -2733,46 +2834,48 @@ resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== +"@jridgewell/source-map@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== dependencies: "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" @@ -2782,9 +2885,9 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== dependencies: "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" @@ -2852,9 +2955,9 @@ err-code "^3.0.1" "@libp2p/crypto@^1.0.0", "@libp2p/crypto@^1.0.3", "@libp2p/crypto@^1.0.4": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-1.0.14.tgz#cfc51ae3034604e2d8ad0e751c7547c0aebd96e6" - integrity sha512-kS9bsRPS6qrbGiMfICjVUTjva7Bq0kCE0DTVGgFixH8e2RtF/7K8bWzO52aTQVPUF7vpId7cmmYAaHde1ZYh0A== + version "1.0.17" + resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-1.0.17.tgz#e64043328c0c866bf7f4cc8560b4f483e9c745dc" + integrity sha512-Oeg0Eb/EvAho0gVkOgemXEgrVxWaT3x/DpFgkBdZ9qGxwq75w/E/oPc7souqBz+l1swfz37GWnwV7bIb4Xv5Ag== dependencies: "@libp2p/interface-keys" "^1.0.2" "@libp2p/interfaces" "^3.2.0" @@ -2922,12 +3025,12 @@ "@multiformats/multiaddr" "^11.0.0" "@libp2p/interface-address-manager@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/interface-address-manager/-/interface-address-manager-2.0.4.tgz#c62853e692306c19619c05d7650b73502e2b7c61" - integrity sha512-RcSi+z+xpVKJXq3BsfLf2rq8zb8VTAFown6uJBu02towMc0enYqqhwlV9DxcCaC573MgQ7gY2s/3XvxQdFraVA== + version "2.0.5" + resolved "https://registry.yarnpkg.com/@libp2p/interface-address-manager/-/interface-address-manager-2.0.5.tgz#913fceed38b7cfe12a1e546764e3428a1fbaffda" + integrity sha512-e2vLstKkYlAG2PZe6SEBpnnP2Y/ej6URue+zAiyjJPuXoOGNzHyLaqcv7MKye171OEf9dg5wv1gFphWcUJJbSA== dependencies: "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" + "@multiformats/multiaddr" "^12.0.0" "@libp2p/interface-connection-encrypter@^3.0.0", "@libp2p/interface-connection-encrypter@^3.0.1": version "3.0.6" @@ -2939,26 +3042,48 @@ uint8arraylist "^2.1.2" "@libp2p/interface-connection-manager@^1.1.0", "@libp2p/interface-connection-manager@^1.1.1": - version "1.3.7" - resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-manager/-/interface-connection-manager-1.3.7.tgz#110a3ea0a8e63461e159df7182e6246625e92bd5" - integrity sha512-GyRa7FXtwjbch4ucFa/jj6vcaQT2RyhUbH3q0tIOTzjntABTMzQrhn3BWOGU5deRp2K7cVOB/OzrdhHdGUxYQA== + version "1.5.0" + resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-manager/-/interface-connection-manager-1.5.0.tgz#959dedb26c3859677f0c889406d1814978e60386" + integrity sha512-luqYVMH3yip12JlSwVmBdo5/qG4YnXQXp2AV4lvxWK0sUhCnI2r3YL4e9ne8o3LAA5CkH3lPqTQ2HSRpmOruFg== dependencies: - "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-connection" "^4.0.0" "@libp2p/interface-peer-id" "^2.0.0" "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" + "@multiformats/multiaddr" "^12.0.0" "@libp2p/interface-connection@^3.0.0", "@libp2p/interface-connection@^3.0.1", "@libp2p/interface-connection@^3.0.2": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-3.1.0.tgz#ba7523842a0a66480a74ac6edcb462618d59cc5d" - integrity sha512-UfluPclTyJp5nBVKQVJ7Xrwp45fFYeIPuyfCpZfTKOfT/srSntA5l+094H6f1bGSj6SbwZ4V7BxCxviJQM5PBg== + version "3.1.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-3.1.1.tgz#f43180e64de118c29f311ee7111f8bbe50e252bf" + integrity sha512-+hxfYLv4jf+MruQEJiJeIyo/wI33/53wRL0XJTkxwQQPAkLHfZWCUY4kY9sXALd3+ASjXAENvJj9VvzZTlkRDQ== dependencies: "@libp2p/interface-peer-id" "^2.0.0" "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" + "@multiformats/multiaddr" "^12.0.0" it-stream-types "^1.0.4" uint8arraylist "^2.1.2" +"@libp2p/interface-connection@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz#fcc830ca891820fac89a4c6bd4fcc2df4874f49b" + integrity sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg== + dependencies: + "@libp2p/interface-peer-id" "^2.0.0" + "@libp2p/interfaces" "^3.0.0" + "@multiformats/multiaddr" "^12.0.0" + it-stream-types "^1.0.4" + uint8arraylist "^2.1.2" + +"@libp2p/interface-connection@^5.0.0", "@libp2p/interface-connection@^5.0.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-5.1.1.tgz#da0572c76da43629d52b8bec6cd092143fae421d" + integrity sha512-ytknMbuuNW72LYMmTP7wFGP5ZTaUSGBCmV9f+uQ55XPcFHtKXLtKWVU/HE8IqPmwtyU8AO7veGoJ/qStMHNRVA== + dependencies: + "@libp2p/interface-peer-id" "^2.0.0" + "@libp2p/interfaces" "^3.0.0" + "@multiformats/multiaddr" "^12.0.0" + it-stream-types "^2.0.1" + uint8arraylist "^2.4.3" + "@libp2p/interface-content-routing@^1.0.2": version "1.0.7" resolved "https://registry.yarnpkg.com/@libp2p/interface-content-routing/-/interface-content-routing-1.0.7.tgz#33f91300c9716fadcb2f6068f10c8ae8283fc534" @@ -2987,9 +3112,9 @@ multiformats "^10.0.0" "@libp2p/interface-keys@^1.0.2", "@libp2p/interface-keys@^1.0.3": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@libp2p/interface-keys/-/interface-keys-1.0.7.tgz#ad09ee7dc9c1495f1dd3e1785133c317befb4d7b" - integrity sha512-DRMPY9LfcnGJKrjaqIkY62U3fW2dya3VLy4x986ExtMrGn4kxIHeQ1IKk8/Vs9CJHTKmXEMID4of1Cjnw4aJpA== + version "1.0.8" + resolved "https://registry.yarnpkg.com/@libp2p/interface-keys/-/interface-keys-1.0.8.tgz#2c6b55136113ae7cf78133d3c459cdf0455b29ae" + integrity sha512-CJ1SlrwuoHMquhEEWS77E+4vv7hwB7XORkqzGQrPQmA9MRdIEZRS64bA4JqCLUDa4ltH0l+U1vp0oZHLT67NEA== "@libp2p/interface-metrics@^3.0.0": version "3.0.0" @@ -3000,16 +3125,16 @@ it-stream-types "^1.0.4" "@libp2p/interface-metrics@^4.0.2": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-metrics/-/interface-metrics-4.0.5.tgz#92af389705bded1fd3ed7979768cf7a0f7b13b47" - integrity sha512-srBeky1ugu1Bzw9VHGg8ta15oLh+P2PEIsg0cI9qzDbtCJaWGq/IIetpfuaJNVOuBD1CGEEbITNmsk4tDwIE0w== + version "4.0.8" + resolved "https://registry.yarnpkg.com/@libp2p/interface-metrics/-/interface-metrics-4.0.8.tgz#06eb45588737d72f074c70df8d1ef067a2d7cf71" + integrity sha512-1b9HjYyJH0m35kvPHipuoz2EtYCxyq34NUhuV8VK1VNtrouMpA3uCKp5FI7yHCA6V6+ux1R3UriKgNFOSGbIXQ== dependencies: - "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-connection" "^5.0.0" "@libp2p/interface-peer-discovery@^1.0.0", "@libp2p/interface-peer-discovery@^1.0.1": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.5.tgz#0fb935d55221e0ff58b4dad93646111a4fc7dcdf" - integrity sha512-R0TN/vDaCJLvRhop0y4qoPqapHxX4AEQDEtqmpayAA1BuPgbBq4fS4mepR3FAMcNva/szeqVCDuI4gDejtCaVg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.1.1.tgz#5de48cbf30d1899de7138afbf4bb7491f91759e8" + integrity sha512-tjbt5DquTyP/JDskasPbIB3lk+zPVL8J9UPfrELZqlslJo9ufsMKyEXcTMMABclTvUsh6uSDgC0JUpUHTeCn8A== dependencies: "@libp2p/interface-peer-info" "^1.0.0" "@libp2p/interfaces" "^3.0.0" @@ -3021,40 +3146,48 @@ dependencies: multiformats "^10.0.0" -"@libp2p/interface-peer-id@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz#445632909d44a8ae2c736bb2aa98c8bf757e8c62" - integrity sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA== +"@libp2p/interface-peer-id@^2.0.0", "@libp2p/interface-peer-id@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-2.0.2.tgz#6302e70b6fc17c451bc3daa11447d059357bcc32" + integrity sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg== dependencies: multiformats "^11.0.0" "@libp2p/interface-peer-info@^1.0.0", "@libp2p/interface-peer-info@^1.0.1", "@libp2p/interface-peer-info@^1.0.2", "@libp2p/interface-peer-info@^1.0.3": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-info/-/interface-peer-info-1.0.8.tgz#8380e9e40d0ec2c8be8e1a43e8a82ae97a0687c4" - integrity sha512-LRvZt/9bZFYW7seAwuSg2hZuPl+FRTAsij5HtyvVwmpfVxipm6yQrKjQ+LiK/SZhIDVsSJ+UjF0mluJj+jeAzQ== + version "1.0.10" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-info/-/interface-peer-info-1.0.10.tgz#566026de95a0817b9e853c982b313541b7960c0b" + integrity sha512-HQlo8NwQjMyamCHJrnILEZz+YwEOXCB2sIIw3slIrhVUYeYlTaia1R6d9umaAeLHa255Zmdm4qGH8rJLRqhCcg== dependencies: "@libp2p/interface-peer-id" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" + "@multiformats/multiaddr" "^12.0.0" "@libp2p/interface-peer-routing@^1.0.0", "@libp2p/interface-peer-routing@^1.0.1": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-routing/-/interface-peer-routing-1.0.8.tgz#6b6fc75f81791aade95c5d77b9719ead4ea5c77e" - integrity sha512-ArJWymWvHqVNyHSZ+7T9av2A4r0f1zTPMKe3+7BOX3n2mB8hP2nNMz/Kiun41TH0t80zMiXE73ZD29is27yt9g== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-routing/-/interface-peer-routing-1.1.1.tgz#b4d3f51d996ce0ea19773db45aff4684e247e6fb" + integrity sha512-/XEhwob9qXjdmI8PBcc+qFin32xmtyoC58nRpq8RliqHY5uOVWiHfZoNtdOXIsNvzVvq5FqlHOWt71ofxXTtlg== dependencies: "@libp2p/interface-peer-id" "^2.0.0" "@libp2p/interface-peer-info" "^1.0.0" "@libp2p/interfaces" "^3.0.0" "@libp2p/interface-peer-store@^1.2.0", "@libp2p/interface-peer-store@^1.2.1", "@libp2p/interface-peer-store@^1.2.2": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-store/-/interface-peer-store-1.2.8.tgz#d36ca696cf4ac377dbdd13b132a378f161e64ad3" - integrity sha512-FM9VLmpg9CUBKZ2RW+J7RrQfQVMksLiC8oqENqHgb/VkPJY3kafbn7HIi0NcK6H/H5VcwBIhL15SUJk66O1K6g== + version "1.2.9" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-store/-/interface-peer-store-1.2.9.tgz#85173892e52ac230abfd45798bfab03dce20ae84" + integrity sha512-jAAlbP1NXpEJOG6Dbr0QdP71TBYjHBc/65Ulwdn4J4f04PW1bI4JIMQeq6+/sLfaGVryvvUT/a52io8UUtB21Q== dependencies: "@libp2p/interface-peer-id" "^2.0.0" "@libp2p/interface-peer-info" "^1.0.0" "@libp2p/interface-record" "^2.0.0" "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" + "@multiformats/multiaddr" "^12.0.0" + +"@libp2p/interface-peer-store@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-store/-/interface-peer-store-2.0.4.tgz#5e9961b37094341216301285edf6fd73f3e796aa" + integrity sha512-jNvBK3O1JPJqSiDN2vkb+PV8bTPnYdP54nxsLtut1BWukNm610lwzwleV7CetFI4bJCn6g+BgBvvq8fdADy0tA== + dependencies: + "@libp2p/interface-peer-id" "^2.0.0" + "@multiformats/multiaddr" "^12.0.0" "@libp2p/interface-pubsub@^2.0.0", "@libp2p/interface-pubsub@^2.0.1", "@libp2p/interface-pubsub@^2.1.0": version "2.1.0" @@ -3068,38 +3201,38 @@ uint8arraylist "^2.0.0" "@libp2p/interface-pubsub@^3.0.0": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface-pubsub/-/interface-pubsub-3.0.6.tgz#416f52d44ebc7e62e6b5caf086aff3e429e4a950" - integrity sha512-c1aVHAhxmEh9IpLBgJyCsMscVDl7YUeP1Iq6ILEQoWiPJhNpQqdfmqyk7ZfrzuBU19VFe1EqH0bLuLDbtfysTQ== + version "3.0.7" + resolved "https://registry.yarnpkg.com/@libp2p/interface-pubsub/-/interface-pubsub-3.0.7.tgz#cc1c7c47c883daddd2b84d83d719b3826943be3b" + integrity sha512-+c74EVUBTfw2sx1GE/z/IjsYO6dhur+ukF0knAppeZsRQ1Kgg6K5R3eECtT28fC6dBWLjFpAvW/7QGfiDAL4RA== dependencies: - "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-connection" "^4.0.0" "@libp2p/interface-peer-id" "^2.0.0" "@libp2p/interfaces" "^3.0.0" it-pushable "^3.0.0" uint8arraylist "^2.1.2" "@libp2p/interface-record@^2.0.0", "@libp2p/interface-record@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface-record/-/interface-record-2.0.6.tgz#44597e144bc3e9960cc64f8c5fcd9822ea3e283f" - integrity sha512-4EtDkY3sbYapWM8++gVHlv31HZXoLmj9I7CRXUKXzFkVE0GLK/A8jYWl7K0lmf2juPjeYm2eHITeA9/wAtIS3w== + version "2.0.7" + resolved "https://registry.yarnpkg.com/@libp2p/interface-record/-/interface-record-2.0.7.tgz#d083776e465cfa66d10e1d3c8e015677a9fc7635" + integrity sha512-AFPytZWI+p8FJWP0xuK5zbSjalLAOIMzEed2lBKdRWvdGBQUHt9ENLTkfkI9G7p/Pp3hlhVzzBXdIErKd+0GxQ== dependencies: "@libp2p/interface-peer-id" "^2.0.0" - uint8arraylist "^2.1.2" + uint8arraylist "^2.4.3" "@libp2p/interface-registrar@^2.0.0", "@libp2p/interface-registrar@^2.0.3": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@libp2p/interface-registrar/-/interface-registrar-2.0.9.tgz#160eaa9294642928f272894c23989f6b719538c3" - integrity sha512-+aZg7SB8fIddE4/PojnHY2Y29vwr4YtnXxro3db/TYWAsWNGlgZusFEZYqBMpV/1KpEFBdi3O7r50bv/2fRusQ== + version "2.0.12" + resolved "https://registry.yarnpkg.com/@libp2p/interface-registrar/-/interface-registrar-2.0.12.tgz#a74b59df7b6c345d8bb45d310469b2d5f923e9bf" + integrity sha512-EyCi2bycC2rn3oPB4Swr7EqBsvcaWd6RcqR6zsImNIG9BKc4/R1gl6iaF861JaELYgYmzBMS31x1rQpVz5UekQ== dependencies: - "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-connection" "^5.0.0" "@libp2p/interface-peer-id" "^2.0.0" "@libp2p/interface-stream-muxer@^3.0.0": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.5.tgz#7cc6e3887e133e1ef54a515c9e21d7b889974c59" - integrity sha512-815aJ+qVswNcTEOuOUTcB+7OLzAfROyjjqoWpK0bD0P/xqTHqOQcqdaDuK02zPuAZqYq9uR3+SoBasrCg6k3zw== + version "3.0.6" + resolved "https://registry.yarnpkg.com/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.6.tgz#f84fae484290b667a1b4ffa51af7d6138765a698" + integrity sha512-wbLrH/bdF8qe0CpPd3BFMSmUs085vc3/8zx5uhXJySD672enAc8Jw9gmAYd1pIqELdqJqBDg9EI0y1XMRxvVkw== dependencies: - "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-connection" "^4.0.0" "@libp2p/interfaces" "^3.0.0" it-stream-types "^1.0.4" @@ -3114,20 +3247,20 @@ it-stream-types "^1.0.4" "@libp2p/interface-transport@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/interface-transport/-/interface-transport-2.1.1.tgz#e463f30b272494c177d3a0bd494545616fd7b624" - integrity sha512-xDM/s8iPN/XfNqD9qNelibRMPKkhOLinXwQeNtoTZjarq+Cg6rtO6/5WBG/49hyI3+r+5jd2eykjPGQbb86NFQ== + version "2.1.3" + resolved "https://registry.yarnpkg.com/@libp2p/interface-transport/-/interface-transport-2.1.3.tgz#3fbc8457013a1552d281a3d94ee7ae0725cc16e0" + integrity sha512-ez+0X+w2Wyw3nJY6mP0DHFgrRnln/miAH4TJLcRfUSJHjGXH5ZfpuK1TnRxXpEUiqOezSbwke06/znI27KpRiQ== dependencies: - "@libp2p/interface-connection" "^3.0.0" + "@libp2p/interface-connection" "^4.0.0" "@libp2p/interface-stream-muxer" "^3.0.0" "@libp2p/interfaces" "^3.0.0" - "@multiformats/multiaddr" "^11.0.0" + "@multiformats/multiaddr" "^12.0.0" it-stream-types "^1.0.4" -"@libp2p/interfaces@^3.0.0", "@libp2p/interfaces@^3.0.2", "@libp2p/interfaces@^3.0.3", "@libp2p/interfaces@^3.2.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.1.tgz#519c77c030b10d776250bbebf65990af53ccb2ee" - integrity sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg== +"@libp2p/interfaces@^3.0.0", "@libp2p/interfaces@^3.0.2", "@libp2p/interfaces@^3.0.3", "@libp2p/interfaces@^3.2.0", "@libp2p/interfaces@^3.3.1": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.2.tgz#5d8079be845b0960939b5b18880e785a4714465a" + integrity sha512-p/M7plbrxLzuQchvNwww1Was7ZeGE2NaOFulMaZBYIihU8z3fhaV+a033OqnC/0NTX/yhfdNOG7znhYq3XoR/g== "@libp2p/kad-dht@^5.0.1": version "5.0.2" @@ -3181,14 +3314,15 @@ varint "^6.0.0" "@libp2p/logger@^2.0.0", "@libp2p/logger@^2.0.1", "@libp2p/logger@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-2.0.6.tgz#ede3a870d2f90ccf1389e2923a7a590672823821" - integrity sha512-PfTGCBT6buiGeww7heG1JucBK2io2sJ2hntNh+gTVohRy4FyEvZixnWfIVD2rCM8EsbZu3Hmt/qqetzX5BrziQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-2.1.1.tgz#e12e6c320ea64252af954bcec996895098d1cd36" + integrity sha512-2UbzDPctg3cPupF6jrv6abQnAUTrbLybNOj0rmmrdGm1cN2HJ1o/hBu0sXuq4KF9P1h/eVRn1HIRbVIEKnEJrA== dependencies: - "@libp2p/interface-peer-id" "^2.0.0" - debug "^4.3.3" - interface-datastore "^8.0.0" - multiformats "^11.0.0" + "@libp2p/interface-peer-id" "^2.0.2" + "@multiformats/multiaddr" "^12.1.3" + debug "^4.3.4" + interface-datastore "^8.2.0" + multiformats "^11.0.2" "@libp2p/mdns@^5.0.0": version "5.1.1" @@ -3207,17 +3341,17 @@ multiformats "^10.0.0" "@libp2p/mplex@^7.0.0": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-7.1.1.tgz#557567fb6575c471eaa283175c2305d3ef6045fb" - integrity sha512-0owK1aWgXXtjiohXtjwLV7Ehjdj96eBtsapVt7AzlHA+W8uYnI+x058thq3MisyMDlHiiE3BTh6fEf+t2/0dUw== + version "7.1.7" + resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-7.1.7.tgz#ee14192f5e82aa3710ae4a102875278aea0bb127" + integrity sha512-8eJ6HUL3bM8ck0rb/NJ04+phBUVBMocxH/kuc2Nypn8RX9ezihV7srGGhG5N7muaMwJrRbYkFhIV4GH+8WTZUg== dependencies: - "@libp2p/interface-connection" "^3.0.1" + "@libp2p/interface-connection" "^4.0.0" "@libp2p/interface-stream-muxer" "^3.0.0" + "@libp2p/interfaces" "^3.2.0" "@libp2p/logger" "^2.0.0" abortable-iterator "^4.0.2" - any-signal "^3.0.0" + any-signal "^4.0.1" benchmark "^2.1.4" - err-code "^3.0.1" it-batched-bytes "^1.0.0" it-pushable "^3.1.0" it-stream-types "^1.0.4" @@ -3227,23 +3361,21 @@ varint "^6.0.0" "@libp2p/multistream-select@^3.0.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-3.1.2.tgz#2302ac57daa443ceced8481a83c58e39ab601b3f" - integrity sha512-NfF0fwQM4sqiLuNGBVc9z2mfz3OigOfyLJ5zekRBGYHkbKWrBRFS3FligUPr9roCOzH6ojjDkKVd5aK9/llfJQ== + version "3.1.8" + resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-3.1.8.tgz#2071d18da5afd5b162adf427beb8b4c9a67211b8" + integrity sha512-Ap6b3+69+j4R3KbqlQsHaa2OHGc2+YwwJcGU+VdiRS+RDM5mQdOjG0mGW2mRFDwrQKq9UZIkxo8hwzCZNkxFjA== dependencies: - "@libp2p/interfaces" "^3.0.2" + "@libp2p/interfaces" "^3.2.0" "@libp2p/logger" "^2.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" - it-first "^2.0.0" - it-handshake "^4.1.2" - it-length-prefixed "^8.0.3" - it-merge "^2.0.0" - it-pipe "^2.0.4" + abortable-iterator "^5.0.0" + it-first "^3.0.1" + it-handshake "^4.1.3" + it-length-prefixed "^9.0.0" + it-merge "^3.0.0" + it-pipe "^3.0.0" it-pushable "^3.1.0" it-reader "^6.0.1" - it-stream-types "^1.0.4" - p-defer "^4.0.0" + it-stream-types "^2.0.1" uint8arraylist "^2.3.1" uint8arrays "^4.0.2" @@ -3432,19 +3564,19 @@ "@libp2p/interface-metrics" "^3.0.0" "@libp2p/utils@^3.0.0", "@libp2p/utils@^3.0.1", "@libp2p/utils@^3.0.2": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-3.0.4.tgz#2eb9b8694fa1c3e25e9fa7aa98907a0660aea278" - integrity sha512-EWJNJtlop2ylmGE1BNiMA0u4eTLKoY0LbZ/DOvSDs9VlGSLua9J+LUjp6XV8lazGv7l1rOLiU+1hP5fcmg1+eg== + version "3.0.11" + resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-3.0.11.tgz#d1611c3d7836eb32e5fc8bcc19c620e77471f44f" + integrity sha512-d8ZQnu2o78TG7Oy4G6qFy5v/kNBtfgQjy1RpiQAEAB6AOSi1Oq8nLebrgCqSHfrtOIcj6a+G6ImYBaRE4b03CA== dependencies: "@achingbrain/ip-address" "^8.1.0" - "@libp2p/interface-connection" "^3.0.2" - "@libp2p/interface-peer-store" "^1.2.1" + "@libp2p/interface-connection" "^5.0.1" + "@libp2p/interface-peer-store" "^2.0.0" + "@libp2p/interfaces" "^3.2.0" "@libp2p/logger" "^2.0.0" - "@multiformats/multiaddr" "^11.0.0" - abortable-iterator "^4.0.2" - err-code "^3.0.1" + "@multiformats/multiaddr" "^12.0.0" + abortable-iterator "^5.0.0" is-loopback-addr "^2.0.1" - it-stream-types "^1.0.4" + it-stream-types "^2.0.1" private-ip "^3.0.0" uint8arraylist "^2.3.2" @@ -3499,17 +3631,17 @@ uint8arrays "^4.0.2" "@libp2p/websockets@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/websockets/-/websockets-5.0.5.tgz#be2ac6e4306e0f6261bb093bd2b9bf1bc49cd640" - integrity sha512-gp6OI/2cBBkbUKw7XougNC8/XZe1fe5eSngWDSE99/wGykwDzyKPnYikUAGhJ4X1VuBDAjogZuJp7PtDif1QPQ== + version "5.0.10" + resolved "https://registry.yarnpkg.com/@libp2p/websockets/-/websockets-5.0.10.tgz#87689c083a7b7e0fa98ab30f0791094c2545f83c" + integrity sha512-q8aKm0rhDxZjc4TzDpB0quog4pViFnz+Ok+UbGEk3xXxHwT3QCxaDVPKMemMqN/1N3OahVvcodpcvFSuWmus+A== dependencies: - "@libp2p/interface-connection" "^3.0.2" + "@libp2p/interface-connection" "^4.0.0" "@libp2p/interface-transport" "^2.0.0" "@libp2p/interfaces" "^3.0.3" "@libp2p/logger" "^2.0.0" "@libp2p/utils" "^3.0.2" - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" + "@multiformats/mafmt" "^12.0.0" + "@multiformats/multiaddr" "^12.0.0" "@multiformats/multiaddr-to-uri" "^9.0.2" abortable-iterator "^4.0.2" it-ws "^5.0.6" @@ -3518,15 +3650,15 @@ wherearewe "^2.0.1" ws "^8.12.1" -"@lit-labs/ssr-dom-shim@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz#427e19a2765681fd83411cd72c55ba80a01e0523" - integrity sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw== +"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" + integrity sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ== "@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.1.tgz#0d958b6d479d0e3db5fc1132ecc4fa84be3f0b93" - integrity sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA== + version "1.6.2" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.2.tgz#c256690f82f2d7d0ffb0b1cdf68dcb1ec86cea28" + integrity sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA== dependencies: "@lit-labs/ssr-dom-shim" "^1.0.0" @@ -3591,24 +3723,62 @@ neon-cli "0.4.0" node-pre-gyp "0.14.0" +"@mdx-js/mdx@^2.2.1", "@mdx-js/mdx@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-2.3.0.tgz#d65d8c3c28f3f46bb0e7cb3bf7613b39980671a9" + integrity sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/mdx" "^2.0.0" + estree-util-build-jsx "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-util-to-js "^1.1.0" + estree-walker "^3.0.0" + hast-util-to-estree "^2.0.0" + markdown-extensions "^1.0.0" + periscopic "^3.0.0" + remark-mdx "^2.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + unified "^10.0.0" + unist-util-position-from-estree "^1.0.0" + unist-util-stringify-position "^3.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + +"@mdx-js/react@^2.2.1", "@mdx-js/react@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-2.3.0.tgz#4208bd6d70f0d0831def28ef28c26149b03180b3" + integrity sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g== + dependencies: + "@types/mdx" "^2.0.0" + "@types/react" ">=16" + "@msgpack/msgpack@^2.7.2": version "2.8.0" resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== "@multiformats/mafmt@^11.0.2", "@multiformats/mafmt@^11.0.3": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-11.1.0.tgz#0ba5d5556b7e39afdb02fc5f04d0cc8517dd0221" - integrity sha512-ZGuP26SIbBZutDN/QhqGwuu7b1zTO9DLvG4l3fh15ambPmcwS811MQIyW+d+9Vl7ASheB0qJq0sJrMKsHS3dXA== + version "11.1.2" + resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-11.1.2.tgz#c03ef4022c795b7f230b136f2f974fc263eac4f1" + integrity sha512-3n1o5eLU7WzTAPLuz3AodV7Iql6NWf7Ws8fqVaGT7o5nDDabUPYGBm2cZuh3OrqmwyCY61LrNUIsjzivU6UdpQ== dependencies: - "@multiformats/multiaddr" "^11.0.0" + "@multiformats/multiaddr" "^12.0.0" + +"@multiformats/mafmt@^12.0.0": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-12.1.5.tgz#bb4d470bbfb73bb4f1fe582ef7263ffe95008771" + integrity sha512-hz8CreKgs99pNIfea5/BHTPY90nrVLDHgGNrrHPCe51pkO+OM95PiF43q7ivIlytU++asOxcp+FhZymIwYy6LA== + dependencies: + "@multiformats/multiaddr" "^12.0.0" "@multiformats/multiaddr-to-uri@^9.0.1", "@multiformats/multiaddr-to-uri@^9.0.2": - version "9.0.2" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.2.tgz#4461df67f0c5cd02b21e1d0d1e34831d849b62a7" - integrity sha512-vrWmfFadmix5Ab9l//oRQdQ7O3J5bGJpJRMSm21bHlQB0XV4xtNU6vMZBVXeu3Su79LgflEp37cjTFE3yKf3Hw== + version "9.0.7" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.7.tgz#44881352b1d9d98b53451982cd433f0f45ad7e24" + integrity sha512-i3ldtPMN6XJt+MCi34hOl0wGuGEHfWWMw6lmNag5BpckPwPTf9XGOOFMmh7ed/uO3Vjah/g173iOe61HTQVoBA== dependencies: - "@multiformats/multiaddr" "^11.0.0" + "@multiformats/multiaddr" "^12.0.0" "@multiformats/multiaddr@^11.0.0": version "11.6.1" @@ -3622,10 +3792,23 @@ uint8arrays "^4.0.2" varint "^6.0.0" +"@multiformats/multiaddr@^12.0.0", "@multiformats/multiaddr@^12.1.3": + version "12.1.3" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-12.1.3.tgz#aff5aa61ec19c5320f0b756e88c3bbaac8d1c7af" + integrity sha512-rNcS3njkkSwuGF4x58L47jGH5kBXBfJPNsWnrt0gujhNYn6ReDt1je7vEU5/ddrVj0TStgxw+Hm+TkYDK0b60w== + dependencies: + "@chainsafe/is-ip" "^2.0.1" + "@chainsafe/netmask" "^2.0.0" + "@libp2p/interfaces" "^3.3.1" + dns-over-http-resolver "^2.1.0" + multiformats "^11.0.0" + uint8arrays "^4.0.2" + varint "^6.0.0" + "@multiformats/murmur3@^2.0.0": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@multiformats/murmur3/-/murmur3-2.1.3.tgz#eb690132bcc898d74257287d133cdf693f81f888" - integrity sha512-YvLK1IrLnRckPsvXhOkZjaIGNonsEdD1dL3NPSaLilV/WjVYeBgnNZXTUsaPzFXGrIFM7motx+yCmmqzXO6gtQ== + version "2.1.4" + resolved "https://registry.yarnpkg.com/@multiformats/murmur3/-/murmur3-2.1.4.tgz#e93cce560c381f8326b2271facf2ea04f6fd8a66" + integrity sha512-qHHmZKD1Dy6PDi35pAowE1pQtnH7gwaJpUE/Ju+cOYVdWD4T8VVtKAumGCxwd31JKyNC0W1IzAaHQz1dnXXvBw== dependencies: multiformats "^11.0.0" murmurhash3js-revisited "^3.0.0" @@ -3638,6 +3821,83 @@ "@multiformats/multiaddr" "^11.0.0" is-ip "^5.0.0" +"@napi-rs/simple-git-android-arm-eabi@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.8.tgz#303bea1ec00db24466e3b3ba13de337d87c5371b" + integrity sha512-JJCejHBB1G6O8nxjQLT4quWCcvLpC3oRdJJ9G3MFYSCoYS8i1bWCWeU+K7Br+xT+D6s1t9q8kNJAwJv9Ygpi0g== + +"@napi-rs/simple-git-android-arm64@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.8.tgz#42c8d04287364fd1619002629fa52183dcf462ee" + integrity sha512-mraHzwWBw3tdRetNOS5KnFSjvdAbNBnjFLA8I4PwTCPJj3Q4txrigcPp2d59cJ0TC51xpnPXnZjYdNwwSI9g6g== + +"@napi-rs/simple-git-darwin-arm64@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.8.tgz#e210808e6d646d6efecea84c67ced8eb44a8f821" + integrity sha512-ufy/36eI/j4UskEuvqSH7uXtp3oXeLDmjQCfKJz3u5Vx98KmOMKrqAm2H81AB2WOtCo5mqS6PbBeUXR8BJX8lQ== + +"@napi-rs/simple-git-darwin-x64@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.8.tgz#d717525c33e0dfd8a6d6215da2fcbc0ad40011e1" + integrity sha512-Vb21U+v3tPJNl+8JtIHHT8HGe6WZ8o1Tq3f6p+Jx9Cz71zEbcIiB9FCEMY1knS/jwQEOuhhlI9Qk7d4HY+rprA== + +"@napi-rs/simple-git-linux-arm-gnueabihf@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.8.tgz#03e7b2dd299c10e61bbf29f405ea74f6571cf6a1" + integrity sha512-6BPTJ7CzpSm2t54mRLVaUr3S7ORJfVJoCk2rQ8v8oDg0XAMKvmQQxOsAgqKBo9gYNHJnqrOx3AEuEgvB586BuQ== + +"@napi-rs/simple-git-linux-arm64-gnu@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.8.tgz#945123f75c9a36fd0364e789ce06cd29a74a43cc" + integrity sha512-qfESqUCAA/XoQpRXHptSQ8gIFnETCQt1zY9VOkplx6tgYk9PCeaX4B1Xuzrh3eZamSCMJFn+1YB9Ut8NwyGgAA== + +"@napi-rs/simple-git-linux-arm64-musl@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.8.tgz#2c20a0bff7c08f60b033ed7056dcb07bbbff8310" + integrity sha512-G80BQPpaRmQpn8dJGHp4I2/YVhWDUNJwcCrJAtAdbKFDCMyCHJBln2ERL/+IEUlIAT05zK/c1Z5WEprvXEdXow== + +"@napi-rs/simple-git-linux-x64-gnu@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.8.tgz#980e22b7376252a0767298ec801d374d97553da1" + integrity sha512-NI6o1sZYEf6vPtNWJAm9w8BxJt+LlSFW0liSjYe3lc3e4dhMfV240f0ALeqlwdIldRPaDFwZSJX5/QbS7nMzhw== + +"@napi-rs/simple-git-linux-x64-musl@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.8.tgz#edca3b2833dc5d3fc9151f5b931f7b14478ccca4" + integrity sha512-wljGAEOW41er45VTiU8kXJmO480pQKzsgRCvPlJJSCaEVBbmo6XXbFIXnZy1a2J3Zyy2IOsRB4PVkUZaNuPkZQ== + +"@napi-rs/simple-git-win32-arm64-msvc@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.8.tgz#3ac4c7fe816a2cdafabd091ded76161d1ba1fe88" + integrity sha512-QuV4QILyKPfbWHoQKrhXqjiCClx0SxbCTVogkR89BwivekqJMd9UlMxZdoCmwLWutRx4z9KmzQqokvYI5QeepA== + +"@napi-rs/simple-git-win32-x64-msvc@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.8.tgz#3b825bc2cb1c7ff535a3ca03768142d68bbf5c19" + integrity sha512-UzNS4JtjhZhZ5hRLq7BIUq+4JOwt1ThIKv11CsF1ag2l99f0123XvfEpjczKTaa94nHtjXYc2Mv9TjccBqYOew== + +"@napi-rs/simple-git@^0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git/-/simple-git-0.1.8.tgz#391cb58436d50bd32d924611d45bdc41f5e7607a" + integrity sha512-BvOMdkkofTz6lEE35itJ/laUokPhr/5ToMGlOH25YnhLD2yN1KpRAT4blW9tT8281/1aZjW3xyi73bs//IrDKA== + optionalDependencies: + "@napi-rs/simple-git-android-arm-eabi" "0.1.8" + "@napi-rs/simple-git-android-arm64" "0.1.8" + "@napi-rs/simple-git-darwin-arm64" "0.1.8" + "@napi-rs/simple-git-darwin-x64" "0.1.8" + "@napi-rs/simple-git-linux-arm-gnueabihf" "0.1.8" + "@napi-rs/simple-git-linux-arm64-gnu" "0.1.8" + "@napi-rs/simple-git-linux-arm64-musl" "0.1.8" + "@napi-rs/simple-git-linux-x64-gnu" "0.1.8" + "@napi-rs/simple-git-linux-x64-musl" "0.1.8" + "@napi-rs/simple-git-win32-arm64-msvc" "0.1.8" + "@napi-rs/simple-git-win32-x64-msvc" "0.1.8" + +"@next/env@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.5.tgz#35b126d2af0d6d60ef73e3ef84b089aa1813c0e0" + integrity sha512-SG/gKH6eij4vwQy87b/3mbpQ1X3x2vUdnpwq6/qL2IQWjtq58EY/UuNAp9CoEZoC9sI4L9AD1r+73Z9r4d3uug== + "@next/eslint-plugin-next@12.3.4": version "12.3.4" resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz#e7dc00e2e89ed361f111d687b8534483ec15518b" @@ -3645,6 +3905,51 @@ dependencies: glob "7.1.7" +"@next/swc-darwin-arm64@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.5.tgz#54eb1fb2521a18e1682214c416cc44f3721dd9c8" + integrity sha512-XvTzi2ASUN5bECFIAAcBiSoDb0xsq+KLj4F0bof4d4rdc+FgOqLvseGQaOXwVi1TIh5bHa7o4b6droSJMO5+2g== + +"@next/swc-darwin-x64@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.5.tgz#08131a786b3756650fa0b54ddc22baa59c0d5c4e" + integrity sha512-NQdqal/VKAqlJTuzhjZmNtdo8QSqwmfO7b2xJSAengTEVxQvsH76oGEzQeIv8Ci4NP6DysAFtFrJq++TmIxcUA== + +"@next/swc-linux-arm64-gnu@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.5.tgz#7e54eed32d2ff487323716920fe4df48a45f5d70" + integrity sha512-nB8TjtpJCXtzIFjYOMbnQu68ajkA8QK58TreHjTGojSQjsF0StDqo5zFHglVVVHrd8d3N/+EjC18yFNSWnd/ZA== + +"@next/swc-linux-arm64-musl@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.5.tgz#13835a43c4e7781c56b096a8a5f7f58997f7feff" + integrity sha512-W126XUW599OV3giSH9Co40VpT8VAOT47xONVHXZaYEpeca0qEevjj6WUr5IJu/8u+XGWm5xI1S0DYWjR6W+olw== + +"@next/swc-linux-x64-gnu@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.5.tgz#7567fa3bcd5f3f2859985aa55a6de95259cdfe5f" + integrity sha512-ZbPLO/oztQdtjGmWvGhRmtkZ6j9kQqg65kiO7F7Ijj7ojTtu3hh/vY+XRsHa/4Cse6HgyJ8XGZJMGoLb8ecQfQ== + +"@next/swc-linux-x64-musl@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.5.tgz#40731b7e7cf999b12a4ebcaffa56b74cca9acf2b" + integrity sha512-f+/h8KMNixVUoRB+2vza8I+jsthJ4KcvopGUsDIUHe7Q4t+m8nKwGFBeyNu9qNIenYK5g5QYEsSwYFEqZylrTQ== + +"@next/swc-win32-arm64-msvc@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.5.tgz#86b94b32e19f76ca5f41f05942891d6e45f8053b" + integrity sha512-dvtPQZ5+J+zUE1uq7gP853Oj63e+n0T1ydZ/yRdVh7d8zW9ZFuC9fFrg3MqP1cv1NPPur8rrTqDKN2mRBkSSBw== + +"@next/swc-win32-ia32-msvc@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.5.tgz#c5045cb61bd21c98b638559a35f254f6d664c507" + integrity sha512-gK9zwGe25x31S4AjPy3Bf2niQvHIAbmwgkzmqWG3OmD4K2Z/Dh2ju4vuyzPzIt0pwQe4B520meP9NizTBmVWSg== + +"@next/swc-win32-x64-msvc@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.5.tgz#e46591701733142b2ffd219f3e56a9e1bc06d958" + integrity sha512-iyNQVc7eGehrik9RJt9xGcnO6b/pi8C7GCfg8RGenx1IlalEKbYRgBJloF7DQzwlrV47E9bQl8swT+JawaNcKA== + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" @@ -3683,7 +3988,7 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": +"@peculiar/asn1-schema@^2.3.6": version "2.3.6" resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== @@ -3700,15 +4005,15 @@ tslib "^2.0.0" "@peculiar/webcrypto@^1.1.3", "@peculiar/webcrypto@^1.1.6", "@peculiar/webcrypto@^1.1.7": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz#821493bd5ad0f05939bd5f53b28536f68158360a" - integrity sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw== + version "1.4.3" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" + integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== dependencies: - "@peculiar/asn1-schema" "^2.3.0" + "@peculiar/asn1-schema" "^2.3.6" "@peculiar/json-schema" "^1.1.12" pvtsutils "^1.3.2" - tslib "^2.4.1" - webcrypto-core "^1.7.4" + tslib "^2.5.0" + webcrypto-core "^1.7.7" "@perspect3vism/rollup-plugin-dna@^0.0.2": version "0.0.2" @@ -3730,10 +4035,10 @@ schema-utils "^3.0.0" source-map "^0.7.3" -"@pnpm/config.env-replace@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz#c76fa65847c9554e88d910f264c2ba9a1575e833" - integrity sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA== +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== "@pnpm/network.ca-file@^1.0.1": version "1.0.2" @@ -3743,18 +4048,18 @@ graceful-fs "4.2.10" "@pnpm/npm-conf@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.1.0.tgz#1bbecd961a1ea447f209556728e2dcadddb0bca6" - integrity sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw== + version "2.2.2" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" + integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== dependencies: - "@pnpm/config.env-replace" "^1.0.0" + "@pnpm/config.env-replace" "^1.1.0" "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" -"@popperjs/core@^2.9.2": - version "2.11.6" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" - integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== +"@popperjs/core@^2.11.6", "@popperjs/core@^2.9.2": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@preact/preset-vite@^2.4.0": version "2.5.0" @@ -3770,30 +4075,30 @@ kolorist "^1.2.10" resolve "^1.20.0" -"@prefresh/babel-plugin@0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@prefresh/babel-plugin/-/babel-plugin-0.4.4.tgz#54872f9f938d3adff587037ab987c5e6449bdfee" - integrity sha512-/EvgIFMDL+nd20WNvMO0JQnzIl1EJPgmSaSYrZUww7A+aSdKsi37aL07TljrZR1cBMuzFxcr4xvqsUQLFJEukw== +"@prefresh/babel-plugin@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@prefresh/babel-plugin/-/babel-plugin-0.5.0.tgz#61d8ef959007390077c9eddb7e9307c46e19277c" + integrity sha512-joAwpkUDwo7ZqJnufXRGzUb+udk20RBgfA8oLPBh5aJH2LeStmV1luBfeJTztPdyCscC2j2SmZ/tVxFRMIxAEw== -"@prefresh/core@^1.3.3": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@prefresh/core/-/core-1.4.1.tgz#b75a917b500e5373aeb9c485f18ca91e1d4433a8" - integrity sha512-og1vaBj3LMJagVncNrDb37Gqc0cWaUcDbpVt5hZtsN4i2Iwzd/5hyTsDHvlMirhSym3wL9ihU0Xa2VhSaOue7g== +"@prefresh/core@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@prefresh/core/-/core-1.5.1.tgz#2f51c0dd509a7b302d67ee889815653abdf4c0d1" + integrity sha512-e0mB0Oxtog6ZpKPDBYbzFniFJDIktuKMzOHp7sguntU+ot0yi6dbhJRE9Css1qf0u16wdSZjpL2W2ODWuU05Cw== -"@prefresh/utils@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@prefresh/utils/-/utils-1.1.3.tgz#c764c6c8f0917f0a72ae14ec57ed8befde3f9bac" - integrity sha512-Mb9abhJTOV4yCfkXrMrcgFiFT7MfNOw8sDa+XyZBdq/Ai2p4Zyxqsb3EgHLOEdHpMj6J9aiZ54W8H6FTam1u+A== +"@prefresh/utils@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@prefresh/utils/-/utils-1.2.0.tgz#cbdfe549b207041e38bb6cc382408b30cd24fec8" + integrity sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ== "@prefresh/vite@^2.2.8", "@prefresh/vite@^2.2.9": - version "2.2.9" - resolved "https://registry.yarnpkg.com/@prefresh/vite/-/vite-2.2.9.tgz#e719126fbba3f0de93f1f95d494ab44d064243c1" - integrity sha512-1ERBF85Ja9/lkrfaltmo4Gca7R2ClQPSHHDDysFgfvPzHmLUeyB0x9WHwhwov/AA1DnyPhsfYT54z3yQd8XrgA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@prefresh/vite/-/vite-2.4.0.tgz#53fd34b8df21e4e4b03f5147a3277bb3395411d0" + integrity sha512-makifAztmlWCMx79E8tl/gMKPKe3WartplGk+GTqtXSZ/JqoTiN4nkF9GqlhATqGEvsdtRnlDGKQ09s7fneJ/Q== dependencies: "@babel/core" "^7.9.6" - "@prefresh/babel-plugin" "0.4.4" - "@prefresh/core" "^1.3.3" - "@prefresh/utils" "^1.1.2" + "@prefresh/babel-plugin" "0.5.0" + "@prefresh/core" "^1.5.1" + "@prefresh/utils" "^1.2.0" "@rollup/pluginutils" "^4.1.0" "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": @@ -3849,10 +4154,10 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@remix-run/router@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.4.0.tgz#74935d538e4df8893e47831a7aea362f295bcd39" - integrity sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q== +"@remix-run/router@1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.6.3.tgz#8205baf6e17ef93be35bf62c37d2d594e9be0dad" + integrity sha512-EXJysQ7J3veRECd0kZFQwYYd5sJMcq2O/m60zu1W2l3oVQ9xtub8jTOtYRE0+M2iomyG/W3Ps7+vp2kna0C27Q== "@rollup/plugin-alias@^3.1.5": version "3.1.9" @@ -3986,9 +4291,9 @@ picomatch "^2.2.2" "@rushstack/eslint-patch@^1.1.0", "@rushstack/eslint-patch@^1.1.3": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" - integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== + version "1.3.2" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.2.tgz#31b9c510d8cada9683549e1dbb4284cca5001faf" + integrity sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw== "@samverschueren/stream-to-observable@^0.3.0", "@samverschueren/stream-to-observable@^0.3.1": version "0.3.1" @@ -4040,9 +4345,9 @@ integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@sindresorhus/is@^5.2.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" - integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== + version "5.4.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.4.1.tgz#c4383ce702fb90531c3d310506bab89e70427c53" + integrity sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw== "@sinonjs/commons@^1.7.0": version "1.8.6" @@ -4065,12 +4370,12 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== +"@sinonjs/fake-timers@^10.0.2", "@sinonjs/fake-timers@^10.1.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz#b3e322a34c5f26e3184e7f6115695f299c1b1194" + integrity sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg== dependencies: - "@sinonjs/commons" "^2.0.0" + "@sinonjs/commons" "^3.0.0" "@sinonjs/fake-timers@^6.0.1": version "6.0.1" @@ -4086,10 +4391,10 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/samsam@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-7.0.1.tgz#5b5fa31c554636f78308439d220986b9523fc51f" - integrity sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw== +"@sinonjs/samsam@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" + integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== dependencies: "@sinonjs/commons" "^2.0.0" lodash.get "^4.4.2" @@ -4397,6 +4702,13 @@ "@svgr/plugin-svgo" "^5.5.0" loader-utils "^2.0.0" +"@swc/helpers@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + dependencies: + tslib "^2.4.0" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -4419,9 +4731,9 @@ defer-to-connect "^2.0.1" "@tauri-apps/api@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" - integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.4.0.tgz#b4013ca3d17b853f7df29fe14079ebb4d52dbffa" + integrity sha512-Jd6HPoTM1PZSFIzq7FB8VmMu3qSSyo/3lSwLpoapW+lQ41CL5Dow2KryLg+gyazA/58DRWI9vu/XpEeHK4uMdw== "@tauri-apps/cli-darwin-arm64@1.2.1": version "1.2.1" @@ -4548,6 +4860,14 @@ traverse "^0.6.7" unified "^9.2.2" +"@theguild/remark-mermaid@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@theguild/remark-mermaid/-/remark-mermaid-0.0.1.tgz#984f0f03bee4809cde02abbe4dbdbc192c806109" + integrity sha512-MbLi7CIn25r0MypN1yaTrvuQHBE/UXy/DKfVjaLlXx5ut4PasOwzGIJihzM4d9kqNADJKilHpQWcd66ivbvJEQ== + dependencies: + mermaid "10.2.1" + unist-util-visit "4.1.2" + "@tokenizer/token@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" @@ -4698,9 +5018,9 @@ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@tsconfig/svelte@^1.0.0": version "1.0.13" @@ -4714,15 +5034,22 @@ dependencies: "@types/node" "*" +"@types/acorn@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" + integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== + dependencies: + "@types/estree" "*" + "@types/aria-query@^5.0.1": version "5.0.1" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" - integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" + integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -4746,11 +5073,11 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" - integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" + integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== dependencies: - "@babel/types" "^7.3.0" + "@babel/types" "^7.20.7" "@types/bn.js@*": version "5.1.1" @@ -4792,14 +5119,14 @@ "@types/chai" "*" "@types/chai@*": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== + version "4.3.5" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" + integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== "@types/connect-history-api-fallback@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + version "1.5.0" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" + integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" @@ -4816,6 +5143,13 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== +"@types/debug@^4.0.0": + version "4.1.8" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" + integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ== + dependencies: + "@types/ms" "*" + "@types/dns-packet@*": version "5.2.4" resolved "https://registry.yarnpkg.com/@types/dns-packet/-/dns-packet-5.2.4.tgz#0de4ee48f900a62b014ce61a3c9ab5d33dc06b0d" @@ -4839,28 +5173,30 @@ "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.21.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.2.tgz#2b61b43a8b0e66006856a2a4c8e51f6f773ead27" - integrity sha512-EMpxUyystd3uZVByZap1DACsMXvb82ypQnGn89e1Y0a+LYu3JJscUd/gqhRsVFDkaD2MIiWo0MT8EfXr3DGRKw== + version "8.40.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.2.tgz#2833bc112d809677864a4b0e7d1de4f04d7dac2d" + integrity sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": +"@types/estree-jsx@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.0.tgz#7bfc979ab9f692b492017df42520f7f765e98df1" + integrity sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ== + dependencies: + "@types/estree" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - "@types/expect@*": version "24.3.0" resolved "https://registry.yarnpkg.com/@types/expect/-/expect-24.3.0.tgz#d7cab8b3c10c2d92a0cbb31981feceb81d3486f1" @@ -4869,13 +5205,14 @@ expect "*" "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.33": - version "4.17.33" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" - integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" + "@types/send" "*" "@types/express-serve-static-core@4.17.31": version "4.17.31" @@ -4933,6 +5270,13 @@ dependencies: "@types/node" "*" +"@types/hast@^2.0.0": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" + integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + dependencies: + "@types/unist" "*" + "@types/html-minifier-terser@^6.0.0": version "6.1.0" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" @@ -4944,9 +5288,9 @@ integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== "@types/http-proxy@^1.17.8": - version "1.17.10" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.10.tgz#e576c8e4a0cc5c6a138819025a88e167ebb38d6c" - integrity sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g== + version "1.17.11" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" + integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== dependencies: "@types/node" "*" @@ -4977,9 +5321,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.2.tgz#13ca45d528a0f81a4792b7df199f58ad46c2a0e3" - integrity sha512-bbne90W7is+m88ezmZrLiTpp41tIoTdvPC5t3gLoNgu/6qbGdWTC2JWqPWQRJn2Q7rVYTr8aTWqOjhGJDXyvAQ== + version "29.5.2" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.2.tgz#86b4afc86e3a8f3005b297ed8a72494f89e6395b" + integrity sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -5000,15 +5344,15 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" -"@types/js-yaml@^4.0.2": +"@types/js-yaml@^4.0.0", "@types/js-yaml@^4.0.2": version "4.0.5" resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== "@types/json-stable-stringify@^1.0.33": version "1.0.34" @@ -5020,6 +5364,16 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/katex@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.14.0.tgz#b84c0afc3218069a5ad64fe2a95321881021b5fe" + integrity sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA== + +"@types/katex@^0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.16.0.tgz#0e640df3647fe237212be863e1f5111eb9754f93" + integrity sha512-hz+S3nV6Mym5xPbT9fnO8dDhBFQguMYpY0Ipxv06JMi1ORgnEM4M1ymWDUhUNer3ElLmT583opRo4RzxKmh9jw== + "@types/keyv@^3.1.1", "@types/keyv@^3.1.4": version "3.1.4" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" @@ -5027,15 +5381,10 @@ dependencies: "@types/node" "*" -"@types/linkify-it@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9" - integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== - "@types/lodash@*": - version "4.14.191" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" - integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + version "4.14.195" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" + integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== "@types/long@^4.0.0", "@types/long@^4.0.1": version "4.0.2" @@ -5049,31 +5398,28 @@ dependencies: "@types/lodash" "*" -"@types/markdown-it@^12.2.3": - version "12.2.3" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" - integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== - dependencies: - "@types/linkify-it" "*" - "@types/mdurl" "*" - "@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + version "3.0.11" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.11.tgz#dc130f7e7d9306124286f6d6cee40cf4d14a3dc0" + integrity sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw== dependencies: "@types/unist" "*" -"@types/mdurl@*": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" - integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== +"@types/mdx@^2.0.0": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.5.tgz#9a85a8f70c7c4d9e695a21d5ae5c93645eda64b1" + integrity sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg== "@types/mime@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + "@types/minimatch@*": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" @@ -5094,6 +5440,11 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + "@types/multicast-dns@^7.2.1": version "7.2.1" resolved "https://registry.yarnpkg.com/@types/multicast-dns/-/multicast-dns-7.2.1.tgz#6527b28ce62bcdc08a38f6a329a3d23145c99d95" @@ -5103,17 +5454,22 @@ "@types/node" "*" "@types/node-fetch@^2.5.11", "@types/node-fetch@^2.6.1": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + version "2.6.4" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" + integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== dependencies: "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@>=6", "@types/node@^18.0.0": - version "18.15.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.3.tgz#f0b991c32cfc6a4e7f3399d6cb4b8cf9a0315014" - integrity sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw== +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@>=6": + version "20.3.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe" + integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg== + +"@types/node@18.11.10": + version "18.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" + integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== "@types/node@^10.1.0": version "10.17.60" @@ -5126,14 +5482,19 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^14.11.2": - version "14.18.38" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.38.tgz#2169ca4b70aa59aa5a8923509e50619dde48b0cf" - integrity sha512-zMRIidN2Huikv/+/U7gRPFYsXDR/7IGqFZzTLnCEj5+gkrQjsowfamaxEnyvArct5hxGA3bTxMXlYhH78V6Cew== + version "14.18.51" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.51.tgz#cb90935b89c641201c3d07a595c3e22d1cfaa417" + integrity sha512-P9bsdGFPpVtofEKlhWMVS2qqx1A/rt9QBfihWlklfHHpUpjtYse5AzFz6j4DWrARLYh6gRnw9+5+DJcrq3KvBA== "@types/node@^16.11.26": - version "16.18.16" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.16.tgz#09ff98b144abae2d7cce3e9fe9040ab2bf73222c" - integrity sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA== + version "16.18.36" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.36.tgz#0db5d7efc4760d36d0d1d22c85d1a53accd5dc27" + integrity sha512-8egDX8dE50XyXWH6C6PRCNkTP106DuUrvdrednFouDSmCi7IOvrqr0frznfZaHifHH/3aq/7a7v9N4wdXMqhBQ== + +"@types/node@^18.0.0": + version "18.16.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.18.tgz#85da09bafb66d4bc14f7c899185336d0c1736390" + integrity sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw== "@types/node@^8.0.24": version "8.10.66" @@ -5151,9 +5512,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.0.0", "@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/prop-types@*": version "15.7.5" @@ -5181,32 +5542,32 @@ integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/react-dom@<18.0.0": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.19.tgz#36feef3aa35d045cacd5ed60fe0eef5272f19492" - integrity sha512-PiYG40pnQRdPHnlf7tZnp0aQ6q9tspYr72vD61saO6zFCybLfMqwUCN0va1/P+86DXn18ZWeW30Bk7xlC5eEAQ== + version "17.0.20" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.20.tgz#e0c8901469d732b36d8473b40b679ad899da1b53" + integrity sha512-4pzIjSxDueZZ90F52mU3aPoogkHIoSIDG+oQ+wQK7Cy2B9S+MvOqY0uEA/qawKz381qrEDkvpwyt8Bm31I8sbA== dependencies: "@types/react" "^17" "@types/react-dom@^18.0.9": - version "18.0.11" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" - integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== + version "18.2.5" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.5.tgz#5c5f13548bda23cd98f50ca4a59107238bfe18f3" + integrity sha512-sRQsOS/sCLnpQhR4DSKGTtWFE3FZjpQa86KPVbhUqdYMRZ9FEFcfAytKhR/vUG2rH1oFbOOej6cuD7MFSobDRQ== dependencies: "@types/react" "*" -"@types/react@*": - version "18.0.28" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.28.tgz#accaeb8b86f4908057ad629a26635fe641480065" - integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew== +"@types/react@*", "@types/react@>=16": + version "18.2.12" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.12.tgz#95d584338610b78bb9ba0415e3180fb03debdf97" + integrity sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" "@types/react@^17", "@types/react@^17.0.40": - version "17.0.53" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.53.tgz#10d4d5999b8af3d6bc6a9369d7eb953da82442ab" - integrity sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw== + version "17.0.62" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.62.tgz#2efe8ddf8533500ec44b1334dd1a97caa2f860e3" + integrity sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -5244,9 +5605,9 @@ sass "*" "@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== "@types/secp256k1@^4.0.3": version "4.0.3" @@ -5261,9 +5622,17 @@ integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== "@types/semver@^7.3.12", "@types/semver@^7.3.3": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" "@types/serve-index@^1.9.1": version "1.9.1" @@ -5288,9 +5657,9 @@ "@types/node" "*" "@types/sinon@*": - version "10.0.13" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.13.tgz#60a7a87a70d9372d0b7b38cc03e825f46981fb83" - integrity sha512-UVjDqJblVNQYvVNUsj0PuYYw0ELRmgt1Nt5Vk0pT5f16ROGfcKJY8o1HVuMOJOpD727RrGB9EGvoaTQE5tgxZQ== + version "10.0.15" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.15.tgz#513fded9c3cf85e589bbfefbf02b2a0541186b48" + integrity sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ== dependencies: "@types/sinonjs__fake-timers" "*" @@ -5312,9 +5681,9 @@ integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/testing-library__jest-dom@^5.9.1": - version "5.14.5" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" - integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ== + version "5.14.6" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.6.tgz#4887f6e1af11215428ab02777873bcede98a53b0" + integrity sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA== dependencies: "@types/jest" "*" @@ -5329,9 +5698,9 @@ integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== "@types/unzipper@^0.10.5": - version "0.10.5" - resolved "https://registry.yarnpkg.com/@types/unzipper/-/unzipper-0.10.5.tgz#36a963cf025162b4ac31642590cb4192971d633b" - integrity sha512-NrLJb29AdnBARpg9S/4ktfPEisbJ0AvaaAr3j7Q1tg8AgcEUsq2HqbNzvgLRoWyRtjzeLEv7vuL39u1mrNIyNA== + version "0.10.6" + resolved "https://registry.yarnpkg.com/@types/unzipper/-/unzipper-0.10.6.tgz#767101c65fa3968a725c02de11884f75952b091e" + integrity sha512-zcBj329AHgKLQyz209N/S9R0GZqXSkUQO4tJSYE3x02qg4JuDFpgKMj50r82Erk1natCWQDIvSccDddt7jPzjA== dependencies: "@types/node" "*" @@ -5345,13 +5714,20 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== -"@types/ws@8.5.4", "@types/ws@^8.5.1": +"@types/ws@8.5.4": version "8.5.4" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== dependencies: "@types/node" "*" +"@types/ws@^8.5.5": + version "8.5.5" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" + integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -5372,9 +5748,9 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.22" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" - integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== dependencies: "@types/yargs-parser" "*" @@ -5391,14 +5767,14 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz#bc2400c3a23305e8c9a9c04aa40933868aaaeb47" - integrity sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg== + version "5.59.11" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.11.tgz#8d466aa21abea4c3f37129997b198d141f09e76f" + integrity sha512-XxuOfTkCUiOSyBWIvHlUraLw/JT/6Io1365RO6ZuI88STKMavJZPNMU0lFcUTeQXEhHiv64CbxYxBNoDVSmghg== dependencies: "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/type-utils" "5.55.0" - "@typescript-eslint/utils" "5.55.0" + "@typescript-eslint/scope-manager" "5.59.11" + "@typescript-eslint/type-utils" "5.59.11" + "@typescript-eslint/utils" "5.59.11" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" @@ -5407,91 +5783,93 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.55.0.tgz#ea2dd8737834af3a36b6a7be5bee57f57160c942" - integrity sha512-3ZqXIZhdGyGQAIIGATeMtg7prA6VlyxGtcy5hYIR/3qUqp3t18pWWUYhL9mpsDm7y8F9mr3ISMt83TiqCt7OPQ== + version "5.59.11" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.11.tgz#9f95e09313a9f96457006b0b8ed43c2e68eb8876" + integrity sha512-GkQGV0UF/V5Ra7gZMBmiD1WrYUFOJNvCZs+XQnUyJoxmqfWMXVNyB2NVCPRKefoQcpvTv9UpJyfCvsJFs8NzzQ== dependencies: - "@typescript-eslint/utils" "5.55.0" + "@typescript-eslint/utils" "5.59.11" "@typescript-eslint/parser@^5.21.0", "@typescript-eslint/parser@^5.5.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.55.0.tgz#8c96a0b6529708ace1dcfa60f5e6aec0f5ed2262" - integrity sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw== + version "5.59.11" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.11.tgz#af7d4b7110e3068ce0b97550736de455e4250103" + integrity sha512-s9ZF3M+Nym6CAZEkJJeO2TFHHDsKAM3ecNkLuH4i4s8/RCPnF5JRip2GyviYkeEAcwGMJxkqG9h2dAsnA1nZpA== dependencies: - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/typescript-estree" "5.55.0" + "@typescript-eslint/scope-manager" "5.59.11" + "@typescript-eslint/types" "5.59.11" + "@typescript-eslint/typescript-estree" "5.59.11" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz#e863bab4d4183ddce79967fe10ceb6c829791210" - integrity sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw== +"@typescript-eslint/scope-manager@5.59.11": + version "5.59.11" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.11.tgz#5d131a67a19189c42598af9fb2ea1165252001ce" + integrity sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q== dependencies: - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/visitor-keys" "5.55.0" + "@typescript-eslint/types" "5.59.11" + "@typescript-eslint/visitor-keys" "5.59.11" -"@typescript-eslint/type-utils@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz#74bf0233523f874738677bb73cb58094210e01e9" - integrity sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA== +"@typescript-eslint/type-utils@5.59.11": + version "5.59.11" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.11.tgz#5eb67121808a84cb57d65a15f48f5bdda25f2346" + integrity sha512-LZqVY8hMiVRF2a7/swmkStMYSoXMFlzL6sXV6U/2gL5cwnLWQgLEG8tjWPpaE4rMIdZ6VKWwcffPlo1jPfk43g== dependencies: - "@typescript-eslint/typescript-estree" "5.55.0" - "@typescript-eslint/utils" "5.55.0" + "@typescript-eslint/typescript-estree" "5.59.11" + "@typescript-eslint/utils" "5.59.11" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.55.0.tgz#9830f8d3bcbecf59d12f821e5bc6960baaed41fd" - integrity sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug== +"@typescript-eslint/types@5.59.11": + version "5.59.11" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.11.tgz#1a9018fe3c565ba6969561f2a49f330cf1fe8db1" + integrity sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA== -"@typescript-eslint/typescript-estree@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz#8db7c8e47ecc03d49b05362b8db6f1345ee7b575" - integrity sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ== +"@typescript-eslint/typescript-estree@5.59.11": + version "5.59.11" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.11.tgz#b2caaa31725e17c33970c1197bcd54e3c5f42b9f" + integrity sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA== dependencies: - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/visitor-keys" "5.55.0" + "@typescript-eslint/types" "5.59.11" + "@typescript-eslint/visitor-keys" "5.59.11" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.55.0", "@typescript-eslint/utils@^5.43.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.55.0.tgz#34e97322e7ae5b901e7a870aabb01dad90023341" - integrity sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw== +"@typescript-eslint/utils@5.59.11", "@typescript-eslint/utils@^5.58.0": + version "5.59.11" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.11.tgz#9dbff49dc80bfdd9289f9f33548f2e8db3c59ba1" + integrity sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/typescript-estree" "5.55.0" + "@typescript-eslint/scope-manager" "5.59.11" + "@typescript-eslint/types" "5.59.11" + "@typescript-eslint/typescript-estree" "5.59.11" eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.55.0": - version "5.55.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz#01ad414fca8367706d76cdb94adf788dc5b664a2" - integrity sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw== +"@typescript-eslint/visitor-keys@5.59.11": + version "5.59.11" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.11.tgz#dca561ddad169dc27d62396d64f45b2d2c3ecc56" + integrity sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA== dependencies: - "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/types" "5.59.11" eslint-visitor-keys "^3.3.0" "@undecaf/barcode-detector-polyfill@^0.9.15": - version "0.9.15" - resolved "https://registry.yarnpkg.com/@undecaf/barcode-detector-polyfill/-/barcode-detector-polyfill-0.9.15.tgz#f19535553ff946054c550d7557df94137c934e73" - integrity sha512-uJSjIbXxWujOFVjZLjBXwENY5zA+15uKSN3/V+5F1gov1eM+HkpdCC9oy8jN3viY/JwLKv2zsAq4wr9V/jiomw== + version "0.9.17" + resolved "https://registry.yarnpkg.com/@undecaf/barcode-detector-polyfill/-/barcode-detector-polyfill-0.9.17.tgz#801b7261bf366cc56463233e79aea4625dadeb3f" + integrity sha512-VrZriUnck63E4qZfbkYiRkZv5npkRz+XxJG24+j8beaCwv0XshBNfqKq9Gt7oJPeEB/YCxjRLyhBfUyg495k2Q== dependencies: - "@undecaf/zbar-wasm" "^0.9.12" + "@undecaf/zbar-wasm" "^0.9.14" -"@undecaf/zbar-wasm@^0.9.12": - version "0.9.12" - resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.12.tgz#158ebf73d6a82112e0eea749a54f77b3857304c7" - integrity sha512-r580a4yNDEJFCayS+t4ibDjPNVLI60zo5045XuUgVQAbAzOfyAlEiwvr1PjYehOrS97rHoPk5hcMNP2n2WUu/w== +"@undecaf/zbar-wasm@^0.9.14": + version "0.9.14" + resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.14.tgz#b80e42ddaad86a9827a972a583ccc1d2d6d9f68b" + integrity sha512-ROGIgA/zzN6HnZuWgYTBTTtOTdgg5Phi6nM2cYCbcXu5JzzTY1dVCX3shsKM6a+lq1E/2Grz+IFuMDP5n+sepg== + dependencies: + jschardet "^3.0.0" "@vascosantos/moving-average@^1.1.0": version "1.1.0" @@ -5514,125 +5892,125 @@ "@rollup/pluginutils" "^4.1.1" react-refresh "^0.10.0" -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" "@wry/context@^0.4.0": @@ -5644,9 +6022,9 @@ tslib "^1.9.3" "@wry/context@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.0.tgz#be88e22c0ddf62aeb0ae9f95c3d90932c619a5c8" - integrity sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ== + version "0.7.3" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.3.tgz#240f6dfd4db5ef54f81f6597f6714e58d4f476a1" + integrity sha512-Nl8WTesHp89RF803Se9X3IiHjdmLBrIvPMaJkl+rKVJAYyPsz1TEUbu89943HpvujtSJgDUx9W4vZw3K1Mr3sA== dependencies: tslib "^2.3.0" @@ -5658,9 +6036,9 @@ tslib "^1.9.3" "@wry/equality@^0.5.0": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" - integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== + version "0.5.6" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.6.tgz#cd4a533c72c3752993ab8cbf682d3d20e3cb601e" + integrity sha512-D46sfMTngaYlrH+OspKf8mIJETntFnf6Hsjb0V41jAXJ7Bx2kB8Rv8RCUujuVWYttFtHkUNp7g+FwxNQAr6mXA== dependencies: tslib "^2.3.0" @@ -5717,13 +6095,21 @@ abort-controller@^3.0.0: event-target-shim "^5.0.0" abortable-iterator@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/abortable-iterator/-/abortable-iterator-4.0.2.tgz#aea6a4a6a696badcbad1c9fff5a9ca85f0f286a4" - integrity sha512-SJGELER5yXr9v3kiL6mT5RZ1qlyJ9hV4nm34+vfsdIM1lp3zENQvpsqKgykpFLgRMUn3lzlizLTpiOASW05/+g== + version "4.0.3" + resolved "https://registry.yarnpkg.com/abortable-iterator/-/abortable-iterator-4.0.3.tgz#432570d8256dbad2cef4f129312b651c5ffcdd0f" + integrity sha512-GJ5fyS9O0hK/TMf+weR+WMEwSEBWVuStHqHmUYWbfHPULyVf7QdUnAvh41+1cUWtHVf0Z/qtQynidxz4ZFDPOg== dependencies: get-iterator "^2.0.0" it-stream-types "^1.0.3" +abortable-iterator@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/abortable-iterator/-/abortable-iterator-5.0.1.tgz#5d93eba6fa8287a973a9ea090c64ca08b3777780" + integrity sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg== + dependencies: + get-iterator "^2.0.0" + it-stream-types "^2.0.1" + abstract-level@^1.0.2, abstract-level@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" @@ -5758,12 +6144,12 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^5.3.2: +acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -5792,7 +6178,7 @@ acorn@^7.0.0, acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: +acorn@^8.0.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -5837,7 +6223,7 @@ ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv-keywords@^5.0.0: +ajv-keywords@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== @@ -5854,7 +6240,7 @@ ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.6.0, ajv@^8.9.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -5991,11 +6377,21 @@ any-observable@^0.5.1: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.5.1.tgz#ab7d49ff64ebe6dd3ae26760a3f5a881e8db791e" integrity sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA== +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + any-signal@^3.0.0, any-signal@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6" integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== +any-signal@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-4.1.1.tgz#928416c355c66899e6b2a91cad4488f0324bae03" + integrity sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -6221,6 +6617,11 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== +arch@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + are-we-there-yet@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" @@ -6237,6 +6638,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-1.0.0.tgz#444d885a4e25b121640b55155ef7cd03975d6050" + integrity sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -6270,11 +6676,11 @@ args@^5.0.1: mri "1.1.4" aria-query@^5.0.0, aria-query@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + version "5.2.1" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.2.1.tgz#bc285d9d654d1df121bcd0c134880d415ca67c15" + integrity sha512-7uFg4b+lETFgdaJyETnILsXgnnzVnkHcgRbwbPwevm5x/LmUlt3MjczMRe1zg824iBgXZNRPTBftNYyRSKLp2g== dependencies: - deep-equal "^2.0.5" + dequal "^2.0.3" arr-diff@^4.0.0: version "4.0.0" @@ -6481,6 +6887,11 @@ ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== +astring@^1.8.0: + version "1.8.6" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" + integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== + async-exit-hook@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" @@ -6558,23 +6969,16 @@ aws4@^1.8.0: integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axe-core@^4.6.2: - version "4.6.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" - integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== - -axios@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" + version "4.7.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" + integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== axobject-query@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" - integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== dependencies: - deep-equal "^2.0.5" + dequal "^2.0.3" babel-code-frame@^6.26.0: version "6.26.0" @@ -6682,29 +7086,29 @@ babel-plugin-named-asset-import@^0.3.8: resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== +babel-plugin-polyfill-corejs2@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz#75044d90ba5043a5fb559ac98496f62f3eb668fd" + integrity sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw== dependencies: "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.0" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== +babel-plugin-polyfill-corejs3@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz#39248263c38191f0d226f928d666e6db1b4b3a8a" + integrity sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" + "@babel/helper-define-polyfill-provider" "^0.4.0" + core-js-compat "^3.30.1" -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== +babel-plugin-polyfill-regenerator@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz#e7344d88d9ef18a3c47ded99362ae4a757609380" + integrity sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.0" babel-plugin-transform-hook-names@^1.0.2: version "1.0.2" @@ -6831,6 +7235,11 @@ bail@^1.0.0: resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -6960,9 +7369,9 @@ bl@^5.0.0: readable-stream "^3.4.0" blob-to-it@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-2.0.1.tgz#e3d826ac643ad4999d0dc53195b3878fb762bfe3" - integrity sha512-JdrAMsN0JmsI2fPfd5MpBqVUZHlETNQka/tBWzWXjixj9WttW6Lgti2MyEPAaQrjTJ/TZZMkeyJovH39qyF21A== + version "2.0.3" + resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-2.0.3.tgz#ea76abbe7a158d77683a0b155de5ed8dd4c703f4" + integrity sha512-Z3CAVpJMwB9B/lp+hOGEyD+6Rx690v1EBj37Wf/eF7ltXZEu2ppd2H9w/FFNGlx36PW5tsoynTNt2HwkgNV9hw== dependencies: browser-readablestream-to-it "^2.0.0" @@ -6993,7 +7402,7 @@ blockstore-datastore-adapter@^4.0.0: it-pushable "^3.1.0" multiformats "^10.0.1" -bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -7060,9 +7469,9 @@ body@^5.1.0: safe-json-parse "~1.0.1" bonjour-service@^1.0.11: - version "1.1.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.0.tgz#424170268d68af26ff83a5c640b95def01803a13" - integrity sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q== + version "1.1.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" + integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== dependencies: array-flatten "^2.1.2" dns-equal "^1.0.0" @@ -7107,18 +7516,18 @@ boxen@^5.0.0: wrap-ansi "^7.0.0" boxen@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.0.2.tgz#465dd03e846c11f2d4c7eb0d1b3a39d66bd7057e" - integrity sha512-1Z4UJabXUP1/R9rLpoU3O2lEMnG3pPLAs/ZD2lF3t2q7qD5lM8rqbtnvtvm4N0wEyNlE+9yZVTVAGmd1V5jabg== + version "7.1.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.0.tgz#ba10a9ef4e73a9e220105b5f8c07a56d359a4cb4" + integrity sha512-ScG8CDo8dj7McqCZ5hz4dIBp20xj4unQ2lXIDa7ff6RcZElCpuNzutdwzKVvRikfNjm7CFAlR3HJHcoHkDOExQ== dependencies: ansi-align "^3.0.1" - camelcase "^7.0.0" - chalk "^5.0.1" + camelcase "^7.0.1" + chalk "^5.2.0" cli-boxes "^3.0.0" string-width "^5.1.2" type-fest "^2.13.0" widest-line "^4.0.1" - wrap-ansi "^8.0.1" + wrap-ansi "^8.1.0" brace-expansion@^1.1.7: version "1.1.11" @@ -7159,9 +7568,9 @@ braces@^3.0.2, braces@~3.0.2: fill-range "^7.0.1" breakword@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/breakword/-/breakword-1.0.5.tgz#fd420a417f55016736b5b615161cae1c8f819810" - integrity sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg== + version "1.0.6" + resolved "https://registry.yarnpkg.com/breakword/-/breakword-1.0.6.tgz#242506e7b871b7fad1bce8dc05cb0f2a129c12bd" + integrity sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw== dependencies: wcwidth "^1.0.1" @@ -7203,9 +7612,9 @@ browser-readablestream-to-it@^1.0.0: integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== browser-readablestream-to-it@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.1.tgz#53b2e4066636faa5b613ad0f48fa1f0a282d907a" - integrity sha512-X9zw312iV6yVozvrwmZNFVNRxkOJZC7XL+G7sVoRoDGKQkcoCzK/TdkBlnLOzmO5HsnpZzmW67dNlsAIstuhjQ== + version "2.0.3" + resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.3.tgz#8c08c7c0d98aa1b4098fd19cb147a6028b188470" + integrity sha512-kFLXH4FWJNZbbIEeqZMCYfVPQx6glf3e1mReo3bB3xbn1o/YWbHsYpxIGo2rfNsmPqv7I+Fg4qObvtvbAq4DbA== browser-resolve@^2.0.0: version "2.0.0" @@ -7335,14 +7744,14 @@ browserify@^17.0.0: xtend "^4.0.0" browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== + version "4.21.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.8.tgz#db2498e1f4b80ed199c076248a094935860b6017" + integrity sha512-j+7xYe+v+q2Id9qbBeCI8WX5NmZSRe8es1+0xntD/+gaWXznP8tFEkv5IgSaHf5dS1YwVMbX/4W6m937mj+wQw== dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" + caniuse-lite "^1.0.30001502" + electron-to-chromium "^1.4.428" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" bs-logger@0.x: version "0.2.6" @@ -7429,7 +7838,7 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== -busboy@^1.6.0: +busboy@1.6.0, busboy@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== @@ -7492,9 +7901,9 @@ cacheable-lookup@^7.0.0: integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== cacheable-request@^10.2.8: - version "10.2.8" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.8.tgz#899ae6c0c8c7127f263b2005ecaac07c95124079" - integrity sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A== + version "10.2.10" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.10.tgz#1785984a9a4ddec8dd01792232cca474be49a8af" + integrity sha512-v6WB+Epm/qO4Hdlio/sfUn69r5Shgh39SsE9DSd4bIezP0mblOlObI+I0kUEM7J0JFc+I7pSeMeYaOYtX1N/VQ== dependencies: "@types/http-cache-semantics" "^4.0.1" get-stream "^6.0.1" @@ -7518,9 +7927,9 @@ cacheable-request@^6.0.0: responselike "^1.0.2" cacheable-request@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== dependencies: clone-response "^1.0.2" get-stream "^5.1.0" @@ -7604,7 +8013,7 @@ camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camelcase@^7.0.0: +camelcase@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== @@ -7619,10 +8028,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001466" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz#c1e6197c540392e09709ecaa9e3e403428c53375" - integrity sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001502: + version "1.0.30001503" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001503.tgz#88b6ff1b2cf735f1f3361dc1a15b59f0561aa398" + integrity sha512-Sf9NiF+wZxPfzv8Z3iS0rXM1Do+iOy2Lxvib38glFX+08TCYYYGR5fRJXk4d77C4AYwhUjgYgMsMudbh2TqCKw== canonicalize@^1.0.1, canonicalize@^1.0.3: version "1.0.8" @@ -7667,13 +8076,6 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== -catharsis@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" - integrity sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A== - dependencies: - lodash "^4.17.15" - cbor@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" @@ -7682,16 +8084,26 @@ cbor@^5.1.0: bignumber.js "^9.0.1" nofilter "^1.0.4" -cborg@^1.10.0, cborg@^1.3.3, cborg@^1.3.4, cborg@^1.5.4, cborg@^1.6.0, cborg@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.0.tgz#0fe157961dd47b537ccb84dc9ba681de8b699013" - integrity sha512-/eM0JCaL99HDHxjySNQJLaolZFVdl6VA0/hEKIoiQPcQzE5LrG5QHdml0HaBt31brgB9dNe1zMr3f8IVrpotRQ== +cborg@^1.3.3, cborg@^1.3.4, cborg@^1.5.4, cborg@^1.6.0, cborg@^1.9.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1" + integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug== + +cborg@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cborg/-/cborg-2.0.1.tgz#f7136d2999b6ba2228f48af6caeaff2028cfdbc7" + integrity sha512-ySuIj3L6VwlQf0iU82IGGH/Dm1NfNKcGUttRxtVqLKrRJoo2ZeFeLoQj8Y1tASyh5qOfWQn9MN64VsAqVyWNSQ== ccount@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + chai-as-promised@*: version "7.1.1" resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" @@ -7719,6 +8131,15 @@ chainsaw@~0.1.0: dependencies: traverse ">=0.3.0 <0.4" +chalk@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" + integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q== + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -7755,7 +8176,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.0.1: +chalk@^5.0.1, chalk@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== @@ -7797,21 +8218,41 @@ char-regex@^2.0.0: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + character-entities@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + character-reference-invalid@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" @@ -7940,9 +8381,9 @@ cjs-module-lexer@^0.6.0: integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== class-utils@^0.3.5: version "0.3.6" @@ -7963,14 +8404,14 @@ class-validator@^0.13.1: validator "^13.7.0" classic-level@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" - integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" + integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== dependencies: abstract-level "^1.0.2" catering "^2.1.0" module-error "^1.0.1" - napi-macros "~2.0.0" + napi-macros "^2.2.2" node-gyp-build "^4.3.0" clean-css@^5.2.2: @@ -8027,6 +8468,19 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +client-only@0.0.1, client-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +clipboardy@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.2.tgz#2ce320b9ed9be1514f79878b53ff9765420903e2" + integrity sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw== + dependencies: + arch "^2.1.0" + execa "^0.8.0" + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -8073,6 +8527,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== +clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -8129,7 +8588,7 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -8161,9 +8620,9 @@ colord@^2.9.1: integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== colorette@^2.0.10: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== combine-source-map@^0.8.0, combine-source-map@~0.8.0: version "0.8.0" @@ -8182,6 +8641,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + command-line-args@^4.0.2: version "4.0.7" resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" @@ -8208,11 +8672,21 @@ command-line-usage@^4.0.0: table-layout "^0.4.2" typical "^2.6.1" +commander@7, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@^2.15.0, commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" @@ -8223,11 +8697,6 @@ commander@^6.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" @@ -8273,6 +8742,11 @@ compression@^1.7.4: safe-buffer "5.1.2" vary "~1.1.2" +compute-scroll-into-view@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz#c418900a5c56e2b04b885b54995df164535962b1" + integrity sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -8434,17 +8908,17 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== -core-js-compat@^3.25.1: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.29.1.tgz#15c0fb812ea27c973c18d425099afa50b934b41b" - integrity sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA== +core-js-compat@^3.30.1, core-js-compat@^3.30.2: + version "3.31.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.0.tgz#4030847c0766cc0e803dcdfb30055d7ef2064bf1" + integrity sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw== dependencies: browserslist "^4.21.5" core-js-pure@^3.23.3: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.29.1.tgz#1be6ca2b8772f6b4df7fc4621743286e676c6162" - integrity sha512-4En6zYVi0i0XlXHVz/bi6l1XDjCqkKRq765NXuX+SnaIatlE96Odt5lMLjdxUiNI1v9OXI5DSLWYPlmTfkTktg== + version "3.31.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.31.0.tgz#052fd9e82fbaaf86457f5db1fadcd06f15966ff2" + integrity sha512-/AnE9Y4OsJZicCzIe97JP5XoPKQJfTuEG43aEVLFJGOJpyqELod+pE6LEl63DfG1Mp8wX97LDaDpy1GmLEUxlg== core-js@^2.4.0: version "2.6.12" @@ -8452,9 +8926,9 @@ core-js@^2.4.0: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.19.2: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.29.1.tgz#40ff3b41588b091aaed19ca1aa5cb111803fa9a6" - integrity sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw== + version "3.31.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.31.0.tgz#4471dd33e366c79d8c0977ed2d940821719db344" + integrity sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ== core-util-is@1.0.2: version "1.0.2" @@ -8474,6 +8948,20 @@ cors@^2.8.5: object-assign "^4" vary "^1" +cose-base@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== + dependencies: + layout-base "^1.0.0" + +cose-base@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01" + integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== + dependencies: + layout-base "^2.0.0" + cosmiconfig@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -8565,13 +9053,13 @@ create-require@^1.1.0: integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + version "3.1.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.6.tgz#bae05aa31a4da760969756318feeee6e70f15d6c" + integrity sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g== dependencies: - node-fetch "2.6.7" + node-fetch "^2.6.11" -cross-spawn@^5.1.0: +cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== @@ -8655,9 +9143,9 @@ css-declaration-sorter@^4.0.1: timsort "^0.3.0" css-declaration-sorter@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" - integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" + integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== css-has-pseudo@^3.0.4: version "3.0.4" @@ -8667,14 +9155,14 @@ css-has-pseudo@^3.0.4: postcss-selector-parser "^6.0.9" css-loader@^6.5.1: - version "6.7.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" - integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== + version "6.8.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" + integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== dependencies: icss-utils "^5.1.0" - postcss "^8.4.19" + postcss "^8.4.21" postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" + postcss-modules-local-by-default "^4.0.3" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" @@ -8786,9 +9274,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.4.1.tgz#61d55c0173126689922a219e15e131e4b5caf422" - integrity sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ== + version "7.6.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" + integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== cssesc@^3.0.0: version "3.0.0" @@ -8942,9 +9430,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" - integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== csv-generate@^3.4.3: version "3.4.3" @@ -8961,7 +9449,7 @@ csv-stringify@^5.6.5: resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.6.5.tgz#c6d74badda4b49a79bf4e72f91cce1e33b94de00" integrity sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== -csv@^5.5.0: +csv@^5.5.3: version "5.5.3" resolved "https://registry.yarnpkg.com/csv/-/csv-5.5.3.tgz#cd26c1e45eae00ce6a9b7b27dcb94955ec95207d" integrity sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== @@ -8978,6 +9466,272 @@ customize-cra@1.0.0: dependencies: lodash.flow "^3.5.0" +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== + dependencies: + cose-base "^1.0.0" + +cytoscape-fcose@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471" + integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== + dependencies: + cose-base "^2.2.0" + +cytoscape@^3.23.0: + version "3.25.0" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.25.0.tgz#5289e9d18be0293b073bfe93f83bb95b908b2dc1" + integrity sha512-7MW3Iz57mCUo6JQCho6CmPBCbTlJr7LzyEtIkutG255HLVd4XuBg2I9BkTZLI/e4HoaOB/BiAzXuQybQ95+r9Q== + dependencies: + heap "^0.2.6" + lodash "^4.17.21" + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" + integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-scale-chromatic@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" + integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.4.0, d3@^7.8.2: + version "7.8.5" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.5.tgz#fde4b760d4486cdb6f0cc8e2cbff318af844635c" + integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + dag-jose@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dag-jose/-/dag-jose-3.0.1.tgz#0c474eff3e70ad522b5d42e848786358c11ea7c6" @@ -8986,6 +9740,14 @@ dag-jose@^3.0.1: "@ipld/dag-cbor" "^8.0.0" multiformats "^10.0.1" +dagre-d3-es@7.0.10: + version "7.0.10" + resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz#19800d4be674379a3cd8c86a8216a2ac6827cadc" + integrity sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A== + dependencies: + d3 "^7.8.2" + lodash-es "^4.17.21" + damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" @@ -9082,6 +9844,11 @@ dateformat@^4.5.1: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== +dayjs@^1.11.7: + version "1.11.8" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.8.tgz#4282f139c8c19dd6d0c7bd571e30c2d0ba7698ea" + integrity sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ== + debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.4, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -9089,7 +9856,7 @@ debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6. dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -9103,11 +9870,6 @@ debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" -debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== - decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" @@ -9131,6 +9893,13 @@ decimal.js@^10.2.1: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + decode-uri-component@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" @@ -9169,29 +9938,6 @@ deep-eql@^4.1.2: dependencies: type-detect "^4.0.0" -deep-equal@^2.0.5: - version "2.2.0" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" - integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== - dependencies: - call-bind "^1.0.2" - es-get-iterator "^1.1.2" - get-intrinsic "^1.1.3" - is-arguments "^1.1.1" - is-array-buffer "^3.0.1" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -9208,9 +9954,9 @@ deep-is@^0.1.3, deep-is@~0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.3.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" - integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== default-gateway@^6.0.2, default-gateway@^6.0.3: version "6.0.3" @@ -9241,7 +9987,7 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4: +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== @@ -9290,6 +10036,13 @@ del@^6.0.0: rimraf "^3.0.2" slash "^3.0.0" +delaunator@5: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" + integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== + dependencies: + robust-predicates "^3.0.0" + delay@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" @@ -9335,10 +10088,15 @@ deps-sort@^2.0.1: subarg "^1.0.0" through2 "^2.0.0" +dequal@^2.0.0, dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -9386,7 +10144,7 @@ detect-port-alt@^1.1.6: address "^1.0.1" debug "^2.6.0" -detective@^5.2.0, detective@^5.2.1: +detective@^5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== @@ -9395,7 +10153,7 @@ detective@^5.2.0, detective@^5.2.1: defined "^1.0.0" minimist "^1.2.6" -dezalgo@^1.0.0, dezalgo@^1.0.4: +dezalgo@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== @@ -9443,7 +10201,7 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.1.0: +diff@^5.0.0, diff@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== @@ -9499,9 +10257,9 @@ dns-over-http-resolver@^2.1.0: undici "^5.12.0" dns-packet@^5.2.2: - version "5.4.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" - integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== + version "5.6.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" + integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -9620,13 +10378,18 @@ domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1: dependencies: domelementtype "^2.2.0" -domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: +domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: domelementtype "^2.3.0" +dompurify@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.3.tgz#4b115d15a091ddc96f232bcef668550a2f6f1430" + integrity sha512-axQ9zieHLnAnHh0sfAamKYiqXMJAVwu+LM/alQ7WDagoWessyWvMSFyW65CqF3owufNu8HBcE4cM2Vflu7YWcQ== + domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" @@ -9645,13 +10408,13 @@ domutils@^2.4.2, domutils@^2.5.2, domutils@^2.8.0: domhandler "^4.2.0" domutils@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" - integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== dependencies: dom-serializer "^2.0.0" domelementtype "^2.3.0" - domhandler "^5.0.1" + domhandler "^5.0.3" dot-case@^3.0.4: version "3.0.4" @@ -9760,10 +10523,10 @@ electron-fetch@^1.7.2: dependencies: encoding "^0.1.13" -electron-to-chromium@^1.4.284: - version "1.4.330" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz#4740378db7160d7210afb29800c74048cdf10a99" - integrity sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q== +electron-to-chromium@^1.4.428: + version "1.4.431" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.431.tgz#47990d6e43465d69aa1fbd0abdec43114946edd0" + integrity sha512-m232JTVmCawA2vG+1azVxhKZ9Sv1Q//xxNv5PkP5rWxGgQE8c3CiZFrh8Xnp+d1NmNxlu3QQrGIfdeW5TtXX5w== electron-webrtc@^0.3.0: version "0.3.0" @@ -9798,6 +10561,11 @@ elegant-spinner@^1.0.1: resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== +elkjs@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.8.2.tgz#c37763c5a3e24e042e318455e0147c912a7c248e" + integrity sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ== + elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -9887,14 +10655,14 @@ engine.io-client@~6.4.0: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.0.3: - version "5.0.6" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" - integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== + version "5.0.7" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.7.tgz#ed5eae76c71f398284c578ab6deafd3ba7e4e4f6" + integrity sha512-P+jDFbvK6lE3n1OL+q9KuzdOFWkkZ/cMV9gol/SbVfpyqfvrfrFTOFJ6fQm2VC3PZHlU3QPhVwmbsCnauHF2MQ== -enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -9921,15 +10689,10 @@ entities@^3.0.1: resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== -entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" - integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== - -entities@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== env-paths@^2.2.0: version "2.2.1" @@ -9970,7 +10733,7 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: version "1.21.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== @@ -10015,25 +10778,10 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-get-iterator@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" + integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== es-set-tostringtag@^2.0.1: version "2.0.1" @@ -10208,33 +10956,33 @@ esbuild@^0.15.5: esbuild-windows-64 "0.15.18" esbuild-windows-arm64 "0.15.18" -esbuild@^0.16.14: - version "0.16.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" - integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== +esbuild@^0.17.5: + version "0.17.19" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" + integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== optionalDependencies: - "@esbuild/android-arm" "0.16.17" - "@esbuild/android-arm64" "0.16.17" - "@esbuild/android-x64" "0.16.17" - "@esbuild/darwin-arm64" "0.16.17" - "@esbuild/darwin-x64" "0.16.17" - "@esbuild/freebsd-arm64" "0.16.17" - "@esbuild/freebsd-x64" "0.16.17" - "@esbuild/linux-arm" "0.16.17" - "@esbuild/linux-arm64" "0.16.17" - "@esbuild/linux-ia32" "0.16.17" - "@esbuild/linux-loong64" "0.16.17" - "@esbuild/linux-mips64el" "0.16.17" - "@esbuild/linux-ppc64" "0.16.17" - "@esbuild/linux-riscv64" "0.16.17" - "@esbuild/linux-s390x" "0.16.17" - "@esbuild/linux-x64" "0.16.17" - "@esbuild/netbsd-x64" "0.16.17" - "@esbuild/openbsd-x64" "0.16.17" - "@esbuild/sunos-x64" "0.16.17" - "@esbuild/win32-arm64" "0.16.17" - "@esbuild/win32-ia32" "0.16.17" - "@esbuild/win32-x64" "0.16.17" + "@esbuild/android-arm" "0.17.19" + "@esbuild/android-arm64" "0.17.19" + "@esbuild/android-x64" "0.17.19" + "@esbuild/darwin-arm64" "0.17.19" + "@esbuild/darwin-x64" "0.17.19" + "@esbuild/freebsd-arm64" "0.17.19" + "@esbuild/freebsd-x64" "0.17.19" + "@esbuild/linux-arm" "0.17.19" + "@esbuild/linux-arm64" "0.17.19" + "@esbuild/linux-ia32" "0.17.19" + "@esbuild/linux-loong64" "0.17.19" + "@esbuild/linux-mips64el" "0.17.19" + "@esbuild/linux-ppc64" "0.17.19" + "@esbuild/linux-riscv64" "0.17.19" + "@esbuild/linux-s390x" "0.17.19" + "@esbuild/linux-x64" "0.17.19" + "@esbuild/netbsd-x64" "0.17.19" + "@esbuild/openbsd-x64" "0.17.19" + "@esbuild/sunos-x64" "0.17.19" + "@esbuild/win32-arm64" "0.17.19" + "@esbuild/win32-ia32" "0.17.19" + "@esbuild/win32-x64" "0.17.19" escalade@^3.1.1: version "3.1.1" @@ -10276,6 +11024,11 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + escodegen@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -10313,9 +11066,9 @@ eslint-config-next@^12.0.8: eslint-plugin-react-hooks "^4.5.0" eslint-config-prettier@^8.3.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz#f1cc58a8afebc50980bd53475451df146c13182d" - integrity sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA== + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== eslint-config-react-app@^7.0.1: version "7.0.1" @@ -10358,9 +11111,9 @@ eslint-import-resolver-typescript@^2.7.1: tsconfig-paths "^3.14.1" eslint-module-utils@^2.7.4: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" @@ -10469,11 +11222,11 @@ eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.31.7: string.prototype.matchall "^4.0.8" eslint-plugin-testing-library@^5.0.1: - version "5.10.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.10.2.tgz#12f231ad9b52b6aef45c801fd00aa129a932e0c2" - integrity sha512-f1DmDWcz5SDM+IpCkEX0lbFqrrTs8HRsEElzDEqN/EBI0hpRj8Cns5+IVANXswE8/LeybIJqPAOQIFu2j5Y5sw== + version "5.11.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.0.tgz#0bad7668e216e20dd12f8c3652ca353009163121" + integrity sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q== dependencies: - "@typescript-eslint/utils" "^5.43.0" + "@typescript-eslint/utils" "^5.58.0" eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" @@ -10483,10 +11236,10 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -10496,10 +11249,10 @@ eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint-webpack-plugin@^3.1.1: version "3.2.0" @@ -10513,15 +11266,15 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.3.0: - version "8.36.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf" - integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw== + version "8.42.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" + integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.1" - "@eslint/js" "8.36.0" - "@humanwhocodes/config-array" "^0.11.8" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.42.0" + "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -10530,9 +11283,9 @@ eslint@^8.3.0: debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.5.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -10540,13 +11293,12 @@ eslint@^8.3.0: find-up "^5.0.0" glob-parent "^6.0.2" globals "^13.19.0" - grapheme-splitter "^1.0.4" + graphemer "^1.4.0" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -10579,14 +11331,14 @@ esmify@^2.1.1: duplexer2 "^0.1.4" through2 "^2.0.5" -espree@^9.5.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113" - integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw== +espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.4.1" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" @@ -10617,6 +11369,51 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-util-attach-comments@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz#ee44f4ff6890ee7dfb3237ac7810154c94c63f84" + integrity sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz#32f8a239fb40dc3f3dca75bb5dcf77a831e4e47b" + integrity sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg== + dependencies: + "@types/estree-jsx" "^1.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz#fb70a432dcb19045e77b05c8e732f1364b4b49b2" + integrity sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ== + +estree-util-to-js@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz#0f80d42443e3b13bd32f7012fffa6f93603f4a36" + integrity sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-value-to-estree@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz#1d3125594b4d6680f666644491e7ac1745a3df49" + integrity sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw== + dependencies: + is-plain-obj "^3.0.0" + +estree-util-visit@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-1.2.1.tgz#8bc2bc09f25b00827294703835aabee1cc9ec69d" + integrity sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^2.0.0" + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -10632,6 +11429,13 @@ estree-walker@^2.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +estree-walker@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -10680,6 +11484,19 @@ exec-sh@^0.3.2: resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA== + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -10930,9 +11747,9 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-fifo@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.1.0.tgz#17d1a3646880b9891dfa0c54e69c5fef33cad779" - integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.2.0.tgz#2ee038da2468e8623066dee96958b0c1763aa55a" + integrity sha512-NcvQXt7Cky1cNau15FWy64IjuO8X0JijhTBBrJj1YlxlDfRkJXNaK9RFUjwpfDPzMdv7wB38jr53l9tkNLxnWg== fast-glob@^3.2.12, fast-glob@^3.2.9: version "3.2.12" @@ -10956,9 +11773,9 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-redact@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" - integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== + version "3.2.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.2.0.tgz#b1e2d39bc731376d28bde844454fa23e26919987" + integrity sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw== fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8: version "2.1.1" @@ -11055,15 +11872,15 @@ file-loader@^6.2.0: schema-utils "^3.0.0" file-type@^18.0.0: - version "18.2.1" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.2.1.tgz#6d8f1fa3b079606f6ecf89483346f55fcd2c671b" - integrity sha512-Yw5MtnMv7vgD2/6Bjmmuegc8bQEVA9GmAyaR18bMYWKqsWDG9wgYZ1j4I6gNMF5Y5JBDcUcjRQqNQx7Y8uotcg== + version "18.5.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.5.0.tgz#604a001ba0d32577d4c3fa420ee104d656b914d2" + integrity sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ== dependencies: readable-web-to-node-stream "^3.0.2" strtok3 "^7.0.0" token-types "^5.0.1" -filelist@^1.0.1: +filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== @@ -11071,9 +11888,9 @@ filelist@^1.0.1: minimatch "^5.0.1" filesize@^10.0.5: - version "10.0.6" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.0.6.tgz#5f4cd2721664cd925db3a7a5a87bbfd6ab5ebb1a" - integrity sha512-rzpOZ4C9vMFDqOa6dNpog92CoLYjD79dnjLk2TYDDtImRIyLTOzqojCb05Opd1WuiWjs+fshhCgTd8cl7y5t+g== + version "10.0.7" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.0.7.tgz#2237a816ee60a83fd0c3382ae70800e54eced3ad" + integrity sha512-iMRG7Qo9nayLoU3PNCiLizYtsy4W1ClrapeCwEgtiQelOAOuRJiw4QaLI+sSr8xr901dgHv+EYP2bCusGZgoiA== filesize@^8.0.6: version "8.0.7" @@ -11211,12 +12028,22 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flexsearch@^0.7.21: + version "0.7.31" + resolved "https://registry.yarnpkg.com/flexsearch/-/flexsearch-0.7.31.tgz#065d4110b95083110b9b6c762a71a77cc52e4702" + integrity sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA== + fnv1a@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fnv1a/-/fnv1a-1.1.1.tgz#4e01d51bae60735d00e54ffde02581fe2e74f465" integrity sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag== -follow-redirects@^1.0.0, follow-redirects@^1.14.8: +focus-visible@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/focus-visible/-/focus-visible-5.2.0.tgz#3a9e41fccf587bd25dcc2ef045508284f0a4d6b3" + integrity sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ== + +follow-redirects@^1.0.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -11411,10 +12238,10 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" -fs-monkey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== +fs-monkey@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== fs.realpath@^1.0.0: version "1.0.0" @@ -11456,7 +12283,7 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functions-have-names@^1.2.2: +functions-have-names@^1.2.2, functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -11542,12 +12369,13 @@ get-func-name@^2.0.0: integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" - integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" has "^1.0.3" + has-proto "^1.0.1" has-symbols "^1.0.3" get-iterator@^1.0.2: @@ -11575,6 +12403,11 @@ get-port@5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -11621,6 +12454,21 @@ git-config@0.0.7: dependencies: iniparser "~1.0.5" +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" + integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== + dependencies: + git-up "^7.0.0" + gitbook-plugin-fontsettings@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/gitbook-plugin-fontsettings/-/gitbook-plugin-fontsettings-2.0.0.tgz#835f900ae3dd111086fe7ed4425ee3de024861ab" @@ -11650,6 +12498,11 @@ github-from-package@0.0.0: resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== +github-slugger@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" + integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== + github-slugid@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/github-slugid/-/github-slugid-1.0.1.tgz#bccdd0815bfad69d8a359fa4fd65947d606ec3c0" @@ -11691,6 +12544,18 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@7.1.7: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -11844,9 +12709,9 @@ got@^10.6.0: type-fest "^0.10.0" got@^12.1.0: - version "12.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.0.tgz#8d382ee5de4432c086e83c133efdd474484f6ac7" - integrity sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ== + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== dependencies: "@sindresorhus/is" "^5.2.0" "@szmarczak/http-timer" "^5.0.1" @@ -11877,16 +12742,26 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@4.2.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@4.2.10: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + grapheme-splitter@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + graphql-query-complexity@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" @@ -11925,6 +12800,16 @@ graphql@15.7.2: resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.7.2.tgz#85ab0eeb83722977151b3feb4d631b5f2ab287ef" integrity sha512-AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A== +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -12113,6 +12998,15 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" +hash-obj@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hash-obj/-/hash-obj-4.0.0.tgz#3fafeb0b5f17994441dbe04efbdee82e26b74c8c" + integrity sha512-FwO1BUVWkyHasWDW4S8o0ssQXjvyghLV2rfVhnN36b2bbcj45eGiuzdn9XOvOpjV3TKQD7Gm2BWNXdE9V4KKYg== + dependencies: + is-obj "^3.0.0" + sort-keys "^5.0.0" + type-fest "^1.0.2" + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -12126,6 +13020,110 @@ hashlru@^2.3.0: resolved "https://registry.yarnpkg.com/hashlru/-/hashlru-2.3.0.tgz#5dc15928b3f6961a2056416bb3a4910216fdfb51" integrity sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A== +hast-util-from-dom@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/hast-util-from-dom/-/hast-util-from-dom-4.2.0.tgz#25836ddecc3cc0849d32749c2a7aec03e94b59a7" + integrity sha512-t1RJW/OpJbCAJQeKi3Qrj1cAOLA0+av/iPFori112+0X7R3wng+jxLA+kXec8K4szqPRGI8vPxbbpEYvvpwaeQ== + dependencies: + hastscript "^7.0.0" + web-namespaces "^2.0.0" + +hast-util-from-html-isomorphic@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-1.0.0.tgz#592b2bea880d476665b76ca1cf7d1a94925c80ec" + integrity sha512-Yu480AKeOEN/+l5LA674a+7BmIvtDj24GvOt7MtQWuhzUwlaaRWdEPXAh3Qm5vhuthpAipFb2vTetKXWOjmTvw== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-dom "^4.0.0" + hast-util-from-html "^1.0.0" + unist-util-remove-position "^4.0.0" + +hast-util-from-html@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hast-util-from-html/-/hast-util-from-html-1.0.2.tgz#2482fd701b2d8270b912b3909d6fb645d4a346cf" + integrity sha512-LhrTA2gfCbLOGJq2u/asp4kwuG0y6NhWTXiPKP+n0qNukKy7hc10whqqCFfyvIA1Q5U5d0sp9HhNim9gglEH4A== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^7.0.0" + parse5 "^7.0.0" + vfile "^5.0.0" + vfile-message "^3.0.0" + +hast-util-from-parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz#aecfef73e3ceafdfa4550716443e4eb7b02e22b0" + integrity sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + hastscript "^7.0.0" + property-information "^6.0.0" + vfile "^5.0.0" + vfile-location "^4.0.0" + web-namespaces "^2.0.0" + +hast-util-is-element@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz#cd3279cfefb70da6d45496068f020742256fc471" + integrity sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + +hast-util-parse-selector@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz#25ab00ae9e75cbc62cf7a901f68a247eade659e2" + integrity sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA== + dependencies: + "@types/hast" "^2.0.0" + +hast-util-to-estree@^2.0.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz#da60142ffe19a6296923ec222aba73339c8bf470" + integrity sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + estree-util-attach-comments "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + hast-util-whitespace "^2.0.0" + mdast-util-mdx-expression "^1.0.0" + mdast-util-mdxjs-esm "^1.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.1" + unist-util-position "^4.0.0" + zwitch "^2.0.0" + +hast-util-to-text@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz#ecf30c47141f41e91a5d32d0b1e1859fd2ac04f2" + integrity sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + hast-util-is-element "^2.0.0" + unist-util-find-after "^4.0.0" + +hast-util-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== + +hastscript@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-7.2.0.tgz#0eafb7afb153d047077fa2a833dc9b7ec604d10b" + integrity sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^3.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + hat@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" @@ -12148,6 +13146,11 @@ header-case@^2.0.4: version "1.1.0" resolved "https://github.com/paulkernfeld/node-headless/tarball/master#0ded78103ce64e40d1ca65a57b95faebaa664dd1" +heap@^0.2.6: + version "0.2.7" + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" + integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== + hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" @@ -12185,14 +13188,14 @@ home-path@^1.0.1: integrity sha512-tM1pVa+u3ZqQwIkXcWfhUlY3HWS3TsnKsfi2OHHvnhkX52s9etyktPyy1rQotkr0euWimChDq+QkQuDe8ngUlQ== honkit@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/honkit/-/honkit-4.0.4.tgz#9b1aa11ed050ec306780c3eb39257512b6e1619e" - integrity sha512-quKzP5kGGp3/Ey1+h9kISMa/NBmED7rSuaD8whdniGK/7OUJCEJg/0fKwZgLZLMAIS+AIowhxoV+gvQ30S1NFQ== + version "4.0.7" + resolved "https://registry.yarnpkg.com/honkit/-/honkit-4.0.7.tgz#dd1480721f0a4980418465e59a8211a9c5de1a3e" + integrity sha512-E6+OQ+vrR7Ig2cJyoNwnYtmRQQD/IzPgZJwlv9gmYQ5OIc6DfpcuS32f2Dfwis5AVMa7nwKcpmwO07e+X2JFUw== dependencies: - "@honkit/asciidoc" "^4.0.1" - "@honkit/honkit-plugin-highlight" "^4.0.0" - "@honkit/honkit-plugin-theme-default" "^4.0.3" - "@honkit/markdown-legacy" "^4.0.1" + "@honkit/asciidoc" "^4.0.7" + "@honkit/honkit-plugin-highlight" "^4.0.7" + "@honkit/honkit-plugin-theme-default" "^4.0.7" + "@honkit/markdown-legacy" "^4.0.7" bash-color "^0.0.4" cheerio "^1.0.0-rc.12" chokidar "^3.3.0" @@ -12232,8 +13235,6 @@ honkit@^4.0.0: omit-keys "^0.1.0" open "^7.0.0" q "^1.5.1" - read-installed "^4.0.3" - request "^2.88.0" resolve "^1.17.0" semver "^5.1.0" send "^0.17.1" @@ -12299,9 +13300,9 @@ html-entities@1.2.0: integrity sha512-0md7tlUUyb0BEQGsZzbqty1CgV6RESOoxdivt94AScqhBhYsPCCQCOaGvur/RospMjYpPJ7iFe3zw4Bu4SVA8g== html-entities@^2.1.0, html-entities@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== + version "2.3.6" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.6.tgz#966391d58e5737c77bca4025e31721b496ab7454" + integrity sha512-9o0+dcpIw2/HxkNuYKxSJUF/MMRZQECK4GnF+oQOmJ83yCVHTWgCH5aOXxK5bozNRmM8wtgryjHD3uloPBDEGw== html-escaper@^2.0.0: version "2.0.2" @@ -12322,9 +13323,9 @@ html-minifier-terser@^6.0.2: terser "^5.10.0" html-webpack-plugin@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" - integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== + version "5.5.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" + integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -12368,14 +13369,14 @@ htmlparser2@^7.2.0: entities "^3.0.1" htmlparser2@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" - integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: domelementtype "^2.3.0" - domhandler "^5.0.2" + domhandler "^5.0.3" domutils "^3.0.1" - entities "^4.3.0" + entities "^4.4.0" http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1: version "4.1.1" @@ -12517,7 +13518,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2, iconv-lite@^0.6.3: +iconv-lite@0.6, iconv-lite@^0.6.2, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -12564,9 +13565,9 @@ ignore@^5.1.8, ignore@^5.2.0: integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immer@^9.0.7: - version "9.0.19" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.19.tgz#67fb97310555690b5f9cd8380d38fc0aabb6b38b" - integrity sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ== + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== immutability-helper@^2.7.1: version "2.9.1" @@ -12717,6 +13718,11 @@ inline-source-map@~0.6.0: dependencies: source-map "~0.5.3" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer-autosubmit-prompt@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz#a10f952af4f7bac9c43010e3e9e0891d7e8d15a1" @@ -12826,12 +13832,12 @@ interface-datastore@^7.0.0: nanoid "^4.0.0" uint8arrays "^4.0.2" -interface-datastore@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-8.1.0.tgz#006f74166e40e0a761cc3178bc633edb514fa8d7" - integrity sha512-WBxcqKBYVGjgmgOT4VgXFgPEpZEQbiSV5AqndKH+ZAgzEtexXVIkGx1RSBoFkN4OfiwF5w4dFGWQUHS/vJYJyg== +interface-datastore@^8.2.0: + version "8.2.3" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-8.2.3.tgz#491f6e90da963dbbb23d44c97aaae38959a797de" + integrity sha512-5U6BfK7cR4oSngm4pqYZBBAX7tpLI4YCOa3Ifz/EJEaEV2mmlloH5qP8ADWCVFk6vP1MPT925JJkt3kFIi7iWQ== dependencies: - interface-store "^4.0.0" + interface-store "^5.0.0" nanoid "^4.0.0" uint8arrays "^4.0.2" @@ -12845,12 +13851,12 @@ interface-store@^3.0.0: resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-3.0.4.tgz#670d95ef45f3b7061d154c3cbfaf39a538167ad7" integrity sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ== -interface-store@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-4.1.0.tgz#2b70e318f342928698220fe0d12fec10d1ed04f9" - integrity sha512-zdE2mjrpaS0FGT97IXrTs5hZLVRlURqPfM9gT4UkWGrkzeBigQh/ER5nbcFi4QXn3YAHqp2aX+/Wu4QyT8bbxg== +interface-store@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-5.1.2.tgz#3a884bdf2b606ba570b34a8fd6edd59487f2f6bd" + integrity sha512-q2sLoqC+UdaWnjwGyghsH0jwqqVk226lsG207e3QwPB8sAZYmYIWUnJwJH3JjFNNRV9e6CUTmm+gDO0Xg4KRiw== -internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: +internal-slot@^1.0.3, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -12859,6 +13865,16 @@ internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +intersection-observer@^0.12.2: + version "0.12.2" + resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375" + integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg== + into-stream@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" @@ -12890,9 +13906,9 @@ ipaddr.js@1.9.1: integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + version "2.1.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== ipfs-bitswap@^13.0.0: version "13.0.0" @@ -13443,6 +14459,11 @@ is-alphabetical@^1.0.0: resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -13451,7 +14472,15 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-arguments@^1.0.4, is-arguments@^1.1.1: +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -13556,9 +14585,9 @@ is-core-module@2.9.0: has "^1.0.3" is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: has "^1.0.3" @@ -13576,7 +14605,7 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1, is-date-object@^1.0.5: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -13588,6 +14617,11 @@ is-decimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -13684,6 +14718,11 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + is-installed-globally@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" @@ -13736,11 +14775,6 @@ is-loopback-addr@^2.0.1: resolved "https://registry.yarnpkg.com/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz#0b43534f0b16ff899f1f19f322b59c38bd25fa03" integrity sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw== -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -13790,6 +14824,11 @@ is-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== +is-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-3.0.0.tgz#b0889f1f9f8cb87e87df53a8d1230a2250f8b9be" + integrity sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ== + is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" @@ -13851,6 +14890,13 @@ is-reference@^1.1.2, is-reference@^1.2.1: dependencies: "@types/estree" "*" +is-reference@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831" + integrity sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w== + dependencies: + "@types/estree" "*" + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -13886,11 +14932,6 @@ is-scoped@^2.1.0: dependencies: scoped-regex "^2.0.0" -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -13898,6 +14939,13 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -13960,11 +15008,6 @@ is-url-superb@^4.0.0: resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -13972,14 +15015,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -14187,20 +15222,20 @@ it-filter@^1.0.2: integrity sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w== it-filter@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-2.0.1.tgz#117da6c075ac3d727d15e06de61e124e8a6cb105" - integrity sha512-w9pBEnqq0Ab+AZHqa4JlfRIhu1GKTPKXFSKHSh7w7ilKoHsT6wTASb2bDi/3/unvXuNo+cz/WH1yolov3WwgUg== - -it-first@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1" - integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g== + version "2.0.2" + resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-2.0.2.tgz#c849b3de4a12a2de3cc45be734ee55f69a0ed284" + integrity sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q== it-first@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/it-first/-/it-first-2.0.1.tgz#75d66b254c385ae3a1906def060a69006a437cef" integrity sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw== +it-first@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/it-first/-/it-first-3.0.2.tgz#6186a40ca52c6212815177346a784c1db1034cbb" + integrity sha512-QPLAM2BOkait/o6W25HvP0XTEv+Os3Ce4wET//ADNaPv+WYAHWfQwJuMu5FB8X066hA1F7LEMnULvTpE7/4yQw== + it-foreach@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/it-foreach/-/it-foreach-1.0.1.tgz#a4dab99c111457d1480bef6c4f9382076d9a6b81" @@ -14214,14 +15249,14 @@ it-glob@^1.0.1: "@types/minimatch" "^3.0.4" minimatch "^3.0.4" -it-handshake@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/it-handshake/-/it-handshake-4.1.2.tgz#9261f1869ce0162810a530e88bd40d5e7ce8e0a3" - integrity sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw== +it-handshake@^4.1.2, it-handshake@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/it-handshake/-/it-handshake-4.1.3.tgz#4e6650f8eff5cb3686c6861958645289fb3dc32a" + integrity sha512-V6Lt9A9usox9iduOX+edU1Vo94E6v9Lt9dOvg3ubFaw1qf5NCxXLi93Ao4fyCHWDYd8Y+DUhadwNtWVyn7qqLg== dependencies: it-pushable "^3.1.0" it-reader "^6.0.1" - it-stream-types "^1.0.4" + it-stream-types "^2.0.1" p-defer "^4.0.0" uint8arraylist "^2.0.0" @@ -14230,7 +15265,7 @@ it-last@^2.0.0: resolved "https://registry.yarnpkg.com/it-last/-/it-last-2.0.1.tgz#a6f3253459cb77e917aeada3b2c4ae9f3e66c64b" integrity sha512-uVMedYW0wa2Cx0TAmcOCLbfuLLII7+vyURmhKa8Zovpd+aBTMsmINtsta2n364wJ5qsEDBH+akY1sUtAkaYBlg== -it-length-prefixed@^8.0.2, it-length-prefixed@^8.0.3: +it-length-prefixed@^8.0.2: version "8.0.4" resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-8.0.4.tgz#80bd356d93d77a8989a71200f8ca0860db040404" integrity sha512-5OJ1lxH+IaqJB7lxe8IAIwt9UfSfsmjKJoAI/RO9djYoBDt1Jfy9PeVHUmOfqhqyu/4kJvWBFAJUaG1HhLQ12A== @@ -14241,6 +15276,17 @@ it-length-prefixed@^8.0.2, it-length-prefixed@^8.0.3: uint8arraylist "^2.0.0" uint8arrays "^4.0.2" +it-length-prefixed@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz#12b7f8a283251bf74102c1c92d61b33985089e7c" + integrity sha512-ZBD8ZFLERj8d1q9CeBtk0eJ4EpeI3qwnkmWtemBSm3ZI2dM8PUweNVk5haZ2vw3EIq2uYQiabV9YwNm6EASM4A== + dependencies: + err-code "^3.0.1" + it-stream-types "^2.0.1" + uint8-varint "^1.0.1" + uint8arraylist "^2.0.0" + uint8arrays "^4.0.2" + it-length@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/it-length/-/it-length-2.0.1.tgz#f4793637a35456bf14caea176e426b66aedb5ff4" @@ -14263,20 +15309,27 @@ it-merge@^2.0.0: dependencies: it-pushable "^3.1.0" -it-multipart@^3.0.0: +it-merge@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/it-multipart/-/it-multipart-3.0.1.tgz#6d95ea731a4957bbb3b9ac7884c51e5a46195090" - integrity sha512-yU/wRmDk2up+OkdZcHy2mKbM2KdnbOuYOsqQzufroXzS49KdpygwKJe9tyVhqlfgk/Q+ceEPMDeAjhJOaUmYhw== + resolved "https://registry.yarnpkg.com/it-merge/-/it-merge-3.0.1.tgz#20cc293593586e5afcbfed8ba88a94def5ccfcfa" + integrity sha512-I6hjU1ABO+k3xY1H6JtCSDXvUME88pxIXSgKeT4WI5rPYbQzpr98ldacVuG95WbjaJxKl6Qot6lUdxduLBQPHA== + dependencies: + it-pushable "^3.1.0" + +it-multipart@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/it-multipart/-/it-multipart-3.0.3.tgz#e8ff545e8b5b800c4de6a54ede3a07152ebc2f62" + integrity sha512-K7MdRyksDQfVe/FUapQID/6niVSwexSP4Vz3OPoXsc5dx7Q4P3kAujewI+IIfz68eHWhx/JPOaGugv6JlkF0sw== dependencies: formidable "^2.0.1" it-pushable "^3.1.0" it-pair@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/it-pair/-/it-pair-2.0.4.tgz#3113fd3f0b573f823cfd6c4339432ea7ddebc7c8" - integrity sha512-S3y3mTJ3muuxcHBGcIzNONofAN+G3iAgmSjS78qARkRWI2ImJXybjj0h52uSW+isgrJqIx2iFB/T8ZEBc8kDSw== + version "2.0.6" + resolved "https://registry.yarnpkg.com/it-pair/-/it-pair-2.0.6.tgz#072defa6b96f611af34e0b0c84573107ddb9f28f" + integrity sha512-5M0t5RAcYEQYNG5BV7d7cqbdwbCAp5yLdzvkxsZmkuZsLbTdZzah6MQySYfaAQjNDCq6PUnDt0hqBZ4NwMfW6g== dependencies: - it-stream-types "^1.0.3" + it-stream-types "^2.0.1" p-defer "^4.0.0" it-parallel-batch@^1.0.9: @@ -14294,9 +15347,9 @@ it-parallel-batch@^2.0.0: it-batch "^2.0.0" it-parallel@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/it-parallel/-/it-parallel-3.0.1.tgz#cdffdad1af4681cd3738afbb47f34cc38647fa8e" - integrity sha512-Wq9DcoLrFV9n5YzWC4BlOQT+v5qgir/iIO/CJ1eV0T5t9rcCZFPKOZB3E8wIhZ5ruSApc2w7UKrbn5iENqew5A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/it-parallel/-/it-parallel-3.0.3.tgz#b02f1d6459418c7253ecf13e367111560a616491" + integrity sha512-Q5KmdvERHCOLDcgKqrzQ+yiMCdG6H9h7ZL3Zjx/Tx9xhZy8txSKoy+EiCgWZFs0rfYvxJhk6UkOpKLzJ1zM9ZA== dependencies: p-defer "^4.0.0" @@ -14324,17 +15377,26 @@ it-pipe@^2.0.3, it-pipe@^2.0.4: it-pushable "^3.1.0" it-stream-types "^1.0.3" -it-pushable@^3.0.0, it-pushable@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-3.1.2.tgz#6f2420fb192f637613c561720945a36b6d9160ae" - integrity sha512-zU9FbeoGT0f+yobwm8agol2OTMXbq4ZSWLEi7hug6TEZx4qVhGhGyp31cayH04aBYsIoO2Nr5kgMjH/oWj2BJQ== +it-pipe@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/it-pipe/-/it-pipe-3.0.1.tgz#b25720df82f4c558a8532602b5fbc37bbe4e7ba5" + integrity sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA== + dependencies: + it-merge "^3.0.0" + it-pushable "^3.1.2" + it-stream-types "^2.0.1" + +it-pushable@^3.0.0, it-pushable@^3.1.0, it-pushable@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-3.1.3.tgz#b6f4a1e0236502f12b5661b40468b629799baf0e" + integrity sha512-f50iQ85HISS6DaWCyrqf9QJ6G/kQtKIMf9xZkgZgyOvxEQDfn8OfYcLXXquCqgoLboxQtAW1ZFZyFIAsLHDtJw== it-reader@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-6.0.2.tgz#2177afca42f0b41c6acc582cc6fc6869ae8d4dd4" - integrity sha512-rQdVyml+r/2v8PQsPfJgf626tAkbA7NW1EF6zuucT2Ryy1U6YJtSuCJL8fKuDOyiR/mLzbfP0QQJlSeeoLph2A== + version "6.0.4" + resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-6.0.4.tgz#439cb88225dcd15116be0ffde9e846a928c3871a" + integrity sha512-XCWifEcNFFjjBHtor4Sfaj8rcpt+FkY0L6WdhD578SCDhV4VUm7fCkF3dv5a+fTcfQqvN9BsxBTvWbYO6iCjTg== dependencies: - it-stream-types "^1.0.4" + it-stream-types "^2.0.1" uint8arraylist "^2.0.0" it-reduce@^2.0.0: @@ -14361,6 +15423,11 @@ it-stream-types@^1.0.2, it-stream-types@^1.0.3, it-stream-types@^1.0.4: resolved "https://registry.yarnpkg.com/it-stream-types/-/it-stream-types-1.0.5.tgz#9c72e6adefdea9dac69d0a28fbea783deebd508d" integrity sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA== +it-stream-types@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/it-stream-types/-/it-stream-types-2.0.1.tgz#69cb4d7e79e707b8257a8997e02751ccb6c3af32" + integrity sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg== + it-take@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/it-take/-/it-take-1.0.2.tgz#b5f1570014db7c3454897898b69bb7ac9c3bffc1" @@ -14420,14 +15487,14 @@ iterall@^1.2.1, iterall@^1.3.0: integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== jake@^10.8.5: - version "10.8.5" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" - integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== + version "10.8.7" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== dependencies: async "^3.2.3" chalk "^4.0.2" - filelist "^1.0.1" - minimatch "^3.0.4" + filelist "^1.0.4" + minimatch "^3.1.2" jdenticon@^3.1.0: version "3.2.0" @@ -15329,15 +16396,20 @@ jest@^27.4.3: import-local "^3.0.2" jest-cli "^27.5.1" +jiti@^1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" + integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== + jmespath@^0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" integrity sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w== joi@^17.2.1: - version "17.8.4" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.8.4.tgz#f2d91ab8acd3cca4079ba70669c65891739234aa" - integrity sha512-jjdRHb5WtL+KgSHvOULQEPPv4kcl+ixd1ybOFQq3rWLgEEqc03QMmilodL0GVJE14U/SQDXkUhQUSZANGDH/AA== + version "17.9.2" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.9.2.tgz#8b2e4724188369f55451aebd1d0b1d9482470690" + integrity sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" @@ -15346,9 +16418,9 @@ joi@^17.2.1: "@sideway/pinpoint" "^2.0.0" jose@^4.8.1: - version "4.13.1" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.13.1.tgz#449111bb5ab171db85c03f1bd2cb1647ca06db1c" - integrity sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ== + version "4.14.4" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca" + integrity sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g== joycon@^2.2.5: version "2.2.5" @@ -15360,11 +16432,6 @@ js-base64@^3.7.3: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== -js-sdsl@^4.1.4: - version "4.3.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" - integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -15375,7 +16442,7 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== -js-yaml@4.1.0, js-yaml@^4.1.0: +js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -15390,13 +16457,6 @@ js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1: argparse "^1.0.7" esprima "^4.0.0" -js2xmlparser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.2.tgz#2a1fdf01e90585ef2ae872a01bc169c6a8d5e60a" - integrity sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA== - dependencies: - xmlcreate "^2.0.4" - jsbn@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" @@ -15407,26 +16467,10 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jsdoc@^3.6.11: - version "3.6.11" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.11.tgz#8bbb5747e6f579f141a5238cbad4e95e004458ce" - integrity sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg== - dependencies: - "@babel/parser" "^7.9.4" - "@types/markdown-it" "^12.2.3" - bluebird "^3.7.2" - catharsis "^0.9.0" - escape-string-regexp "^2.0.0" - js2xmlparser "^4.0.2" - klaw "^3.0.0" - markdown-it "^12.3.2" - markdown-it-anchor "^8.4.1" - marked "^4.0.10" - mkdirp "^1.0.4" - requizzle "^0.2.3" - strip-json-comments "^3.1.0" - taffydb "2.6.2" - underscore "~1.13.2" +jschardet@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-3.0.0.tgz#898d2332e45ebabbdb6bf2feece9feea9a99e882" + integrity sha512-lJH6tJ77V8Nzd5QWRkFYCLc13a3vADkh3r/Fi8HupZGWk2OVVDfnZP8V/VgQgZ+lzW0kG2UGb5hFgt3V3ndotQ== jsdom@^16.4.0, jsdom@^16.6.0: version "16.7.0" @@ -15664,6 +16708,13 @@ k-bucket@^5.1.0: dependencies: randombytes "^2.1.0" +katex@^0.16.0, katex@^0.16.7: + version "0.16.7" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.7.tgz#36be1d4ed96e8afdc5863407e70f8fb250aeafd5" + integrity sha512-Xk9C6oGKRwJTfqfIbtr0Kes9OSv6IFsuhFGc7tW4urlpMJtuh+7YhzU6YEG9n8gmWKcMAFzkp7nr+r69kV0zrA== + dependencies: + commander "^8.3.0" + key-encoder@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba" @@ -15688,6 +16739,11 @@ keyv@^4.0.0, keyv@^4.5.2: dependencies: json-buffer "3.0.1" +khroma@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b" + integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -15726,19 +16782,12 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -klaw@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" - integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== - dependencies: - graceful-fs "^4.1.9" - kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -kleur@^4.1.4: +kleur@^4.0.3, kleur@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== @@ -15749,9 +16798,9 @@ klona@^2.0.4, klona@^2.0.5: integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== kolorist@^1.2.10: - version "1.7.0" - resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.7.0.tgz#8e22bc470ea2d2743dbd461808f8b5246b19f5f4" - integrity sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g== + version "1.8.0" + resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== kramed@0.5.6: version "0.5.6" @@ -15800,6 +16849,16 @@ launch-editor@^2.6.0: picocolors "^1.0.0" shell-quote "^1.7.3" +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== + +layout-base@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" + integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== + level-supports@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" @@ -15923,11 +16982,11 @@ libp2p@^0.40.0: xsalsa20 "^1.1.0" libphonenumber-js@^1.9.43: - version "1.10.24" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.24.tgz#a1744cf29df86d5a587562ea28dde12320eb6ab6" - integrity sha512-3Dk8f5AmrcWqg+oHhmm9hwSTqpWHBdSqsHmjCJGroULFubi0+x7JEIGmRZCuL3TI8Tx39xaKqfnhsDQ4ALa/Nw== + version "1.10.36" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.36.tgz#ec74008ffbc488d7ad9ebd722b2773292d568033" + integrity sha512-NCPWES1poiS4NSzIS49mxHM5hCkSWov8wFICRKfL9narzimqAXlnAgNloHCt0BukZHbWt8TIStCdzLy7LXBYpQ== -lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: +lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== @@ -15937,13 +16996,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -linkify-it@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" - integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== - dependencies: - uc.micro "^1.0.1" - listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" @@ -16003,29 +17055,30 @@ listr@^0.14.3: p-map "^2.0.0" rxjs "^6.3.3" -lit-element@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.2.2.tgz#d148ab6bf4c53a33f707a5168e087725499e5f2b" - integrity sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ== +lit-element@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.2.tgz#9913bf220b85065f0e5f1bb8878cc44f36b50cfa" + integrity sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ== dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.0" "@lit/reactive-element" "^1.3.0" - lit-html "^2.2.0" + lit-html "^2.7.0" -lit-html@^2.2.0, lit-html@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.6.1.tgz#eb29f0b0c2ab54ea77379db11fc011b0c71f1cda" - integrity sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw== +lit-html@^2.7.0: + version "2.7.4" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.7.4.tgz#6d75001977c206683685b9d76594a516afda2954" + integrity sha512-/Jw+FBpeEN+z8X6PJva5n7+0MzCVAH2yypN99qHYYkq8bI+j7I39GH+68Z/MZD6rGKDK9RpzBw7CocfmHfq6+g== dependencies: "@types/trusted-types" "^2.0.2" lit@^2.0.0-rc.2, lit@^2.3.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/lit/-/lit-2.6.1.tgz#5951a2098b9bde5b328c73b55c15fdc0eefd96d7" - integrity sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw== + version "2.7.5" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.5.tgz#60bc82990cfad169d42cd786999356dcf79b035f" + integrity sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ== dependencies: "@lit/reactive-element" "^1.6.0" - lit-element "^3.2.0" - lit-html "^2.6.0" + lit-element "^3.3.0" + lit-html "^2.7.0" livereload-js@^2.3.0: version "2.4.0" @@ -16212,9 +17265,9 @@ long@^4.0.0: integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== long@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" - integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== longbits@^1.1.0: version "1.1.0" @@ -16229,6 +17282,11 @@ longest-streak@^2.0.0: resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -16378,21 +17436,10 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -markdown-it-anchor@^8.4.1: - version "8.6.7" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" - integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== - -markdown-it@^12.3.2: - version "12.3.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" - integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== - dependencies: - argparse "^2.0.1" - entities "~2.1.0" - linkify-it "^3.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" +markdown-extensions@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz#fea03b539faeaee9b4ef02a3769b455b189f7fc3" + integrity sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q== markdown-table@^2.0.0: version "2.0.0" @@ -16401,10 +17448,23 @@ markdown-table@^2.0.0: dependencies: repeat-string "^1.0.0" -marked@^4.0.10, marked@^4.2.12: - version "4.2.12" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.12.tgz#d69a64e21d71b06250da995dcd065c11083bebb5" - integrity sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw== +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== + +marked@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== + +match-sorter@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda" + integrity sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw== + dependencies: + "@babel/runtime" "^7.12.5" + remove-accents "0.4.2" matcher@^3.0.0: version "3.0.0" @@ -16431,6 +17491,15 @@ md5@^2.3.0: crypt "0.0.2" is-buffer "~1.1.6" +mdast-util-definitions@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + mdast-util-find-and-replace@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" @@ -16440,6 +17509,16 @@ mdast-util-find-and-replace@^1.1.0: unist-util-is "^4.0.0" unist-util-visit-parents "^3.0.0" +mdast-util-find-and-replace@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz#cc2b774f7f3630da4bd592f61966fecade8b99b1" + integrity sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw== + dependencies: + "@types/mdast" "^3.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + mdast-util-footnote@^0.1.0: version "0.1.7" resolved "https://registry.yarnpkg.com/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz#4b226caeab4613a3362c144c94af0fdd6f7e0ef0" @@ -16459,6 +17538,24 @@ mdast-util-from-markdown@^0.8.0: parse-entities "^2.0.0" unist-util-stringify-position "^2.0.0" +mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.1.0, mdast-util-from-markdown@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + mdast-util-frontmatter@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz#8bd5cd55e236c03e204a036f7372ebe9e6748240" @@ -16475,6 +17572,25 @@ mdast-util-gfm-autolink-literal@^0.1.0, mdast-util-gfm-autolink-literal@^0.1.3: mdast-util-find-and-replace "^1.1.0" micromark "^2.11.3" +mdast-util-gfm-autolink-literal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz#67a13abe813d7eba350453a5333ae1bc0ec05c06" + integrity sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA== + dependencies: + "@types/mdast" "^3.0.0" + ccount "^2.0.0" + mdast-util-find-and-replace "^2.0.0" + micromark-util-character "^1.0.0" + +mdast-util-gfm-footnote@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz#ce5e49b639c44de68d5bf5399877a14d5020424e" + integrity sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + micromark-util-normalize-identifier "^1.0.0" + mdast-util-gfm-strikethrough@^0.2.0: version "0.2.3" resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz#45eea337b7fff0755a291844fbea79996c322890" @@ -16482,6 +17598,14 @@ mdast-util-gfm-strikethrough@^0.2.0: dependencies: mdast-util-to-markdown "^0.6.0" +mdast-util-gfm-strikethrough@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz#5470eb105b483f7746b8805b9b989342085795b7" + integrity sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + mdast-util-gfm-table@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz#af05aeadc8e5ee004eeddfb324b2ad8c029b6ecf" @@ -16490,23 +17614,136 @@ mdast-util-gfm-table@^0.1.0: markdown-table "^2.0.0" mdast-util-to-markdown "~0.6.0" +mdast-util-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz#3552153a146379f0f9c4c1101b071d70bbed1a46" + integrity sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg== + dependencies: + "@types/mdast" "^3.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.3.0" + mdast-util-gfm-task-list-item@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz#70c885e6b9f543ddd7e6b41f9703ee55b084af10" integrity sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A== dependencies: - mdast-util-to-markdown "~0.6.0" + mdast-util-to-markdown "~0.6.0" + +mdast-util-gfm-task-list-item@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz#b280fcf3b7be6fd0cc012bbe67a59831eb34097b" + integrity sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" + integrity sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ== + dependencies: + mdast-util-gfm-autolink-literal "^0.1.0" + mdast-util-gfm-strikethrough "^0.2.0" + mdast-util-gfm-table "^0.1.0" + mdast-util-gfm-task-list-item "^0.1.0" + mdast-util-to-markdown "^0.6.1" + +mdast-util-gfm@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz#e92f4d8717d74bdba6de57ed21cc8b9552e2d0b6" + integrity sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-gfm-autolink-literal "^1.0.0" + mdast-util-gfm-footnote "^1.0.0" + mdast-util-gfm-strikethrough "^1.0.0" + mdast-util-gfm-table "^1.0.0" + mdast-util-gfm-task-list-item "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-math@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-math/-/mdast-util-math-2.0.2.tgz#19a06a81f31643f48cc805e7c31edb7ce739242c" + integrity sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ== + dependencies: + "@types/mdast" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-mdx-expression@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz#d027789e67524d541d6de543f36d51ae2586f220" + integrity sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-mdx-jsx@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz#7c1f07f10751a78963cfabee38017cbc8b7786d1" + integrity sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + ccount "^2.0.0" + mdast-util-from-markdown "^1.1.0" + mdast-util-to-markdown "^1.3.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-remove-position "^4.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +mdast-util-mdx@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz#49b6e70819b99bb615d7223c088d295e53bb810f" + integrity sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-mdx-expression "^1.0.0" + mdast-util-mdx-jsx "^2.0.0" + mdast-util-mdxjs-esm "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-mdxjs-esm@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz#645d02cd607a227b49721d146fd81796b2e2d15b" + integrity sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" + integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== + dependencies: + "@types/mdast" "^3.0.0" + unist-util-is "^5.0.0" -mdast-util-gfm@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" - integrity sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ== +mdast-util-to-hast@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== dependencies: - mdast-util-gfm-autolink-literal "^0.1.0" - mdast-util-gfm-strikethrough "^0.2.0" - mdast-util-gfm-table "^0.1.0" - mdast-util-gfm-task-list-item "^0.1.0" - mdast-util-to-markdown "^0.6.1" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-definitions "^5.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: version "0.6.5" @@ -16520,11 +17757,32 @@ mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-mark repeat-string "^1.0.0" zwitch "^1.0.0" +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" + integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + mdast-util-to-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + mdn-data@2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" @@ -16535,22 +17793,17 @@ mdn-data@2.0.4: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memfs@^3.1.2, memfs@^3.4.3: - version "3.4.13" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.13.tgz#248a8bd239b3c240175cd5ec548de5227fc4f345" - integrity sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg== + version "3.5.3" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.3.tgz#d9b40fe4f8d5788c5f895bda804cd0d9eeee9f3b" + integrity sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw== dependencies: - fs-monkey "^1.0.3" + fs-monkey "^1.0.4" memoize-one@^5.1.1: version "5.2.1" @@ -16641,11 +17894,56 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +mermaid@10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-10.2.1.tgz#5183c956a64e1ed9cf0122cec6c6cb4900521966" + integrity sha512-gziwXLuAidRxPJxcA0LqPhToirGZ2J2gD+UrDEtGNeKb98BtcQde28UUcCUCmNplkQOwE7oynrzKcMe9i29AMw== + dependencies: + "@braintree/sanitize-url" "^6.0.2" + cytoscape "^3.23.0" + cytoscape-cose-bilkent "^4.1.0" + cytoscape-fcose "^2.1.0" + d3 "^7.4.0" + dagre-d3-es "7.0.10" + dayjs "^1.11.7" + dompurify "3.0.3" + elkjs "^0.8.2" + khroma "^2.0.0" + lodash-es "^4.17.21" + mdast-util-from-markdown "^1.3.0" + non-layered-tidy-tree-layout "^2.0.2" + stylis "^4.1.3" + ts-dedent "^2.2.0" + uuid "^9.0.0" + web-worker "^1.2.0" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + micromark-extension-footnote@^0.3.0: version "0.3.2" resolved "https://registry.yarnpkg.com/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz#129b74ef4920ce96719b2c06102ee7abb2b88a20" @@ -16660,6 +17958,16 @@ micromark-extension-frontmatter@^0.2.0: dependencies: fault "^1.0.0" +micromark-extension-gfm-autolink-literal@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7" + integrity sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + micromark-extension-gfm-autolink-literal@~0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz#53866c1f0c7ef940ae7ca1f72c6faef8fed9f204" @@ -16667,6 +17975,32 @@ micromark-extension-gfm-autolink-literal@~0.5.0: dependencies: micromark "~2.11.3" +micromark-extension-gfm-footnote@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e" + integrity sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q== + dependencies: + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-strikethrough@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af" + integrity sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + micromark-extension-gfm-strikethrough@~0.6.5: version "0.6.5" resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz#96cb83356ff87bf31670eefb7ad7bba73e6514d1" @@ -16674,6 +18008,17 @@ micromark-extension-gfm-strikethrough@~0.6.5: dependencies: micromark "~2.11.0" +micromark-extension-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008" + integrity sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + micromark-extension-gfm-table@~0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz#4d49f1ce0ca84996c853880b9446698947f1802b" @@ -16681,11 +18026,29 @@ micromark-extension-gfm-table@~0.4.0: dependencies: micromark "~2.11.0" +micromark-extension-gfm-tagfilter@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz#aa7c4dd92dabbcb80f313ebaaa8eb3dac05f13a7" + integrity sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g== + dependencies: + micromark-util-types "^1.0.0" + micromark-extension-gfm-tagfilter@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad" integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== +micromark-extension-gfm-task-list-item@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4" + integrity sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + micromark-extension-gfm-task-list-item@~0.3.0: version "0.3.3" resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" @@ -16705,6 +18068,276 @@ micromark-extension-gfm@^0.3.0: micromark-extension-gfm-tagfilter "~0.3.0" micromark-extension-gfm-task-list-item "~0.3.0" +micromark-extension-gfm@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz#e517e8579949a5024a493e49204e884aa74f5acf" + integrity sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ== + dependencies: + micromark-extension-gfm-autolink-literal "^1.0.0" + micromark-extension-gfm-footnote "^1.0.0" + micromark-extension-gfm-strikethrough "^1.0.0" + micromark-extension-gfm-table "^1.0.0" + micromark-extension-gfm-tagfilter "^1.0.0" + micromark-extension-gfm-task-list-item "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-extension-math@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-math/-/micromark-extension-math-2.1.2.tgz#52c70cc8266cd20ada1ef5a479bfed9a19b789bf" + integrity sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg== + dependencies: + "@types/katex" "^0.16.0" + katex "^0.16.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-mdx-expression@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz#5bc1f5fd90388e8293b3ef4f7c6f06c24aff6314" + integrity sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw== + dependencies: + "@types/estree" "^1.0.0" + micromark-factory-mdx-expression "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-mdx-jsx@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz#e72d24b7754a30d20fb797ece11e2c4e2cae9e82" + integrity sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + estree-util-is-identifier-name "^2.0.0" + micromark-factory-mdx-expression "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-extension-mdx-md@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz#595d4b2f692b134080dca92c12272ab5b74c6d1a" + integrity sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-mdxjs-esm@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz#e4f8be9c14c324a80833d8d3a227419e2b25dec1" + integrity sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w== + dependencies: + "@types/estree" "^1.0.0" + micromark-core-commonmark "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-position-from-estree "^1.1.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-extension-mdxjs@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz#f78d4671678d16395efeda85170c520ee795ded8" + integrity sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^1.0.0" + micromark-extension-mdx-jsx "^1.0.0" + micromark-extension-mdx-md "^1.0.0" + micromark-extension-mdxjs-esm "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-mdx-expression@^1.0.0: + version "1.0.9" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz#57ba4571b69a867a1530f34741011c71c73a4976" + integrity sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA== + dependencies: + "@types/estree" "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-position-from-estree "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-events-to-acorn@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz#a4ab157f57a380e646670e49ddee97a72b58b557" + integrity sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + "@types/unist" "^2.0.0" + estree-util-visit "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: version "2.11.4" resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" @@ -16713,6 +18346,29 @@ micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: debug "^4.0.0" parse-entities "^2.0.0" +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -16816,9 +18472,9 @@ min-indent@^1.0.0: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.4.5: - version "2.7.3" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.3.tgz#794aa4d598bf178a66b2a35fe287c3df3eac394e" - integrity sha512-CD9cXeKeXLcnMw8FZdtfrRrLaM7gwCl4nKuKn2YkY2Bw5wdlB8zU2cCzw+w2zS9RFvbrufTBkMCJACNPwqQA0w== + version "2.7.6" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" + integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== dependencies: schema-utils "^4.0.0" @@ -16853,10 +18509,10 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^7.1.3: - version "7.4.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.2.tgz#157e847d79ca671054253b840656720cb733f10f" - integrity sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA== +minimatch@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== dependencies: brace-expansion "^2.0.1" @@ -16894,10 +18550,10 @@ minipass@^3.0.0: dependencies: yallist "^4.0.0" -minipass@^4.0.0: - version "4.2.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.5.tgz#9e0e5256f1e3513f8c34691dd68549e85b2c8ceb" - integrity sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q== +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== minizlib@^1.3.3: version "1.3.3" @@ -16923,9 +18579,9 @@ mixin-deep@^1.2.0: is-extendable "^1.0.1" mixme@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.5.tgz#bf8f67d8caf10fdb49fd23198fd1fa6d8e406627" - integrity sha512-/6IupbRx32s7jjEwHcycXikJwFD5UujbVNuJFkeKLYje+92OvtuPniF6JhnFm5JCTDUhS+kYK3W/4BWYQYXz7w== + version "0.5.9" + resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.9.tgz#a5a58e17354632179ff3ce5b0fc130899c8ba81c" + integrity sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw== mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" @@ -17062,7 +18718,7 @@ multiformats@^10.0.0, multiformats@^10.0.1: resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-10.0.3.tgz#d4147d01f9a31271c6fb5d24adf9b01f9e656bba" integrity sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw== -multiformats@^11.0.0: +multiformats@^11.0.0, multiformats@^11.0.2: version "11.0.2" resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60" integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg== @@ -17100,20 +18756,29 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== -nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.3.4, nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== nanoid@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.1.tgz#398d7ccfdbf9faf2231b2ca7e8fff5dbca6a509b" - integrity sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww== + version "4.0.2" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.2.tgz#140b3c5003959adbebf521c170f282c5e7f9fb9e" + integrity sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw== nanomatch@^1.2.9: version "1.2.13" @@ -17137,10 +18802,10 @@ napi-build-utils@^1.0.1: resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== -napi-macros@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" - integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== +napi-macros@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" + integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== native-fetch@^3.0.0: version "3.0.0" @@ -17225,6 +18890,97 @@ new-github-release-url@^1.0.0: dependencies: type-fest "^0.4.1" +next-mdx-remote@^4.2.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/next-mdx-remote/-/next-mdx-remote-4.4.1.tgz#96b16e2adc54dbcd0a7f204a9a3c3fd269d41abf" + integrity sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ== + dependencies: + "@mdx-js/mdx" "^2.2.1" + "@mdx-js/react" "^2.2.1" + vfile "^5.3.0" + vfile-matter "^3.0.1" + +next-seo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/next-seo/-/next-seo-6.0.0.tgz#4568dc61a44dbdf5fe5ff44156cd0ff8804889a2" + integrity sha512-jKKt1p1z4otMA28AyeoAONixVjdYmgFCWwpEFtu+DwRHQDllVX3RjtyXbuCQiUZEfQ9rFPBpAI90vDeLZlMBdg== + +next-themes@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.2.1.tgz#0c9f128e847979daf6c67f70b38e6b6567856e45" + integrity sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A== + +next@^13.0.6: + version "13.4.5" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.5.tgz#f4ee3e6a2408b363f56037f4ee5674a433c4ba0d" + integrity sha512-pfNsRLVM9e5Y1/z02VakJRfD6hMQkr24FaN2xc9GbcZDBxoOgiNAViSg5cXwlWCoMhtm4U315D7XYhgOr96Q3Q== + dependencies: + "@next/env" "13.4.5" + "@swc/helpers" "0.5.1" + busboy "1.6.0" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.1.1" + watchpack "2.4.0" + zod "3.21.4" + optionalDependencies: + "@next/swc-darwin-arm64" "13.4.5" + "@next/swc-darwin-x64" "13.4.5" + "@next/swc-linux-arm64-gnu" "13.4.5" + "@next/swc-linux-arm64-musl" "13.4.5" + "@next/swc-linux-x64-gnu" "13.4.5" + "@next/swc-linux-x64-musl" "13.4.5" + "@next/swc-win32-arm64-msvc" "13.4.5" + "@next/swc-win32-ia32-msvc" "13.4.5" + "@next/swc-win32-x64-msvc" "13.4.5" + +nextra-theme-docs@latest: + version "2.7.1" + resolved "https://registry.yarnpkg.com/nextra-theme-docs/-/nextra-theme-docs-2.7.1.tgz#d92827af26a2797bb59b347674115329074fd0da" + integrity sha512-C2DtoGH15q22t4r2JC89lvvajmnyiqsv3PaqHJpoHRlF2eR5giuLhZC5Oahb9AENRDcnUIUvqVi/8NlfiIM0yQ== + dependencies: + "@headlessui/react" "^1.7.10" + "@popperjs/core" "^2.11.6" + clsx "^1.2.1" + flexsearch "^0.7.21" + focus-visible "^5.2.0" + git-url-parse "^13.1.0" + intersection-observer "^0.12.2" + match-sorter "^6.3.1" + next-seo "^6.0.0" + next-themes "^0.2.1" + scroll-into-view-if-needed "^3.0.0" + zod "^3.20.2" + +nextra@latest: + version "2.7.1" + resolved "https://registry.yarnpkg.com/nextra/-/nextra-2.7.1.tgz#f3c01c45aa96e4a9285a3aee333e18e8e1d1bf71" + integrity sha512-qchTb7XSm357XAHf9MV9UlUSGolPEPE8iFnC/9KMwvhIoE4seyPYWMrnH84XraZCcGERvy9TrkFD30VE7Qv1MA== + dependencies: + "@mdx-js/mdx" "^2.3.0" + "@mdx-js/react" "^2.3.0" + "@napi-rs/simple-git" "^0.1.8" + "@theguild/remark-mermaid" "^0.0.1" + clsx "^1.2.1" + github-slugger "^2.0.0" + graceful-fs "^4.2.11" + gray-matter "^4.0.3" + katex "^0.16.7" + lodash.get "^4.4.2" + next-mdx-remote "^4.2.1" + p-limit "^3.1.0" + rehype-katex "^6.0.3" + rehype-pretty-code "0.9.4" + remark-gfm "^3.0.1" + remark-math "^5.1.1" + remark-reading-time "^2.0.1" + shiki "^0.14.2" + slash "^3.0.0" + title "^3.5.3" + unist-util-remove "^3.1.1" + unist-util-visit "^4.1.1" + zod "^3.20.2" + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -17250,9 +19006,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^3.3.0: - version "3.33.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.33.0.tgz#8b23a0cec84e1c5f5411836de6a9b84bccf26e7f" - integrity sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog== + version "3.45.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.45.0.tgz#f568f163a3bfca5aacfce1fbeee1fa2cc98441f5" + integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== dependencies: semver "^7.3.5" @@ -17266,17 +19022,10 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-fetch@2, node-fetch@^2.5.11, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7, node-fetch@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" - integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== - dependencies: - whatwg-url "^5.0.0" - -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== +node-fetch@2, node-fetch@^2.5.11, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.11, node-fetch@^2.6.6, node-fetch@^2.6.7, node-fetch@^2.6.8: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== dependencies: whatwg-url "^5.0.0" @@ -17339,10 +19088,10 @@ node-pre-gyp@^0.13.0: semver "^5.3.0" tar "^4" -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== node-wget-js@^1.0.1: version "1.0.1" @@ -17356,6 +19105,11 @@ nofilter@^1.0.4: resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== +non-layered-tidy-tree-layout@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804" + integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== + nopt@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -17371,7 +19125,7 @@ nopt@^5.0.0: dependencies: abbrev "1" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -17429,9 +19183,9 @@ normalize-url@^8.0.0: integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== np@^7.6.2: - version "7.6.3" - resolved "https://registry.yarnpkg.com/np/-/np-7.6.3.tgz#da3eeb750fa8d583f658b02a16f1199a11c9e10f" - integrity sha512-GTFNvIhu/cZqzUhil/AlISCiipYeAUVx0JtyjtmumFJvWogSewUSAshFi5MSMc6BOj9C98s8NAFZiqlHb2wQPQ== + version "7.7.0" + resolved "https://registry.yarnpkg.com/np/-/np-7.7.0.tgz#7fbf2495f6395bcc702b84ca38c4a125363fd5a5" + integrity sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q== dependencies: "@samverschueren/stream-to-observable" "^0.3.1" any-observable "^0.5.1" @@ -17503,7 +19257,7 @@ npm-name@^6.0.1: registry-url "^5.1.0" validate-npm-package-name "^3.0.0" -npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: +npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== @@ -17611,25 +19365,25 @@ nunjucks-do@^1.0.0: integrity sha512-GQwENqZdcSbni0iYfEiNi3hs634JBSQdxnbnd9CetGkMYPnpjG1Jn5DT/qgAaC/STwMc7C4MSIJvLSNertclSg== nunjucks@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.3.tgz#1b33615247290e94e28263b5d855ece765648a31" - integrity sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ== + version "3.2.4" + resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.4.tgz#f0878eef528ce7b0aa35d67cc6898635fd74649e" + integrity sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ== dependencies: a-sync-waterfall "^1.0.0" asap "^2.0.3" commander "^5.1.0" nwsapi@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== + version "2.2.5" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.5.tgz#a52744c61b3889dd44b0a158687add39b8d935e2" + integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ== oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -17653,14 +19407,6 @@ object-inspect@^1.12.3, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -17712,14 +19458,15 @@ object.fromentries@^2.0.5, object.fromentries@^2.0.6: es-abstract "^1.20.4" object.getownpropertydescriptors@^2.1.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" - integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== + version "2.1.6" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== dependencies: array.prototype.reduce "^1.0.5" call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" object.hasown@^1.1.0, object.hasown@^1.1.2: version "1.1.2" @@ -17992,7 +19739,7 @@ p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -18130,10 +19877,10 @@ p-timeout@^5.0.2: resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b" integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew== -p-timeout@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.1.tgz#bcee5e37d730f5474d973b6ff226751a1a5e6ff1" - integrity sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w== +p-timeout@^6.0.0, p-timeout@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.2.tgz#22b8d8a78abf5e103030211c5fc6dee1166a6aa5" + integrity sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ== p-try-each@^1.0.1: version "1.0.1" @@ -18156,9 +19903,9 @@ package-json@^6.3.0: semver "^6.2.0" package-json@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.0.tgz#2a22806f1ed7c786c8e6ff26cfe20003bf4c6850" - integrity sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg== + version "8.1.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== dependencies: got "^12.1.0" registry-auth-token "^5.0.1" @@ -18209,9 +19956,9 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: safe-buffer "^5.1.1" parse-duration@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.0.3.tgz#b6681f5edcc2689643b34c09ea63f86f58a35814" - integrity sha512-o6NAh12na5VvR6nFejkU0gpQ8jmOY9Y9sTU2ke3L3G/d/3z8jqmbBbeyBGHU73P4JLXfc7tJARygIK3WGIkloA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.1.0.tgz#5192084c5d8f2a3fd676d04a451dbd2e05a1819c" + integrity sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ== parse-entities@^2.0.0: version "2.0.0" @@ -18225,6 +19972,20 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" + integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -18243,6 +20004,25 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + parse5-htmlparser2-tree-adapter@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" @@ -18423,6 +20203,15 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== +periscopic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + picocolors@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" @@ -18802,10 +20591,10 @@ postcss-image-set-function@^4.0.7: dependencies: postcss-value-parser "^4.2.0" -postcss-import@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" - integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== dependencies: postcss-value-parser "^4.0.0" read-cache "^1.0.0" @@ -18816,7 +20605,7 @@ postcss-initial@^4.0.1: resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== -postcss-js@^4.0.0: +postcss-js@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== @@ -18839,7 +20628,7 @@ postcss-load-config@^2.1.0: cosmiconfig "^5.0.0" import-cwd "^2.0.0" -postcss-load-config@^3.0.0, postcss-load-config@^3.1.4: +postcss-load-config@^3.0.0: version "3.1.4" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== @@ -18847,6 +20636,14 @@ postcss-load-config@^3.0.0, postcss-load-config@^3.1.4: lilconfig "^2.0.5" yaml "^1.10.2" +postcss-load-config@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" + integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + dependencies: + lilconfig "^2.0.5" + yaml "^2.1.1" + postcss-loader@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" @@ -18998,10 +20795,10 @@ postcss-modules-local-by-default@1.2.0: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== +postcss-modules-local-by-default@^4.0.0, postcss-modules-local-by-default@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== dependencies: icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" @@ -19062,12 +20859,12 @@ postcss-modules@^4.0.0: postcss-modules-values "^4.0.0" string-hash "^1.1.1" -postcss-nested@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" - integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== dependencies: - postcss-selector-parser "^6.0.10" + postcss-selector-parser "^6.0.11" postcss-nesting@^10.2.0: version "10.2.0" @@ -19390,9 +21187,9 @@ postcss-selector-parser@^3.0.0: uniq "^1.0.1" postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: - version "6.0.11" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -19449,6 +21246,15 @@ postcss@6.0.1: source-map "^0.5.6" supports-color "^3.2.3" +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^6.0.1: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" @@ -19466,12 +21272,12 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.0.9, postcss@^8.2.1, postcss@^8.3.5, postcss@^8.4.19, postcss@^8.4.21, postcss@^8.4.4: - version "8.4.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" - integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== +postcss@^8.2.1, postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4: + version "8.4.24" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" + integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== dependencies: - nanoid "^3.3.4" + nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -19505,9 +21311,9 @@ preact-transition-group@^1.1.1: integrity sha512-v89XLodCvylf5lMrhI+LqIhDsAjWfiDKV4keAU+L5yDtxmqn8uvjZXn+haKMEG0x0PZz81own19SuNJD5NlOFQ== preact@^10.11.3: - version "10.13.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.13.1.tgz#d220bd8771b8fa197680d4917f3cefc5eed88720" - integrity sha512-KyoXVDU5OqTpG9LXlB3+y639JAGzl8JSBXLn1J9HTSB3gbKcuInga7bZnXLlxmK94ntTs1EFeZp0lrja2AuBYQ== + version "10.15.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.15.1.tgz#a1de60c9fc0c79a522d969c65dcaddc5d994eede" + integrity sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g== prebuild-install@7.1.1: version "7.1.1" @@ -19553,9 +21359,9 @@ prepend-http@^2.0.0: integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== prettier@^2.7.1, prettier@latest: - version "2.8.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" - integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-bytes@^4.0.2: version "4.0.2" @@ -19716,6 +21522,11 @@ proper-lockfile@^4.0.0: retry "^0.12.0" signal-exit "^3.0.2" +property-information@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d" + integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg== + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -19741,9 +21552,9 @@ protobufjs@^6.11.2: long "^4.0.0" protobufjs@^7.0.0: - version "7.2.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.2.tgz#2af401d8c547b9476fb37ffc65782cf302342ca3" - integrity sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q== + version "7.2.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.3.tgz#01af019e40d9c6133c49acbb3ff9e30f4f0f70b2" + integrity sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -19758,6 +21569,11 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.0.0" +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + protons-runtime@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-4.0.2.tgz#a5670e703a5389dccb3700b583532e3316efcb94" @@ -19812,12 +21628,7 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - -punycode@^1.3.2: +punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== @@ -19871,9 +21682,9 @@ qs@6.11.0: side-channel "^1.0.4" qs@^6.11.0, qs@^6.4.0: - version "6.11.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" - integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== dependencies: side-channel "^1.0.4" @@ -19887,11 +21698,6 @@ querystring-es3@~0.2.0: resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -20119,19 +21925,19 @@ react-refresh@^0.11.0: integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== react-router-dom@^6.3.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.9.0.tgz#dd8b4e461453bd4cad2e6404493d1a5b4bfea758" - integrity sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q== + version "6.13.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.13.0.tgz#6651f456bb2af42ef14f6880123b1f575539e81f" + integrity sha512-6Nqoqd7fgwxxVGdbiMHTpDHCYPq62d7Wk1Of7B82vH7ZPwwsRaIa22zRZKPPg413R5REVNiyuQPKDG1bubcOFA== dependencies: - "@remix-run/router" "1.4.0" - react-router "6.9.0" + "@remix-run/router" "1.6.3" + react-router "6.13.0" -react-router@6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.9.0.tgz#0f503d9becbc62d9e4ddc0f9bd4026e0fd29fbf5" - integrity sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw== +react-router@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.13.0.tgz#7e4427a271dae0cafbdb88c56ccbd9b1434ee93f" + integrity sha512-Si6KnfEnJw7gUQkNa70dlpI1bul46FuSxX5t5WwlUBxE25DAz2BjVkwaK8Y2s242bQrZPXCpmwLPtIO5pv4tXg== dependencies: - "@remix-run/router" "1.4.0" + "@remix-run/router" "1.6.3" react-scripts@^5.0.1: version "5.0.1" @@ -20210,20 +22016,6 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -read-installed@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" - integrity sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ== - dependencies: - debuglog "^1.0.1" - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - semver "2 || 3 || 4 || 5" - slide "~1.1.3" - util-extend "^1.0.1" - optionalDependencies: - graceful-fs "^4.1.2" - read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" @@ -20231,16 +22023,6 @@ read-only-stream@^2.0.0: dependencies: readable-stream "^2.0.2" -read-package-json@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" - integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== - dependencies: - glob "^7.1.1" - json-parse-even-better-errors "^2.3.0" - normalize-package-data "^2.0.0" - npm-normalize-package-bin "^1.0.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -20302,9 +22084,9 @@ readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable util-deprecate "^1.0.1" readable-stream@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.3.0.tgz#0914d0c72db03b316c9733bb3461d64a3cc50cba" - integrity sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.0.tgz#55ce132d60a988c460d75c631e9ccf6a7229b468" + integrity sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg== dependencies: abort-controller "^3.0.0" buffer "^6.0.3" @@ -20328,16 +22110,6 @@ readable-web-to-node-stream@^3.0.2: dependencies: readable-stream "^3.6.0" -readdir-scoped-modules@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -20345,6 +22117,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +reading-time@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" + integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== + readline-sync@^1.4.10: version "1.4.10" resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" @@ -20425,13 +22202,13 @@ regex-parser@^2.2.11: integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" regexpu-core@^5.3.1: version "5.3.2" @@ -20480,6 +22257,26 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" +rehype-katex@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/rehype-katex/-/rehype-katex-6.0.3.tgz#83e5b929b0967978e9491c02117f55be3594d7e1" + integrity sha512-ByZlRwRUcWegNbF70CVRm2h/7xy7jQ3R9LaY4VVSvjnoVWwWVhNL60DiZsBpC5tSzYQOCvDbzncIpIjPZWodZA== + dependencies: + "@types/hast" "^2.0.0" + "@types/katex" "^0.14.0" + hast-util-from-html-isomorphic "^1.0.0" + hast-util-to-text "^3.1.0" + katex "^0.16.0" + unist-util-visit "^4.0.0" + +rehype-pretty-code@0.9.4: + version "0.9.4" + resolved "https://registry.yarnpkg.com/rehype-pretty-code/-/rehype-pretty-code-0.9.4.tgz#ab214026b530890c7a2e14c4f0881483e39e9cbc" + integrity sha512-3m4aQT15n8C+UizcZL0enaahoZwCDm5K1qKQ3DGgHE7U8l/DEEEJ/hm+uDe9yyK4sxVOSfZcRIMHrpJwLQi+Rg== + dependencies: + hash-obj "^4.0.0" + parse-numeric-range "^1.3.0" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -20498,16 +22295,53 @@ remark-frontmatter@^3.0.0: resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz#ca5d996361765c859bd944505f377d6b186a6ec6" integrity sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA== dependencies: - mdast-util-frontmatter "^0.2.0" - micromark-extension-frontmatter "^0.2.0" + mdast-util-frontmatter "^0.2.0" + micromark-extension-frontmatter "^0.2.0" + +remark-gfm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" + integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA== + dependencies: + mdast-util-gfm "^0.1.0" + micromark-extension-gfm "^0.3.0" + +remark-gfm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" + integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-gfm "^2.0.0" + micromark-extension-gfm "^2.0.0" + unified "^10.0.0" + +remark-math@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-5.1.1.tgz#459e798d978d4ca032e745af0bac81ddcdf94964" + integrity sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-math "^2.0.0" + micromark-extension-math "^2.0.0" + unified "^10.0.0" -remark-gfm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" - integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA== +remark-mdx@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.3.0.tgz#efe678025a8c2726681bde8bf111af4a93943db4" + integrity sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g== dependencies: - mdast-util-gfm "^0.1.0" - micromark-extension-gfm "^0.3.0" + mdast-util-mdx "^2.0.0" + micromark-extension-mdxjs "^1.0.0" + +remark-parse@^10.0.0: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" remark-parse@^9.0.0: version "9.0.0" @@ -20516,6 +22350,31 @@ remark-parse@^9.0.0: dependencies: mdast-util-from-markdown "^0.8.0" +remark-reading-time@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-reading-time/-/remark-reading-time-2.0.1.tgz#fe8bb8e420db7678dc749385167adb4fc99318f7" + integrity sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw== + dependencies: + estree-util-is-identifier-name "^2.0.0" + estree-util-value-to-estree "^1.3.0" + reading-time "^1.3.0" + unist-util-visit "^3.1.0" + +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + +remove-accents@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" + integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA== + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -20593,13 +22452,6 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -requizzle@^0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.4.tgz#319eb658b28c370f0c20f968fa8ceab98c13d27c" - integrity sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw== - dependencies: - lodash "^4.17.21" - resolve-alpn@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -20648,12 +22500,12 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.1, resolve@^1.14.2, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.4.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== +resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.1, resolve@^1.14.2, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.4.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.11.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -20794,6 +22646,11 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" +robust-predicates@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + rollup-plugin-postcss@^3.1.8: version "3.1.8" resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz#d1bcaf8eb0fcb0936e3684c22dd8628d13a82fd1" @@ -20873,10 +22730,10 @@ rollup@^2.3.4, rollup@^2.43.1, rollup@^2.56.3: optionalDependencies: fsevents "~2.3.2" -rollup@^3.10.0: - version "3.19.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.19.1.tgz#2b3a31ac1ff9f3afab2e523fa687fef5b0ee20fc" - integrity sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg== +rollup@^3.21.0: + version "3.25.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.25.1.tgz#9fff79d22ff1a904b2b595a2fb9bc3793cb987d8" + integrity sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ== optionalDependencies: fsevents "~2.3.2" @@ -20914,6 +22771,11 @@ run-script-os@^1.1.6: resolved "https://registry.yarnpkg.com/run-script-os/-/run-script-os-1.1.6.tgz#8b0177fb1b54c99a670f95c7fdc54f18b9c72347" integrity sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw== +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" @@ -20933,13 +22795,23 @@ rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@^6.6.3: dependencies: tslib "^1.9.0" -sade@^1.7.4: +sade@^1.7.3, sade@^1.7.4: version "1.8.1" resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== dependencies: mri "^1.1.0" +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -21027,9 +22899,9 @@ sass-loader@^12.3.0: neo-async "^2.6.2" sass@*: - version "1.59.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.59.3.tgz#a1ddf855d75c70c26b4555df4403e1bbf8e4403f" - integrity sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ== + version "1.63.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.4.tgz#caf60643321044c61f6a0fe638a07abbd31cfb5d" + integrity sha512-Sx/+weUmK+oiIlI+9sdD0wZHsqpbgQg8wSwSnGBjwb5GwqFhYNwwnI+UWZtLjKvKyFlKkatRK235qQ3mokyPoQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -21072,30 +22944,37 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" schema-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" - integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== dependencies: "@types/json-schema" "^7.0.9" - ajv "^8.8.0" + ajv "^8.9.0" ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" + ajv-keywords "^5.1.0" scoped-regex@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== +scroll-into-view-if-needed@^3.0.0: + version "3.0.10" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz#38fbfe770d490baff0fb2ba34ae3539f6ec44e13" + integrity sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg== + dependencies: + compute-scroll-into-view "^3.0.2" + secp256k1@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" @@ -21105,6 +22984,14 @@ secp256k1@^4.0.1: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -21142,9 +23029,9 @@ semver-diff@^4.0.0: integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== dependencies: lru-cache "^6.0.0" @@ -21341,19 +23228,19 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.6.1, shell-quote@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" - integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== -shiki@^0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.1.tgz#9fbe082d0a8aa2ad63df4fbf2ee11ec924aa7ee1" - integrity sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw== +shiki@^0.14.1, shiki@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.2.tgz#d51440800b701392b31ce2336036058e338247a1" + integrity sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A== dependencies: ansi-sequence-parser "^1.1.0" jsonc-parser "^3.2.0" @@ -21403,13 +23290,13 @@ single-line-log@^1.1.2: string-width "^1.0.1" sinon@*: - version "15.0.2" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.0.2.tgz#f3e3aacb990bbaa8a7bb976e86118c5dc0154e66" - integrity sha512-PCVP63XZkg0/LOqQH5rEU4LILuvTFMb5tNxTHfs6VUMNnZz2XrnGSTZbAGITjzwQWbl/Bl/8hi4G3zZWjyBwHg== + version "15.1.2" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.1.2.tgz#09b5f3abfbd9df6b257d0f05bbb9d1b78a31ae51" + integrity sha512-uG1pU54Fis4EfYOPoEi13fmRHgZNg/u+3aReSEzHsN52Bpf+bMVfsBQS5MjouI+rTuG6UBIINlpuuO2Epr7SiA== dependencies: "@sinonjs/commons" "^3.0.0" - "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/samsam" "^7.0.1" + "@sinonjs/fake-timers" "^10.1.0" + "@sinonjs/samsam" "^8.0.0" diff "^5.1.0" nise "^5.1.4" supports-color "^7.2.0" @@ -21444,11 +23331,6 @@ slick@^1.12.2: resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" integrity sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A== -slide@~1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== - smartwrap@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-2.0.2.tgz#7e25d3dd58b51c6ca4aba3a9e391650ea62698a4" @@ -21500,19 +23382,19 @@ snapdragon@^0.8.1: use "^3.1.0" socket.io-client@^4.1.2: - version "4.6.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.6.1.tgz#80d97d5eb0feca448a0fb6d69a7b222d3d547eab" - integrity sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ== + version "4.6.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.6.2.tgz#2bfde952e74625d54e622718a7cb1d591ee62fd6" + integrity sha512-OwWrMbbA8wSqhBAR0yoPK6EdQLERQAYjXb3A0zLpgxfM1ZGLKoxHx8gVmCHA6pcclRX5oA/zvQf7bghAS11jRA== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" engine.io-client "~6.4.0" - socket.io-parser "~4.2.1" + socket.io-parser "~4.2.4" -socket.io-parser@~4.2.1: - version "4.2.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" - integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" @@ -21604,7 +23486,7 @@ source-map@^0.5.6, source-map@~0.5.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.7.3: +source-map@^0.7.0, source-map@^0.7.3: version "0.7.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== @@ -21621,6 +23503,11 @@ sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + sparse-array@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/sparse-array/-/sparse-array-1.3.2.tgz#0e1a8b71706d356bc916fe754ff496d450ec20b0" @@ -21788,13 +23675,6 @@ steno@^0.4.1: dependencies: graceful-fs "^4.1.3" -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - stream-browserify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -21990,6 +23870,14 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-entities@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" @@ -22028,12 +23916,17 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -22095,9 +23988,23 @@ style-inject@^0.3.0: integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== style-loader@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.2.tgz#eaebca714d9e462c19aa1e3599057bc363924899" - integrity sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw== + version "3.3.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" + integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== + +style-to-object@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.1.tgz#53cf856f7cf7f172d72939d9679556469ba5de37" + integrity sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw== + dependencies: + inline-style-parser "0.1.1" + +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" stylehacks@^4.0.0: version "4.0.3" @@ -22116,6 +24023,11 @@ stylehacks@^5.1.1: browserslist "^4.21.4" postcss-selector-parser "^6.0.4" +stylis@^4.1.3: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + subarg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" @@ -22134,6 +24046,19 @@ subscriptions-transport-ws@^0.11.0: symbol-observable "^1.0.4" ws "^5.2.0 || ^6.0.0 || ^7.0.0" +sucrase@^3.32.0: + version "3.32.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.32.0.tgz#c4a95e0f1e18b6847127258a75cf360bc568d4a7" + integrity sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + sumchecker@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d" @@ -22239,9 +24164,9 @@ svelte-preprocess@^4.0.0: strip-indent "^3.0.0" svelte@^3.0.0: - version "3.57.0" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.57.0.tgz#a3969cfe51f25f2a55e75f7b98dbd02c3af0980b" - integrity sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ== + version "3.59.1" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.59.1.tgz#3de3d56b9165748f32f3131589b8d183cabe7449" + integrity sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ== svg-parser@^2.0.2: version "2.0.4" @@ -22282,7 +24207,7 @@ svgo@^2.7.0: "swipl-stdio@https://github.com/perspect3vism/node-swipl-stdio.git": version "1.0.4" - resolved "https://github.com/perspect3vism/node-swipl-stdio.git#d0d844a7f87ab5ef62b4041ea969d078b95b2d96" + resolved "https://github.com/perspect3vism/node-swipl-stdio.git#a00dbfb99aeacf99cb59448e2a9c92b40a889545" dependencies: debug "^2.6.4" split "^1.0.0" @@ -22325,39 +24250,34 @@ table-layout@^0.4.2: typical "^2.6.1" wordwrapjs "^3.0.0" -taffydb@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" - integrity sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== - tailwindcss@^3.0.2: - version "3.2.7" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.7.tgz#5936dd08c250b05180f0944500c01dce19188c07" - integrity sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ== + version "3.3.2" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.2.tgz#2f9e35d715fdf0bbf674d90147a0684d7054a2d3" + integrity sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w== dependencies: + "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" chokidar "^3.5.3" - color-name "^1.1.4" - detective "^5.2.1" didyoumean "^1.2.2" dlv "^1.1.3" fast-glob "^3.2.12" glob-parent "^6.0.2" is-glob "^4.0.3" - lilconfig "^2.0.6" + jiti "^1.18.2" + lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" object-hash "^3.0.0" picocolors "^1.0.0" - postcss "^8.0.9" - postcss-import "^14.1.0" - postcss-js "^4.0.0" - postcss-load-config "^3.1.4" - postcss-nested "6.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" postcss-selector-parser "^6.0.11" postcss-value-parser "^4.2.0" - quick-lru "^5.1.1" - resolve "^1.22.1" + resolve "^1.22.2" + sucrase "^3.32.0" tapable@^1.0.0: version "1.1.3" @@ -22404,13 +24324,13 @@ tar@^4, tar@^4.4.2: yallist "^3.1.1" tar@^6.1.11: - version "6.1.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" - integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + version "6.1.15" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" + integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^4.0.0" + minipass "^5.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -22450,24 +24370,24 @@ terminal-link@^2.0.0, terminal-link@^2.1.1: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5: - version "5.3.7" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz#ef760632d24991760f339fe9290deb936ad1ffc7" - integrity sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw== +terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== dependencies: "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.5" + terser "^5.16.8" -terser@^5.0.0, terser@^5.10.0, terser@^5.16.5: - version "5.16.6" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.6.tgz#f6c7a14a378ee0630fbe3ac8d1f41b4681109533" - integrity sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg== +terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: + version "5.18.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.18.0.tgz#dc811fb8e3481a875d545bda247c8730ee4dc76b" + integrity sha512-pdL757Ig5a0I+owA42l6tIuEycRuM7FPY4n62h44mRLRfnOxJkkOHd6i89dOpwZlpF6JXBwaAHF6yWzFrt+QyA== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -22493,6 +24413,20 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + throat@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" @@ -22577,6 +24511,21 @@ tiny-lr@^1.1.1: object-assign "^4.1.0" qs "^6.4.0" +title@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/title/-/title-3.5.3.tgz#b338d701a3d949db6b49b2c86f409f9c2f36cd91" + integrity sha512-20JyowYglSEeCvZv3EZ0nZ046vLarO37prvV0mbtQV7C8DJPGgN967r8SJkqd3XK3K3lD3/Iyfp3avjfil8Q2Q== + dependencies: + arg "1.0.0" + chalk "2.3.0" + clipboardy "1.2.2" + titleize "1.0.0" + +titleize@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" + integrity sha512-TARUb7z1pGvlLxgPk++7wJ6aycXF3GJ0sNSBTAsTuJrQG5QuZlkUQP+zl+nbjAh4gMX9yDw9ZYklMd7vAfJKEw== + tmp@0.0.28: version "0.0.28" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" @@ -22674,9 +24623,9 @@ toml@^2.3.0: integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== tough-cookie@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: psl "^1.1.33" punycode "^2.1.1" @@ -22730,6 +24679,11 @@ tree-kill@^1.2.2: resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" @@ -22740,6 +24694,11 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" @@ -22757,6 +24716,16 @@ tryer@^1.0.1: resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +ts-dedent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + ts-invariant@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" @@ -22851,10 +24820,10 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== tsutils@^3.21.0: version "3.21.0" @@ -22869,17 +24838,17 @@ tty-browserify@0.0.1: integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== tty-table@^4.1.5: - version "4.1.6" - resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.1.6.tgz#6bd58338f36c94cce478c3337934d8a65ab40a73" - integrity sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw== + version "4.2.1" + resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.2.1.tgz#c06cd76c54542acf4e2b4a0e9a5802984b65cba6" + integrity sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g== dependencies: chalk "^4.1.2" - csv "^5.5.0" - kleur "^4.1.4" + csv "^5.5.3" + kleur "^4.1.5" smartwrap "^2.0.2" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wcwidth "^1.0.1" - yargs "^17.1.1" + yargs "^17.7.1" tunnel-agent@^0.6.0: version "0.6.0" @@ -22893,47 +24862,47 @@ tunnel@0.0.6, tunnel@^0.0.6: resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== -turbo-darwin-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.8.3.tgz#f220459e7636056d9a67bc9ead8dc01c495f9d55" - integrity sha512-bLM084Wr17VAAY/EvCWj7+OwYHvI9s/NdsvlqGp8iT5HEYVimcornCHespgJS/yvZDfC+mX9EQkn3V2JmYgGGw== +turbo-darwin-64@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.10.3.tgz#b04f715530ae3c8b6d1ce86229236a7513a28c8c" + integrity sha512-IIB9IomJGyD3EdpSscm7Ip1xVWtYb7D0x7oH3vad3gjFcjHJzDz9xZ/iw/qItFEW+wGFcLSRPd+1BNnuLM8AsA== -turbo-darwin-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.8.3.tgz#1529f0755cd683e372140d6b9532efe4ca523b38" - integrity sha512-4oZjXtzakopMK110kue3z/hqu3WLv+eDLZOX1NGdo49gqca9BeD8GbH+sXpAp6tqyeuzpss+PIliVYuyt7LgbA== +turbo-darwin-arm64@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.10.3.tgz#ff9c819643c0a2629cb3cd43136022177d2c8205" + integrity sha512-SBNmOZU9YEB0eyNIxeeQ+Wi0Ufd+nprEVp41rgUSRXEIpXjsDjyBnKnF+sQQj3+FLb4yyi/yZQckB+55qXWEsw== -turbo-linux-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.8.3.tgz#1aed7f4bb4492cb4c9d8278044a66d3c6107ee5b" - integrity sha512-uvX2VKotf5PU14FCxJA5iHItPQno2JWzerMd+g3/h/Asay6dvxvtVjc39MQeGT0H5njSvzVKFkT+3/5q8lgOEg== +turbo-linux-64@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.10.3.tgz#d6cbd198e95620e75baa70f1e09f355db6d3e1de" + integrity sha512-kvAisGKE7xHJdyMxZLvg53zvHxjqPK1UVj4757PQqtx9dnjYHSc8epmivE6niPgDHon5YqImzArCjVZJYpIGHQ== -turbo-linux-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.8.3.tgz#0269b31b2947c40833052325361a94193ca46150" - integrity sha512-E1p+oH3XKMaPS4rqWhYsL4j2Pzc0d/9P5KU7Kn1kqVLo2T3iRA7n2KVULEieUNE0nTH+aIJPXYXOpqCI5wFJaA== +turbo-linux-arm64@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.10.3.tgz#53148b79e84d020ece82c8af170a2f1d16a01b5b" + integrity sha512-Qgaqln0IYRgyL0SowJOi+PNxejv1I2xhzXOI+D+z4YHbgSx87ox1IsALYBlK8VRVYY8VCXl+PN12r1ioV09j7A== -turbo-windows-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.8.3.tgz#cf94f427414eb8416c1fe22229f9a578dd1ec78b" - integrity sha512-cnzAytHtoLXd0J7aNzRpZFpL/GTjcBmkvAPlbOdf/Pl1iwS4qzGrudZQ+OM1lmLgLIfBPIavsGHBknTwTNib4A== +turbo-windows-64@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.10.3.tgz#a90af7313cbada57296d672515c4957ef86e5905" + integrity sha512-rbH9wManURNN8mBnN/ZdkpUuTvyVVEMiUwFUX4GVE5qmV15iHtZfDLUSGGCP2UFBazHcpNHG1OJzgc55GFFrUw== -turbo-windows-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.8.3.tgz#db5739fe1d6907d07874779f6d5fac87b3f3ca6a" - integrity sha512-ulIiItNm2w/zYJdD5/oAzjzNns1IjbpweRzpsE8tLXaWwo6+fnXXkyloUug0IUhcd2k6fJXfoiDZfygqpOVuXg== +turbo-windows-arm64@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.10.3.tgz#3ed80e34aa5a432b312ccf2f4770c63a72d0b254" + integrity sha512-ThlkqxhcGZX39CaTjsHqJnqVe+WImjX13pmjnpChz6q5HHbeRxaJSFzgrHIOt0sUUVx90W/WrNRyoIt/aafniw== turbo@latest: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.8.3.tgz#6fe1ce749a38b54f15f0fcb24ee45baefa98e948" - integrity sha512-zGrkU1EuNFmkq6iky6LcMqD4h0OLE8XysVFxQWRIZbcTNnf0XAycbsbeEyiJpiWeqb7qtg2bVuY9EYcNoNhVuQ== + version "1.10.3" + resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.10.3.tgz#125944cb59f3aa60ca4aa93e4c505b974fe55097" + integrity sha512-U4gKCWcKgLcCjQd4Pl8KJdfEKumpyWbzRu75A6FCj6Ctea1PIm58W6Ltw1QXKqHrl2pF9e1raAskf/h6dlrPCA== optionalDependencies: - turbo-darwin-64 "1.8.3" - turbo-darwin-arm64 "1.8.3" - turbo-linux-64 "1.8.3" - turbo-linux-arm64 "1.8.3" - turbo-windows-64 "1.8.3" - turbo-windows-arm64 "1.8.3" + turbo-darwin-64 "1.10.3" + turbo-darwin-arm64 "1.10.3" + turbo-linux-64 "1.10.3" + turbo-linux-arm64 "1.10.3" + turbo-windows-64 "1.10.3" + turbo-windows-arm64 "1.10.3" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" @@ -23009,7 +24978,7 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.0.1: +type-fest@^1.0.1, type-fest@^1.0.2: version "1.4.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== @@ -23062,29 +25031,29 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typedoc-plugin-markdown@^3.13.6: - version "3.14.0" - resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.14.0.tgz#17b99ee3ab0d21046d253f185f7669e80d0d7891" - integrity sha512-UyQLkLRkfTFhLdhSf3RRpA3nNInGn+k6sll2vRXjflaMNwQAAiB61SYbisNZTg16t4K1dt1bPQMMGLrxS0GZ0Q== +typedoc-plugin-markdown@^3.15.2: + version "3.15.3" + resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.15.3.tgz#f5419a32b93efbdc0fcba60ca4de37727aeb8ba9" + integrity sha512-idntFYu3vfaY3eaD+w9DeRd0PmNGqGuNLKihPU9poxFGnATJYGn9dPtEhn2QrTdishFMg7jPXAhos+2T6YCWRQ== dependencies: handlebars "^4.7.7" -typedoc@^0.23.16: - version "0.23.26" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.26.tgz#ae082683698bad68757d8fe619242a56d6b5bf36" - integrity sha512-5m4KwR5tOLnk0OtMaRn9IdbeRM32uPemN9kur7YK9wFqx8U0CYrvO9aVq6ysdZSV1c824BTm+BuQl2Ze/k1HtA== +typedoc@^0.24.4: + version "0.24.8" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.24.8.tgz#cce9f47ba6a8d52389f5e583716a2b3b4335b63e" + integrity sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w== dependencies: lunr "^2.3.9" - marked "^4.2.12" - minimatch "^7.1.3" + marked "^4.3.0" + minimatch "^9.0.0" shiki "^0.14.1" typescript@*: - version "5.0.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.2.tgz#891e1a90c5189d8506af64b9ef929fca99ba1ee5" - integrity sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw== + version "5.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" + integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== -typescript@^4.2.4, typescript@^4.5.5, typescript@^4.6.2: +typescript@^4.2.4, typescript@^4.5.5, typescript@^4.6.2, typescript@^4.9.3: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== @@ -23094,20 +25063,15 @@ typical@^2.6.0, typical@^2.6.1: resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== uint8-varint@^1.0.1, uint8-varint@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.4.tgz#5ca6c71ccd432b5f5439310206f9ac6943a6887f" - integrity sha512-FHnaReHRIM7kHe/Ms0I2KGkuSY4o7ouhUJGJeiFEuYWGvBt4Y64+BJ3mV6DqmyYtYTZj4Pz8K/BmViSNFLRrVw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.6.tgz#bacf9526b0ddcd38fd6645e17895a4ee42d2bec4" + integrity sha512-Z0ujO4rxPwxTdLsSI5ke+bdl9hjJ1xiOakBPZeWUI/u6YBGCEGTW6b90SMlhxSGButKVPkL9fMFUDnqThQYTGg== dependencies: byte-access "^1.0.0" longbits "^1.1.0" @@ -23129,9 +25093,9 @@ uint8arrays@^3.0.0: multiformats "^9.4.2" uint8arrays@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.3.tgz#43109c03c4c10d312e7f2e9f4d53e5cd2398c7fd" - integrity sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg== + version "4.0.4" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.4.tgz#3254e01aeb166a3f35e66e60e4e37002f4ea13fd" + integrity sha512-AOoA66e/A7zoXm1mgzQjGmkWDTvCrS3ttWXLHFtlVAwMobLcaOA7G7WRNNAcyfjjYdFDtkEK6njRDX7hZLIO9Q== dependencies: multiformats "^11.0.0" @@ -23161,15 +25125,15 @@ undeclared-identifiers@^1.1.2: simple-concat "^1.0.0" xtend "^4.0.1" -underscore@^1.13.2, underscore@~1.13.2: +underscore@^1.13.2: version "1.13.6" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== undici@^5.12.0: - version "5.21.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.21.0.tgz#b00dfc381f202565ab7f52023222ab862bb2494f" - integrity sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA== + version "5.22.1" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.1.tgz#877d512effef2ac8be65e695f3586922e1a57d7b" + integrity sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw== dependencies: busboy "^1.6.0" @@ -23196,6 +25160,19 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unified@^10.0.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + unified@^9.2.2: version "9.2.2" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" @@ -23242,11 +25219,62 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" +unist-util-find-after@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz#80c69c92b0504033638ce11973f4135f2c822e2d" + integrity sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-generated@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== + unist-util-is@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-position-from-estree@^1.0.0, unist-util-position-from-estree@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz#8ac2480027229de76512079e377afbcabcfcce22" + integrity sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-position@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-remove-position@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz#a89be6ea72e23b1a402350832b02a91f6a9afe51" + integrity sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +unist-util-remove@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-3.1.1.tgz#8bfa181aff916bd32a4ed30b3ed76d0c21c077df" + integrity sha512-kfCqZK5YVY5yEa89tvpl7KnBBHu2c6CzMkqHUrlOqaRgGOMp0sMvwWOVrbAtj03KhovQB7i96Gda72v/EFE0vw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + unist-util-stringify-position@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" @@ -23254,6 +25282,13 @@ unist-util-stringify-position@^2.0.0: dependencies: "@types/unist" "^2.0.2" +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-visit-parents@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" @@ -23262,6 +25297,40 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" +unist-util-visit-parents@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" + integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@4.1.2, unist-util-visit@^4.0.0, unist-util-visit@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + +unist-util-visit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" + integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^4.0.0" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -23301,9 +25370,9 @@ unxhr@1.0.1: integrity sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg== unzipper@^0.10.11: - version "0.10.11" - resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" - integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== + version "0.10.14" + resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.14.tgz#d2b33c977714da0fbc0f82774ad35470a7c962b1" + integrity sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g== dependencies: big-integer "^1.6.17" binary "~0.3.0" @@ -23321,10 +25390,10 @@ upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -23421,12 +25490,12 @@ url-parse@^1.5.3: requires-port "^1.0.0" url@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== + version "0.11.1" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.1.tgz#26f90f615427eca1b9f4d6a28288c147e2302a32" + integrity sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA== dependencies: - punycode "1.3.2" - querystring "0.2.0" + punycode "^1.4.1" + qs "^6.11.0" use@^3.1.0: version "3.1.1" @@ -23443,11 +25512,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util-extend@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" - integrity sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA== - util.promisify@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" @@ -23501,6 +25565,16 @@ uuid@^9.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -23559,7 +25633,7 @@ value-or-promise@1.0.11: resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== -value-or-promise@1.0.12: +value-or-promise@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== @@ -23600,6 +25674,23 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vfile-location@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.1.0.tgz#69df82fb9ef0a38d0d02b90dd84620e120050dd0" + integrity sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw== + dependencies: + "@types/unist" "^2.0.0" + vfile "^5.0.0" + +vfile-matter@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile-matter/-/vfile-matter-3.0.1.tgz#85e26088e43aa85c04d42ffa3693635fa2bc5624" + integrity sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg== + dependencies: + "@types/js-yaml" "^4.0.0" + is-buffer "^2.0.0" + js-yaml "^4.0.0" + vfile-message@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" @@ -23608,6 +25699,14 @@ vfile-message@^2.0.0: "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" +vfile-message@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" @@ -23618,15 +25717,24 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" +vfile@^5.0.0, vfile@^5.3.0: + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + vite@^4.0.1, vite@^4.1.1: - version "4.1.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.4.tgz#170d93bcff97e0ebc09764c053eebe130bfe6ca0" - integrity sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg== + version "4.3.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.9.tgz#db896200c0b1aa13b37cdc35c9e99ee2fdd5f96d" + integrity sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg== dependencies: - esbuild "^0.16.14" - postcss "^8.4.21" - resolve "^1.22.1" - rollup "^3.10.0" + esbuild "^0.17.5" + postcss "^8.4.23" + rollup "^3.21.0" optionalDependencies: fsevents "~2.3.2" @@ -23666,7 +25774,7 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.12" -watchpack@^2.4.0: +watchpack@2.4.0, watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== @@ -23688,6 +25796,11 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + web-resource-inliner@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz#df0822f0a12028805fe80719ed52ab6526886e02" @@ -23710,12 +25823,17 @@ web-vitals@^2.1.4: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== -webcrypto-core@^1.7.4: - version "1.7.6" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.6.tgz#e32c4a12a13de4251f8f9ef336a6cba7cdec9b55" - integrity sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA== +web-worker@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" + integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== + +webcrypto-core@^1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" + integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== dependencies: - "@peculiar/asn1-schema" "^2.1.6" + "@peculiar/asn1-schema" "^2.3.6" "@peculiar/json-schema" "^1.1.12" asn1js "^3.0.1" pvtsutils "^1.3.2" @@ -23753,9 +25871,9 @@ webpack-dev-middleware@^5.3.1: schema-utils "^4.0.0" webpack-dev-server@^4.6.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.12.0.tgz#e2dcad4d43e486c3bac48ddbf346e77ef03c7428" - integrity sha512-XRN9YRnvOj3TQQ5w/0pR1y1xDcVnbWtNkTri46kuEbaWUPTHsWUvOyAAI7PZHLY+hsFki2kRltJjKMw7e+IiqA== + version "4.15.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7" + integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" @@ -23763,7 +25881,7 @@ webpack-dev-server@^4.6.0: "@types/serve-index" "^1.9.1" "@types/serve-static" "^1.13.10" "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" + "@types/ws" "^8.5.5" ansi-html-community "^0.0.8" bonjour-service "^1.0.11" chokidar "^3.5.3" @@ -23818,21 +25936,21 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.64.4: - version "5.76.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.1.tgz#7773de017e988bccb0f13c7d75ec245f377d295c" - integrity sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ== + version "5.87.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.87.0.tgz#df8a9c094c6037f45e0d77598f9e59d33ca3a98c" + integrity sha512-GOu1tNbQ7p1bDEoFRs2YPcfyGs8xq52yyPBZ3m2VGnXGtV9MxjrkABHm4V9Ia280OefsSLzvbVoXcfLxjKY/Iw== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -23841,9 +25959,9 @@ webpack@^5.64.4: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.0" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" + terser-webpack-plugin "^5.3.7" watchpack "^2.4.0" webpack-sources "^3.2.3" @@ -23935,20 +26053,10 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which-pm@2.0.0: version "2.0.0" @@ -24023,25 +26131,25 @@ wordwrapjs@^3.0.0: reduce-flatten "^1.0.1" typical "^2.6.1" -workbox-background-sync@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9" - integrity sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g== +workbox-background-sync@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f" + integrity sha512-trJd3ovpWCvzu4sW0E8rV3FUyIcC0W8G+AZ+VcqzzA890AsWZlUGOTSxIMmIHVusUw/FDq1HFWfy/kC/WTRqSg== dependencies: idb "^7.0.1" - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-broadcast-update@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz#8441cff5417cd41f384ba7633ca960a7ffe40f66" - integrity sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw== +workbox-broadcast-update@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.1.tgz#0fad9454cf8e4ace0c293e5617c64c75d8a8c61e" + integrity sha512-fBhffRdaANdeQ1V8s692R9l/gzvjjRtydBOvR6WCSB0BNE2BacA29Z4r9/RHd9KaXCPl6JTdI9q0bR25YKP8TQ== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-build@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.4.tgz#7d06d31eb28a878817e1c991c05c5b93409f0389" - integrity sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA== +workbox-build@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.6.1.tgz#6010e9ce550910156761448f2dbea8cfcf759cb0" + integrity sha512-INPgDx6aRycAugUixbKgiEQBWD0MPZqU5r0jyr24CehvNuLPSXp/wGOpdRJmts656lNiXwqV7dC2nzyrzWEDnw== dependencies: "@apideck/better-ajv-errors" "^0.3.1" "@babel/core" "^7.11.1" @@ -24065,132 +26173,132 @@ workbox-build@6.5.4: strip-comments "^2.0.1" tempy "^0.6.0" upath "^1.2.0" - workbox-background-sync "6.5.4" - workbox-broadcast-update "6.5.4" - workbox-cacheable-response "6.5.4" - workbox-core "6.5.4" - workbox-expiration "6.5.4" - workbox-google-analytics "6.5.4" - workbox-navigation-preload "6.5.4" - workbox-precaching "6.5.4" - workbox-range-requests "6.5.4" - workbox-recipes "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" - workbox-streams "6.5.4" - workbox-sw "6.5.4" - workbox-window "6.5.4" - -workbox-cacheable-response@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz#a5c6ec0c6e2b6f037379198d4ef07d098f7cf137" - integrity sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug== - dependencies: - workbox-core "6.5.4" - -workbox-core@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.4.tgz#df48bf44cd58bb1d1726c49b883fb1dffa24c9ba" - integrity sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q== - -workbox-expiration@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.4.tgz#501056f81e87e1d296c76570bb483ce5e29b4539" - integrity sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ== + workbox-background-sync "6.6.1" + workbox-broadcast-update "6.6.1" + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-google-analytics "6.6.1" + workbox-navigation-preload "6.6.1" + workbox-precaching "6.6.1" + workbox-range-requests "6.6.1" + workbox-recipes "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + workbox-streams "6.6.1" + workbox-sw "6.6.1" + workbox-window "6.6.1" + +workbox-cacheable-response@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.6.1.tgz#284c2b86be3f4fd191970ace8c8e99797bcf58e9" + integrity sha512-85LY4veT2CnTCDxaVG7ft3NKaFbH6i4urZXgLiU4AiwvKqS2ChL6/eILiGRYXfZ6gAwDnh5RkuDbr/GMS4KSag== + dependencies: + workbox-core "6.6.1" + +workbox-core@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.6.1.tgz#7184776d4134c5ed2f086878c882728fc9084265" + integrity sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw== + +workbox-expiration@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.6.1.tgz#a841fa36676104426dbfb9da1ef6a630b4f93739" + integrity sha512-qFiNeeINndiOxaCrd2DeL1Xh1RFug3JonzjxUHc5WkvkD2u5abY3gZL1xSUNt3vZKsFFGGORItSjVTVnWAZO4A== dependencies: idb "^7.0.1" - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-google-analytics@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz#c74327f80dfa4c1954cbba93cd7ea640fe7ece7d" - integrity sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg== +workbox-google-analytics@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.6.1.tgz#a07a6655ab33d89d1b0b0a935ffa5dea88618c5d" + integrity sha512-1TjSvbFSLmkpqLcBsF7FuGqqeDsf+uAXO/pjiINQKg3b1GN0nBngnxLcXDYo1n/XxK4N7RaRrpRlkwjY/3ocuA== dependencies: - workbox-background-sync "6.5.4" - workbox-core "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" + workbox-background-sync "6.6.1" + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" -workbox-navigation-preload@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz#ede56dd5f6fc9e860a7e45b2c1a8f87c1c793212" - integrity sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng== +workbox-navigation-preload@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.1.tgz#61a34fe125558dd88cf09237f11bd966504ea059" + integrity sha512-DQCZowCecO+wRoIxJI2V6bXWK6/53ff+hEXLGlQL4Rp9ZaPDLrgV/32nxwWIP7QpWDkVEtllTAK5h6cnhxNxDA== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-precaching@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.4.tgz#740e3561df92c6726ab5f7471e6aac89582cab72" - integrity sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg== +workbox-precaching@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.6.1.tgz#dedeeba10a2d163d990bf99f1c2066ac0d1a19e2" + integrity sha512-K4znSJ7IKxCnCYEdhNkMr7X1kNh8cz+mFgx9v5jFdz1MfI84pq8C2zG+oAoeE5kFrUf7YkT5x4uLWBNg0DVZ5A== dependencies: - workbox-core "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" -workbox-range-requests@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz#86b3d482e090433dab38d36ae031b2bb0bd74399" - integrity sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg== +workbox-range-requests@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.6.1.tgz#ddaf7e73af11d362fbb2f136a9063a4c7f507a39" + integrity sha512-4BDzk28govqzg2ZpX0IFkthdRmCKgAKreontYRC5YsAPB2jDtPNxqx3WtTXgHw1NZalXpcH/E4LqUa9+2xbv1g== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-recipes@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.4.tgz#cca809ee63b98b158b2702dcfb741b5cc3e24acb" - integrity sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA== +workbox-recipes@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.6.1.tgz#ea70d2b2b0b0bce8de0a9d94f274d4a688e69fae" + integrity sha512-/oy8vCSzromXokDA+X+VgpeZJvtuf8SkQ8KL0xmRivMgJZrjwM3c2tpKTJn6PZA6TsbxGs3Sc7KwMoZVamcV2g== dependencies: - workbox-cacheable-response "6.5.4" - workbox-core "6.5.4" - workbox-expiration "6.5.4" - workbox-precaching "6.5.4" - workbox-routing "6.5.4" - workbox-strategies "6.5.4" + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-precaching "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" -workbox-routing@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.4.tgz#6a7fbbd23f4ac801038d9a0298bc907ee26fe3da" - integrity sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg== +workbox-routing@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.6.1.tgz#cba9a1c7e0d1ea11e24b6f8c518840efdc94f581" + integrity sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-strategies@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.4.tgz#4edda035b3c010fc7f6152918370699334cd204d" - integrity sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw== +workbox-strategies@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.6.1.tgz#38d0f0fbdddba97bd92e0c6418d0b1a2ccd5b8bf" + integrity sha512-WQLXkRnsk4L81fVPkkgon1rZNxnpdO5LsO+ws7tYBC6QQQFJVI6v98klrJEjFtZwzw/mB/HT5yVp7CcX0O+mrw== dependencies: - workbox-core "6.5.4" + workbox-core "6.6.1" -workbox-streams@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.4.tgz#1cb3c168a6101df7b5269d0353c19e36668d7d69" - integrity sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg== +workbox-streams@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.6.1.tgz#b2f7ba7b315c27a6e3a96a476593f99c5d227d26" + integrity sha512-maKG65FUq9e4BLotSKWSTzeF0sgctQdYyTMq529piEN24Dlu9b6WhrAfRpHdCncRS89Zi2QVpW5V33NX8PgH3Q== dependencies: - workbox-core "6.5.4" - workbox-routing "6.5.4" + workbox-core "6.6.1" + workbox-routing "6.6.1" -workbox-sw@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.4.tgz#d93e9c67924dd153a61367a4656ff4d2ae2ed736" - integrity sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA== +workbox-sw@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.6.1.tgz#d4c4ca3125088e8b9fd7a748ed537fa0247bd72c" + integrity sha512-R7whwjvU2abHH/lR6kQTTXLHDFU2izht9kJOvBRYK65FbwutT4VvnUAJIgHvfWZ/fokrOPhfoWYoPCMpSgUKHQ== workbox-webpack-plugin@^6.4.1: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz#baf2d3f4b8f435f3469887cf4fba2b7fac3d0fd7" - integrity sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg== + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.1.tgz#4f81cc1ad4e5d2cd7477a86ba83c84ee2d187531" + integrity sha512-zpZ+ExFj9NmiI66cFEApyjk7hGsfJ1YMOaLXGXBoZf0v7Iu6hL0ZBe+83mnDq3YYWAfA3fnyFejritjOHkFcrA== dependencies: fast-json-stable-stringify "^2.1.0" pretty-bytes "^5.4.1" upath "^1.2.0" webpack-sources "^1.4.3" - workbox-build "6.5.4" + workbox-build "6.6.1" -workbox-window@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.4.tgz#d991bc0a94dff3c2dbb6b84558cff155ca878e91" - integrity sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug== +workbox-window@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.6.1.tgz#f22a394cbac36240d0dadcbdebc35f711bb7b89e" + integrity sha512-wil4nwOY58nTdCvif/KEZjQ2NP8uk3gGeRNy2jPBbzypU4BT4D9L8xiwbmDBpZlSgJd2xsT9FvSNU0gsxV51JQ== dependencies: "@types/trusted-types" "^2.0.2" - workbox-core "6.5.4" + workbox-core "6.6.1" workerpool@6.2.1: version "6.2.1" @@ -24223,7 +26331,7 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.0.1: +wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== @@ -24288,20 +26396,23 @@ xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== -xhr2@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.2.1.tgz#4e73adc4f9cfec9cbd2157f73efdce3a5f108a93" - integrity sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw== - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xml2js@^0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== +xml2js@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7" + integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xml2js@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.6.0.tgz#07afc447a97d2bd6507a1f76eeadddb09f7a8282" + integrity sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w== dependencies: sax ">=0.6.0" xmlbuilder "~11.0.0" @@ -24316,11 +26427,6 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xmlcreate@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" - integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== - xmlhttprequest-ssl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" @@ -24386,6 +26492,11 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" @@ -24449,10 +26560,10 @@ yargs@^15.1.0, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.1.1, yargs@^17.3.1, yargs@^17.4.0: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== +yargs@^17.3.1, yargs@^17.4.0, yargs@^17.7.1, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" escalade "^3.1.1" @@ -24510,7 +26621,17 @@ zen-observable@0.8.15, zen-observable@^0.8.0: resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== +zod@3.21.4, zod@^3.20.2: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== + zwitch@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== \ No newline at end of file + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From 61fe1ad720d67e895583c66a1290e621f18f0547 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 15 Jun 2023 19:14:56 +0530 Subject: [PATCH 352/722] patch-package updated for @achingbrain/ssdp --- ....1.patch => @achingbrain+ssdp+4.0.4.patch} | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) rename patches/{@achingbrain+ssdp+4.0.1.patch => @achingbrain+ssdp+4.0.4.patch} (51%) diff --git a/patches/@achingbrain+ssdp+4.0.1.patch b/patches/@achingbrain+ssdp+4.0.4.patch similarity index 51% rename from patches/@achingbrain+ssdp+4.0.1.patch rename to patches/@achingbrain+ssdp+4.0.4.patch index 9dcbad97d..76f8d5feb 100644 --- a/patches/@achingbrain+ssdp+4.0.1.patch +++ b/patches/@achingbrain+ssdp+4.0.4.patch @@ -1,19 +1,21 @@ diff --git a/node_modules/@achingbrain/ssdp/dist/src/default-ssdp-options.js b/node_modules/@achingbrain/ssdp/dist/src/default-ssdp-options.js -index bcce6af..11acfe6 100644 +index 41ac65e..8c63670 100644 --- a/node_modules/@achingbrain/ssdp/dist/src/default-ssdp-options.js +++ b/node_modules/@achingbrain/ssdp/dist/src/default-ssdp-options.js -@@ -3,8 +3,12 @@ import { defaultSocketOptions } from './default-socket-options.js'; - import util from 'util'; - import { createRequire } from 'module'; +@@ -1,9 +1,13 @@ + import { webcrypto as crypto } from 'crypto'; // remove when having crypto global +-import { createRequire } from 'module'; ++// import { createRequire } from 'module'; import mergeOptions from 'merge-options'; + import { defaultSocketOptions } from './default-socket-options.js'; -const req = createRequire(import.meta.url); --const pkg = req('../../package.json'); +-const { name, version } = req('../../package.json'); +// const req = createRequire(import.meta.url); -+// const pkg = req('../../package.json'); -+const pkg = { ++// const { name, version } = req('../../package.json'); ++const {name, version} = { + name: "@achingbrain/ssdp", + version: "4.0.1" -+ }; - const DEFAULT_SSDP_SIGNATURE = util.format('node.js/%s UPnP/1.1 %s/%s', process.version.substring(1), pkg.name, pkg.version); ++}; + const DEFAULT_SSDP_SIGNATURE = `node.js/${process.version.substring(1)} UPnP/1.1 ${name}/${version}`; export function defaultSsdpOptions(options) { return mergeOptions(options ?? {}, { From bf2e8c9d671add2274741333eb8660ebc24bcc0e Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 15 Jun 2023 19:20:16 +0530 Subject: [PATCH 353/722] udpated gitignore --- bootstrap-languages/neighbourhood-language/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap-languages/neighbourhood-language/.gitignore b/bootstrap-languages/neighbourhood-language/.gitignore index 98b62ef64..72d741999 100644 --- a/bootstrap-languages/neighbourhood-language/.gitignore +++ b/bootstrap-languages/neighbourhood-language/.gitignore @@ -11,4 +11,4 @@ build/* node_modules .ad4m-test -ad4m-test-0 \ No newline at end of file +ad4m-test-* \ No newline at end of file From 60c62106a7b28ce8550e4b34cbc62605a4e4423a Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 15 Jun 2023 19:21:07 +0530 Subject: [PATCH 354/722] gitignore updated --- bootstrap-languages/neighbourhood-language/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap-languages/neighbourhood-language/.gitignore b/bootstrap-languages/neighbourhood-language/.gitignore index 98b62ef64..72d741999 100644 --- a/bootstrap-languages/neighbourhood-language/.gitignore +++ b/bootstrap-languages/neighbourhood-language/.gitignore @@ -11,4 +11,4 @@ build/* node_modules .ad4m-test -ad4m-test-0 \ No newline at end of file +ad4m-test-* \ No newline at end of file From 8be78bf96eef98904d45d0f9a93b02479b036d1c Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 15 Jun 2023 19:27:32 +0530 Subject: [PATCH 355/722] removed checksum from langauge expression --- bootstrap-languages/language-language/hc-dna/tests/index.ts | 1 - .../language-language/hc-dna/zomes/integrity/src/lib.rs | 1 - bootstrap-languages/language-language/putAdapter.ts | 1 - bootstrap-languages/language-language/types.ts | 1 - 4 files changed, 4 deletions(-) diff --git a/bootstrap-languages/language-language/hc-dna/tests/index.ts b/bootstrap-languages/language-language/hc-dna/tests/index.ts index 9216b4fc4..3af7fd648 100644 --- a/bootstrap-languages/language-language/hc-dna/tests/index.ts +++ b/bootstrap-languages/language-language/hc-dna/tests/index.ts @@ -140,7 +140,6 @@ test("Share full FileExpression between Alice and Bob", async (t) => { name: "test.txt", size: buf.length, file_type: "text/plain", - checksum: "1234", chunks_hashes: hashes } diff --git a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs index f4b5b3553..3d628abc1 100644 --- a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs +++ b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs @@ -13,7 +13,6 @@ pub struct LanguageMetadata { pub description: String, pub address: String, pub size: usize, - pub checksum: String, pub chunks_hashes: Vec, } diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index 118b08619..d9a18433d 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -60,7 +60,6 @@ export class LanguageStoragePutAdapter implements PublicSharing { name: language.meta.name, description: language.meta.description, address: language.meta.address, - checksum: "1234", chunks_hashes: hashes, size: data_uncompressed.length, } as LanguageMetadata diff --git a/bootstrap-languages/language-language/types.ts b/bootstrap-languages/language-language/types.ts index 4eabbbd70..1d592df60 100644 --- a/bootstrap-languages/language-language/types.ts +++ b/bootstrap-languages/language-language/types.ts @@ -7,7 +7,6 @@ export class LanguageMetadata { description: string; address: string; size: number; - checksum: string; chunks_hashes: Array; } From 63cf42e0a657bd72e6251c41e3ac43a5b64f4f83 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 15 Jun 2023 19:44:46 +0530 Subject: [PATCH 356/722] gets the oldest link for the language --- .../hc-dna/zomes/language_storage/src/utils.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs index 7ca73ba3a..a8b3df39c 100644 --- a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs +++ b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs @@ -5,22 +5,22 @@ pub(crate) fn err(reason: &str) -> WasmError { wasm_error!(WasmErrorInner::Host(String::from(reason))) } -pub(crate) fn get_latest_link(base: EntryHash, tag: Option) -> ExternResult> { +pub(crate) fn get_oldest_link(base: EntryHash, tag: Option) -> ExternResult> { let language_info = get_links(base, LinkTypes::LanguageLink, tag)?; - // Find the latest - let latest_info = + // Find the oldest + let oldest_info = language_info .into_iter() - .fold(None, |latest: Option, link| match latest { - Some(latest) => { - if link.timestamp > latest.timestamp { + .fold(None, |oldest: Option, link| match oldest { + Some(oldest) => { + if link.timestamp < oldest.timestamp { Some(link) } else { - Some(latest) + Some(oldest) } } None => Some(link), }); - return Ok(latest_info); + return Ok(oldest_info); } From e65844975cca1e4ebfc065415a5e01e273e282a0 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 15 Jun 2023 19:45:12 +0530 Subject: [PATCH 357/722] only one expression can be written for the language address --- .../hc-dna/zomes/language_storage/src/lib.rs | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs index b1139df80..bac68f093 100644 --- a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs +++ b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs @@ -2,7 +2,7 @@ use chrono::{DateTime, NaiveDateTime, Utc}; use hdk::prelude::*; use integrity::{EntryTypes, LanguageChunk, LanguageExpression, LinkTypes, LanguageAddress}; mod utils; -use utils::{err, get_latest_link}; +use utils::{err, get_oldest_link}; #[hdk_extern] fn init(_: ()) -> ExternResult { @@ -28,19 +28,31 @@ pub fn store_language_expression(expression: LanguageExpression) -> ExternResult let address = EntryTypes::LanguageAddress(LanguageAddress(expression.data.address.clone())); let address_hash = hash_entry(&address)?; - let language_expression = EntryTypes::LanguageExpression(expression); - let language_expression_hash = hash_entry(&language_expression)?; - create_entry(&language_expression)?; + let found_expression = get_language_expression(LanguageAddress(expression.data.address.clone())); - //Link profile entry to did - create_link( - address_hash, - language_expression_hash, - LinkTypes::LanguageLink, - LinkTag::from("".as_bytes().to_owned()), - )?; + match found_expression { + Ok(Some(expression)) => { + Err(err(format!("An language with same address was found {:?}", expression).as_ref())) + } + Ok(None) => { + let language_expression = EntryTypes::LanguageExpression(expression); + let language_expression_hash = hash_entry(&language_expression)?; + create_entry(&language_expression)?; + + //Link profile entry to did + create_link( + address_hash, + language_expression_hash, + LinkTypes::LanguageLink, + LinkTag::from("".as_bytes().to_owned()), + )?; - Ok(()) + Ok(()) + } + Err(error) => { + Err(err(format!("Error: {}", error).as_ref())) + } + } } #[hdk_extern] @@ -58,7 +70,7 @@ pub fn store_chunk(file_chunk: LanguageChunk) -> ExternResult { pub fn get_language_expression( file_expression_hash: LanguageAddress, ) -> ExternResult> { - let expression_links = get_latest_link( + let expression_links = get_oldest_link( hash_entry(file_expression_hash)?, Some(LinkTag::from("".as_bytes().to_owned())), ) From 09d07bf2fd1ef838fd67004cff4725a8c7644938 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 15 Jun 2023 19:56:13 +0530 Subject: [PATCH 358/722] tauri-action updated to latest version --- .github/workflows/publish_staging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 5ba434aaf..dc2b6687d 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -162,7 +162,7 @@ jobs: asset_content_type: application/octet-stream - name: "Upload built AD4MIN" - uses: tauri-apps/tauri-action@v0.3 + uses: tauri-apps/tauri-action@v0.4.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 35b3b808943794f47172242816ade2ad57cd199d Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 15 Jun 2023 17:42:58 +0200 Subject: [PATCH 359/722] Retry-loop in installLanguage --- executor/src/core/LanguageController.ts | 39 +++++++++++++++---------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 82b3e1d94..420c87b69 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -365,25 +365,32 @@ export default class LanguageController { const language = this.#languages.get(address) if (language) return language - //Check that the metafile already exists with language with this address to avoid refetch - const metaFile = path.join(path.join(this.#config.languagesPath, address), "meta.json"); - if(!fs.existsSync(metaFile)) { - //Get language meta information - console.log(new Date(), "installLanguage: installing language with address", address); - if(!languageMeta) { - try { - languageMeta = await this.getLanguageExpression(address) - } catch (e) { - throw Error(`Error getting language meta from language language: ${e}`) + if(!languageMeta) { + //Check that the metafile already exists with language with this address to avoid refetch + const metaFile = path.join(path.join(this.#config.languagesPath, address), "meta.json"); + + if(fs.existsSync(metaFile)) { + languageMeta = JSON.parse(fs.readFileSync(metaFile).toString()); + } else { + // We need to get the meta from the language language + // Retry 10 times with increasing delay to account for Holochain sync + let retries = 0; + while (!languageMeta || retries < 10) { + try { + languageMeta = await this.getLanguageExpression(address) + } catch (e) { + console.error(`Error getting language meta from language language: ${e}\nRetrying...`) + } + retries++; + await new Promise(r => setTimeout(r, 5000 * retries)); } } - } else { - languageMeta = JSON.parse(fs.readFileSync(metaFile).toString()); - }; - if (languageMeta == null) { - //@ts-ignore - languageMeta = {data: {}}; + if (languageMeta == null) { + //@ts-ignore + languageMeta = {data: {}}; + } } + console.log("LanguageController.installLanguage: INSTALLING LANGUAGE:", languageMeta.data) let bundlePath = path.join(path.join(this.#config.languagesPath, address), "bundle.js"); From 5bd51240fe9a75bcb9ce8ab62c80bcfa72b405e1 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 15 Jun 2023 18:30:16 +0200 Subject: [PATCH 360/722] Bump timeout on authentication tests --- executor/src/tests/authentication.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/executor/src/tests/authentication.test.ts b/executor/src/tests/authentication.test.ts index ed4def3f2..c00a2ea88 100644 --- a/executor/src/tests/authentication.test.ts +++ b/executor/src/tests/authentication.test.ts @@ -46,6 +46,7 @@ function apolloClient(port: number, token?: string): ApolloClient { } describe("Authentication integration tests", () => { + this.timeout(200000) describe("admin credential is not set", () => { const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "unauth-agent"); From da59c41795e5a8d17a7f91ac726d1a82fc6cdc9e Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 15 Jun 2023 18:39:47 +0200 Subject: [PATCH 361/722] Ignore TS warning for test timeout setting --- executor/src/tests/authentication.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/executor/src/tests/authentication.test.ts b/executor/src/tests/authentication.test.ts index c00a2ea88..e2f27ca3e 100644 --- a/executor/src/tests/authentication.test.ts +++ b/executor/src/tests/authentication.test.ts @@ -46,6 +46,7 @@ function apolloClient(port: number, token?: string): ApolloClient { } describe("Authentication integration tests", () => { + //@ts-ignore this.timeout(200000) describe("admin credential is not set", () => { const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); From a3d89fd9ecac4d8c8ab65fbc2d63c75ffcfccfe8 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 15 Jun 2023 18:54:37 +0200 Subject: [PATCH 362/722] Increase test timeouts in package.json --- executor/package.json | 6 +++--- executor/src/tests/authentication.test.ts | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/executor/package.json b/executor/package.json index 9afef94a2..32c3802b2 100644 --- a/executor/package.json +++ b/executor/package.json @@ -29,9 +29,9 @@ "test:windows": "yarn run prepare-test:windows && yarn run test-all:windows && node scripts/cleanTestingData.js", "test-all": "yarn run test-perspective && yarn run test-auth-unit && yarn run test-db && yarn run test-prolog && yarn run test-swipl && yarn run test-auth && yarn run test-app && yarn run test-integration", "test-all:windows": "yarn run test-all", - "test-integration": "ts-mocha -p tsconfig.json --timeout 50000 --exit src/tests/integration.test.ts", - "test-auth": "ts-mocha -p tsconfig.json --timeout 50000 --exit src/tests/authentication.test.ts", - "test-app": "ts-mocha -p tsconfig.json --timeout 50000 --exit src/tests/app.test.ts", + "test-integration": "ts-mocha -p tsconfig.json --timeout 200000 --exit src/tests/integration.test.ts", + "test-auth": "ts-mocha -p tsconfig.json --timeout 200000 --exit src/tests/authentication.test.ts", + "test-app": "ts-mocha -p tsconfig.json --timeout 200000 --exit src/tests/app.test.ts", "test-perspective": "ts-mocha -p tsconfig.json --exit src/core/Perspective.test.ts", "test-db": "ts-mocha -p tsconfig.json --exit src/core/db.test.ts", "test-prolog": "ts-mocha -p tsconfig.json --exit src/core/PrologInstance.test.ts", diff --git a/executor/src/tests/authentication.test.ts b/executor/src/tests/authentication.test.ts index e2f27ca3e..ed4def3f2 100644 --- a/executor/src/tests/authentication.test.ts +++ b/executor/src/tests/authentication.test.ts @@ -46,8 +46,6 @@ function apolloClient(port: number, token?: string): ApolloClient { } describe("Authentication integration tests", () => { - //@ts-ignore - this.timeout(200000) describe("admin credential is not set", () => { const TEST_DIR = path.join(`${__dirname}/../../src/tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "unauth-agent"); From 07d3d9ee0fae8a2b8e2aa9c794aa65a8205764d2 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 15 Jun 2023 19:02:19 +0200 Subject: [PATCH 363/722] Bump test-timeouts even more --- executor/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/executor/package.json b/executor/package.json index 32c3802b2..594d88aea 100644 --- a/executor/package.json +++ b/executor/package.json @@ -29,9 +29,9 @@ "test:windows": "yarn run prepare-test:windows && yarn run test-all:windows && node scripts/cleanTestingData.js", "test-all": "yarn run test-perspective && yarn run test-auth-unit && yarn run test-db && yarn run test-prolog && yarn run test-swipl && yarn run test-auth && yarn run test-app && yarn run test-integration", "test-all:windows": "yarn run test-all", - "test-integration": "ts-mocha -p tsconfig.json --timeout 200000 --exit src/tests/integration.test.ts", - "test-auth": "ts-mocha -p tsconfig.json --timeout 200000 --exit src/tests/authentication.test.ts", - "test-app": "ts-mocha -p tsconfig.json --timeout 200000 --exit src/tests/app.test.ts", + "test-integration": "ts-mocha -p tsconfig.json --timeout 400000 --exit src/tests/integration.test.ts", + "test-auth": "ts-mocha -p tsconfig.json --timeout 400000 --exit src/tests/authentication.test.ts", + "test-app": "ts-mocha -p tsconfig.json --timeout 400000 --exit src/tests/app.test.ts", "test-perspective": "ts-mocha -p tsconfig.json --exit src/core/Perspective.test.ts", "test-db": "ts-mocha -p tsconfig.json --exit src/core/db.test.ts", "test-prolog": "ts-mocha -p tsconfig.json --exit src/core/PrologInstance.test.ts", From 7d71480bb311ef4ecf7ef1de26ec3e98d6c545c1 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 22 Jun 2023 20:23:23 -0700 Subject: [PATCH 364/722] Configure Holochain to use mDNS instead of bootstrap server --- executor/src/core/PerspectivismCore.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index cd8a2eec4..205d4c768 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -171,7 +171,7 @@ export default class PerspectivismCore { useBootstrap: params.hcUseBootstrap, useProxy: params.hcUseProxy, useLocalProxy: params.hcUseLocalProxy, - useMdns: params.hcUseMdns, + useMdns: true, } this.#holochain = new HolochainService(holochainConfig) From 5e8488ca73cc249f9b018b3ec164075eda761456 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 22 Jun 2023 20:31:33 -0700 Subject: [PATCH 365/722] v0.4.1 --- Cargo.lock | 6 +++--- bootstrap-languages/agent-language/package.json | 2 +- bootstrap-languages/direct-message-language/package.json | 2 +- bootstrap-languages/neighbourhood-language/package.json | 2 +- bootstrap-languages/p-diff-sync/package.json | 2 +- bootstrap-languages/perspective-language/package.json | 2 +- cli/Cargo.toml | 4 ++-- connect/package.json | 2 +- core/package.json | 2 +- docs/package.json | 2 +- executor/package.json | 2 +- executor/src/core/Config.ts | 2 +- host/package.json | 2 +- package.json | 2 +- rust-client/Cargo.toml | 2 +- test-runner/package.json | 2 +- ui/package.json | 2 +- ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/tauri.conf.json | 2 +- 19 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 94759cc65..25208d1c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" [[package]] name = "ad4m" -version = "0.4.0" +version = "0.4.1" dependencies = [ "ad4m-client", "anyhow", @@ -32,7 +32,7 @@ dependencies = [ [[package]] name = "ad4m-client" -version = "0.4.0" +version = "0.4.1" dependencies = [ "anyhow", "async-std", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "ad4m-launcher" -version = "0.4.0" +version = "0.4.1" dependencies = [ "ad4m-client", "directories", diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index 54b042762..cad196366 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/agent-language", - "version": "0.4.0", + "version": "0.4.1", "description": "AD4M Language implementation for Holochain profile DNA", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json index b157721b9..de03dfd10 100644 --- a/bootstrap-languages/direct-message-language/package.json +++ b/bootstrap-languages/direct-message-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/direct-message-language", - "version": "0.4.0", + "version": "0.4.1", "description": "A templateable AD4M Language for personal, per-agent direct message Languages", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index 6c2aee68e..2193bd22f 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/neighbourhood-language", - "version": "0.4.0", + "version": "0.4.1", "description": "This is a Language for storing AD4M neighbourhood objects", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index cd69ff99b..f2ab9e379 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-diff-sync", - "version": "0.4.0", + "version": "0.4.1", "description": "An AD4M language for syncing mutations to a share perspective", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index 13a2dd981..fda08f40b 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-language", - "version": "0.4.0", + "version": "0.4.1", "description": "An AD4M Language for perspective snapshot expressions stored on IPFS", "main": "index.js", "scripts": { diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 7dc8553da..fa4cd8de9 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.4.0" +version = "0.4.1" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,7 +12,7 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.4.0" } +ad4m-client = { path = "../rust-client", version = "0.4.1" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" diff --git a/connect/package.json b/connect/package.json index 1465030c8..73a620473 100644 --- a/connect/package.json +++ b/connect/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-connect", - "version": "0.4.0", + "version": "0.4.1", "description": "Lib for handling everything needed to setup a connection to a local or remote ad4m-executor", "license": "CAL-1.0", "main": "dist/web.js", diff --git a/core/package.json b/core/package.json index 7c037469b..5ef92c786 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m", - "version": "0.4.0", + "version": "0.4.1", "description": "*The Agent-Centric Distributed Application Meta-ontology* or just: *Agent-Centric DApp Meta-ontology* * A new meta-ontology for interoperable, decentralized application design * A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends * The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network", "main": "lib/index.cjs", "module": "lib/index.js", diff --git a/docs/package.json b/docs/package.json index bb622c61c..ca504e627 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-docs", - "version": "0.4.0", + "version": "0.4.1", "description": "Documentation for AD4M", "license": "CAL-1.0", "homepage": "./", diff --git a/executor/package.json b/executor/package.json index 4a1a3a9b4..50bdddd89 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.4.0", + "version": "0.4.1", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "main": "lib/main.js", "files": [ diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index 5d2312ee8..9f908ef85 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import * as fs from 'fs'; import { Address, Expression } from '@perspect3vism/ad4m'; -export let ad4mExecutorVersion = "0.4.0"; +export let ad4mExecutorVersion = "0.4.1"; export let agentLanguageAlias = "did"; export let languageLanguageAlias = "lang"; export let neighbourhoodLanguageAlias = "neighbourhood"; diff --git a/host/package.json b/host/package.json index 33549614d..502c48bef 100644 --- a/host/package.json +++ b/host/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-host", - "version": "0.4.0", + "version": "0.4.1", "description": "Self hosting ad4m service", "private": true, "bin": { diff --git a/package.json b/package.json index f0c8cc231..ac7b10c83 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-monorepo", - "version": "0.4.0", + "version": "0.4.1", "workspaces": [ "core", "docs", diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index 15c2d10f1..f7bcb15c4 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.4.0" +version = "0.4.1" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" diff --git a/test-runner/package.json b/test-runner/package.json index 3c67a89f5..59b33754a 100644 --- a/test-runner/package.json +++ b/test-runner/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-test", - "version": "0.4.0", + "version": "0.4.1", "description": "Testing library to test ad4m languages", "license": "MIT", "bin": "./build/cli.js", diff --git a/ui/package.json b/ui/package.json index a9cb6336c..11b3c96d5 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-launcher", - "version": "0.4.0", + "version": "0.4.1", "private": true, "type": "module", "dependencies": { diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index ecf1f1d2b..11bd21616 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-launcher" -version = "0.4.0" +version = "0.4.1" description = "Administration of ad4m services" authors = ["Kaichao Sun"] license = "" diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index aaa96597b..79507ad4b 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "package": { "productName": "AD4M", - "version": "0.4.0" + "version": "0.4.1" }, "build": { "distDir": "../dist", From 8754d122a0c18390befe99631d2285a3e72a394e Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 23 Jun 2023 08:19:28 -0700 Subject: [PATCH 366/722] Fix HC mDNS config --- .../storage-services/Holochain/HcExecution.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HcExecution.ts b/executor/src/core/storage-services/Holochain/HcExecution.ts index 057d0f588..784b2f41c 100644 --- a/executor/src/core/storage-services/Holochain/HcExecution.ts +++ b/executor/src/core/storage-services/Holochain/HcExecution.ts @@ -42,6 +42,13 @@ export function writeDefaultConductor(conductorConfig: ConductorConfiguration) { } else { proxyType = "remote_proxy_client" } + + let transport_pool = ` + sub_transport: + type: quic + proxy_config: + type: remote_proxy_client + proxy_url: ${kitsuneProxy}` let conductorStringConfig = ` --- environment_path: ${escapeShellArg(conductorConfig.environmentPath)} @@ -53,14 +60,10 @@ admin_interfaces: port: ${conductorConfig.adminPort} network: network_type: ${conductorConfig.useMdns? 'quic_mdns' : 'quic_bootstrap'} - ${conductorConfig.useBootstrap ? 'bootstrap_service: '+ conductorConfig.bootstrapService : ''} + ${conductorConfig.useBootstrap && !conductorConfig.useMdns ? 'bootstrap_service: '+ conductorConfig.bootstrapService : ''} transport_pool: - - type: ${conductorConfig.useProxy ? 'proxy' : 'quic'} - sub_transport: - type: quic - proxy_config: - type: remote_proxy_client - proxy_url: ${kitsuneProxy} + - type: ${conductorConfig.useProxy && !conductorConfig.useMdns ? 'proxy' : 'quic'} + ${!conductorConfig.useMdns ? transport_pool : ''} tuning_params: gossip_strategy: sharded-gossip gossip_loop_iteration_delay_ms: '1000' From cfa31ccae1b8ade9cdb9a89b483c3d4b517d0943 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 23 Jun 2023 08:23:01 -0700 Subject: [PATCH 367/722] v0.4.2 --- Cargo.lock | 6 +++--- bootstrap-languages/agent-language/package.json | 2 +- bootstrap-languages/direct-message-language/package.json | 2 +- bootstrap-languages/neighbourhood-language/package.json | 2 +- bootstrap-languages/p-diff-sync/package.json | 2 +- bootstrap-languages/perspective-language/package.json | 2 +- cli/Cargo.toml | 4 ++-- connect/package.json | 2 +- core/package.json | 2 +- docs/package.json | 2 +- executor/package.json | 2 +- executor/src/core/Config.ts | 2 +- host/package.json | 2 +- package.json | 2 +- rust-client/Cargo.toml | 2 +- test-runner/package.json | 2 +- ui/package.json | 2 +- ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/tauri.conf.json | 2 +- 19 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 25208d1c6..b60dd4be6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" [[package]] name = "ad4m" -version = "0.4.1" +version = "0.4.2" dependencies = [ "ad4m-client", "anyhow", @@ -32,7 +32,7 @@ dependencies = [ [[package]] name = "ad4m-client" -version = "0.4.1" +version = "0.4.2" dependencies = [ "anyhow", "async-std", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "ad4m-launcher" -version = "0.4.1" +version = "0.4.2" dependencies = [ "ad4m-client", "directories", diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index cad196366..2e9edec94 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/agent-language", - "version": "0.4.1", + "version": "0.4.2", "description": "AD4M Language implementation for Holochain profile DNA", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json index de03dfd10..e1058bcb7 100644 --- a/bootstrap-languages/direct-message-language/package.json +++ b/bootstrap-languages/direct-message-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/direct-message-language", - "version": "0.4.1", + "version": "0.4.2", "description": "A templateable AD4M Language for personal, per-agent direct message Languages", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index 2193bd22f..284ea5972 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/neighbourhood-language", - "version": "0.4.1", + "version": "0.4.2", "description": "This is a Language for storing AD4M neighbourhood objects", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index f2ab9e379..973bdba21 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-diff-sync", - "version": "0.4.1", + "version": "0.4.2", "description": "An AD4M language for syncing mutations to a share perspective", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index fda08f40b..d89af1b3c 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-language", - "version": "0.4.1", + "version": "0.4.2", "description": "An AD4M Language for perspective snapshot expressions stored on IPFS", "main": "index.js", "scripts": { diff --git a/cli/Cargo.toml b/cli/Cargo.toml index fa4cd8de9..a7b247a87 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.4.1" +version = "0.4.2" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,7 +12,7 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.4.1" } +ad4m-client = { path = "../rust-client", version = "0.4.2" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" diff --git a/connect/package.json b/connect/package.json index 73a620473..296a73601 100644 --- a/connect/package.json +++ b/connect/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-connect", - "version": "0.4.1", + "version": "0.4.2", "description": "Lib for handling everything needed to setup a connection to a local or remote ad4m-executor", "license": "CAL-1.0", "main": "dist/web.js", diff --git a/core/package.json b/core/package.json index 5ef92c786..cf66f8ffa 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m", - "version": "0.4.1", + "version": "0.4.2", "description": "*The Agent-Centric Distributed Application Meta-ontology* or just: *Agent-Centric DApp Meta-ontology* * A new meta-ontology for interoperable, decentralized application design * A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends * The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network", "main": "lib/index.cjs", "module": "lib/index.js", diff --git a/docs/package.json b/docs/package.json index ca504e627..4bb5b143d 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-docs", - "version": "0.4.1", + "version": "0.4.2", "description": "Documentation for AD4M", "license": "CAL-1.0", "homepage": "./", diff --git a/executor/package.json b/executor/package.json index 50bdddd89..05068ce41 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.4.1", + "version": "0.4.2", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "main": "lib/main.js", "files": [ diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index 9f908ef85..98c3281d9 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import * as fs from 'fs'; import { Address, Expression } from '@perspect3vism/ad4m'; -export let ad4mExecutorVersion = "0.4.1"; +export let ad4mExecutorVersion = "0.4.2"; export let agentLanguageAlias = "did"; export let languageLanguageAlias = "lang"; export let neighbourhoodLanguageAlias = "neighbourhood"; diff --git a/host/package.json b/host/package.json index 502c48bef..33f4e3c57 100644 --- a/host/package.json +++ b/host/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-host", - "version": "0.4.1", + "version": "0.4.2", "description": "Self hosting ad4m service", "private": true, "bin": { diff --git a/package.json b/package.json index ac7b10c83..8ff9e689a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-monorepo", - "version": "0.4.1", + "version": "0.4.2", "workspaces": [ "core", "docs", diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index f7bcb15c4..90ed68502 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.4.1" +version = "0.4.2" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" diff --git a/test-runner/package.json b/test-runner/package.json index 59b33754a..51cc74dbb 100644 --- a/test-runner/package.json +++ b/test-runner/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-test", - "version": "0.4.1", + "version": "0.4.2", "description": "Testing library to test ad4m languages", "license": "MIT", "bin": "./build/cli.js", diff --git a/ui/package.json b/ui/package.json index 11b3c96d5..2f4fb0622 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-launcher", - "version": "0.4.1", + "version": "0.4.2", "private": true, "type": "module", "dependencies": { diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 11bd21616..940e7e3bf 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-launcher" -version = "0.4.1" +version = "0.4.2" description = "Administration of ad4m services" authors = ["Kaichao Sun"] license = "" diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index 79507ad4b..afd6f5b15 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "package": { "productName": "AD4M", - "version": "0.4.1" + "version": "0.4.2" }, "build": { "distDir": "../dist", From 046b4b3e763fa040b6e3aecc51905bea5620c58c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 23 Jun 2023 09:56:15 -0700 Subject: [PATCH 368/722] first pass at fixing up exector js build process with deno deps being pulled at buildtime --- executor/esbuild.ts | 86 ++++++++++ executor/lib/deno.js | 12 +- executor/src/main.ts | 10 +- tests/js/schema.gql | 379 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 476 insertions(+), 11 deletions(-) create mode 100644 executor/esbuild.ts create mode 100644 tests/js/schema.gql diff --git a/executor/esbuild.ts b/executor/esbuild.ts new file mode 100644 index 000000000..8aea07a10 --- /dev/null +++ b/executor/esbuild.ts @@ -0,0 +1,86 @@ +import * as esbuild from "https://deno.land/x/esbuild@v0.18.2/mod.js"; +import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.8.1/mod.ts"; + +function denoAlias(nodeModule) { + return { + name: `${nodeModule}-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^${nodeModule}$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/${nodeModule}/mod.ts`, external: true }; + }); + }, + } +} + +const result = await esbuild.build({ + entryPoints: ['src/deno.ts'], + outfile: 'lib/bundle.js', + bundle: true, + platform: 'node', + target: 'esnext', + format: 'esm', + globalName: 'executor', + charset: 'ascii', + legalComments: 'inline', + plugins: [ + ...[ + 'crypto', 'path', 'fs', 'net', 'dns', 'cluster', 'https', + 'dgram', 'os', 'tls', 'http', 'url', 'util', 'stream', 'events', 'tty', + 'zlib', 'assert', 'buffer', 'constants', 'querystring', 'string_decoder', + 'global', 'process', + ].map(denoAlias), + { + name: `dns-promisis-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^dns/promises$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/dns.ts`, external: true }; + }); + }, + }, + { + name: `child_process`, + setup(build) { + build.onResolve({ filter: new RegExp(`^child_process$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/child_process.ts`, external: true }; + }); + }, + }, + { + name: `fs-promisis-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^fs/promises$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/fs.ts`, external: true }; + }); + }, + }, + { + name: `ws-alias`, + setup(build) { + build.onResolve({ filter: new RegExp(`^ws$`) }, (args) => { + return { path: `https://deno.land/x/websocket@v0.1.4/mod.ts`, external: true }; + }); + }, + }, + { + name: `aloe`, + setup(build) { + build.onResolve({ filter: new RegExp(`^aloedb-node$`) }, (args) => { + return { path: 'https://deno.land/x/aloedb@0.9.0/mod.ts', external: true }; + }); + }, + }, + { + name: "https://deno.land/std@0.150.0/media_types/mod.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.150.0/media_types/mod.ts$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/media_types/mod.ts`, external: true }; + }); + }, + }, + ...denoPlugins({configPath: "/Users/josh/dev/ad4m/executor/scripts/deno.json"}), + //...denoPlugins() + ], +}); +console.log(result.outputFiles); + +esbuild.stop(); \ No newline at end of file diff --git a/executor/lib/deno.js b/executor/lib/deno.js index 7c5e09926..a85280216 100644 --- a/executor/lib/deno.js +++ b/executor/lib/deno.js @@ -1,6 +1,6 @@ -import "../deno_std-0.177.0/node/util.ts"; -import "../deno_std-0.177.0/node/global.ts"; +import "https://deno.land/std@0.177.0/node/util.ts"; +import "https://deno.land/std@0.177.0/node/global.ts"; const process = globalThis.process; const Buffer = globalThis.Buffer; const setImmediate = globalThis.setImmediate; @@ -13,15 +13,15 @@ globalThis.__dirname = __dirname; globalThis.__filename = __filename; import { init as internalInit } from "./main.js" -import * as internalPath from "../deno_std-0.177.0/node/path.ts"; -import * as internalOs from "../deno_std-0.177.0/node/os.ts" +import * as internalPath from "https://deno.land/std@0.177.0/node/path.ts"; +import * as internalOs from "https://deno.land/std@0.177.0/node/os.ts" export const init = internalInit export const path = internalPath export const os = internalOs -import "../xhr/mod.ts"; +import "https://deno.land/x/xhr@0.3.0/mod.ts"; -import {HTMLElement } from "../linkedom" +import { HTMLElement } from "https://esm.sh/linkedom" globalThis.HTMLElement = HTMLElement; diff --git a/executor/src/main.ts b/executor/src/main.ts index 33991a968..51f1adf4a 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -1,13 +1,13 @@ -import PerspectivismCore from "./core/PerspectivismCore"; -import create from "./core/PerspectivismCore"; -import { LanguageAlias, CoreConfig, BootstrapFixtures, languageLanguageAlias, agentLanguageAlias, neighbourhoodLanguageAlias, perspectiveLanguageAlias, ad4mExecutorVersion } from "./core/Config" +import PerspectivismCore from "./core/PerspectivismCore.ts"; +import create from "./core/PerspectivismCore.ts"; +import { LanguageAlias, CoreConfig, BootstrapFixtures, languageLanguageAlias, agentLanguageAlias, neighbourhoodLanguageAlias, perspectiveLanguageAlias, ad4mExecutorVersion } from "./core/Config.ts" // Patch Reflect to have missing getOwnPropertyDescriptor() // which should be there in any ES6 runtime but for some reason // is missing on some machines... -import getOwnPropertyDescriptor from './shims/getOwnPropertyDescriptor' +import getOwnPropertyDescriptor from './shims/getOwnPropertyDescriptor.ts' import getPort from 'get-port'; import fs from "fs"; -import { createResolvers } from "./core/graphQL-interface/GraphQL"; +import { createResolvers } from "./core/graphQL-interface/GraphQL.ts"; Reflect.getOwnPropertyDescriptor = getOwnPropertyDescriptor diff --git a/tests/js/schema.gql b/tests/js/schema.gql new file mode 100644 index 000000000..561891fbd --- /dev/null +++ b/tests/js/schema.gql @@ -0,0 +1,379 @@ +type LinkExpressionMutations { + additions: [LinkExpression!]! + removals: [LinkExpression!]! +} + +type InteractionMeta { + label: String! + name: String! + parameters: [InteractionParameter!]! +} + +type Neighbourhood { + linkLanguage: String! + meta: Perspective! +} + +input InteractionCall { + name: String! + parametersStringified: String! +} + +input CapabilityInput { + can: [String!]! + with: ResourceInput! +} + +type RuntimeInfo { + ad4mExecutorVersion: String! + isInitialized: Boolean! + isUnlocked: Boolean! +} + +input LinkInput { + predicate: String + source: String! + target: String! +} + +type ExpressionRendered { + author: String! + data: String! + icon: Icon! + language: LanguageRef! + proof: ExpressionProof! + timestamp: String! +} + +type LanguageMeta { + address: String! + author: String! + description: String + name: String! + possibleTemplateParams: [String!] + sourceCodeLink: String + templateAppliedParams: String + templateSourceLanguageAddress: String + templated: Boolean +} + +enum LinkStatus { + SHARED + LOCAL +} + +input EntanglementProofInput { + deviceKey: String! + deviceKeySignedByDid: String! + deviceKeyType: String! + did: String! + didSignedByDeviceKey: String! + didSigningKeyId: String! +} + +type Resource { + domain: String! + pointers: [String!]! +} + +type Perspective { + links: [LinkExpression!]! +} + +input LinkQuery { + fromDate: DateTime + limit: Float + predicate: String + source: String + target: String + untilDate: DateTime +} + +type AgentSignature { + publicKey: String! + signature: String! +} + +input ExpressionProofInput { + invalid: Boolean + key: String + signature: String + valid: Boolean +} + +input LinkMutations { + additions: [LinkInput!]! + removals: [LinkExpressionInput!]! +} + +type AgentStatus { + did: String + didDocument: String + error: String + isInitialized: Boolean! + isUnlocked: Boolean! +} + +type LanguageHandle { + address: String! + constructorIcon: Icon + icon: Icon + name: String! + settings: String + settingsIcon: Icon +} + +input LinkExpressionInput { + author: String! + data: LinkInput! + proof: ExpressionProofInput! + timestamp: String! + status: LinkStatus +} + +type ExceptionInfo { + addon: String + message: String! + title: String! + type: Float! +} + +scalar DateTime + +type OnlineAgent { + did: String! + status: PerspectiveExpression! +} + +type LanguageRef { + address: String! + name: String! +} + +input AuthInfoInput { + appDesc: String! + appDomain: String! + appIconPath: String + appName: String! + appUrl: String + capabilities: [CapabilityInput!] +} + +type LinkUpdated { + newLink: LinkExpression! + oldLink: LinkExpression! +} + +type ExpressionProof { + invalid: Boolean + key: String + signature: String + valid: Boolean +} + +type Mutation { + addTrustedAgents(agents: [String!]!): [String!]! + agentAddEntanglementProofs(proofs: [EntanglementProofInput!]!): [EntanglementProof!]! + agentDeleteEntanglementProofs(proofs: [EntanglementProofInput!]!): [EntanglementProof!]! + agentEntanglementProofPreFlight(deviceKey: String!, deviceKeyType: String!): EntanglementProof! + agentGenerate(passphrase: String!): AgentStatus! + agentGenerateJwt(rand: String!, requestId: String!): String! + agentLock(passphrase: String!): AgentStatus! + agentPermitCapability(auth: String!): String! + agentRemoveApp(requestId: String!): [Apps!]! + agentRequestCapability(authInfo: AuthInfoInput!): String! + agentRevokeToken(requestId: String!): [Apps!]! + agentSignMessage(message: String!): AgentSignature! + agentUnlock(passphrase: String!): AgentStatus! + agentUpdateDirectMessageLanguage(directMessageLanguage: String!): Agent! + agentUpdatePublicPerspective(perspective: PerspectiveInput!): Agent! + deleteTrustedAgents(agents: [String!]!): [String!]! + expressionCreate(content: String!, languageAddress: String!): String! + expressionInteract(interactionCall: InteractionCall!, url: String!): String! + languageApplyTemplateAndPublish(sourceLanguageHash: String!, templateData: String!): LanguageRef! + languagePublish(languageMeta: LanguageMetaInput!, languagePath: String!): LanguageMeta! + languageRemove(address: String!): Boolean! + languageWriteSettings(languageAddress: String!, settings: String!): Boolean! + neighbourhoodJoinFromUrl(url: String!): PerspectiveHandle! + neighbourhoodPublishFromPerspective(linkLanguage: String!, meta: PerspectiveInput!, perspectiveUUID: String!): String! + neighbourhoodSendBroadcast(payload: PerspectiveInput!, perspectiveUUID: String!): Boolean! + neighbourhoodSendBroadcastU(payload: PerspectiveUnsignedInput!, perspectiveUUID: String!): Boolean! + neighbourhoodSendSignal(payload: PerspectiveInput!, perspectiveUUID: String!, remoteAgentDid: String!): Boolean! + neighbourhoodSendSignalU(payload: PerspectiveUnsignedInput!, perspectiveUUID: String!, remoteAgentDid: String!): Boolean! + neighbourhoodSetOnlineStatus(perspectiveUUID: String!, status: PerspectiveInput!): Boolean! + neighbourhoodSetOnlineStatusU(perspectiveUUID: String!, status: PerspectiveUnsignedInput!): Boolean! + perspectiveAdd(name: String!): PerspectiveHandle! + perspectiveAddLink(link: LinkInput!, uuid: String!, status: String): LinkExpression! + perspectiveAddLinkExpression(link: LinkExpressionInput!, uuid: String!, status: String): LinkExpression! + perspectiveAddLinks(links: [LinkInput!]!, uuid: String!): [LinkExpression!]! + perspectiveLinkMutations(mutations: LinkMutations!, uuid: String!): LinkExpressionMutations! + perspectivePublishSnapshot(uuid: String!): String! + perspectiveRemove(uuid: String!): Boolean! + perspectiveRemoveLink(link: LinkExpressionInput!, uuid: String!): Boolean! + perspectiveRemoveLinks(links: [LinkExpressionInput!]!, uuid: String!): [LinkExpression!]! + perspectiveUpdate(name: String!, uuid: String!): PerspectiveHandle! + perspectiveUpdateLink(newLink: LinkInput!, oldLink: LinkExpressionInput!, uuid: String!): LinkExpression! + runtimeAddFriends(dids: [String!]!): [String!]! + runtimeAddKnownLinkLanguageTemplates(addresses: [String!]!): [String!]! + runtimeFriendSendMessage(did: String!, message: PerspectiveInput!): Boolean! + runtimeHcAddAgentInfos(agentInfos: String!): Boolean! + runtimeOpenLink(url: String!): Boolean! + runtimeQuit: Boolean! + runtimeRemoveFriends(dids: [String!]!): [String!]! + runtimeRemoveKnownLinkLanguageTemplates(addresses: [String!]!): [String!]! + runtimeSetStatus(status: PerspectiveInput!): Boolean! +} + +type PerspectiveExpression { + author: String! + data: Perspective! + proof: ExpressionProof! + timestamp: String! +} + +type SentMessage { + message: PerspectiveExpression! + recipient: String! +} + +type Query { + agent: Agent! + agentByDID(did: String!): Agent + agentGetApps: [Apps!]! + agentGetEntanglementProofs: [EntanglementProof!]! + agentIsLocked: Boolean! + agentStatus: AgentStatus! + expression(url: String!): ExpressionRendered + expressionInteractions(url: String!): [InteractionMeta!]! + expressionMany(urls: [String!]!): [ExpressionRendered]! + expressionRaw(url: String!): String + getTrustedAgents: [String!]! + language(address: String!): LanguageHandle! + languageMeta(address: String!): LanguageMeta! + languageSource(address: String!): String! + languages(filter: String): [LanguageHandle!]! + neighbourhoodHasTelepresenceAdapter(perspectiveUUID: String!): Boolean! + neighbourhoodOnlineAgents(perspectiveUUID: String!): [OnlineAgent!]! + neighbourhoodOtherAgents(perspectiveUUID: String!): [String!]! + perspective(uuid: String!): PerspectiveHandle + perspectiveQueryLinks(query: LinkQuery!, uuid: String!): [LinkExpression!]! + perspectiveQueryProlog(query: String!, uuid: String!): String! + perspectiveSnapshot(uuid: String!): Perspective! + perspectives: [PerspectiveHandle!]! + runtimeFriendStatus(did: String!): PerspectiveExpression! + runtimeFriends: [String!]! + runtimeHcAgentInfos: String! + runtimeInfo: RuntimeInfo! + runtimeKnownLinkLanguageTemplates: [String!]! + runtimeMessageInbox(filter: String): [PerspectiveExpression!]! + runtimeMessageOutbox(filter: String): [SentMessage!]! + runtimeVerifyStringSignedByDid(data: String!, did: String!, didSigningKeyId: String!, signedData: String!): Boolean! +} + +type Apps { + auth: AuthInfo! + requestId: String! + revoked: Boolean + token: String! +} + +type Agent { + did: String! + directMessageLanguage: String + perspective: Perspective +} + +type Icon { + code: String +} + +type LinkExpression { + author: String! + data: Link! + proof: ExpressionProof! + timestamp: String! + status: LinkStatus +} + +type Link { + predicate: String + source: String! + target: String! +} + +type Capability { + can: [String!]! + with: Resource! +} + +type AuthInfo { + appDesc: String! + appIconPath: String + appName: String! + appUrl: String! + capabilities: [Capability!]! +} + +input PerspectiveUnsignedInput { + links: [LinkInput!]! +} + +type Subscription { + agentStatusChanged: AgentStatus! + agentAppsChanged: Apps + agentUpdated: Agent! + exceptionOccurred: ExceptionInfo! + neighbourhoodSignal(perspectiveUUID: String!): PerspectiveExpression! + perspectiveAdded: PerspectiveHandle! + perspectiveLinkAdded(uuid: String!): LinkExpression! + perspectiveLinkRemoved(uuid: String!): LinkExpression! + perspectiveLinkUpdated(uuid: String!): LinkUpdated! + perspectiveRemoved: String! + perspectiveSyncStateChange(uuid: String!): String! + perspectiveUpdated: PerspectiveHandle! + runtimeMessageReceived: PerspectiveExpression! +} + +type PerspectiveHandle { + name: String + neighbourhood: Neighbourhood + sharedUrl: String + state: String! + uuid: String! +} + +type InteractionParameter { + name: String! + type: String! +} + +input ResourceInput { + domain: String! + pointers: [String!]! +} + +input PerspectiveInput { + links: [LinkExpressionInput!]! +} + +type EntanglementProof { + deviceKey: String! + deviceKeySignedByDid: String! + deviceKeyType: String! + did: String! + didSignedByDeviceKey: String + didSigningKeyId: String! +} + +input LanguageMetaInput { + description: String! + name: String! + possibleTemplateParams: [String!] + sourceCodeLink: String +} + +schema { + query: Query + mutation: Mutation + subscription: Subscription +} From bbe4bc32e47402856caf5bffd9eb21d17fb2f09c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 23 Jun 2023 14:54:07 -0700 Subject: [PATCH 369/722] include missing template information in language language --- .../hc-dna/zomes/integrity/src/lib.rs | 12 +++++++++++- bootstrap-languages/language-language/putAdapter.ts | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs index 3d628abc1..e480352dc 100644 --- a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs +++ b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs @@ -12,6 +12,16 @@ pub struct LanguageMetadata { pub name: String, pub description: String, pub address: String, + pub author: String, + pub templated: Option, + #[serde(rename = "templateSourceLanguageAddress")] + pub template_source_language_address: Option, + #[serde(rename = "templateAppliedParams")] + pub template_applied_params: Option, + #[serde(rename = "possibleTemplateParams")] + pub possbile_template_params: Option>, + #[serde(rename = "sourceCodeLink")] + pub source_code_link: Option, pub size: usize, pub chunks_hashes: Vec, } @@ -46,4 +56,4 @@ pub enum EntryTypes { #[hdk_link_types] pub enum LinkTypes { LanguageLink, -} \ No newline at end of file +} diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index d9a18433d..53060a409 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -60,6 +60,10 @@ export class LanguageStoragePutAdapter implements PublicSharing { name: language.meta.name, description: language.meta.description, address: language.meta.address, + templateSourceLanguageAddress: language.meta.templateSourceLanguageAddress, + templateAppliedParams: language.meta.templateAppliedParams, + possibleTemplateParams: language.meta.possibleTemplateParams, + sourceCodeLink: language.meta.sourceCodeLink, chunks_hashes: hashes, size: data_uncompressed.length, } as LanguageMetadata From 4d9e3083b2e8e2aeb7869585ee76e08d9ba9fad3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 23 Jun 2023 14:54:22 -0700 Subject: [PATCH 370/722] fix while loop to and instead of or --- executor/src/core/LanguageController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 420c87b69..ada0bdfc6 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -375,14 +375,14 @@ export default class LanguageController { // We need to get the meta from the language language // Retry 10 times with increasing delay to account for Holochain sync let retries = 0; - while (!languageMeta || retries < 10) { + while (!languageMeta && retries < 10) { try { languageMeta = await this.getLanguageExpression(address) } catch (e) { console.error(`Error getting language meta from language language: ${e}\nRetrying...`) } retries++; - await new Promise(r => setTimeout(r, 5000 * retries)); + await new Promise(r => setTimeout(r, 5000 * retries)); } } if (languageMeta == null) { From 09b75fdd691b77e508a44d498facafafdfd0af0f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 23 Jun 2023 14:54:50 -0700 Subject: [PATCH 371/722] new mainnet seed with fixed language language --- host/mainnet_seed.json | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/host/mainnet_seed.json b/host/mainnet_seed.json index ccfd5914c..d1ec73488 100644 --- a/host/mainnet_seed.json +++ b/host/mainnet_seed.json @@ -1,13 +1 @@ -{ - "trustedAgents": [ - "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" - ], - "knownLinkLanguages": [ - "QmRa4ZL7pvZ3urGcegaBunJBCaWZA5JcvyGppechN6SDK2" - ], - "directMessageLanguage": "QmebvujeCRLZmfLg1rkGhMutkTbjoDqRwPuUAr5RFHeawi", - "agentLanguage": "QmX6yVfRE9psY6CpNw5ZnE8RpxRmPt8EsuVZEqJfFWMoVo", - "perspectiveLanguage": "QmadTnggAzpp8KzimY7utATvoUgnzR4eypmJEEWmxcCQZK", - "neighbourhoodLanguage": "Qmb7uqnNQduKuSewvpyMxxtCDFjPYtYbfjwbZbrFrrG6tw", - "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar buffer = require('buffer');\n\n/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) ||\n flush === Z_NO_FLUSH$2 ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH$3 && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$2;\n }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\n/* ========================================================================= */\nconst deflate$2 = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 16209; /* got a data error -- remain here until reset */\nconst TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS$1) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nvar dna = \"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\";\n\nconst DNA = Buffer.from(dna, \"base64\");\nconst DNA_NICK = \"language-language\";\n\nvar __classPrivateFieldSet$3 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$3 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStorage_zomeCall;\nclass LanguageStorage {\n constructor(zomeCall) {\n _LanguageStorage_zomeCall.set(this, void 0);\n __classPrivateFieldSet$3(this, _LanguageStorage_zomeCall, zomeCall, \"f\");\n }\n async upload(file, onProgress = undefined, chunkSize = 256 * 1024) {\n console.log(\"splitting file...\");\n const blobs = this.splitBlob(file, chunkSize);\n console.log(\"done\");\n const numberOfChunks = blobs.length;\n const bytesPerChunk = blobs[0].size;\n const chunksHashes = [];\n for (let i = 0; i < blobs.length; i++) {\n console.log(\"creating chunk\", i);\n const chunkHash = await this.createChunk(blobs[i]);\n console.log(\"done\");\n chunksHashes.push(chunkHash);\n if (onProgress) {\n onProgress(((i + 1) * 1.0) / numberOfChunks, bytesPerChunk * (i + 1));\n }\n }\n return chunksHashes;\n }\n async download(chunksHashes) {\n const chunks = [];\n for (const chunkHash of chunksHashes) {\n let chunk = await this.fetchChunk(chunkHash);\n chunks.push(chunk);\n }\n return this.mergeChunks(chunks);\n }\n async storeLanguageExpression(fileExpression) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_language_expression\", fileExpression);\n }\n async getLanguageExpression(fileHash) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_expression\", fileHash);\n }\n async fetchChunk(fileChunkHash) {\n let bytes = null;\n let tries = 0;\n while (bytes === null && tries < 10) {\n tries++;\n bytes = await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_chunk\", fileChunkHash);\n if (bytes === null) {\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n if (bytes === null) {\n throw new Error(\"Could not fetch chunk. Giving up after 10 attempts.\");\n }\n // @ts-ignore\n return new buffer.Blob([new Uint8Array(bytes)]);\n }\n splitBlob(file, chunkSize) {\n let offset = 0;\n const chunks = [];\n while (file.size > offset) {\n const chunk = file.slice(offset, offset + chunkSize);\n offset += chunkSize;\n chunks.push(chunk);\n }\n return chunks;\n }\n mergeChunks(chunks) {\n const merged = new buffer.Blob(chunks);\n return merged;\n }\n async createChunk(chunk) {\n const bytes = await chunk.arrayBuffer();\n // @ts-ignore\n return __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_chunk\", new Uint8Array(bytes));\n }\n}\n_LanguageStorage_zomeCall = new WeakMap();\n\nvar __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStoragePutAdapter_agent, _LanguageStoragePutAdapter_DNA, _LanguageStoragePutAdapter_IPFS;\nclass LanguageStoragePutAdapter {\n constructor(context) {\n _LanguageStoragePutAdapter_agent.set(this, void 0);\n _LanguageStoragePutAdapter_DNA.set(this, void 0);\n _LanguageStoragePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_DNA, context.Holochain, \"f\");\n // @ts-ignore\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address) {\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n }\n //console.log(\"createPublic fileData\", language)\n try {\n // Just in case...\n if (typeof language === \"string\") {\n //@ts-ignore\n fileData = JSON.parse(fileData);\n }\n }\n catch (e) { }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString()));\n const data_compressed = pako.deflate(data_uncompressed);\n const blob = new buffer.Blob([data_compressed]);\n const hashes = await storage.upload(blob);\n const fileMetadata = {\n name: language.meta.name,\n description: language.meta.description,\n address: language.meta.address,\n checksum: \"1234\",\n chunks_hashes: hashes,\n size: data_uncompressed.length,\n };\n //Create the signed expression object\n const expression = __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_agent, \"f\").createSignedExpression(fileMetadata);\n //Remove the data_base64 from the expression, since this is already stored above\n delete expression.data.data_base64;\n //Store the FileMetadataExpression\n await storage.storeLanguageExpression(expression);\n //@ts-ignore\n return hash;\n }\n}\n_LanguageStoragePutAdapter_agent = new WeakMap(), _LanguageStoragePutAdapter_DNA = new WeakMap(), _LanguageStoragePutAdapter_IPFS = new WeakMap();\n\nvar __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LangAdapter_DNA;\nclass LangAdapter {\n constructor(context) {\n _LangAdapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet$1(this, _LangAdapter_DNA, context.Holochain, \"f\");\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$1(this, _LangAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n const data_compressed = await storage.download(expression.data.chunks_hashes);\n let data_stream = await data_compressed.arrayBuffer();\n const data_uncompressed = pako.inflate(data_stream);\n const buffer = Buffer.from(data_uncompressed);\n return buffer.toString(\"utf-8\");\n }\n}\n_LangAdapter_DNA = new WeakMap();\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Adapter_DNA;\nclass Adapter {\n constructor(context) {\n _Adapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet(this, _Adapter_DNA, context.Holochain, \"f\");\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet(this, _Adapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n return null;\n }\n return expression;\n }\n}\n_Adapter_DNA = new WeakMap();\n\nconst name = \"languages\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const Holochain = context.Holochain;\n // @ts-ignore\n await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]);\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" -} \ No newline at end of file +{"trustedAgents":["did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S"],"knownLinkLanguages":["QmRa4ZL7pvZ3urGcegaBunJBCaWZA5JcvyGppechN6SDK2"],"directMessageLanguage":"QmebvujeCRLZmfLg1rkGhMutkTbjoDqRwPuUAr5RFHeawi","agentLanguage":"QmX6yVfRE9psY6CpNw5ZnE8RpxRmPt8EsuVZEqJfFWMoVo","perspectiveLanguage":"QmadTnggAzpp8KzimY7utATvoUgnzR4eypmJEEWmxcCQZK","neighbourhoodLanguage":"Qmb7uqnNQduKuSewvpyMxxtCDFjPYtYbfjwbZbrFrrG6tw","languageLanguageBundle":"'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar buffer = require('buffer');\n\n/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) ||\n flush === Z_NO_FLUSH$2 ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH$3 && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$2;\n }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\n/* ========================================================================= */\nconst deflate$2 = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 16209; /* got a data error -- remain here until reset */\nconst TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS$1) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nvar dna = \"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\";\n\nconst DNA = Buffer.from(dna, \"base64\");\nconst DNA_NICK = \"language-language\";\n\nvar __classPrivateFieldSet$3 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$3 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStorage_zomeCall;\nclass LanguageStorage {\n constructor(zomeCall) {\n _LanguageStorage_zomeCall.set(this, void 0);\n __classPrivateFieldSet$3(this, _LanguageStorage_zomeCall, zomeCall, \"f\");\n }\n async upload(file, onProgress = undefined, chunkSize = 256 * 1024) {\n console.log(\"splitting file...\");\n const blobs = this.splitBlob(file, chunkSize);\n console.log(\"done\");\n const numberOfChunks = blobs.length;\n const bytesPerChunk = blobs[0].size;\n const chunksHashes = [];\n for (let i = 0; i < blobs.length; i++) {\n console.log(\"creating chunk\", i);\n const chunkHash = await this.createChunk(blobs[i]);\n console.log(\"done\");\n chunksHashes.push(chunkHash);\n if (onProgress) {\n onProgress(((i + 1) * 1.0) / numberOfChunks, bytesPerChunk * (i + 1));\n }\n }\n return chunksHashes;\n }\n async download(chunksHashes) {\n const chunks = [];\n for (const chunkHash of chunksHashes) {\n let chunk = await this.fetchChunk(chunkHash);\n chunks.push(chunk);\n }\n return this.mergeChunks(chunks);\n }\n async storeLanguageExpression(fileExpression) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_language_expression\", fileExpression);\n }\n async getLanguageExpression(fileHash) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_expression\", fileHash);\n }\n async fetchChunk(fileChunkHash) {\n let bytes = null;\n let tries = 0;\n while (bytes === null && tries < 10) {\n tries++;\n bytes = await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_chunk\", fileChunkHash);\n if (bytes === null) {\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n if (bytes === null) {\n throw new Error(\"Could not fetch chunk. Giving up after 10 attempts.\");\n }\n // @ts-ignore\n return new buffer.Blob([new Uint8Array(bytes)]);\n }\n splitBlob(file, chunkSize) {\n let offset = 0;\n const chunks = [];\n while (file.size > offset) {\n const chunk = file.slice(offset, offset + chunkSize);\n offset += chunkSize;\n chunks.push(chunk);\n }\n return chunks;\n }\n mergeChunks(chunks) {\n const merged = new buffer.Blob(chunks);\n return merged;\n }\n async createChunk(chunk) {\n const bytes = await chunk.arrayBuffer();\n // @ts-ignore\n return __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_chunk\", new Uint8Array(bytes));\n }\n}\n_LanguageStorage_zomeCall = new WeakMap();\n\nvar __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStoragePutAdapter_agent, _LanguageStoragePutAdapter_DNA, _LanguageStoragePutAdapter_IPFS;\nclass LanguageStoragePutAdapter {\n constructor(context) {\n _LanguageStoragePutAdapter_agent.set(this, void 0);\n _LanguageStoragePutAdapter_DNA.set(this, void 0);\n _LanguageStoragePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_DNA, context.Holochain, \"f\");\n // @ts-ignore\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address) {\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n }\n //console.log(\"createPublic fileData\", language)\n try {\n // Just in case...\n if (typeof language === \"string\") {\n //@ts-ignore\n fileData = JSON.parse(fileData);\n }\n }\n catch (e) { }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString()));\n const data_compressed = pako.deflate(data_uncompressed);\n const blob = new buffer.Blob([data_compressed]);\n const hashes = await storage.upload(blob);\n const fileMetadata = {\n name: language.meta.name,\n description: language.meta.description,\n address: language.meta.address,\n templateSourceLanguageAddress: language.meta.templateSourceLanguageAddress,\n templateAppliedParams: language.meta.templateAppliedParams,\n possibleTemplateParams: language.meta.possibleTemplateParams,\n sourceCodeLink: language.meta.sourceCodeLink,\n chunks_hashes: hashes,\n size: data_uncompressed.length,\n };\n //Create the signed expression object\n const expression = __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_agent, \"f\").createSignedExpression(fileMetadata);\n //Remove the data_base64 from the expression, since this is already stored above\n delete expression.data.data_base64;\n //Store the FileMetadataExpression\n await storage.storeLanguageExpression(expression);\n //@ts-ignore\n return hash;\n }\n}\n_LanguageStoragePutAdapter_agent = new WeakMap(), _LanguageStoragePutAdapter_DNA = new WeakMap(), _LanguageStoragePutAdapter_IPFS = new WeakMap();\n\nvar __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LangAdapter_DNA;\nclass LangAdapter {\n constructor(context) {\n _LangAdapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet$1(this, _LangAdapter_DNA, context.Holochain, \"f\");\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$1(this, _LangAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n const data_compressed = await storage.download(expression.data.chunks_hashes);\n let data_stream = await data_compressed.arrayBuffer();\n const data_uncompressed = pako.inflate(data_stream);\n const buffer = Buffer.from(data_uncompressed);\n return buffer.toString(\"utf-8\");\n }\n}\n_LangAdapter_DNA = new WeakMap();\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Adapter_DNA;\nclass Adapter {\n constructor(context) {\n _Adapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet(this, _Adapter_DNA, context.Holochain, \"f\");\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet(this, _Adapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n return null;\n }\n return expression;\n }\n}\n_Adapter_DNA = new WeakMap();\n\nconst name = \"languages\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const Holochain = context.Holochain;\n // @ts-ignore\n await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]);\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n"} \ No newline at end of file From 2c93f645a5b5dbd64f7ccdfacf06116ca97b8b18 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 23 Jun 2023 21:52:10 -0700 Subject: [PATCH 372/722] Revert "new mainnet seed with fixed language language" This reverts commit 09b75fdd691b77e508a44d498facafafdfd0af0f. --- host/mainnet_seed.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/host/mainnet_seed.json b/host/mainnet_seed.json index d1ec73488..ccfd5914c 100644 --- a/host/mainnet_seed.json +++ b/host/mainnet_seed.json @@ -1 +1,13 @@ -{"trustedAgents":["did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S"],"knownLinkLanguages":["QmRa4ZL7pvZ3urGcegaBunJBCaWZA5JcvyGppechN6SDK2"],"directMessageLanguage":"QmebvujeCRLZmfLg1rkGhMutkTbjoDqRwPuUAr5RFHeawi","agentLanguage":"QmX6yVfRE9psY6CpNw5ZnE8RpxRmPt8EsuVZEqJfFWMoVo","perspectiveLanguage":"QmadTnggAzpp8KzimY7utATvoUgnzR4eypmJEEWmxcCQZK","neighbourhoodLanguage":"Qmb7uqnNQduKuSewvpyMxxtCDFjPYtYbfjwbZbrFrrG6tw","languageLanguageBundle":"'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar buffer = require('buffer');\n\n/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) ||\n flush === Z_NO_FLUSH$2 ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH$3 && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$2;\n }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\n/* ========================================================================= */\nconst deflate$2 = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 16209; /* got a data error -- remain here until reset */\nconst TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS$1) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nvar dna = \"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\";\n\nconst DNA = Buffer.from(dna, \"base64\");\nconst DNA_NICK = \"language-language\";\n\nvar __classPrivateFieldSet$3 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$3 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStorage_zomeCall;\nclass LanguageStorage {\n constructor(zomeCall) {\n _LanguageStorage_zomeCall.set(this, void 0);\n __classPrivateFieldSet$3(this, _LanguageStorage_zomeCall, zomeCall, \"f\");\n }\n async upload(file, onProgress = undefined, chunkSize = 256 * 1024) {\n console.log(\"splitting file...\");\n const blobs = this.splitBlob(file, chunkSize);\n console.log(\"done\");\n const numberOfChunks = blobs.length;\n const bytesPerChunk = blobs[0].size;\n const chunksHashes = [];\n for (let i = 0; i < blobs.length; i++) {\n console.log(\"creating chunk\", i);\n const chunkHash = await this.createChunk(blobs[i]);\n console.log(\"done\");\n chunksHashes.push(chunkHash);\n if (onProgress) {\n onProgress(((i + 1) * 1.0) / numberOfChunks, bytesPerChunk * (i + 1));\n }\n }\n return chunksHashes;\n }\n async download(chunksHashes) {\n const chunks = [];\n for (const chunkHash of chunksHashes) {\n let chunk = await this.fetchChunk(chunkHash);\n chunks.push(chunk);\n }\n return this.mergeChunks(chunks);\n }\n async storeLanguageExpression(fileExpression) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_language_expression\", fileExpression);\n }\n async getLanguageExpression(fileHash) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_expression\", fileHash);\n }\n async fetchChunk(fileChunkHash) {\n let bytes = null;\n let tries = 0;\n while (bytes === null && tries < 10) {\n tries++;\n bytes = await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_chunk\", fileChunkHash);\n if (bytes === null) {\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n if (bytes === null) {\n throw new Error(\"Could not fetch chunk. Giving up after 10 attempts.\");\n }\n // @ts-ignore\n return new buffer.Blob([new Uint8Array(bytes)]);\n }\n splitBlob(file, chunkSize) {\n let offset = 0;\n const chunks = [];\n while (file.size > offset) {\n const chunk = file.slice(offset, offset + chunkSize);\n offset += chunkSize;\n chunks.push(chunk);\n }\n return chunks;\n }\n mergeChunks(chunks) {\n const merged = new buffer.Blob(chunks);\n return merged;\n }\n async createChunk(chunk) {\n const bytes = await chunk.arrayBuffer();\n // @ts-ignore\n return __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_chunk\", new Uint8Array(bytes));\n }\n}\n_LanguageStorage_zomeCall = new WeakMap();\n\nvar __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStoragePutAdapter_agent, _LanguageStoragePutAdapter_DNA, _LanguageStoragePutAdapter_IPFS;\nclass LanguageStoragePutAdapter {\n constructor(context) {\n _LanguageStoragePutAdapter_agent.set(this, void 0);\n _LanguageStoragePutAdapter_DNA.set(this, void 0);\n _LanguageStoragePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_DNA, context.Holochain, \"f\");\n // @ts-ignore\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address) {\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n }\n //console.log(\"createPublic fileData\", language)\n try {\n // Just in case...\n if (typeof language === \"string\") {\n //@ts-ignore\n fileData = JSON.parse(fileData);\n }\n }\n catch (e) { }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString()));\n const data_compressed = pako.deflate(data_uncompressed);\n const blob = new buffer.Blob([data_compressed]);\n const hashes = await storage.upload(blob);\n const fileMetadata = {\n name: language.meta.name,\n description: language.meta.description,\n address: language.meta.address,\n templateSourceLanguageAddress: language.meta.templateSourceLanguageAddress,\n templateAppliedParams: language.meta.templateAppliedParams,\n possibleTemplateParams: language.meta.possibleTemplateParams,\n sourceCodeLink: language.meta.sourceCodeLink,\n chunks_hashes: hashes,\n size: data_uncompressed.length,\n };\n //Create the signed expression object\n const expression = __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_agent, \"f\").createSignedExpression(fileMetadata);\n //Remove the data_base64 from the expression, since this is already stored above\n delete expression.data.data_base64;\n //Store the FileMetadataExpression\n await storage.storeLanguageExpression(expression);\n //@ts-ignore\n return hash;\n }\n}\n_LanguageStoragePutAdapter_agent = new WeakMap(), _LanguageStoragePutAdapter_DNA = new WeakMap(), _LanguageStoragePutAdapter_IPFS = new WeakMap();\n\nvar __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LangAdapter_DNA;\nclass LangAdapter {\n constructor(context) {\n _LangAdapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet$1(this, _LangAdapter_DNA, context.Holochain, \"f\");\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$1(this, _LangAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n const data_compressed = await storage.download(expression.data.chunks_hashes);\n let data_stream = await data_compressed.arrayBuffer();\n const data_uncompressed = pako.inflate(data_stream);\n const buffer = Buffer.from(data_uncompressed);\n return buffer.toString(\"utf-8\");\n }\n}\n_LangAdapter_DNA = new WeakMap();\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Adapter_DNA;\nclass Adapter {\n constructor(context) {\n _Adapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet(this, _Adapter_DNA, context.Holochain, \"f\");\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet(this, _Adapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n return null;\n }\n return expression;\n }\n}\n_Adapter_DNA = new WeakMap();\n\nconst name = \"languages\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const Holochain = context.Holochain;\n // @ts-ignore\n await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]);\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n"} \ No newline at end of file +{ + "trustedAgents": [ + "did:key:zQ3sheV6m6sT83woZtVL2PHiz6J1qWRh4FWW2aiJvxy6d2o7S" + ], + "knownLinkLanguages": [ + "QmRa4ZL7pvZ3urGcegaBunJBCaWZA5JcvyGppechN6SDK2" + ], + "directMessageLanguage": "QmebvujeCRLZmfLg1rkGhMutkTbjoDqRwPuUAr5RFHeawi", + "agentLanguage": "QmX6yVfRE9psY6CpNw5ZnE8RpxRmPt8EsuVZEqJfFWMoVo", + "perspectiveLanguage": "QmadTnggAzpp8KzimY7utATvoUgnzR4eypmJEEWmxcCQZK", + "neighbourhoodLanguage": "Qmb7uqnNQduKuSewvpyMxxtCDFjPYtYbfjwbZbrFrrG6tw", + "languageLanguageBundle": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar buffer = require('buffer');\n\n/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) ||\n flush === Z_NO_FLUSH$2 ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH$3 && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$2;\n }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\n/* ========================================================================= */\nconst deflate$2 = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 16209; /* got a data error -- remain here until reset */\nconst TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS$1) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nvar dna = \"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\";\n\nconst DNA = Buffer.from(dna, \"base64\");\nconst DNA_NICK = \"language-language\";\n\nvar __classPrivateFieldSet$3 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$3 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStorage_zomeCall;\nclass LanguageStorage {\n constructor(zomeCall) {\n _LanguageStorage_zomeCall.set(this, void 0);\n __classPrivateFieldSet$3(this, _LanguageStorage_zomeCall, zomeCall, \"f\");\n }\n async upload(file, onProgress = undefined, chunkSize = 256 * 1024) {\n console.log(\"splitting file...\");\n const blobs = this.splitBlob(file, chunkSize);\n console.log(\"done\");\n const numberOfChunks = blobs.length;\n const bytesPerChunk = blobs[0].size;\n const chunksHashes = [];\n for (let i = 0; i < blobs.length; i++) {\n console.log(\"creating chunk\", i);\n const chunkHash = await this.createChunk(blobs[i]);\n console.log(\"done\");\n chunksHashes.push(chunkHash);\n if (onProgress) {\n onProgress(((i + 1) * 1.0) / numberOfChunks, bytesPerChunk * (i + 1));\n }\n }\n return chunksHashes;\n }\n async download(chunksHashes) {\n const chunks = [];\n for (const chunkHash of chunksHashes) {\n let chunk = await this.fetchChunk(chunkHash);\n chunks.push(chunk);\n }\n return this.mergeChunks(chunks);\n }\n async storeLanguageExpression(fileExpression) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_language_expression\", fileExpression);\n }\n async getLanguageExpression(fileHash) {\n return await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_expression\", fileHash);\n }\n async fetchChunk(fileChunkHash) {\n let bytes = null;\n let tries = 0;\n while (bytes === null && tries < 10) {\n tries++;\n bytes = await __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"get_language_chunk\", fileChunkHash);\n if (bytes === null) {\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n if (bytes === null) {\n throw new Error(\"Could not fetch chunk. Giving up after 10 attempts.\");\n }\n // @ts-ignore\n return new buffer.Blob([new Uint8Array(bytes)]);\n }\n splitBlob(file, chunkSize) {\n let offset = 0;\n const chunks = [];\n while (file.size > offset) {\n const chunk = file.slice(offset, offset + chunkSize);\n offset += chunkSize;\n chunks.push(chunk);\n }\n return chunks;\n }\n mergeChunks(chunks) {\n const merged = new buffer.Blob(chunks);\n return merged;\n }\n async createChunk(chunk) {\n const bytes = await chunk.arrayBuffer();\n // @ts-ignore\n return __classPrivateFieldGet$3(this, _LanguageStorage_zomeCall, \"f\").call(this, \"store_chunk\", new Uint8Array(bytes));\n }\n}\n_LanguageStorage_zomeCall = new WeakMap();\n\nvar __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LanguageStoragePutAdapter_agent, _LanguageStoragePutAdapter_DNA, _LanguageStoragePutAdapter_IPFS;\nclass LanguageStoragePutAdapter {\n constructor(context) {\n _LanguageStoragePutAdapter_agent.set(this, void 0);\n _LanguageStoragePutAdapter_DNA.set(this, void 0);\n _LanguageStoragePutAdapter_IPFS.set(this, void 0);\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_agent, context.agent, \"f\");\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_DNA, context.Holochain, \"f\");\n // @ts-ignore\n __classPrivateFieldSet$2(this, _LanguageStoragePutAdapter_IPFS, context.IPFS, \"f\");\n }\n async createPublic(language) {\n const ipfsAddress = await __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_IPFS, \"f\").add({ content: language.bundle.toString() }, { onlyHash: true });\n // @ts-ignore\n const hash = ipfsAddress.cid.toString();\n if (hash != language.meta.address) {\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n }\n //console.log(\"createPublic fileData\", language)\n try {\n // Just in case...\n if (typeof language === \"string\") {\n //@ts-ignore\n fileData = JSON.parse(fileData);\n }\n }\n catch (e) { }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString()));\n const data_compressed = pako.deflate(data_uncompressed);\n const blob = new buffer.Blob([data_compressed]);\n const hashes = await storage.upload(blob);\n const fileMetadata = {\n name: language.meta.name,\n description: language.meta.description,\n address: language.meta.address,\n checksum: \"1234\",\n chunks_hashes: hashes,\n size: data_uncompressed.length,\n };\n //Create the signed expression object\n const expression = __classPrivateFieldGet$2(this, _LanguageStoragePutAdapter_agent, \"f\").createSignedExpression(fileMetadata);\n //Remove the data_base64 from the expression, since this is already stored above\n delete expression.data.data_base64;\n //Store the FileMetadataExpression\n await storage.storeLanguageExpression(expression);\n //@ts-ignore\n return hash;\n }\n}\n_LanguageStoragePutAdapter_agent = new WeakMap(), _LanguageStoragePutAdapter_DNA = new WeakMap(), _LanguageStoragePutAdapter_IPFS = new WeakMap();\n\nvar __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LangAdapter_DNA;\nclass LangAdapter {\n constructor(context) {\n _LangAdapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet$1(this, _LangAdapter_DNA, context.Holochain, \"f\");\n }\n async getLanguageSource(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet$1(this, _LangAdapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) {\n console.error(\"LanguageLanguage.get(): Failed to fetch language\");\n return null;\n }\n const data_compressed = await storage.download(expression.data.chunks_hashes);\n let data_stream = await data_compressed.arrayBuffer();\n const data_uncompressed = pako.inflate(data_stream);\n const buffer = Buffer.from(data_uncompressed);\n return buffer.toString(\"utf-8\");\n }\n}\n_LangAdapter_DNA = new WeakMap();\n\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Adapter_DNA;\nclass Adapter {\n constructor(context) {\n _Adapter_DNA.set(this, void 0);\n this.putAdapter = new LanguageStoragePutAdapter(context);\n __classPrivateFieldSet(this, _Adapter_DNA, context.Holochain, \"f\");\n }\n async get(address) {\n //Check the first two characters of address are equal to Qm\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const storage = new LanguageStorage((fn_name, payload) => __classPrivateFieldGet(this, _Adapter_DNA, \"f\").call(DNA_NICK, \"language_storage\", fn_name, payload));\n const expression = (await storage.getLanguageExpression(address));\n if (!expression) {\n return null;\n }\n return expression;\n }\n}\n_Adapter_DNA = new WeakMap();\n\nconst name = \"languages\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const Holochain = context.Holochain;\n // @ts-ignore\n await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]);\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions,\n };\n}\n\nexports[\"default\"] = create;\nexports.name = name;\n//# sourceMappingURL=bundle.js.map\n" +} \ No newline at end of file From bb6a526f362fc3f666f4541c73ab5e95b05fb831 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 23 Jun 2023 21:52:16 -0700 Subject: [PATCH 373/722] Revert "fix while loop to and instead of or" This reverts commit 4d9e3083b2e8e2aeb7869585ee76e08d9ba9fad3. --- executor/src/core/LanguageController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index ada0bdfc6..420c87b69 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -375,14 +375,14 @@ export default class LanguageController { // We need to get the meta from the language language // Retry 10 times with increasing delay to account for Holochain sync let retries = 0; - while (!languageMeta && retries < 10) { + while (!languageMeta || retries < 10) { try { languageMeta = await this.getLanguageExpression(address) } catch (e) { console.error(`Error getting language meta from language language: ${e}\nRetrying...`) } retries++; - await new Promise(r => setTimeout(r, 5000 * retries)); + await new Promise(r => setTimeout(r, 5000 * retries)); } } if (languageMeta == null) { From e611e82ad6e87d4a14c334ca5015e235f101fafb Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 23 Jun 2023 21:52:17 -0700 Subject: [PATCH 374/722] Revert "include missing template information in language language" This reverts commit bbe4bc32e47402856caf5bffd9eb21d17fb2f09c. --- .../hc-dna/zomes/integrity/src/lib.rs | 12 +----------- bootstrap-languages/language-language/putAdapter.ts | 4 ---- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs index e480352dc..3d628abc1 100644 --- a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs +++ b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs @@ -12,16 +12,6 @@ pub struct LanguageMetadata { pub name: String, pub description: String, pub address: String, - pub author: String, - pub templated: Option, - #[serde(rename = "templateSourceLanguageAddress")] - pub template_source_language_address: Option, - #[serde(rename = "templateAppliedParams")] - pub template_applied_params: Option, - #[serde(rename = "possibleTemplateParams")] - pub possbile_template_params: Option>, - #[serde(rename = "sourceCodeLink")] - pub source_code_link: Option, pub size: usize, pub chunks_hashes: Vec, } @@ -56,4 +46,4 @@ pub enum EntryTypes { #[hdk_link_types] pub enum LinkTypes { LanguageLink, -} +} \ No newline at end of file diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index 53060a409..d9a18433d 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -60,10 +60,6 @@ export class LanguageStoragePutAdapter implements PublicSharing { name: language.meta.name, description: language.meta.description, address: language.meta.address, - templateSourceLanguageAddress: language.meta.templateSourceLanguageAddress, - templateAppliedParams: language.meta.templateAppliedParams, - possibleTemplateParams: language.meta.possibleTemplateParams, - sourceCodeLink: language.meta.sourceCodeLink, chunks_hashes: hashes, size: data_uncompressed.length, } as LanguageMetadata From ee9faab39a5b82327e2bb87090dc15c69fd37653 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 23 Jun 2023 21:53:38 -0700 Subject: [PATCH 375/722] fix while loop to and not for in language controller --- executor/src/core/LanguageController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 420c87b69..ada0bdfc6 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -375,14 +375,14 @@ export default class LanguageController { // We need to get the meta from the language language // Retry 10 times with increasing delay to account for Holochain sync let retries = 0; - while (!languageMeta || retries < 10) { + while (!languageMeta && retries < 10) { try { languageMeta = await this.getLanguageExpression(address) } catch (e) { console.error(`Error getting language meta from language language: ${e}\nRetrying...`) } retries++; - await new Promise(r => setTimeout(r, 5000 * retries)); + await new Promise(r => setTimeout(r, 5000 * retries)); } } if (languageMeta == null) { From 90ffd9c31d0bcab18e5edd39f0bebd56be798f5c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 23 Jun 2023 21:55:49 -0700 Subject: [PATCH 376/722] v0.4.3 --- bootstrap-languages/agent-language/package.json | 2 +- bootstrap-languages/direct-message-language/package.json | 2 +- bootstrap-languages/neighbourhood-language/package.json | 2 +- bootstrap-languages/p-diff-sync/package.json | 2 +- bootstrap-languages/perspective-language/package.json | 2 +- cli/Cargo.toml | 4 ++-- connect/package.json | 2 +- core/package.json | 2 +- docs/package.json | 2 +- executor/package.json | 2 +- executor/src/core/Config.ts | 2 +- host/package.json | 2 +- package.json | 2 +- rust-client/Cargo.toml | 2 +- test-runner/package.json | 2 +- ui/package.json | 2 +- ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/tauri.conf.json | 2 +- 18 files changed, 19 insertions(+), 19 deletions(-) diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index 2e9edec94..22d67ccd9 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/agent-language", - "version": "0.4.2", + "version": "0.4.3", "description": "AD4M Language implementation for Holochain profile DNA", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json index e1058bcb7..93c17d792 100644 --- a/bootstrap-languages/direct-message-language/package.json +++ b/bootstrap-languages/direct-message-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/direct-message-language", - "version": "0.4.2", + "version": "0.4.3", "description": "A templateable AD4M Language for personal, per-agent direct message Languages", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index 284ea5972..faa6a38e9 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/neighbourhood-language", - "version": "0.4.2", + "version": "0.4.3", "description": "This is a Language for storing AD4M neighbourhood objects", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index 973bdba21..d5d8bb626 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-diff-sync", - "version": "0.4.2", + "version": "0.4.3", "description": "An AD4M language for syncing mutations to a share perspective", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index d89af1b3c..3882bcf0e 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-language", - "version": "0.4.2", + "version": "0.4.3", "description": "An AD4M Language for perspective snapshot expressions stored on IPFS", "main": "index.js", "scripts": { diff --git a/cli/Cargo.toml b/cli/Cargo.toml index a7b247a87..711149928 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.4.2" +version = "0.4.3" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,7 +12,7 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.4.2" } +ad4m-client = { path = "../rust-client", version = "0.4.3" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" diff --git a/connect/package.json b/connect/package.json index 296a73601..d47f2ede5 100644 --- a/connect/package.json +++ b/connect/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-connect", - "version": "0.4.2", + "version": "0.4.3", "description": "Lib for handling everything needed to setup a connection to a local or remote ad4m-executor", "license": "CAL-1.0", "main": "dist/web.js", diff --git a/core/package.json b/core/package.json index cf66f8ffa..3c2643e1f 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m", - "version": "0.4.2", + "version": "0.4.3", "description": "*The Agent-Centric Distributed Application Meta-ontology* or just: *Agent-Centric DApp Meta-ontology* * A new meta-ontology for interoperable, decentralized application design * A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends * The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network", "main": "lib/index.cjs", "module": "lib/index.js", diff --git a/docs/package.json b/docs/package.json index 4bb5b143d..22cc8a9f1 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-docs", - "version": "0.4.2", + "version": "0.4.3", "description": "Documentation for AD4M", "license": "CAL-1.0", "homepage": "./", diff --git a/executor/package.json b/executor/package.json index 05068ce41..136c71922 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.4.2", + "version": "0.4.3", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "main": "lib/main.js", "files": [ diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index 98c3281d9..b614e1828 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import * as fs from 'fs'; import { Address, Expression } from '@perspect3vism/ad4m'; -export let ad4mExecutorVersion = "0.4.2"; +export let ad4mExecutorVersion = "0.4.3"; export let agentLanguageAlias = "did"; export let languageLanguageAlias = "lang"; export let neighbourhoodLanguageAlias = "neighbourhood"; diff --git a/host/package.json b/host/package.json index 33f4e3c57..fc7376a63 100644 --- a/host/package.json +++ b/host/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-host", - "version": "0.4.2", + "version": "0.4.3", "description": "Self hosting ad4m service", "private": true, "bin": { diff --git a/package.json b/package.json index 8ff9e689a..907afae74 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-monorepo", - "version": "0.4.2", + "version": "0.4.3", "workspaces": [ "core", "docs", diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index 90ed68502..b68dbc26e 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.4.2" +version = "0.4.3" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" diff --git a/test-runner/package.json b/test-runner/package.json index 51cc74dbb..56acbe212 100644 --- a/test-runner/package.json +++ b/test-runner/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-test", - "version": "0.4.2", + "version": "0.4.3", "description": "Testing library to test ad4m languages", "license": "MIT", "bin": "./build/cli.js", diff --git a/ui/package.json b/ui/package.json index 2f4fb0622..f6ab3b589 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-launcher", - "version": "0.4.2", + "version": "0.4.3", "private": true, "type": "module", "dependencies": { diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 940e7e3bf..833365097 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-launcher" -version = "0.4.2" +version = "0.4.3" description = "Administration of ad4m services" authors = ["Kaichao Sun"] license = "" diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index afd6f5b15..32ac5144f 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "package": { "productName": "AD4M", - "version": "0.4.2" + "version": "0.4.3" }, "build": { "distDir": "../dist", From 8e2ce848de058ab6f8de0e78594ce56949163da3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 26 Jun 2023 11:26:41 -0700 Subject: [PATCH 377/722] remove signing.dna logic and functions --- rust-executor/src/globals.rs | 3 --- rust-executor/src/js_core/utils_extension.js | 3 --- rust-executor/src/js_core/utils_extension.rs | 11 +---------- 3 files changed, 1 insertion(+), 16 deletions(-) diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index 0551b10cb..f0c6b3890 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -27,6 +27,3 @@ pub const HC_BIN: &[u8] = include_bytes!("../temp/hc"); /// Binary data of swipl binary, included at buildtime from the swipl binary pub const SWIPL_ZIP: &[u8] = include_bytes!("../temp/swipl.zip"); - -/// Binary data of dna containing the signing service; todo this should be removed and use the lair service directly once we have that in rust -pub const SIGNING_DNA: &[u8] = include_bytes!("../temp/signing.dna"); diff --git a/rust-executor/src/js_core/utils_extension.js b/rust-executor/src/js_core/utils_extension.js index 376d30aaa..b04aa1dbe 100644 --- a/rust-executor/src/js_core/utils_extension.js +++ b/rust-executor/src/js_core/utils_extension.js @@ -2,9 +2,6 @@ const core = Deno.core; globalThis.UTILS = { - getSigningDNA: () => { - return core.ops.get_signing_dna(); - }, hash: (data) => { return core.ops.hash(data); }, diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index 0ab8820f0..f9ca8a213 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -8,11 +8,6 @@ use crate::globals::SIGNING_DNA; use super::JS_CORE_HANDLE; -#[op] -fn get_signing_dna() -> Result, AnyError> { - Ok(SIGNING_DNA.to_vec()) -} - #[op] fn hash(data: String) -> Result { // Compute the SHA-256 multihash @@ -44,11 +39,7 @@ async fn load_module(path: String) -> Result { pub fn build() -> Extension { Extension::builder("utils") .js(include_js_files!(utils "utils_extension.js",)) - .ops(vec![ - get_signing_dna::decl(), - hash::decl(), - load_module::decl(), - ]) + .ops(vec![hash::decl(), load_module::decl()]) .force_op_registration() .build() } From b547451bde6b7658d1afb8a959720bea35ff1a83 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 26 Jun 2023 11:39:21 -0700 Subject: [PATCH 378/722] add missing deno.json file with import maps & fix esbuild.ts entry file --- executor/.gitignore | 1 - executor/esbuild.ts | 2 +- executor/scripts/deno.json | 6 ++++++ 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 executor/scripts/deno.json diff --git a/executor/.gitignore b/executor/.gitignore index de246da53..52c010137 100644 --- a/executor/.gitignore +++ b/executor/.gitignore @@ -1,7 +1,6 @@ tst-tmp temp -deno* AloeDB-0.9.0 linkedom xhr \ No newline at end of file diff --git a/executor/esbuild.ts b/executor/esbuild.ts index 8aea07a10..cd1981166 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -13,7 +13,7 @@ function denoAlias(nodeModule) { } const result = await esbuild.build({ - entryPoints: ['src/deno.ts'], + entryPoints: ['src/main.ts'], outfile: 'lib/bundle.js', bundle: true, platform: 'node', diff --git a/executor/scripts/deno.json b/executor/scripts/deno.json new file mode 100644 index 000000000..cfbd2533e --- /dev/null +++ b/executor/scripts/deno.json @@ -0,0 +1,6 @@ +{ + "imports": { + "@perspect3vism/ad4m": "../../core/lib/index.js", + "get-port": "npm:get-port@5.1.1" + } +} \ No newline at end of file From 37aa298b9a090d96eafd3c732b3cd4cb2ebcfe24 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 26 Jun 2023 11:42:55 -0700 Subject: [PATCH 379/722] fix broken import of SIGNING_DNA --- rust-executor/src/js_core/utils_extension.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index f9ca8a213..453308469 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -4,8 +4,6 @@ use log::info; use multibase::Base; use multihash::{Code, MultihashDigest}; -use crate::globals::SIGNING_DNA; - use super::JS_CORE_HANDLE; #[op] From 88ad36f4c3c45907a28d53a46b6a2fba304485f4 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 3 Jul 2023 13:39:55 +0530 Subject: [PATCH 380/722] sodiumoxide patch --- Cargo.lock | 685 ++++++++++++++++++++++++++++++++++++--- Cargo.toml | 6 +- rust-executor/Cargo.toml | 6 +- 3 files changed, 642 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 23d4e0c56..c37f57b32 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,7 +26,7 @@ dependencies = [ "rand 0.8.5", "regex", "rust-executor", - "rustyline", + "rustyline 10.0.0", "serde", "serde_json", "syntect", @@ -51,7 +51,7 @@ dependencies = [ "rand 0.8.5", "regex", "reqwest", - "rustyline", + "rustyline 10.0.0", "serde", "serde_json", "tokio", @@ -125,7 +125,7 @@ dependencies = [ "cfg-if 1.0.0", "cipher 0.3.0", "cpufeatures", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] @@ -150,7 +150,7 @@ dependencies = [ "cipher 0.4.4", "ctr", "ghash", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -261,7 +261,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95c2fcf79ad1932ac6269a738109997a83c227c09b75842ae564dc8ede6a861c" dependencies = [ "base64ct", - "blake2", + "blake2 0.10.6", "password-hash 0.5.0", ] @@ -598,6 +598,12 @@ dependencies = [ "shrinkwraprs", ] +[[package]] +name = "az" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" + [[package]] name = "backtrace" version = "0.3.66" @@ -625,6 +631,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + [[package]] name = "base64" version = "0.13.1" @@ -713,6 +725,18 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" +dependencies = [ + "byte-tools", + "crypto-mac 0.7.0", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + [[package]] name = "blake2" version = "0.10.6" @@ -774,6 +798,18 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding 0.1.5", + "byte-tools", + "byteorder", + "generic-array 0.12.4", +] + [[package]] name = "block-buffer" version = "0.9.0" @@ -798,6 +834,15 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e2211b0817f061502a8dd9f11a37e879e79763e3c698d2418cf824d8cb2f21e" +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + [[package]] name = "block-padding" version = "0.3.3" @@ -830,7 +875,7 @@ checksum = "8129c0ab340c1b0caf6dbc587e814d04ba811e336dcf8fc268c04e047428ebb0" dependencies = [ "bit-vec", "getrandom 0.2.8", - "siphasher", + "siphasher 0.3.10", ] [[package]] @@ -846,7 +891,7 @@ dependencies = [ "pairing", "rand_core 0.6.4", "serde", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -916,6 +961,12 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + [[package]] name = "bytecheck" version = "0.6.10" @@ -1371,7 +1422,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a27e4532f26f510c24bb8477d963c0c3ef27e293c3b2c507cccb0536d493201a" dependencies = [ - "crossterm", + "crossterm 0.19.0", ] [[package]] @@ -1534,6 +1585,16 @@ dependencies = [ "windows-sys 0.33.0", ] +[[package]] +name = "cpu-time" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "cpufeatures" version = "0.2.5" @@ -1678,7 +1739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c36c10130df424b2f3552fcc2ddcd9b28a27b1e54b358b45874f88d1ca6888c" dependencies = [ "bitflags", - "crossterm_winapi", + "crossterm_winapi 0.7.0", "lazy_static", "libc", "mio 0.7.14", @@ -1687,6 +1748,22 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d" +dependencies = [ + "bitflags", + "crossterm_winapi 0.8.0", + "libc", + "mio 0.7.14", + "parking_lot 0.11.2", + "signal-hook 0.3.15", + "signal-hook-mio", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.7.0" @@ -1696,6 +1773,26 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm_winapi" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" +dependencies = [ + "winapi", +] + +[[package]] +name = "crrl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2db40892a506901e4e8281f00e42687df82d1d3448cb0289ae9183a60cb42ec1" +dependencies = [ + "blake2 0.10.6", + "rand_core 0.6.4", + "sha2 0.10.6", +] + [[package]] name = "crunchy" version = "0.2.2" @@ -1710,7 +1807,7 @@ checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ "generic-array 0.14.6", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -1725,6 +1822,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.4", + "subtle 1.0.0", +] + [[package]] name = "crypto-mac" version = "0.8.0" @@ -1732,7 +1839,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.6", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1742,7 +1849,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ "generic-array 0.14.6", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1806,6 +1913,16 @@ dependencies = [ "cipher 0.4.4", ] +[[package]] +name = "ctrlc" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e" +dependencies = [ + "nix 0.26.2", + "windows-sys 0.48.0", +] + [[package]] name = "cty" version = "0.2.2" @@ -1821,7 +1938,7 @@ dependencies = [ "byteorder", "digest 0.8.1", "rand_core 0.5.1", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -1834,7 +1951,7 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -1848,7 +1965,7 @@ dependencies = [ "fiat-crypto", "packed_simd_2", "platforms", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -2381,7 +2498,7 @@ dependencies = [ "serde", "sha-1 0.10.0", "sha2 0.10.6", - "sha3", + "sha3 0.10.6", "signature", "tokio", "typenum", @@ -2698,7 +2815,7 @@ dependencies = [ "block-buffer 0.10.3", "const-oid", "crypto-common", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -2767,6 +2884,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[package]] +name = "divrem" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9f8914dcb99891bdfee82536bbff8d9aa612b0dbe83872afbc66902bdec0b9" + [[package]] name = "dlopen" version = "0.1.8" @@ -2943,7 +3066,7 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -3179,7 +3302,7 @@ checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ "bitvec", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -3658,7 +3781,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ - "opaque-debug", + "opaque-debug 0.3.0", "polyval", ] @@ -3729,6 +3852,28 @@ dependencies = [ "winapi", ] +[[package]] +name = "git-version" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899" +dependencies = [ + "git-version-macro", + "proc-macro-hack", +] + +[[package]] +name = "git-version-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" +dependencies = [ + "proc-macro-hack", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "glib" version = "0.15.12" @@ -3805,6 +3950,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gmp-mpfr-sys" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13eabc29d16e4a621b495e3919c71ebb7caaed24380955671e7d417370fea95d" +dependencies = [ + "libc", + "windows-sys 0.42.0", +] + [[package]] name = "gobject-sys" version = "0.15.10" @@ -3916,7 +4071,7 @@ checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ "ff", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -4418,7 +4573,7 @@ dependencies = [ "paste", "serde", "serde_bytes", - "subtle", + "subtle 2.4.1", "tracing", ] @@ -4817,7 +4972,7 @@ dependencies = [ "serde_yaml 0.9.21", "shrinkwraprs", "strum 0.18.0", - "subtle", + "subtle 2.4.1", "subtle-encoding", "thiserror", "tracing", @@ -4843,6 +4998,20 @@ dependencies = [ "winapi", ] +[[package]] +name = "html5ever" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce65ac8028cf5a287a7dbf6c4e0a6cf2dcf022ed5b167a81bae66ebf599a8b7" +dependencies = [ + "log", + "mac", + "markup5ever 0.8.1", + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + [[package]] name = "html5ever" version = "0.25.2" @@ -4851,7 +5020,7 @@ checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" dependencies = [ "log", "mac", - "markup5ever", + "markup5ever 0.10.1", "proc-macro2 1.0.56", "quote 1.0.26", "syn 1.0.103", @@ -5179,7 +5348,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "block-padding", + "block-padding 0.3.3", "generic-array 0.14.6", ] @@ -5725,7 +5894,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" dependencies = [ "cssparser", - "html5ever", + "html5ever 0.25.2", "matches", "selectors", ] @@ -5795,13 +5964,36 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" +[[package]] +name = "lexical" +version = "5.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f404a90a744e32e8be729034fc33b90cf2a56418fbf594d69aa3c0214ad414e5" +dependencies = [ + "cfg-if 1.0.0", + "lexical-core 0.7.6", +] + [[package]] name = "lexical" version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" dependencies = [ - "lexical-core", + "lexical-core 0.8.5", +] + +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec 0.5.2", + "bitflags", + "cfg-if 1.0.0", + "ryu", + "static_assertions", ] [[package]] @@ -6013,7 +6205,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -6282,6 +6474,23 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +[[package]] +name = "markup5ever" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1af46a727284117e09780d05038b1ce6fc9c76cc6df183c3dae5a8955a25e21" +dependencies = [ + "log", + "phf 0.7.24", + "phf_codegen 0.7.24", + "serde", + "serde_derive", + "serde_json", + "string_cache 0.7.5", + "string_cache_codegen 0.4.4", + "tendril", +] + [[package]] name = "markup5ever" version = "0.10.1" @@ -6290,9 +6499,9 @@ checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" dependencies = [ "log", "phf 0.8.0", - "phf_codegen", - "string_cache", - "string_cache_codegen", + "phf_codegen 0.8.0", + "string_cache 0.8.7", + "string_cache_codegen 0.5.2", "tendril", ] @@ -6516,6 +6725,27 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "more-asserts" version = "0.2.2" @@ -6568,7 +6798,7 @@ dependencies = [ "digest 0.10.6", "multihash-derive", "sha2 0.10.6", - "sha3", + "sha3 0.10.6", "unsigned-varint", ] @@ -6773,6 +7003,18 @@ dependencies = [ "memoffset 0.6.5", ] +[[package]] +name = "nix" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "libc", + "static_assertions", +] + [[package]] name = "no-std-compat" version = "0.4.1" @@ -7136,6 +7378,12 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + [[package]] name = "opaque-debug" version = "0.3.0" @@ -7491,7 +7739,7 @@ checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -7502,7 +7750,7 @@ checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -7585,6 +7833,15 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "phf" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" +dependencies = [ + "phf_shared 0.7.24", +] + [[package]] name = "phf" version = "0.8.0" @@ -7596,6 +7853,17 @@ dependencies = [ "proc-macro-hack", ] +[[package]] +name = "phf" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ac8b67553a7ca9457ce0e526948cad581819238f4a9d1ea74545851fa24f37" +dependencies = [ + "phf_macros 0.9.0", + "phf_shared 0.9.0", + "proc-macro-hack", +] + [[package]] name = "phf" version = "0.10.1" @@ -7607,6 +7875,16 @@ dependencies = [ "proc-macro-hack", ] +[[package]] +name = "phf_codegen" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" +dependencies = [ + "phf_generator 0.7.24", + "phf_shared 0.7.24", +] + [[package]] name = "phf_codegen" version = "0.8.0" @@ -7617,6 +7895,16 @@ dependencies = [ "phf_shared 0.8.0", ] +[[package]] +name = "phf_generator" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" +dependencies = [ + "phf_shared 0.7.24", + "rand 0.6.5", +] + [[package]] name = "phf_generator" version = "0.8.0" @@ -7627,6 +7915,16 @@ dependencies = [ "rand 0.7.3", ] +[[package]] +name = "phf_generator" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43f3220d96e0080cc9ea234978ccd80d904eafb17be31bb0f76daaea6493082" +dependencies = [ + "phf_shared 0.9.0", + "rand 0.8.5", +] + [[package]] name = "phf_generator" version = "0.10.0" @@ -7651,6 +7949,20 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "phf_macros" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b706f5936eb50ed880ae3009395b43ed19db5bff2ebd459c95e7bf013a89ab86" +dependencies = [ + "phf_generator 0.9.1", + "phf_shared 0.9.0", + "proc-macro-hack", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "phf_macros" version = "0.10.0" @@ -7665,13 +7977,31 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "phf_shared" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" +dependencies = [ + "siphasher 0.2.3", +] + [[package]] name = "phf_shared" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" dependencies = [ - "siphasher", + "siphasher 0.3.10", +] + +[[package]] +name = "phf_shared" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9" +dependencies = [ + "siphasher 0.3.10", ] [[package]] @@ -7680,7 +8010,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "siphasher", + "siphasher 0.3.10", ] [[package]] @@ -7829,7 +8159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug", + "opaque-debug 0.3.0", "universal-hash", ] @@ -7841,7 +8171,7 @@ checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "opaque-debug", + "opaque-debug 0.3.0", "universal-hash", ] @@ -8474,6 +8804,12 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ref_thread_local" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d813022b2e00774a48eaf43caaa3c20b45f040ba8cbf398e2e8911a06668dbe6" + [[package]] name = "regalloc" version = "0.0.34" @@ -8668,6 +9004,17 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "ripemd160" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad5112e0dbbb87577bfbc56c42450235e3012ce336e29c5befd7807bd626da4a" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + [[package]] name = "rkyv" version = "0.7.41" @@ -8744,6 +9091,15 @@ dependencies = [ "serde_bytes", ] +[[package]] +name = "roxmltree" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5001f134077069d87f77c8b9452b690df2445f7a43f1c7ca4a1af8dd505789d" +dependencies = [ + "xmlparser", +] + [[package]] name = "rpassword" version = "5.0.1" @@ -8782,7 +9138,7 @@ dependencies = [ "rand_core 0.6.4", "signature", "smallvec 1.10.0", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -8796,6 +9152,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "rug" +version = "1.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555e8b44763d034526db899c88cd56ccc4486cd38b444c8aa0e79d4e70ae5a34" +dependencies = [ + "az", + "gmp-mpfr-sys", + "libc", +] + [[package]] name = "rusqlite" version = "0.28.0" @@ -8840,6 +9207,7 @@ dependencies = [ "once_cell", "os_info 3.7.0", "rand 0.8.5", + "scryer-prolog", "secp256k1", "semver 1.0.17", "serde", @@ -8967,6 +9335,30 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +[[package]] +name = "rustyline" +version = "9.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "clipboard-win", + "dirs-next", + "fd-lock", + "libc", + "log", + "memchr", + "nix 0.23.1", + "radix_trie", + "scopeguard", + "smallvec 1.10.0", + "unicode-segmentation", + "unicode-width", + "utf8parse", + "winapi", +] + [[package]] name = "rustyline" version = "10.0.0" @@ -9057,6 +9449,58 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +[[package]] +name = "scryer-prolog" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf815588f19a44886bb9a8b3c5a209c9451fa0d83f7246abd4e74f9be3957c0" +dependencies = [ + "base64 0.12.3", + "blake2 0.8.1", + "chrono", + "cpu-time", + "crossterm 0.20.0", + "crrl", + "ctrlc", + "dirs-next", + "divrem", + "futures", + "fxhash", + "git-version", + "hostname", + "hyper", + "hyper-tls", + "indexmap", + "lazy_static", + "lexical 5.2.2", + "libc", + "modular-bitfield", + "native-tls", + "ordered-float", + "phf 0.9.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "ref_thread_local", + "ring", + "ripemd160", + "roxmltree", + "rug", + "rustyline 9.1.2", + "ryu", + "select", + "sha3 0.8.2", + "smallvec 1.10.0", + "sodiumoxide", + "static_assertions", + "strum 0.23.0", + "strum_macros 0.23.1", + "syn 1.0.103", + "to-syn-value", + "to-syn-value_derive", + "tokio", + "walkdir", +] + [[package]] name = "sct" version = "0.7.0" @@ -9089,7 +9533,7 @@ dependencies = [ "der", "generic-array 0.14.6", "pkcs8", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -9136,6 +9580,16 @@ dependencies = [ "libc", ] +[[package]] +name = "select" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac645958c62108d11f90f8d34e4dc2799c838fc995ed4c2075867a2a8d5be76b" +dependencies = [ + "bit-set", + "html5ever 0.23.0", +] + [[package]] name = "selectors" version = "0.22.0" @@ -9149,7 +9603,7 @@ dependencies = [ "log", "matches", "phf 0.8.0", - "phf_codegen", + "phf_codegen 0.8.0", "precomputed-hash", "servo_arc", "smallvec 1.10.0", @@ -9385,7 +9839,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] @@ -9420,7 +9874,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] @@ -9434,6 +9888,19 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "sha3" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" +dependencies = [ + "block-buffer 0.7.3", + "byte-tools", + "digest 0.8.1", + "keccak", + "opaque-debug 0.2.3", +] + [[package]] name = "sha3" version = "0.10.6" @@ -9497,6 +9964,17 @@ dependencies = [ "signal-hook-registry", ] +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio 0.7.14", + "signal-hook 0.3.15", +] + [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -9546,6 +10024,12 @@ dependencies = [ "time 0.3.17", ] +[[package]] +name = "siphasher" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" + [[package]] name = "siphasher" version = "0.3.10" @@ -9611,6 +10095,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "sodiumoxide" +version = "0.2.7" +source = "git+https://github.com/fayeed/sodiumoxide#0adef01f4e0d5a8dd76bfb5534309259aa8e8ee7" +dependencies = [ + "ed25519", + "libc", + "libsodium-sys-stable", + "serde", +] + [[package]] name = "sodoken" version = "0.0.7" @@ -9786,6 +10281,21 @@ dependencies = [ "tokio", ] +[[package]] +name = "string_cache" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89c058a82f9fd69b1becf8c274f412281038877c553182f1d02eb027045a2d67" +dependencies = [ + "lazy_static", + "new_debug_unreachable", + "phf_shared 0.7.24", + "precomputed-hash", + "serde", + "string_cache_codegen 0.4.4", + "string_cache_shared", +] + [[package]] name = "string_cache" version = "0.8.7" @@ -9800,6 +10310,19 @@ dependencies = [ "serde", ] +[[package]] +name = "string_cache_codegen" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" +dependencies = [ + "phf_generator 0.7.24", + "phf_shared 0.7.24", + "proc-macro2 1.0.56", + "quote 1.0.26", + "string_cache_shared", +] + [[package]] name = "string_cache_codegen" version = "0.5.2" @@ -9812,6 +10335,12 @@ dependencies = [ "quote 1.0.26", ] +[[package]] +name = "string_cache_shared" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" + [[package]] name = "string_enum" version = "0.3.4" @@ -9882,6 +10411,12 @@ dependencies = [ "strum_macros 0.22.0", ] +[[package]] +name = "strum" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" + [[package]] name = "strum_macros" version = "0.18.0" @@ -9906,6 +10441,19 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "strum_macros" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +dependencies = [ + "heck 0.3.3", + "proc-macro2 1.0.56", + "quote 1.0.26", + "rustversion", + "syn 1.0.103", +] + [[package]] name = "strum_macros" version = "0.24.3" @@ -9929,6 +10477,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + [[package]] name = "subtle" version = "2.4.1" @@ -9953,8 +10507,8 @@ dependencies = [ "once_cell", "rustc-hash", "serde", - "string_cache", - "string_cache_codegen", + "string_cache 0.8.7", + "string_cache_codegen 0.5.2", "triomphe", ] @@ -9975,9 +10529,9 @@ dependencies = [ "once_cell", "rustc-hash", "serde", - "siphasher", + "siphasher 0.3.10", "sourcemap", - "string_cache", + "string_cache 0.8.7", "swc_atoms", "swc_eq_ignore_macros", "swc_visit", @@ -10082,7 +10636,7 @@ checksum = "042435aaeb71c4416cde440323ac9fa2c24121c2ec150f0cb79999c2e6ceffaa" dependencies = [ "either", "enum_kind", - "lexical", + "lexical 6.1.1", "num-bigint", "serde", "smallvec 1.10.0", @@ -10663,7 +11217,7 @@ dependencies = [ "ctor", "glob", "heck 0.4.0", - "html5ever", + "html5ever 0.25.2", "infer", "json-patch", "kuchiki", @@ -10931,6 +11485,27 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +[[package]] +name = "to-syn-value" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45dcb7b4108a4793bdd74aa3714296c6eaf43663edf73fa8625d0d7621e68447" +dependencies = [ + "syn 1.0.103", + "to-syn-value_derive", +] + +[[package]] +name = "to-syn-value_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd4fdec6de01b568c1d3721c9d46a352623c536cd55a8a5acfefb63d1fccccbc" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "tokio" version = "1.25.0" @@ -11490,7 +12065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" dependencies = [ "crypto-common", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -12777,7 +13352,7 @@ dependencies = [ "gio", "glib", "gtk", - "html5ever", + "html5ever 0.25.2", "http", "kuchiki", "libc", @@ -12867,6 +13442,12 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +[[package]] +name = "xmlparser" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" + [[package]] name = "xsalsa20poly1305" version = "0.9.0" @@ -12876,7 +13457,7 @@ dependencies = [ "aead", "poly1305", "salsa20", - "subtle", + "subtle 2.4.1", "zeroize", ] diff --git a/Cargo.toml b/Cargo.toml index fbcaceea9..e9ffe936d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,4 +5,8 @@ members = [ "rust-client", "rust-executor", "ui/src-tauri" -] \ No newline at end of file +] + + +[patch.crates-io] +sodiumoxide = { git = "https://github.com/fayeed/sodiumoxide" } diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 300488353..f1ababd95 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" [lib] name = "rust_executor" -path = "src/lib.rs" +path = "src/lib.rs" [[bin]] name = "rust_executor_bin" @@ -53,4 +53,6 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = "0.1.3" \ No newline at end of file +holochain = "0.1.3" + +scryer-prolog = "0.9.1" From 156a9806ad0ab53fa3356401f08b8e3fd721f56d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Jul 2023 18:27:33 +0100 Subject: [PATCH 381/722] add deno.ts & revert denoPlugins module --- executor/esbuild.ts | 7 ++----- executor/src/deno.ts | 25 +++++++++++++++++++++++++ executor/src/main.ts | 10 +++++----- executor/tsconfig.json | 1 + 4 files changed, 33 insertions(+), 10 deletions(-) create mode 100644 executor/src/deno.ts diff --git a/executor/esbuild.ts b/executor/esbuild.ts index cd1981166..04bf6c3ae 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -1,5 +1,4 @@ import * as esbuild from "https://deno.land/x/esbuild@v0.18.2/mod.js"; -import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.8.1/mod.ts"; function denoAlias(nodeModule) { return { @@ -13,7 +12,7 @@ function denoAlias(nodeModule) { } const result = await esbuild.build({ - entryPoints: ['src/main.ts'], + entryPoints: ['src/deno.ts'], outfile: 'lib/bundle.js', bundle: true, platform: 'node', @@ -76,9 +75,7 @@ const result = await esbuild.build({ return { path: `https://deno.land/std@0.177.0/media_types/mod.ts`, external: true }; }); }, - }, - ...denoPlugins({configPath: "/Users/josh/dev/ad4m/executor/scripts/deno.json"}), - //...denoPlugins() + } ], }); console.log(result.outputFiles); diff --git a/executor/src/deno.ts b/executor/src/deno.ts new file mode 100644 index 000000000..eea230a05 --- /dev/null +++ b/executor/src/deno.ts @@ -0,0 +1,25 @@ +import "https://deno.land/std@0.177.0/node/util.ts"; +import "https://deno.land/std@0.177.0/node/global.ts"; + +const process = globalThis.process; +const Buffer = globalThis.Buffer; +const setImmediate = globalThis.setImmediate; +const clearImmediate = globalThis.clearImmediate; +const __dirname = new URL('.', import.meta.url).pathname; +const __filename = new URL('', import.meta.url).pathname; +globalThis.__dirname = __dirname; +globalThis.__filename = __filename; + +import { init as internalInit } from "./main.ts" +import * as internalPath from "https://deno.land/std@0.177.0/node/path.ts"; +import * as internalOs from "https://deno.land/std@0.177.0/node/os.ts" + +export const init = internalInit +export const path = internalPath +export const os = internalOs + +import "https://deno.land/x/xhr@0.3.0/mod.ts"; + +import { HTMLElement } from "https://esm.sh/linkedom" + +globalThis.HTMLElement = HTMLElement; \ No newline at end of file diff --git a/executor/src/main.ts b/executor/src/main.ts index 51f1adf4a..33991a968 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -1,13 +1,13 @@ -import PerspectivismCore from "./core/PerspectivismCore.ts"; -import create from "./core/PerspectivismCore.ts"; -import { LanguageAlias, CoreConfig, BootstrapFixtures, languageLanguageAlias, agentLanguageAlias, neighbourhoodLanguageAlias, perspectiveLanguageAlias, ad4mExecutorVersion } from "./core/Config.ts" +import PerspectivismCore from "./core/PerspectivismCore"; +import create from "./core/PerspectivismCore"; +import { LanguageAlias, CoreConfig, BootstrapFixtures, languageLanguageAlias, agentLanguageAlias, neighbourhoodLanguageAlias, perspectiveLanguageAlias, ad4mExecutorVersion } from "./core/Config" // Patch Reflect to have missing getOwnPropertyDescriptor() // which should be there in any ES6 runtime but for some reason // is missing on some machines... -import getOwnPropertyDescriptor from './shims/getOwnPropertyDescriptor.ts' +import getOwnPropertyDescriptor from './shims/getOwnPropertyDescriptor' import getPort from 'get-port'; import fs from "fs"; -import { createResolvers } from "./core/graphQL-interface/GraphQL.ts"; +import { createResolvers } from "./core/graphQL-interface/GraphQL"; Reflect.getOwnPropertyDescriptor = getOwnPropertyDescriptor diff --git a/executor/tsconfig.json b/executor/tsconfig.json index 7012f79db..b23913a94 100644 --- a/executor/tsconfig.json +++ b/executor/tsconfig.json @@ -6,6 +6,7 @@ ], "exclude": ["./src/tests/*", "./src/**/*.test.ts", "./src/testsutils/*"], "compilerOptions": { + "allowImportingTsExtensions": true, /* Visit https://aka.ms/tsconfig.json to read more about this file */ /* Basic Options */ From aaa43ffff917a26b035b749a1e12a27f55c848b4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Jul 2023 18:28:03 +0100 Subject: [PATCH 382/722] add missing node:net plugin resolve --- executor/esbuild.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/executor/esbuild.ts b/executor/esbuild.ts index 04bf6c3ae..a826c5fb6 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -22,6 +22,14 @@ const result = await esbuild.build({ charset: 'ascii', legalComments: 'inline', plugins: [ + { + name: `node:net`, + setup(build) { + build.onResolve({ filter: new RegExp(`^node:net$`) }, (args) => { + return { path: path.resolve(`deno_std-0.177.0/node/net.ts`), external: false }; + }); + }, + }, ...[ 'crypto', 'path', 'fs', 'net', 'dns', 'cluster', 'https', 'dgram', 'os', 'tls', 'http', 'url', 'util', 'stream', 'events', 'tty', From 136ecaeb7fe1f920d625eb466c298ab321720c15 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Jul 2023 18:29:40 +0100 Subject: [PATCH 383/722] update esbuild imports & remove deno.json --- executor/esbuild.ts | 1 + executor/scripts/deno.json | 6 ------ 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 executor/scripts/deno.json diff --git a/executor/esbuild.ts b/executor/esbuild.ts index a826c5fb6..d887f0f1f 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -1,4 +1,5 @@ import * as esbuild from "https://deno.land/x/esbuild@v0.18.2/mod.js"; +import * as path from "https://deno.land/std@0.177.0/path/mod.ts"; function denoAlias(nodeModule) { return { diff --git a/executor/scripts/deno.json b/executor/scripts/deno.json deleted file mode 100644 index cfbd2533e..000000000 --- a/executor/scripts/deno.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "imports": { - "@perspect3vism/ad4m": "../../core/lib/index.js", - "get-port": "npm:get-port@5.1.1" - } -} \ No newline at end of file From 7003f2d16c84a3f8e3f52ede578bd99d1e3e7c0d Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 3 Jul 2023 23:47:51 +0530 Subject: [PATCH 384/722] Build process updated to just load files --- executor/esbuild.ts | 92 ++++++++- executor/package.json | 7 +- executor/scripts/customHttpDownloader.js | 73 +++++++ executor/src/deno.ts | 3 +- yarn.lock | 248 +++++++++++++++-------- 5 files changed, 332 insertions(+), 91 deletions(-) create mode 100644 executor/scripts/customHttpDownloader.js diff --git a/executor/esbuild.ts b/executor/esbuild.ts index d887f0f1f..cdf33f6fe 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -1,13 +1,20 @@ import * as esbuild from "https://deno.land/x/esbuild@v0.18.2/mod.js"; import * as path from "https://deno.land/std@0.177.0/path/mod.ts"; +import { loadSource, resolveUrl } from "./scripts/customHttpDownloader.js"; function denoAlias(nodeModule) { return { name: `${nodeModule}-alias`, setup(build) { build.onResolve({ filter: new RegExp(`^${nodeModule}$`) }, (args) => { - return { path: `https://deno.land/std@0.177.0/${nodeModule}/mod.ts`, external: true }; + return { path: `https://deno.land/std@0.177.0/node/${nodeModule}.ts`, namespace: 'imports' }; }); + + build.onResolve({filter: /.*/, namespace: 'imports'}, resolveUrl) + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) }, } } @@ -35,7 +42,7 @@ const result = await esbuild.build({ 'crypto', 'path', 'fs', 'net', 'dns', 'cluster', 'https', 'dgram', 'os', 'tls', 'http', 'url', 'util', 'stream', 'events', 'tty', 'zlib', 'assert', 'buffer', 'constants', 'querystring', 'string_decoder', - 'global', 'process', + 'global', 'process', ].map(denoAlias), { name: `dns-promisis-alias`, @@ -48,9 +55,13 @@ const result = await esbuild.build({ { name: `child_process`, setup(build) { - build.onResolve({ filter: new RegExp(`^child_process$`) }, (args) => { - return { path: `https://deno.land/std@0.177.0/node/child_process.ts`, external: true }; + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/child_process.ts$`) }, (args) => { + return { path: `https://deno.land/std@0.177.0/node/child_process.ts`, namespace: 'imports' }; }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) }, }, { @@ -73,8 +84,12 @@ const result = await esbuild.build({ name: `aloe`, setup(build) { build.onResolve({ filter: new RegExp(`^aloedb-node$`) }, (args) => { - return { path: 'https://deno.land/x/aloedb@0.9.0/mod.ts', external: true }; + return { path: 'https://deno.land/x/aloedb@0.9.0/mod.ts', namespace: 'imports' }; }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) }, }, { @@ -84,7 +99,72 @@ const result = await esbuild.build({ return { path: `https://deno.land/std@0.177.0/media_types/mod.ts`, external: true }; }); }, - } + }, + { + name: "https://deno.land/std@0.177.0/node/util.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/util.ts$`) }, (args) => { + console.log('test', args) + return { path: `https://deno.land/std@0.177.0/node/util.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/std@0.177.0/node/os.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/os.ts$`) }, (args) => { + console.log('test', args) + return { path: `https://deno.land/std@0.177.0/node/os.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/std@0.177.0/node/global.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/global.ts$`) }, (args) => { + console.log('test', args) + return { path: `https://deno.land/std@0.177.0/node/global.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/std@0.177.0/node/path.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/path.ts$`) }, (args) => { + console.log('test', args) + return { path: `https://deno.land/std@0.177.0/node/path.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, + { + name: "https://deno.land/x/xhr@0.3.0/mod.ts", + setup(build) { + build.onResolve({ filter: new RegExp(`^https://deno.land/x/xhr@0.3.0/mod.ts$`) }, (args) => { + console.log('test', args) + return { path: `https://deno.land/x/xhr@0.3.0/mod.ts`, namespace: 'imports' }; + }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) + }, + }, ], }); console.log(result.outputFiles); diff --git a/executor/package.json b/executor/package.json index 1a313a476..0065b784d 100644 --- a/executor/package.json +++ b/executor/package.json @@ -60,7 +60,7 @@ "@types/uuid": "^8.3.1", "chai": "*", "chai-as-promised": "*", - "esbuild": "^0.17.15", + "esbuild": "^0.18.11", "esbuild-plugin-alias": "^0.2.1", "esbuild-plugin-polyfill-node": "^0.2.0", "faker": "^5.1.0", @@ -75,6 +75,7 @@ }, "dependencies": { "@holochain/client": "perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b", + "@msgpack/msgpack": "^2.7.2", "@noble/secp256k1": "^1.7.0", "@perspect3vism/ad4m": "*", "@transmute/did-key-ed25519": "^0.2.1-unstable.29", @@ -92,12 +93,12 @@ "js-yaml": "^4.1.0", "json-stable-stringify": "^1.0.1", "key-encoder": "^2.0.3", + "linkedom": "^0.14.26", "lodash": "^4.17.21", "run-script-os": "^1.1.6", "sha256": "^0.2.0", "sha3": "^2.1.3", "swipl-stdio": "https://github.com/perspect3vism/node-swipl-stdio.git", - "tmp": "^0.2.1", - "@msgpack/msgpack": "^2.7.2" + "tmp": "^0.2.1" } } diff --git a/executor/scripts/customHttpDownloader.js b/executor/scripts/customHttpDownloader.js new file mode 100644 index 000000000..927bafde8 --- /dev/null +++ b/executor/scripts/customHttpDownloader.js @@ -0,0 +1,73 @@ +let setup = ({onResolve, onLoad}) => { + onResolve({filter: /^https:\/\/github.com/}, resolveFile) + onResolve({filter: /.*/, namespace: 'http-fetch'}, resolveUrl) + onLoad({filter: /.*/, namespace: 'http-fetch'}, loadSource) +} + +let resolveFile = ({path}) => { + console.log('wow', path) + return { + path: path, + namespace: 'http-fetch' + } +} + +export let resolveUrl = ({path, importer}) => { + return { + path: new URL(path, importer).href, + namespace: 'imports' + } +} + +export let loadSource = async ({path}) => { + let source; + if (path.includes('perspect3vism')) { + const commit = path.split("#"); + + const url = `${commit[0].replace("https://github.com", "https://raw.githubusercontent.com")}/${commit[1]}/lib/bundle.js` + + path = url; + } + + source = await fetch(path) + + if (!source.ok) { + let message = `GET ${path} failed: status ${source.status}` + throw new Error(message) + } + + let contents = await source.text() + let pattern = /\/\/# sourceMappingURL=(\S+)/ + let match = contents.match(pattern) + if (match) { + let url = new URL(match[1], source.url) + let dataurl = await loadMap(url) + let comment = `//# sourceMappingURL=${dataurl}` + contents = contents.replace(pattern, comment) + } + + + + let {pathname} = new URL(source.url) + let loader = pathname.match(/[^.]+$/)[0] + + loader = loader === 'mjs' ? 'js' : loader + return {contents, loader} +} + +let loadMap = async url => { + let map = await fetch(url) + let type = map.headers.get('content-type').replace(/\s/g, '') + let buffer = await map.arrayBuffer() + let blob = new Blob([buffer], {type}) + let reader = new FileReader() + return new Promise(cb => { + reader.onload = e => cb(e.target.result) + reader.readAsDataURL(blob) + }) +} + +export default { + name: "custom-http-fetch", + setup +}; \ No newline at end of file diff --git a/executor/src/deno.ts b/executor/src/deno.ts index eea230a05..b24d498b5 100644 --- a/executor/src/deno.ts +++ b/executor/src/deno.ts @@ -20,6 +20,7 @@ export const os = internalOs import "https://deno.land/x/xhr@0.3.0/mod.ts"; -import { HTMLElement } from "https://esm.sh/linkedom" +import { HTMLElement } from "linkedom" +// @ts-ignore globalThis.HTMLElement = HTMLElement; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index bfd6fed43..f67ed2781 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1678,6 +1678,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== +"@esbuild/android-arm64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.11.tgz#fa6f0cc7105367cb79cc0a8bf32bf50cb1673e45" + integrity sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw== + "@esbuild/android-arm@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" @@ -1688,46 +1693,91 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== +"@esbuild/android-arm@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.11.tgz#ae84a410696c9f549a15be94eaececb860bacacb" + integrity sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q== + "@esbuild/android-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== +"@esbuild/android-x64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.11.tgz#0e58360bbc789ad0d68174d32ba20e678c2a16b6" + integrity sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw== + "@esbuild/darwin-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== +"@esbuild/darwin-arm64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.11.tgz#fcdcd2ef76ca656540208afdd84f284072f0d1f9" + integrity sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w== + "@esbuild/darwin-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== +"@esbuild/darwin-x64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.11.tgz#c5ac602ec0504a8ff81e876bc8a9811e94d69d37" + integrity sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw== + "@esbuild/freebsd-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== +"@esbuild/freebsd-arm64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.11.tgz#7012fb06ee3e6e0d5560664a65f3fefbcc46db2e" + integrity sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A== + "@esbuild/freebsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== +"@esbuild/freebsd-x64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.11.tgz#c5de1199f70e1f97d5c8fca51afa9bf9a2af5969" + integrity sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q== + "@esbuild/linux-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== +"@esbuild/linux-arm64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.11.tgz#2a6d3a74e0b8b5f294e22b4515b29f76ebd42660" + integrity sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog== + "@esbuild/linux-arm@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== +"@esbuild/linux-arm@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.11.tgz#5175bd61b793b436e4aece6328aa0d9be07751e1" + integrity sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg== + "@esbuild/linux-ia32@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== +"@esbuild/linux-ia32@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.11.tgz#20ee6cfd65a398875f321a485e7b2278e5f6f67b" + integrity sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw== + "@esbuild/linux-loong64@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" @@ -1738,61 +1788,121 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== +"@esbuild/linux-loong64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.11.tgz#8e7b251dede75083bf44508dab5edce3f49d052b" + integrity sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw== + "@esbuild/linux-mips64el@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== +"@esbuild/linux-mips64el@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.11.tgz#a3125eb48538ac4932a9d05089b157f94e443165" + integrity sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg== + "@esbuild/linux-ppc64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== +"@esbuild/linux-ppc64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.11.tgz#842abadb7a0995bd539adee2be4d681b68279499" + integrity sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ== + "@esbuild/linux-riscv64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== +"@esbuild/linux-riscv64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.11.tgz#7ce6e6cee1c72d5b4d2f4f8b6fcccf4a9bea0e28" + integrity sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w== + "@esbuild/linux-s390x@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== +"@esbuild/linux-s390x@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.11.tgz#98fbc794363d02ded07d300df2e535650b297b96" + integrity sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg== + "@esbuild/linux-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== +"@esbuild/linux-x64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.11.tgz#f8458ec8cf74c8274e4cacd00744d8446cac52eb" + integrity sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA== + "@esbuild/netbsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== +"@esbuild/netbsd-x64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.11.tgz#a7b2f991b8293748a7be42eac1c4325faf0c7cca" + integrity sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q== + "@esbuild/openbsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== +"@esbuild/openbsd-x64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.11.tgz#3e50923de84c54008f834221130fd23646072b2f" + integrity sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ== + "@esbuild/sunos-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== +"@esbuild/sunos-x64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.11.tgz#ae47a550b0cd395de03606ecfba03cc96c7c19e2" + integrity sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng== + "@esbuild/win32-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== +"@esbuild/win32-arm64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.11.tgz#05d364582b7862d7fbf4698ef43644f7346dcfcc" + integrity sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg== + "@esbuild/win32-ia32@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== +"@esbuild/win32-ia32@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.11.tgz#a3372095a4a1939da672156a3c104f8ce85ee616" + integrity sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg== + "@esbuild/win32-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== +"@esbuild/win32-x64@0.18.11": + version "0.18.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.11.tgz#6526c7e1b40d5b9f0a222c6b767c22f6fb97aa57" + integrity sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -7700,6 +7810,11 @@ cssom@^0.4.4: resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== + cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" @@ -8441,15 +8556,6 @@ dns-equal@^1.0.0: resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== -dns-over-http-resolver@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9" - integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== - dependencies: - debug "^4.3.1" - native-fetch "^3.0.0" - receptacle "^1.3.2" - dns-packet@^5.2.2: version "5.6.0" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" @@ -8806,11 +8912,6 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -err-code@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" - integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -9086,7 +9187,7 @@ esbuild@^0.15.5: esbuild-windows-64 "0.15.18" esbuild-windows-arm64 "0.15.18" -esbuild@^0.17.15, esbuild@^0.17.5: +esbuild@^0.17.5: version "0.17.19" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== @@ -9114,6 +9215,34 @@ esbuild@^0.17.15, esbuild@^0.17.5: "@esbuild/win32-ia32" "0.17.19" "@esbuild/win32-x64" "0.17.19" +esbuild@^0.18.11: + version "0.18.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.11.tgz#cbf94dc3359d57f600a0dbf281df9b1d1b4a156e" + integrity sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA== + optionalDependencies: + "@esbuild/android-arm" "0.18.11" + "@esbuild/android-arm64" "0.18.11" + "@esbuild/android-x64" "0.18.11" + "@esbuild/darwin-arm64" "0.18.11" + "@esbuild/darwin-x64" "0.18.11" + "@esbuild/freebsd-arm64" "0.18.11" + "@esbuild/freebsd-x64" "0.18.11" + "@esbuild/linux-arm" "0.18.11" + "@esbuild/linux-arm64" "0.18.11" + "@esbuild/linux-ia32" "0.18.11" + "@esbuild/linux-loong64" "0.18.11" + "@esbuild/linux-mips64el" "0.18.11" + "@esbuild/linux-ppc64" "0.18.11" + "@esbuild/linux-riscv64" "0.18.11" + "@esbuild/linux-s390x" "0.18.11" + "@esbuild/linux-x64" "0.18.11" + "@esbuild/netbsd-x64" "0.18.11" + "@esbuild/openbsd-x64" "0.18.11" + "@esbuild/sunos-x64" "0.18.11" + "@esbuild/win32-arm64" "0.18.11" + "@esbuild/win32-ia32" "0.18.11" + "@esbuild/win32-x64" "0.18.11" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -11176,6 +11305,11 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== +html-escaper@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-3.0.3.tgz#4d336674652beb1dcbc29ef6b6ba7f6be6fdfed6" + integrity sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ== + html-minifier-terser@^6.0.2: version "6.1.0" resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" @@ -11660,20 +11794,6 @@ insert-module-globals@^7.2.1: undeclared-identifiers "^1.1.2" xtend "^4.0.0" -interface-datastore@^6.0.2: - version "6.1.1" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" - integrity sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg== - dependencies: - interface-store "^2.0.2" - nanoid "^3.0.2" - uint8arrays "^3.0.0" - -interface-store@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c" - integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== - internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -11700,11 +11820,6 @@ invariant@^2.2.0, invariant@^2.2.2: dependencies: loose-envify "^1.0.0" -ip-regex@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -11715,15 +11830,6 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -ipfs-core-types@0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.1.tgz#53c60f589e4e54c2d566f0c856c2fcf0ea4a5577" - integrity sha512-s5+kXXcjkIdWPHblrE0TyiKxROQdL7zfkVI7FpEEwv5rtHCjpI0I4vKSzziZLLzLXf3a2F1qtscOnlaT0ruWBw== - dependencies: - interface-datastore "^6.0.2" - multiaddr "^10.0.0" - multiformats "^9.5.1" - is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -12016,13 +12122,6 @@ is-interactive@^1.0.0: resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== -is-ip@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" - integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== - dependencies: - ip-regex "^4.0.0" - is-map@^2.0.1, is-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -13727,6 +13826,17 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +linkedom@^0.14.26: + version "0.14.26" + resolved "https://registry.yarnpkg.com/linkedom/-/linkedom-0.14.26.tgz#fd8ddaef1a052e1191fb2e881605a1a001409f3b" + integrity sha512-mK6TrydfFA7phrnp+1j57ycBwFI5bGSW6YXlw9acHoqF+mP/y+FooEYYyniOt5Ot57FSKB3iwmnuQ1UUyNLm5A== + dependencies: + css-select "^5.1.0" + cssom "^0.5.0" + html-escaper "^3.0.3" + htmlparser2 "^8.0.1" + uhyphen "^0.2.0" + listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" @@ -15333,18 +15443,6 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multiaddr@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-10.0.1.tgz#0d15848871370860a4d266bb44d93b3dac5d90ef" - integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg== - dependencies: - dns-over-http-resolver "^1.2.3" - err-code "^3.0.1" - is-ip "^3.1.0" - multiformats "^9.4.5" - uint8arrays "^3.0.0" - varint "^6.0.0" - multicast-dns@^7.2.5: version "7.2.5" resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" @@ -15353,7 +15451,7 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.1: +multiformats@^9.4.2: version "9.9.0" resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== @@ -15382,7 +15480,7 @@ nanoid@3.3.3: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== -nanoid@^3.0.2, nanoid@^3.3.4, nanoid@^3.3.6: +nanoid@^3.3.4, nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== @@ -15404,11 +15502,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -native-fetch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" - integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== - natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -18212,13 +18305,6 @@ reading-time@^1.3.0: resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== -receptacle@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" - integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== - dependencies: - ms "^2.1.1" - recursive-readdir@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" @@ -20853,6 +20939,11 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== +uhyphen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/uhyphen/-/uhyphen-0.2.0.tgz#8fdf0623314486e020a3c00ee5cc7a12fe722b81" + integrity sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA== + uint8arrays@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" @@ -21346,11 +21437,6 @@ value-or-promise@^1.0.12: resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== -varint@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" - integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== - vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" From a81b0fbbeddf99eeae4c04b6ba4e8dc874075272 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Jul 2023 19:24:31 +0100 Subject: [PATCH 385/722] add missing onLoad to esbuild --- executor/esbuild.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/executor/esbuild.ts b/executor/esbuild.ts index cdf33f6fe..29f5550bc 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -50,12 +50,16 @@ const result = await esbuild.build({ build.onResolve({ filter: new RegExp(`^dns/promises$`) }, (args) => { return { path: `https://deno.land/std@0.177.0/node/dns.ts`, external: true }; }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) }, }, { name: `child_process`, setup(build) { - build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/child_process.ts$`) }, (args) => { + build.onResolve({ filter: new RegExp(`^child_process$`) }, (args) => { return { path: `https://deno.land/std@0.177.0/node/child_process.ts`, namespace: 'imports' }; }); @@ -70,6 +74,10 @@ const result = await esbuild.build({ build.onResolve({ filter: new RegExp(`^fs/promises$`) }, (args) => { return { path: `https://deno.land/std@0.177.0/node/fs.ts`, external: true }; }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) }, }, { @@ -78,6 +86,10 @@ const result = await esbuild.build({ build.onResolve({ filter: new RegExp(`^ws$`) }, (args) => { return { path: `https://deno.land/x/websocket@v0.1.4/mod.ts`, external: true }; }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) }, }, { @@ -98,6 +110,10 @@ const result = await esbuild.build({ build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.150.0/media_types/mod.ts$`) }, (args) => { return { path: `https://deno.land/std@0.177.0/media_types/mod.ts`, external: true }; }); + + build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { + return loadSource(args) + }) }, }, { From b2d06629f9ad8c8bb8d1714bd64c3d2815af557a Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 3 Jul 2023 23:56:43 +0530 Subject: [PATCH 386/722] updated ws import --- executor/esbuild.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/executor/esbuild.ts b/executor/esbuild.ts index 29f5550bc..e3576b628 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -83,7 +83,7 @@ const result = await esbuild.build({ { name: `ws-alias`, setup(build) { - build.onResolve({ filter: new RegExp(`^ws$`) }, (args) => { + build.onResolve({ filter: new RegExp(`^https://deno.land/x/websocket@v0.1.4/mod.ts$`) }, (args) => { return { path: `https://deno.land/x/websocket@v0.1.4/mod.ts`, external: true }; }); @@ -172,7 +172,6 @@ const result = await esbuild.build({ name: "https://deno.land/x/xhr@0.3.0/mod.ts", setup(build) { build.onResolve({ filter: new RegExp(`^https://deno.land/x/xhr@0.3.0/mod.ts$`) }, (args) => { - console.log('test', args) return { path: `https://deno.land/x/xhr@0.3.0/mod.ts`, namespace: 'imports' }; }); From 43b13cfe904e66b17015706cad1fd090dddf6ddd Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Jul 2023 21:52:51 +0100 Subject: [PATCH 387/722] fix ws regex esbuild --- executor/esbuild.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executor/esbuild.ts b/executor/esbuild.ts index e3576b628..f16660d33 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -83,8 +83,8 @@ const result = await esbuild.build({ { name: `ws-alias`, setup(build) { - build.onResolve({ filter: new RegExp(`^https://deno.land/x/websocket@v0.1.4/mod.ts$`) }, (args) => { - return { path: `https://deno.land/x/websocket@v0.1.4/mod.ts`, external: true }; + build.onResolve({ filter: new RegExp(`^ws$`) }, (args) => { + return { path: `https://deno.land/x/websocket@v0.1.4/mod.ts`, namespace: 'imports' }; }); build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { From d6883612787725e0e17cdac3c524533ec26175bc Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Jul 2023 21:53:44 +0100 Subject: [PATCH 388/722] remove build logs --- executor/esbuild.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/executor/esbuild.ts b/executor/esbuild.ts index f16660d33..862be4e7f 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -120,7 +120,6 @@ const result = await esbuild.build({ name: "https://deno.land/std@0.177.0/node/util.ts", setup(build) { build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/util.ts$`) }, (args) => { - console.log('test', args) return { path: `https://deno.land/std@0.177.0/node/util.ts`, namespace: 'imports' }; }); @@ -133,7 +132,6 @@ const result = await esbuild.build({ name: "https://deno.land/std@0.177.0/node/os.ts", setup(build) { build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/os.ts$`) }, (args) => { - console.log('test', args) return { path: `https://deno.land/std@0.177.0/node/os.ts`, namespace: 'imports' }; }); @@ -146,7 +144,6 @@ const result = await esbuild.build({ name: "https://deno.land/std@0.177.0/node/global.ts", setup(build) { build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/global.ts$`) }, (args) => { - console.log('test', args) return { path: `https://deno.land/std@0.177.0/node/global.ts`, namespace: 'imports' }; }); @@ -159,7 +156,6 @@ const result = await esbuild.build({ name: "https://deno.land/std@0.177.0/node/path.ts", setup(build) { build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.177.0/node/path.ts$`) }, (args) => { - console.log('test', args) return { path: `https://deno.land/std@0.177.0/node/path.ts`, namespace: 'imports' }; }); From 1226b09a8b7e7ca8a026c6939bd32bc5ded59b82 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 3 Jul 2023 21:54:50 +0100 Subject: [PATCH 389/722] add deno esbuild step to package.json --- executor/package.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/executor/package.json b/executor/package.json index 0065b784d..7de622d08 100644 --- a/executor/package.json +++ b/executor/package.json @@ -16,9 +16,8 @@ "type": "module", "types": "lib/main.d.ts", "scripts": { - "build": "tsc && yarn run bundle", - "bundle": "node scripts/bundle.js", - "run": "node --experimental-specifier-resolution=node lib/main.js", + "build": "deno run --allow-all esbuild.ts", + "bundle": "deno run --allow-all esbuild.ts", "test": "yarn run test-perspective && yarn test-db && yarn run test-prolog && yarn run test-auth-unit", "test-perspective": "ts-mocha -p tsconfig.json --exit src/core/Perspective.test.ts", "test-db": "ts-mocha -p tsconfig.json --exit src/core/db.test.ts", From 2afcc7e9e6d5db7e25ec8472ee2d0e4a3e15fcb7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 11:18:52 +0100 Subject: [PATCH 390/722] bump rust toolchain version to 1.68.2 --- .github/workflows/agent-language-tests.yml | 2 +- .../workflows/direct-message-language-tests.yml | 2 +- .../workflows/file-storage-language-tests.yml | 4 ++-- .github/workflows/integration_cli.yml | 2 +- .github/workflows/integration_js.yml | 2 +- .github/workflows/p-diff-sync-tests.yml | 16 ++++++++-------- .github/workflows/publish.yml | 2 +- .github/workflows/publish_staging.yml | 2 +- .github/workflows/test.yml | 2 +- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index 45f079349..52cc322b9 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index 6d764183d..68a44382f 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index 3747a85bc..ce323bd2d 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -64,7 +64,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/integration_cli.yml b/.github/workflows/integration_cli.yml index dcd43c921..05e9fd5ba 100644 --- a/.github/workflows/integration_cli.yml +++ b/.github/workflows/integration_cli.yml @@ -26,7 +26,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 4edff0daf..ed582322a 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -26,7 +26,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 22edf590c..5d2a7577c 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -55,7 +55,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -93,7 +93,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -131,7 +131,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -169,7 +169,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -208,7 +208,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -246,7 +246,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -284,7 +284,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9f1670138..5326da93d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -57,7 +57,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.63.0 + toolchain: 1.68.2 - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index d08261134..9a0bb633a 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -59,7 +59,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.63.0 + toolchain: 1.68.2 - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2a6832fa7..5aac793dd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -66,7 +66,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.63.0 + toolchain: 1.68.2 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 From 5d212e448c27facf7183018d3500ed3a12750306 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 11:33:34 +0100 Subject: [PATCH 391/722] update gitignore and remove deno.js --- executor/.gitignore | 5 +---- executor/lib/deno.js | 27 --------------------------- 2 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 executor/lib/deno.js diff --git a/executor/.gitignore b/executor/.gitignore index 52c010137..67f55d65a 100644 --- a/executor/.gitignore +++ b/executor/.gitignore @@ -1,6 +1,3 @@ tst-tmp temp - -AloeDB-0.9.0 -linkedom -xhr \ No newline at end of file +lib \ No newline at end of file diff --git a/executor/lib/deno.js b/executor/lib/deno.js deleted file mode 100644 index a85280216..000000000 --- a/executor/lib/deno.js +++ /dev/null @@ -1,27 +0,0 @@ - -import "https://deno.land/std@0.177.0/node/util.ts"; -import "https://deno.land/std@0.177.0/node/global.ts"; -const process = globalThis.process; -const Buffer = globalThis.Buffer; -const setImmediate = globalThis.setImmediate; -const clearImmediate = globalThis.clearImmediate; - -const __dirname = new URL('.', import.meta.url).pathname; -const __filename = new URL('', import.meta.url).pathname; - -globalThis.__dirname = __dirname; -globalThis.__filename = __filename; - -import { init as internalInit } from "./main.js" -import * as internalPath from "https://deno.land/std@0.177.0/node/path.ts"; -import * as internalOs from "https://deno.land/std@0.177.0/node/os.ts" - -export const init = internalInit -export const path = internalPath -export const os = internalOs - -import "https://deno.land/x/xhr@0.3.0/mod.ts"; - -import { HTMLElement } from "https://esm.sh/linkedom" - -globalThis.HTMLElement = HTMLElement; From 78a5a1c1e37ba97867fa5c99767166229ce92b60 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 11:54:44 +0100 Subject: [PATCH 392/722] force parallel compilation of languages --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index edbff5471..c70401d74 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ ], "private": true, "scripts": { - "build": "turbo run build", + "build": "turbo run build-languages --concurrency=1 && turbo run build-libs", + "build-no-cache": "turbo run build-languages --concurrency=1 --force && turbo run build-libs --force", "build-libs": "turbo run build-libs", "dev": "turbo run dev --parallel", "serve": "turbo run serve", From 2dda81e5e07df27f8383dc4daed35254d089ea2d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 12:48:07 +0100 Subject: [PATCH 393/722] remove scryer-prolog for now --- Cargo.lock | 690 ++++----------------------------------- rust-executor/Cargo.toml | 2 - 2 files changed, 57 insertions(+), 635 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c37f57b32..4dd057155 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,7 +26,7 @@ dependencies = [ "rand 0.8.5", "regex", "rust-executor", - "rustyline 10.0.0", + "rustyline", "serde", "serde_json", "syntect", @@ -51,7 +51,7 @@ dependencies = [ "rand 0.8.5", "regex", "reqwest", - "rustyline 10.0.0", + "rustyline", "serde", "serde_json", "tokio", @@ -125,7 +125,7 @@ dependencies = [ "cfg-if 1.0.0", "cipher 0.3.0", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -150,7 +150,7 @@ dependencies = [ "cipher 0.4.4", "ctr", "ghash", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -261,7 +261,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95c2fcf79ad1932ac6269a738109997a83c227c09b75842ae564dc8ede6a861c" dependencies = [ "base64ct", - "blake2 0.10.6", + "blake2", "password-hash 0.5.0", ] @@ -598,12 +598,6 @@ dependencies = [ "shrinkwraprs", ] -[[package]] -name = "az" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" - [[package]] name = "backtrace" version = "0.3.66" @@ -631,12 +625,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - [[package]] name = "base64" version = "0.13.1" @@ -725,18 +713,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "blake2" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" -dependencies = [ - "byte-tools", - "crypto-mac 0.7.0", - "digest 0.8.1", - "opaque-debug 0.2.3", -] - [[package]] name = "blake2" version = "0.10.6" @@ -798,18 +774,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding 0.1.5", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -834,15 +798,6 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e2211b0817f061502a8dd9f11a37e879e79763e3c698d2418cf824d8cb2f21e" -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - [[package]] name = "block-padding" version = "0.3.3" @@ -875,7 +830,7 @@ checksum = "8129c0ab340c1b0caf6dbc587e814d04ba811e336dcf8fc268c04e047428ebb0" dependencies = [ "bit-vec", "getrandom 0.2.8", - "siphasher 0.3.10", + "siphasher", ] [[package]] @@ -891,7 +846,7 @@ dependencies = [ "pairing", "rand_core 0.6.4", "serde", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -961,12 +916,6 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - [[package]] name = "bytecheck" version = "0.6.10" @@ -1422,7 +1371,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a27e4532f26f510c24bb8477d963c0c3ef27e293c3b2c507cccb0536d493201a" dependencies = [ - "crossterm 0.19.0", + "crossterm", ] [[package]] @@ -1585,16 +1534,6 @@ dependencies = [ "windows-sys 0.33.0", ] -[[package]] -name = "cpu-time" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "cpufeatures" version = "0.2.5" @@ -1739,7 +1678,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c36c10130df424b2f3552fcc2ddcd9b28a27b1e54b358b45874f88d1ca6888c" dependencies = [ "bitflags", - "crossterm_winapi 0.7.0", + "crossterm_winapi", "lazy_static", "libc", "mio 0.7.14", @@ -1748,22 +1687,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "crossterm" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d" -dependencies = [ - "bitflags", - "crossterm_winapi 0.8.0", - "libc", - "mio 0.7.14", - "parking_lot 0.11.2", - "signal-hook 0.3.15", - "signal-hook-mio", - "winapi", -] - [[package]] name = "crossterm_winapi" version = "0.7.0" @@ -1773,26 +1696,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "crossterm_winapi" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" -dependencies = [ - "winapi", -] - -[[package]] -name = "crrl" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2db40892a506901e4e8281f00e42687df82d1d3448cb0289ae9183a60cb42ec1" -dependencies = [ - "blake2 0.10.6", - "rand_core 0.6.4", - "sha2 0.10.6", -] - [[package]] name = "crunchy" version = "0.2.2" @@ -1807,7 +1710,7 @@ checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ "generic-array 0.14.6", "rand_core 0.6.4", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -1822,16 +1725,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" -dependencies = [ - "generic-array 0.12.4", - "subtle 1.0.0", -] - [[package]] name = "crypto-mac" version = "0.8.0" @@ -1839,7 +1732,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.6", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -1849,7 +1742,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ "generic-array 0.14.6", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -1913,16 +1806,6 @@ dependencies = [ "cipher 0.4.4", ] -[[package]] -name = "ctrlc" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e" -dependencies = [ - "nix 0.26.2", - "windows-sys 0.48.0", -] - [[package]] name = "cty" version = "0.2.2" @@ -1938,7 +1821,7 @@ dependencies = [ "byteorder", "digest 0.8.1", "rand_core 0.5.1", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -1951,7 +1834,7 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -1965,7 +1848,7 @@ dependencies = [ "fiat-crypto", "packed_simd_2", "platforms", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -2498,7 +2381,7 @@ dependencies = [ "serde", "sha-1 0.10.0", "sha2 0.10.6", - "sha3 0.10.6", + "sha3", "signature", "tokio", "typenum", @@ -2815,7 +2698,7 @@ dependencies = [ "block-buffer 0.10.3", "const-oid", "crypto-common", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -2884,12 +2767,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" -[[package]] -name = "divrem" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9f8914dcb99891bdfee82536bbff8d9aa612b0dbe83872afbc66902bdec0b9" - [[package]] name = "dlopen" version = "0.1.8" @@ -3066,7 +2943,7 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -3302,7 +3179,7 @@ checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ "bitvec", "rand_core 0.6.4", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -3781,7 +3658,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug", "polyval", ] @@ -3852,28 +3729,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "git-version" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899" -dependencies = [ - "git-version-macro", - "proc-macro-hack", -] - -[[package]] -name = "git-version-macro" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" -dependencies = [ - "proc-macro-hack", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", -] - [[package]] name = "glib" version = "0.15.12" @@ -3950,16 +3805,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "gmp-mpfr-sys" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13eabc29d16e4a621b495e3919c71ebb7caaed24380955671e7d417370fea95d" -dependencies = [ - "libc", - "windows-sys 0.42.0", -] - [[package]] name = "gobject-sys" version = "0.15.10" @@ -4071,7 +3916,7 @@ checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ "ff", "rand_core 0.6.4", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -4573,7 +4418,7 @@ dependencies = [ "paste", "serde", "serde_bytes", - "subtle 2.4.1", + "subtle", "tracing", ] @@ -4972,7 +4817,7 @@ dependencies = [ "serde_yaml 0.9.21", "shrinkwraprs", "strum 0.18.0", - "subtle 2.4.1", + "subtle", "subtle-encoding", "thiserror", "tracing", @@ -4998,20 +4843,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "html5ever" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce65ac8028cf5a287a7dbf6c4e0a6cf2dcf022ed5b167a81bae66ebf599a8b7" -dependencies = [ - "log", - "mac", - "markup5ever 0.8.1", - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - [[package]] name = "html5ever" version = "0.25.2" @@ -5020,7 +4851,7 @@ checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" dependencies = [ "log", "mac", - "markup5ever 0.10.1", + "markup5ever", "proc-macro2 1.0.56", "quote 1.0.26", "syn 1.0.103", @@ -5348,7 +5179,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "block-padding 0.3.3", + "block-padding", "generic-array 0.14.6", ] @@ -5894,7 +5725,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" dependencies = [ "cssparser", - "html5ever 0.25.2", + "html5ever", "matches", "selectors", ] @@ -5964,36 +5795,13 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" -[[package]] -name = "lexical" -version = "5.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f404a90a744e32e8be729034fc33b90cf2a56418fbf594d69aa3c0214ad414e5" -dependencies = [ - "cfg-if 1.0.0", - "lexical-core 0.7.6", -] - [[package]] name = "lexical" version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" dependencies = [ - "lexical-core 0.8.5", -] - -[[package]] -name = "lexical-core" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" -dependencies = [ - "arrayvec 0.5.2", - "bitflags", - "cfg-if 1.0.0", - "ryu", - "static_assertions", + "lexical-core", ] [[package]] @@ -6205,7 +6013,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -6474,23 +6282,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" -[[package]] -name = "markup5ever" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1af46a727284117e09780d05038b1ce6fc9c76cc6df183c3dae5a8955a25e21" -dependencies = [ - "log", - "phf 0.7.24", - "phf_codegen 0.7.24", - "serde", - "serde_derive", - "serde_json", - "string_cache 0.7.5", - "string_cache_codegen 0.4.4", - "tendril", -] - [[package]] name = "markup5ever" version = "0.10.1" @@ -6499,9 +6290,9 @@ checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" dependencies = [ "log", "phf 0.8.0", - "phf_codegen 0.8.0", - "string_cache 0.8.7", - "string_cache_codegen 0.5.2", + "phf_codegen", + "string_cache", + "string_cache_codegen", "tendril", ] @@ -6725,27 +6516,6 @@ dependencies = [ "syn 1.0.103", ] -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", -] - [[package]] name = "more-asserts" version = "0.2.2" @@ -6798,7 +6568,7 @@ dependencies = [ "digest 0.10.6", "multihash-derive", "sha2 0.10.6", - "sha3 0.10.6", + "sha3", "unsigned-varint", ] @@ -7003,18 +6773,6 @@ dependencies = [ "memoffset 0.6.5", ] -[[package]] -name = "nix" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" -dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "libc", - "static_assertions", -] - [[package]] name = "no-std-compat" version = "0.4.1" @@ -7378,12 +7136,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - [[package]] name = "opaque-debug" version = "0.3.0" @@ -7739,7 +7491,7 @@ checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -7750,7 +7502,7 @@ checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -7833,15 +7585,6 @@ dependencies = [ "ucd-trie", ] -[[package]] -name = "phf" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" -dependencies = [ - "phf_shared 0.7.24", -] - [[package]] name = "phf" version = "0.8.0" @@ -7853,17 +7596,6 @@ dependencies = [ "proc-macro-hack", ] -[[package]] -name = "phf" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ac8b67553a7ca9457ce0e526948cad581819238f4a9d1ea74545851fa24f37" -dependencies = [ - "phf_macros 0.9.0", - "phf_shared 0.9.0", - "proc-macro-hack", -] - [[package]] name = "phf" version = "0.10.1" @@ -7875,16 +7607,6 @@ dependencies = [ "proc-macro-hack", ] -[[package]] -name = "phf_codegen" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" -dependencies = [ - "phf_generator 0.7.24", - "phf_shared 0.7.24", -] - [[package]] name = "phf_codegen" version = "0.8.0" @@ -7895,16 +7617,6 @@ dependencies = [ "phf_shared 0.8.0", ] -[[package]] -name = "phf_generator" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" -dependencies = [ - "phf_shared 0.7.24", - "rand 0.6.5", -] - [[package]] name = "phf_generator" version = "0.8.0" @@ -7915,16 +7627,6 @@ dependencies = [ "rand 0.7.3", ] -[[package]] -name = "phf_generator" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43f3220d96e0080cc9ea234978ccd80d904eafb17be31bb0f76daaea6493082" -dependencies = [ - "phf_shared 0.9.0", - "rand 0.8.5", -] - [[package]] name = "phf_generator" version = "0.10.0" @@ -7949,20 +7651,6 @@ dependencies = [ "syn 1.0.103", ] -[[package]] -name = "phf_macros" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b706f5936eb50ed880ae3009395b43ed19db5bff2ebd459c95e7bf013a89ab86" -dependencies = [ - "phf_generator 0.9.1", - "phf_shared 0.9.0", - "proc-macro-hack", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", -] - [[package]] name = "phf_macros" version = "0.10.0" @@ -7977,31 +7665,13 @@ dependencies = [ "syn 1.0.103", ] -[[package]] -name = "phf_shared" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" -dependencies = [ - "siphasher 0.2.3", -] - [[package]] name = "phf_shared" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" dependencies = [ - "siphasher 0.3.10", -] - -[[package]] -name = "phf_shared" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9" -dependencies = [ - "siphasher 0.3.10", + "siphasher", ] [[package]] @@ -8010,7 +7680,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "siphasher 0.3.10", + "siphasher", ] [[package]] @@ -8159,7 +7829,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug", "universal-hash", ] @@ -8171,7 +7841,7 @@ checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug", "universal-hash", ] @@ -8804,12 +8474,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "ref_thread_local" -version = "0.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d813022b2e00774a48eaf43caaa3c20b45f040ba8cbf398e2e8911a06668dbe6" - [[package]] name = "regalloc" version = "0.0.34" @@ -9004,17 +8668,6 @@ dependencies = [ "digest 0.10.6", ] -[[package]] -name = "ripemd160" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad5112e0dbbb87577bfbc56c42450235e3012ce336e29c5befd7807bd626da4a" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "opaque-debug 0.2.3", -] - [[package]] name = "rkyv" version = "0.7.41" @@ -9091,15 +8744,6 @@ dependencies = [ "serde_bytes", ] -[[package]] -name = "roxmltree" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5001f134077069d87f77c8b9452b690df2445f7a43f1c7ca4a1af8dd505789d" -dependencies = [ - "xmlparser", -] - [[package]] name = "rpassword" version = "5.0.1" @@ -9138,7 +8782,7 @@ dependencies = [ "rand_core 0.6.4", "signature", "smallvec 1.10.0", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -9152,17 +8796,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "rug" -version = "1.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555e8b44763d034526db899c88cd56ccc4486cd38b444c8aa0e79d4e70ae5a34" -dependencies = [ - "az", - "gmp-mpfr-sys", - "libc", -] - [[package]] name = "rusqlite" version = "0.28.0" @@ -9207,7 +8840,6 @@ dependencies = [ "once_cell", "os_info 3.7.0", "rand 0.8.5", - "scryer-prolog", "secp256k1", "semver 1.0.17", "serde", @@ -9335,30 +8967,6 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" -[[package]] -name = "rustyline" -version = "9.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039" -dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "clipboard-win", - "dirs-next", - "fd-lock", - "libc", - "log", - "memchr", - "nix 0.23.1", - "radix_trie", - "scopeguard", - "smallvec 1.10.0", - "unicode-segmentation", - "unicode-width", - "utf8parse", - "winapi", -] - [[package]] name = "rustyline" version = "10.0.0" @@ -9449,58 +9057,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" -[[package]] -name = "scryer-prolog" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf815588f19a44886bb9a8b3c5a209c9451fa0d83f7246abd4e74f9be3957c0" -dependencies = [ - "base64 0.12.3", - "blake2 0.8.1", - "chrono", - "cpu-time", - "crossterm 0.20.0", - "crrl", - "ctrlc", - "dirs-next", - "divrem", - "futures", - "fxhash", - "git-version", - "hostname", - "hyper", - "hyper-tls", - "indexmap", - "lazy_static", - "lexical 5.2.2", - "libc", - "modular-bitfield", - "native-tls", - "ordered-float", - "phf 0.9.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "ref_thread_local", - "ring", - "ripemd160", - "roxmltree", - "rug", - "rustyline 9.1.2", - "ryu", - "select", - "sha3 0.8.2", - "smallvec 1.10.0", - "sodiumoxide", - "static_assertions", - "strum 0.23.0", - "strum_macros 0.23.1", - "syn 1.0.103", - "to-syn-value", - "to-syn-value_derive", - "tokio", - "walkdir", -] - [[package]] name = "sct" version = "0.7.0" @@ -9533,7 +9089,7 @@ dependencies = [ "der", "generic-array 0.14.6", "pkcs8", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -9580,16 +9136,6 @@ dependencies = [ "libc", ] -[[package]] -name = "select" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac645958c62108d11f90f8d34e4dc2799c838fc995ed4c2075867a2a8d5be76b" -dependencies = [ - "bit-set", - "html5ever 0.23.0", -] - [[package]] name = "selectors" version = "0.22.0" @@ -9603,7 +9149,7 @@ dependencies = [ "log", "matches", "phf 0.8.0", - "phf_codegen 0.8.0", + "phf_codegen", "precomputed-hash", "servo_arc", "smallvec 1.10.0", @@ -9839,7 +9385,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -9874,7 +9420,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -9888,19 +9434,6 @@ dependencies = [ "digest 0.10.6", ] -[[package]] -name = "sha3" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" -dependencies = [ - "block-buffer 0.7.3", - "byte-tools", - "digest 0.8.1", - "keccak", - "opaque-debug 0.2.3", -] - [[package]] name = "sha3" version = "0.10.6" @@ -9964,17 +9497,6 @@ dependencies = [ "signal-hook-registry", ] -[[package]] -name = "signal-hook-mio" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" -dependencies = [ - "libc", - "mio 0.7.14", - "signal-hook 0.3.15", -] - [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -10024,12 +9546,6 @@ dependencies = [ "time 0.3.17", ] -[[package]] -name = "siphasher" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" - [[package]] name = "siphasher" version = "0.3.10" @@ -10095,17 +9611,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "sodiumoxide" -version = "0.2.7" -source = "git+https://github.com/fayeed/sodiumoxide#0adef01f4e0d5a8dd76bfb5534309259aa8e8ee7" -dependencies = [ - "ed25519", - "libc", - "libsodium-sys-stable", - "serde", -] - [[package]] name = "sodoken" version = "0.0.7" @@ -10281,21 +9786,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "string_cache" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89c058a82f9fd69b1becf8c274f412281038877c553182f1d02eb027045a2d67" -dependencies = [ - "lazy_static", - "new_debug_unreachable", - "phf_shared 0.7.24", - "precomputed-hash", - "serde", - "string_cache_codegen 0.4.4", - "string_cache_shared", -] - [[package]] name = "string_cache" version = "0.8.7" @@ -10310,19 +9800,6 @@ dependencies = [ "serde", ] -[[package]] -name = "string_cache_codegen" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" -dependencies = [ - "phf_generator 0.7.24", - "phf_shared 0.7.24", - "proc-macro2 1.0.56", - "quote 1.0.26", - "string_cache_shared", -] - [[package]] name = "string_cache_codegen" version = "0.5.2" @@ -10335,12 +9812,6 @@ dependencies = [ "quote 1.0.26", ] -[[package]] -name = "string_cache_shared" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" - [[package]] name = "string_enum" version = "0.3.4" @@ -10411,12 +9882,6 @@ dependencies = [ "strum_macros 0.22.0", ] -[[package]] -name = "strum" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" - [[package]] name = "strum_macros" version = "0.18.0" @@ -10441,19 +9906,6 @@ dependencies = [ "syn 1.0.103", ] -[[package]] -name = "strum_macros" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" -dependencies = [ - "heck 0.3.3", - "proc-macro2 1.0.56", - "quote 1.0.26", - "rustversion", - "syn 1.0.103", -] - [[package]] name = "strum_macros" version = "0.24.3" @@ -10477,12 +9929,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "subtle" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" - [[package]] name = "subtle" version = "2.4.1" @@ -10507,8 +9953,8 @@ dependencies = [ "once_cell", "rustc-hash", "serde", - "string_cache 0.8.7", - "string_cache_codegen 0.5.2", + "string_cache", + "string_cache_codegen", "triomphe", ] @@ -10529,9 +9975,9 @@ dependencies = [ "once_cell", "rustc-hash", "serde", - "siphasher 0.3.10", + "siphasher", "sourcemap", - "string_cache 0.8.7", + "string_cache", "swc_atoms", "swc_eq_ignore_macros", "swc_visit", @@ -10636,7 +10082,7 @@ checksum = "042435aaeb71c4416cde440323ac9fa2c24121c2ec150f0cb79999c2e6ceffaa" dependencies = [ "either", "enum_kind", - "lexical 6.1.1", + "lexical", "num-bigint", "serde", "smallvec 1.10.0", @@ -11217,7 +10663,7 @@ dependencies = [ "ctor", "glob", "heck 0.4.0", - "html5ever 0.25.2", + "html5ever", "infer", "json-patch", "kuchiki", @@ -11485,27 +10931,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" -[[package]] -name = "to-syn-value" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45dcb7b4108a4793bdd74aa3714296c6eaf43663edf73fa8625d0d7621e68447" -dependencies = [ - "syn 1.0.103", - "to-syn-value_derive", -] - -[[package]] -name = "to-syn-value_derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd4fdec6de01b568c1d3721c9d46a352623c536cd55a8a5acfefb63d1fccccbc" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", -] - [[package]] name = "tokio" version = "1.25.0" @@ -12065,7 +11490,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" dependencies = [ "crypto-common", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -13352,7 +12777,7 @@ dependencies = [ "gio", "glib", "gtk", - "html5ever 0.25.2", + "html5ever", "http", "kuchiki", "libc", @@ -13442,12 +12867,6 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" -[[package]] -name = "xmlparser" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" - [[package]] name = "xsalsa20poly1305" version = "0.9.0" @@ -13457,7 +12876,7 @@ dependencies = [ "aead", "poly1305", "salsa20", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -13554,3 +12973,8 @@ dependencies = [ "libc", "pkg-config", ] + +[[patch.unused]] +name = "sodiumoxide" +version = "0.2.7" +source = "git+https://github.com/fayeed/sodiumoxide#0adef01f4e0d5a8dd76bfb5534309259aa8e8ee7" diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index f1ababd95..7eaa23b04 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -54,5 +54,3 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" holochain = "0.1.3" - -scryer-prolog = "0.9.1" From af8211d0a5331072dcdc78d7364de2193daf4578 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 12:48:32 +0100 Subject: [PATCH 394/722] delete old bundle file & move customHttpDownloader to better location --- .../{scripts => }/customHttpDownloader.js | 0 executor/esbuild.ts | 2 +- executor/scripts/bundle.js | 109 ------------------ 3 files changed, 1 insertion(+), 110 deletions(-) rename executor/{scripts => }/customHttpDownloader.js (100%) delete mode 100644 executor/scripts/bundle.js diff --git a/executor/scripts/customHttpDownloader.js b/executor/customHttpDownloader.js similarity index 100% rename from executor/scripts/customHttpDownloader.js rename to executor/customHttpDownloader.js diff --git a/executor/esbuild.ts b/executor/esbuild.ts index 862be4e7f..461e8d95f 100644 --- a/executor/esbuild.ts +++ b/executor/esbuild.ts @@ -1,6 +1,6 @@ import * as esbuild from "https://deno.land/x/esbuild@v0.18.2/mod.js"; import * as path from "https://deno.land/std@0.177.0/path/mod.ts"; -import { loadSource, resolveUrl } from "./scripts/customHttpDownloader.js"; +import { loadSource, resolveUrl } from "./customHttpDownloader.js"; function denoAlias(nodeModule) { return { diff --git a/executor/scripts/bundle.js b/executor/scripts/bundle.js deleted file mode 100644 index 98b4a7c7b..000000000 --- a/executor/scripts/bundle.js +++ /dev/null @@ -1,109 +0,0 @@ -import esbuild from 'esbuild' -import { polyfillNodeForDeno } from "esbuild-plugin-polyfill-node"; -import path from 'path' - -function denoAlias(nodeModule) { - return { - name: `${nodeModule}-alias`, - setup(build) { - build.onResolve({ filter: new RegExp(`^${nodeModule}$`) }, (args) => { - return { path: `https://deno.land/std@0.177.0/${nodeModule}/mod.ts`, external: true }; - }); - }, - } -} - -function denoAliasLocal(nodeModule) { - return { - name: `${nodeModule}-alias`, - setup(build) { - build.onResolve({ filter: new RegExp(`^${nodeModule}$`) }, (args) => { - return { path: path.resolve(`deno_std-0.177.0/node/${nodeModule}.ts`), external: false }; - }); - }, - } -} - -function denoAliasNode(nodeModule) { - return { - name: `${nodeModule}-alias`, - setup(build) { - build.onResolve({ filter: new RegExp(`^${nodeModule}$`) }, (args) => { - return { path: `node:${nodeModule}`, external: true }; - }); - }, - } -} - -esbuild - .build({ - entryPoints: ['lib/deno.js'], - outfile: 'lib/bundle.js', - bundle: true, - platform: 'node', - target: 'esnext', - format: 'esm', - globalName: 'executor', - charset: 'ascii', - plugins: [ - { - name: `node:net`, - setup(build) { - build.onResolve({ filter: new RegExp(`^node:net$`) }, (args) => { - return { path: path.resolve(`deno_std-0.177.0/node/net.ts`), external: false }; - }); - }, - }, - ...[ - 'crypto', 'path', 'fs', 'child_process', 'net', 'dns', 'cluster', 'https', - 'dgram', 'os', 'tls', 'http', 'url', 'util', 'stream', 'events', 'tty', - 'zlib', 'assert', 'buffer', 'constants', 'querystring', 'string_decoder', - 'global', 'process', - ].map(denoAliasLocal), - { - name: `dns-promisis-alias`, - setup(build) { - build.onResolve({ filter: new RegExp(`^dns/promises$`) }, (args) => { - return { path: path.resolve(`deno_std-0.177.0/node/dns.ts`), external: false }; - }); - }, - }, - { - name: `fs-promisis-alias`, - setup(build) { - build.onResolve({ filter: new RegExp(`^fs/promises$`) }, (args) => { - return { path: path.resolve(`deno_std-0.177.0/node/fs.ts`), external: false }; - }); - }, - }, - { - name: `ws-alias`, - setup(build) { - build.onResolve({ filter: new RegExp(`^ws$`) }, (args) => { - return { path: path.resolve(`deno-websocket/mod.ts`), external: false }; - }); - }, - }, - { - name: `aloe`, - setup(build) { - build.onResolve({ filter: new RegExp(`^aloedb-node$`) }, (args) => { - return { path: path.resolve(`AloeDB-0.9.0/mod.ts`), external: false }; - }); - }, - }, - { - name: "https://deno.land/std@0.150.0/media_types/mod.ts", - setup(build) { - build.onResolve({ filter: new RegExp(`^https://deno.land/std@0.150.0/media_types/mod.ts$`) }, (args) => { - return { path: path.resolve(`deno_std-0.177.0/media_types/mod.ts`), external: false }; - }); - }, - } - ], - - }) - .catch((error) => { - console.error(error); - process.exit(1); - }); \ No newline at end of file From 8f7ebeffa24c62d0bbf2561894d4835c7131a5b8 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 12:48:45 +0100 Subject: [PATCH 395/722] update .gitignore --- executor/.gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/executor/.gitignore b/executor/.gitignore index 67f55d65a..fafaa3e73 100644 --- a/executor/.gitignore +++ b/executor/.gitignore @@ -1,3 +1,4 @@ tst-tmp temp -lib \ No newline at end of file +lib +!customHttpDownloader.js \ No newline at end of file From 3cdd197f86474c01d80800757f9c1696927f778e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 12:49:34 +0100 Subject: [PATCH 396/722] remove swipl writting from init --- rust-executor/src/globals.rs | 5 +---- rust-executor/src/init.rs | 11 +---------- rust-executor/src/utils.rs | 35 ----------------------------------- 3 files changed, 2 insertions(+), 49 deletions(-) diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index f0c6b3890..b0c38355f 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -23,7 +23,4 @@ lazy_static! { pub const MAINNET_JSON: &str = include_str!("mainnet_seed.json"); /// Binary data of hc binary, included at buildtime from the hc binary -pub const HC_BIN: &[u8] = include_bytes!("../temp/hc"); - -/// Binary data of swipl binary, included at buildtime from the swipl binary -pub const SWIPL_ZIP: &[u8] = include_bytes!("../temp/swipl.zip"); +pub const HC_BIN: &[u8] = include_bytes!("../temp/binary/hc"); diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 2a41b913e..a943e6623 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -6,8 +6,7 @@ use std::os::unix::fs::PermissionsExt; use std::path::{Path, PathBuf}; use super::utils::ad4m_data_directory; -use crate::globals::{AD4M_VERSION, HC_BIN, MAINNET_JSON, OLDEST_VERSION, SWIPL_ZIP}; -use crate::utils::write_zip; +use crate::globals::{AD4M_VERSION, HC_BIN, MAINNET_JSON, OLDEST_VERSION}; /// Sets up the ad4m data directory and config files ready for the executor to consume pub fn init( @@ -77,14 +76,6 @@ pub fn init( fs::write(&hc_target, hc_data)?; fs::set_permissions(hc_target, fs::Permissions::from_mode(0o755))?; - info!("write swipl target"); - write_zip(SWIPL_ZIP.to_vec(), app_data_path.clone()); - - fs::set_permissions( - app_data_path.join("swipl").join("bin").join("swipl"), - fs::Permissions::from_mode(0o755), - )?; - Ok(()) } diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs index dd696169c..302a93653 100644 --- a/rust-executor/src/utils.rs +++ b/rust-executor/src/utils.rs @@ -1,8 +1,5 @@ use std::env::var_os; -use std::fs::File; -use std::io::{Cursor, Read, Write}; use std::path::{Path, PathBuf}; -use zip::ZipArchive; pub(crate) fn ad4m_data_directory() -> PathBuf { let mut ad4m_dir = var_os("HOME") @@ -12,35 +9,3 @@ pub(crate) fn ad4m_data_directory() -> PathBuf { ad4m_dir.push_str("/.ad4m"); Path::new(&ad4m_dir).to_path_buf() } - -pub(crate) fn write_zip(zip_data: Vec, target_path: PathBuf) { - // Read the zip archive from the byte data - let reader = Cursor::new(zip_data); - let mut archive = ZipArchive::new(reader).unwrap(); - - // Extract the files from the zip archive - for i in 0..archive.len() { - let mut file = archive.by_index(i).unwrap(); - let mut outpath = target_path.clone(); - #[allow(deprecated)] - outpath.push(file.sanitized_name()); - - if file.is_dir() { - // Create the directory if it doesn't exist - std::fs::create_dir_all(&outpath).unwrap(); - } else { - // Create the parent directory if it doesn't exist - if let Some(parent) = outpath.parent() { - if !parent.exists() { - std::fs::create_dir_all(&parent).unwrap(); - } - } - - // Write the file's contents - let mut outfile = File::create(&outpath).unwrap(); - let mut buffer = Vec::new(); - file.read_to_end(&mut buffer).unwrap(); - outfile.write_all(&buffer).unwrap(); - } - } -} From 108fb444fac95081a03c48677e14877a430d725d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 12:49:57 +0100 Subject: [PATCH 397/722] fix up downloaded binaries directory to rust-executor not executor --- download-binaries-linux.sh | 10 +++++----- download-binaries-macos.sh | 10 +++++----- download-binaries-windows.ps1 | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/download-binaries-linux.sh b/download-binaries-linux.sh index 4142893d4..6359d8828 100755 --- a/download-binaries-linux.sh +++ b/download-binaries-linux.sh @@ -1,13 +1,13 @@ #!/bin/bash -[ ! -d "./executor/temp/binary" ] && mkdir -p "./executor/temp/binary" +[ ! -d "./rust-executor/temp/binary" ] && mkdir -p "./rust-executor/temp/binary" -if [ ! -f "./executor/temp/binary/hc" ]; then +if [ ! -f "./rust-executor/temp/binary/hc" ]; then wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 - mv hc-linux-0.1.0 ./executor/temp/binary/hc - chmod +x ./executor/temp/binary/hc + mv hc-linux-0.1.0 ./rust-executor/temp/binary/hc + chmod +x ./rust-executor/temp/binary/hc if [ ! -f "/usr/local/bin/hc" ]; then echo "Copying hc to /usr/local/bin" - cp ./executor/temp/binary/hc /usr/local/bin/hc + cp ./rust-executor/temp/binary/hc /usr/local/bin/hc fi fi diff --git a/download-binaries-macos.sh b/download-binaries-macos.sh index 758917e2d..361e3ee1e 100755 --- a/download-binaries-macos.sh +++ b/download-binaries-macos.sh @@ -1,14 +1,14 @@ #!/bin/bash -[ ! -d "./executor/temp/binary" ] && mkdir -p "./executor/temp/binary" +[ ! -d "./rust-executor/temp/binary" ] && mkdir -p "./rust-executor/temp/binary" -if [ ! -f "./executor/temp/binary/hc" ]; then +if [ ! -f "./rust-executor/temp/binary/hc" ]; then wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-darwin-0.1.0 - mv hc-darwin-0.1.0 ./executor/temp/binary/hc - chmod +x ./executor/temp/binary/hc + mv hc-darwin-0.1.0 ./rust-executor/temp/binary/hc + chmod +x ./rust-executor/temp/binary/hc if [ ! -f "/usr/local/bin/hc" ]; then echo "Copying hc to /usr/local/bin" - cp ./executor/temp/binary/hc /usr/local/bin/hc + cp ./rust-executor/temp/binary/hc /usr/local/bin/hc fi fi diff --git a/download-binaries-windows.ps1 b/download-binaries-windows.ps1 index 4a0a0d3e4..058e52989 100644 --- a/download-binaries-windows.ps1 +++ b/download-binaries-windows.ps1 @@ -1,4 +1,4 @@ -mkdir executor/temp/binary +mkdir rust-executor/temp/binary wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./executor/temp/binary/hc.exe @@ -11,4 +11,4 @@ if (-not (Test-Path $global_path -PathType Container)) { exit 1 } -Copy-Item ./executor/temp/binary/hc.exe $global_path \ No newline at end of file +Copy-Item ./rust-executor/temp/binary/hc.exe $global_path \ No newline at end of file From f810a2632b464c6d9aad0069279171167bc998a5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 13:05:50 +0100 Subject: [PATCH 398/722] fix windows hc binary downloading --- download-binaries-windows.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/download-binaries-windows.ps1 b/download-binaries-windows.ps1 index 058e52989..8179166d8 100644 --- a/download-binaries-windows.ps1 +++ b/download-binaries-windows.ps1 @@ -1,6 +1,6 @@ mkdir rust-executor/temp/binary -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./executor/temp/binary/hc.exe +wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./rust-executor/temp/binary/hc.exe # Global path where the binary should be copied to $global_path = "C:\Windows\System32\" From e6d4ad0de3c79ebb6af4d06818889b081f3d9b7b Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 16:23:03 +0100 Subject: [PATCH 399/722] add util for getting pubSub so unit tests can still be ran against js code --- executor/src/core/LanguageController.ts | 33 ++++++++++--------- executor/src/core/Perspective.ts | 21 +++++++----- executor/src/core/PerspectivesController.ts | 19 ++++++----- executor/src/core/PerspectivismCore.ts | 8 ++--- executor/src/core/agent/AgentService.ts | 2 +- .../src/core/graphQL-interface/GraphQL.ts | 10 +++--- .../{PubSub.ts => SubscriptionDefinitions.ts} | 10 +----- executor/src/core/utils.ts | 13 ++++++++ 8 files changed, 65 insertions(+), 51 deletions(-) rename executor/src/core/graphQL-interface/{PubSub.ts => SubscriptionDefinitions.ts} (84%) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 5658e91cd..2ba9814a1 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -10,13 +10,14 @@ import path from 'path' import * as Config from './Config' import type HolochainService from './storage-services/Holochain/HolochainService'; import type AgentService from './agent/AgentService' -import * as PubSub from './graphQL-interface/PubSub' +import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' import yaml from "js-yaml"; import { v4 as uuidv4 } from 'uuid'; import RuntimeService from './RuntimeService'; import Signatures from './agent/Signatures'; import { PerspectivismDb } from './db'; import stringify from 'json-stable-stringify' +import { getPubSub } from './utils'; type LinkObservers = (diff: PerspectiveDiff, lang: LanguageRef)=>void; type TelepresenceSignalObserver = (signal: PerspectiveExpression, lang: LanguageRef)=>void; @@ -29,8 +30,6 @@ interface Services { db: PerspectivismDb } -class ImportError extends Error {} - const importModule = async (modulePath: string) => { // To deal with ESM on windows requires absolute path and file protocol if (process.platform === "win32") { @@ -71,6 +70,7 @@ export default class LanguageController { #signatures: Signatures; #db: PerspectivismDb; #config: Config.MainConfig; + #pubSub: PubSub; #agentLanguage?: Language #languageLanguage?: Language @@ -89,6 +89,7 @@ export default class LanguageController { this.#telepresenceSignalObservers = [] this.#syncStateChangeObservers = [] this.#config = (context as any).config; + this.#pubSub = getPubSub(); } async loadLanguages() { @@ -163,8 +164,8 @@ export default class LanguageController { let errMsg = `LanguageController.loadInstalledLanguages(): COULDN'T LOAD LANGUAGE: ${bundlePath}` console.error(errMsg) console.error(e) - await PUBSUB.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to load installed language", message: errMsg, @@ -215,7 +216,7 @@ export default class LanguageController { // } catch (e) { // const errMsg = `Could not load language ${e}`; // console.error(errMsg); - // await PUBSUB.publish( + // await this.#pubSub.publish( // PubSub.EXCEPTION_OCCURRED_TOPIC, // { // title: "Failed to load installed language", @@ -241,7 +242,7 @@ export default class LanguageController { const storageDirectory = this.getLanguageStoragePath(hash) const Holochain = this.#holochainService.getDelegateForLanguage(hash) //@ts-ignore - const ad4mSignal = this.#context.ad4mSignal.bind({language: hash, pubsub: PUBSUB}); + const ad4mSignal = this.#context.ad4mSignal.bind({language: hash, pubsub: this.#pubSub}); const language = await create({...this.#context, customSettings, storageDirectory, Holochain, ad4mSignal}) if(language.linksAdapter) { @@ -266,7 +267,7 @@ export default class LanguageController { //@ts-ignore if(language.directMessageAdapter && language.directMessageAdapter.recipient() == this.#context.agent.did) { language.directMessageAdapter.addMessageCallback(async (message: PerspectiveExpression) => { - await PUBSUB.publish(PubSub.RUNTIME_MESSAGED_RECEIVED_TOPIC, message) + await this.#pubSub.publish(PubSubDefinitions.RUNTIME_MESSAGED_RECEIVED_TOPIC, message) }) } @@ -289,7 +290,7 @@ export default class LanguageController { const storageDirectory = this.getLanguageStoragePath(hash) const Holochain = this.#holochainService.getDelegateForLanguage(hash) //@ts-ignore - const ad4mSignal = this.#context.ad4mSignal.bind({language: address, pubsub: PUBSUB}); + const ad4mSignal = this.#context.ad4mSignal.bind({language: address, pubsub: this.#pubSub}); //@ts-ignore const language = await create!({...this.#context, storageDirectory, Holochain, ad4mSignal, customSettings}) @@ -315,7 +316,7 @@ export default class LanguageController { //@ts-ignore if(language.directMessageAdapter && language.directMessageAdapter.recipient() == this.#context.agent.did) { language.directMessageAdapter.addMessageCallback(async (message: PerspectiveExpression) => { - await PUBSUB.publish(PubSub.RUNTIME_MESSAGED_RECEIVED_TOPIC, message) + await this.#pubSub.publish(PubSubDefinitions.RUNTIME_MESSAGED_RECEIVED_TOPIC, message) }) } @@ -504,8 +505,8 @@ export default class LanguageController { ) { let errMsg = `Language not created by trusted agent: ${languageAuthor} and is not templated... aborting language install. Language metadata: ${stringify(languageMetaData)}` console.error(errMsg) - await PUBSUB.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to install language", message: errMsg, @@ -543,8 +544,8 @@ export default class LanguageController { } } else { let errMsg = "Agent which created source language for language trying to be installed is not a trustedAgent... aborting language install"; - await PUBSUB.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to install language", message: errMsg, @@ -1069,8 +1070,8 @@ export default class LanguageController { let errMsg = `Error trying to verify signature for expression: ${expressionFormatted}` console.error(errMsg) console.error(e) - await PUBSUB.publish( - PubSub.EXCEPTION_OCCURRED_TOPIC, + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Failed to get expression", message: errMsg, diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 0a0f24107..0258cdfb4 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -2,13 +2,14 @@ import { Agent, Expression, Neighbourhood, LinkExpression, LinkExpressionInput, import { Link, LinkQuery, PerspectiveState } from "@perspect3vism/ad4m"; import type AgentService from "./agent/AgentService"; import type LanguageController from "./LanguageController"; -import * as PubSub from './graphQL-interface/PubSub' +import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' import type PerspectiveContext from "./PerspectiveContext" import PrologInstance from "./PrologInstance"; import { MainConfig } from "./Config"; import { Mutex } from 'async-mutex' import { DID } from "@perspect3vism/ad4m/lib/src/DID"; import { PerspectivismDb } from "./db"; +import { getPubSub } from "./utils"; const maxRetries = 10; const backoffStep = 200; @@ -29,6 +30,7 @@ export default class Perspective { #agent: AgentService; #languageController?: LanguageController #config?: MainConfig; + #pubSub: PubSub; #prologEngine: PrologInstance|null #prologNeedsRebuild: boolean @@ -52,6 +54,7 @@ export default class Perspective { this.#agent = context.agentService! this.#languageController = context.languageController! this.#config = context.config; + this.#pubSub = getPubSub(); this.#prologEngine = null this.#prologNeedsRebuild = true @@ -91,7 +94,7 @@ export default class Perspective { async updatePerspectiveState(state: PerspectiveState) { if (this.state != state) { - await PUBSUB.publish(PubSub.PERSPECTIVE_SYNC_STATE_CHANGE, {state, uuid: this.uuid}) + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_SYNC_STATE_CHANGE, {state, uuid: this.uuid}) this.state = state } } @@ -453,7 +456,7 @@ export default class Perspective { this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); - await PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: linkExpression }) @@ -480,7 +483,7 @@ export default class Perspective { this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); for (const link of linkExpressions) { - await PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: link }) @@ -506,7 +509,7 @@ export default class Perspective { await Promise.all(linkExpressions.map(async l => await this.#db.removeLink(this.uuid!, l))) this.#prologNeedsRebuild = true; for (const link of linkExpressions) { - await PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: link }) @@ -531,13 +534,13 @@ export default class Perspective { await Promise.all(diff.removals.map(async l => await this.#db.removeLink(this.uuid!, l))); this.#prologNeedsRebuild = true; for (const link of diff.additions) { - await PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_ADDED_TOPIC, { perspective: this.plain(), link: link }); }; for (const link of diff.removals) { - await PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: link }); @@ -570,7 +573,7 @@ export default class Perspective { const perspective = this.plain(); this.#prologNeedsRebuild = true; - await PUBSUB.publish(PubSub.LINK_UPDATED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_UPDATED_TOPIC, { perspective, oldLink, newLink: newLinkExpression @@ -597,7 +600,7 @@ export default class Perspective { } this.#prologNeedsRebuild = true; - await PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_REMOVED_TOPIC, { perspective: this.plain(), link: linkExpression }) diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index 405c0b2ad..557ff61b8 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -1,20 +1,23 @@ import path from 'path' import fs from 'fs' import { v4 as uuidv4 } from 'uuid'; -import * as PubSub from './graphQL-interface/PubSub' +import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' import type PerspectiveContext from './PerspectiveContext' import { Perspective as Ad4mPerspective, Neighbourhood, LinkQuery, PerspectiveHandle, LanguageRef, PerspectiveDiff, PerspectiveState, PerspectiveExpression } from '@perspect3vism/ad4m' import Perspective from './Perspective' +import { getPubSub } from './utils'; export default class PerspectivesController { #perspectiveHandles: Map #perspectiveInstances: Map #rootConfigPath #context + #pubSub: PubSub constructor(rootConfigPath: string, context: PerspectiveContext) { this.#context = context this.#rootConfigPath = rootConfigPath + this.#pubSub = getPubSub(); this.#perspectiveHandles = new Map() this.#perspectiveInstances = new Map() @@ -42,14 +45,14 @@ export default class PerspectivesController { try { let perspectivePlain = perspective.plain(); for (const link of diff.additions) { - await PUBSUB.publish(PubSub.LINK_ADDED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: link }) } for (const linkRemoved of diff.removals) { - await PUBSUB.publish(PubSub.LINK_REMOVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.LINK_REMOVED_TOPIC, { perspective: perspectivePlain, link: linkRemoved }) @@ -65,7 +68,7 @@ export default class PerspectivesController { this.#context.languageController!.addTelepresenceSignalObserver(async (signal: PerspectiveExpression, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); if (perspective) { - await PUBSUB.publish(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { signal: signal, perspective: perspective.plain() }) @@ -143,12 +146,12 @@ export default class PerspectivesController { this.#perspectiveHandles.set(perspective.uuid, perspective) this.#perspectiveInstances.set(perspective.uuid, new Perspective(perspective, this.#context, neighbourhood, createdFromJoin, state)) this.save() - await PUBSUB.publish(PubSub.PERSPECTIVE_ADDED_TOPIC, perspective) + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_ADDED_TOPIC, perspective) return perspective } async replace(perspectiveHandle: PerspectiveHandle, neighbourhood: Neighbourhood, createdFromJoin: boolean, state: PerspectiveState) { - await PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, perspectiveHandle); + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_UPDATED_TOPIC, perspectiveHandle); this.#perspectiveHandles.set(perspectiveHandle.uuid, perspectiveHandle); this.#perspectiveInstances.get(perspectiveHandle.uuid)?.clearPolling(); this.#perspectiveInstances.set(perspectiveHandle.uuid, new Perspective(perspectiveHandle, this.#context, neighbourhood, createdFromJoin, state)); @@ -165,7 +168,7 @@ export default class PerspectivesController { this.#perspectiveHandles.delete(uuid) this.#perspectiveInstances.delete(uuid) this.save() - await PUBSUB.publish(PubSub.PERSPECTIVE_REMOVED_TOPIC, uuid) + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_REMOVED_TOPIC, uuid) } catch (e) { console.error("Error removing perspective:", e); throw new Error(`Error removing perspective: ${e}`); @@ -186,7 +189,7 @@ export default class PerspectivesController { instance.updateFromId(perspective as PerspectiveHandle) } - await PUBSUB.publish(PubSub.PERSPECTIVE_UPDATED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_UPDATED_TOPIC, { uuid: perspective.uuid, name: perspective.name, state: perspective.state, diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index 8c32a5f6a..8d7d81312 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -12,7 +12,7 @@ import * as GraphQL from './graphQL-interface/GraphQL' import * as DIDs from './agent/DIDs' import type { DIDResolver } from './agent/DIDs' import Signatures from './agent/Signatures' -import * as PubSub from './graphQL-interface/PubSub' +import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' import EntanglementProofController from './EntanglementProof' import runDAppServer from "./DAppServer" import fs from 'fs' @@ -23,7 +23,7 @@ import { v4 as uuidv4 } from 'uuid'; import { MainConfig } from './Config' import { OuterConfig } from '../main' import path from "path"; -import { sleep } from "./utils"; +import { getPubSub, sleep } from "./utils"; export interface InitServicesParams { agentService: AgentService, @@ -254,9 +254,9 @@ export default class PerspectivismCore { async languageSignal(signal: any) { // //@ts-ignore // console.log(new Date().toISOString(), "PerspectivismCore.languageSignal: Got signal"); - //NOTE (optimization): worth considering if its worth keeping around pubsub in this or if we should just get a new pubsub here + let pubSub = getPubSub(); //@ts-ignore - await PUBSUB.publish(PubSub.SIGNAL, { signal: JSON.stringify(signal), language: this.language }); + await pubSub.publish(PubSubDefinitions.SIGNAL, { signal: JSON.stringify(signal), language: this.language }); } initControllers() { diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 2336b94b2..693a3ff46 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -12,7 +12,7 @@ import { Agent, ExpressionProof, AgentSignature, EntanglementProof } from "@pers import secp256k1 from "secp256k1"; import * as secp256k1DIDKey from "@transmute/did-key-secp256k1"; import Signatures from "./Signatures"; -import * as PubSubInstance from "../graphQL-interface/PubSub"; +import * as PubSubInstance from "../graphQL-interface/SubscriptionDefinitions"; import type { PubSub } from "graphql-subscriptions"; import { resolver } from "@transmute/did-key.js"; import { v4 as uuidv4 } from "uuid"; diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 797c4d8f9..7942b2a3c 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -9,19 +9,20 @@ //import { makeExecutableSchema } from '@graphql-tools/schema'; import { Agent, Expression, InteractionCall, Language, LanguageRef, PerspectiveExpression, PerspectiveHandle, PerspectiveState, PerspectiveUnsignedInput } from '@perspect3vism/ad4m' import { exprRef2String, parseExprUrl, LanguageMeta } from '@perspect3vism/ad4m' -import { typeDefsString } from '@perspect3vism/ad4m/lib/src/typeDefs' +// import { typeDefsString } from '@perspect3vism/ad4m/lib/src/typeDefs' import type PerspectivismCore from '../PerspectivismCore' -import * as PubSub from './PubSub' +import * as PubSubDefinitions from './SubscriptionDefinitions' //import { GraphQLScalarType } from "graphql"; import { ad4mExecutorVersion } from '../Config'; import * as Auth from '../agent/Auth' import { checkCapability, checkTokenAuthorized } from '../agent/Auth' //import { withFilter } from 'graphql-subscriptions'; import { OuterConfig } from '../../main'; -import path from 'path'; +// import path from 'path'; import Perspective from '../Perspective'; import { Capability } from '../agent/Auth' import { Capabilities } from '../agent/Auth' +import { getPubSub } from '../utils'; function checkLinkLanguageInstalled(perspective: Perspective) { if(perspective.state != PerspectiveState.Synced && perspective.state != PerspectiveState.LinkLanguageInstalledButNotSynced) { @@ -520,7 +521,8 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { const agent = core.agentService.dump(); - await PUBSUB.publish(PubSub.AGENT_STATUS_CHANGED, agent) + let pubSub = getPubSub(); + await pubSub.publish(PubSubDefinitions.AGENT_STATUS_CHANGED, agent) console.log("\x1b[32m", "AD4M init complete", "\x1b[0m"); diff --git a/executor/src/core/graphQL-interface/PubSub.ts b/executor/src/core/graphQL-interface/SubscriptionDefinitions.ts similarity index 84% rename from executor/src/core/graphQL-interface/PubSub.ts rename to executor/src/core/graphQL-interface/SubscriptionDefinitions.ts index fca401fa4..3c6060991 100644 --- a/executor/src/core/graphQL-interface/PubSub.ts +++ b/executor/src/core/graphQL-interface/SubscriptionDefinitions.ts @@ -1,5 +1,3 @@ -import { PubSub } from 'graphql-subscriptions' - export const AGENT_UPDATED = 'agent-updated-topic' export const AGENT_STATUS_CHANGED = 'agent-status-changed-topic' export const RUNTIME_MESSAGED_RECEIVED_TOPIC = 'runtime-messaged-received-topic' @@ -13,10 +11,4 @@ export const SIGNAL = "signal" export const EXCEPTION_OCCURRED_TOPIC = "exception-occurred-topic" export const NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC = "neighbourhood-signal-received-topic" export const PERSPECTIVE_SYNC_STATE_CHANGE = "perspective-sync-state-change" -export const APPS_CHANGED = "apps-changed" - -const pubsub = new PubSub() - -export function get() { - return pubsub -} \ No newline at end of file +export const APPS_CHANGED = "apps-changed" \ No newline at end of file diff --git a/executor/src/core/utils.ts b/executor/src/core/utils.ts index fd43e5fab..4887778ba 100644 --- a/executor/src/core/utils.ts +++ b/executor/src/core/utils.ts @@ -1,3 +1,16 @@ export function sleep(ms: number) { return new Promise(resolve => setTimeout(resolve, ms)); +} + +export function getPubSub(): PubSub { + console.log("Getting pubsub"); + if (typeof PUBSUB !== 'undefined') { + return PUBSUB + } else { + return { + publish: (topic: String, data: any) => { + console.warn("Skipping pubsub since not defined... this should only show in unit tests"); + } + } + } } \ No newline at end of file From 17213f8c89590aca176530ba179510afda204512 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 16:23:17 +0100 Subject: [PATCH 400/722] disable js prolog tests --- executor/package.json | 2 +- executor/src/core/Perspective.test.ts | 94 +++++++++++++-------------- executor/src/core/PrologInstance.ts | 1 + executor/tsconfig.json | 1 - 4 files changed, 49 insertions(+), 49 deletions(-) diff --git a/executor/package.json b/executor/package.json index 7de622d08..26b3310ca 100644 --- a/executor/package.json +++ b/executor/package.json @@ -18,7 +18,7 @@ "scripts": { "build": "deno run --allow-all esbuild.ts", "bundle": "deno run --allow-all esbuild.ts", - "test": "yarn run test-perspective && yarn test-db && yarn run test-prolog && yarn run test-auth-unit", + "test": "yarn run test-perspective && yarn test-db && yarn run test-auth-unit", "test-perspective": "ts-mocha -p tsconfig.json --exit src/core/Perspective.test.ts", "test-db": "ts-mocha -p tsconfig.json --exit src/core/db.test.ts", "test-prolog": "ts-mocha -p tsconfig.json --exit src/core/PrologInstance.test.ts", diff --git a/executor/src/core/Perspective.test.ts b/executor/src/core/Perspective.test.ts index 63c921006..076c7e984 100644 --- a/executor/src/core/Perspective.test.ts +++ b/executor/src/core/Perspective.test.ts @@ -115,55 +115,55 @@ describe('Perspective', () => { expect(result.length).to.be.equal(3) }) - it('Prolog queries return 5 triples', async () => { - const result = await perspective!.prologQuery("triple(X,Y,Z).") - expect(result.length).to.be.equal(5) - }) - - it('Prolog gets correctly updated when removing links', async () => { - const link = allLinks![0] - console.log("LINK TO REMOVE", link) - await perspective!.removeLink(link) - const result = await perspective!.prologQuery("triple(X,Y,Z)"); - expect(result.length).to.be.equal(4) - }) + // it('Prolog queries return 5 triples', async () => { + // const result = await perspective!.prologQuery("triple(X,Y,Z).") + // expect(result.length).to.be.equal(5) + // }) + + // it('Prolog gets correctly updated when removing links', async () => { + // const link = allLinks![0] + // console.log("LINK TO REMOVE", link) + // await perspective!.removeLink(link) + // const result = await perspective!.prologQuery("triple(X,Y,Z)"); + // expect(result.length).to.be.equal(4) + // }) }) - describe('Prolog Engine', () => { - it('answers correctly in a run with multiple link additions/removals', async () => { - let result - let linkResult - let l1 = await perspective!.addLink({source: 'ad4m://self', target: 'ad4m://test1'}) - - result = await perspective!.prologQuery("triple(Source,Pred,Target)") - expect(result.length).to.be.equal(1) - expect(result[0].Source).to.be.equal('ad4m://self') - expect(result[0].Target).to.be.equal('ad4m://test1') - - linkResult = await perspective!.prologQuery("link(Source,Pred,Target,Timestamp,Author)") - expect(linkResult.length).to.be.equal(1) - expect(linkResult[0].Source).to.be.equal('ad4m://self') - expect(linkResult[0].Target).to.be.equal('ad4m://test1') - expect(linkResult[0].Author).to.be.equal("did:local-test-agent") - expect(linkResult[0].Timestamp).not.to.be.NaN; - - let l2 = await perspective!.addLink({source: 'ad4m://self', target: 'ad4m://test2'}) - result = await perspective!.prologQuery("triple(Source,Pred,Target)") - expect(result.length).to.be.equal(2) - linkResult = await perspective!.prologQuery("link(Source,Pred,Target,Timestamp,Author)") - expect(linkResult.length).to.be.equal(2) - - let targetSet = new Set() - targetSet.add(result[0].Target) - targetSet.add(result[1].Target) - - expect(result[1].Source).to.be.equal('ad4m://self') - expect(targetSet.has('ad4m://test1')).to.be.true; - expect(targetSet.has('ad4m://test2')).to.be.true; - - //...TBC - }) - }) + // describe('Prolog Engine', () => { + // it('answers correctly in a run with multiple link additions/removals', async () => { + // let result + // let linkResult + // let l1 = await perspective!.addLink({source: 'ad4m://self', target: 'ad4m://test1'}) + + // result = await perspective!.prologQuery("triple(Source,Pred,Target)") + // expect(result.length).to.be.equal(1) + // expect(result[0].Source).to.be.equal('ad4m://self') + // expect(result[0].Target).to.be.equal('ad4m://test1') + + // linkResult = await perspective!.prologQuery("link(Source,Pred,Target,Timestamp,Author)") + // expect(linkResult.length).to.be.equal(1) + // expect(linkResult[0].Source).to.be.equal('ad4m://self') + // expect(linkResult[0].Target).to.be.equal('ad4m://test1') + // expect(linkResult[0].Author).to.be.equal("did:local-test-agent") + // expect(linkResult[0].Timestamp).not.to.be.NaN; + + // let l2 = await perspective!.addLink({source: 'ad4m://self', target: 'ad4m://test2'}) + // result = await perspective!.prologQuery("triple(Source,Pred,Target)") + // expect(result.length).to.be.equal(2) + // linkResult = await perspective!.prologQuery("link(Source,Pred,Target,Timestamp,Author)") + // expect(linkResult.length).to.be.equal(2) + + // let targetSet = new Set() + // targetSet.add(result[0].Target) + // targetSet.add(result[1].Target) + + // expect(result[1].Source).to.be.equal('ad4m://self') + // expect(targetSet.has('ad4m://test1')).to.be.true; + // expect(targetSet.has('ad4m://test2')).to.be.true; + + // //...TBC + // }) + // }) describe('with link sharing language', () => { beforeEach(() => { diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index 0b747c914..af7f4ca7a 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -4,6 +4,7 @@ import swipl from 'swipl-stdio' //@ts-ignore import tmp from 'tmp' import { MainConfig } from "./Config"; +import fs from "fs"; export default class PrologInstance { #engine diff --git a/executor/tsconfig.json b/executor/tsconfig.json index b23913a94..7012f79db 100644 --- a/executor/tsconfig.json +++ b/executor/tsconfig.json @@ -6,7 +6,6 @@ ], "exclude": ["./src/tests/*", "./src/**/*.test.ts", "./src/testsutils/*"], "compilerOptions": { - "allowImportingTsExtensions": true, /* Visit https://aka.ms/tsconfig.json to read more about this file */ /* Basic Options */ From 8a9c140a1a7a6d1417de1050af89ead7ef31a610 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 16:27:56 +0100 Subject: [PATCH 401/722] use release binary for integration tests --- tests/js/utils/utils.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 8fa6fd807..91749f3b6 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -43,7 +43,7 @@ export async function startExecutor(dataPath: string, let executorProcess = null as ChildProcess | null; rmSync(dataPath, { recursive: true, force: true }) console.log("Initialzing executor data directory") - execSync(`../../target/debug/ad4m init --data-path ${dataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {}) + execSync(`../../target/release/ad4m init --data-path ${dataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {}) console.log("Starting executor") try { @@ -53,9 +53,9 @@ export async function startExecutor(dataPath: string, } if (!adminCredential) { - executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + executorProcess = exec(`../../target/release/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`../../target/debug/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + executorProcess = exec(`../../target/release/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From 8a868fe903056e074ee90a639be80aa422fc0aa2 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 18:05:33 +0100 Subject: [PATCH 402/722] fix up pubSub handling to use new structure --- executor/src/core/agent/AgentService.ts | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 693a3ff46..e070a47fd 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -9,11 +9,8 @@ import { ExceptionType, } from "@perspect3vism/ad4m"; import { Agent, ExpressionProof, AgentSignature, EntanglementProof } from "@perspect3vism/ad4m"; -import secp256k1 from "secp256k1"; -import * as secp256k1DIDKey from "@transmute/did-key-secp256k1"; import Signatures from "./Signatures"; -import * as PubSubInstance from "../graphQL-interface/SubscriptionDefinitions"; -import type { PubSub } from "graphql-subscriptions"; +import * as PubSubDefinitions from "../graphQL-interface/SubscriptionDefinitions"; import { resolver } from "@transmute/did-key.js"; import { v4 as uuidv4 } from "uuid"; import { ExceptionInfo } from "@perspect3vism/ad4m/lib/src/runtime/RuntimeResolver"; @@ -31,6 +28,7 @@ import * as jose from "jose"; import * as crypto from "crypto"; import KeyEncoder from "key-encoder"; import * as secp from "@noble/secp256k1"; +import { getPubSub } from "../utils"; export default class AgentService { @@ -44,7 +42,7 @@ export default class AgentService { #fileProfile: string; #agent?: Agent; #agentLanguage?: Language; - #pubsub: PubSub; + #pubSub: PubSub; #requests: Map; #tokenValidPeriod: number; #adminCredential: string; @@ -61,7 +59,7 @@ export default class AgentService { } catch (e) { this.#apps = []; } - this.#pubsub = PubSubInstance.get(); + this.#pubSub = getPubSub(); this.#readyPromise = new Promise((resolve) => { this.#readyPromiseResolve = resolve; }); @@ -145,7 +143,7 @@ export default class AgentService { async updateAgent(a: Agent) { this.#agent = a; await this.storeAgentProfile(); - await PUBSUB.publish(PubSubInstance.AGENT_UPDATED, a); + await this.#pubSub.publish(PubSubDefinitions.AGENT_UPDATED, a); } setAgentLanguage(lang: Language) { @@ -235,7 +233,7 @@ export default class AgentService { async unlock(password: string) { // @ts-ignore WALLET.unlock(password); - await PUBSUB.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); + await this.#pubSub.publish(PubSubDefinitions.AGENT_STATUS_CHANGED, this.dump()); this.#readyPromiseResolve!(); try { await this.storeAgentProfile(); @@ -251,7 +249,7 @@ export default class AgentService { async lock(password: string) { // @ts-ignore WALLET.lock(password); - await PUBSUB.publish(PubSubInstance.AGENT_STATUS_CHANGED, this.dump()); + await this.#pubSub.publish(PubSubDefinitions.AGENT_STATUS_CHANGED, this.dump()); } async save(password: string) { @@ -320,7 +318,7 @@ export default class AgentService { auth: authInfo, } as AuthInfoExtended; - await PUBSUB.publish(PubSubInstance.EXCEPTION_OCCURRED_TOPIC, { + await this.#pubSub.publish(PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, { title: "Request to authenticate application", message: `${authInfo.appName} is waiting for authentication, go to ad4m launcher for more information.`, type: ExceptionType.CapabilityRequested, @@ -362,7 +360,7 @@ export default class AgentService { this.#apps = apps; fs.writeFileSync(this.#appsFile, JSON.stringify(apps)); - await PUBSUB.publish(PubSubInstance.APPS_CHANGED, null); + await this.#pubSub.publish(PubSubDefinitions.APPS_CHANGED, null); } return jwt; @@ -378,7 +376,7 @@ export default class AgentService { fs.writeFileSync(this.#appsFile, JSON.stringify(this.#apps)); - await PUBSUB.publish(PubSubInstance.APPS_CHANGED, null); + await this.#pubSub.publish(PubSubDefinitions.APPS_CHANGED, null); } catch (e) { console.error("Error while removing app", e); } @@ -392,7 +390,7 @@ export default class AgentService { fs.writeFileSync(this.#appsFile, JSON.stringify(this.#apps)); - await PUBSUB.publish(PubSubInstance.APPS_CHANGED, null); + await this.#pubSub.publish(PubSubDefinitions.APPS_CHANGED, null); } catch (e) { console.error("Error while revoking token", e); } From d63d4df57e6a318e9d4b4f83b91303c7c4afa7ff Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 18:06:59 +0100 Subject: [PATCH 403/722] remove swipl copying from prepareTestDirectory script --- tests/js/scripts/prepareTestDirectory.ps1 | 6 +++--- tests/js/scripts/prepareTestDirectory.sh | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/js/scripts/prepareTestDirectory.ps1 b/tests/js/scripts/prepareTestDirectory.ps1 index b2ee52c8d..765852fc8 100644 --- a/tests/js/scripts/prepareTestDirectory.ps1 +++ b/tests/js/scripts/prepareTestDirectory.ps1 @@ -9,7 +9,7 @@ mkdir note wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./hc.exe -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-windows-0.1.0.exe -O ./holochain.exe +# wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-windows-0.1.0.exe -O ./holochain.exe -$SwiplPath = Get-Command swipl.exe | Select-Object -ExpandProperty Definition -Copy-Item $SwiplPath -Destination swipl.exe +# $SwiplPath = Get-Command swipl.exe | Select-Object -ExpandProperty Definition +# Copy-Item $SwiplPath -Destination swipl.exe diff --git a/tests/js/scripts/prepareTestDirectory.sh b/tests/js/scripts/prepareTestDirectory.sh index 8b7132df2..2a731767e 100755 --- a/tests/js/scripts/prepareTestDirectory.sh +++ b/tests/js/scripts/prepareTestDirectory.sh @@ -7,11 +7,11 @@ mkdir languages mkdir note ln -s ../../../executor/temp/binary/hc ./hc -ln -s ../../../executor/temp/binary/holochain ./holochain +# ln -s ../../../executor/temp/binary/holochain ./holochain #ln -s ../../../executor/temp/swipl/bin/swipl ./swipl -homedir=`echo "$(cd ../../../executor/temp/swipl/lib/swipl; pwd)"` -echo '#!/bin/bash' > ./swipl -echo 'cd ../../../executor/temp/swipl/bin' >> ./swipl -echo -n "./swipl --home=${homedir} " >> ./swipl -echo '"$@"' >> ./swipl -chmod +x ./swipl +# homedir=`echo "$(cd ../../../executor/temp/swipl/lib/swipl; pwd)"` +# echo '#!/bin/bash' > ./swipl +# echo 'cd ../../../executor/temp/swipl/bin' >> ./swipl +# echo -n "./swipl --home=${homedir} " >> ./swipl +# echo '"$@"' >> ./swipl +# chmod +x ./swipl From b8eb79d7afab07fa97468c326357d20d51b6091d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 18:07:51 +0100 Subject: [PATCH 404/722] improve integration test naming --- tests/js/package.json | 4 +- tests/js/tests/agent-language.ts | 2 +- tests/js/tests/agent.ts | 2 +- tests/js/tests/direct-messages.ts | 2 +- tests/js/tests/expression.ts | 2 +- tests/js/tests/full-integration.test.ts | 159 ---- tests/js/tests/integration.test.ts | 842 ++++----------------- tests/js/tests/language.ts | 2 +- tests/js/tests/neighbourhood.ts | 2 +- tests/js/tests/perspective.ts | 2 +- tests/js/tests/prolog-and-literals.test.ts | 739 ++++++++++++++++++ tests/js/tests/runtime.ts | 2 +- tests/js/tests/social-dna-flow.ts | 2 +- tests/js/tsconfig.json | 3 +- 14 files changed, 882 insertions(+), 883 deletions(-) delete mode 100644 tests/js/tests/full-integration.test.ts create mode 100644 tests/js/tests/prolog-and-literals.test.ts diff --git a/tests/js/package.json b/tests/js/package.json index 05976bb62..1f96327d1 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -6,13 +6,13 @@ "scripts": { "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", "test:windows": "yarn run prepare-test:windows && yarn run test-all && node scripts/cleanTestingData.js", - "test-all": "yarn run test-simple && yarn run test-integration && yarn run test-app && yarn run test-auth && yarn run test-full-integration", + "test-all": "yarn run test-simple && yarn run test-app && yarn run test-auth && yarn run test-integration && yarn run test-prolog-and-literals", "test-simple": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts", "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", - "test-full-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/full-integration.test.ts", + "test-test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/test-prolog-and-literals.test.ts", "prepare-test": "run-script-os", "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", diff --git a/tests/js/tests/agent-language.ts b/tests/js/tests/agent-language.ts index facc809e4..b34292efb 100644 --- a/tests/js/tests/agent-language.ts +++ b/tests/js/tests/agent-language.ts @@ -1,4 +1,4 @@ -import { TestContext } from './full-integration.test' +import { TestContext } from './integration.test' import { sleep } from '../utils/utils' import { expect } from "chai"; diff --git a/tests/js/tests/agent.ts b/tests/js/tests/agent.ts index 669e836f8..53eedb291 100644 --- a/tests/js/tests/agent.ts +++ b/tests/js/tests/agent.ts @@ -1,5 +1,5 @@ import { Perspective, LinkExpression, Link, ExpressionProof, EntanglementProofInput } from "@perspect3vism/ad4m"; -import { TestContext } from './full-integration.test' +import { TestContext } from './integration.test' import { sleep } from '../utils/utils' import { expect } from "chai"; import * as sinon from "sinon"; diff --git a/tests/js/tests/direct-messages.ts b/tests/js/tests/direct-messages.ts index 1dc844a45..2dc831d56 100644 --- a/tests/js/tests/direct-messages.ts +++ b/tests/js/tests/direct-messages.ts @@ -1,5 +1,5 @@ import { ExpressionProof, Link, LinkExpressionInput, Literal, Perspective } from '@perspect3vism/ad4m' -import { TestContext } from './full-integration.test' +import { TestContext } from './integration.test' import { sleep } from '../utils/utils' import { expect } from "chai"; import * as sinon from "sinon"; diff --git a/tests/js/tests/expression.ts b/tests/js/tests/expression.ts index 73ba1b5f3..0d405a663 100644 --- a/tests/js/tests/expression.ts +++ b/tests/js/tests/expression.ts @@ -1,5 +1,5 @@ import { InteractionCall, LanguageMetaInput, Literal, parseExprUrl } from '@perspect3vism/ad4m' -import { TestContext } from './full-integration.test' +import { TestContext } from './integration.test' import fs from "fs"; import { expect } from "chai"; diff --git a/tests/js/tests/full-integration.test.ts b/tests/js/tests/full-integration.test.ts deleted file mode 100644 index 12b0daebc..000000000 --- a/tests/js/tests/full-integration.test.ts +++ /dev/null @@ -1,159 +0,0 @@ -import fs from 'fs-extra' -import path from 'path' -import { isProcessRunning } from "../utils/utils"; -import { Ad4mClient } from "@perspect3vism/ad4m"; -import { fileURLToPath } from 'url'; -import { expect } from "chai"; -import { startExecutor, apolloClient } from "../utils/utils"; -import { ChildProcess } from 'child_process'; -import perspectiveTests from "./perspective"; -import agentTests from "./agent"; -import languageTests from "./language"; -import expressionTests from "./expression"; -import neighbourhoodTests from "./neighbourhood"; -import runtimeTests from "./runtime"; -import { Crypto } from "@peculiar/webcrypto" -import directMessageTests from "./direct-messages"; -import agentLanguageTests from "./agent-language"; -import socialDNATests from "./social-dna-flow"; -import fetch from "node-fetch"; - -//@ts-ignore -global.fetch = fetch - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -//@ts-ignore -global.crypto = new Crypto(); - -const TEST_DIR = `${__dirname}/../tst-tmp` - -export class TestContext { - //#ad4mClient: Ad4mClient | undefined - #alice: Ad4mClient | undefined - #bob: Ad4mClient | undefined - - #aliceCore: ChildProcess | undefined - #bobCore: ChildProcess | undefined - - get ad4mClient(): Ad4mClient { - return this.#alice! - } - - get alice(): Ad4mClient { - return this.#alice! - } - - get bob(): Ad4mClient { - return this.#bob! - } - - set alice(client: Ad4mClient) { - this.#alice = client - } - - set bob(client: Ad4mClient) { - this.#bob = client - } - - set aliceCore(aliceCore: ChildProcess) { - this.#aliceCore = aliceCore - } - - set bobCore(bobCore: ChildProcess) { - this.#bobCore = bobCore - } - - async makeAllNodesKnown() { - const aliceAgentInfo = await this.#alice!.runtime.hcAgentInfos(); - const bobAgentInfo = await this.#bob!.runtime.hcAgentInfos(); - await this.#alice!.runtime.hcAddAgentInfos(bobAgentInfo); - await this.#bob!.runtime.hcAddAgentInfos(aliceAgentInfo); - } -} -let testContext: TestContext = new TestContext() - -describe("Integration tests", function () { - //@ts-ignore - this.timeout(200000) - const appDataPath = path.join(TEST_DIR, 'agents', 'alice') - const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const ipfsRepoPath = path.join(appDataPath) - const gqlPort = 15000 - const hcAdminPort = 15001 - const hcAppPort = 15002 - const ipfsSwarmPort = 15005 - - let executorProcess: ChildProcess | null = null - - before(async () => { - if(!fs.existsSync(TEST_DIR)) { - throw Error("Please ensure that prepare-test is run before running tests!"); - } - if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - fs.mkdirSync(path.join(TEST_DIR, 'agents')) - if(!fs.existsSync(appDataPath)) - fs.mkdirSync(appDataPath) - - executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); - - testContext.alice = new Ad4mClient(apolloClient(gqlPort)) - testContext.aliceCore = executorProcess - }) - - after(async () => { - if (executorProcess) { - executorProcess.kill() - } - }) - - describe('Agent / Agent-Setup', agentTests(testContext)) - describe('Runtime', runtimeTests(testContext)) - describe('Expression', expressionTests(testContext)) - //describe('Perspective', perspectiveTests(testContext)) - //describe('Social DNA', socialDNATests(testContext)) - - describe('with Alice and Bob', () => { - let bobExecutorProcess: ChildProcess | null = null - before(async () => { - const bobAppDataPath = path.join(TEST_DIR, 'agents', 'bob') - const bobBootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const bobGqlPort = 14000 - const bobHcAdminPort = 12000 - const bobHcAppPort = 11337 - const bobIpfsSwarmPort = 14002 - - if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) - fs.mkdirSync(path.join(TEST_DIR, 'agents')) - if(!fs.existsSync(bobAppDataPath)) - fs.mkdirSync(bobAppDataPath) - - bobExecutorProcess = await startExecutor(bobAppDataPath, bobBootstrapSeedPath, - bobGqlPort, bobHcAdminPort, bobHcAppPort, bobIpfsSwarmPort); - - testContext.bob = new Ad4mClient(apolloClient(bobGqlPort)) - testContext.bobCore = bobExecutorProcess - await testContext.bob.agent.generate("passphrase") - - const status = await testContext.bob.agent.status() - - expect(status.isInitialized).to.be.true; - expect(status.isUnlocked).to.be.true; - //await testContext.makeAllNodesKnown() - }) - - after(async () => { - if (bobExecutorProcess) { - bobExecutorProcess.kill() - } - await new Promise((resolve)=>setTimeout(resolve, 500)) - }) - - describe('Agent Language', agentLanguageTests(testContext)) - describe('Direct Messages', directMessageTests(testContext)) - describe('Language', languageTests(testContext)) - describe('Neighbourhood', neighbourhoodTests(testContext)) - }) -}) \ No newline at end of file diff --git a/tests/js/tests/integration.test.ts b/tests/js/tests/integration.test.ts index 11d1c80bf..12b0daebc 100644 --- a/tests/js/tests/integration.test.ts +++ b/tests/js/tests/integration.test.ts @@ -1,18 +1,22 @@ +import fs from 'fs-extra' +import path from 'path' +import { isProcessRunning } from "../utils/utils"; +import { Ad4mClient } from "@perspect3vism/ad4m"; +import { fileURLToPath } from 'url'; import { expect } from "chai"; -import { ChildProcess } from 'node:child_process'; -import { Ad4mClient, Link, LinkQuery, Literal, PerspectiveProxy, - SmartLiteral, SMART_LITERAL_CONTENT_PREDICATE, - instanceQuery, Subject, subjectProperty, - subjectCollection, subjectFlag, - SDNAClass, - SubjectEntity, -} from "@perspect3vism/ad4m"; -import { readFileSync } from "node:fs"; import { startExecutor, apolloClient } from "../utils/utils"; -import path from "path"; -import fs from "fs"; -import { fileURLToPath } from 'url'; -import fetch from 'node-fetch' +import { ChildProcess } from 'child_process'; +import perspectiveTests from "./perspective"; +import agentTests from "./agent"; +import languageTests from "./language"; +import expressionTests from "./expression"; +import neighbourhoodTests from "./neighbourhood"; +import runtimeTests from "./runtime"; +import { Crypto } from "@peculiar/webcrypto" +import directMessageTests from "./direct-messages"; +import agentLanguageTests from "./agent-language"; +import socialDNATests from "./social-dna-flow"; +import fetch from "node-fetch"; //@ts-ignore global.fetch = fetch @@ -20,720 +24,136 @@ global.fetch = fetch const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -describe("Integration", () => { - let ad4m: Ad4mClient | null = null - let executorProcess: ChildProcess | null = null - - const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); - const appDataPath = path.join(TEST_DIR, "agents", "integration-agent"); +//@ts-ignore +global.crypto = new Crypto(); + +const TEST_DIR = `${__dirname}/../tst-tmp` + +export class TestContext { + //#ad4mClient: Ad4mClient | undefined + #alice: Ad4mClient | undefined + #bob: Ad4mClient | undefined + + #aliceCore: ChildProcess | undefined + #bobCore: ChildProcess | undefined + + get ad4mClient(): Ad4mClient { + return this.#alice! + } + + get alice(): Ad4mClient { + return this.#alice! + } + + get bob(): Ad4mClient { + return this.#bob! + } + + set alice(client: Ad4mClient) { + this.#alice = client + } + + set bob(client: Ad4mClient) { + this.#bob = client + } + + set aliceCore(aliceCore: ChildProcess) { + this.#aliceCore = aliceCore + } + + set bobCore(bobCore: ChildProcess) { + this.#bobCore = bobCore + } + + async makeAllNodesKnown() { + const aliceAgentInfo = await this.#alice!.runtime.hcAgentInfos(); + const bobAgentInfo = await this.#bob!.runtime.hcAgentInfos(); + await this.#alice!.runtime.hcAddAgentInfos(bobAgentInfo); + await this.#bob!.runtime.hcAddAgentInfos(aliceAgentInfo); + } +} +let testContext: TestContext = new TestContext() + +describe("Integration tests", function () { + //@ts-ignore + this.timeout(200000) + const appDataPath = path.join(TEST_DIR, 'agents', 'alice') const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const ipfsRepoPath = path.join(appDataPath) const gqlPort = 15000 const hcAdminPort = 15001 const hcAppPort = 15002 - const ipfsSwarmPort = 15006 + const ipfsSwarmPort = 15005 - before(async () => { - executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); - - console.log("Creating ad4m client") - ad4m = new Ad4mClient(apolloClient(gqlPort)) - console.log("Generating agent") - await ad4m.agent.generate("secret") - console.log("Done") - }) + let executorProcess: ChildProcess | null = null - after(() => { - if (executorProcess) { - executorProcess.kill() + before(async () => { + if(!fs.existsSync(TEST_DIR)) { + throw Error("Please ensure that prepare-test is run before running tests!"); } - }) - - it("should get agent status", async () => { - let result = await ad4m!.agent.status() - expect(result).to.not.be.null - expect(result!.isInitialized).to.be.true - }) - - describe("Subjects", () => { - let perspective: PerspectiveProxy | null = null - - before(async () => { - perspective = await ad4m!.perspective.add("test") - // for test debugging: - console.log("UUID: " + perspective.uuid) - - let classes = await perspective.subjectClasses(); - expect(classes.length).to.equal(0) - - let sdna = readFileSync("./sdna/subject.pl").toString() - await perspective.setSdna(sdna) - - let retrievedSdna = await perspective.getSdna() - expect(retrievedSdna).to.deep.equal([sdna]) - }) - - it("should find the TODO subject class from the test SDNA", async () => { - let classes = await perspective!.subjectClasses(); - - expect(classes.length).to.equal(1) - expect(classes[0]).to.equal("Todo") - }) - - it("should be able to construct a subject instance from a literal", async () => { - let root = Literal.from("construct test").toUrl() - expect(await perspective!.createSubject("Todo", root)).to.not.be.undefined - expect(await perspective!.isSubjectInstance(root, "Todo")).to.not.be.false - }) - - it("can get subject instance proxy via class string", async () => { - let root = Literal.from("get proxy test").toUrl() - await perspective!.createSubject("Todo", root) - let subject = await perspective!.getSubjectProxy(root, "Todo") as unknown as Subject - expect(subject).to.not.be.undefined - expect(subject).to.have.property("state") - expect(subject).to.have.property("setState") - expect(subject).to.have.property("title") - }) - - describe("with an instance", () => { - let subject: Subject | null = null - - before(async () => { - let root = Literal.from("construct test").toUrl() - subject = await perspective!.createSubject("Todo", root) as unknown as Subject - }) - - it("should be able to read a property as JS property", async () => { - //@ts-ignore - expect(await subject.state).to.equal("todo://ready") - }) - - it("should be able to set a property with JS setter method", async () => { - //@ts-ignore - await subject.setState("todo://done") - //@ts-ignore - expect(await subject.state).to.equal("todo://done") - }) - - it("should work with a property that is not set initially and that auto-resolves", async () => { - //@ts-ignore - expect(await subject.title).to.be.undefined - - let title = "test title" - //@ts-ignore - await subject.setTitle(title) - //@ts-ignore - expect(await subject.title).to.equal(title) - }) - - it("should be able to get collections as arrays", async () => { - //@ts-ignore - expect(await subject.comments).to.be.an("array") - //@ts-ignore - expect(await subject.comments).to.be.empty - - let c1 = Literal.from("comment 1").toUrl() - await perspective!.add(new Link({ - source: subject!.baseExpression, - predicate: "todo://comment", - target: c1 - })) - - //@ts-ignore - expect(await subject.comments).to.deep.equal([c1]) - - let c2 = Literal.from("comment 2").toUrl() - await perspective!.add(new Link({ - source: subject!.baseExpression, - predicate: "todo://comment", - target: c2 - })) - - //@ts-ignore - expect(await subject.comments).to.deep.equal([c1, c2]) - }) - - it("should be able to add to collections", async () => { - let commentLinks = await perspective!.get(new LinkQuery({ - source: subject!.baseExpression, - predicate: "todo://comment" - })) - for(let link of commentLinks) { - await perspective!.remove(link) - } - - //@ts-ignore - expect(await subject.comments).to.be.empty - - let c1 = Literal.from("new comment 1").toUrl() - let c2 = Literal.from("new comment 2").toUrl() - - //@ts-ignore - await subject.addComments(c1) - await sleep(100) - //@ts-ignore - expect(await subject.comments).to.deep.equal([c1]) - - //@ts-ignore - await subject.addComments(c2) - await sleep(100) - //@ts-ignore - expect(await subject.comments).to.deep.equal([c1, c2]) - }) - - it("should be able to get all subject instance of a given class", async () => { - let todos = await perspective!.getAllSubjectInstances("Todo") as unknown as Subject[] - expect(todos.length).to.equal(2) - //@ts-ignore - expect(await todos[1].state).to.equal("todo://done") - }) - }) - - describe("TypeScript compatibility", () => { - - // This class mathces the SDNA in ./sdna/subject.pl - class Todo { - state: string = "" - title: string = "" - comments: string[] = [] - - setState(state: string) {} - setTitle(title: string) {} - addComments(comment: string) {} - setCollectionComments(comment: string) {} - } - - // This class doesn not match the SDNA in ./sdna/subject.pl - class UnknownSubject { - name: string = "" - x: string = "" - - setTop(top: string) {} - } - - // This class is like Todo, but has a setter that - // is not defined in the SDNA (-> should not match) - class AlmostTodo { - state: string = "" - title: string = "" - comments: string[] = [] - - setState(state: string) {} - setTitle(title: string) {} - addComment(comment: string) {} - setTop(top: string) {} - } - - let todo: Todo = new Todo() - let unknown: UnknownSubject = new UnknownSubject() - let almostTodo: AlmostTodo = new AlmostTodo() - - it("can find subject classes mapping to JS objects", async () => { - let todoClasses = await perspective!.subjectClassesByTemplate(todo) - expect(todoClasses).to.include("Todo") - expect(todoClasses.length).to.equal(1) - - let unknownClasses = await perspective!.subjectClassesByTemplate(unknown) - expect(unknownClasses).to.be.empty - - let almostTodoClasses = await perspective!.subjectClassesByTemplate(almostTodo) - expect(almostTodoClasses).to.be.empty - }) - - it("can find subject and create instances in a type-safe way", async () => { - // PerspectiveProxe.getAllSubjectInstances() is a generic that returns - // an array of the given type. - let todos = await perspective!.getAllSubjectInstances(todo) - - // todos is an array of Todo objects - // note how we don't need @ts-ignore here: - expect(todos.length).to.equal(2) - expect(await todos[1].state).to.equal("todo://done") - }) - - }) - - describe("SDNA creation decorators", () => { - @SDNAClass({ - name: "Message" - }) - class Message { - //@ts-ignore - @subjectFlag({ - through: "ad4m://type", - value: "ad4m://message" - }) - type: string = "" - - //@ts-ignore - @instanceQuery() - static async all(perspective: PerspectiveProxy): Promise { return [] } - - //@ts-ignore - @subjectProperty({ - through: "todo://state", - initial: "todo://ready", - writable: true, - }) - body: string = "" - } - - // This class matches the SDNA in ./sdna/subject.pl - // and this test proves the decorators create the exact same SDNA code - @SDNAClass({ - name: "Todo" - }) - class Todo { - // Setting this member "subjectConstructer" allows for adding custom - // actions that will be run when a subject is constructed. - // - // In this test, we don't need to use it, because the used "initial" - // parameter on "state" below will have the same effect as the following: - // subjectConstructor = [addLink("this", "todo://state", "todo://ready")] - - // Setting this member "isSubjectInstance" allows for adding custom clauses - // to the instance check. - // - // In this test, we don't need to use it, because the used "required" - // parameter on "state" below will have the same effect as the following: - // isSubjectInstance = [hasLink("todo://state")] - - //@ts-ignore - @instanceQuery() - static async all(perspective: PerspectiveProxy): Promise { return [] } - - @instanceQuery({where: {state: "todo://ready"}}) - static async allReady(perspective: PerspectiveProxy): Promise { return [] } - - @instanceQuery({where: { state: "todo://done" }}) - static async allDone(perspective: PerspectiveProxy): Promise { return [] } - - @instanceQuery({condition: 'triple("ad4m://self", _, Instance)'}) - static async allSelf(perspective: PerspectiveProxy): Promise { return [] } - - //@ts-ignore - @subjectProperty({ - through: "todo://state", - initial:"todo://ready", - writable: true, - required: true - }) - state: string = "" - - //@ts-ignore - @subjectProperty({ - through: "todo://has_title", - writable: true, - resolveLanguage: "literal" - }) - title: string = "" - - @subjectProperty({ - getter: `triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true` - }) - isLiked: boolean = false - - //@ts-ignore - @subjectCollection({ through: "todo://comment" }) - // @ts-ignore - comments: string[] = [] - - //@ts-ignore - @subjectCollection({ through: "flux://entry_type" }) - entries: string[] = [] - - //@ts-ignore - @subjectCollection({ - through: "flux://entry_type", - where: { isInstance: Message } - }) - messages: string[] = [] - - //@ts-ignore - @subjectCollection({ - through: "flux://entry_type", - where: { condition: `triple(Target, "flux://has_reaction", "flux://thumbsup")` } - }) - likedMessages: string[] = [] - } - - it("should generate correct SDNA from a JS class", async () => { - // @ts-ignore - let sdna = Todo.generateSDNA() - - const regExp = /\("Todo", ([^)]+)\)/; - const matches = regExp.exec(sdna); - const value = matches![1]; - - const equal = readFileSync("./sdna/subject.pl").toString().replace(/c\)/g, `${value})`).replace(/\(c/g, `(${value}`); - - expect(sdna.normalize('NFC')).to.equal(equal.normalize('NFC')) - }) - - it("should be possible to use that class for type-safe interaction with subject instances", async () => { - // construct new subject intance - let root = Literal.from("Decorated class construction test").toUrl() - // get instance with type information - let todo = await perspective!.createSubject(new Todo(), root) - - expect(await perspective!.isSubjectInstance(root, new Todo())).to.not.be.false - let todo2 = await perspective!.getSubjectProxy(root, new Todo()) - expect(todo2).to.have.property("state") - expect(todo2).to.have.property("title") - expect(todo2).to.have.property("comments") - // @ts-ignore - await todo.setState("todo://review") - expect(await todo.state).to.equal("todo://review") - expect(await todo.comments).to.be.empty - - let comment = Literal.from("new comment").toUrl() - // @ts-ignore - await todo.addComments(comment) - expect(await todo.comments).to.deep.equal([comment]) - }) - - it("can retrieve all instances through instaceQuery decoratored all()", async () => { - let todos = await Todo.all(perspective!) - expect(todos.length).to.equal(3) - }) - - it("can retrieve all mathching instance through instanceQuery(where: ..)", async () => { - let todos = await Todo.allReady(perspective!) - expect(todos.length).to.equal(1) - expect(await todos[0].state).to.equal("todo://ready") - - todos = await Todo.allDone(perspective!) - expect(todos.length).to.equal(1) - expect(await todos[0].state).to.equal("todo://done") - }) + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(appDataPath)) + fs.mkdirSync(appDataPath) - it("can retrieve matching instance through instanceQuery(condition: ..)", async () => { - let todos = await Todo.allSelf(perspective!) - expect(todos.length).to.equal(0) - - todos = await Todo.all(perspective!) - let todo = todos[0] - //@ts-ignore - await perspective!.add(new Link({source: "ad4m://self", target: todo.baseExpression})) - - todos = await Todo.allSelf(perspective!) - expect(todos.length).to.equal(1) - }) - - it("can deal with properties that resolve the URI and create Expressions", async () => { - let todos = await Todo.all(perspective!) - let todo = todos[0] - expect(await todo.title).to.be.undefined - - // @ts-ignore - await todo.setTitle("new title") - expect(await todo.title).to.equal("new title") - - //@ts-ignore - let links = await perspective!.get(new LinkQuery({source: todo.baseExpression, predicate: "todo://has_title"})) - expect(links.length).to.equal(1) - let literal = Literal.fromUrl(links[0].data.target).get() - expect(literal.data).to.equal("new title") - }) - - it("can easily be initialized with PerspectiveProxy.ensureSDNASubjectClass()", async () => { - expect(await perspective!.getSdna()).to.have.lengthOf(1) - - @SDNAClass({ - name: "Test" - }) - class Test { - @subjectProperty({through: "test://test_numer"}) - number: number = 0 - } - - await perspective!.ensureSDNASubjectClass(Test) - - expect(await perspective!.getSdna()).to.have.lengthOf(2) - //console.log((await perspective!.getSdna())[1]) - }) - - it("can constrain collection entries through 'where' clause with prolog condition", async () => { - let root = Literal.from("Collection where test with prolog condition").toUrl() - let todo = await perspective!.createSubject(new Todo(), root) - - let messageEntry = Literal.from("test message").toUrl() - - // @ts-ignore - await todo.addEntries(messageEntry) - - let entries = await todo.entries - expect(entries.length).to.equal(1) - - let messageEntries = await todo.likedMessages - expect(messageEntries.length).to.equal(0) - - await perspective?.add(new Link({source: messageEntry, predicate: "flux://has_reaction", target: "flux://thumbsup"})) - - messageEntries = await todo.likedMessages - expect(messageEntries.length).to.equal(1) - }) - - it("can use properties with custom getter prolog code", async () => { - let root = Literal.from("Custom getter test").toUrl() - let todo = await perspective!.createSubject(new Todo(), root) - - // @ts-ignore - const liked1 = await todo.isLiked - expect(liked1).to.be.undefined - - await perspective?.add(new Link({source: root, predicate: "flux://has_reaction", target: "flux://thumbsup"})) - - // @ts-ignore - const liked2 = await todo.isLiked - expect(liked2).to.be.true - }) - - describe("with Message subject class registered", () => { - before(async () => { - // @ts-ignore - perspective!.addSdna(Message.generateSDNA()) - }) - - it("can find instances through the exact flag link", async() => { - await perspective!.add(new Link({ - source: "test://message", - predicate: "ad4m://type", - target: "ad4m://undefined" - })) - - const first = await Message.all(perspective!) - expect(first.length).to.be.equal(0) - - await perspective!.add(new Link({ - source: "test://message", - predicate: "ad4m://type", - target: "ad4m://message" - })) - - const second = await Message.all(perspective!) - expect(second.length).to.be.equal(1) - }) - - it("can constrain collection entries through 'where' clause", async () => { - let root = Literal.from("Collection where test").toUrl() - let todo = await perspective!.createSubject(new Todo(), root) - - let messageEntry = Literal.from("test message").toUrl() - - // @ts-ignore - await todo.addEntries(messageEntry) - - let entries = await todo.entries - expect(entries.length).to.equal(1) - - let messageEntries = await todo.messages - expect(messageEntries.length).to.equal(0) - - await perspective!.createSubject(new Message(), messageEntry) - - messageEntries = await todo.messages - expect(messageEntries.length).to.equal(1) - }) - - }) - - describe("Active record implementation", () => { - @SDNAClass({ - name: "Recipe" - }) - class Recipe extends SubjectEntity { - //@ts-ignore - @subjectFlag({ - through: "ad4m://type", - value: "ad4m://recipe" - }) - type: string = "" - - //@ts-ignore - @subjectProperty({ - through: "recipe://name", - writable: true, - }) - name: string = "" - - //@ts-ignore - @subjectCollection({ through: "recipe://entries" }) - entries: string[] = [] - - // @ts-ignore - @subjectCollection({ - through: "recipe://entries", - where: { condition: `triple(Target, "recipe://has_ingredient", "recipe://test")` } - }) - // @ts-ignore - ingredients: []; - - //@ts-ignore - @subjectCollection({ through: "recipe://comment" }) - // @ts-ignore - comments: string[] = [] - } - - before(async () => { - // @ts-ignore - perspective!.addSdna(Recipe.generateSDNA()) - }) - - it("save() & get()", async () => { - let root = Literal.from("Active record implementation test").toUrl() - const recipe = new Recipe(perspective!, root) - - recipe.name = "recipe://test"; - - await recipe.save(); - - const recipe2 = new Recipe(perspective!, root); - - await recipe2.get(); - - expect(recipe2.name).to.equal("recipe://test") - }) - - it("delete()", async () => { - let root = Literal.from("Active record implementation test delete").toUrl() - const recipe = new Recipe(perspective!, root) - - recipe.name = "recipe://test"; - - await recipe.save(); - - const recipe2 = await Recipe.all(perspective!); - - expect(recipe2.length).to.equal(2) - - await recipe.delete(); - - const recipe3 = await Recipe.all(perspective!); - - expect(recipe3.length).to.equal(1) - }) - - it("update()", async () => { - let root = Literal.from("Active record implementation test").toUrl() - const recipe = new Recipe(perspective!, root) - - recipe.name = "recipe://test1"; - - await recipe.update(); - - const recipe2 = new Recipe(perspective!, root); - - await recipe2.get(); - - expect(recipe2.name).to.equal("recipe://test1") - }) - - it("find()", async () => { - const recipes = await Recipe.all(perspective!); - - expect(recipes.length).to.equal(1) - }) - - it("can constrain collection entries clause", async () => { - let root = Literal.from("Active record implementation collection test").toUrl() - const recipe = new Recipe(perspective!, root) - - recipe.name = "recipe://collection_test"; - - recipe.comments = ['test', 'test1'] - - await recipe.save() - - const recipe2 = new Recipe(perspective!, root); - - await recipe2.get(); - - expect(recipe2.comments.length).to.equal(2) - }) - - it("can constrain collection entries through 'where' clause with prolog condition", async () => { - let root = Literal.from("Active record implementation collection test 1").toUrl() - - const recipe = new Recipe(perspective!, root) - - let recipeEntries = Literal.from("test recipes").toUrl() - - recipe.entries = [recipeEntries] - recipe.comments = ['test', 'test1'] - recipe.name = "recipe://collection_test"; - - await recipe.save() - - await perspective?.add(new Link({source: recipeEntries, predicate: "recipe://has_ingredient", target: "recipe://test"})) - - await recipe.get() - - const recipe2 = new Recipe(perspective!, root); - - await recipe2.get(); + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); - expect(recipe2.ingredients.length).to.equal(1) - }) - }) - }) + testContext.alice = new Ad4mClient(apolloClient(gqlPort)) + testContext.aliceCore = executorProcess }) + after(async () => { + if (executorProcess) { + executorProcess.kill() + } + }) - describe("Smart Literal", () => { - let perspective: PerspectiveProxy | null = null + describe('Agent / Agent-Setup', agentTests(testContext)) + describe('Runtime', runtimeTests(testContext)) + describe('Expression', expressionTests(testContext)) + //describe('Perspective', perspectiveTests(testContext)) + //describe('Social DNA', socialDNATests(testContext)) + describe('with Alice and Bob', () => { + let bobExecutorProcess: ChildProcess | null = null before(async () => { - perspective = await ad4m!.perspective.add("smart literal test") - // for test debugging: - console.log("UUID: " + perspective.uuid) - }) - - it("can create and use a new smart literal", async () => { - let sl = await SmartLiteral.create(perspective!, "Hello World") - let base = sl.base - - expect(await sl.get()).to.equal("Hello World") - - let links = await perspective!.get(new LinkQuery({predicate: SMART_LITERAL_CONTENT_PREDICATE})) - expect(links.length).to.equal(1) - expect(links[0].data.source).to.equal(base) - let literal = Literal.fromUrl(links[0].data.target) - expect(literal.get()).to.equal("Hello World") - - await sl.set(5) - expect(await sl.get()).to.equal(5) - - links = await perspective!.get(new LinkQuery({predicate: SMART_LITERAL_CONTENT_PREDICATE})) - expect(links.length).to.equal(1) - expect(links[0].data.source).to.equal(base) - literal = Literal.fromUrl(links[0].data.target) - expect(literal.get()).to.equal(5) - }) - - - it("can instantiate smart literal from perspective", async () => { - let source = Literal.from("base").toUrl() - let target = Literal.from("Hello World 2").toUrl() - await perspective!.add({source, predicate: SMART_LITERAL_CONTENT_PREDICATE, target}) - - let sl = new SmartLiteral(perspective!, source) - expect(await sl.get()).to.equal("Hello World 2") + const bobAppDataPath = path.join(TEST_DIR, 'agents', 'bob') + const bobBootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const bobGqlPort = 14000 + const bobHcAdminPort = 12000 + const bobHcAppPort = 11337 + const bobIpfsSwarmPort = 14002 + + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(bobAppDataPath)) + fs.mkdirSync(bobAppDataPath) + + bobExecutorProcess = await startExecutor(bobAppDataPath, bobBootstrapSeedPath, + bobGqlPort, bobHcAdminPort, bobHcAppPort, bobIpfsSwarmPort); + + testContext.bob = new Ad4mClient(apolloClient(bobGqlPort)) + testContext.bobCore = bobExecutorProcess + await testContext.bob.agent.generate("passphrase") + + const status = await testContext.bob.agent.status() + + expect(status.isInitialized).to.be.true; + expect(status.isUnlocked).to.be.true; + //await testContext.makeAllNodesKnown() }) - it("can get all smart literals in a perspective",async () => { - let all = await SmartLiteral.getAllSmartLiterals(perspective!) - expect(all.length).to.equal(2) - expect(all[1].base).to.equal(Literal.from("base").toUrl()) - expect(await all[0].get()).to.equal(5) - expect(await all[1].get()).to.equal("Hello World 2") + after(async () => { + if (bobExecutorProcess) { + bobExecutorProcess.kill() + } + await new Promise((resolve)=>setTimeout(resolve, 500)) }) + describe('Agent Language', agentLanguageTests(testContext)) + describe('Direct Messages', directMessageTests(testContext)) + describe('Language', languageTests(testContext)) + describe('Neighbourhood', neighbourhoodTests(testContext)) }) - -}) - -function sleep(ms: number) { - return new Promise((resolve) => setTimeout(resolve, ms)); -} \ No newline at end of file +}) \ No newline at end of file diff --git a/tests/js/tests/language.ts b/tests/js/tests/language.ts index c9a95c983..37d1fe58a 100644 --- a/tests/js/tests/language.ts +++ b/tests/js/tests/language.ts @@ -1,4 +1,4 @@ -import { TestContext } from './full-integration.test' +import { TestContext } from './integration.test' import path from "path"; import fs from "fs"; import { sleep } from '../utils/utils'; diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index 2245754ca..2676f608e 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -1,5 +1,5 @@ import { Link, Perspective, LinkExpression, ExpressionProof, LinkQuery, PerspectiveState, NeighbourhoodProxy, PerspectiveUnsignedInput } from "@perspect3vism/ad4m"; -import { TestContext } from './full-integration.test' +import { TestContext } from './integration.test' import { sleep } from "../utils/utils"; import fs from "fs"; import { v4 as uuidv4 } from 'uuid'; diff --git a/tests/js/tests/perspective.ts b/tests/js/tests/perspective.ts index 2637077a0..9ef8c8a5b 100644 --- a/tests/js/tests/perspective.ts +++ b/tests/js/tests/perspective.ts @@ -1,5 +1,5 @@ import { Ad4mClient, Link, LinkQuery, PerspectiveProxy, PerspectiveState } from "@perspect3vism/ad4m"; -import { TestContext } from './full-integration.test' +import { TestContext } from './integration.test' import { expect } from "chai"; import * as sinon from "sinon"; import { sleep } from "../utils/utils"; diff --git a/tests/js/tests/prolog-and-literals.test.ts b/tests/js/tests/prolog-and-literals.test.ts new file mode 100644 index 000000000..4854802c9 --- /dev/null +++ b/tests/js/tests/prolog-and-literals.test.ts @@ -0,0 +1,739 @@ +import { expect } from "chai"; +import { ChildProcess } from 'node:child_process'; +import { Ad4mClient, Link, LinkQuery, Literal, PerspectiveProxy, + SmartLiteral, SMART_LITERAL_CONTENT_PREDICATE, + instanceQuery, Subject, subjectProperty, + subjectCollection, subjectFlag, + SDNAClass, + SubjectEntity, +} from "@perspect3vism/ad4m"; +import { readFileSync } from "node:fs"; +import { startExecutor, apolloClient } from "../utils/utils"; +import path from "path"; +import fs from "fs"; +import { fileURLToPath } from 'url'; +import fetch from 'node-fetch' + +//@ts-ignore +global.fetch = fetch + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +describe("Prolog + Literals", () => { + let ad4m: Ad4mClient | null = null + let executorProcess: ChildProcess | null = null + + const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); + const appDataPath = path.join(TEST_DIR, "agents", "integration-agent"); + const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); + const gqlPort = 15000 + const hcAdminPort = 15001 + const hcAppPort = 15002 + const ipfsSwarmPort = 15006 + + before(async () => { + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); + + console.log("Creating ad4m client") + ad4m = new Ad4mClient(apolloClient(gqlPort)) + console.log("Generating agent") + await ad4m.agent.generate("secret") + console.log("Done") + }) + + after(() => { + if (executorProcess) { + executorProcess.kill() + } + }) + + it("should get agent status", async () => { + let result = await ad4m!.agent.status() + expect(result).to.not.be.null + expect(result!.isInitialized).to.be.true + }) + + describe("Subjects", () => { + let perspective: PerspectiveProxy | null = null + + before(async () => { + perspective = await ad4m!.perspective.add("test") + // for test debugging: + console.log("UUID: " + perspective.uuid) + + let classes = await perspective.subjectClasses(); + expect(classes.length).to.equal(0) + + let sdna = readFileSync("./sdna/subject.pl").toString() + await perspective.setSdna(sdna) + + let retrievedSdna = await perspective.getSdna() + expect(retrievedSdna).to.deep.equal([sdna]) + }) + + it("should find the TODO subject class from the test SDNA", async () => { + let classes = await perspective!.subjectClasses(); + + expect(classes.length).to.equal(1) + expect(classes[0]).to.equal("Todo") + }) + + it("should be able to construct a subject instance from a literal", async () => { + let root = Literal.from("construct test").toUrl() + expect(await perspective!.createSubject("Todo", root)).to.not.be.undefined + expect(await perspective!.isSubjectInstance(root, "Todo")).to.not.be.false + }) + + it("can get subject instance proxy via class string", async () => { + let root = Literal.from("get proxy test").toUrl() + await perspective!.createSubject("Todo", root) + let subject = await perspective!.getSubjectProxy(root, "Todo") as unknown as Subject + expect(subject).to.not.be.undefined + expect(subject).to.have.property("state") + expect(subject).to.have.property("setState") + expect(subject).to.have.property("title") + }) + + describe("with an instance", () => { + let subject: Subject | null = null + + before(async () => { + let root = Literal.from("construct test").toUrl() + subject = await perspective!.createSubject("Todo", root) as unknown as Subject + }) + + it("should be able to read a property as JS property", async () => { + //@ts-ignore + expect(await subject.state).to.equal("todo://ready") + }) + + it("should be able to set a property with JS setter method", async () => { + //@ts-ignore + await subject.setState("todo://done") + //@ts-ignore + expect(await subject.state).to.equal("todo://done") + }) + + it("should work with a property that is not set initially and that auto-resolves", async () => { + //@ts-ignore + expect(await subject.title).to.be.undefined + + let title = "test title" + //@ts-ignore + await subject.setTitle(title) + //@ts-ignore + expect(await subject.title).to.equal(title) + }) + + it("should be able to get collections as arrays", async () => { + //@ts-ignore + expect(await subject.comments).to.be.an("array") + //@ts-ignore + expect(await subject.comments).to.be.empty + + let c1 = Literal.from("comment 1").toUrl() + await perspective!.add(new Link({ + source: subject!.baseExpression, + predicate: "todo://comment", + target: c1 + })) + + //@ts-ignore + expect(await subject.comments).to.deep.equal([c1]) + + let c2 = Literal.from("comment 2").toUrl() + await perspective!.add(new Link({ + source: subject!.baseExpression, + predicate: "todo://comment", + target: c2 + })) + + //@ts-ignore + expect(await subject.comments).to.deep.equal([c1, c2]) + }) + + it("should be able to add to collections", async () => { + let commentLinks = await perspective!.get(new LinkQuery({ + source: subject!.baseExpression, + predicate: "todo://comment" + })) + for(let link of commentLinks) { + await perspective!.remove(link) + } + + //@ts-ignore + expect(await subject.comments).to.be.empty + + let c1 = Literal.from("new comment 1").toUrl() + let c2 = Literal.from("new comment 2").toUrl() + + //@ts-ignore + await subject.addComments(c1) + await sleep(100) + //@ts-ignore + expect(await subject.comments).to.deep.equal([c1]) + + //@ts-ignore + await subject.addComments(c2) + await sleep(100) + //@ts-ignore + expect(await subject.comments).to.deep.equal([c1, c2]) + }) + + it("should be able to get all subject instance of a given class", async () => { + let todos = await perspective!.getAllSubjectInstances("Todo") as unknown as Subject[] + expect(todos.length).to.equal(2) + //@ts-ignore + expect(await todos[1].state).to.equal("todo://done") + }) + }) + + describe("TypeScript compatibility", () => { + + // This class mathces the SDNA in ./sdna/subject.pl + class Todo { + state: string = "" + title: string = "" + comments: string[] = [] + + setState(state: string) {} + setTitle(title: string) {} + addComments(comment: string) {} + setCollectionComments(comment: string) {} + } + + // This class doesn not match the SDNA in ./sdna/subject.pl + class UnknownSubject { + name: string = "" + x: string = "" + + setTop(top: string) {} + } + + // This class is like Todo, but has a setter that + // is not defined in the SDNA (-> should not match) + class AlmostTodo { + state: string = "" + title: string = "" + comments: string[] = [] + + setState(state: string) {} + setTitle(title: string) {} + addComment(comment: string) {} + setTop(top: string) {} + } + + let todo: Todo = new Todo() + let unknown: UnknownSubject = new UnknownSubject() + let almostTodo: AlmostTodo = new AlmostTodo() + + it("can find subject classes mapping to JS objects", async () => { + let todoClasses = await perspective!.subjectClassesByTemplate(todo) + expect(todoClasses).to.include("Todo") + expect(todoClasses.length).to.equal(1) + + let unknownClasses = await perspective!.subjectClassesByTemplate(unknown) + expect(unknownClasses).to.be.empty + + let almostTodoClasses = await perspective!.subjectClassesByTemplate(almostTodo) + expect(almostTodoClasses).to.be.empty + }) + + it("can find subject and create instances in a type-safe way", async () => { + // PerspectiveProxe.getAllSubjectInstances() is a generic that returns + // an array of the given type. + let todos = await perspective!.getAllSubjectInstances(todo) + + // todos is an array of Todo objects + // note how we don't need @ts-ignore here: + expect(todos.length).to.equal(2) + expect(await todos[1].state).to.equal("todo://done") + }) + + }) + + describe("SDNA creation decorators", () => { + @SDNAClass({ + name: "Message" + }) + class Message { + //@ts-ignore + @subjectFlag({ + through: "ad4m://type", + value: "ad4m://message" + }) + type: string = "" + + //@ts-ignore + @instanceQuery() + static async all(perspective: PerspectiveProxy): Promise { return [] } + + //@ts-ignore + @subjectProperty({ + through: "todo://state", + initial: "todo://ready", + writable: true, + }) + body: string = "" + } + + // This class matches the SDNA in ./sdna/subject.pl + // and this test proves the decorators create the exact same SDNA code + @SDNAClass({ + name: "Todo" + }) + class Todo { + // Setting this member "subjectConstructer" allows for adding custom + // actions that will be run when a subject is constructed. + // + // In this test, we don't need to use it, because the used "initial" + // parameter on "state" below will have the same effect as the following: + // subjectConstructor = [addLink("this", "todo://state", "todo://ready")] + + // Setting this member "isSubjectInstance" allows for adding custom clauses + // to the instance check. + // + // In this test, we don't need to use it, because the used "required" + // parameter on "state" below will have the same effect as the following: + // isSubjectInstance = [hasLink("todo://state")] + + //@ts-ignore + @instanceQuery() + static async all(perspective: PerspectiveProxy): Promise { return [] } + + @instanceQuery({where: {state: "todo://ready"}}) + static async allReady(perspective: PerspectiveProxy): Promise { return [] } + + @instanceQuery({where: { state: "todo://done" }}) + static async allDone(perspective: PerspectiveProxy): Promise { return [] } + + @instanceQuery({condition: 'triple("ad4m://self", _, Instance)'}) + static async allSelf(perspective: PerspectiveProxy): Promise { return [] } + + //@ts-ignore + @subjectProperty({ + through: "todo://state", + initial:"todo://ready", + writable: true, + required: true + }) + state: string = "" + + //@ts-ignore + @subjectProperty({ + through: "todo://has_title", + writable: true, + resolveLanguage: "literal" + }) + title: string = "" + + @subjectProperty({ + getter: `triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true` + }) + isLiked: boolean = false + + //@ts-ignore + @subjectCollection({ through: "todo://comment" }) + // @ts-ignore + comments: string[] = [] + + //@ts-ignore + @subjectCollection({ through: "flux://entry_type" }) + entries: string[] = [] + + //@ts-ignore + @subjectCollection({ + through: "flux://entry_type", + where: { isInstance: Message } + }) + messages: string[] = [] + + //@ts-ignore + @subjectCollection({ + through: "flux://entry_type", + where: { condition: `triple(Target, "flux://has_reaction", "flux://thumbsup")` } + }) + likedMessages: string[] = [] + } + + it("should generate correct SDNA from a JS class", async () => { + // @ts-ignore + let sdna = Todo.generateSDNA() + + const regExp = /\("Todo", ([^)]+)\)/; + const matches = regExp.exec(sdna); + const value = matches![1]; + + const equal = readFileSync("./sdna/subject.pl").toString().replace(/c\)/g, `${value})`).replace(/\(c/g, `(${value}`); + + expect(sdna.normalize('NFC')).to.equal(equal.normalize('NFC')) + }) + + it("should be possible to use that class for type-safe interaction with subject instances", async () => { + // construct new subject intance + let root = Literal.from("Decorated class construction test").toUrl() + // get instance with type information + let todo = await perspective!.createSubject(new Todo(), root) + + expect(await perspective!.isSubjectInstance(root, new Todo())).to.not.be.false + let todo2 = await perspective!.getSubjectProxy(root, new Todo()) + expect(todo2).to.have.property("state") + expect(todo2).to.have.property("title") + expect(todo2).to.have.property("comments") + // @ts-ignore + await todo.setState("todo://review") + expect(await todo.state).to.equal("todo://review") + expect(await todo.comments).to.be.empty + + let comment = Literal.from("new comment").toUrl() + // @ts-ignore + await todo.addComments(comment) + expect(await todo.comments).to.deep.equal([comment]) + }) + + it("can retrieve all instances through instaceQuery decoratored all()", async () => { + let todos = await Todo.all(perspective!) + expect(todos.length).to.equal(3) + }) + + it("can retrieve all mathching instance through instanceQuery(where: ..)", async () => { + let todos = await Todo.allReady(perspective!) + expect(todos.length).to.equal(1) + expect(await todos[0].state).to.equal("todo://ready") + + todos = await Todo.allDone(perspective!) + expect(todos.length).to.equal(1) + expect(await todos[0].state).to.equal("todo://done") + }) + + it("can retrieve matching instance through instanceQuery(condition: ..)", async () => { + let todos = await Todo.allSelf(perspective!) + expect(todos.length).to.equal(0) + + todos = await Todo.all(perspective!) + let todo = todos[0] + //@ts-ignore + await perspective!.add(new Link({source: "ad4m://self", target: todo.baseExpression})) + + todos = await Todo.allSelf(perspective!) + expect(todos.length).to.equal(1) + }) + + it("can deal with properties that resolve the URI and create Expressions", async () => { + let todos = await Todo.all(perspective!) + let todo = todos[0] + expect(await todo.title).to.be.undefined + + // @ts-ignore + await todo.setTitle("new title") + expect(await todo.title).to.equal("new title") + + //@ts-ignore + let links = await perspective!.get(new LinkQuery({source: todo.baseExpression, predicate: "todo://has_title"})) + expect(links.length).to.equal(1) + let literal = Literal.fromUrl(links[0].data.target).get() + expect(literal.data).to.equal("new title") + }) + + it("can easily be initialized with PerspectiveProxy.ensureSDNASubjectClass()", async () => { + expect(await perspective!.getSdna()).to.have.lengthOf(1) + + @SDNAClass({ + name: "Test" + }) + class Test { + @subjectProperty({through: "test://test_numer"}) + number: number = 0 + } + + await perspective!.ensureSDNASubjectClass(Test) + + expect(await perspective!.getSdna()).to.have.lengthOf(2) + //console.log((await perspective!.getSdna())[1]) + }) + + it("can constrain collection entries through 'where' clause with prolog condition", async () => { + let root = Literal.from("Collection where test with prolog condition").toUrl() + let todo = await perspective!.createSubject(new Todo(), root) + + let messageEntry = Literal.from("test message").toUrl() + + // @ts-ignore + await todo.addEntries(messageEntry) + + let entries = await todo.entries + expect(entries.length).to.equal(1) + + let messageEntries = await todo.likedMessages + expect(messageEntries.length).to.equal(0) + + await perspective?.add(new Link({source: messageEntry, predicate: "flux://has_reaction", target: "flux://thumbsup"})) + + messageEntries = await todo.likedMessages + expect(messageEntries.length).to.equal(1) + }) + + it("can use properties with custom getter prolog code", async () => { + let root = Literal.from("Custom getter test").toUrl() + let todo = await perspective!.createSubject(new Todo(), root) + + // @ts-ignore + const liked1 = await todo.isLiked + expect(liked1).to.be.undefined + + await perspective?.add(new Link({source: root, predicate: "flux://has_reaction", target: "flux://thumbsup"})) + + // @ts-ignore + const liked2 = await todo.isLiked + expect(liked2).to.be.true + }) + + describe("with Message subject class registered", () => { + before(async () => { + // @ts-ignore + perspective!.addSdna(Message.generateSDNA()) + }) + + it("can find instances through the exact flag link", async() => { + await perspective!.add(new Link({ + source: "test://message", + predicate: "ad4m://type", + target: "ad4m://undefined" + })) + + const first = await Message.all(perspective!) + expect(first.length).to.be.equal(0) + + await perspective!.add(new Link({ + source: "test://message", + predicate: "ad4m://type", + target: "ad4m://message" + })) + + const second = await Message.all(perspective!) + expect(second.length).to.be.equal(1) + }) + + it("can constrain collection entries through 'where' clause", async () => { + let root = Literal.from("Collection where test").toUrl() + let todo = await perspective!.createSubject(new Todo(), root) + + let messageEntry = Literal.from("test message").toUrl() + + // @ts-ignore + await todo.addEntries(messageEntry) + + let entries = await todo.entries + expect(entries.length).to.equal(1) + + let messageEntries = await todo.messages + expect(messageEntries.length).to.equal(0) + + await perspective!.createSubject(new Message(), messageEntry) + + messageEntries = await todo.messages + expect(messageEntries.length).to.equal(1) + }) + + }) + + describe("Active record implementation", () => { + @SDNAClass({ + name: "Recipe" + }) + class Recipe extends SubjectEntity { + //@ts-ignore + @subjectFlag({ + through: "ad4m://type", + value: "ad4m://recipe" + }) + type: string = "" + + //@ts-ignore + @subjectProperty({ + through: "recipe://name", + writable: true, + }) + name: string = "" + + //@ts-ignore + @subjectCollection({ through: "recipe://entries" }) + entries: string[] = [] + + // @ts-ignore + @subjectCollection({ + through: "recipe://entries", + where: { condition: `triple(Target, "recipe://has_ingredient", "recipe://test")` } + }) + // @ts-ignore + ingredients: []; + + //@ts-ignore + @subjectCollection({ through: "recipe://comment" }) + // @ts-ignore + comments: string[] = [] + } + + before(async () => { + // @ts-ignore + perspective!.addSdna(Recipe.generateSDNA()) + }) + + it("save() & get()", async () => { + let root = Literal.from("Active record implementation test").toUrl() + const recipe = new Recipe(perspective!, root) + + recipe.name = "recipe://test"; + + await recipe.save(); + + const recipe2 = new Recipe(perspective!, root); + + await recipe2.get(); + + expect(recipe2.name).to.equal("recipe://test") + }) + + it("delete()", async () => { + let root = Literal.from("Active record implementation test delete").toUrl() + const recipe = new Recipe(perspective!, root) + + recipe.name = "recipe://test"; + + await recipe.save(); + + const recipe2 = await Recipe.all(perspective!); + + expect(recipe2.length).to.equal(2) + + await recipe.delete(); + + const recipe3 = await Recipe.all(perspective!); + + expect(recipe3.length).to.equal(1) + }) + + it("update()", async () => { + let root = Literal.from("Active record implementation test").toUrl() + const recipe = new Recipe(perspective!, root) + + recipe.name = "recipe://test1"; + + await recipe.update(); + + const recipe2 = new Recipe(perspective!, root); + + await recipe2.get(); + + expect(recipe2.name).to.equal("recipe://test1") + }) + + it("find()", async () => { + const recipes = await Recipe.all(perspective!); + + expect(recipes.length).to.equal(1) + }) + + it("can constrain collection entries clause", async () => { + let root = Literal.from("Active record implementation collection test").toUrl() + const recipe = new Recipe(perspective!, root) + + recipe.name = "recipe://collection_test"; + + recipe.comments = ['test', 'test1'] + + await recipe.save() + + const recipe2 = new Recipe(perspective!, root); + + await recipe2.get(); + + expect(recipe2.comments.length).to.equal(2) + }) + + it("can constrain collection entries through 'where' clause with prolog condition", async () => { + let root = Literal.from("Active record implementation collection test 1").toUrl() + + const recipe = new Recipe(perspective!, root) + + let recipeEntries = Literal.from("test recipes").toUrl() + + recipe.entries = [recipeEntries] + recipe.comments = ['test', 'test1'] + recipe.name = "recipe://collection_test"; + + await recipe.save() + + await perspective?.add(new Link({source: recipeEntries, predicate: "recipe://has_ingredient", target: "recipe://test"})) + + await recipe.get() + + const recipe2 = new Recipe(perspective!, root); + + await recipe2.get(); + + expect(recipe2.ingredients.length).to.equal(1) + }) + }) + }) + }) + + + describe("Smart Literal", () => { + let perspective: PerspectiveProxy | null = null + + before(async () => { + perspective = await ad4m!.perspective.add("smart literal test") + // for test debugging: + console.log("UUID: " + perspective.uuid) + }) + + it("can create and use a new smart literal", async () => { + let sl = await SmartLiteral.create(perspective!, "Hello World") + let base = sl.base + + expect(await sl.get()).to.equal("Hello World") + + let links = await perspective!.get(new LinkQuery({predicate: SMART_LITERAL_CONTENT_PREDICATE})) + expect(links.length).to.equal(1) + expect(links[0].data.source).to.equal(base) + let literal = Literal.fromUrl(links[0].data.target) + expect(literal.get()).to.equal("Hello World") + + await sl.set(5) + expect(await sl.get()).to.equal(5) + + links = await perspective!.get(new LinkQuery({predicate: SMART_LITERAL_CONTENT_PREDICATE})) + expect(links.length).to.equal(1) + expect(links[0].data.source).to.equal(base) + literal = Literal.fromUrl(links[0].data.target) + expect(literal.get()).to.equal(5) + }) + + + it("can instantiate smart literal from perspective", async () => { + let source = Literal.from("base").toUrl() + let target = Literal.from("Hello World 2").toUrl() + await perspective!.add({source, predicate: SMART_LITERAL_CONTENT_PREDICATE, target}) + + let sl = new SmartLiteral(perspective!, source) + expect(await sl.get()).to.equal("Hello World 2") + }) + + it("can get all smart literals in a perspective",async () => { + let all = await SmartLiteral.getAllSmartLiterals(perspective!) + expect(all.length).to.equal(2) + expect(all[1].base).to.equal(Literal.from("base").toUrl()) + expect(await all[0].get()).to.equal(5) + expect(await all[1].get()).to.equal("Hello World 2") + }) + + }) + +}) + +function sleep(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} \ No newline at end of file diff --git a/tests/js/tests/runtime.ts b/tests/js/tests/runtime.ts index fc579e25c..6910e0a44 100644 --- a/tests/js/tests/runtime.ts +++ b/tests/js/tests/runtime.ts @@ -1,4 +1,4 @@ -import { TestContext } from './full-integration.test' +import { TestContext } from './integration.test' import fs from "fs"; import { expect } from "chai"; diff --git a/tests/js/tests/social-dna-flow.ts b/tests/js/tests/social-dna-flow.ts index a94370540..3892405e8 100644 --- a/tests/js/tests/social-dna-flow.ts +++ b/tests/js/tests/social-dna-flow.ts @@ -1,5 +1,5 @@ import { Link, LinkQuery, Literal } from "@perspect3vism/ad4m"; -import { TestContext } from './full-integration.test' +import { TestContext } from './integration.test' import { expect } from "chai"; export default function socialDNATests(testContext: TestContext) { diff --git a/tests/js/tsconfig.json b/tests/js/tsconfig.json index 8f114da31..68b7eee54 100644 --- a/tests/js/tsconfig.json +++ b/tests/js/tsconfig.json @@ -1,7 +1,6 @@ { "include": [ - "*.ts" -, "tests/agent-language.ts", "tests/agent.ts", "tests/app.test.ts", "tests/authentication.test.ts", "tests/direct-messages.ts", "tests/expression.ts", "tests/full-integration.test.ts", "tests/integration.test.ts", "tests/language.ts", "tests/neighbourhood.ts", "tests/perspective.ts", "tests/runtime.ts", "tests/simple.test.ts", "tests/social-dna-flow.ts", "utils/utils.ts" ], + "*.ts", "tests/agent-language.ts", "tests/agent.ts", "tests/app.test.ts", "tests/authentication.test.ts", "tests/direct-messages.ts", "tests/expression.ts", "tests/integration.test.ts", "tests/prolog-and-literals.test.ts", "tests/language.ts", "tests/neighbourhood.ts", "tests/perspective.ts", "tests/runtime.ts", "tests/simple.test.ts", "tests/social-dna-flow.ts", "utils/utils.ts" ], "exclude": ["./src/tests/*", "./src/**/*.test.ts", "./src/testsutils/*"], "compilerOptions": { /* Visit https://aka.ms/tsconfig.json to read more about this file */ From 2061ab07358fce3576cf095352573465294ca779 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 5 Jul 2023 18:09:17 +0100 Subject: [PATCH 405/722] fix missing admin credential to app.test.ts --- tests/js/tests/app.test.ts | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/tests/js/tests/app.test.ts b/tests/js/tests/app.test.ts index 7df776bf3..660afa8bf 100644 --- a/tests/js/tests/app.test.ts +++ b/tests/js/tests/app.test.ts @@ -33,22 +33,23 @@ describe("Apps integration tests", () => { let executorProcess: ChildProcess | null = null before(async () => { - if (!fs.existsSync(appDataPath)) { - fs.mkdirSync(appDataPath, { recursive: true }); + if(!fs.existsSync(TEST_DIR)) { + throw Error("Please ensure that prepare-test is run before running tests!"); } + if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) + fs.mkdirSync(path.join(TEST_DIR, 'agents')) + if(!fs.existsSync(appDataPath)) + fs.mkdirSync(appDataPath) executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); - // @ts-ignore - adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123")) - await adminAd4mClient.agent.generate("passphrase") - // await agentCore.waitForAgent(); - // agentCore.initControllers() - // await agentCore.initLanguages() - - - // @ts-ignore - unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort)) + gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort , false, "123"); + + // @ts-ignore + adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123"), false) + await adminAd4mClient.agent.generate("passphrase") + + // @ts-ignore + unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort), false) }) after(async () => { @@ -77,7 +78,7 @@ describe("Apps integration tests", () => { let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { return await authenticatedAppAd4mClient!.agent.getApps(); @@ -115,8 +116,10 @@ describe("Apps integration tests", () => { let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appUrl":"demo-url","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) + console.log("can revoke checking apps"); + // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { return await authenticatedAppAd4mClient!.agent.getApps(); @@ -153,8 +156,10 @@ describe("Apps integration tests", () => { let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appUrl":"demo-url","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) + console.log("can remove checking apps"); + // @ts-ignore - let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt)) + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { return await authenticatedAppAd4mClient!.agent.getApps(); From cd385c6551a2912878011b88dd4917606ab1bc89 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 10:19:20 +0100 Subject: [PATCH 406/722] improve app.test.ts tests --- tests/js/tests/app.test.ts | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/tests/js/tests/app.test.ts b/tests/js/tests/app.test.ts index 660afa8bf..bef5e00c9 100644 --- a/tests/js/tests/app.test.ts +++ b/tests/js/tests/app.test.ts @@ -44,11 +44,9 @@ describe("Apps integration tests", () => { executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort , false, "123"); - // @ts-ignore adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123"), false) await adminAd4mClient.agent.generate("passphrase") - // @ts-ignore unAuthenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort), false) }) @@ -74,10 +72,9 @@ describe("Apps integration tests", () => { } ] as CapabilityInput[] } as AuthInfoInput) - let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appUrl":"demo-url","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) + let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appDomain": "test.ad4m.org","appUrl":"https://demo-link","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) - - // @ts-ignore + let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { @@ -91,6 +88,7 @@ describe("Apps integration tests", () => { const oldApps = await adminAd4mClient!.agent.getApps(); expect(oldApps.length).to.be.equal(1); + expect(oldApps[0].revoked).to.be.equal(null); const newApps = await adminAd4mClient!.agent.revokeToken(requestId); @@ -113,12 +111,9 @@ describe("Apps integration tests", () => { } ] as CapabilityInput[] } as AuthInfoInput) - let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appUrl":"demo-url","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) + let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appDomain":"test.ad4m.org","appUrl":"https://demo-link","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) - console.log("can revoke checking apps"); - - // @ts-ignore let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) const call = async () => { @@ -153,11 +148,9 @@ describe("Apps integration tests", () => { } ] as CapabilityInput[] } as AuthInfoInput) - let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appUrl":"demo-url","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) + let rand = await adminAd4mClient!.agent.permitCapability(`{"requestId":"${requestId}","auth":{"appName":"demo-app","appDesc":"demo-desc","appDomain":"test.ad4m.org","appUrl":"https://demo-link","capabilities":[{"with":{"domain":"agent","pointers":["*"]},"can":["*"]}]}}`) let jwt = await adminAd4mClient!.agent.generateJwt(requestId, rand) - console.log("can remove checking apps"); - // @ts-ignore let authenticatedAppAd4mClient = new Ad4mClient(apolloClient(gqlPort, jwt), false) From 9dc81e1c858757676010131bd4a4298e80495ade Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 10:19:43 +0100 Subject: [PATCH 407/722] fix auth checking --- executor/src/core/agent/Auth.ts | 11 +++++++---- executor/src/core/graphQL-interface/GraphQL.ts | 1 - 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/executor/src/core/agent/Auth.ts b/executor/src/core/agent/Auth.ts index b0c44fe44..a8a3b9401 100644 --- a/executor/src/core/agent/Auth.ts +++ b/executor/src/core/agent/Auth.ts @@ -369,12 +369,15 @@ export const checkTokenAuthorized = ( if (!isAd4minCredential) { if (apps.length > 0) { if (token) { - const app = apps.find((app) => app.token === token); + const filteredApps = apps.filter((app) => app.token === token); - if (!app) { - throw Error(`Unauthorized access`); - } else if (app.revoked) { + if (filteredApps.length === 0) { throw Error(`Unauthorized access`); + } else { + const noRevoked = filteredApps.filter((app) => !app.revoked); + if (noRevoked.length === 0) { + throw Error(`Unauthorized access`); + } } } } diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 7942b2a3c..f15183b71 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -628,7 +628,6 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { checkCapability(context.capabilities, Auth.AGENT_AUTH_CAPABILITY) const { requestId, rand } = args; let jwt = await core.agentService.generateJwt(requestId, rand) - console.log("Generated JWT: ", jwt); return jwt; }, //@ts-ignore From 04088dacc91fb894df76b5b85ac68f418002fbbd Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 11:01:37 +0100 Subject: [PATCH 408/722] delete old deps from executor --- executor/package.json | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/executor/package.json b/executor/package.json index 26b3310ca..6dc8d8aef 100644 --- a/executor/package.json +++ b/executor/package.json @@ -43,14 +43,9 @@ "url": "https://github.com/perspect3vism/ad4m/issues" }, "devDependencies": { - "@peculiar/webcrypto": "^1.1.7", "@types/chai": "*", - "@types/chai-as-promised": "*", - "@types/expect": "*", "@types/faker": "^5.5.7", - "@types/fs-extra": "^9.0.12", "@types/js-yaml": "^4.0.2", - "@types/lowdb": "^1.0.11", "@types/mocha": "*", "@types/node": "^18.0.0", "@types/secp256k1": "^4.0.3", @@ -58,46 +53,29 @@ "@types/sinon": "*", "@types/uuid": "^8.3.1", "chai": "*", - "chai-as-promised": "*", - "esbuild": "^0.18.11", - "esbuild-plugin-alias": "^0.2.1", - "esbuild-plugin-polyfill-node": "^0.2.0", "faker": "^5.1.0", "mocha": "*", - "node-wget-js": "^1.0.1", - "react": "^17.0.1", "sinon": "*", - "ts-mocha": "*", - "ts-node": "10.9.1", - "typescript": "^4.6.2", - "unzipper": "^0.10.11" + "ts-mocha": "*" }, "dependencies": { "@holochain/client": "perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b", "@msgpack/msgpack": "^2.7.2", "@noble/secp256k1": "^1.7.0", "@perspect3vism/ad4m": "*", - "@transmute/did-key-ed25519": "^0.2.1-unstable.29", - "@transmute/did-key-secp256k1": "^0.2.1-unstable.29", "@transmute/did-key.js": "^0.2.1-unstable.29", - "@transmute/did-wallet": "lucksus/did-wallet", - "@types/express": "^4.17.14", "@types/json-stable-stringify": "^1.0.33", "@types/mocha": "^10.0.0", "aloedb-node": "^1.1.1", "async-mutex": "^0.3.2", - "express": "4.18.2", "get-port": "5.1.1", - "jose": "^4.8.1", "js-yaml": "^4.1.0", "json-stable-stringify": "^1.0.1", - "key-encoder": "^2.0.3", "linkedom": "^0.14.26", "lodash": "^4.17.21", - "run-script-os": "^1.1.6", "sha256": "^0.2.0", - "sha3": "^2.1.3", "swipl-stdio": "https://github.com/perspect3vism/node-swipl-stdio.git", - "tmp": "^0.2.1" + "tmp": "^0.2.1", + "uuid": "*" } } From ee6c2326cda3e906192ed6c4e4e61351d3eb21f5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 11:01:53 +0100 Subject: [PATCH 409/722] yarn.lock --- yarn.lock | 244 +++--------------------------------------------------- 1 file changed, 13 insertions(+), 231 deletions(-) diff --git a/yarn.lock b/yarn.lock index f67ed2781..66477d9ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1678,11 +1678,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== -"@esbuild/android-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.11.tgz#fa6f0cc7105367cb79cc0a8bf32bf50cb1673e45" - integrity sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw== - "@esbuild/android-arm@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" @@ -1693,91 +1688,46 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== -"@esbuild/android-arm@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.11.tgz#ae84a410696c9f549a15be94eaececb860bacacb" - integrity sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q== - "@esbuild/android-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== -"@esbuild/android-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.11.tgz#0e58360bbc789ad0d68174d32ba20e678c2a16b6" - integrity sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw== - "@esbuild/darwin-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== -"@esbuild/darwin-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.11.tgz#fcdcd2ef76ca656540208afdd84f284072f0d1f9" - integrity sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w== - "@esbuild/darwin-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== -"@esbuild/darwin-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.11.tgz#c5ac602ec0504a8ff81e876bc8a9811e94d69d37" - integrity sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw== - "@esbuild/freebsd-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== -"@esbuild/freebsd-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.11.tgz#7012fb06ee3e6e0d5560664a65f3fefbcc46db2e" - integrity sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A== - "@esbuild/freebsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== -"@esbuild/freebsd-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.11.tgz#c5de1199f70e1f97d5c8fca51afa9bf9a2af5969" - integrity sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q== - "@esbuild/linux-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== -"@esbuild/linux-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.11.tgz#2a6d3a74e0b8b5f294e22b4515b29f76ebd42660" - integrity sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog== - "@esbuild/linux-arm@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== -"@esbuild/linux-arm@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.11.tgz#5175bd61b793b436e4aece6328aa0d9be07751e1" - integrity sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg== - "@esbuild/linux-ia32@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== -"@esbuild/linux-ia32@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.11.tgz#20ee6cfd65a398875f321a485e7b2278e5f6f67b" - integrity sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw== - "@esbuild/linux-loong64@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" @@ -1788,121 +1738,61 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== -"@esbuild/linux-loong64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.11.tgz#8e7b251dede75083bf44508dab5edce3f49d052b" - integrity sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw== - "@esbuild/linux-mips64el@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== -"@esbuild/linux-mips64el@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.11.tgz#a3125eb48538ac4932a9d05089b157f94e443165" - integrity sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg== - "@esbuild/linux-ppc64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== -"@esbuild/linux-ppc64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.11.tgz#842abadb7a0995bd539adee2be4d681b68279499" - integrity sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ== - "@esbuild/linux-riscv64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== -"@esbuild/linux-riscv64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.11.tgz#7ce6e6cee1c72d5b4d2f4f8b6fcccf4a9bea0e28" - integrity sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w== - "@esbuild/linux-s390x@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== -"@esbuild/linux-s390x@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.11.tgz#98fbc794363d02ded07d300df2e535650b297b96" - integrity sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg== - "@esbuild/linux-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== -"@esbuild/linux-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.11.tgz#f8458ec8cf74c8274e4cacd00744d8446cac52eb" - integrity sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA== - "@esbuild/netbsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== -"@esbuild/netbsd-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.11.tgz#a7b2f991b8293748a7be42eac1c4325faf0c7cca" - integrity sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q== - "@esbuild/openbsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== -"@esbuild/openbsd-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.11.tgz#3e50923de84c54008f834221130fd23646072b2f" - integrity sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ== - "@esbuild/sunos-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== -"@esbuild/sunos-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.11.tgz#ae47a550b0cd395de03606ecfba03cc96c7c19e2" - integrity sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng== - "@esbuild/win32-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== -"@esbuild/win32-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.11.tgz#05d364582b7862d7fbf4698ef43644f7346dcfcc" - integrity sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg== - "@esbuild/win32-ia32@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== -"@esbuild/win32-ia32@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.11.tgz#a3372095a4a1939da672156a3c104f8ce85ee616" - integrity sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg== - "@esbuild/win32-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== -"@esbuild/win32-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.11.tgz#6526c7e1b40d5b9f0a222c6b767c22f6fb97aa57" - integrity sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA== - "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -2584,11 +2474,6 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@jspm/core@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@jspm/core/-/core-2.0.1.tgz#3f08c59c60a5f5e994523ed6b0b665ec80adc94e" - integrity sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw== - "@junto-foundation/junto-elements@^0.5.5": version "0.5.5" resolved "https://registry.yarnpkg.com/@junto-foundation/junto-elements/-/junto-elements-0.5.5.tgz#525b254faee09fed9fdb4a89c2dc38285e913672" @@ -3711,7 +3596,7 @@ canonicalize "^1.0.3" cbor "^5.1.0" -"@transmute/did-key-ed25519@^0.2.1-unstable.29", "@transmute/did-key-ed25519@^0.2.1-unstable.42": +"@transmute/did-key-ed25519@^0.2.1-unstable.42": version "0.2.1-unstable.42" resolved "https://registry.yarnpkg.com/@transmute/did-key-ed25519/-/did-key-ed25519-0.2.1-unstable.42.tgz#b319eea9991f3ed092c221fee69bbe1edd71d8a1" integrity sha512-FObeBtLd5Dl2rng8pBXQ0ddGAUpv9Upl07mDNWanfCWNxsO3csLv1JskLgp5ZTKwDaoWkUMMU+DTOQVVcHKpPw== @@ -3724,7 +3609,7 @@ bs58 "^4.0.1" canonicalize "^1.0.1" -"@transmute/did-key-secp256k1@^0.2.1-unstable.29", "@transmute/did-key-secp256k1@^0.2.1-unstable.42": +"@transmute/did-key-secp256k1@^0.2.1-unstable.42": version "0.2.1-unstable.42" resolved "https://registry.yarnpkg.com/@transmute/did-key-secp256k1/-/did-key-secp256k1-0.2.1-unstable.42.tgz#619a2bcc10c53adb831930610f1c49f5ec771261" integrity sha512-pLHsxVEeJYUz2jaUWznGJHRaRE+Fg3A4DiArWYpRSozYaSW5x2AhXELN+08qvU4E8FjiQmqInf8KqeS0hlUJoQ== @@ -3768,14 +3653,6 @@ "@transmute/did-key-web-crypto" "^0.2.1-unstable.42" "@transmute/did-key-x25519" "^0.2.1-unstable.42" -"@transmute/did-wallet@lucksus/did-wallet": - version "0.0.0-6" - resolved "https://codeload.github.com/lucksus/did-wallet/tar.gz/cf8b1d1d92d6fcc545f820ddffcc2dc4d1398bd2" - dependencies: - base64url "^3.0.1" - jsonschema "^1.2.4" - lodash "^4.17.11" - "@transmute/ld-key-pair@^0.6.1-unstable.37": version "0.6.1-unstable.37" resolved "https://registry.yarnpkg.com/@transmute/ld-key-pair/-/ld-key-pair-0.6.1-unstable.37.tgz#ffe8af071b4ea991a49c795724b93999f4e6c8af" @@ -3881,13 +3758,6 @@ dependencies: "@babel/types" "^7.20.7" -"@types/bn.js@*": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== - dependencies: - "@types/node" "*" - "@types/body-parser@*", "@types/body-parser@1.19.2": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -3952,13 +3822,6 @@ dependencies: "@types/ms" "*" -"@types/elliptic@^6.4.9": - version "6.4.14" - resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.14.tgz#7bbaad60567a588c1f08b10893453e6b9b4de48e" - integrity sha512-z4OBcDAU0GVwDTuwJzQCiL6188QvZMkvoERgcVjq0/mPM8jCfdwZ3x5zQEVoL9WCAru3aG5wl3Z5Ww5wBWn7ZQ== - dependencies: - "@types/bn.js" "*" - "@types/eslint-scope@^3.7.3": version "3.7.4" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" @@ -4018,7 +3881,7 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14", "@types/express@^4.17.8": +"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.8": version "4.17.17" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== @@ -5487,7 +5350,7 @@ asciidoctor@^2.2.0: "@asciidoctor/cli" "3.5.0" "@asciidoctor/core" "2.2.6" -asn1.js@^5.0.1, asn1.js@^5.2.0: +asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== @@ -5996,7 +5859,7 @@ bluebird@~3.4.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -6344,14 +6207,6 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - buffer@^5.1.0, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -8802,7 +8657,7 @@ elkjs@^0.8.2: resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.8.2.tgz#c37763c5a3e24e042e318455e0147c912a7c248e" integrity sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ== -elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -9121,24 +8976,11 @@ esbuild-openbsd-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== -esbuild-plugin-alias@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz#45a86cb941e20e7c2bc68a2bea53562172494fcb" - integrity sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ== - esbuild-plugin-lit@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/esbuild-plugin-lit/-/esbuild-plugin-lit-0.0.10.tgz#919b7794576bca351ca06a0be2a5a3f22dd1f662" integrity sha512-0Vz+TRglIQsV2plsRJw+opO8erTIwXLtKjcFOLOiQDxRvKjFnmlENdB+fL9eLxXQu1HjRZkI9WW0ywWldoymtQ== -esbuild-plugin-polyfill-node@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/esbuild-plugin-polyfill-node/-/esbuild-plugin-polyfill-node-0.2.0.tgz#26a3572c6b32bee126319ebdb4fa3ab584e30106" - integrity sha512-rpCoK4mag0nehBtFlFMLSuL9bNBLEh8h3wZ/FsrJEDompA/AwOqInx6Xow01+CXAcvZYhkoJ0SIZiS37qkecDA== - dependencies: - "@jspm/core" "^2.0.1" - import-meta-resolve "^2.2.2" - esbuild-sunos-64@0.15.18: version "0.15.18" resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" @@ -9215,34 +9057,6 @@ esbuild@^0.17.5: "@esbuild/win32-ia32" "0.17.19" "@esbuild/win32-x64" "0.17.19" -esbuild@^0.18.11: - version "0.18.11" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.11.tgz#cbf94dc3359d57f600a0dbf281df9b1d1b4a156e" - integrity sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA== - optionalDependencies: - "@esbuild/android-arm" "0.18.11" - "@esbuild/android-arm64" "0.18.11" - "@esbuild/android-x64" "0.18.11" - "@esbuild/darwin-arm64" "0.18.11" - "@esbuild/darwin-x64" "0.18.11" - "@esbuild/freebsd-arm64" "0.18.11" - "@esbuild/freebsd-x64" "0.18.11" - "@esbuild/linux-arm" "0.18.11" - "@esbuild/linux-arm64" "0.18.11" - "@esbuild/linux-ia32" "0.18.11" - "@esbuild/linux-loong64" "0.18.11" - "@esbuild/linux-mips64el" "0.18.11" - "@esbuild/linux-ppc64" "0.18.11" - "@esbuild/linux-riscv64" "0.18.11" - "@esbuild/linux-s390x" "0.18.11" - "@esbuild/linux-x64" "0.18.11" - "@esbuild/netbsd-x64" "0.18.11" - "@esbuild/openbsd-x64" "0.18.11" - "@esbuild/sunos-x64" "0.18.11" - "@esbuild/win32-arm64" "0.18.11" - "@esbuild/win32-ia32" "0.18.11" - "@esbuild/win32-x64" "0.18.11" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -11535,7 +11349,7 @@ identity-obj-proxy@^3.0.0: dependencies: harmony-reflect "^1.4.6" -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: +ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -11631,11 +11445,6 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" -import-meta-resolve@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz#75237301e72d1f0fbd74dbc6cca9324b164c2cc9" - integrity sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA== - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -13421,11 +13230,6 @@ jiti@^1.18.2: resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== -jose@^4.8.1: - version "4.14.4" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca" - integrity sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g== - js-base64@^3.7.3: version "3.7.5" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" @@ -13621,11 +13425,6 @@ jsonschema@1.1.0: resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.1.0.tgz#039cc219ed524b06e71daf12ca60d02639faf29a" integrity sha512-nQhT+ioA1XM8CpxJYlBfcUj6HF3f3f2KbLgV3tcxOt85RKpk2b0Do/C5BnCCCfdAarAjWRSFlln0Uanl4tBCHA== -jsonschema@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" - integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== - jsprim@^1.2.2: version "1.4.2" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" @@ -13667,16 +13466,6 @@ katex@^0.16.0, katex@^0.16.7: dependencies: commander "^8.3.0" -key-encoder@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba" - integrity sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg== - dependencies: - "@types/elliptic" "^6.4.9" - asn1.js "^5.0.1" - bn.js "^4.11.8" - elliptic "^6.4.1" - keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -14066,7 +13855,7 @@ lodash.zip@^4.2.0: resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" integrity sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== -lodash@4.x, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.7.0: +lodash@4.x, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -19284,13 +19073,6 @@ sha256@^0.2.0: convert-hex "~0.1.0" convert-string "~0.1.0" -sha3@^2.1.3: - version "2.1.4" - resolved "https://registry.yarnpkg.com/sha3/-/sha3-2.1.4.tgz#000fac0fe7c2feac1f48a25e7a31b52a6492cc8f" - integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg== - dependencies: - buffer "6.0.3" - shasum-object@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" @@ -21349,6 +21131,11 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +uuid@*, uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -21359,11 +21146,6 @@ uuid@^8.3.0, uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - uvu@^0.5.0: version "0.5.6" resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" From 53c7513a15e211fffefa57cbcced05b845dece94 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 11:04:29 +0100 Subject: [PATCH 410/722] remove dead code & replace all instances of Perspectivism with ad4m --- .../{PerspectivismCore.ts => Ad4mCore.ts} | 37 ++--- executor/src/core/LanguageController.ts | 6 +- executor/src/core/Perspective.test.ts | 4 +- executor/src/core/Perspective.ts | 4 +- ...AgentInfo.ts => ad4mHolochainAgentInfo.ts} | 0 executor/src/core/agent/AgentService.ts | 3 - executor/src/core/agent/Auth.ts | 2 - executor/src/core/agent/DIDs.ts | 2 - executor/src/core/db.test.ts | 10 +- executor/src/core/db.ts | 6 +- .../src/core/graphQL-interface/GraphQL.ts | 134 +----------------- .../Holochain/HolochainService.ts | 4 +- executor/src/main.ts | 13 +- 13 files changed, 34 insertions(+), 191 deletions(-) rename executor/src/core/{PerspectivismCore.ts => Ad4mCore.ts} (93%) rename executor/src/core/{perspect3vismAgentInfo.ts => ad4mHolochainAgentInfo.ts} (100%) diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/Ad4mCore.ts similarity index 93% rename from executor/src/core/PerspectivismCore.ts rename to executor/src/core/Ad4mCore.ts index 8d7d81312..b565342fd 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -3,12 +3,11 @@ import { parseExprUrl, LanguageRef, Neighbourhood, PerspectiveState } from '@per import * as Config from './Config' import * as Db from './db' -import type { PerspectivismDb } from './db' +import type { Ad4mDb } from './db' import HolochainService, { HolochainConfiguration } from './storage-services/Holochain/HolochainService'; import AgentService from './agent/AgentService' import PerspectivesController from './PerspectivesController' import LanguageController from './LanguageController' -import * as GraphQL from './graphQL-interface/GraphQL' import * as DIDs from './agent/DIDs' import type { DIDResolver } from './agent/DIDs' import Signatures from './agent/Signatures' @@ -18,10 +17,8 @@ import runDAppServer from "./DAppServer" import fs from 'fs' import { AgentInfoResponse } from '@holochain/client' import RuntimeService from './RuntimeService' -import { PERSPECT3VIMS_AGENT_INFO } from './perspect3vismAgentInfo' import { v4 as uuidv4 } from 'uuid'; import { MainConfig } from './Config' -import { OuterConfig } from '../main' import path from "path"; import { getPubSub, sleep } from "./utils"; @@ -51,7 +48,7 @@ export interface ConnectHolochainParams { hcPortApp: number, } -export default class PerspectivismCore { +export default class Ad4mCore { #config: MainConfig; #holochain?: HolochainService //#IPFS?: IPFSType @@ -59,7 +56,7 @@ export default class PerspectivismCore { #agentService: AgentService #runtimeService: RuntimeService - #db: PerspectivismDb + #db: Ad4mDb #didResolver: DIDResolver #signatures: Signatures @@ -164,7 +161,7 @@ export default class PerspectivismCore { return this.#entanglementProofController } - get database(): PerspectivismDb { + get database(): Ad4mDb { return this.#db } @@ -183,18 +180,6 @@ export default class PerspectivismCore { console.log("Done.") } - /* - async startGraphQLServer(port: number, mocks: boolean, config: OuterConfig) { - const { url, subscriptionsUrl } = await GraphQL.startServer({ - core: this, - mocks, - port, - config - }) - console.log(`🚀 GraphQL Server ready at ${url}`) - console.log(`🚀 GraphQL subscriptions ready at ${subscriptionsUrl}`) - }*/ - startDAppServer(port: number) { runDAppServer(port) } @@ -253,7 +238,7 @@ export default class PerspectivismCore { async languageSignal(signal: any) { // //@ts-ignore - // console.log(new Date().toISOString(), "PerspectivismCore.languageSignal: Got signal"); + // console.log(new Date().toISOString(), "Ad4mCore.languageSignal: Got signal"); let pubSub = getPubSub(); //@ts-ignore await pubSub.publish(PubSubDefinitions.SIGNAL, { signal: JSON.stringify(signal), language: this.language }); @@ -382,10 +367,10 @@ export default class PerspectivismCore { await this.#holochain!.addAgentInfos(agent_infos) } - async connectToHardwiredPerspect3vismAgent() { - //@ts-ignore - await this.holochainAddAgentInfos(PERSPECT3VIMS_AGENT_INFO()) - console.debug("Added Perspect3vism Holochain agent infos.") + async connectToAd4mHolochainNode() { + // //@ts-ignore + // await this.holochainAddAgentInfos(PERSPECT3VIMS_AGENT_INFO()) + console.debug("Added AD4M Holochain agent infos.") } async initializeAgentsDirectMessageLanguage() { @@ -430,6 +415,6 @@ export default class PerspectivismCore { } } -export function create(config: Config.CoreConfig): PerspectivismCore { - return new PerspectivismCore(config) +export function create(config: Config.CoreConfig): Ad4mCore { + return new Ad4mCore(config) } \ No newline at end of file diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 2ba9814a1..bd92cd3c1 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -15,7 +15,7 @@ import yaml from "js-yaml"; import { v4 as uuidv4 } from 'uuid'; import RuntimeService from './RuntimeService'; import Signatures from './agent/Signatures'; -import { PerspectivismDb } from './db'; +import { Ad4mDb } from './db'; import stringify from 'json-stable-stringify' import { getPubSub } from './utils'; @@ -27,7 +27,7 @@ interface Services { holochainService: HolochainService, runtimeService: RuntimeService, signatures: Signatures, - db: PerspectivismDb + db: Ad4mDb } const importModule = async (modulePath: string) => { @@ -68,7 +68,7 @@ export default class LanguageController { #holochainService: HolochainService #runtimeService: RuntimeService; #signatures: Signatures; - #db: PerspectivismDb; + #db: Ad4mDb; #config: Config.MainConfig; #pubSub: PubSub; diff --git a/executor/src/core/Perspective.test.ts b/executor/src/core/Perspective.test.ts index 076c7e984..349a5d89b 100644 --- a/executor/src/core/Perspective.test.ts +++ b/executor/src/core/Perspective.test.ts @@ -8,7 +8,7 @@ import * as sinon from "sinon"; import Perspective from './Perspective' import type PerspectiveContext from './PerspectiveContext' -import { PerspectivismDb } from './db' +import { Ad4mDb } from './db' import { createLink } from '../testutils/links' import { createMockExpression } from '../testutils/expression' import { MainConfig } from './Config' @@ -55,7 +55,7 @@ describe('Perspective', () => { beforeEach(() => { const TEST_DIR = `${__dirname}/../tst-tmp` const appDataPath = path.join(TEST_DIR, 'agents', 'alice') - const db = new PerspectivismDb(); + const db = new Ad4mDb(); perspective = new Perspective( { uuid: uuidv4(), diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 0258cdfb4..917bb489b 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -8,7 +8,7 @@ import PrologInstance from "./PrologInstance"; import { MainConfig } from "./Config"; import { Mutex } from 'async-mutex' import { DID } from "@perspect3vism/ad4m/lib/src/DID"; -import { PerspectivismDb } from "./db"; +import { Ad4mDb } from "./db"; import { getPubSub } from "./utils"; const maxRetries = 10; @@ -26,7 +26,7 @@ export default class Perspective { state: PerspectiveState = PerspectiveState.Private; retries: number = 0; - #db: PerspectivismDb; + #db: Ad4mDb; #agent: AgentService; #languageController?: LanguageController #config?: MainConfig; diff --git a/executor/src/core/perspect3vismAgentInfo.ts b/executor/src/core/ad4mHolochainAgentInfo.ts similarity index 100% rename from executor/src/core/perspect3vismAgentInfo.ts rename to executor/src/core/ad4mHolochainAgentInfo.ts diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index e070a47fd..3316d6064 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -24,9 +24,6 @@ import { AGENT_AUTH_CAPABILITY, Capability, } from "./Auth"; -import * as jose from "jose"; -import * as crypto from "crypto"; -import KeyEncoder from "key-encoder"; import * as secp from "@noble/secp256k1"; import { getPubSub } from "../utils"; diff --git a/executor/src/core/agent/Auth.ts b/executor/src/core/agent/Auth.ts index a8a3b9401..5bf284095 100644 --- a/executor/src/core/agent/Auth.ts +++ b/executor/src/core/agent/Auth.ts @@ -1,6 +1,4 @@ import lodash from "lodash"; -import path from "path"; -import * as fs from "fs"; export type Capabilities = Capability[]; export interface Capability { diff --git a/executor/src/core/agent/DIDs.ts b/executor/src/core/agent/DIDs.ts index 191b01b01..a79cb044e 100644 --- a/executor/src/core/agent/DIDs.ts +++ b/executor/src/core/agent/DIDs.ts @@ -1,5 +1,3 @@ -import path from 'path' -//import fetch from 'node-fetch' import { resolver } from '@transmute/did-key.js'; export class DIDResolver { diff --git a/executor/src/core/db.test.ts b/executor/src/core/db.test.ts index 92a036622..cde18c4f1 100644 --- a/executor/src/core/db.test.ts +++ b/executor/src/core/db.test.ts @@ -1,7 +1,7 @@ -import { PerspectivismDb } from './db' +import { Ad4mDb } from './db' import { v4 as uuidv4 } from 'uuid'; import { expect } from "chai"; -import { LinkExpression, LinkExpressionInput, PerspectiveDiff } from '@perspect3vism/ad4m'; +import { LinkExpressionInput, PerspectiveDiff } from '@perspect3vism/ad4m'; import faker from 'faker' function constructDummyLinkExpression(): LinkExpressionInput { @@ -22,12 +22,12 @@ function constructDummyLinkExpression(): LinkExpressionInput { } as LinkExpressionInput } -describe('PerspectivismDb', () => { - let db: PerspectivismDb | undefined +describe('Ad4mDb', () => { + let db: Ad4mDb | undefined let pUUID: string | undefined beforeEach(() => { - db = new PerspectivismDb(); + db = new Ad4mDb(); pUUID = uuidv4() }) diff --git a/executor/src/core/db.ts b/executor/src/core/db.ts index d8efdf686..570ce2902 100644 --- a/executor/src/core/db.ts +++ b/executor/src/core/db.ts @@ -26,7 +26,7 @@ interface PerspectiveDiffSchema { isPending: boolean } -export class PerspectivismDb { +export class Ad4mDb { #linkDb: Database; #expressionDb: Database; #diffDb: Database; @@ -219,7 +219,7 @@ export class PerspectivismDb { } } -export function init(dbFilePath: string): PerspectivismDb { - return new PerspectivismDb(dbFilePath) +export function init(dbFilePath: string): Ad4mDb { + return new Ad4mDb(dbFilePath) } diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index f15183b71..e8e37ad59 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -1,24 +1,11 @@ -//import { ApolloServer, gql, AuthenticationError } from 'apollo-server-express' -//import express from 'express'; -//import { createServer } from 'http'; -//import { -// ApolloServerPluginDrainHttpServer, -//} from "apollo-server-core"; -//import { WebSocketServer } from 'ws'; -//import { useServer } from 'graphql-ws/lib/use/ws'; -//import { makeExecutableSchema } from '@graphql-tools/schema'; -import { Agent, Expression, InteractionCall, Language, LanguageRef, PerspectiveExpression, PerspectiveHandle, PerspectiveState, PerspectiveUnsignedInput } from '@perspect3vism/ad4m' +import { Agent, Expression, InteractionCall, Language, LanguageRef, PerspectiveExpression, PerspectiveState, PerspectiveUnsignedInput } from '@perspect3vism/ad4m' import { exprRef2String, parseExprUrl, LanguageMeta } from '@perspect3vism/ad4m' -// import { typeDefsString } from '@perspect3vism/ad4m/lib/src/typeDefs' -import type PerspectivismCore from '../PerspectivismCore' +import type Ad4mCore from '../Ad4mCore' import * as PubSubDefinitions from './SubscriptionDefinitions' -//import { GraphQLScalarType } from "graphql"; import { ad4mExecutorVersion } from '../Config'; import * as Auth from '../agent/Auth' import { checkCapability, checkTokenAuthorized } from '../agent/Auth' -//import { withFilter } from 'graphql-subscriptions'; import { OuterConfig } from '../../main'; -// import path from 'path'; import Perspective from '../Perspective'; import { Capability } from '../agent/Auth' import { Capabilities } from '../agent/Auth' @@ -30,7 +17,7 @@ function checkLinkLanguageInstalled(perspective: Perspective) { } } -export function createResolvers(core: PerspectivismCore, config: OuterConfig) { +export function createResolvers(core: Ad4mCore, config: OuterConfig) { function signPerspectiveDeep(input: PerspectiveUnsignedInput): PerspectiveExpression { let out = new PerspectiveExpression() out.links = input.links.map(l => core.agentService.createSignedExpression(l)) @@ -1002,118 +989,3 @@ export function createResolvers(core: PerspectivismCore, config: OuterConfig) { } } } - -/* -export interface StartServerParams { - core: PerspectivismCore, - mocks: boolean, - port: number, - config: OuterConfig; -} - -export async function startServer(params: StartServerParams) { - const { core, mocks, port } = params - const app = express(); - const httpServer = createServer(app); - const resolvers = createResolvers(core, params.config) - const typeDefs = gql(typeDefsString) - const schema = makeExecutableSchema({ typeDefs, resolvers }); - const rootConfigPath = path.join(params.config.appDataPath, 'ad4m'); - - let serverCleanup: any; - const server = new ApolloServer({ - typeDefs, - resolvers, - context: async (context) => { - let headers = context.req?.headers; - let authToken = '' - - if(headers) { - // Get the request token from the authorization header. - authToken = headers.authorization || '' - } - const capabilities = await core.agentService.getCapabilities(authToken) - if(!capabilities) throw new AuthenticationError("User capability is empty.") - - const isAd4minCredential = core.agentService.isAdminCredential(authToken) - checkTokenAuthorized(core.agentService.getApps(), authToken, isAd4minCredential) - - return { capabilities, authToken }; - }, - plugins: [ - ApolloServerPluginDrainHttpServer({ httpServer }), - { - async serverWillStart() { - return { - async drainServer() { - await serverCleanup.dispose(); - }, - }; - }, - }, - ] - }); - - - const wsServer = new WebSocketServer({ - server: httpServer, - path: server.graphqlPath, - }); - - wsServer.on('error', (err) => { - console.error("WsServer got error: ", err); - wsServer.clients.clear(); - }); - - serverCleanup = useServer({ - schema, - context: async (context, msg, args) => { - let headers: any - - // Depending on the transport, the context is different - // For normal http queries, it's the connection context - if(context.connectionParams) { - headers = context.connectionParams!.headers; - //@ts-ignore - } else if(context.req) { - //@ts-ignore - headers = context.req.headers; - // For subscriptions via websocket, it's the request context in `extra` - } else if(context.extra && context.extra.request) { - if(context.extra.request.headers) { - headers = context.extra.request.headers; - } else if(context.extra.request.rawHeaders) { - headers = context.extra.request.rawHeaders; - } else { - console.error("Coulnd't find headers in context", context) - } - } - - let authToken = '' - - if(headers) { - // Get the request token from the authorization header. - authToken = headers.authorization || '' - } - const capabilities = await core.agentService.getCapabilities(authToken) - if(!capabilities) throw new AuthenticationError("User capability is empty.") - - const isAd4minCredential = core.agentService.isAdminCredential(authToken) - checkTokenAuthorized(core.agentService.getApps(), authToken, isAd4minCredential) - - return { capabilities, authToken }; - } - }, wsServer); - - await server.start(); - - server.applyMiddleware({ app }); - - httpServer.listen({ port }); - - return { - url: `http://localhost:${port}/graphql`, - subscriptionsUrl: `ws://localhost:${port}/graphql` - } -} -*/ \ No newline at end of file diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index be19ef6ec..1dba2d8ae 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -7,7 +7,7 @@ import type { Dna } from '@perspect3vism/ad4m' import { AsyncQueue } from './Queue' import { decode, encode } from "@msgpack/msgpack" -import { HolochainUnlockConfiguration } from '../../PerspectivismCore' +import { HolochainUnlockConfiguration } from '../../Ad4mCore' import EntanglementProofController from '../../EntanglementProof' import AgentService from '../../agent/AgentService' @@ -29,8 +29,6 @@ export interface HolochainConfiguration { export default class HolochainService { #ready?: Promise #resourcePath: string - #conductorPath?: string - #conductorConfigPath?: string #signalCallbacks: [CellId, AppSignalCb, string][]; #queue: Map #languageDnaHashes: Map diff --git a/executor/src/main.ts b/executor/src/main.ts index 33991a968..d14be2f24 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -1,5 +1,5 @@ -import PerspectivismCore from "./core/PerspectivismCore"; -import create from "./core/PerspectivismCore"; +import Ad4mCore from "./core/Ad4mCore"; +import create from "./core/Ad4mCore"; import { LanguageAlias, CoreConfig, BootstrapFixtures, languageLanguageAlias, agentLanguageAlias, neighbourhoodLanguageAlias, perspectiveLanguageAlias, ad4mExecutorVersion } from "./core/Config" // Patch Reflect to have missing getOwnPropertyDescriptor() // which should be there in any ES6 runtime but for some reason @@ -86,7 +86,7 @@ export interface SeedFileSchema { } /// Main function which starts ad4m-executor -export async function init(config: OuterConfig): Promise { +export async function init(config: OuterConfig): Promise { let { resourcePath, appDataPath, networkBootstrapSeed, appLangAliases, bootstrapFixtures, languageLanguageOnly, mocks, gqlPort, ipfsSwarmPort, ipfsRepoPath, adminCredential, swiplPath, swiplHomePath,runDappServer, @@ -196,17 +196,12 @@ export async function init(config: OuterConfig): Promise { core.resolvers = createResolvers(core, config) - //console.log("\x1b[34m", "Init services...", "\x1b[0m"); - //await core.initIPFS({ ipfsSwarmPort, ipfsRepoPath }); - //console.log("\x1b[31m", "GraphQL server starting...", "\x1b[0m"); - //await core.startGraphQLServer(gqlPort, mocks, config); if (runDappServer) { core.startDAppServer(dAppPort) }; - //console.log("\x1b[31m", "GraphQL server started, Unlock the agent to start holohchain", "\x1b[0m"); return core } export default { init, - PerspectivismCore + Ad4mCore } \ No newline at end of file From 6acaeb5412484e5e3438a9119a4a80f4b3af3a98 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 11:04:42 +0100 Subject: [PATCH 411/722] fix prolog test and literals script --- tests/js/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/js/package.json b/tests/js/package.json index 1f96327d1..82b37c57f 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -12,7 +12,7 @@ "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", - "test-test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/test-prolog-and-literals.test.ts", + "test-test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", "prepare-test": "run-script-os", "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", From 7ff032d2f6667da180c9e19683aa5c0acd049f8f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 12:06:10 +0100 Subject: [PATCH 412/722] fix compilation and byte inclusion for windows --- rust-executor/src/globals.rs | 11 +++++++++-- rust-executor/src/init.rs | 10 +++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index b0c38355f..4c3a48153 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -22,5 +22,12 @@ lazy_static! { /// Raw JSON data for the mainnet seed, included at buildtime from the mainnet_seed.json file pub const MAINNET_JSON: &str = include_str!("mainnet_seed.json"); -/// Binary data of hc binary, included at buildtime from the hc binary -pub const HC_BIN: &[u8] = include_bytes!("../temp/binary/hc"); +#[cfg(target_os = "windows")] +lazy_static! { + pub static ref HC_BIN: &'static [u8] = include_bytes!("../temp/binary/hc.exe"); +} + +#[cfg(not(target_os = "windows"))] +lazy_static! { + pub static ref HC_BIN: &'static [u8] = include_bytes!("../temp/binary/hc"); +} diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index a943e6623..ecf2349f3 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -2,6 +2,7 @@ use log::{info, warn}; use semver::{Version, VersionReq}; use std::error::Error; use std::fs; +#[cfg(not(target_os = "windows"))] use std::os::unix::fs::PermissionsExt; use std::path::{Path, PathBuf}; @@ -70,11 +71,14 @@ pub fn init( _ => "hc", }; - let hc_data = HC_BIN; + let hc_data = &HC_BIN; let hc_target = binary_path.join(hc); info!("write hc target"); - fs::write(&hc_target, hc_data)?; - fs::set_permissions(hc_target, fs::Permissions::from_mode(0o755))?; + fs::write(&hc_target, hc_data.as_ref())?; + match platform { + os_info::Type::Windows => {} + _ => fs::set_permissions(hc_target, fs::Permissions::from_mode(0o755))?, + }; Ok(()) } From dfc7ea12c8d63db05df93d3bd420c8a33a363c6a Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 12:44:49 +0100 Subject: [PATCH 413/722] disable test-runner integration test to avoid conflicting processes --- test-runner/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-runner/package.json b/test-runner/package.json index 53f195c8f..8025a344d 100644 --- a/test-runner/package.json +++ b/test-runner/package.json @@ -7,7 +7,7 @@ "scripts": { "build": "tsc", "build:util": "browserify build/client.js --standalone Bundle -p esmify > public/client.js", - "test": "yarn run test-expression", + "test": "echo \"Test runner integration tests disabled\"", "test-expression": "node build/cli.js --test ./example/expression.test.js --bundle \"example/languages/note-ipfs.js\" --meta '{\"name\":\"note-ipfs\",\"description\":\"IPFS based language for storing data\",\"sourceCodeLink\":\"https://github.com/perspect3vism/note-ipfs\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", "test-link": "node build/cli.js --test ./example/link.test.js --bundle \"example/languages/social-context.js\" --meta '{\"name\":\"social-context\",\"description\":\"Shortform expression for flux application\",\"sourceCodeLink\":\"https://github.com/juntofoundation/ad4m-languages\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", "test-ui": "node build/cli.js --ui --bundle \"example/languages/note-ipfs.js\" --meta '{\"name\":\"note-ipfs\",\"description\":\"Shortform expression for flux application\",\"sourceCodeLink\":\"https://github.com/juntofoundation/ad4m-languages\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", From 51d52c8aca9a5618d32aecba3d21e414429c6252 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 12:53:18 +0100 Subject: [PATCH 414/722] fix integration.bats serve to ad4m run --- tests/integration.bats | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration.bats b/tests/integration.bats index 139db6989..4cd7f01ad 100644 --- a/tests/integration.bats +++ b/tests/integration.bats @@ -5,7 +5,7 @@ setup_file() { ./target/release/ad4m init --data-path ./tests/ad4m1 echo "done." >&3 echo "Starting agent 1..." >&3 - ./target/release/ad4m serve --app-data-path ./tests/ad4m1 & + ./target/release/ad4m run --app-data-path ./tests/ad4m1 & sleep 5 echo "done." >&3 @@ -20,7 +20,7 @@ setup_file() { #./target/release/ad4m init --data-path ./tests/ad4m2 #echo "done." >&3 #echo "Starting agent 2..." >&3 - #./target/release/ad4m serve --app-data-path ./tests/ad4m2 --gql-port 4001 --ipfs-swarm-port 15000 --hc-admin-port 2337 --hc-app-port 2338 & + #./target/release/ad4m run --app-data-path ./tests/ad4m2 --gql-port 4001 --ipfs-swarm-port 15000 --hc-admin-port 2337 --hc-app-port 2338 & #sleep 5 #echo "done." >&3 From 45f3a3956178874054fe45c91013520bddd59402 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 13:02:15 +0100 Subject: [PATCH 415/722] remove dead worflow test & put all integration js OS tests into one workflow file --- .github/workflows/integration_js.yml | 131 ++++++++++++++++++++++----- .github/workflows/test.yml | 107 ---------------------- 2 files changed, 108 insertions(+), 130 deletions(-) delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index ed582322a..df03e5f8b 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -8,25 +8,25 @@ on: pull_request: jobs: - test: - name: JS Ad4mClient <> AD4M Executor - runs-on: macos-latest + test-linux: + name: JS Ad4mClient <> AD4M Executor - Linux + strategy: matrix: + platform: [ubuntu-22.04] node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - steps: - - name: Fetch source code - uses: actions/checkout@v2 + runs-on: ${{ matrix.platform }} - - name: git init submodule - run: git submodule init && git submodule update + steps: + - uses: actions/checkout@v3 - - name: Install Rust stable - uses: actions-rs/toolchain@v1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 with: - override: true - toolchain: 1.68.2 + node-version: ${{ matrix.node-version }} + cache: 'yarn' - name: Cache cargo id: cache-cargo @@ -41,25 +41,110 @@ jobs: key: ${{ runner.os }}-cargo - run: rustup target add wasm32-unknown-unknown + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + + - name: Install dependencies + run: yarn install + + - name: Build the workspace + run: yarn run build + + - name: Run the tests + run: yarn test + + test-windows: + name: JS Ad4mClient <> AD4M Executor - Windows + runs-on: windows-2019 + strategy: + matrix: + node-version: [16.x] + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.68.2 + - name: Cache cargo + id: cache-cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + restore-keys: | + ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + ${{ runner.os }}-cargo + - run: rustup target add wasm32-unknown-unknown + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'yarn' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + + - name: Install dependencies + run: yarn install + + - name: Build the workspace + run: yarn run build + + - name: Run the tests + run: | + choco install swi-prolog + $env:path += ";C:\Program Files\swipl\bin" + yarn run test:windows + + test-macos: + name: JS Ad4mClient <> AD4M Executor - MacOS + runs-on: macos-latest + strategy: + matrix: + node-version: [16.x] + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} + cache: 'yarn' + + - name: Cache cargo + id: cache-cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo + - run: rustup target add wasm32-unknown-unknown - name: Install Deno uses: denoland/setup-deno@v1 with: deno-version: v1.32.4 - - name: Yarn Install + - name: Install dependencies run: yarn install - - name: Yarn Build (builds entire workspace) - run: yarn build - - - name: Run tests/js - run: | - cd tests/js - yarn install - yarn test - \ No newline at end of file + - name: Build the workspace + run: yarn run build + + - name: Run the tests + run: yarn test diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 5aac793dd..000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,107 +0,0 @@ -name: AD4M components - -on: - push: - branches: - - main - - dev - pull_request: - -jobs: - test: - name: Test - - strategy: - matrix: - platform: [ubuntu-22.04] - node-version: [16.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - runs-on: ${{ matrix.platform }} - - steps: - - uses: actions/checkout@v3 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - - name: Install Deno - uses: denoland/setup-deno@v1 - with: - deno-version: v1.32.4 - - - name: Install dependencies - run: yarn install - - - name: Build the workspace - run: yarn run build - - - name: Run the tests - run: yarn test - - test-windows: - name: Test - runs-on: windows-2019 - strategy: - matrix: - node-version: [16.x] - - steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.68.2 - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} - restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} - ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - - - name: Install Deno - uses: denoland/setup-deno@v1 - with: - deno-version: v1.32.4 - - - name: Install dependencies - run: yarn install - - - name: Build the workspace - run: yarn run build - - - name: Run the tests - run: | - choco install swi-prolog - $env:path += ";C:\Program Files\swipl\bin" - yarn run test:windows From 9b709b2ddbfb3a05947d5ae0773fa71209b1bdb0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 15:22:58 +0100 Subject: [PATCH 416/722] use full paths for data directories in integration.bats test --- tests/integration.bats | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/integration.bats b/tests/integration.bats index 4cd7f01ad..4ea53dee8 100644 --- a/tests/integration.bats +++ b/tests/integration.bats @@ -1,11 +1,12 @@ setup_file() { + current_dir=$(pwd) echo "Creating test agent 1" >&3 echo "Initalizing data directory..." >&3 rm -rf ./tests/ad4m1 - ./target/release/ad4m init --data-path ./tests/ad4m1 + ./target/release/ad4m init --data-path ${current_dir}/tests/ad4m1 echo "done." >&3 echo "Starting agent 1..." >&3 - ./target/release/ad4m run --app-data-path ./tests/ad4m1 & + ./target/release/ad4m run --app-data-path ${current_dir}/tests/ad4m1 --gql-port 4000 & sleep 5 echo "done." >&3 @@ -17,10 +18,10 @@ setup_file() { #echo "Creating test agent 2" >&3 #echo "Initalizing data directory..." >&3 #rm -rf ./tests/ad4m2 - #./target/release/ad4m init --data-path ./tests/ad4m2 + #./target/release/ad4m init --data-path ${current_dir}/tests/ad4m2 #echo "done." >&3 #echo "Starting agent 2..." >&3 - #./target/release/ad4m run --app-data-path ./tests/ad4m2 --gql-port 4001 --ipfs-swarm-port 15000 --hc-admin-port 2337 --hc-app-port 2338 & + #./target/release/ad4m run --app-data-path ${current_dir}/tests/ad4m2 --gql-port 4001 --ipfs-swarm-port 15000 --hc-admin-port 2337 --hc-app-port 2338 & #sleep 5 #echo "done." >&3 @@ -51,6 +52,7 @@ setup() { } @test "can use subjects and run potluck example sdna" { + skip # Create perspective perspective_id=`./target/release/ad4m -n -e http://localhost:4000/graphql perspectives add "sdna subject test"` run ./target/release/ad4m -n -e http://localhost:4000/graphql perspectives set-dna $perspective_id ./tests/potluck.pl @@ -152,6 +154,7 @@ setup() { } @test "can create and get expressions, using note-ipfs language" { + skip wget https://github.com/perspect3vism/lang-note-ipfs/releases/download/0.0.4/bundle.js -O ./tests/note-ipfs.js pwd=`pwd` publish_output=`./target/release/ad4m -n -e http://localhost:4000/graphql languages publish $pwd/tests/note-ipfs.js -n "note-ipfs" -d "Stores text expressions in IPFS" -p "", -s "https://github.com/perspect3vism/lang-note-ipfs"` From c92a33f91f9736fd95a27d72768916b55200ce34 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 6 Jul 2023 15:24:30 +0100 Subject: [PATCH 417/722] log found os platform in init --- rust-executor/src/init.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index ecf2349f3..ea434b361 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -66,6 +66,7 @@ pub fn init( } let platform = os_info::get().os_type(); + println!("Got OS Platform: {:?}", platform); let hc = match platform { os_info::Type::Windows => "hc.exe", _ => "hc", From a8a446cf89daba8577487d3028fa55d357405772 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Jul 2023 11:09:09 +0100 Subject: [PATCH 418/722] fix linux/windows permission setting --- rust-executor/src/init.rs | 11 +++-------- rust-executor/src/utils.rs | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index ea434b361..54380314c 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -2,11 +2,9 @@ use log::{info, warn}; use semver::{Version, VersionReq}; use std::error::Error; use std::fs; -#[cfg(not(target_os = "windows"))] -use std::os::unix::fs::PermissionsExt; use std::path::{Path, PathBuf}; -use super::utils::ad4m_data_directory; +use super::utils::{ad4m_data_directory, set_permissions}; use crate::globals::{AD4M_VERSION, HC_BIN, MAINNET_JSON, OLDEST_VERSION}; /// Sets up the ad4m data directory and config files ready for the executor to consume @@ -66,7 +64,6 @@ pub fn init( } let platform = os_info::get().os_type(); - println!("Got OS Platform: {:?}", platform); let hc = match platform { os_info::Type::Windows => "hc.exe", _ => "hc", @@ -76,10 +73,8 @@ pub fn init( let hc_target = binary_path.join(hc); info!("write hc target"); fs::write(&hc_target, hc_data.as_ref())?; - match platform { - os_info::Type::Windows => {} - _ => fs::set_permissions(hc_target, fs::Permissions::from_mode(0o755))?, - }; + + set_permissions(hc_target)?; Ok(()) } diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs index 302a93653..b3df7dfc8 100644 --- a/rust-executor/src/utils.rs +++ b/rust-executor/src/utils.rs @@ -1,4 +1,5 @@ use std::env::var_os; +use std::error::Error; use std::path::{Path, PathBuf}; pub(crate) fn ad4m_data_directory() -> PathBuf { @@ -9,3 +10,18 @@ pub(crate) fn ad4m_data_directory() -> PathBuf { ad4m_dir.push_str("/.ad4m"); Path::new(&ad4m_dir).to_path_buf() } + +#[cfg(not(target_os = "windows"))] +pub fn set_permissions(path: PathBuf) -> Result<(), Box> { + use std::fs::Permissions; + use std::os::unix::fs::PermissionsExt; + + let mut perms = Permissions::from_mode(0o755); + perms.set_readonly(true); + perms.set_mode(0o755); + std::fs::set_permissions(path, perms)?; + Ok(()) +} + +#[cfg(target_os = "windows")] +pub fn set_permissions(_path: PathBuf) {} From 9a2be040e800c6f0d79965c041191b5ccdc0dad1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Jul 2023 11:09:22 +0100 Subject: [PATCH 419/722] log out some tests that are failing --- tests/js/tests/neighbourhood.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index 2676f608e..f7db40b8d 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -101,7 +101,7 @@ export default function neighbourhoodTests(testContext: TestContext) { const aliceP1 = await alice.perspective.add("friends") const socialContext = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood with Bob test local links"})); const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, socialContext.address, new Perspective()) - + console.log("neighbourhoodUrl", neighbourhoodUrl); let bobP1 = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); await testContext.makeAllNodesKnown() @@ -210,7 +210,9 @@ export default function neighbourhoodTests(testContext: TestContext) { it('they see each other in `otherAgents`', async () => { await sleep(1000); const aliceAgents = await aliceNH!.otherAgents() + console.log("alice agents", aliceAgents); const bobAgents = await bobNH!.otherAgents() + console.log("bob agents", bobAgents); expect(aliceAgents.length).to.be.equal(1) expect(aliceAgents[0]).to.be.equal(bobDID) expect(bobAgents.length).to.be.equal(1) From df561393e7391e2c8d28b17ce3a0b3f979ee43d2 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Jul 2023 12:17:17 +0100 Subject: [PATCH 420/722] fix return type of windows set permissions function --- rust-executor/src/utils.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs index b3df7dfc8..d700a5219 100644 --- a/rust-executor/src/utils.rs +++ b/rust-executor/src/utils.rs @@ -24,4 +24,6 @@ pub fn set_permissions(path: PathBuf) -> Result<(), Box> { } #[cfg(target_os = "windows")] -pub fn set_permissions(_path: PathBuf) {} +pub fn set_permissions(_path: PathBuf) -> Result<(), Box> { + Ok(()) +} From cad770741b40687b76b6f99f682b2d5ae5d64bfc Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 7 Jul 2023 13:30:47 +0200 Subject: [PATCH 421/722] WIP: scryer prolog integration test --- rust-executor/src/main.rs | 2 ++ rust-executor/src/prolog.rs | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 rust-executor/src/prolog.rs diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 336876550..cfdc4f009 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -3,6 +3,7 @@ mod graphql; mod holochain_service; mod js_core; mod utils; +mod prolog; mod wallet; pub mod init; @@ -16,6 +17,7 @@ use js_core::JsCore; #[tokio::main(flavor = "multi_thread")] async fn main() { + prolog::run(); env::set_var("RUST_LOG", "rust_executor=info"); env_logger::init(); diff --git a/rust-executor/src/prolog.rs b/rust-executor/src/prolog.rs new file mode 100644 index 000000000..cb59a023e --- /dev/null +++ b/rust-executor/src/prolog.rs @@ -0,0 +1,23 @@ +use scryer_prolog::machine::Machine; +use scryer_prolog::machine::streams::*; + + +pub fn run() { + // Create a new Scryer Prolog machine + let mut machine = Machine::with_test_streams(); + let machine_st = machine.prelude_view_and_machine_st().1; + //let &mut arena = &mut ; + + // Example Prolog query to be executed + let query = String::from("?- append([1, 2], [3, 4], X)."); + + let stream = Stream::from_owned_string( + query, + &mut machine_st.arena, + ); + + machine.load_file(String::from("query.pl").as_str(), stream); + //let result: Vec = machine.write_to_vec(); + + //println!("Prolog Result: {:?}", result); +} From b4ed243640a5b99a84231a2c688fa792830f6282 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Jul 2023 12:31:40 +0100 Subject: [PATCH 422/722] make executor process killing more robust --- tests/js/tests/app.test.ts | 8 +++++--- tests/js/tests/authentication.test.ts | 8 +++++--- tests/js/tests/integration.test.ts | 15 +++++++++------ tests/js/tests/prolog-and-literals.test.ts | 8 +++++--- tests/js/tests/simple.test.ts | 4 ++-- tests/js/utils/publishTestLangs.ts | 8 +++++--- 6 files changed, 31 insertions(+), 20 deletions(-) diff --git a/tests/js/tests/app.test.ts b/tests/js/tests/app.test.ts index bef5e00c9..8292c4e56 100644 --- a/tests/js/tests/app.test.ts +++ b/tests/js/tests/app.test.ts @@ -4,7 +4,7 @@ import fs from "fs"; import { fileURLToPath } from 'url'; import * as chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { apolloClient, startExecutor } from "../utils/utils"; +import { apolloClient, sleep, startExecutor } from "../utils/utils"; import fetch from 'node-fetch' import { ChildProcess } from "child_process"; @@ -51,8 +51,10 @@ describe("Apps integration tests", () => { }) after(async () => { - if (executorProcess) { - executorProcess.kill() + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); } }) diff --git a/tests/js/tests/authentication.test.ts b/tests/js/tests/authentication.test.ts index 7585358ce..60312b445 100644 --- a/tests/js/tests/authentication.test.ts +++ b/tests/js/tests/authentication.test.ts @@ -4,7 +4,7 @@ import fs from "fs-extra"; import { fileURLToPath } from 'url'; import * as chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { apolloClient, startExecutor } from "../utils/utils"; +import { apolloClient, sleep, startExecutor } from "../utils/utils"; import { ChildProcess } from 'node:child_process'; import fetch from 'node-fetch' @@ -43,8 +43,10 @@ describe("Authentication integration tests", () => { }) after(async () => { - if (executorProcess) { - executorProcess.kill() + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); } }) diff --git a/tests/js/tests/integration.test.ts b/tests/js/tests/integration.test.ts index 12b0daebc..9b60ae5ae 100644 --- a/tests/js/tests/integration.test.ts +++ b/tests/js/tests/integration.test.ts @@ -1,6 +1,6 @@ import fs from 'fs-extra' import path from 'path' -import { isProcessRunning } from "../utils/utils"; +import { isProcessRunning, sleep } from "../utils/utils"; import { Ad4mClient } from "@perspect3vism/ad4m"; import { fileURLToPath } from 'url'; import { expect } from "chai"; @@ -104,8 +104,10 @@ describe("Integration tests", function () { }) after(async () => { - if (executorProcess) { - executorProcess.kill() + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); } }) @@ -145,10 +147,11 @@ describe("Integration tests", function () { }) after(async () => { - if (bobExecutorProcess) { - bobExecutorProcess.kill() + while (!bobExecutorProcess?.killed) { + let status = bobExecutorProcess?.kill(); + console.log("killed bobs executor with", status); + await sleep(500); } - await new Promise((resolve)=>setTimeout(resolve, 500)) }) describe('Agent Language', agentLanguageTests(testContext)) diff --git a/tests/js/tests/prolog-and-literals.test.ts b/tests/js/tests/prolog-and-literals.test.ts index 4854802c9..cc1de0e4b 100644 --- a/tests/js/tests/prolog-and-literals.test.ts +++ b/tests/js/tests/prolog-and-literals.test.ts @@ -43,9 +43,11 @@ describe("Prolog + Literals", () => { console.log("Done") }) - after(() => { - if (executorProcess) { - executorProcess.kill() + after(async () => { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); } }) diff --git a/tests/js/tests/simple.test.ts b/tests/js/tests/simple.test.ts index b258bd8da..64dced08a 100644 --- a/tests/js/tests/simple.test.ts +++ b/tests/js/tests/simple.test.ts @@ -36,8 +36,8 @@ describe("Integration", () => { }) after(async () => { - if (executorProcess) { - let status = executorProcess.kill(); + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); console.log("killed executor with", status); await sleep(500); } diff --git a/tests/js/utils/publishTestLangs.ts b/tests/js/utils/publishTestLangs.ts index e10c96c5b..22f355712 100644 --- a/tests/js/utils/publishTestLangs.ts +++ b/tests/js/utils/publishTestLangs.ts @@ -3,7 +3,7 @@ import { Ad4mClient, LanguageMetaInput } from "@perspect3vism/ad4m"; import fs from "fs-extra"; import { exit } from "process"; import { fileURLToPath } from 'url'; -import { apolloClient, startExecutor } from "./utils"; +import { apolloClient, sleep, startExecutor } from "./utils"; import fetch from 'node-fetch' //@ts-ignore @@ -96,8 +96,10 @@ async function publish() { injectSystemLanguages() injectLangAliasHashes(); - if (executorProcess) { - executorProcess.kill() + while (!executorProcess.killed){ + let status = executorProcess.kill() + console.log("killed executor with", status); + await sleep(500); } exit(); From 1ce87f2010d00251a52f7a2949a25d5d647f60c9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 7 Jul 2023 14:25:51 +0100 Subject: [PATCH 423/722] fix integration bats teardown --- tests/integration.bats | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/integration.bats b/tests/integration.bats index 4ea53dee8..bfb0923a9 100644 --- a/tests/integration.bats +++ b/tests/integration.bats @@ -31,8 +31,7 @@ setup_file() { } teardown_file() { - killall ad4m-macos-x64 - killall holochain + killall ad4m } setup() { From f7806843654c6f82d71f4f1b4276589c5bcc44f4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 10 Jul 2023 12:47:50 +0100 Subject: [PATCH 424/722] make all the ports for different integration tests unique & fix executor killing teardown loop --- tests/js/tests/app.test.ts | 10 +++--- tests/js/tests/authentication.test.ts | 26 ++++++++-------- tests/js/tests/integration.test.ts | 36 ++++++++++++---------- tests/js/tests/prolog-and-literals.test.ts | 18 ++++++----- tests/js/tests/simple.test.ts | 18 ++++++----- tests/js/utils/publishTestLangs.ts | 18 ++++++----- 6 files changed, 70 insertions(+), 56 deletions(-) diff --git a/tests/js/tests/app.test.ts b/tests/js/tests/app.test.ts index 8292c4e56..5324030b3 100644 --- a/tests/js/tests/app.test.ts +++ b/tests/js/tests/app.test.ts @@ -51,10 +51,12 @@ describe("Apps integration tests", () => { }) after(async () => { - while (!executorProcess?.killed) { - let status = executorProcess?.kill(); - console.log("killed executor with", status); - await sleep(500); + if (executorProcess) { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } } }) diff --git a/tests/js/tests/authentication.test.ts b/tests/js/tests/authentication.test.ts index 60312b445..7787bd1f3 100644 --- a/tests/js/tests/authentication.test.ts +++ b/tests/js/tests/authentication.test.ts @@ -22,10 +22,10 @@ describe("Authentication integration tests", () => { const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "unauth-agent"); const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const gqlPort = 16000 - const hcAdminPort = 16001 - const hcAppPort = 16002 - const ipfsSwarmPort = 16004 + const gqlPort = 15100 + const hcAdminPort = 15101 + const hcAppPort = 15102 + const ipfsSwarmPort = 15103 let executorProcess: ChildProcess | null = null let ad4mClient: Ad4mClient | null = null @@ -43,10 +43,12 @@ describe("Authentication integration tests", () => { }) after(async () => { - while (!executorProcess?.killed) { - let status = executorProcess?.kill(); - console.log("killed executor with", status); - await sleep(500); + if (executorProcess) { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } } }) @@ -83,10 +85,10 @@ describe("Authentication integration tests", () => { const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "auth-agent"); const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const gqlPort = 15000 - const hcAdminPort = 15001 - const hcAppPort = 15002 - const ipfsSwarmPort = 15003 + const gqlPort = 15200 + const hcAdminPort = 15202 + const hcAppPort = 15203 + const ipfsSwarmPort = 15204 let executorProcess: ChildProcess | null = null let adminAd4mClient: Ad4mClient | null = null diff --git a/tests/js/tests/integration.test.ts b/tests/js/tests/integration.test.ts index 9b60ae5ae..e1cdb417f 100644 --- a/tests/js/tests/integration.test.ts +++ b/tests/js/tests/integration.test.ts @@ -80,10 +80,10 @@ describe("Integration tests", function () { const appDataPath = path.join(TEST_DIR, 'agents', 'alice') const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); const ipfsRepoPath = path.join(appDataPath) - const gqlPort = 15000 - const hcAdminPort = 15001 - const hcAppPort = 15002 - const ipfsSwarmPort = 15005 + const gqlPort = 15300 + const hcAdminPort = 15301 + const hcAppPort = 15302 + const ipfsSwarmPort = 15303 let executorProcess: ChildProcess | null = null @@ -104,10 +104,12 @@ describe("Integration tests", function () { }) after(async () => { - while (!executorProcess?.killed) { - let status = executorProcess?.kill(); - console.log("killed executor with", status); - await sleep(500); + if (executorProcess) { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } } }) @@ -122,10 +124,10 @@ describe("Integration tests", function () { before(async () => { const bobAppDataPath = path.join(TEST_DIR, 'agents', 'bob') const bobBootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const bobGqlPort = 14000 - const bobHcAdminPort = 12000 - const bobHcAppPort = 11337 - const bobIpfsSwarmPort = 14002 + const bobGqlPort = 15400 + const bobHcAdminPort = 15401 + const bobHcAppPort = 15402 + const bobIpfsSwarmPort = 15403 if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) fs.mkdirSync(path.join(TEST_DIR, 'agents')) @@ -147,10 +149,12 @@ describe("Integration tests", function () { }) after(async () => { - while (!bobExecutorProcess?.killed) { - let status = bobExecutorProcess?.kill(); - console.log("killed bobs executor with", status); - await sleep(500); + if (executorProcess) { + while (!bobExecutorProcess?.killed) { + let status = bobExecutorProcess?.kill(); + console.log("killed bobs executor with", status); + await sleep(500); + } } }) diff --git a/tests/js/tests/prolog-and-literals.test.ts b/tests/js/tests/prolog-and-literals.test.ts index cc1de0e4b..90a7a791e 100644 --- a/tests/js/tests/prolog-and-literals.test.ts +++ b/tests/js/tests/prolog-and-literals.test.ts @@ -27,10 +27,10 @@ describe("Prolog + Literals", () => { const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "integration-agent"); const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const gqlPort = 15000 - const hcAdminPort = 15001 - const hcAppPort = 15002 - const ipfsSwarmPort = 15006 + const gqlPort = 15500 + const hcAdminPort = 15501 + const hcAppPort = 15502 + const ipfsSwarmPort = 15503 before(async () => { executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, @@ -44,10 +44,12 @@ describe("Prolog + Literals", () => { }) after(async () => { - while (!executorProcess?.killed) { - let status = executorProcess?.kill(); - console.log("killed executor with", status); - await sleep(500); + if (executorProcess) { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } } }) diff --git a/tests/js/tests/simple.test.ts b/tests/js/tests/simple.test.ts index 64dced08a..979f5309c 100644 --- a/tests/js/tests/simple.test.ts +++ b/tests/js/tests/simple.test.ts @@ -16,10 +16,10 @@ describe("Integration", () => { const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); const appDataPath = path.join(TEST_DIR, "agents", "alice"); const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const gqlPort = 15000 - const hcAdminPort = 15001 - const hcAppPort = 15002 - const ipfsSwarmPort = 15007 + const gqlPort = 15600 + const hcAdminPort = 15601 + const hcAppPort = 15602 + const ipfsSwarmPort = 15603 let ad4m: Ad4mClient | null = null let executorProcess: ChildProcess | null = null @@ -36,10 +36,12 @@ describe("Integration", () => { }) after(async () => { - while (!executorProcess?.killed) { - let status = executorProcess?.kill(); - console.log("killed executor with", status); - await sleep(500); + if (executorProcess) { + while (!executorProcess?.killed) { + let status = executorProcess?.kill(); + console.log("killed executor with", status); + await sleep(500); + } } }) diff --git a/tests/js/utils/publishTestLangs.ts b/tests/js/utils/publishTestLangs.ts index 22f355712..f2c86f4f0 100644 --- a/tests/js/utils/publishTestLangs.ts +++ b/tests/js/utils/publishTestLangs.ts @@ -18,10 +18,10 @@ const publishLanguagesPath = path.join(TEST_DIR, "languages"); const publishingBootstrapSeedPath = path.join(`${__dirname}/../publishBootstrapSeed.json`); const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); const perspectiveDiffSyncHashPath = path.join(`${__dirname}/../scripts/perspective-diff-sync-hash`); -const gqlPort = 4000; -const hcAdminPort = 15000; -const hcAppPort = 15001; -const ipfsSwarmPort = 15003; +const gqlPort = 15700; +const hcAdminPort = 15701; +const hcAppPort = 15702; +const ipfsSwarmPort = 15703; //Update this as new languages are needed within testing code const languagesToPublish = { @@ -96,10 +96,12 @@ async function publish() { injectSystemLanguages() injectLangAliasHashes(); - while (!executorProcess.killed){ - let status = executorProcess.kill() - console.log("killed executor with", status); - await sleep(500); + if (executorProcess) { + while (!executorProcess.killed){ + let status = executorProcess.kill() + console.log("killed executor with", status); + await sleep(500); + } } exit(); From 08a45471fa07be9adbed156e78dd3301e5f7f5d2 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Mon, 10 Jul 2023 20:08:30 +0530 Subject: [PATCH 425/722] Added cache to linux & macos runs --- .github/workflows/integration_js.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index df03e5f8b..0e45d22b0 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -21,7 +21,9 @@ jobs: steps: - uses: actions/checkout@v3 - + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.68.2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: @@ -38,7 +40,10 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ runner.os }}-cargo + key: ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + restore-keys: | + ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + ${{ runner.os }}-cargo - run: rustup target add wasm32-unknown-unknown - name: Install Deno @@ -115,7 +120,9 @@ jobs: steps: - uses: actions/checkout@v3 - + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.68.2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: @@ -132,7 +139,10 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ runner.os }}-cargo + key: ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + restore-keys: | + ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + ${{ runner.os }}-cargo - run: rustup target add wasm32-unknown-unknown - name: Install Deno From 20f5601fc96f0d13d6630c25f4b8e7212703fe9f Mon Sep 17 00:00:00 2001 From: Fayeed Date: Mon, 10 Jul 2023 20:17:32 +0530 Subject: [PATCH 426/722] Updated hash target for CI --- .github/workflows/integration_js.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 0e45d22b0..2d1cb9195 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -40,9 +40,9 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} ${{ runner.os }}-cargo - run: rustup target add wasm32-unknown-unknown @@ -82,9 +82,9 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} ${{ runner.os }}-cargo - run: rustup target add wasm32-unknown-unknown @@ -139,9 +139,9 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('./holochain_version.nix') }} + ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} ${{ runner.os }}-cargo - run: rustup target add wasm32-unknown-unknown From acca9f53ce67a7e4046067e3d09eeefca7b60d66 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Mon, 10 Jul 2023 21:38:42 +0530 Subject: [PATCH 427/722] Updated ci to always save the cargo cache --- .github/workflows/integration_js.yml | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 2d1cb9195..957b2adbd 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -56,6 +56,17 @@ jobs: - name: Build the workspace run: yarn run build + + - uses: actions/cache/save@v3 + if: always() + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - name: Run the tests run: yarn test @@ -104,6 +115,17 @@ jobs: - name: Build the workspace run: yarn run build + + - uses: actions/cache/save@v3 + if: always() + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - name: Run the tests run: | @@ -155,6 +177,17 @@ jobs: - name: Build the workspace run: yarn run build + + - uses: actions/cache/save@v3 + if: always() + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - name: Run the tests run: yarn test From 8b3c7b984762f0e9e48a4ec1c7a0a6b1de3cf872 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 10 Jul 2023 17:39:56 +0100 Subject: [PATCH 428/722] update path handling for tests to work with windows --- tests/js/utils/utils.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 91749f3b6..8a0764384 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -2,10 +2,9 @@ import { ChildProcess, exec, ExecException, execSync } from "node:child_process" import { rmSync } from "node:fs"; import { GraphQLWsLink } from "@apollo/client/link/subscriptions/index.js"; import { ApolloClient, InMemoryCache } from "@apollo/client/core/index.js"; -import { onError } from "@apollo/client/link/error"; -import { HttpLink } from "@apollo/client/link/http/index.js"; import Websocket from "ws"; import { createClient } from "graphql-ws"; +import path from "path"; export async function isProcessRunning(processName: string): Promise { const cmd = (() => { @@ -53,9 +52,9 @@ export async function startExecutor(dataPath: string, } if (!adminCredential) { - executorProcess = exec(`../../target/release/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + executorProcess = exec(`${path.join("../../", "target/release/ad4m")} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`../../target/release/ad4m run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + executorProcess = exec(`${path.join("../../", "target/release/ad4m")} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From a2fa8471be326c27c667d2113bb694bd2df7912d Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Mon, 10 Jul 2023 19:12:51 +0200 Subject: [PATCH 429/722] Revert "remove scryer-prolog for now" This reverts commit 2dda81e5e07df27f8383dc4daed35254d089ea2d. --- Cargo.lock | 690 +++++++++++++++++++++++++++++++++++---- rust-executor/Cargo.toml | 2 + 2 files changed, 635 insertions(+), 57 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4dd057155..c37f57b32 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,7 +26,7 @@ dependencies = [ "rand 0.8.5", "regex", "rust-executor", - "rustyline", + "rustyline 10.0.0", "serde", "serde_json", "syntect", @@ -51,7 +51,7 @@ dependencies = [ "rand 0.8.5", "regex", "reqwest", - "rustyline", + "rustyline 10.0.0", "serde", "serde_json", "tokio", @@ -125,7 +125,7 @@ dependencies = [ "cfg-if 1.0.0", "cipher 0.3.0", "cpufeatures", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] @@ -150,7 +150,7 @@ dependencies = [ "cipher 0.4.4", "ctr", "ghash", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -261,7 +261,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95c2fcf79ad1932ac6269a738109997a83c227c09b75842ae564dc8ede6a861c" dependencies = [ "base64ct", - "blake2", + "blake2 0.10.6", "password-hash 0.5.0", ] @@ -598,6 +598,12 @@ dependencies = [ "shrinkwraprs", ] +[[package]] +name = "az" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" + [[package]] name = "backtrace" version = "0.3.66" @@ -625,6 +631,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + [[package]] name = "base64" version = "0.13.1" @@ -713,6 +725,18 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" +dependencies = [ + "byte-tools", + "crypto-mac 0.7.0", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + [[package]] name = "blake2" version = "0.10.6" @@ -774,6 +798,18 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding 0.1.5", + "byte-tools", + "byteorder", + "generic-array 0.12.4", +] + [[package]] name = "block-buffer" version = "0.9.0" @@ -798,6 +834,15 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e2211b0817f061502a8dd9f11a37e879e79763e3c698d2418cf824d8cb2f21e" +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + [[package]] name = "block-padding" version = "0.3.3" @@ -830,7 +875,7 @@ checksum = "8129c0ab340c1b0caf6dbc587e814d04ba811e336dcf8fc268c04e047428ebb0" dependencies = [ "bit-vec", "getrandom 0.2.8", - "siphasher", + "siphasher 0.3.10", ] [[package]] @@ -846,7 +891,7 @@ dependencies = [ "pairing", "rand_core 0.6.4", "serde", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -916,6 +961,12 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + [[package]] name = "bytecheck" version = "0.6.10" @@ -1371,7 +1422,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a27e4532f26f510c24bb8477d963c0c3ef27e293c3b2c507cccb0536d493201a" dependencies = [ - "crossterm", + "crossterm 0.19.0", ] [[package]] @@ -1534,6 +1585,16 @@ dependencies = [ "windows-sys 0.33.0", ] +[[package]] +name = "cpu-time" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "cpufeatures" version = "0.2.5" @@ -1678,7 +1739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c36c10130df424b2f3552fcc2ddcd9b28a27b1e54b358b45874f88d1ca6888c" dependencies = [ "bitflags", - "crossterm_winapi", + "crossterm_winapi 0.7.0", "lazy_static", "libc", "mio 0.7.14", @@ -1687,6 +1748,22 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d" +dependencies = [ + "bitflags", + "crossterm_winapi 0.8.0", + "libc", + "mio 0.7.14", + "parking_lot 0.11.2", + "signal-hook 0.3.15", + "signal-hook-mio", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.7.0" @@ -1696,6 +1773,26 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm_winapi" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" +dependencies = [ + "winapi", +] + +[[package]] +name = "crrl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2db40892a506901e4e8281f00e42687df82d1d3448cb0289ae9183a60cb42ec1" +dependencies = [ + "blake2 0.10.6", + "rand_core 0.6.4", + "sha2 0.10.6", +] + [[package]] name = "crunchy" version = "0.2.2" @@ -1710,7 +1807,7 @@ checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ "generic-array 0.14.6", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -1725,6 +1822,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.4", + "subtle 1.0.0", +] + [[package]] name = "crypto-mac" version = "0.8.0" @@ -1732,7 +1839,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.6", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1742,7 +1849,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ "generic-array 0.14.6", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1806,6 +1913,16 @@ dependencies = [ "cipher 0.4.4", ] +[[package]] +name = "ctrlc" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e" +dependencies = [ + "nix 0.26.2", + "windows-sys 0.48.0", +] + [[package]] name = "cty" version = "0.2.2" @@ -1821,7 +1938,7 @@ dependencies = [ "byteorder", "digest 0.8.1", "rand_core 0.5.1", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -1834,7 +1951,7 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -1848,7 +1965,7 @@ dependencies = [ "fiat-crypto", "packed_simd_2", "platforms", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -2381,7 +2498,7 @@ dependencies = [ "serde", "sha-1 0.10.0", "sha2 0.10.6", - "sha3", + "sha3 0.10.6", "signature", "tokio", "typenum", @@ -2698,7 +2815,7 @@ dependencies = [ "block-buffer 0.10.3", "const-oid", "crypto-common", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -2767,6 +2884,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[package]] +name = "divrem" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9f8914dcb99891bdfee82536bbff8d9aa612b0dbe83872afbc66902bdec0b9" + [[package]] name = "dlopen" version = "0.1.8" @@ -2943,7 +3066,7 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -3179,7 +3302,7 @@ checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ "bitvec", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -3658,7 +3781,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ - "opaque-debug", + "opaque-debug 0.3.0", "polyval", ] @@ -3729,6 +3852,28 @@ dependencies = [ "winapi", ] +[[package]] +name = "git-version" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899" +dependencies = [ + "git-version-macro", + "proc-macro-hack", +] + +[[package]] +name = "git-version-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" +dependencies = [ + "proc-macro-hack", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "glib" version = "0.15.12" @@ -3805,6 +3950,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gmp-mpfr-sys" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13eabc29d16e4a621b495e3919c71ebb7caaed24380955671e7d417370fea95d" +dependencies = [ + "libc", + "windows-sys 0.42.0", +] + [[package]] name = "gobject-sys" version = "0.15.10" @@ -3916,7 +4071,7 @@ checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ "ff", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -4418,7 +4573,7 @@ dependencies = [ "paste", "serde", "serde_bytes", - "subtle", + "subtle 2.4.1", "tracing", ] @@ -4817,7 +4972,7 @@ dependencies = [ "serde_yaml 0.9.21", "shrinkwraprs", "strum 0.18.0", - "subtle", + "subtle 2.4.1", "subtle-encoding", "thiserror", "tracing", @@ -4843,6 +4998,20 @@ dependencies = [ "winapi", ] +[[package]] +name = "html5ever" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce65ac8028cf5a287a7dbf6c4e0a6cf2dcf022ed5b167a81bae66ebf599a8b7" +dependencies = [ + "log", + "mac", + "markup5ever 0.8.1", + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + [[package]] name = "html5ever" version = "0.25.2" @@ -4851,7 +5020,7 @@ checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" dependencies = [ "log", "mac", - "markup5ever", + "markup5ever 0.10.1", "proc-macro2 1.0.56", "quote 1.0.26", "syn 1.0.103", @@ -5179,7 +5348,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "block-padding", + "block-padding 0.3.3", "generic-array 0.14.6", ] @@ -5725,7 +5894,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" dependencies = [ "cssparser", - "html5ever", + "html5ever 0.25.2", "matches", "selectors", ] @@ -5795,13 +5964,36 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" +[[package]] +name = "lexical" +version = "5.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f404a90a744e32e8be729034fc33b90cf2a56418fbf594d69aa3c0214ad414e5" +dependencies = [ + "cfg-if 1.0.0", + "lexical-core 0.7.6", +] + [[package]] name = "lexical" version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" dependencies = [ - "lexical-core", + "lexical-core 0.8.5", +] + +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec 0.5.2", + "bitflags", + "cfg-if 1.0.0", + "ryu", + "static_assertions", ] [[package]] @@ -6013,7 +6205,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -6282,6 +6474,23 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +[[package]] +name = "markup5ever" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1af46a727284117e09780d05038b1ce6fc9c76cc6df183c3dae5a8955a25e21" +dependencies = [ + "log", + "phf 0.7.24", + "phf_codegen 0.7.24", + "serde", + "serde_derive", + "serde_json", + "string_cache 0.7.5", + "string_cache_codegen 0.4.4", + "tendril", +] + [[package]] name = "markup5ever" version = "0.10.1" @@ -6290,9 +6499,9 @@ checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" dependencies = [ "log", "phf 0.8.0", - "phf_codegen", - "string_cache", - "string_cache_codegen", + "phf_codegen 0.8.0", + "string_cache 0.8.7", + "string_cache_codegen 0.5.2", "tendril", ] @@ -6516,6 +6725,27 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "more-asserts" version = "0.2.2" @@ -6568,7 +6798,7 @@ dependencies = [ "digest 0.10.6", "multihash-derive", "sha2 0.10.6", - "sha3", + "sha3 0.10.6", "unsigned-varint", ] @@ -6773,6 +7003,18 @@ dependencies = [ "memoffset 0.6.5", ] +[[package]] +name = "nix" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "libc", + "static_assertions", +] + [[package]] name = "no-std-compat" version = "0.4.1" @@ -7136,6 +7378,12 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + [[package]] name = "opaque-debug" version = "0.3.0" @@ -7491,7 +7739,7 @@ checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -7502,7 +7750,7 @@ checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -7585,6 +7833,15 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "phf" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" +dependencies = [ + "phf_shared 0.7.24", +] + [[package]] name = "phf" version = "0.8.0" @@ -7596,6 +7853,17 @@ dependencies = [ "proc-macro-hack", ] +[[package]] +name = "phf" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ac8b67553a7ca9457ce0e526948cad581819238f4a9d1ea74545851fa24f37" +dependencies = [ + "phf_macros 0.9.0", + "phf_shared 0.9.0", + "proc-macro-hack", +] + [[package]] name = "phf" version = "0.10.1" @@ -7607,6 +7875,16 @@ dependencies = [ "proc-macro-hack", ] +[[package]] +name = "phf_codegen" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" +dependencies = [ + "phf_generator 0.7.24", + "phf_shared 0.7.24", +] + [[package]] name = "phf_codegen" version = "0.8.0" @@ -7617,6 +7895,16 @@ dependencies = [ "phf_shared 0.8.0", ] +[[package]] +name = "phf_generator" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" +dependencies = [ + "phf_shared 0.7.24", + "rand 0.6.5", +] + [[package]] name = "phf_generator" version = "0.8.0" @@ -7627,6 +7915,16 @@ dependencies = [ "rand 0.7.3", ] +[[package]] +name = "phf_generator" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43f3220d96e0080cc9ea234978ccd80d904eafb17be31bb0f76daaea6493082" +dependencies = [ + "phf_shared 0.9.0", + "rand 0.8.5", +] + [[package]] name = "phf_generator" version = "0.10.0" @@ -7651,6 +7949,20 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "phf_macros" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b706f5936eb50ed880ae3009395b43ed19db5bff2ebd459c95e7bf013a89ab86" +dependencies = [ + "phf_generator 0.9.1", + "phf_shared 0.9.0", + "proc-macro-hack", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "phf_macros" version = "0.10.0" @@ -7665,13 +7977,31 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "phf_shared" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" +dependencies = [ + "siphasher 0.2.3", +] + [[package]] name = "phf_shared" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" dependencies = [ - "siphasher", + "siphasher 0.3.10", +] + +[[package]] +name = "phf_shared" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9" +dependencies = [ + "siphasher 0.3.10", ] [[package]] @@ -7680,7 +8010,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "siphasher", + "siphasher 0.3.10", ] [[package]] @@ -7829,7 +8159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug", + "opaque-debug 0.3.0", "universal-hash", ] @@ -7841,7 +8171,7 @@ checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "opaque-debug", + "opaque-debug 0.3.0", "universal-hash", ] @@ -8474,6 +8804,12 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ref_thread_local" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d813022b2e00774a48eaf43caaa3c20b45f040ba8cbf398e2e8911a06668dbe6" + [[package]] name = "regalloc" version = "0.0.34" @@ -8668,6 +9004,17 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "ripemd160" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad5112e0dbbb87577bfbc56c42450235e3012ce336e29c5befd7807bd626da4a" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + [[package]] name = "rkyv" version = "0.7.41" @@ -8744,6 +9091,15 @@ dependencies = [ "serde_bytes", ] +[[package]] +name = "roxmltree" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5001f134077069d87f77c8b9452b690df2445f7a43f1c7ca4a1af8dd505789d" +dependencies = [ + "xmlparser", +] + [[package]] name = "rpassword" version = "5.0.1" @@ -8782,7 +9138,7 @@ dependencies = [ "rand_core 0.6.4", "signature", "smallvec 1.10.0", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -8796,6 +9152,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "rug" +version = "1.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555e8b44763d034526db899c88cd56ccc4486cd38b444c8aa0e79d4e70ae5a34" +dependencies = [ + "az", + "gmp-mpfr-sys", + "libc", +] + [[package]] name = "rusqlite" version = "0.28.0" @@ -8840,6 +9207,7 @@ dependencies = [ "once_cell", "os_info 3.7.0", "rand 0.8.5", + "scryer-prolog", "secp256k1", "semver 1.0.17", "serde", @@ -8967,6 +9335,30 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +[[package]] +name = "rustyline" +version = "9.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "clipboard-win", + "dirs-next", + "fd-lock", + "libc", + "log", + "memchr", + "nix 0.23.1", + "radix_trie", + "scopeguard", + "smallvec 1.10.0", + "unicode-segmentation", + "unicode-width", + "utf8parse", + "winapi", +] + [[package]] name = "rustyline" version = "10.0.0" @@ -9057,6 +9449,58 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +[[package]] +name = "scryer-prolog" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf815588f19a44886bb9a8b3c5a209c9451fa0d83f7246abd4e74f9be3957c0" +dependencies = [ + "base64 0.12.3", + "blake2 0.8.1", + "chrono", + "cpu-time", + "crossterm 0.20.0", + "crrl", + "ctrlc", + "dirs-next", + "divrem", + "futures", + "fxhash", + "git-version", + "hostname", + "hyper", + "hyper-tls", + "indexmap", + "lazy_static", + "lexical 5.2.2", + "libc", + "modular-bitfield", + "native-tls", + "ordered-float", + "phf 0.9.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "ref_thread_local", + "ring", + "ripemd160", + "roxmltree", + "rug", + "rustyline 9.1.2", + "ryu", + "select", + "sha3 0.8.2", + "smallvec 1.10.0", + "sodiumoxide", + "static_assertions", + "strum 0.23.0", + "strum_macros 0.23.1", + "syn 1.0.103", + "to-syn-value", + "to-syn-value_derive", + "tokio", + "walkdir", +] + [[package]] name = "sct" version = "0.7.0" @@ -9089,7 +9533,7 @@ dependencies = [ "der", "generic-array 0.14.6", "pkcs8", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -9136,6 +9580,16 @@ dependencies = [ "libc", ] +[[package]] +name = "select" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac645958c62108d11f90f8d34e4dc2799c838fc995ed4c2075867a2a8d5be76b" +dependencies = [ + "bit-set", + "html5ever 0.23.0", +] + [[package]] name = "selectors" version = "0.22.0" @@ -9149,7 +9603,7 @@ dependencies = [ "log", "matches", "phf 0.8.0", - "phf_codegen", + "phf_codegen 0.8.0", "precomputed-hash", "servo_arc", "smallvec 1.10.0", @@ -9385,7 +9839,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] @@ -9420,7 +9874,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] @@ -9434,6 +9888,19 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "sha3" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" +dependencies = [ + "block-buffer 0.7.3", + "byte-tools", + "digest 0.8.1", + "keccak", + "opaque-debug 0.2.3", +] + [[package]] name = "sha3" version = "0.10.6" @@ -9497,6 +9964,17 @@ dependencies = [ "signal-hook-registry", ] +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio 0.7.14", + "signal-hook 0.3.15", +] + [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -9546,6 +10024,12 @@ dependencies = [ "time 0.3.17", ] +[[package]] +name = "siphasher" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" + [[package]] name = "siphasher" version = "0.3.10" @@ -9611,6 +10095,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "sodiumoxide" +version = "0.2.7" +source = "git+https://github.com/fayeed/sodiumoxide#0adef01f4e0d5a8dd76bfb5534309259aa8e8ee7" +dependencies = [ + "ed25519", + "libc", + "libsodium-sys-stable", + "serde", +] + [[package]] name = "sodoken" version = "0.0.7" @@ -9786,6 +10281,21 @@ dependencies = [ "tokio", ] +[[package]] +name = "string_cache" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89c058a82f9fd69b1becf8c274f412281038877c553182f1d02eb027045a2d67" +dependencies = [ + "lazy_static", + "new_debug_unreachable", + "phf_shared 0.7.24", + "precomputed-hash", + "serde", + "string_cache_codegen 0.4.4", + "string_cache_shared", +] + [[package]] name = "string_cache" version = "0.8.7" @@ -9800,6 +10310,19 @@ dependencies = [ "serde", ] +[[package]] +name = "string_cache_codegen" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" +dependencies = [ + "phf_generator 0.7.24", + "phf_shared 0.7.24", + "proc-macro2 1.0.56", + "quote 1.0.26", + "string_cache_shared", +] + [[package]] name = "string_cache_codegen" version = "0.5.2" @@ -9812,6 +10335,12 @@ dependencies = [ "quote 1.0.26", ] +[[package]] +name = "string_cache_shared" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" + [[package]] name = "string_enum" version = "0.3.4" @@ -9882,6 +10411,12 @@ dependencies = [ "strum_macros 0.22.0", ] +[[package]] +name = "strum" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" + [[package]] name = "strum_macros" version = "0.18.0" @@ -9906,6 +10441,19 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "strum_macros" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +dependencies = [ + "heck 0.3.3", + "proc-macro2 1.0.56", + "quote 1.0.26", + "rustversion", + "syn 1.0.103", +] + [[package]] name = "strum_macros" version = "0.24.3" @@ -9929,6 +10477,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + [[package]] name = "subtle" version = "2.4.1" @@ -9953,8 +10507,8 @@ dependencies = [ "once_cell", "rustc-hash", "serde", - "string_cache", - "string_cache_codegen", + "string_cache 0.8.7", + "string_cache_codegen 0.5.2", "triomphe", ] @@ -9975,9 +10529,9 @@ dependencies = [ "once_cell", "rustc-hash", "serde", - "siphasher", + "siphasher 0.3.10", "sourcemap", - "string_cache", + "string_cache 0.8.7", "swc_atoms", "swc_eq_ignore_macros", "swc_visit", @@ -10082,7 +10636,7 @@ checksum = "042435aaeb71c4416cde440323ac9fa2c24121c2ec150f0cb79999c2e6ceffaa" dependencies = [ "either", "enum_kind", - "lexical", + "lexical 6.1.1", "num-bigint", "serde", "smallvec 1.10.0", @@ -10663,7 +11217,7 @@ dependencies = [ "ctor", "glob", "heck 0.4.0", - "html5ever", + "html5ever 0.25.2", "infer", "json-patch", "kuchiki", @@ -10931,6 +11485,27 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +[[package]] +name = "to-syn-value" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45dcb7b4108a4793bdd74aa3714296c6eaf43663edf73fa8625d0d7621e68447" +dependencies = [ + "syn 1.0.103", + "to-syn-value_derive", +] + +[[package]] +name = "to-syn-value_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd4fdec6de01b568c1d3721c9d46a352623c536cd55a8a5acfefb63d1fccccbc" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "tokio" version = "1.25.0" @@ -11490,7 +12065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" dependencies = [ "crypto-common", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -12777,7 +13352,7 @@ dependencies = [ "gio", "glib", "gtk", - "html5ever", + "html5ever 0.25.2", "http", "kuchiki", "libc", @@ -12867,6 +13442,12 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +[[package]] +name = "xmlparser" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" + [[package]] name = "xsalsa20poly1305" version = "0.9.0" @@ -12876,7 +13457,7 @@ dependencies = [ "aead", "poly1305", "salsa20", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -12973,8 +13554,3 @@ dependencies = [ "libc", "pkg-config", ] - -[[patch.unused]] -name = "sodiumoxide" -version = "0.2.7" -source = "git+https://github.com/fayeed/sodiumoxide#0adef01f4e0d5a8dd76bfb5534309259aa8e8ee7" diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 7eaa23b04..f1ababd95 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -54,3 +54,5 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" holochain = "0.1.3" + +scryer-prolog = "0.9.1" From d333ea7d4e5c8a0e1f00d02dd0b03e0a07d82fd4 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Mon, 10 Jul 2023 19:23:40 +0200 Subject: [PATCH 430/722] Put scryer machine in its own thread and use (pub hacked) user_input/output streams. --- rust-executor/src/prolog.rs | 51 ++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/rust-executor/src/prolog.rs b/rust-executor/src/prolog.rs index cb59a023e..ca3b88b44 100644 --- a/rust-executor/src/prolog.rs +++ b/rust-executor/src/prolog.rs @@ -1,23 +1,44 @@ +use std::io::Read; + use scryer_prolog::machine::Machine; use scryer_prolog::machine::streams::*; +fn string_2_stream(string: String, machine: &mut Machine) -> Stream { + let machine_st = machine.prelude_view_and_machine_st().1; + Stream::from_owned_string(string, &mut machine_st.arena) +} + +fn print_output(machine: &mut Machine) { + let output_bytes: Vec<_> = machine.user_output.bytes().map(|b| b.unwrap()).collect(); + let output_string = String::from_utf8(output_bytes).unwrap(); + println!("{}", output_string); +} pub fn run() { - // Create a new Scryer Prolog machine - let mut machine = Machine::with_test_streams(); - let machine_st = machine.prelude_view_and_machine_st().1; - //let &mut arena = &mut ; + std::thread::spawn(|| { + + let mut machine = Machine::with_test_streams(); + - // Example Prolog query to be executed - let query = String::from("?- append([1, 2], [3, 4], X)."); - - let stream = Stream::from_owned_string( - query, - &mut machine_st.arena, - ); - machine.load_file(String::from("query.pl").as_str(), stream); - //let result: Vec = machine.write_to_vec(); + let facts = String::from("triple(\"a\", \"p1\", \"b\")."); + println!("Loading facts: {}", facts); + let fact_stream = string_2_stream(facts, &mut machine); + machine.load_file(String::from("facts.pl").as_str(), fact_stream); + print_output(&mut machine); + println!("Facts loaded"); + + + //let query = String::from("triple(\"a\", \"b\", \"c\").\nhalt.\n"); + let query = String::from("halt.\n"); + println!("Loading query: {}", query); + let query_stream = string_2_stream(query, &mut machine); + machine.user_input = query_stream; - //println!("Prolog Result: {:?}", result); -} + println!("run toplevel"); + machine.run_top_level(); + println!("toplevel done"); + + print_output(&mut machine); + }); +} \ No newline at end of file From 6d48f851510db10123b5799eab07d89dbfe3fd6e Mon Sep 17 00:00:00 2001 From: Fayeed Date: Mon, 10 Jul 2023 23:36:58 +0530 Subject: [PATCH 431/722] Updated script to work with ts-node-esm --- tests/js/utils/utils.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 8a0764384..d1deac042 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -5,6 +5,11 @@ import { ApolloClient, InMemoryCache } from "@apollo/client/core/index.js"; import Websocket from "ws"; import { createClient } from "graphql-ws"; import path from "path"; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); export async function isProcessRunning(processName: string): Promise { const cmd = (() => { @@ -37,12 +42,13 @@ export async function startExecutor(dataPath: string, languageLanguageOnly: boolean = false, adminCredential?: string ): Promise { + const command = path.resolve(__dirname, '..', '..', '..','target', 'release', 'ad4m.exe'); + console.log(bootstrapSeedPath); console.log(dataPath); let executorProcess = null as ChildProcess | null; rmSync(dataPath, { recursive: true, force: true }) - console.log("Initialzing executor data directory") - execSync(`../../target/release/ad4m init --data-path ${dataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {}) + execSync(`${command} init --data-path ${dataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {cwd: process.cwd()}) console.log("Starting executor") try { @@ -52,9 +58,9 @@ export async function startExecutor(dataPath: string, } if (!adminCredential) { - executorProcess = exec(`${path.join("../../", "target/release/ad4m")} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`${path.join("../../", "target/release/ad4m")} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From 4181aa47270ada7b3a95d83f69a2aa4042221111 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 11 Jul 2023 09:22:24 +0530 Subject: [PATCH 432/722] remove .exe from prepare-test command --- tests/js/utils/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index d1deac042..337ac9e0b 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -42,7 +42,7 @@ export async function startExecutor(dataPath: string, languageLanguageOnly: boolean = false, adminCredential?: string ): Promise { - const command = path.resolve(__dirname, '..', '..', '..','target', 'release', 'ad4m.exe'); + const command = path.resolve(__dirname, '..', '..', '..','target', 'release', 'ad4m'); console.log(bootstrapSeedPath); console.log(dataPath); From 13c140e41f4e3bc8882693100a1cc0d604d6f668 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 11 Jul 2023 12:35:28 +0530 Subject: [PATCH 433/722] updated publish test lang script to work with windows --- tests/js/utils/publishTestLangs.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/js/utils/publishTestLangs.ts b/tests/js/utils/publishTestLangs.ts index f2c86f4f0..2c4609831 100644 --- a/tests/js/utils/publishTestLangs.ts +++ b/tests/js/utils/publishTestLangs.ts @@ -12,12 +12,12 @@ global.fetch = fetch const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); -const appDataPath = path.join(TEST_DIR, "agents", "p"); -const publishLanguagesPath = path.join(TEST_DIR, "languages"); -const publishingBootstrapSeedPath = path.join(`${__dirname}/../publishBootstrapSeed.json`); -const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); -const perspectiveDiffSyncHashPath = path.join(`${__dirname}/../scripts/perspective-diff-sync-hash`); +const TEST_DIR = path.resolve(__dirname, '..', 'tst-tmp'); +const appDataPath = path.resolve(TEST_DIR, "agents", "p"); +const publishLanguagesPath = path.resolve(TEST_DIR, "languages"); +const publishingBootstrapSeedPath = path.resolve(__dirname, '..', 'publishBootstrapSeed.json'); +const bootstrapSeedPath = path.resolve(__dirname, '..', 'bootstrapSeed.json'); +const perspectiveDiffSyncHashPath = path.resolve(__dirname, '..', 'scripts', 'perspective-diff-sync-hash'); const gqlPort = 15700; const hcAdminPort = 15701; const hcAppPort = 15702; @@ -73,7 +73,7 @@ async function publish() { await ad4mClient.agent.generate("passphrase"); for (const [language, languageMeta] of Object.entries(languagesToPublish)) { - let bundlePath = path.join(publishLanguagesPath, language, "build", "bundle.js"); + let bundlePath = path.join(publishLanguagesPath, language, "build", "bundle.js").replace(/\\/g, "/"); console.log("Attempting to publish language", bundlePath); let publishedLang = await ad4mClient.languages.publish(bundlePath, languageMeta); console.log("Published with result", publishedLang); From 211f59d5127f370a7caafb2b8b99563f41cf900f Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 11 Jul 2023 12:35:41 +0530 Subject: [PATCH 434/722] commented out swipl import --- executor/src/core/PrologInstance.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index af7f4ca7a..48486965e 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -1,19 +1,19 @@ import path from "path"; //@ts-ignore -import swipl from 'swipl-stdio' +// import swipl from 'swipl-stdio' //@ts-ignore import tmp from 'tmp' import { MainConfig } from "./Config"; import fs from "fs"; export default class PrologInstance { - #engine + #engine: any constructor(config: MainConfig) { - this.#engine = new swipl.Engine( - config.swiplPath ? config.swiplPath : path.join(config.resourcePath, "swipl"), - config.swiplHomePath - ) + // this.#engine = new swipl.Engine( + // config.swiplPath ? config.swiplPath : path.join(config.resourcePath, "swipl"), + // config.swiplHomePath + // ) } async query(input: string) { @@ -50,6 +50,6 @@ export default class PrologInstance { } close() { - this.#engine.close() + // this.#engine.close() } } \ No newline at end of file From 366e2d76bcc1c4ac4139266963810598e5e0d001 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 11 Jul 2023 11:36:11 +0200 Subject: [PATCH 435/722] WIP working with Machine::run_once --- rust-executor/src/prolog.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/rust-executor/src/prolog.rs b/rust-executor/src/prolog.rs index ca3b88b44..1bb90ab73 100644 --- a/rust-executor/src/prolog.rs +++ b/rust-executor/src/prolog.rs @@ -19,9 +19,8 @@ pub fn run() { let mut machine = Machine::with_test_streams(); - - let facts = String::from("triple(\"a\", \"p1\", \"b\")."); + //let facts = String::from("a.\n\n"); println!("Loading facts: {}", facts); let fact_stream = string_2_stream(facts, &mut machine); machine.load_file(String::from("facts.pl").as_str(), fact_stream); @@ -29,16 +28,19 @@ pub fn run() { println!("Facts loaded"); - //let query = String::from("triple(\"a\", \"b\", \"c\").\nhalt.\n"); - let query = String::from("halt.\n"); + //let query = String::from("triple(A,B,C), write(\"A = \"), write(A), nl, write(\"B = \"), write(B), write(\"C = \"), write(C), nl ; write(\"no triple matched\").\n"); + let query = String::from("triple(A,B,C).\n"); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); println!("Loading query: {}", query); let query_stream = string_2_stream(query, &mut machine); machine.user_input = query_stream; - println!("run toplevel"); - machine.run_top_level(); - println!("toplevel done"); + println!("run once"); + machine.run_once(); + println!("run once done"); print_output(&mut machine); + println!("print output done"); }); } \ No newline at end of file From 2a2cb5d352d6f076e4c2a955e3556d0b1f504cb1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 11 Jul 2023 10:52:57 +0100 Subject: [PATCH 436/722] fix prolog test package.json script name --- tests/js/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/js/package.json b/tests/js/package.json index 82b37c57f..08c7b4ca1 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -12,7 +12,7 @@ "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", - "test-test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", + "test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", "prepare-test": "run-script-os", "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", From 00c7e3d6634efd5c6f7f3478377268f08a436250 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 11 Jul 2023 15:57:36 +0530 Subject: [PATCH 437/722] Fixed bundle path issue for language tests --- tests/js/tests/language.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/js/tests/language.ts b/tests/js/tests/language.ts index 37d1fe58a..8340873d4 100644 --- a/tests/js/tests/language.ts +++ b/tests/js/tests/language.ts @@ -31,7 +31,7 @@ export default function languageTests(testContext: TestContext) { //Publish a source language to start working from sourceLanguage = await ad4mClient.languages.publish( - path.join(__dirname, "../tst-tmp/languages/perspective-diff-sync/build/bundle.js"), + path.join(__dirname, "../tst-tmp/languages/perspective-diff-sync/build/bundle.js").replace(/\\/g, "/"), sourceLanguageMeta ) expect(sourceLanguage.name).to.be.equal(sourceLanguageMeta.name); @@ -60,7 +60,7 @@ export default function languageTests(testContext: TestContext) { //Publish a source language to start working from nonHCSourceLanguage = await ad4mClient.languages.publish( - path.join(__dirname, "../tst-tmp/languages/perspective-language/build/bundle.js"), + path.join(__dirname, "../tst-tmp/languages/perspective-language/build/bundle.js").replace(/\\/g, "/"), sourceLanguageMeta ) expect(nonHCSourceLanguage.name).to.be.equal(nonHCSourceLanguage.name); @@ -94,7 +94,7 @@ export default function languageTests(testContext: TestContext) { const noteMetaInfo = new LanguageMetaInput("Newly published note language", "Just to test non-HC language work as well"); //Publish a source language without a holochain DNA const canPublishNonHolochainLang = await ad4mClient.languages.publish( - path.join(__dirname, "../languages/note-store/build/bundle.js"), + path.join(__dirname, "../languages/note-store/build/bundle.js").replace(/\\/g, "/"), noteMetaInfo ); expect(canPublishNonHolochainLang.name).to.be.equal(noteMetaInfo.name); From 50181da0f6de3d28335cd3aef5c13d1ea7c39e03 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 11 Jul 2023 19:28:42 +0530 Subject: [PATCH 438/722] updated setVersion to update rust-executor & test package version --- setVersion.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/setVersion.js b/setVersion.js index d66067f0d..d451a91ef 100644 --- a/setVersion.js +++ b/setVersion.js @@ -56,6 +56,16 @@ console.log("Executor version: " + executor.version + " -> " + VERSION) executor.version = VERSION fs.writeFileSync('executor/package.json', JSON.stringify(executor, null, 2) + '\n') +const rustExecutor = JSON.parse(fs.readFileSync('rust-executor/package.json', 'utf8')) +console.log("Executor version: " + rustExecutor.version + " -> " + VERSION) +rustExecutor.version = VERSION +fs.writeFileSync('rust-executor/package.json', JSON.stringify(rustExecutor, null, 2) + '\n') + +const tests = JSON.parse(fs.readFileSync('tests/js/package.json', 'utf8')) +console.log("Executor version: " + tests.version + " -> " + VERSION) +tests.version = VERSION +fs.writeFileSync('tests/js/package.json', JSON.stringify(tests, null, 2) + '\n') + const executorHardWired = replaceVersionLine( fs.readFileSync('executor/src/core/Config.ts', 'utf8'), @@ -65,11 +75,6 @@ const executorHardWired = replaceVersionLine( console.log("Hard-wired version string in executor's Config.ts: " + executorHardWired.oldVersion + " -> " + VERSION) fs.writeFileSync('executor/src/core/Config.ts', executorHardWired.newContent) -const host = JSON.parse(fs.readFileSync('host/package.json', 'utf8')) -console.log("Host version: " + host.version + " -> " + VERSION) -host.version = VERSION -fs.writeFileSync('host/package.json', JSON.stringify(host, null, 2) + '\n') - const rustClient = replaceVersionLine(fs.readFileSync('rust-client/Cargo.toml', 'utf8'), VERSION) console.log("rust-client version: " + rustClient.oldVersion + " -> " + VERSION) fs.writeFileSync('rust-client/Cargo.toml', rustClient.newContent) From e9018e682fa87c277ccdafb15f0d121211768dd4 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 11 Jul 2023 19:29:07 +0530 Subject: [PATCH 439/722] Updated rust-executor & test/js package version to 0.5.0 --- rust-executor/package.json | 2 +- tests/js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rust-executor/package.json b/rust-executor/package.json index c675568fc..bd160964e 100644 --- a/rust-executor/package.json +++ b/rust-executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/rust-ad4m-executor", - "version": "0.3.4", + "version": "0.5.0", "description": "Rust built version of the ad4m-executor, exposing GraphQL methods for AD4M", "main": "", "files": [], diff --git a/tests/js/package.json b/tests/js/package.json index 08c7b4ca1..5ef816300 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-integration-tests", - "version": "0.3.4", + "version": "0.5.0", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "type": "module", "scripts": { From 7f63e8a780874adb635eaf71cdebf9313317b59e Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 11 Jul 2023 19:46:51 +0530 Subject: [PATCH 440/722] bootstrap languages ad4m version updated --- bootstrap-languages/agent-language/adapter.ts | 2 +- bootstrap-languages/agent-language/index.ts | 2 +- bootstrap-languages/direct-message-language/adapter.ts | 2 +- bootstrap-languages/direct-message-language/index.ts | 2 +- bootstrap-languages/file-storage/adapter.ts | 2 +- bootstrap-languages/file-storage/index.ts | 2 +- bootstrap-languages/file-storage/putAdapter.ts | 2 +- bootstrap-languages/file-storage/types.ts | 2 +- bootstrap-languages/language-language/adapter.ts | 2 +- bootstrap-languages/language-language/index.ts | 2 +- bootstrap-languages/language-language/languageAdapter.ts | 2 +- bootstrap-languages/language-language/putAdapter.ts | 2 +- bootstrap-languages/neighbourhood-language/adapter.ts | 2 +- bootstrap-languages/neighbourhood-language/index.ts | 2 +- bootstrap-languages/p-diff-sync/index.ts | 2 +- bootstrap-languages/p-diff-sync/linksAdapter.ts | 4 ++-- bootstrap-languages/p-diff-sync/telepresenceAdapter.ts | 2 +- bootstrap-languages/perspective-language/adapter.ts | 2 +- bootstrap-languages/perspective-language/index.ts | 2 +- bootstrap-languages/perspective-language/putAdapter.ts | 2 +- tests/js/languages/note-store/index.ts | 2 +- tests/js/languages/test-language/index.ts | 2 +- 22 files changed, 23 insertions(+), 23 deletions(-) diff --git a/bootstrap-languages/agent-language/adapter.ts b/bootstrap-languages/agent-language/adapter.ts index 39fc1c57e..b541d9312 100644 --- a/bootstrap-languages/agent-language/adapter.ts +++ b/bootstrap-languages/agent-language/adapter.ts @@ -1,4 +1,4 @@ -import type { Address, Agent, Expression, PublicSharing, LanguageContext, HolochainLanguageDelegate, ExpressionAdapter, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Agent, Expression, PublicSharing, LanguageContext, HolochainLanguageDelegate, ExpressionAdapter, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import { DNA_NICK } from "./build/dna.js"; export default class ExpressionAdapterImpl implements ExpressionAdapter { diff --git a/bootstrap-languages/agent-language/index.ts b/bootstrap-languages/agent-language/index.ts index dd9a4d68a..d987debbd 100644 --- a/bootstrap-languages/agent-language/index.ts +++ b/bootstrap-languages/agent-language/index.ts @@ -1,4 +1,4 @@ -import type { Address, Language, LanguageContext, HolochainLanguageDelegate, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Language, LanguageContext, HolochainLanguageDelegate, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import ExpressionAdapter from "./adapter.ts"; import Icon from "./build/Icon.js"; import ConstructorIcon from "./build/ConstructorIcon.js"; diff --git a/bootstrap-languages/direct-message-language/adapter.ts b/bootstrap-languages/direct-message-language/adapter.ts index 7ba320cbf..964e66989 100644 --- a/bootstrap-languages/direct-message-language/adapter.ts +++ b/bootstrap-languages/direct-message-language/adapter.ts @@ -1,4 +1,4 @@ -import { DirectMessageAdapter, HolochainLanguageDelegate, LanguageContext, MessageCallback, Perspective, PerspectiveExpression } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import { DirectMessageAdapter, HolochainLanguageDelegate, LanguageContext, MessageCallback, Perspective, PerspectiveExpression } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import { DNA, DNA_NICK } from "./build/dna.js"; //!@ad4m-template-variable diff --git a/bootstrap-languages/direct-message-language/index.ts b/bootstrap-languages/direct-message-language/index.ts index ecb010881..60f0faabf 100644 --- a/bootstrap-languages/direct-message-language/index.ts +++ b/bootstrap-languages/direct-message-language/index.ts @@ -1,4 +1,4 @@ -import type { Address, Language, LanguageContext, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Language, LanguageContext, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import DMAdapter from "./adapter.ts"; export const name = "direct-message-language"; diff --git a/bootstrap-languages/file-storage/adapter.ts b/bootstrap-languages/file-storage/adapter.ts index bc3170fea..76221b721 100644 --- a/bootstrap-languages/file-storage/adapter.ts +++ b/bootstrap-languages/file-storage/adapter.ts @@ -1,4 +1,4 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import { FileStoragePutAdapter } from './putAdapter.ts' import pako from "https://esm.sh/pako@2.1.0"; import { FileStorage } from "./file-storage.ts"; diff --git a/bootstrap-languages/file-storage/index.ts b/bootstrap-languages/file-storage/index.ts index f28e256d0..45c191c37 100644 --- a/bootstrap-languages/file-storage/index.ts +++ b/bootstrap-languages/file-storage/index.ts @@ -1,4 +1,4 @@ -import type { Address, Interaction, Language, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Interaction, Language, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import Adapter from './adapter.ts' import { FileStorageUI } from "./build/expressionUI.js"; import { DNA, DNA_NICK } from "./build/dna.js"; diff --git a/bootstrap-languages/file-storage/putAdapter.ts b/bootstrap-languages/file-storage/putAdapter.ts index 8232496e8..fab86efe4 100644 --- a/bootstrap-languages/file-storage/putAdapter.ts +++ b/bootstrap-languages/file-storage/putAdapter.ts @@ -1,4 +1,4 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, AgentService, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import pako from "https://esm.sh/pako@2.1.0"; import { FileStorage } from "./file-storage.ts"; import { DNA_NICK } from "./build/dna.js"; diff --git a/bootstrap-languages/file-storage/types.ts b/bootstrap-languages/file-storage/types.ts index d76e82426..f5bb4be9f 100644 --- a/bootstrap-languages/file-storage/types.ts +++ b/bootstrap-languages/file-storage/types.ts @@ -1,4 +1,4 @@ -import { ExpressionGeneric } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import { ExpressionGeneric } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; export type EntryHash = Uint8Array; diff --git a/bootstrap-languages/language-language/adapter.ts b/bootstrap-languages/language-language/adapter.ts index 845cd7b0f..8648912c4 100644 --- a/bootstrap-languages/language-language/adapter.ts +++ b/bootstrap-languages/language-language/adapter.ts @@ -1,4 +1,4 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import { CloudflarePutAdapter } from "./putAdapter.ts"; //@ts-ignore import axiod from "https://deno.land/x/axiod/mod.ts"; diff --git a/bootstrap-languages/language-language/index.ts b/bootstrap-languages/language-language/index.ts index bcfaeac8d..6aa1fa773 100644 --- a/bootstrap-languages/language-language/index.ts +++ b/bootstrap-languages/language-language/index.ts @@ -1,4 +1,4 @@ -import type { Address, Language, LanguageContext, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Language, LanguageContext, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import LangAdapter from "./languageAdapter.ts"; import Adapter from "./adapter.ts"; diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index 3afc86cde..82f636ba8 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -1,4 +1,4 @@ -import type { Address, LanguageAdapter, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, LanguageAdapter, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; //@ts-ignore import axiod from "https://deno.land/x/axiod/mod.ts"; import { PROXY_URL } from "./index.ts"; diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index c99779c06..60d77f597 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -1,4 +1,4 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, LanguageLanguageInput} from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, AgentService, PublicSharing, LanguageContext, LanguageLanguageInput} from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; //@ts-ignore import axiod from "https://deno.land/x/axiod/mod.ts"; import { PROXY_URL } from "./index.ts"; diff --git a/bootstrap-languages/neighbourhood-language/adapter.ts b/bootstrap-languages/neighbourhood-language/adapter.ts index 124105759..0a03203fe 100644 --- a/bootstrap-languages/neighbourhood-language/adapter.ts +++ b/bootstrap-languages/neighbourhood-language/adapter.ts @@ -1,4 +1,4 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import axiod from "https://deno.land/x/axiod/mod.ts"; import { PROXY_URL } from "./index.ts"; diff --git a/bootstrap-languages/neighbourhood-language/index.ts b/bootstrap-languages/neighbourhood-language/index.ts index 43749a1f7..7046ab0b9 100644 --- a/bootstrap-languages/neighbourhood-language/index.ts +++ b/bootstrap-languages/neighbourhood-language/index.ts @@ -1,4 +1,4 @@ -import type { Address, Language, LanguageContext, ExpressionUI, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Language, LanguageContext, ExpressionUI, Interaction } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import Adapter from "./adapter.ts"; function interactions(expression: Address): Interaction[] { diff --git a/bootstrap-languages/p-diff-sync/index.ts b/bootstrap-languages/p-diff-sync/index.ts index ea49a4a0f..1f57856ad 100644 --- a/bootstrap-languages/p-diff-sync/index.ts +++ b/bootstrap-languages/p-diff-sync/index.ts @@ -1,4 +1,4 @@ -import type { Address, Language, Interaction, HolochainLanguageDelegate, LanguageContext, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Language, Interaction, HolochainLanguageDelegate, LanguageContext, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import { LinkAdapter } from "./linksAdapter.ts"; import { TelepresenceAdapterImplementation } from "./telepresenceAdapter.ts"; import { DNA, DNA_NICK, ZOME_NAME } from "./build/dna.js"; diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index 41e1d8cb3..ecde09434 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -1,6 +1,6 @@ import { LinkSyncAdapter, PerspectiveDiffObserver, HolochainLanguageDelegate, LanguageContext, PerspectiveDiff, - LinkExpression, DID, Perspective, PerspectiveState } from "https://esm.sh/@perspect3vism/ad4m@0.3.4";; -import type { SyncStateChangeObserver } from "https://esm.sh/@perspect3vism/ad4m@0.3.4";; + LinkExpression, DID, Perspective, PerspectiveState } from "https://esm.sh/@perspect3vism/ad4m@0.5.0";; +import type { SyncStateChangeObserver } from "https://esm.sh/@perspect3vism/ad4m@0.5.0";; import { DNA_NICK, ZOME_NAME } from "./build/dna.js"; class PeerInfo { diff --git a/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts b/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts index 3181e136c..9ae096da6 100644 --- a/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts +++ b/bootstrap-languages/p-diff-sync/telepresenceAdapter.ts @@ -1,4 +1,4 @@ -import type { TelepresenceAdapter, OnlineAgent, PerspectiveExpression, TelepresenceSignalCallback, HolochainLanguageDelegate, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4";; +import type { TelepresenceAdapter, OnlineAgent, PerspectiveExpression, TelepresenceSignalCallback, HolochainLanguageDelegate, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0";; import { DNA_NICK, ZOME_NAME } from "./build/dna.js"; export class TelepresenceAdapterImplementation implements TelepresenceAdapter { diff --git a/bootstrap-languages/perspective-language/adapter.ts b/bootstrap-languages/perspective-language/adapter.ts index 17b6c1b67..025267496 100644 --- a/bootstrap-languages/perspective-language/adapter.ts +++ b/bootstrap-languages/perspective-language/adapter.ts @@ -1,4 +1,4 @@ -import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import { IpfsPutAdapter } from './putAdapter.ts' // import { toString as uint8ArrayToString } from 'uint8arrays/to-string' // import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; diff --git a/bootstrap-languages/perspective-language/index.ts b/bootstrap-languages/perspective-language/index.ts index 4dbc9c114..f1bad9765 100644 --- a/bootstrap-languages/perspective-language/index.ts +++ b/bootstrap-languages/perspective-language/index.ts @@ -1,4 +1,4 @@ -import type { Address, Interaction, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Interaction, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import Adapter from './adapter.ts' import { UI } from "./build/expressionUI.js"; diff --git a/bootstrap-languages/perspective-language/putAdapter.ts b/bootstrap-languages/perspective-language/putAdapter.ts index 573fc1d91..f5ab8b000 100644 --- a/bootstrap-languages/perspective-language/putAdapter.ts +++ b/bootstrap-languages/perspective-language/putAdapter.ts @@ -1,4 +1,4 @@ -import type { Address, AgentService, PublicSharing, LanguageContext, Perspective } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, AgentService, PublicSharing, LanguageContext, Perspective } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; export class IpfsPutAdapter implements PublicSharing { #agent: AgentService diff --git a/tests/js/languages/note-store/index.ts b/tests/js/languages/note-store/index.ts index fd14329b9..4114ba1fb 100644 --- a/tests/js/languages/note-store/index.ts +++ b/tests/js/languages/note-store/index.ts @@ -1,4 +1,4 @@ -import type { Address, Interaction, Expression, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Interaction, Expression, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; import { exists } from "https://deno.land/std@0.184.0/fs/mod.ts"; import { join } from "https://deno.land/std@0.184.0/path/mod.ts"; diff --git a/tests/js/languages/test-language/index.ts b/tests/js/languages/test-language/index.ts index 3501e0326..ae0fe4e0f 100644 --- a/tests/js/languages/test-language/index.ts +++ b/tests/js/languages/test-language/index.ts @@ -1,4 +1,4 @@ -import type { Address, Interaction, Expression, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.3.4"; +import type { Address, Interaction, Expression, Language, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; export default function create(context: LanguageContext): Language { const expressions = new Array() From 78ed55b01b7e5e165a83c0ba3bf77826d93bcc7b Mon Sep 17 00:00:00 2001 From: Fayeed Date: Tue, 11 Jul 2023 20:53:00 +0530 Subject: [PATCH 441/722] updated rust-executor ad4m version --- rust-executor/src/globals.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index 4c3a48153..0c81257db 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -2,7 +2,7 @@ use lazy_static::lazy_static; lazy_static! { /// The current version of AD4M - pub static ref AD4M_VERSION: String = String::from("0.4.0"); + pub static ref AD4M_VERSION: String = String::from("0.5.0"); } /// Struct representing oldest supported version and indicator if state should be cleared if update is required From aa6910b3a2cba39aa6da89b8d56326a52e420ce5 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 12 Jul 2023 01:30:29 +0200 Subject: [PATCH 442/722] Use Scryer fork with library use-case modifications --- rust-executor/Cargo.toml | 3 ++- rust-executor/src/prolog.rs | 46 +++++++++++++++---------------------- 2 files changed, 20 insertions(+), 29 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index f1ababd95..3ef2107f6 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -55,4 +55,5 @@ jsonwebtoken = "8.3.0" holochain = "0.1.3" -scryer-prolog = "0.9.1" +#scryer-prolog = { version = "0.9.1", path = "../../Coasys/code/scryer-prolog" } +scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "library-use-case" } diff --git a/rust-executor/src/prolog.rs b/rust-executor/src/prolog.rs index 1bb90ab73..f57a5abb9 100644 --- a/rust-executor/src/prolog.rs +++ b/rust-executor/src/prolog.rs @@ -1,46 +1,36 @@ -use std::io::Read; - use scryer_prolog::machine::Machine; use scryer_prolog::machine::streams::*; -fn string_2_stream(string: String, machine: &mut Machine) -> Stream { - let machine_st = machine.prelude_view_and_machine_st().1; - Stream::from_owned_string(string, &mut machine_st.arena) -} - -fn print_output(machine: &mut Machine) { - let output_bytes: Vec<_> = machine.user_output.bytes().map(|b| b.unwrap()).collect(); - let output_string = String::from_utf8(output_bytes).unwrap(); - println!("{}", output_string); -} pub fn run() { std::thread::spawn(|| { let mut machine = Machine::with_test_streams(); - let facts = String::from("triple(\"a\", \"p1\", \"b\")."); - //let facts = String::from("a.\n\n"); - println!("Loading facts: {}", facts); - let fact_stream = string_2_stream(facts, &mut machine); - machine.load_file(String::from("facts.pl").as_str(), fact_stream); - print_output(&mut machine); + let facts = String::from(r#" +triple("a", "p1", "b"). +triple("a", "p2", "b"). +"#); + + machine.load_module_string("facts", facts); + println!("{}", machine.get_user_output()); println!("Facts loaded"); + //let query = String::from("triple(A,B,C), write(\"A = \"), write(A), nl, write(\"B = \"), write(B), write(\"C = \"), write(C), nl ; write(\"no triple matched\").\n"); - let query = String::from("triple(A,B,C).\n"); + let query = String::from("triple(\"a\",P,\"b\")."); //let query = String::from("write(\"A = \")."); //let query = String::from("halt.\n"); - println!("Loading query: {}", query); - let query_stream = string_2_stream(query, &mut machine); - machine.user_input = query_stream; + println!("Running query: {}", query); + let output = machine.run_query(query); + println!("Output: {:?}", output); - println!("run once"); - machine.run_once(); - println!("run once done"); - - print_output(&mut machine); - println!("print output done"); + let query = String::from("triple(\"a\",\"p1\",\"b\")."); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); + println!("Running query: {}", query); + let output = machine.run_query(query); + println!("Output: {:?}", output); }); } \ No newline at end of file From 631b731476ddf9348220dbfba04523f4607e9614 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 12 Jul 2023 10:47:14 +0100 Subject: [PATCH 443/722] add more transport types even if proxy is false --- rust-executor/src/holochain_service/mod.rs | 23 +++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 85d405fd4..135f47748 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -201,11 +201,24 @@ impl HolochainService { }, }]; } else { - kitsune_config.transport_pool = vec![TransportConfig::Quic { - bind_to: None, - override_host: None, - override_port: None, - }]; + kitsune_config.transport_pool = vec![ + TransportConfig::Quic { + bind_to: None, + override_host: None, + override_port: None, + }, + TransportConfig::Mem {}, + TransportConfig::Proxy { + sub_transport: Box::new(TransportConfig::Quic { + bind_to: None, + override_host: None, + override_port: None, + }), + proxy_config: ProxyConfig::RemoteProxyClient { + proxy_url: Url2::parse(local_config.proxy_url), + }, + }, + ]; } config.network = Some(kitsune_config); From de0d715b39dd5ac9c1c317d0e1c57b3fa76928ec Mon Sep 17 00:00:00 2001 From: Fayeed Date: Wed, 12 Jul 2023 16:39:59 +0530 Subject: [PATCH 444/722] Fixed neighbourhood tests failing --- tests/js/tests/neighbourhood.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index f7db40b8d..72e5a9841 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -196,6 +196,7 @@ export default function neighbourhoodTests(testContext: TestContext) { const aliceP1 = await alice.perspective.add("telepresence") const linkLang = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood for Telepresence"})); const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, linkLang.address, new Perspective()) + await sleep(60000) const bobP1Handle = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); const bobP1 = await bob.perspective.byUUID(bobP1Handle.uuid) await testContext.makeAllNodesKnown() @@ -204,7 +205,7 @@ export default function neighbourhoodTests(testContext: TestContext) { bobNH = bobP1!.getNeighbourhoodProxy() aliceDID = (await alice.agent.me()).did bobDID = (await bob.agent.me()).did - await sleep(5000) + await sleep(60000) }) it('they see each other in `otherAgents`', async () => { From f98f02dcd43eac4033f83b6106acb09d742f9c7e Mon Sep 17 00:00:00 2001 From: Fayeed Date: Wed, 12 Jul 2023 20:28:50 +0530 Subject: [PATCH 445/722] changed file name to simple test agent name --- tests/js/tests/simple.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/js/tests/simple.test.ts b/tests/js/tests/simple.test.ts index 979f5309c..e77f54e6f 100644 --- a/tests/js/tests/simple.test.ts +++ b/tests/js/tests/simple.test.ts @@ -14,7 +14,7 @@ const __dirname = path.dirname(__filename); describe("Integration", () => { const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); - const appDataPath = path.join(TEST_DIR, "agents", "alice"); + const appDataPath = path.join(TEST_DIR, "agents", "simpleAlice"); const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); const gqlPort = 15600 const hcAdminPort = 15601 From ceb6ee2c718696b71f603e4d46b4769aaf0cf686 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 13 Jul 2023 00:52:07 +0530 Subject: [PATCH 446/722] Added cleanup script to kill any dangling process after test --- tests/.gitignore | 1 + tests/js/package.json | 15 +++++++-------- tests/js/scripts/cleanup.js | 7 +++++++ 3 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 tests/js/scripts/cleanup.js diff --git a/tests/.gitignore b/tests/.gitignore index 0fbc5218d..4bc5812b0 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1,6 +1,7 @@ js/tst-tmp !cleanTestingData.js +!cleanup.js !get-builtin-test-langs.js !injectLanguageLanguageBundle.js !injectPublishingAgent.js diff --git a/tests/js/package.json b/tests/js/package.json index 5ef816300..c6d017fee 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -7,13 +7,11 @@ "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", "test:windows": "yarn run prepare-test:windows && yarn run test-all && node scripts/cleanTestingData.js", "test-all": "yarn run test-simple && yarn run test-app && yarn run test-auth && yarn run test-integration && yarn run test-prolog-and-literals", - - "test-simple": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts", - "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", - "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", - "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", - "test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", - + "test-simple": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts && node scripts/cleanup.js", + "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts && node scripts/cleanup.js", + "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts && node scripts/cleanup.js", + "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts && node scripts/cleanup.js", + "test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts && node scripts/cleanup.js", "prepare-test": "run-script-os", "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", "prepare-test:linux": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", @@ -45,12 +43,13 @@ "node-fetch": "^3.3.0", "node-wget-js": "^1.0.1", "react": "^17.0.1", + "run-script-os": "^1.1.6", "sinon": "*", "ts-mocha": "*", "ts-node": "10.9.1", "typescript": "^4.6.2", "unzipper": "^0.10.11", "ws": "8.13.0", - "run-script-os": "^1.1.6" + "kill-process-by-name": "^1.0.5" } } diff --git a/tests/js/scripts/cleanup.js b/tests/js/scripts/cleanup.js new file mode 100644 index 000000000..c03bd0a85 --- /dev/null +++ b/tests/js/scripts/cleanup.js @@ -0,0 +1,7 @@ +import killProcess from 'kill-process-by-name'; + +async function cleanup() { + killProcess('ad4m'); +} + +cleanup() \ No newline at end of file From 4f4668f77f490592d4b916fc57be02e5234279a6 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 13 Jul 2023 00:06:00 +0100 Subject: [PATCH 447/722] run all linux jobs on hosted runner --- .github/workflows/agent-language-tests.yml | 2 +- .../workflows/direct-message-language-tests.yml | 2 +- .../workflows/file-storage-language-tests.yml | 2 +- .github/workflows/integration_js.yml | 2 +- .github/workflows/p-diff-sync-tests.yml | 16 ++++++++-------- .github/workflows/publish.yml | 14 +++++++------- .github/workflows/publish_staging.yml | 14 +++++++------- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index 52cc322b9..b96450853 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index 68a44382f..781b1eb23 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index ce323bd2d..8befc8a19 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 957b2adbd..189a7c17a 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 5d2a7577c..c0697cbbd 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -45,7 +45,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -83,7 +83,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -121,7 +121,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -159,7 +159,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -198,7 +198,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -236,7 +236,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -274,7 +274,7 @@ jobs: strategy: matrix: - platform: [ubuntu-22.04] + platform: [GH-hosted-ubuntu] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5326da93d..f9e11c3d0 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,7 +7,7 @@ on: jobs: create-release: - runs-on: ubuntu-20.04 + runs-on: GH-hosted-ubuntu outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} @@ -40,7 +40,7 @@ jobs: strategy: fail-fast: false matrix: - platform: [ubuntu-latest, macos-latest, windows-latest] + platform: [GH-hosted-ubuntu, macos-latest, windows-latest] node-version: [16.x] needs: @@ -61,7 +61,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-latest' + if: matrix.platform == 'GH-hosted-ubuntu' run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf @@ -88,7 +88,7 @@ jobs: - name: Upload Release Deb Asset id: upload-release-deb-asset - if: matrix.platform == 'ubuntu-latest' + if: matrix.platform == 'GH-hosted-ubuntu' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -100,7 +100,7 @@ jobs: - name: Upload Release AD4M CLI Linux Binary id: upload-release-linux-ad4m-cli-binary - if: matrix.platform == 'ubuntu-latest' + if: matrix.platform == 'GH-hosted-ubuntu' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -169,7 +169,7 @@ jobs: # projectPath: "./ui" npm-publish: - runs-on: ubuntu-latest + runs-on: GH-hosted-ubuntu steps: - uses: actions/checkout@v3 # Setup .npmrc file to publish to npm @@ -204,7 +204,7 @@ jobs: crates-publish: - runs-on: ubuntu-20.04 + runs-on: GH-hosted-ubuntu steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 9a0bb633a..f26265f4f 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -7,7 +7,7 @@ on: jobs: create-release: - runs-on: ubuntu-20.04 + runs-on: GH-hosted-ubuntu outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} @@ -42,7 +42,7 @@ jobs: strategy: fail-fast: false matrix: - platform: [ubuntu-latest, macos-latest, windows-latest] + platform: [GH-hosted-ubuntu, macos-latest, windows-latest] node-version: [16.x] needs: @@ -63,7 +63,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-latest' + if: matrix.platform == 'GH-hosted-ubuntu' run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf @@ -90,7 +90,7 @@ jobs: - name: Upload Release Deb Asset id: upload-release-deb-asset - if: matrix.platform == 'ubuntu-latest' + if: matrix.platform == 'GH-hosted-ubuntu' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -102,7 +102,7 @@ jobs: - name: Upload Release AD4M CLI Linux Binary id: upload-release-linux-ad4m-cli-binary - if: matrix.platform == 'ubuntu-latest' + if: matrix.platform == 'GH-hosted-ubuntu' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -171,7 +171,7 @@ jobs: # projectPath: "./ui" npm-publish: - runs-on: ubuntu-latest + runs-on: GH-hosted-ubuntu steps: - uses: actions/checkout@v3 # Setup .npmrc file to publish to npm @@ -206,7 +206,7 @@ jobs: crates-publish: - runs-on: ubuntu-20.04 + runs-on: GH-hosted-ubuntu steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 From 5d6ee067a2d537840d1dff31f8ba46701ff07463 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 13 Jul 2023 09:39:01 +0530 Subject: [PATCH 448/722] try catch cleanup.js --- tests/js/scripts/cleanup.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/js/scripts/cleanup.js b/tests/js/scripts/cleanup.js index c03bd0a85..2fa3f78ad 100644 --- a/tests/js/scripts/cleanup.js +++ b/tests/js/scripts/cleanup.js @@ -1,7 +1,11 @@ import killProcess from 'kill-process-by-name'; async function cleanup() { - killProcess('ad4m'); + try { + killProcess('ad4m'); + } catch (e) { + console.log('Error: ', e) + } } cleanup() \ No newline at end of file From 96b9bd1725f297dd70ab2f828dd974b336d847f2 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 13 Jul 2023 10:37:02 +0530 Subject: [PATCH 449/722] udpated test script --- tests/js/package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/js/package.json b/tests/js/package.json index c6d017fee..43c760480 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -7,11 +7,11 @@ "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", "test:windows": "yarn run prepare-test:windows && yarn run test-all && node scripts/cleanTestingData.js", "test-all": "yarn run test-simple && yarn run test-app && yarn run test-auth && yarn run test-integration && yarn run test-prolog-and-literals", - "test-simple": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts && node scripts/cleanup.js", - "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts && node scripts/cleanup.js", - "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts && node scripts/cleanup.js", - "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts && node scripts/cleanup.js", - "test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts && node scripts/cleanup.js", + "test-simple": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts", + "test-integration": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", + "test-app": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", + "test-auth": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", + "test-prolog-and-literals": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", "prepare-test": "run-script-os", "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", "prepare-test:linux": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", From 2b1c1abac3c9f42b72dae18db51ea58c656540ab Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 13 Jul 2023 12:05:01 +0530 Subject: [PATCH 450/722] Updated windows script only --- tests/js/package.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/js/package.json b/tests/js/package.json index 43c760480..11371ef28 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -5,13 +5,14 @@ "type": "module", "scripts": { "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", - "test:windows": "yarn run prepare-test:windows && yarn run test-all && node scripts/cleanTestingData.js", + "test:windows": "yarn run prepare-test:windows && yarn run test-all:windows && node scripts/cleanTestingData.js", + "test-all:windows": "node scripts/cleanup.js && yarn run test-simple && node scripts/cleanup.js && yarn run test-app && node scripts/cleanup.js && yarn run test-auth && node scripts/cleanup.js && yarn run test-integration && node scripts/cleanup.js && yarn run test-prolog-and-literals", "test-all": "yarn run test-simple && yarn run test-app && yarn run test-auth && yarn run test-integration && yarn run test-prolog-and-literals", - "test-simple": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts", - "test-integration": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", - "test-app": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", - "test-auth": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", - "test-prolog-and-literals": "node scripts/cleanup.js && ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", + "test-simple": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts", + "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", + "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", + "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", + "test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", "prepare-test": "run-script-os", "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", "prepare-test:linux": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", From f5dc8dcbdeb7c3e5be12cde794191479d2843168 Mon Sep 17 00:00:00 2001 From: Fayeed Date: Thu, 13 Jul 2023 14:21:08 +0530 Subject: [PATCH 451/722] Fixed broken linksMutation query --- executor/src/core/graphQL-interface/GraphQL.ts | 4 ++-- rust-executor/src/graphql/mutation_resolvers.rs | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index e871f3e06..f651d48a7 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -819,7 +819,7 @@ export function createResolvers(core: Ad4mCore, config: OuterConfig) { return await perspective.addLink(link, status) }, //@ts-ignore - perspectiveAddLinks: async (parent, args, context, info) => { + perspectiveAddLinks: async (args, context, info) => { const { uuid, links, status } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) @@ -859,7 +859,7 @@ export function createResolvers(core: Ad4mCore, config: OuterConfig) { return await perspective.removeLinks(links) }, //@ts-ignore - perspectiveLinkMutations: async (parent, args, context, info) => { + perspectiveLinkMutations: async (args, context, info) => { const { uuid, mutations, status } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 2477aac64..9e714fe71 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -797,20 +797,33 @@ impl Mutation { context: &RequestContext, mutations: LinkMutations, uuid: String, + status: Option, ) -> FieldResult { let capabilities = get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let mutations_json = serde_json::to_string(&mutations)?; + let status = match status { + Some(status) => { + if status != String::from("shared") && status != String::from("local") { + return Err(juniper::FieldError::new( + "Invalid status, must be either 'shared' or 'local'", + graphql_value!({ "invalid_status": status }), + )); + } + format!(r#""{}""#, status) + } + None => String::from("shared"), + }; let script = format!( r#"JSON.stringify( await core.callResolver( "Mutation", "perspectiveLinkMutations", - {{ mutations: {}, uuid: "{}" }}, + {{ mutations: {}, uuid: "{}", status: {} }}, {{ capabilities: {} }} ))"#, - mutations_json, uuid, capabilities + mutations_json, uuid, status, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; From 58430284b152454560a47cc6757996a658c8bfae Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 17 Jul 2023 16:27:17 +0100 Subject: [PATCH 452/722] add deno prolog service extension --- rust-executor/src/js_core/options.rs | 11 ++- rust-executor/src/lib.rs | 1 + rust-executor/src/main.rs | 3 +- rust-executor/src/prolog_service/interface.rs | 79 +++++++++++++++++ rust-executor/src/prolog_service/mod.rs | 84 +++++++++++++++++++ .../prolog_service_extension.js | 16 ++++ .../prolog_service_extension.rs | 35 ++++++++ 7 files changed, 227 insertions(+), 2 deletions(-) create mode 100644 rust-executor/src/prolog_service/interface.rs create mode 100644 rust-executor/src/prolog_service/mod.rs create mode 100644 rust-executor/src/prolog_service/prolog_service_extension.js create mode 100644 rust-executor/src/prolog_service/prolog_service_extension.rs diff --git a/rust-executor/src/js_core/options.rs b/rust-executor/src/js_core/options.rs index ec600c216..9314aaa3a 100644 --- a/rust-executor/src/js_core/options.rs +++ b/rust-executor/src/js_core/options.rs @@ -7,6 +7,7 @@ use super::{ wallet_extension, }; use crate::holochain_service::holochain_service_extension; +use crate::prolog_service::prolog_service_extension; pub fn main_module_url() -> Url { Url::parse("https://ad4m.runtime/main").unwrap() @@ -36,9 +37,17 @@ pub fn main_worker_options() -> WorkerOptions { let sub_ext = pubsub_extension::build(); let holochain_ext = holochain_service_extension::build(); let jwt_ext = jwt_extension::build(); + let prolog_ext = prolog_service_extension::build(); WorkerOptions { - extensions: vec![wallet_ext, utils_ext, sub_ext, holochain_ext, jwt_ext], + extensions: vec![ + wallet_ext, + utils_ext, + sub_ext, + holochain_ext, + jwt_ext, + prolog_ext, + ], module_loader: Rc::new(loader), ..Default::default() } diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 18f06b161..3ce0c020b 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -3,6 +3,7 @@ mod globals; pub mod graphql; mod holochain_service; mod js_core; +mod prolog_service; mod utils; mod wallet; diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index cfdc4f009..c5131778b 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -2,8 +2,9 @@ mod globals; mod graphql; mod holochain_service; mod js_core; -mod utils; mod prolog; +mod prolog_service; +mod utils; mod wallet; pub mod init; diff --git a/rust-executor/src/prolog_service/interface.rs b/rust-executor/src/prolog_service/interface.rs new file mode 100644 index 000000000..68e2f560b --- /dev/null +++ b/rust-executor/src/prolog_service/interface.rs @@ -0,0 +1,79 @@ +use deno_core::anyhow::Error; +use lazy_static::lazy_static; +use scryer_prolog::machine::parsed_results::QueryResult; +use std::sync::Arc; +use tokio::sync::mpsc::Sender; +use tokio::sync::{oneshot, RwLock}; + +#[derive(Clone)] +pub struct PrologServiceInterface { + pub sender: Sender, +} + +impl PrologServiceInterface { + pub async fn run_query(self, query: String) -> Result { + let (response_sender, response_receiver) = oneshot::channel(); + self.sender + .send(PrologServiceRequest::RunQuery(query, response_sender)) + .await + .expect("Failed to send PrologServiceRequest::RunQuery"); + let response = response_receiver + .await + .expect("Failed to receive PrologServiceResponse"); + match response { + PrologServiceResponse::QueryResult(query_result) => Ok(query_result), + _ => unreachable!(), + } + } + + pub async fn load_module_string( + self, + module_name: String, + program: String, + ) -> Result<(), Error> { + let (response_sender, response_receiver) = oneshot::channel(); + self.sender + .send(PrologServiceRequest::LoadModuleString( + module_name, + program, + response_sender, + )) + .await + .expect("Failed to send PrologServiceRequest::LoadModuleString"); + let response = response_receiver + .await + .expect("Failed to receive PrologServiceResponse"); + match response { + PrologServiceResponse::LoadModuleResult(result) => result, + _ => unreachable!(), + } + } +} + +#[derive(Debug)] +pub enum PrologServiceRequest { + RunQuery(String, oneshot::Sender), + LoadModuleString(String, String, oneshot::Sender), +} + +#[derive(Debug)] +pub enum PrologServiceResponse { + InitComplete(Result<(), Error>), + QueryResult(QueryResult), + LoadModuleResult(Result<(), Error>), +} + +lazy_static! { + static ref PROLOG_SERVICE: Arc>> = + Arc::new(RwLock::new(None)); +} + +pub async fn set_prolog_service(service: PrologServiceInterface) { + let mut lock = PROLOG_SERVICE.write().await; + *lock = Some(service); +} + +pub async fn get_prolog_service() -> PrologServiceInterface { + let lock = PROLOG_SERVICE.read().await; + lock.clone().expect("Holochain Conductor not started") +} diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs new file mode 100644 index 000000000..81fdc855b --- /dev/null +++ b/rust-executor/src/prolog_service/mod.rs @@ -0,0 +1,84 @@ +use deno_core::anyhow::Error; +use scryer_prolog::machine::Machine; +use std::sync::Arc; +use tokio::sync::oneshot; +use tokio::sync::{mpsc, Mutex}; + +pub(crate) mod interface; +pub(crate) mod prolog_service_extension; + +pub(crate) use interface::{ + get_prolog_service, PrologServiceInterface, PrologServiceRequest, PrologServiceResponse, +}; + +use self::interface::set_prolog_service; + +#[derive(Clone)] +pub struct PrologService { + pub machine: Arc>, +} + +impl PrologService { + pub async fn init() -> Result<(), Error> { + let (sender, mut receiver) = mpsc::channel::(32); + let inteface = PrologServiceInterface { sender }; + set_prolog_service(inteface).await; + + let (response_sender, response_receiver) = oneshot::channel(); + + std::thread::spawn(move || { + let service = PrologService::new().unwrap(); + + response_sender + .send(PrologServiceResponse::InitComplete(Ok(()))) + .unwrap(); + + loop { + match receiver.try_recv() { + Ok(message) => match message { + PrologServiceRequest::RunQuery(query, response) => { + let mut machine = loop { + match service.machine.try_lock() { + Ok(machine) => break machine, + Err(_err) => { + std::thread::sleep(std::time::Duration::from_millis(5)) + } + } + }; + let result = machine.run_query(query); + let _ = response.send(PrologServiceResponse::QueryResult(result)); + } + PrologServiceRequest::LoadModuleString(module_name, program, response) => { + let mut machine = loop { + match service.machine.try_lock() { + Ok(machine) => break machine, + Err(_err) => { + std::thread::sleep(std::time::Duration::from_millis(5)) + } + } + }; + let _result = machine.load_module_string(module_name.as_str(), program); + let _ = response.send(PrologServiceResponse::LoadModuleResult(Ok(()))); + } + }, + Err(_err) => std::thread::sleep(std::time::Duration::from_millis(5)), + } + } + }); + + match response_receiver.await? { + PrologServiceResponse::InitComplete(result) => result?, + _ => unreachable!(), + }; + + Ok(()) + } + + pub fn new() -> Result { + let service = PrologService { + machine: Arc::new(Mutex::new(Machine::with_test_streams())), + }; + + Ok(service) + } +} diff --git a/rust-executor/src/prolog_service/prolog_service_extension.js b/rust-executor/src/prolog_service/prolog_service_extension.js new file mode 100644 index 000000000..cfde28910 --- /dev/null +++ b/rust-executor/src/prolog_service/prolog_service_extension.js @@ -0,0 +1,16 @@ +((globalThis) => { + const core = Deno.core; + + globalThis.PROLOG_SERVICE = { + startPrologService: async () => { + return core.opAsync("start_prolog_service"); + }, + runQuery: async (query) => { + return core.opAsync("run_query"), query; + }, + loadModuleString: async (module_name, program) => { + return core.opAsync("load_module_string", module_name, program); + } + }; + })(globalThis); + \ No newline at end of file diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs new file mode 100644 index 000000000..8622e4e0c --- /dev/null +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -0,0 +1,35 @@ +use deno_core::{error::AnyError, include_js_files, op, Extension}; + +use super::{get_prolog_service, PrologService}; + +#[op] +async fn start_prolog_service() -> Result<(), AnyError> { + PrologService::init().await?; + Ok(()) +} + +#[op] +async fn run_query(query: String) -> Result { + let interface = get_prolog_service().await; + let result = interface.run_query(query).await; + let string_result = format!("{:?}", result); + Ok(string_result) +} + +#[op] +async fn load_module_string(module_name: String, program: String) -> Result<(), AnyError> { + let interface = get_prolog_service().await; + interface.load_module_string(module_name, program).await +} + +pub fn build() -> Extension { + Extension::builder("prolog_service") + .js(include_js_files!(holochain_service "prolog_service_extension.js",)) + .ops(vec![ + start_prolog_service::decl(), + run_query::decl(), + load_module_string::decl(), + ]) + .force_op_registration() + .build() +} From 4d1e92ea1f494895f6c6fa4be85c11ef07e2a910 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 17 Jul 2023 16:27:39 +0100 Subject: [PATCH 453/722] call the prolog service extension from js PrologInstance --- Cargo.lock | 3 +- executor/src/core/PrologInstance.ts | 83 +++++++++++----------- executor/src/prolog_service_extension.d.ts | 11 +++ rust-executor/.gitignore | 1 + 4 files changed, 53 insertions(+), 45 deletions(-) create mode 100644 executor/src/prolog_service_extension.d.ts diff --git a/Cargo.lock b/Cargo.lock index c37f57b32..80b061661 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9452,8 +9452,7 @@ checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" [[package]] name = "scryer-prolog" version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf815588f19a44886bb9a8b3c5a209c9451fa0d83f7246abd4e74f9be3957c0" +source = "git+https://github.com/coasys/scryer-prolog?branch=library-use-case#c0dd94c8a3c4bf37961575324a7bd21792845088" dependencies = [ "base64 0.12.3", "blake2 0.8.1", diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index af7f4ca7a..1b8fbf926 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -1,55 +1,52 @@ -import path from "path"; -//@ts-ignore -import swipl from 'swipl-stdio' -//@ts-ignore -import tmp from 'tmp' -import { MainConfig } from "./Config"; -import fs from "fs"; - export default class PrologInstance { - #engine + prologService = PROLOG; + + constructor() { + } - constructor(config: MainConfig) { - this.#engine = new swipl.Engine( - config.swiplPath ? config.swiplPath : path.join(config.resourcePath, "swipl"), - config.swiplHomePath - ) + async start() { + return await this.prologService.startPrologService() } async query(input: string) { - const query = await this.#engine.createQuery(input); - let allMatches = [] - try { - let ret = null; - while (ret = await query.next()) { - allMatches.push(ret) - } - } finally { - await query.close() - } - - if(JSON.stringify(allMatches) === JSON.stringify([{}])) - return true - if(JSON.stringify(allMatches) === JSON.stringify([])) - return false - - return allMatches + return await this.prologService.runQuery(input) + + //TODO; add parsing of the result + + // const query = await this.#engine.createQuery(input); + // let allMatches = [] + // try { + // let ret = null; + // while (ret = await query.next()) { + // allMatches.push(ret) + // } + // } finally { + // await query.close() + // } + + // if(JSON.stringify(allMatches) === JSON.stringify([{}])) + // return true + // if(JSON.stringify(allMatches) === JSON.stringify([])) + // return false + + // return allMatches } async call(query: string) { - return await this.#engine.call(query) - }; + return await this.prologService.runQuery(query) - async consult(program: string) { - const tmpobj = tmp.fileSync() - //@ts-ignore - fs.writeFileSync(tmpobj.name, program); - const result = await this.call(`consult('${tmpobj.name}').`) - tmpobj.removeCallback() - return result - } + //TODO; add parsing of the result + + // return await this.#engine.call(query) + }; - close() { - this.#engine.close() + async consult(program: string, moduleName?: string) { + return await this.prologService.loadModuleString(program, moduleName || "main") + // const tmpobj = tmp.fileSync() + // //@ts-ignore + // fs.writeFileSync(tmpobj.name, program); + // const result = await this.call(`consult('${tmpobj.name}').`) + // tmpobj.removeCallback() + // return result } } \ No newline at end of file diff --git a/executor/src/prolog_service_extension.d.ts b/executor/src/prolog_service_extension.d.ts new file mode 100644 index 000000000..b28504841 --- /dev/null +++ b/executor/src/prolog_service_extension.d.ts @@ -0,0 +1,11 @@ +declare global { + interface PrologService { + async startPrologService: () => void; + async runQuery: (query: String) => String; + async loadModuleString: (module_name: String, program: String) => void; + } + + const PROLOG: PrologService; +} + +export {}; \ No newline at end of file diff --git a/rust-executor/.gitignore b/rust-executor/.gitignore index c7a58a8ed..e6ea29a4c 100644 --- a/rust-executor/.gitignore +++ b/rust-executor/.gitignore @@ -5,4 +5,5 @@ schema.gql !src/js_core/wallet_extension.js !src/js_core/pubsub_extension.js !src/js_core/jwt_extension.js +!src/prolog_service/prolog_service_extension.js !src/holochain_service/holochain_service_extension.js \ No newline at end of file From f7de44d11602ca8b3e03bcf24479bf6f6f802d48 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 17 Jul 2023 16:28:12 +0100 Subject: [PATCH 454/722] remove swipl-stdio dependency from js executor --- executor/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/executor/package.json b/executor/package.json index 6dc8d8aef..caf829d2c 100644 --- a/executor/package.json +++ b/executor/package.json @@ -74,7 +74,6 @@ "linkedom": "^0.14.26", "lodash": "^4.17.21", "sha256": "^0.2.0", - "swipl-stdio": "https://github.com/perspect3vism/node-swipl-stdio.git", "tmp": "^0.2.1", "uuid": "*" } From 7735e7697151155bbc2c1a517ce5146168e4045c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 17 Jul 2023 16:35:44 +0100 Subject: [PATCH 455/722] cleanup cargo.toml spacing --- rust-executor/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 3ef2107f6..c640c1cee 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -46,7 +46,7 @@ cid = "0.10.1" once_cell = "1.17.1" juniper = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["chrono"] } -juniper_subscriptions = {git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } +juniper_subscriptions = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } juniper_graphql_transport_ws = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } juniper_warp = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["subscriptions"] } warp = "0.3.4" From 93c6aea90e7eb8dc7a1b80191e467069078ff72b Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 17 Jul 2023 18:58:16 +0100 Subject: [PATCH 456/722] use correct function calls on new deno PrologInstance --- executor/src/core/Ad4mCore.ts | 1 - executor/src/core/Perspective.ts | 21 ++++----------------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/executor/src/core/Ad4mCore.ts b/executor/src/core/Ad4mCore.ts index b565342fd..1c943c277 100644 --- a/executor/src/core/Ad4mCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -171,7 +171,6 @@ export default class Ad4mCore { for(let ph of this.perspectivesController.allPerspectiveHandles()) { const perspective = this.perspectivesController.perspective(ph.uuid) perspective.clearPolling() - perspective.closePrologEngine() } console.log("Stopping IPFS") //await this.#IPFS?.stop({timeout: 15}); diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index a18dd0f21..56b5517fb 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -59,10 +59,7 @@ export default class Perspective { this.#prologEngine = null this.#prologNeedsRebuild = true - const that = this - process.on("SIGINT", () => { - that.#prologEngine?.close() clearInterval(this.#pollingInterval); }); @@ -908,20 +905,15 @@ export default class Perspective { } async spawnPrologEngine(): Promise { - if(this.#prologEngine) { - await this.#prologEngine.close() - this.#prologEngine = null - } - let error - const prolog = new PrologInstance(this.#config!) + const prolog = new PrologInstance() + await prolog.start(); try { const facts = await this.initEngineFacts() - await prolog.consult(facts) + await prolog.consult(facts, this.uuid) } catch(e) { error = e - prolog.close() } if(error) throw error @@ -938,7 +930,7 @@ export default class Perspective { console.log("Perspective.prologQuery: Making prolog query but first rebuilding facts"); this.#prologNeedsRebuild = false const facts = await this.initEngineFacts() - await this.#prologEngine!.consult(facts) + await this.#prologEngine!.consult(facts, this.uuid) } }) @@ -948,11 +940,6 @@ export default class Perspective { clearPolling() { clearInterval(this.#pollingInterval); } - - closePrologEngine() { - if(this.#prologEngine) - this.#prologEngine.close() - } } function sleep(ms: number) { From 75ba75dc88d5b9ca4e2c48ae5ac71a9bd35db612 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 17 Jul 2023 19:09:08 +0100 Subject: [PATCH 457/722] add simple test case for using the functions on the prolog instance --- rust-executor/src/prolog.rs | 17 +++----- rust-executor/src/prolog_service/interface.rs | 6 +-- rust-executor/src/prolog_service/mod.rs | 43 +++++++++++++++++++ 3 files changed, 53 insertions(+), 13 deletions(-) diff --git a/rust-executor/src/prolog.rs b/rust-executor/src/prolog.rs index f57a5abb9..2f7217ddd 100644 --- a/rust-executor/src/prolog.rs +++ b/rust-executor/src/prolog.rs @@ -1,23 +1,20 @@ use scryer_prolog::machine::Machine; -use scryer_prolog::machine::streams::*; - pub fn run() { std::thread::spawn(|| { - let mut machine = Machine::with_test_streams(); - - let facts = String::from(r#" + + let facts = String::from( + r#" triple("a", "p1", "b"). triple("a", "p2", "b"). -"#); +"#, + ); machine.load_module_string("facts", facts); println!("{}", machine.get_user_output()); println!("Facts loaded"); - - - + //let query = String::from("triple(A,B,C), write(\"A = \"), write(A), nl, write(\"B = \"), write(B), write(\"C = \"), write(C), nl ; write(\"no triple matched\").\n"); let query = String::from("triple(\"a\",P,\"b\")."); //let query = String::from("write(\"A = \")."); @@ -33,4 +30,4 @@ triple("a", "p2", "b"). let output = machine.run_query(query); println!("Output: {:?}", output); }); -} \ No newline at end of file +} diff --git a/rust-executor/src/prolog_service/interface.rs b/rust-executor/src/prolog_service/interface.rs index 68e2f560b..b0599a7a0 100644 --- a/rust-executor/src/prolog_service/interface.rs +++ b/rust-executor/src/prolog_service/interface.rs @@ -11,7 +11,7 @@ pub struct PrologServiceInterface { } impl PrologServiceInterface { - pub async fn run_query(self, query: String) -> Result { + pub async fn run_query(&self, query: String) -> Result { let (response_sender, response_receiver) = oneshot::channel(); self.sender .send(PrologServiceRequest::RunQuery(query, response_sender)) @@ -27,7 +27,7 @@ impl PrologServiceInterface { } pub async fn load_module_string( - self, + &self, module_name: String, program: String, ) -> Result<(), Error> { @@ -75,5 +75,5 @@ pub async fn set_prolog_service(service: PrologServiceInterface) { pub async fn get_prolog_service() -> PrologServiceInterface { let lock = PROLOG_SERVICE.read().await; - lock.clone().expect("Holochain Conductor not started") + lock.clone().expect("PrologServiceInterface not set") } diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index 81fdc855b..487b29b3e 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -82,3 +82,46 @@ impl PrologService { Ok(service) } } + +#[cfg(test)] +mod prolog_test { + use super::PrologService; + use crate::prolog_service::interface::get_prolog_service; + + #[tokio::test] + async fn test_init_prolog_engine() { + let service = PrologService::init().await; + assert!(service.is_ok()); + + let interface = get_prolog_service().await; + + let facts = String::from( + r#" + triple("a", "p1", "b"). + triple("a", "p2", "b"). + "#, + ); + + let load_facts = interface + .load_module_string("facts".to_string(), facts) + .await; + assert!(load_facts.is_ok()); + println!("Facts loaded"); + + let query = String::from("triple(\"a\",P,\"b\")."); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); + println!("Running query: {}", query); + let output = interface.run_query(query).await; + println!("Output: {:?}", output); + assert!(output.is_ok()); + + let query = String::from("triple(\"a\",\"p1\",\"b\")."); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); + println!("Running query: {}", query); + let output = interface.run_query(query).await; + println!("Output: {:?}", output); + assert!(output.is_ok()); + } +} From 6981737cac9b81903909ac2844c3b28a9aad2f93 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 18 Jul 2023 15:17:34 +0200 Subject: [PATCH 458/722] Update to latest version of our Scryer fork --- Cargo.lock | 2 +- rust-executor/Cargo.toml | 2 +- rust-executor/src/prolog_service/mod.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 23d87e6e2..cbd8d1ff4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9452,7 +9452,7 @@ checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" [[package]] name = "scryer-prolog" version = "0.9.1" -source = "git+https://github.com/coasys/scryer-prolog?branch=library-use-case#c0dd94c8a3c4bf37961575324a7bd21792845088" +source = "git+https://github.com/coasys/scryer-prolog?rev=644559b7f793429c487693489a7e398b91cc29a3#644559b7f793429c487693489a7e398b91cc29a3" dependencies = [ "base64 0.12.3", "blake2 0.8.1", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index c640c1cee..ee492a135 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -56,4 +56,4 @@ jsonwebtoken = "8.3.0" holochain = "0.1.3" #scryer-prolog = { version = "0.9.1", path = "../../Coasys/code/scryer-prolog" } -scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "library-use-case" } +scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "644559b7f793429c487693489a7e398b91cc29a3" } diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index 487b29b3e..ef1081a8c 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -76,7 +76,7 @@ impl PrologService { pub fn new() -> Result { let service = PrologService { - machine: Arc::new(Mutex::new(Machine::with_test_streams())), + machine: Arc::new(Mutex::new(Machine::new_lib())), }; Ok(service) From cbd67a569f167117885dfaa4107b47859c1a0d74 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 11:04:45 +0200 Subject: [PATCH 459/722] PrologEngine class with Machine/thread per instance - without static interface (because we need multiple engines). --- rust-executor/src/prolog_service/engine.rs | 149 +++++++++++++++++++++ rust-executor/src/prolog_service/mod.rs | 1 + 2 files changed, 150 insertions(+) create mode 100644 rust-executor/src/prolog_service/engine.rs diff --git a/rust-executor/src/prolog_service/engine.rs b/rust-executor/src/prolog_service/engine.rs new file mode 100644 index 000000000..12c0e9dec --- /dev/null +++ b/rust-executor/src/prolog_service/engine.rs @@ -0,0 +1,149 @@ +use deno_core::anyhow::Error; +use scryer_prolog::machine::{Machine, parsed_results::QueryResult}; +use std::sync::Arc; +use tokio::sync::{mpsc, oneshot}; + +#[derive(Debug)] +pub enum PrologServiceRequest { + RunQuery(String, oneshot::Sender), + LoadModuleString(String, String, oneshot::Sender), +} + +#[derive(Debug)] +pub enum PrologServiceResponse { + InitComplete(Result<(), Error>), + QueryResult(QueryResult), + LoadModuleResult(Result<(), Error>), +} + +pub struct PrologEngine { + request_sender: mpsc::Sender, + request_receiver: Option>, +} + +impl PrologEngine { + pub fn new() -> PrologEngine { + let (request_sender, request_receiver) = mpsc::channel::(32); + + PrologEngine { + request_sender, + request_receiver: Some(request_receiver) + } + } + + pub async fn spawn(&mut self) -> Result<(), Error> { + let mut receiver = self.request_receiver.take().ok_or_else(|| Error::msg("PrologEngine::spawn called twice"))?; + let (response_sender, response_receiver) = oneshot::channel(); + + std::thread::spawn(move || { + let mut machine = Machine::new_lib(); + + response_sender + .send(PrologServiceResponse::InitComplete(Ok(()))) + .unwrap(); + + loop { + match receiver.try_recv() { + Ok(message) => match message { + PrologServiceRequest::RunQuery(query, response) => { + let result = machine.run_query(query); + let _ = response.send(PrologServiceResponse::QueryResult(result)); + } + PrologServiceRequest::LoadModuleString(module_name, program, response) => { + let _result = machine.load_module_string(module_name.as_str(), program); + let _ = response.send(PrologServiceResponse::LoadModuleResult(Ok(()))); + } + }, + Err(_err) => std::thread::sleep(std::time::Duration::from_millis(5)), + } + } + }); + + match response_receiver.await? { + PrologServiceResponse::InitComplete(result) => result?, + _ => unreachable!(), + }; + + Ok(()) + } + + pub async fn run_query(&self, query: String) -> Result { + let (response_sender, response_receiver) = oneshot::channel(); + self.request_sender + .send(PrologServiceRequest::RunQuery(query, response_sender)) + .await + .expect("Failed to send PrologServiceRequest::RunQuery"); + let response = response_receiver + .await + .expect("Failed to receive PrologServiceResponse"); + match response { + PrologServiceResponse::QueryResult(query_result) => Ok(query_result), + _ => unreachable!(), + } + } + + pub async fn load_module_string( + &self, + module_name: String, + program: String, + ) -> Result<(), Error> { + let (response_sender, response_receiver) = oneshot::channel(); + self.request_sender + .send(PrologServiceRequest::LoadModuleString( + module_name, + program, + response_sender, + )) + .await + .expect("Failed to send PrologServiceRequest::LoadModuleString"); + let response = response_receiver + .await + .expect("Failed to receive PrologServiceResponse"); + match response { + PrologServiceResponse::LoadModuleResult(result) => result, + _ => unreachable!(), + } + } + + +} + +#[cfg(test)] +mod prolog_test { + use super::*; + + #[tokio::test] + async fn test_init_prolog_engine() { + let mut engine = PrologEngine::new(); + assert!(engine.spawn().await.is_ok()); + + let facts = String::from( + r#" + triple("a", "p1", "b"). + triple("a", "p2", "b"). + "#, + ); + + let load_facts = engine + .load_module_string("facts".to_string(), facts) + .await; + assert!(load_facts.is_ok()); + println!("Facts loaded"); + + let query = String::from("triple(\"a\",P,\"b\")."); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); + println!("Running query: {}", query); + let output = engine.run_query(query).await; + println!("Output: {:?}", output); + assert!(output.is_ok()); + + let query = String::from("triple(\"a\",\"p1\",\"b\")."); + //let query = String::from("write(\"A = \")."); + //let query = String::from("halt.\n"); + println!("Running query: {}", query); + let output = engine.run_query(query).await; + println!("Output: {:?}", output); + assert!(output.is_ok()); + } +} diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index ef1081a8c..e4748d717 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -6,6 +6,7 @@ use tokio::sync::{mpsc, Mutex}; pub(crate) mod interface; pub(crate) mod prolog_service_extension; +pub(crate) mod engine; pub(crate) use interface::{ get_prolog_service, PrologServiceInterface, PrologServiceRequest, PrologServiceResponse, From 7d193df9c6641c906085e8e98b15211b9440a57b Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 12:53:15 +0200 Subject: [PATCH 460/722] PrologService holding multiple engines. --- rust-executor/src/prolog_service/mod.rs | 142 ++++++++---------- .../prolog_service_extension.rs | 16 +- 2 files changed, 72 insertions(+), 86 deletions(-) diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index e4748d717..db16768b8 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -1,100 +1,85 @@ use deno_core::anyhow::Error; -use scryer_prolog::machine::Machine; +use scryer_prolog::machine::parsed_results::QueryResult; +use std::collections::HashMap; use std::sync::Arc; -use tokio::sync::oneshot; -use tokio::sync::{mpsc, Mutex}; +use tokio::sync::{RwLock, Mutex}; +use lazy_static::lazy_static; pub(crate) mod interface; pub(crate) mod prolog_service_extension; pub(crate) mod engine; -pub(crate) use interface::{ - get_prolog_service, PrologServiceInterface, PrologServiceRequest, PrologServiceResponse, -}; - -use self::interface::set_prolog_service; +use self::engine::PrologEngine; #[derive(Clone)] pub struct PrologService { - pub machine: Arc>, + engines: Arc>>, } impl PrologService { - pub async fn init() -> Result<(), Error> { - let (sender, mut receiver) = mpsc::channel::(32); - let inteface = PrologServiceInterface { sender }; - set_prolog_service(inteface).await; - - let (response_sender, response_receiver) = oneshot::channel(); - - std::thread::spawn(move || { - let service = PrologService::new().unwrap(); - - response_sender - .send(PrologServiceResponse::InitComplete(Ok(()))) - .unwrap(); - - loop { - match receiver.try_recv() { - Ok(message) => match message { - PrologServiceRequest::RunQuery(query, response) => { - let mut machine = loop { - match service.machine.try_lock() { - Ok(machine) => break machine, - Err(_err) => { - std::thread::sleep(std::time::Duration::from_millis(5)) - } - } - }; - let result = machine.run_query(query); - let _ = response.send(PrologServiceResponse::QueryResult(result)); - } - PrologServiceRequest::LoadModuleString(module_name, program, response) => { - let mut machine = loop { - match service.machine.try_lock() { - Ok(machine) => break machine, - Err(_err) => { - std::thread::sleep(std::time::Duration::from_millis(5)) - } - } - }; - let _result = machine.load_module_string(module_name.as_str(), program); - let _ = response.send(PrologServiceResponse::LoadModuleResult(Ok(()))); - } - }, - Err(_err) => std::thread::sleep(std::time::Duration::from_millis(5)), - } - } - }); - - match response_receiver.await? { - PrologServiceResponse::InitComplete(result) => result?, - _ => unreachable!(), - }; + pub fn new() -> Self { + PrologService { engines: Arc::new(RwLock::new(HashMap::new())) } + } + + pub async fn spawn_engine(&mut self, engine_name: String) -> Result<(), Error> { + if self.engines.read().await.contains_key(&engine_name) { + return Err(Error::msg("Engine already exists")); + } + let mut engine = PrologEngine::new(); + engine.spawn().await?; + + self.engines.write().await.insert(engine_name, engine); Ok(()) } - pub fn new() -> Result { - let service = PrologService { - machine: Arc::new(Mutex::new(Machine::new_lib())), - }; + pub async fn run_query(&self, engine_name: String, query: String) -> Result { + let engines = self.engines.read().await; + let engine = engines.get(&engine_name).ok_or_else(|| Error::msg("Engine not found"))?; + let result = engine.run_query(query).await?; + Ok(result) + } - Ok(service) + pub async fn load_module_string( + &self, + engine_name: String, + module_name: String, + program: String, + ) -> Result<(), Error> { + let engines = self.engines.read().await; + let engine = engines.get(&engine_name).ok_or_else(|| Error::msg("Engine not found"))?; + engine.load_module_string(module_name, program).await } } +lazy_static! { + static ref PROLOG_SERVICE: Arc>> = + Arc::new(RwLock::new(None)); +} + +pub async fn init_prolog_service() { + let mut lock = PROLOG_SERVICE.write().await; + *lock = Some(PrologService::new()); +} + +pub async fn get_prolog_service() -> PrologService { + let lock = PROLOG_SERVICE.read().await; + lock.clone().expect("PrologServiceInterface not set") +} + + #[cfg(test)] mod prolog_test { - use super::PrologService; - use crate::prolog_service::interface::get_prolog_service; + use super::*; #[tokio::test] async fn test_init_prolog_engine() { - let service = PrologService::init().await; - assert!(service.is_ok()); + init_prolog_service().await; + let mut service = get_prolog_service().await; - let interface = get_prolog_service().await; + let ENGINE_NAME = "test".to_string(); + + assert!(service.spawn_engine(ENGINE_NAME.clone()).await.is_ok()); let facts = String::from( r#" @@ -103,25 +88,26 @@ mod prolog_test { "#, ); - let load_facts = interface - .load_module_string("facts".to_string(), facts) + + let load_facts = service + .load_module_string( + ENGINE_NAME.clone(), + "facts".to_string(), + facts + ) .await; assert!(load_facts.is_ok()); println!("Facts loaded"); let query = String::from("triple(\"a\",P,\"b\")."); - //let query = String::from("write(\"A = \")."); - //let query = String::from("halt.\n"); - println!("Running query: {}", query); - let output = interface.run_query(query).await; - println!("Output: {:?}", output); + let output = service.run_query(ENGINE_NAME.clone(), query).await; assert!(output.is_ok()); let query = String::from("triple(\"a\",\"p1\",\"b\")."); //let query = String::from("write(\"A = \")."); //let query = String::from("halt.\n"); println!("Running query: {}", query); - let output = interface.run_query(query).await; + let output = service.run_query(ENGINE_NAME.clone(), query).await; println!("Output: {:?}", output); assert!(output.is_ok()); } diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index 8622e4e0c..8d365d577 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -1,25 +1,25 @@ use deno_core::{error::AnyError, include_js_files, op, Extension}; -use super::{get_prolog_service, PrologService}; +use super::{get_prolog_service, PrologService, init_prolog_service}; #[op] async fn start_prolog_service() -> Result<(), AnyError> { - PrologService::init().await?; + init_prolog_service().await; Ok(()) } #[op] -async fn run_query(query: String) -> Result { - let interface = get_prolog_service().await; - let result = interface.run_query(query).await; +async fn run_query(engine_name: String, query: String) -> Result { + let service = get_prolog_service().await; + let result = service.run_query(engine_name, query).await; let string_result = format!("{:?}", result); Ok(string_result) } #[op] -async fn load_module_string(module_name: String, program: String) -> Result<(), AnyError> { - let interface = get_prolog_service().await; - interface.load_module_string(module_name, program).await +async fn load_module_string(engine_name: String, module_name: String, program: String) -> Result<(), AnyError> { + let service = get_prolog_service().await; + service.load_module_string(engine_name, module_name, program).await } pub fn build() -> Extension { From 086cd8a3b25db31a8812b277abd44b78a2c1079b Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 12:55:05 +0200 Subject: [PATCH 461/722] clean up --- rust-executor/src/prolog_service/engine.rs | 1 - rust-executor/src/prolog_service/interface.rs | 79 ------------------- rust-executor/src/prolog_service/mod.rs | 13 ++- .../prolog_service_extension.rs | 2 +- 4 files changed, 7 insertions(+), 88 deletions(-) delete mode 100644 rust-executor/src/prolog_service/interface.rs diff --git a/rust-executor/src/prolog_service/engine.rs b/rust-executor/src/prolog_service/engine.rs index 12c0e9dec..f79388eee 100644 --- a/rust-executor/src/prolog_service/engine.rs +++ b/rust-executor/src/prolog_service/engine.rs @@ -1,6 +1,5 @@ use deno_core::anyhow::Error; use scryer_prolog::machine::{Machine, parsed_results::QueryResult}; -use std::sync::Arc; use tokio::sync::{mpsc, oneshot}; #[derive(Debug)] diff --git a/rust-executor/src/prolog_service/interface.rs b/rust-executor/src/prolog_service/interface.rs deleted file mode 100644 index b0599a7a0..000000000 --- a/rust-executor/src/prolog_service/interface.rs +++ /dev/null @@ -1,79 +0,0 @@ -use deno_core::anyhow::Error; -use lazy_static::lazy_static; -use scryer_prolog::machine::parsed_results::QueryResult; -use std::sync::Arc; -use tokio::sync::mpsc::Sender; -use tokio::sync::{oneshot, RwLock}; - -#[derive(Clone)] -pub struct PrologServiceInterface { - pub sender: Sender, -} - -impl PrologServiceInterface { - pub async fn run_query(&self, query: String) -> Result { - let (response_sender, response_receiver) = oneshot::channel(); - self.sender - .send(PrologServiceRequest::RunQuery(query, response_sender)) - .await - .expect("Failed to send PrologServiceRequest::RunQuery"); - let response = response_receiver - .await - .expect("Failed to receive PrologServiceResponse"); - match response { - PrologServiceResponse::QueryResult(query_result) => Ok(query_result), - _ => unreachable!(), - } - } - - pub async fn load_module_string( - &self, - module_name: String, - program: String, - ) -> Result<(), Error> { - let (response_sender, response_receiver) = oneshot::channel(); - self.sender - .send(PrologServiceRequest::LoadModuleString( - module_name, - program, - response_sender, - )) - .await - .expect("Failed to send PrologServiceRequest::LoadModuleString"); - let response = response_receiver - .await - .expect("Failed to receive PrologServiceResponse"); - match response { - PrologServiceResponse::LoadModuleResult(result) => result, - _ => unreachable!(), - } - } -} - -#[derive(Debug)] -pub enum PrologServiceRequest { - RunQuery(String, oneshot::Sender), - LoadModuleString(String, String, oneshot::Sender), -} - -#[derive(Debug)] -pub enum PrologServiceResponse { - InitComplete(Result<(), Error>), - QueryResult(QueryResult), - LoadModuleResult(Result<(), Error>), -} - -lazy_static! { - static ref PROLOG_SERVICE: Arc>> = - Arc::new(RwLock::new(None)); -} - -pub async fn set_prolog_service(service: PrologServiceInterface) { - let mut lock = PROLOG_SERVICE.write().await; - *lock = Some(service); -} - -pub async fn get_prolog_service() -> PrologServiceInterface { - let lock = PROLOG_SERVICE.read().await; - lock.clone().expect("PrologServiceInterface not set") -} diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index db16768b8..9c6e67dc8 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -2,10 +2,9 @@ use deno_core::anyhow::Error; use scryer_prolog::machine::parsed_results::QueryResult; use std::collections::HashMap; use std::sync::Arc; -use tokio::sync::{RwLock, Mutex}; +use tokio::sync::RwLock; use lazy_static::lazy_static; -pub(crate) mod interface; pub(crate) mod prolog_service_extension; pub(crate) mod engine; @@ -77,9 +76,9 @@ mod prolog_test { init_prolog_service().await; let mut service = get_prolog_service().await; - let ENGINE_NAME = "test".to_string(); + let engine_name = "test".to_string(); - assert!(service.spawn_engine(ENGINE_NAME.clone()).await.is_ok()); + assert!(service.spawn_engine(engine_name.clone()).await.is_ok()); let facts = String::from( r#" @@ -91,7 +90,7 @@ mod prolog_test { let load_facts = service .load_module_string( - ENGINE_NAME.clone(), + engine_name.clone(), "facts".to_string(), facts ) @@ -100,14 +99,14 @@ mod prolog_test { println!("Facts loaded"); let query = String::from("triple(\"a\",P,\"b\")."); - let output = service.run_query(ENGINE_NAME.clone(), query).await; + let output = service.run_query(engine_name.clone(), query).await; assert!(output.is_ok()); let query = String::from("triple(\"a\",\"p1\",\"b\")."); //let query = String::from("write(\"A = \")."); //let query = String::from("halt.\n"); println!("Running query: {}", query); - let output = service.run_query(ENGINE_NAME.clone(), query).await; + let output = service.run_query(engine_name.clone(), query).await; println!("Output: {:?}", output); assert!(output.is_ok()); } diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index 8d365d577..81283e3ed 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -1,6 +1,6 @@ use deno_core::{error::AnyError, include_js_files, op, Extension}; -use super::{get_prolog_service, PrologService, init_prolog_service}; +use super::{get_prolog_service, init_prolog_service}; #[op] async fn start_prolog_service() -> Result<(), AnyError> { From ecba15c65c08d3fd9535bc4225773b4480821617 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 12:56:11 +0200 Subject: [PATCH 462/722] fmt --- rust-executor/src/prolog_service/engine.rs | 19 +++++------ rust-executor/src/prolog_service/mod.rs | 33 ++++++++++--------- .../prolog_service_extension.rs | 10 ++++-- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/rust-executor/src/prolog_service/engine.rs b/rust-executor/src/prolog_service/engine.rs index f79388eee..c685a7db2 100644 --- a/rust-executor/src/prolog_service/engine.rs +++ b/rust-executor/src/prolog_service/engine.rs @@ -1,5 +1,5 @@ use deno_core::anyhow::Error; -use scryer_prolog::machine::{Machine, parsed_results::QueryResult}; +use scryer_prolog::machine::{parsed_results::QueryResult, Machine}; use tokio::sync::{mpsc, oneshot}; #[derive(Debug)] @@ -23,15 +23,18 @@ pub struct PrologEngine { impl PrologEngine { pub fn new() -> PrologEngine { let (request_sender, request_receiver) = mpsc::channel::(32); - + PrologEngine { - request_sender, - request_receiver: Some(request_receiver) + request_sender, + request_receiver: Some(request_receiver), } } pub async fn spawn(&mut self) -> Result<(), Error> { - let mut receiver = self.request_receiver.take().ok_or_else(|| Error::msg("PrologEngine::spawn called twice"))?; + let mut receiver = self + .request_receiver + .take() + .ok_or_else(|| Error::msg("PrologEngine::spawn called twice"))?; let (response_sender, response_receiver) = oneshot::channel(); std::thread::spawn(move || { @@ -103,8 +106,6 @@ impl PrologEngine { _ => unreachable!(), } } - - } #[cfg(test)] @@ -123,9 +124,7 @@ mod prolog_test { "#, ); - let load_facts = engine - .load_module_string("facts".to_string(), facts) - .await; + let load_facts = engine.load_module_string("facts".to_string(), facts).await; assert!(load_facts.is_ok()); println!("Facts loaded"); diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index 9c6e67dc8..e9f5ac249 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -1,12 +1,12 @@ use deno_core::anyhow::Error; +use lazy_static::lazy_static; use scryer_prolog::machine::parsed_results::QueryResult; use std::collections::HashMap; use std::sync::Arc; use tokio::sync::RwLock; -use lazy_static::lazy_static; -pub(crate) mod prolog_service_extension; pub(crate) mod engine; +pub(crate) mod prolog_service_extension; use self::engine::PrologEngine; @@ -17,7 +17,9 @@ pub struct PrologService { impl PrologService { pub fn new() -> Self { - PrologService { engines: Arc::new(RwLock::new(HashMap::new())) } + PrologService { + engines: Arc::new(RwLock::new(HashMap::new())), + } } pub async fn spawn_engine(&mut self, engine_name: String) -> Result<(), Error> { @@ -32,9 +34,15 @@ impl PrologService { Ok(()) } - pub async fn run_query(&self, engine_name: String, query: String) -> Result { + pub async fn run_query( + &self, + engine_name: String, + query: String, + ) -> Result { let engines = self.engines.read().await; - let engine = engines.get(&engine_name).ok_or_else(|| Error::msg("Engine not found"))?; + let engine = engines + .get(&engine_name) + .ok_or_else(|| Error::msg("Engine not found"))?; let result = engine.run_query(query).await?; Ok(result) } @@ -46,14 +54,15 @@ impl PrologService { program: String, ) -> Result<(), Error> { let engines = self.engines.read().await; - let engine = engines.get(&engine_name).ok_or_else(|| Error::msg("Engine not found"))?; + let engine = engines + .get(&engine_name) + .ok_or_else(|| Error::msg("Engine not found"))?; engine.load_module_string(module_name, program).await } } lazy_static! { - static ref PROLOG_SERVICE: Arc>> = - Arc::new(RwLock::new(None)); + static ref PROLOG_SERVICE: Arc>> = Arc::new(RwLock::new(None)); } pub async fn init_prolog_service() { @@ -66,7 +75,6 @@ pub async fn get_prolog_service() -> PrologService { lock.clone().expect("PrologServiceInterface not set") } - #[cfg(test)] mod prolog_test { use super::*; @@ -87,13 +95,8 @@ mod prolog_test { "#, ); - let load_facts = service - .load_module_string( - engine_name.clone(), - "facts".to_string(), - facts - ) + .load_module_string(engine_name.clone(), "facts".to_string(), facts) .await; assert!(load_facts.is_ok()); println!("Facts loaded"); diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index 81283e3ed..032992a83 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -17,9 +17,15 @@ async fn run_query(engine_name: String, query: String) -> Result Result<(), AnyError> { +async fn load_module_string( + engine_name: String, + module_name: String, + program: String, +) -> Result<(), AnyError> { let service = get_prolog_service().await; - service.load_module_string(engine_name, module_name, program).await + service + .load_module_string(engine_name, module_name, program) + .await } pub fn build() -> Extension { From 010708ce261a6c19531fab4b4af3fcd530df4f4a Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 14:54:45 +0200 Subject: [PATCH 463/722] JS PrologInstance spawning Rust engine --- executor/src/core/PrologInstance.ts | 12 ++++++++---- executor/src/prolog_service_extension.d.ts | 6 +++--- rust-executor/src/lib.rs | 5 +++++ .../prolog_service/prolog_service_extension.js | 15 +++++++++------ .../prolog_service/prolog_service_extension.rs | 10 ++++++++-- 5 files changed, 33 insertions(+), 15 deletions(-) diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index 1b8fbf926..8dfdfcbb3 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -1,15 +1,19 @@ +import { randomUUID } from "crypto"; + export default class PrologInstance { prologService = PROLOG; + name: string; constructor() { + this.name = randomUUID() } async start() { - return await this.prologService.startPrologService() + return await this.prologService.spawnEngine(this.name) } async query(input: string) { - return await this.prologService.runQuery(input) + return await this.prologService.runQuery(this.name, input) //TODO; add parsing of the result @@ -33,7 +37,7 @@ export default class PrologInstance { } async call(query: string) { - return await this.prologService.runQuery(query) + return await this.prologService.runQuery(this.name, query) //TODO; add parsing of the result @@ -41,7 +45,7 @@ export default class PrologInstance { }; async consult(program: string, moduleName?: string) { - return await this.prologService.loadModuleString(program, moduleName || "main") + return await this.prologService.loadModuleString(this.name, program, moduleName || "main") // const tmpobj = tmp.fileSync() // //@ts-ignore // fs.writeFileSync(tmpobj.name, program); diff --git a/executor/src/prolog_service_extension.d.ts b/executor/src/prolog_service_extension.d.ts index b28504841..bd45bcdce 100644 --- a/executor/src/prolog_service_extension.d.ts +++ b/executor/src/prolog_service_extension.d.ts @@ -1,8 +1,8 @@ declare global { interface PrologService { - async startPrologService: () => void; - async runQuery: (query: String) => String; - async loadModuleString: (module_name: String, program: String) => void; + async spawnEngine: (name: String) => void; + async runQuery: (name: Strin, query: String) => String; + async loadModuleString: (name: String, module_name: String, program: String) => void; } const PROLOG: PrologService; diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 3ce0c020b..326cf6474 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -18,12 +18,17 @@ use js_core::JsCore; pub use config::Ad4mConfig; +use crate::prolog_service::init_prolog_service; + /// Runs the GraphQL server and the deno core runtime pub async fn run(mut config: Ad4mConfig) { env::set_var("RUST_LOG", "rust_executor=trace,warp::server"); let _ = env_logger::try_init(); config.prepare(); + info!("Initializing Prolog service..."); + init_prolog_service().await; + info!("Starting js_core..."); let mut js_core_handle = JsCore::start(config.clone()).await; js_core_handle.initialized().await; diff --git a/rust-executor/src/prolog_service/prolog_service_extension.js b/rust-executor/src/prolog_service/prolog_service_extension.js index cfde28910..32de63f22 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.js +++ b/rust-executor/src/prolog_service/prolog_service_extension.js @@ -2,14 +2,17 @@ const core = Deno.core; globalThis.PROLOG_SERVICE = { - startPrologService: async () => { - return core.opAsync("start_prolog_service"); + initPrologService: async () => { + return core.opAsync("init_prolog_service"); }, - runQuery: async (query) => { - return core.opAsync("run_query"), query; + spawnEngine: async () => { + return core.opAsync("spawn_engine"); }, - loadModuleString: async (module_name, program) => { - return core.opAsync("load_module_string", module_name, program); + runQuery: async (engineName, query) => { + return core.opAsync("run_query"), engineName, query; + }, + loadModuleString: async (engineName, module_name, program) => { + return core.opAsync("load_module_string", engineName, module_name, program); } }; })(globalThis); diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index 032992a83..1e116929a 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -3,11 +3,17 @@ use deno_core::{error::AnyError, include_js_files, op, Extension}; use super::{get_prolog_service, init_prolog_service}; #[op] -async fn start_prolog_service() -> Result<(), AnyError> { +async fn init() -> Result<(), AnyError> { init_prolog_service().await; Ok(()) } +#[op] +async fn spawn_engine(engine_name: String) -> Result<(), AnyError> { + let mut service = get_prolog_service().await; + service.spawn_engine(engine_name).await +} + #[op] async fn run_query(engine_name: String, query: String) -> Result { let service = get_prolog_service().await; @@ -32,7 +38,7 @@ pub fn build() -> Extension { Extension::builder("prolog_service") .js(include_js_files!(holochain_service "prolog_service_extension.js",)) .ops(vec![ - start_prolog_service::decl(), + spawn_engine::decl(), run_query::decl(), load_module_string::decl(), ]) From 736565b9d7841368a52f7a5b58037b30fdec91b5 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 14:57:47 +0200 Subject: [PATCH 464/722] Remove initPrologService from JS extension - is called from Rust --- rust-executor/src/prolog_service/prolog_service_extension.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/rust-executor/src/prolog_service/prolog_service_extension.js b/rust-executor/src/prolog_service/prolog_service_extension.js index 32de63f22..d5272622b 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.js +++ b/rust-executor/src/prolog_service/prolog_service_extension.js @@ -2,9 +2,6 @@ const core = Deno.core; globalThis.PROLOG_SERVICE = { - initPrologService: async () => { - return core.opAsync("init_prolog_service"); - }, spawnEngine: async () => { return core.opAsync("spawn_engine"); }, From 70b7557f7fa9302800b7977cfb5b7739079532eb Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 22:51:47 +0200 Subject: [PATCH 465/722] Fix usage of Prolog engines on JS side --- executor/src/core/Perspective.ts | 2 +- executor/src/core/PrologInstance.ts | 15 +++++++++++---- .../prolog_service/prolog_service_extension.js | 7 ++++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 56b5517fb..222a7a7f8 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -930,7 +930,7 @@ export default class Perspective { console.log("Perspective.prologQuery: Making prolog query but first rebuilding facts"); this.#prologNeedsRebuild = false const facts = await this.initEngineFacts() - await this.#prologEngine!.consult(facts, this.uuid) + await this.#prologEngine!.consult(facts) } }) diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index 8dfdfcbb3..fb4d02621 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -1,19 +1,24 @@ import { randomUUID } from "crypto"; export default class PrologInstance { - prologService = PROLOG; + //@ts-ignore + prologService = PROLOG_SERVICE; name: string; constructor() { - this.name = randomUUID() + this.name = randomUUID().toString() } async start() { + //console.log("Starting prolog instance", this.name) return await this.prologService.spawnEngine(this.name) } async query(input: string) { - return await this.prologService.runQuery(this.name, input) + //console.log("Querying prolog instance", this.name, input) + let result = await this.prologService.runQuery(this.name, input) + //console.log("Got Prolog result", result) + return result //TODO; add parsing of the result @@ -37,6 +42,7 @@ export default class PrologInstance { } async call(query: string) { + //console.log("Calling prolog instance", this.name, query) return await this.prologService.runQuery(this.name, query) //TODO; add parsing of the result @@ -45,7 +51,8 @@ export default class PrologInstance { }; async consult(program: string, moduleName?: string) { - return await this.prologService.loadModuleString(this.name, program, moduleName || "main") + //console.log("PrologInstance.consult", this.name, program, moduleName) + return await this.prologService.loadModuleString(this.name, program, "main") // const tmpobj = tmp.fileSync() // //@ts-ignore // fs.writeFileSync(tmpobj.name, program); diff --git a/rust-executor/src/prolog_service/prolog_service_extension.js b/rust-executor/src/prolog_service/prolog_service_extension.js index d5272622b..c600fc04b 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.js +++ b/rust-executor/src/prolog_service/prolog_service_extension.js @@ -2,11 +2,12 @@ const core = Deno.core; globalThis.PROLOG_SERVICE = { - spawnEngine: async () => { - return core.opAsync("spawn_engine"); + spawnEngine: async (engineName) => { + return core.opAsync("spawn_engine", engineName); }, runQuery: async (engineName, query) => { - return core.opAsync("run_query"), engineName, query; + if(!query.endsWith(".")) query = query+"."; + return JSON.parse(await core.opAsync("run_query", engineName, query)); }, loadModuleString: async (engineName, module_name, program) => { return core.opAsync("load_module_string", engineName, module_name, program); From 9c2baa9fbe0906f67806cd80e0291c1a63a4c056 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 22:52:25 +0200 Subject: [PATCH 466/722] Fix calling JS query resolver in Rust GQL resolver --- rust-executor/src/graphql/query_resolvers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/graphql/query_resolvers.rs b/rust-executor/src/graphql/query_resolvers.rs index 2ab2879da..955ad981d 100644 --- a/rust-executor/src/graphql/query_resolvers.rs +++ b/rust-executor/src/graphql/query_resolvers.rs @@ -372,7 +372,7 @@ impl Query { get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let script = format!( - r#"await core.callResolver("Query", "perspectiveQueryProlog", {{ query: '{}', uuid: "{}" }}, {{ capabilities: {} }})"#, + r#"JSON.stringify(await core.callResolver("Query", "perspectiveQueryProlog", {{ query: '{}', uuid: "{}" }}, {{ capabilities: {} }}))"#, query, uuid, capabilities ); let result = js.execute(script).await?; From efb66683ff08a978199d9000eb9e5e5164b68608 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 22:54:03 +0200 Subject: [PATCH 467/722] Parsing of Rust Prolog QueryResult to JSON --- .../prolog_service_extension.rs | 71 +++++++++++++++++-- 1 file changed, 67 insertions(+), 4 deletions(-) diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index 1e116929a..0d774fae2 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -1,4 +1,5 @@ -use deno_core::{error::AnyError, include_js_files, op, Extension}; +use deno_core::{error::AnyError, include_js_files, op, Extension, anyhow::bail}; +use scryer_prolog::machine::parsed_results::{Value, QueryMatch, QueryResolution}; use super::{get_prolog_service, init_prolog_service}; @@ -14,12 +15,74 @@ async fn spawn_engine(engine_name: String) -> Result<(), AnyError> { service.spawn_engine(engine_name).await } + +pub fn prolog_value_to_json_tring(value: Value) -> String { + match value { + Value::Integer(i) => format!("{}", i), + Value::Float(f) => format!("{}", f), + Value::Rational(r) => format!("{}", r), + Value::Atom(a) => format!("{}", a.as_str()), + Value::String(s) => format!("\"{}\"", s), + Value::List(l) => { + let mut string_result = "[".to_string(); + for (i, v) in l.iter().enumerate() { + if i > 0 { + string_result.push_str(", "); + } + string_result.push_str(&prolog_value_to_json_tring(v.clone())); + } + string_result.push_str("]"); + string_result + } + Value::Structure(s, l) => { + let mut string_result = format!("\"{}\": [", s.as_str()); + for (i, v) in l.iter().enumerate() { + if i > 0 { + string_result.push_str(", "); + } + string_result.push_str(&prolog_value_to_json_tring(v.clone())); + } + string_result.push_str("]"); + string_result + } + _ => "null".to_string(), + } +} + +fn prolog_match_to_json_string(query_match: &QueryMatch) -> String { + let mut string_result = "{".to_string(); + for (i, (k, v)) in query_match.bindings.iter().enumerate() { + if i > 0 { + string_result.push_str(", "); + } + string_result.push_str(&format!("\"{}\": {}", k, prolog_value_to_json_tring(v.clone()))); + } + string_result.push_str("}"); + string_result +} + #[op] async fn run_query(engine_name: String, query: String) -> Result { let service = get_prolog_service().await; - let result = service.run_query(engine_name, query).await; - let string_result = format!("{:?}", result); - Ok(string_result) + let result = service + .run_query(engine_name, query) + .await?; + + if let Err(prolog_error) = result { + bail!(prolog_error); + } + + match result.unwrap() { + QueryResolution::True => Ok("true".to_string()), + QueryResolution::False => Ok("false".to_string()), + QueryResolution::Matches(matches) => { + let matches_json: Vec = matches + .iter() + .map(|m| prolog_match_to_json_string(m)) + .collect(); + Ok(format!("[{}]", matches_json.join(", "))) + } + } } #[op] From 8a3243670a76f895a2efad2ec6713d1e24eac830 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 23:12:37 +0200 Subject: [PATCH 468/722] Assert resolution values in engine test --- rust-executor/Cargo.toml | 3 ++ rust-executor/src/lib.rs | 3 ++ rust-executor/src/prolog_service/mod.rs | 51 ++++++++++++++++++++----- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index ee492a135..68009a6ef 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -57,3 +57,6 @@ holochain = "0.1.3" #scryer-prolog = { version = "0.9.1", path = "../../Coasys/code/scryer-prolog" } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "644559b7f793429c487693489a7e398b91cc29a3" } + +[dev-dependencies] +maplit = "1.0.2" \ No newline at end of file diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 326cf6474..1797d757d 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -1,3 +1,6 @@ +#[cfg(test)] +#[macro_use] extern crate maplit; + mod config; mod globals; pub mod graphql; diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index e9f5ac249..be25f41c1 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -77,6 +77,8 @@ pub async fn get_prolog_service() -> PrologService { #[cfg(test)] mod prolog_test { + use scryer_prolog::machine::parsed_results::{QueryResolution, QueryMatch, Value}; + use super::*; #[tokio::test] @@ -99,18 +101,49 @@ mod prolog_test { .load_module_string(engine_name.clone(), "facts".to_string(), facts) .await; assert!(load_facts.is_ok()); - println!("Facts loaded"); let query = String::from("triple(\"a\",P,\"b\")."); - let output = service.run_query(engine_name.clone(), query).await; - assert!(output.is_ok()); + let result = service + .run_query(engine_name.clone(), query) + .await + .expect("Error running query"); + + assert_eq!( + result, + Ok(QueryResolution::Matches(vec![ + QueryMatch::from(btreemap! { + "P" => Value::from("p1"), + }), + QueryMatch::from(btreemap! { + "P" => Value::from("p2"), + }), + ])) + ); let query = String::from("triple(\"a\",\"p1\",\"b\")."); - //let query = String::from("write(\"A = \")."); - //let query = String::from("halt.\n"); - println!("Running query: {}", query); - let output = service.run_query(engine_name.clone(), query).await; - println!("Output: {:?}", output); - assert!(output.is_ok()); + + let result = service + .run_query(engine_name.clone(), query) + .await + .expect("Error running query"); + + assert_eq!( + result, + Ok(QueryResolution::True) + ); + + + let query = String::from("non_existant_predicate(\"a\",\"p1\",\"b\")."); + + let result = service + .run_query(engine_name.clone(), query) + .await + .expect("Error running query"); + + assert_eq!( + result, + Err(String::from("error(existence_error(procedure,non_existant_predicate/3),non_existant_predicate/3).")) + ); + } } From e41c29bd2ba572409fb622240ae06f68a3bdfd32 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 23:13:13 +0200 Subject: [PATCH 469/722] Use Perspective UUID as Prolog instance name --- executor/src/core/Perspective.ts | 4 ++-- executor/src/core/PrologInstance.ts | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 222a7a7f8..e725bbaee 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -906,12 +906,12 @@ export default class Perspective { async spawnPrologEngine(): Promise { let error - const prolog = new PrologInstance() + const prolog = new PrologInstance(this) await prolog.start(); try { const facts = await this.initEngineFacts() - await prolog.consult(facts, this.uuid) + await prolog.consult(facts) } catch(e) { error = e } diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index fb4d02621..146abe86c 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -1,3 +1,4 @@ +import Perspective from "./Perspective"; import { randomUUID } from "crypto"; export default class PrologInstance { @@ -5,8 +6,8 @@ export default class PrologInstance { prologService = PROLOG_SERVICE; name: string; - constructor() { - this.name = randomUUID().toString() + constructor(perspective: Perspective) { + this.name = perspective.uuid || randomUUID() } async start() { @@ -50,9 +51,9 @@ export default class PrologInstance { // return await this.#engine.call(query) }; - async consult(program: string, moduleName?: string) { + async consult(program: string) { //console.log("PrologInstance.consult", this.name, program, moduleName) - return await this.prologService.loadModuleString(this.name, program, "main") + return await this.prologService.loadModuleString(this.name, program, "main.pl") // const tmpobj = tmp.fileSync() // //@ts-ignore // fs.writeFileSync(tmpobj.name, program); From 89adbc7bc7693a8eda3831f98ead6ade9e08c2fe Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 23:48:34 +0200 Subject: [PATCH 470/722] Fix parameter ordering for prologService.loadModuleString() --- executor/src/core/PrologInstance.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index 146abe86c..1348679eb 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -53,7 +53,7 @@ export default class PrologInstance { async consult(program: string) { //console.log("PrologInstance.consult", this.name, program, moduleName) - return await this.prologService.loadModuleString(this.name, program, "main.pl") + return await this.prologService.loadModuleString(this.name, "main.pl", program) // const tmpobj = tmp.fileSync() // //@ts-ignore // fs.writeFileSync(tmpobj.name, program); From b0997fef4c432fda8fa6f92140844f63da953e84 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 20 Jul 2023 23:49:17 +0200 Subject: [PATCH 471/722] Remove "dynamic" lines and fix ":- discontiguous" syntax --- executor/src/core/Perspective.ts | 81 ++++++++++---------------------- 1 file changed, 26 insertions(+), 55 deletions(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index e725bbaee..25887fc11 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -731,12 +731,9 @@ export default class Perspective { if(link.data.target) nodes.add(link.data.target) } - langAddrs.push(":- dynamic languageAddress/2.") - langAddrs.push(":- discontiguous languageAddress/2.") - langNames.push(":- dynamic languageName/2.") - langNames.push(":- discontiguous languageName/2.") - exprAddrs.push(":- dynamic expressionAddress/2.") - exprAddrs.push(":- discontiguous expressionAddress/2.") + langAddrs.push(":- discontiguous(languageAddress/2).") + langNames.push(":- discontiguous(languageName/2).") + exprAddrs.push(":- discontiguous(expressionAddress/2).") for(let node of nodes) { //node.replace('\n', '\n\c') @@ -812,10 +809,8 @@ export default class Perspective { // triple/3 // link/5 //------------------- - lines.push(":- dynamic triple/3.") - lines.push(":- discontiguous triple/3.") - lines.push(":- dynamic link/5.") - lines.push(":- discontiguous link/5.") + lines.push(":- discontiguous(triple/3).") + lines.push(":- discontiguous(link/5).") for (const link of allLinks) { lines.push(this.tripleFact(link)); @@ -827,16 +822,14 @@ export default class Perspective { //------------------- // reachable/2 //------------------- - lines.push(":- dynamic reachable/2.") - lines.push(":- discontiguous reachable/2.") + lines.push(":- discontiguous(reachable/2).") lines.push("reachable(A,B) :- triple(A,_,B).") lines.push("reachable(A,B) :- triple(A,_,X), reachable(X,B).") //------------------- // hiddenExpression/1 //------------------- - lines.push(":- dynamic hiddenExpression/1.") - lines.push(":- discontiguous hiddenExpression/1.") + lines.push(":- discontiguous(hiddenExpression/1).") @@ -846,47 +839,25 @@ export default class Perspective { // Social DNA zomes //------------------- - lines.push(":- dynamic register_sdna_flow/2.") - lines.push(":- dynamic flowable/2.") - lines.push(":- dynamic flow_state/3.") - lines.push(":- dynamic start_action/2.") - lines.push(":- dynamic action/4.") - - lines.push(":- discontiguous register_sdna_flow/2.") - lines.push(":- discontiguous flowable/2.") - lines.push(":- discontiguous flow_state/3.") - lines.push(":- discontiguous start_action/2.") - lines.push(":- discontiguous action/4.") - - lines.push(":- dynamic subject_class/2.") - lines.push(":- dynamic constructor/2.") - lines.push(":- dynamic instance/2.") - lines.push(":- dynamic property/2.") - lines.push(":- dynamic property_getter/4.") - lines.push(":- dynamic property_setter/3.") - lines.push(":- dynamic property_resolve/2.") - lines.push(":- dynamic property_resolve_language/3.") - lines.push(":- dynamic property_named_option/4.") - lines.push(":- dynamic collection_getter/4.") - lines.push(":- dynamic collection_setter/3.") - lines.push(":- dynamic p3_class_icon/2.") - lines.push(":- dynamic p3_class_color/2.") - lines.push(":- dynamic p3_instance_color/3.") - - lines.push(":- discontiguous subject_class/2.") - lines.push(":- discontiguous constructor/2.") - lines.push(":- discontiguous instance/2.") - lines.push(":- discontiguous property/2.") - lines.push(":- discontiguous property_getter/4.") - lines.push(":- discontiguous property_setter/3.") - lines.push(":- discontiguous property_resolve/2.") - lines.push(":- discontiguous property_resolve_language/3.") - lines.push(":- discontiguous property_named_option/4.") - lines.push(":- discontiguous collection_getter/4.") - lines.push(":- discontiguous collection_setter/3.") - lines.push(":- discontiguous p3_class_icon/2.") - lines.push(":- discontiguous p3_class_color/2.") - lines.push(":- discontiguous p3_instance_color/3.") + lines.push(":- discontiguous(register_sdna_flow/2).") + lines.push(":- discontiguous(flowable/2).") + lines.push(":- discontiguous(flow_state/3).") + lines.push(":- discontiguous(start_action/2).") + lines.push(":- discontiguous(action/4).") + lines.push(":- discontiguous(subject_class/2).") + lines.push(":- discontiguous(constructor/2).") + lines.push(":- discontiguous(instance/2).") + lines.push(":- discontiguous(property/2).") + lines.push(":- discontiguous(property_getter/4).") + lines.push(":- discontiguous(property_setter/3).") + lines.push(":- discontiguous(property_resolve/2).") + lines.push(":- discontiguous(property_resolve_language/3).") + lines.push(":- discontiguous(property_named_option/4).") + lines.push(":- discontiguous(collection_getter/4).") + lines.push(":- discontiguous(collection_setter/3).") + lines.push(":- discontiguous(p3_class_icon/2).") + lines.push(":- discontiguous(p3_class_color/2).") + lines.push(":- discontiguous(p3_instance_color/3).") for(let linkExpression of allLinks) { let link = linkExpression.data From 4a2a5824432561a8a4dec63a25fecb225f953bfc Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 21 Jul 2023 01:21:23 +0200 Subject: [PATCH 472/722] Join Prolog program lines just before giving it to scryer to avoid Deno to add weird line-breaks --- executor/src/core/Perspective.ts | 7 +++---- executor/src/core/PrologInstance.ts | 4 ++-- rust-executor/src/prolog_service/engine.rs | 15 +++++++++++---- rust-executor/src/prolog_service/mod.rs | 4 ++-- .../prolog_service/prolog_service_extension.js | 5 +++-- .../prolog_service/prolog_service_extension.rs | 4 ++-- 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 25887fc11..b1f12cd55 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -801,7 +801,7 @@ export default class Perspective { return link.source == 'ad4m://self' && link.predicate == 'ad4m://has_zome' } - async initEngineFacts(): Promise { + async initEngineFacts(): Promise { let lines = [] const allLinks = await this.getLinks(new LinkQuery({})) @@ -864,15 +864,14 @@ export default class Perspective { if(this.isSDNALink(link)) { try { let code = Literal.fromUrl(link.target).get() - lines.push(code) + lines.concat(code.split('\n')) } catch { console.error("Perspective.initEngineFacts: Error loading SocialDNA link target as literal... Ignoring SocialDNA link."); } } } - const factsCode = lines.join('\n') - return factsCode + return lines } async spawnPrologEngine(): Promise { diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index 1348679eb..9598ca6e7 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -51,9 +51,9 @@ export default class PrologInstance { // return await this.#engine.call(query) }; - async consult(program: string) { + async consult(program_lines: string[]) { //console.log("PrologInstance.consult", this.name, program, moduleName) - return await this.prologService.loadModuleString(this.name, "main.pl", program) + return await this.prologService.loadModuleString(this.name, "main.pl", program_lines) // const tmpobj = tmp.fileSync() // //@ts-ignore // fs.writeFileSync(tmpobj.name, program); diff --git a/rust-executor/src/prolog_service/engine.rs b/rust-executor/src/prolog_service/engine.rs index c685a7db2..d4c689c19 100644 --- a/rust-executor/src/prolog_service/engine.rs +++ b/rust-executor/src/prolog_service/engine.rs @@ -5,7 +5,7 @@ use tokio::sync::{mpsc, oneshot}; #[derive(Debug)] pub enum PrologServiceRequest { RunQuery(String, oneshot::Sender), - LoadModuleString(String, String, oneshot::Sender), + LoadModuleString(String, Vec, oneshot::Sender), } #[derive(Debug)] @@ -51,7 +51,14 @@ impl PrologEngine { let result = machine.run_query(query); let _ = response.send(PrologServiceResponse::QueryResult(result)); } - PrologServiceRequest::LoadModuleString(module_name, program, response) => { + PrologServiceRequest::LoadModuleString(module_name, program_lines, response) => { + let program = program_lines + .iter() + .map(|l| l + .replace("\n", "") + .replace("\r", "")) + .collect::>() + .join("\n"); let _result = machine.load_module_string(module_name.as_str(), program); let _ = response.send(PrologServiceResponse::LoadModuleResult(Ok(()))); } @@ -87,13 +94,13 @@ impl PrologEngine { pub async fn load_module_string( &self, module_name: String, - program: String, + program_lines: Vec, ) -> Result<(), Error> { let (response_sender, response_receiver) = oneshot::channel(); self.request_sender .send(PrologServiceRequest::LoadModuleString( module_name, - program, + program_lines, response_sender, )) .await diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index be25f41c1..365a2af6c 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -51,13 +51,13 @@ impl PrologService { &self, engine_name: String, module_name: String, - program: String, + program_lines: Vec, ) -> Result<(), Error> { let engines = self.engines.read().await; let engine = engines .get(&engine_name) .ok_or_else(|| Error::msg("Engine not found"))?; - engine.load_module_string(module_name, program).await + engine.load_module_string(module_name, program_lines).await } } diff --git a/rust-executor/src/prolog_service/prolog_service_extension.js b/rust-executor/src/prolog_service/prolog_service_extension.js index c600fc04b..a7be419ab 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.js +++ b/rust-executor/src/prolog_service/prolog_service_extension.js @@ -9,8 +9,9 @@ if(!query.endsWith(".")) query = query+"."; return JSON.parse(await core.opAsync("run_query", engineName, query)); }, - loadModuleString: async (engineName, module_name, program) => { - return core.opAsync("load_module_string", engineName, module_name, program); + loadModuleString: async (engineName, module_name, program_lines) => { + console.log("JS PROGRAM: "+program_lines) + return core.opAsync("load_module_string", engineName, module_name, program_lines); } }; })(globalThis); diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index 0d774fae2..02aa2c8db 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -89,11 +89,11 @@ async fn run_query(engine_name: String, query: String) -> Result, ) -> Result<(), AnyError> { let service = get_prolog_service().await; service - .load_module_string(engine_name, module_name, program) + .load_module_string(engine_name, module_name, program_lines) .await } From 4a7f0058fa2073cba9d787ae303409b38f365ebd Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 21 Jul 2023 01:39:15 +0200 Subject: [PATCH 473/722] Fix line-by-line constructing of SDNA part of Prolog program --- executor/src/core/Perspective.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index b1f12cd55..6cdcf696a 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -864,7 +864,7 @@ export default class Perspective { if(this.isSDNALink(link)) { try { let code = Literal.fromUrl(link.target).get() - lines.concat(code.split('\n')) + lines = lines.concat(code.split('\n')) } catch { console.error("Perspective.initEngineFacts: Error loading SocialDNA link target as literal... Ignoring SocialDNA link."); } From b1145472f6e74a2169f451d182deef0596533593 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 21 Jul 2023 01:41:07 +0200 Subject: [PATCH 474/722] Update scryer revision --- rust-executor/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 68009a6ef..c73b3f711 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -56,7 +56,7 @@ jsonwebtoken = "8.3.0" holochain = "0.1.3" #scryer-prolog = { version = "0.9.1", path = "../../Coasys/code/scryer-prolog" } -scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "644559b7f793429c487693489a7e398b91cc29a3" } +scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "0b833bd2f3cf0e87d4240b3d6a3953d8050b90f5" } [dev-dependencies] maplit = "1.0.2" \ No newline at end of file From 7bbfcd3a60b68866c5103aeac3d12bc281b014d5 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 21 Jul 2023 13:51:50 +0200 Subject: [PATCH 475/722] Add missing "discontiguous" declarations for collection predicates --- executor/src/core/Perspective.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 6cdcf696a..564aa951c 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -844,17 +844,24 @@ export default class Perspective { lines.push(":- discontiguous(flow_state/3).") lines.push(":- discontiguous(start_action/2).") lines.push(":- discontiguous(action/4).") + lines.push(":- discontiguous(subject_class/2).") lines.push(":- discontiguous(constructor/2).") lines.push(":- discontiguous(instance/2).") + lines.push(":- discontiguous(property/2).") lines.push(":- discontiguous(property_getter/4).") lines.push(":- discontiguous(property_setter/3).") lines.push(":- discontiguous(property_resolve/2).") lines.push(":- discontiguous(property_resolve_language/3).") lines.push(":- discontiguous(property_named_option/4).") + + lines.push(":- discontiguous(collection/2).") lines.push(":- discontiguous(collection_getter/4).") lines.push(":- discontiguous(collection_setter/3).") + lines.push(":- discontiguous(collection_remover/3).") + lines.push(":- discontiguous(collection_adder/3).") + lines.push(":- discontiguous(p3_class_icon/2).") lines.push(":- discontiguous(p3_class_color/2).") lines.push(":- discontiguous(p3_instance_color/3).") From 81beee8637bf70139a7cc909c4db94e033f3d870 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 21 Jul 2023 13:52:22 +0200 Subject: [PATCH 476/722] Only write "instance" predicate if we have conditions for a body to avoid broken Prolog --- core/src/subject/SDNADecorators.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/subject/SDNADecorators.ts b/core/src/subject/SDNADecorators.ts index 6ea23f026..ccf237d6d 100644 --- a/core/src/subject/SDNADecorators.ts +++ b/core/src/subject/SDNADecorators.ts @@ -312,9 +312,11 @@ export function SDNAClass(opts: SDNAClassOptions) { let subjectContructorJSONString = stringifyObjectLiteral(constructorActions) sdna += `constructor(${uuid}, '${subjectContructorJSONString}').\n` - let instanceConditionProlog = instanceConditions.join(", ") - sdna += `instance(${uuid}, Base) :- ${instanceConditionProlog}.\n` - sdna += "\n" + if(instanceConditions.length > 0) { + let instanceConditionProlog = instanceConditions.join(", ") + sdna += `instance(${uuid}, Base) :- ${instanceConditionProlog}.\n` + sdna += "\n" + } sdna += `destructor(${uuid}, '${stringifyObjectLiteral(classRemoverActions)}').\n` sdna += "\n" sdna += propertiesCode.join("\n") From 0b50ba73ed510470a9a7c80c18104770035e991c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Sat, 22 Jul 2023 00:36:12 +0200 Subject: [PATCH 477/722] Correct treatment of strings when constructing JSON from QueryResult --- .../src/prolog_service/prolog_service_extension.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index 02aa2c8db..f2835752c 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -22,7 +22,19 @@ pub fn prolog_value_to_json_tring(value: Value) -> String { Value::Float(f) => format!("{}", f), Value::Rational(r) => format!("{}", r), Value::Atom(a) => format!("{}", a.as_str()), - Value::String(s) => format!("\"{}\"", s), + Value::String(s) => + if let Err(e) = serde_json::from_str::(s.as_str()) { + //treat as string literal + //escape double quotes + format!("\"{}\"", s + .replace("\"", "\\\"") + .replace("\n", "\\n") + .replace("\t", "\\t") + .replace("\r", "\\r")) + } else { + //return valid json string + s + }, Value::List(l) => { let mut string_result = "[".to_string(); for (i, v) in l.iter().enumerate() { From 94a3df08cb3accd82ae0bb6e0971defff5c225a8 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 11:54:16 +0530 Subject: [PATCH 478/722] Added new logging to deno core --- executor/src/deno.ts | 16 ++++++++ executor/src/utils_extension.d.ts | 4 ++ rust-executor/Cargo.toml | 2 + rust-executor/src/js_core/utils_extension.js | 13 ++++++- rust-executor/src/js_core/utils_extension.rs | 39 +++++++++++++++++++- 5 files changed, 71 insertions(+), 3 deletions(-) diff --git a/executor/src/deno.ts b/executor/src/deno.ts index b24d498b5..f4c4dc20b 100644 --- a/executor/src/deno.ts +++ b/executor/src/deno.ts @@ -18,6 +18,22 @@ export const init = internalInit export const path = internalPath export const os = internalOs +console.log = (...args) => { + UTILS.consoleLog(`${args.reduce((acc, cur) => acc += `${cur} `, "")}`) +}; + +console.debug = (...args) => { + UTILS.consoleDebug(`${args.reduce((acc, cur) => acc += `${cur} `, "")}`) +}; + +console.error = (...args) => { + UTILS.consoleError(`${args.reduce((acc, cur) => acc += `${cur} `, "")}`) +}; + +console.warn = (...args) => { + UTILS.consoleWarn(`${args.reduce((acc, cur) => acc += `${cur} `, "")}`) +}; + import "https://deno.land/x/xhr@0.3.0/mod.ts"; import { HTMLElement } from "linkedom" diff --git a/executor/src/utils_extension.d.ts b/executor/src/utils_extension.d.ts index be1a35622..ef5e79dfd 100644 --- a/executor/src/utils_extension.d.ts +++ b/executor/src/utils_extension.d.ts @@ -2,6 +2,10 @@ declare global { interface Utils { getSigningDNA: () => Uint8Array; hash: (data: string | buffer) => string; + consoleLog: (...args) => void; + consoleDebug: (...args) => void; + consoleError: (...args) => void; + consoleWarn: (...args) => void; async loadModule: (path: String) => string; } diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 7eaa23b04..ba5d7be07 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -54,3 +54,5 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" holochain = "0.1.3" + +tracing = "0.1" diff --git a/rust-executor/src/js_core/utils_extension.js b/rust-executor/src/js_core/utils_extension.js index b04aa1dbe..f570d8a9a 100644 --- a/rust-executor/src/js_core/utils_extension.js +++ b/rust-executor/src/js_core/utils_extension.js @@ -7,7 +7,18 @@ }, loadModule: async (path) => { return core.opAsync("load_module", path); + }, + consoleLog: (args) => { + return core.ops.console_log(args); + }, + consoleDebug: (args) => { + return core.ops.console_debug(args); + }, + consoleError: (args) => { + return core.ops.console_error(args); + }, + consoleWarn: (args) => { + return core.ops.console_warn(args); } }; })(globalThis); - \ No newline at end of file diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index 453308469..880e96b25 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -1,8 +1,8 @@ use cid::Cid; use deno_core::{error::AnyError, include_js_files, op, Extension}; -use log::info; use multibase::Base; use multihash::{Code, MultihashDigest}; +use tracing::{error, info, debug, warn}; use super::JS_CORE_HANDLE; @@ -20,6 +20,34 @@ fn hash(data: String) -> Result { Ok(format!("Qm{}", encoded_cid)) } +#[op] +fn console_log(data: String) -> Result { + info!("[JSCORE]: {:?}", data); + + Ok(String::from("temp")) +} + +#[op] +fn console_debug(data: String) -> Result { + debug!("[JSCORE]: {:?}", data); + + Ok(String::from("temp")) +} + +#[op] +fn console_error(data: String) -> Result { + error!("[JSCORE]: {:?}", data); + + Ok(String::from("temp")) +} + +#[op] +fn console_warn(data: String) -> Result { + warn!("[JSCORE]: {:?}", data); + + Ok(String::from("temp")) +} + #[op] async fn load_module(path: String) -> Result { info!("Trying to load module: {}", path); @@ -37,7 +65,14 @@ async fn load_module(path: String) -> Result { pub fn build() -> Extension { Extension::builder("utils") .js(include_js_files!(utils "utils_extension.js",)) - .ops(vec![hash::decl(), load_module::decl()]) + .ops(vec![ + hash::decl(), + load_module::decl(), + console_log::decl(), + console_debug::decl(), + console_error::decl(), + console_warn::decl(), + ]) .force_op_registration() .build() } From 82dd6e64dbe68fbeee4c6f68cfd7471032e1b76f Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 11:57:22 +0530 Subject: [PATCH 479/722] Fixed env_logger intialization --- rust-executor/src/init.rs | 4 ++-- rust-executor/src/main.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 54380314c..50af02b79 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -1,4 +1,4 @@ -use log::{info, warn}; +use tracing::{info, warn}; use semver::{Version, VersionReq}; use std::error::Error; use std::fs; @@ -13,7 +13,7 @@ pub fn init( network_bootstrap_seed: Option, ) -> Result<(), Box> { std::env::set_var("RUST_LOG", "info"); - env_logger::init(); + env_logger::try_init(); //Get the default data path if none is provided let app_data_path = match data_path { diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 336876550..71b2ff9a5 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -8,7 +8,7 @@ mod wallet; pub mod init; mod pubsub; -use log::{error, info}; +use tracing::{error, info}; use rust_executor::Ad4mConfig; use std::env; @@ -17,7 +17,7 @@ use js_core::JsCore; #[tokio::main(flavor = "multi_thread")] async fn main() { env::set_var("RUST_LOG", "rust_executor=info"); - env_logger::init(); + env_logger::try_init(); let mut config = Ad4mConfig::default(); config.prepare(); From 5906d09da690dc67c9aee9e352b63c600c04cead Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 11:58:12 +0530 Subject: [PATCH 480/722] Removed unused path functions --- ui/src-tauri/src/config.rs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/ui/src-tauri/src/config.rs b/ui/src-tauri/src/config.rs index 58104db68..fbe3ffd83 100644 --- a/ui/src-tauri/src/config.rs +++ b/ui/src-tauri/src/config.rs @@ -10,18 +10,6 @@ pub fn log_path() -> PathBuf { data_path().join("ad4m.log") } -pub fn binary_path() -> PathBuf { - data_path().join("binary") -} - -pub fn holochain_binary_path() -> PathBuf { - if cfg!(windows) { - binary_path().join("holochain.exe") - } else { - binary_path().join("holochain") - } -} - #[cfg(feature = "custom-protocol")] pub fn app_url() -> String { "index.html".to_string() From 9a1e9dc34763f12f5ff9138d82f10abe37394e34 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 11:59:01 +0530 Subject: [PATCH 481/722] Updated the rust-executor lib to work properly in the launcher --- rust-executor/src/lib.rs | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 18f06b161..9e10aa230 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -5,12 +5,14 @@ mod holochain_service; mod js_core; mod utils; mod wallet; +use tokio; + pub mod init; mod pubsub; -use log::{error, info}; use std::env; +use tracing::{info, error}; //use graphql::start_server; use js_core::JsCore; @@ -19,7 +21,7 @@ pub use config::Ad4mConfig; /// Runs the GraphQL server and the deno core runtime pub async fn run(mut config: Ad4mConfig) { - env::set_var("RUST_LOG", "rust_executor=trace,warp::server"); + env::set_var("RUST_LOG", "rust_executor=info,warp::server"); let _ = env_logger::try_init(); config.prepare(); @@ -29,19 +31,23 @@ pub async fn run(mut config: Ad4mConfig) { info!("js_core initialized."); info!("Starting GraphQL..."); - match graphql::start_server( - js_core_handle, - config.gql_port.expect("Did not get gql port"), - ) - .await - { - Ok(_) => { - info!("GraphQL server stopped."); - std::process::exit(0); - } - Err(err) => { - error!("GraphQL server stopped with error: {}", err); - std::process::exit(1); - } - } + + tokio::task::spawn_blocking(move || { + let result = graphql::start_server( + js_core_handle, + config.gql_port.expect("Did not get gql port"), + ); + tokio::runtime::Handle::current().block_on(async { + match result.await { + Ok(_) => { + info!("GraphQL server stopped."); + std::process::exit(0); + } + Err(err) => { + error!("GraphQL server stopped with error: {}", err); + std::process::exit(1); + } + } + }); + }); } From e81385aadfc0c7d078c89a5bf0438c5fc958b2a3 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 12:01:37 +0530 Subject: [PATCH 482/722] Updatted dependencies --- Cargo.lock | 4 ++++ ui/src-tauri/Cargo.toml | 3 +++ 2 files changed, 7 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 855aa2fa9..aad52dafa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -75,6 +75,7 @@ dependencies = [ "portpicker", "remove_dir_all", "reqwest", + "rust-executor", "serde", "serde_json", "sysinfo 0.23.13", @@ -82,6 +83,8 @@ dependencies = [ "tauri-build", "tauri-plugin-positioner", "tokio", + "tracing", + "tracing-subscriber 0.2.25", "uuid 0.8.2", ] @@ -8846,6 +8849,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", + "tracing", "url 2.3.1", "uuid 1.3.0", "warp", diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 5150da465..e1ebc334d 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -35,6 +35,9 @@ tauri-plugin-positioner = { version = "1.0", features = ["system-tray"] } remove_dir_all = "0.7.0" reqwest = { version = "0.11", features = ["json"] } ad4m-client = { path = "../../rust-client" } +rust-executor = { path = "../../rust-executor" } +tracing = "0.1" +tracing-subscriber = "0.2" [features] # by default Tauri runs in production mode From c412dc1b951cf4233f6960d27bd24fd1ed82bd5f Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 12:02:48 +0530 Subject: [PATCH 483/722] Got rust-executor working in the laucher --- ui/src-tauri/src/main.rs | 125 +++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 63 deletions(-) diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 417ebd7bf..b6d1b5967 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -3,13 +3,17 @@ windows_subsystem = "windows" )] +use log::info; +use rust_executor::Ad4mConfig; use tauri::LogicalSize; use tauri::Size; +use tracing_subscriber::EnvFilter; +use tracing_subscriber::fmt::format; +use std::env; use std::sync::Mutex; extern crate remove_dir_all; use remove_dir_all::*; -use config::holochain_binary_path; use config::app_url; use logs::setup_logs; use menu::build_menu; @@ -43,6 +47,8 @@ use crate::menu::{handle_menu_event, open_logs_folder}; use crate::util::has_processes_running; use crate::util::{find_and_kill_processes, create_main_window, save_executor_port}; +use tracing_subscriber::{fmt::format::FmtSpan, FmtSubscriber}; + // the payload type must implement `Serialize` and `Clone`. #[derive(Clone, serde::Serialize)] struct Payload { @@ -64,6 +70,22 @@ pub struct AppState { } fn main() { + env::set_var("RUST_LOG", "rust_executor=info,warp::server"); + + let format = format::debug_fn(|writer, field, value| { + write!(writer, "{:?}", value) + }); + + let filter = EnvFilter::from_default_env(); + + let subscriber = tracing_subscriber::fmt() + .with_env_filter(filter) + .fmt_fields(format) + .finish(); + + tracing::subscriber::set_global_default(subscriber) + .expect("Failed to set tracing subscriber"); + let app_name = if std::env::consts::OS == "windows" { "AD4M.exe" } else { "AD4M" }; if has_processes_running(app_name) > 1 { println!("AD4M is already running"); @@ -88,22 +110,18 @@ fn main() { find_and_kill_processes("holochain"); - let prepare = Command::new_sidecar("ad4m-host") - .expect("Failed to create ad4m command") - .args(["prepare"]) - .status() - .expect("Failed to run ad4m prepare"); - assert!(prepare.success()); - - if !holochain_binary_path().exists() { - log::info!("init command by copy holochain binary"); - let status = Command::new_sidecar("ad4m-host") - .expect("Failed to create ad4m command") - .args(["init"]) - .status() - .expect("Failed to run ad4m init"); - assert!(status.success()); - } + match rust_executor::init::init( + Some(String::from(data_path().to_str().unwrap())), + None + ) { + Ok(()) => { + println!("Ad4m initialized sucessfully"); + }, + Err(e) => { + println!("Ad4m initialization failed: {}", e); + std::process::exit(1); + } + }; let req_credential = Uuid::new_v4().to_string(); @@ -147,57 +165,38 @@ fn main() { open_logs_folder(); }); - let (mut rx, _child) = Command::new_sidecar("ad4m-host") - .expect("Failed to create ad4m command") - .args([ - "serve", - "--port", &free_port.to_string(), - "--reqCredential", &req_credential, - ]) - .spawn() - .expect("Failed to spawn ad4m serve"); + let mut config = Ad4mConfig::default(); + config.admin_credential = Some(req_credential.to_string()); + config.app_data_path = Some(String::from(data_path().to_str().unwrap())); + config.gql_port = Some(free_port); + config.network_bootstrap_seed = None; let handle = app.handle(); - tauri::async_runtime::spawn(async move { - while let Some(event) = rx.recv().await { - match event.clone() { - CommandEvent::Stdout(line) => { - log::info!("{}", line); - - if line.contains("GraphQL server started, Unlock the agent to start holohchain") { - let url = app_url(); - log::info!("Executor started on: {:?}", url); - let _ = splashscreen_clone.hide(); - create_tray_message_windows(&handle); - let main = get_main_window(&handle); - main.emit("ready", Payload { message: "ad4m-executor is ready".into() }).unwrap(); - } - }, - CommandEvent::Stderr(line) => { - let is_prolog_redefined_line = line.starts_with("Warning: /var") || line.starts_with("Warning: Redefined") || line.starts_with("Warning: Previously"); - if !is_prolog_redefined_line { - log::error!("{}", line); - } - } - CommandEvent::Terminated(line) => { - log::info!("Terminated {:?}", line); - let main = get_main_window(&handle); - - if let Ok(true) = &splashscreen_clone.is_visible() { - log_error(&splashscreen_clone, "Something went wrong while starting ad4m-executor please check the logs"); - } - - if let Ok(true) = main.is_visible() { - log_error(&main, "There was an error with the AD4M Launcher. Restarting may fix this, otherwise please contact the AD4M team for support."); - } - - log::info!("Terminated {:?}", line); - }, - CommandEvent::Error(line) => log::info!("Error {:?}", line), - _ => log::error!("{:?}", event), + + + + async fn test(config: Ad4mConfig, splashscreen_clone: Window, handle: &AppHandle) { + let my_closure = || { + let url = app_url(); + log::info!("Executor clone on: {:?}", url); + let _ = splashscreen_clone.hide(); + create_tray_message_windows(&handle); + let main = get_main_window(&handle); + main.emit("ready", Payload { message: "ad4m-executor is ready".into() }).unwrap(); + }; + + match rust_executor::run(config.clone()).await { + () => { + my_closure(); + + info!("GraphQL server stopped.") } } + } + + tauri::async_runtime::spawn(async move { + test(config.clone(), splashscreen.clone(), &handle).await }); Ok(()) From 71c51f10c45040efb76cc3250afa9c7e67999e69 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 12:37:40 +0530 Subject: [PATCH 484/722] Updated logging --- .../src/graphql/mutation_resolvers.rs | 4 +- .../holochain_service_extension.rs | 2 +- rust-executor/src/holochain_service/mod.rs | 2 +- rust-executor/src/js_core/mod.rs | 6 +-- .../src/js_core/string_module_loader.rs | 2 +- rust-executor/src/js_core/wallet_extension.rs | 2 +- rust-executor/src/pubsub.rs | 3 +- ui/src-tauri/src/logs.rs | 28 ------------- ui/src-tauri/src/main.rs | 41 +++++++++---------- 9 files changed, 30 insertions(+), 60 deletions(-) delete mode 100644 ui/src-tauri/src/logs.rs diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 9e714fe71..e3a7202f9 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -1,6 +1,6 @@ #![allow(non_snake_case)] use juniper::{graphql_object, graphql_value, FieldResult}; -use log::debug; +use tracing::debug; use super::graphql_types::*; use super::utils::get_capabilies; @@ -823,7 +823,7 @@ impl Mutation { {{ mutations: {}, uuid: "{}", status: {} }}, {{ capabilities: {} }} ))"#, - mutations_json, uuid, status, capabilities + mutations_json, uuid, status, capabilities ); let result = js.execute(script).await?; let result: JsResultType = serde_json::from_str(&result)?; diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index ab14ce61e..14bc406f6 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -6,7 +6,7 @@ use holochain::{ Signature, ZomeCallResponse, }, }; -use log::info; +use tracing::info; use crate::holochain_service::{HolochainService, LocalConductorConfig}; diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 135f47748..a766a538d 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -16,7 +16,7 @@ use holochain::prelude::{ Signature, Timestamp, TransportConfig, ZomeCallResponse, ZomeCallUnsigned, }; use holochain::test_utils::itertools::Either; -use log::info; +use tracing::info; use rand::Rng; use serde::{Deserialize, Serialize}; use tokio::sync::{mpsc, oneshot, Mutex}; diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 3cd657d70..0c3716f03 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -4,7 +4,7 @@ use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; use holochain::prelude::{ExternIO, Signal}; -use log::{error, info}; +use tracing::{error, info}; use once_cell::sync::Lazy; use std::env::current_dir; use std::sync::Arc; @@ -215,8 +215,8 @@ impl JsCore { let wrapped_script = format!( r#" globalThis.asyncResult = undefined; - (async () => {{ - globalThis.asyncResult = ({}); + (async () => {{ + globalThis.asyncResult = ({}); }})(); "#, script diff --git a/rust-executor/src/js_core/string_module_loader.rs b/rust-executor/src/js_core/string_module_loader.rs index c191cb898..d7e7df2f9 100644 --- a/rust-executor/src/js_core/string_module_loader.rs +++ b/rust-executor/src/js_core/string_module_loader.rs @@ -7,7 +7,7 @@ use deno_core::ModuleSpecifier; use deno_core::ModuleType; use deno_core::ResolutionKind; use deno_runtime::deno_core::error::AnyError; -use log::info; +use tracing::info; use std::collections::HashMap; use std::pin::Pin; diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index ff250291b..11f408fc6 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -1,7 +1,7 @@ use base64::{engine::general_purpose as base64engine, Engine as _}; use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension}; use did_key::{CoreSign, PatchedKeyPair}; -use log::error; +use tracing::error; use serde::{Deserialize, Serialize}; use crate::wallet::Wallet; diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index b7c008cfc..6d3459744 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -3,8 +3,7 @@ use crate::graphql::graphql_types::GetValue; use futures::Stream; use futures::StreamExt; use juniper::{graphql_value, FieldError, FieldResult}; -use log::debug; -use log::error; +use tracing::{debug, error}; use serde::de::DeserializeOwned; use std::collections::HashMap; use std::pin::Pin; diff --git a/ui/src-tauri/src/logs.rs b/ui/src-tauri/src/logs.rs deleted file mode 100644 index dfa33a675..000000000 --- a/ui/src-tauri/src/logs.rs +++ /dev/null @@ -1,28 +0,0 @@ -use log::LevelFilter; -use log4rs::{ - append::file::FileAppender, - config::{Appender, Root}, - encode::pattern::PatternEncoder, - Config, -}; -use std::fs; - -use crate::config::{log_path}; - -pub fn setup_logs() -> Result<(), String> { - let _ = fs::remove_file(log_path()); - - let logfile = FileAppender::builder() - .encoder(Box::new(PatternEncoder::new("[{d}] {l} - {m}\n"))) - .build(log_path()) - .map_err(|err| format!("Could not build log config: {:?}", err))?; - - let config = Config::builder() - .appender(Appender::builder().build("logfile", Box::new(logfile))) - .build(Root::builder().appender("logfile").build(LevelFilter::Info)) - .map_err(|err| format!("Could not init log config: {:?}", err))?; - - log4rs::init_config(config).map_err(|err| format!("Could not init log config: {:?}", err))?; - - Ok(()) -} \ No newline at end of file diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index b6d1b5967..d9451b59b 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -3,19 +3,21 @@ windows_subsystem = "windows" )] -use log::info; +use tracing::{info, error}; use rust_executor::Ad4mConfig; use tauri::LogicalSize; use tauri::Size; use tracing_subscriber::EnvFilter; use tracing_subscriber::fmt::format; use std::env; +use std::fs; +use std::fs::File; +use std::sync::Arc; use std::sync::Mutex; extern crate remove_dir_all; use remove_dir_all::*; use config::app_url; -use logs::setup_logs; use menu::build_menu; use system_tray::{ build_system_tray, handle_system_tray_event }; use tauri::{ @@ -30,7 +32,6 @@ use uuid::Uuid; mod config; mod util; -mod logs; mod system_tray; mod menu; mod commands; @@ -41,12 +42,13 @@ use crate::commands::proxy::{get_proxy, login_proxy, setup_proxy, stop_proxy}; use crate::commands::state::{get_port, request_credential}; use crate::commands::app::{close_application, close_main_window, clear_state, open_tray, open_tray_message}; use crate::config::data_path; +use crate::config::log_path; use crate::util::create_tray_message_windows; use crate::util::find_port; use crate::menu::{handle_menu_event, open_logs_folder}; use crate::util::has_processes_running; use crate::util::{find_and_kill_processes, create_main_window, save_executor_port}; - +use std::io::{self, Write}; use tracing_subscriber::{fmt::format::FmtSpan, FmtSubscriber}; // the payload type must implement `Serialize` and `Clone`. @@ -70,9 +72,15 @@ pub struct AppState { } fn main() { - env::set_var("RUST_LOG", "rust_executor=info,warp::server"); + env::set_var("RUST_LOG", "rust_executor=info,error,warn,debugad4m-launcher=info,warn,error"); + + let _ = fs::remove_file(log_path()); + + let file = File::create(log_path()).unwrap(); + let file = Arc::new(Mutex::new(file)); - let format = format::debug_fn(|writer, field, value| { + let format = format::debug_fn(move |writer, _field, value| { + let _ = writeln!(file.lock().unwrap(), "{:?}" value); write!(writer, "{:?}", value) }); @@ -96,13 +104,9 @@ fn main() { let _ = remove_dir_all(data_path()); } - if let Err(err) = setup_logs() { - println!("Error setting up the logs: {:?}", err); - } - let free_port = find_port(12000, 13000); - log::info!("Free port: {:?}", free_port); + info!("Free port: {:?}", free_port); save_executor_port(free_port); @@ -157,10 +161,8 @@ fn main() { let splashscreen = app.get_window("splashscreen").unwrap(); - let splashscreen_clone = splashscreen.clone(); - let _id = splashscreen.listen("copyLogs", |event| { - log::info!("got window event-name with payload {:?} {:?}", event, event.payload()); + info!("got window event-name with payload {:?} {:?}", event, event.payload()); open_logs_folder(); }); @@ -173,13 +175,10 @@ fn main() { let handle = app.handle(); - - - - async fn test(config: Ad4mConfig, splashscreen_clone: Window, handle: &AppHandle) { + async fn spawn_executor(config: Ad4mConfig, splashscreen_clone: Window, handle: &AppHandle) { let my_closure = || { let url = app_url(); - log::info!("Executor clone on: {:?}", url); + info!("Executor clone on: {:?}", url); let _ = splashscreen_clone.hide(); create_tray_message_windows(&handle); let main = get_main_window(&handle); @@ -196,7 +195,7 @@ fn main() { } tauri::async_runtime::spawn(async move { - test(config.clone(), splashscreen.clone(), &handle).await + spawn_executor(config.clone(), splashscreen.clone(), &handle).await }); Ok(()) @@ -234,7 +233,7 @@ fn main() { }; }); } - Err(err) => log::error!("Error building the app: {:?}", err), + Err(err) => error!("Error building the app: {:?}", err), } } From b51aa02a1c032ade4a7d482dd0862ab6407690e3 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 14:29:24 +0530 Subject: [PATCH 485/722] Fixed syntax error --- ui/src-tauri/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index d9451b59b..44380d439 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -80,7 +80,7 @@ fn main() { let file = Arc::new(Mutex::new(file)); let format = format::debug_fn(move |writer, _field, value| { - let _ = writeln!(file.lock().unwrap(), "{:?}" value); + let _ = writeln!(file.lock().unwrap(), "{:?}", value); write!(writer, "{:?}", value) }); From 1ef04aa3464249c7900ed27cd5e10857664c62df Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 14:48:16 +0530 Subject: [PATCH 486/722] Fix no ad4m folder found error --- ui/src-tauri/src/main.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 44380d439..a2838fde9 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -74,7 +74,13 @@ pub struct AppState { fn main() { env::set_var("RUST_LOG", "rust_executor=info,error,warn,debugad4m-launcher=info,warn,error"); - let _ = fs::remove_file(log_path()); + if !data_path().exists() { + let _ = fs::create_dir_all(data_path()); + } + + if log_path().exists() { + let _ = fs::remove_file(log_path()); + } let file = File::create(log_path()).unwrap(); let file = Arc::new(Mutex::new(file)); @@ -100,10 +106,6 @@ fn main() { return; } - if data_path().exists() && !data_path().join("ad4m").join("agent.json").exists() { - let _ = remove_dir_all(data_path()); - } - let free_port = find_port(12000, 13000); info!("Free port: {:?}", free_port); From 0bdb04500bae8772508af0ef2844a6328ac069bd Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 15:03:50 +0530 Subject: [PATCH 487/722] Added a seperate method for laucher thats uses tokio --- rust-executor/src/lib.rs | 30 ++++++++++++++++++++++++++++++ ui/src-tauri/src/main.rs | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 9e10aa230..c4b84d1e4 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -32,6 +32,36 @@ pub async fn run(mut config: Ad4mConfig) { info!("Starting GraphQL..."); + match graphql::start_server( + js_core_handle, + config.gql_port.expect("Did not get gql port"), + ) + .await + { + Ok(_) => { + info!("GraphQL server stopped."); + std::process::exit(0); + } + Err(err) => { + error!("GraphQL server stopped with error: {}", err); + std::process::exit(1); + } + }; +} + +/// Runs the GraphQL server and the deno core runtime +pub async fn run_with_tokio(mut config: Ad4mConfig) { + env::set_var("RUST_LOG", "rust_executor=info,warp::server"); + let _ = env_logger::try_init(); + config.prepare(); + + info!("Starting js_core..."); + let mut js_core_handle = JsCore::start(config.clone()).await; + js_core_handle.initialized().await; + info!("js_core initialized."); + + info!("Starting GraphQL..."); + tokio::task::spawn_blocking(move || { let result = graphql::start_server( js_core_handle, diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index a2838fde9..bdadaa838 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -187,7 +187,7 @@ fn main() { main.emit("ready", Payload { message: "ad4m-executor is ready".into() }).unwrap(); }; - match rust_executor::run(config.clone()).await { + match rust_executor::run_with_tokio(config.clone()).await { () => { my_closure(); From 4d8c1231973150fe9d468c5f9340fb64c3c067c5 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 27 Jul 2023 12:21:52 +0200 Subject: [PATCH 488/722] Less warnings --- .../src/prolog_service/prolog_service_extension.rs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index f2835752c..215e81e4d 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -1,13 +1,7 @@ use deno_core::{error::AnyError, include_js_files, op, Extension, anyhow::bail}; use scryer_prolog::machine::parsed_results::{Value, QueryMatch, QueryResolution}; -use super::{get_prolog_service, init_prolog_service}; - -#[op] -async fn init() -> Result<(), AnyError> { - init_prolog_service().await; - Ok(()) -} +use super::{get_prolog_service}; #[op] async fn spawn_engine(engine_name: String) -> Result<(), AnyError> { @@ -23,7 +17,7 @@ pub fn prolog_value_to_json_tring(value: Value) -> String { Value::Rational(r) => format!("{}", r), Value::Atom(a) => format!("{}", a.as_str()), Value::String(s) => - if let Err(e) = serde_json::from_str::(s.as_str()) { + if let Err(_e) = serde_json::from_str::(s.as_str()) { //treat as string literal //escape double quotes format!("\"{}\"", s From fd9e66e549d339edffccca94b0b9dd74650d70b1 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 27 Jul 2023 16:36:34 +0530 Subject: [PATCH 489/722] updated clear_state --- ui/src-tauri/src/commands/app.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ui/src-tauri/src/commands/app.rs b/ui/src-tauri/src/commands/app.rs index 9e8667e7a..8ce33728a 100644 --- a/ui/src-tauri/src/commands/app.rs +++ b/ui/src-tauri/src/commands/app.rs @@ -65,10 +65,6 @@ pub fn open_tray_message(app_handle: tauri::AppHandle) { #[tauri::command] pub fn clear_state(app_handle: tauri::AppHandle) { - find_and_kill_processes("ad4m-host"); - - find_and_kill_processes("holochain"); - let _ = remove_dir_all(data_path()); app_handle.restart(); From 9763fbf576a75307c7eb3004554726ea1dc6e925 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Wed, 2 Aug 2023 12:54:11 +0530 Subject: [PATCH 490/722] Fixed resolveLanguage not working for properties --- core/src/subject/SubjectEntity.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/src/subject/SubjectEntity.ts b/core/src/subject/SubjectEntity.ts index c6dab67e1..794860414 100644 --- a/core/src/subject/SubjectEntity.ts +++ b/core/src/subject/SubjectEntity.ts @@ -95,9 +95,8 @@ export class SubjectEntity { private async setProperty(key: string, value: any) { const setters = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), property_setter(C, "${key}", Setter)`) if (setters && setters.length > 0) { - const property = setters[0].Property const actions = eval(setters[0].Setter) - const resolveLanguageResults = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), property_resolve_language(C, "${property}", Language)`) + const resolveLanguageResults = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), property_resolve_language(C, "${key}", Language)`) let resolveLanguage if (resolveLanguageResults && resolveLanguageResults.length > 0) { resolveLanguage = resolveLanguageResults[0].Language From d1fe063f1d4f94a43c0b1dfb4b130b95f2f94c8f Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Wed, 2 Aug 2023 15:39:53 +0530 Subject: [PATCH 491/722] Fixed destructor not working because it would not remove all intial value --- core/src/subject/SDNADecorators.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/subject/SDNADecorators.ts b/core/src/subject/SDNADecorators.ts index 6ea23f026..2a4c8883f 100644 --- a/core/src/subject/SDNADecorators.ts +++ b/core/src/subject/SDNADecorators.ts @@ -235,12 +235,12 @@ export function SDNAClass(opts: SDNAClassOptions) { target: initial, }) - classRemoverActions = [{ + classRemoverActions.push({ action: "removeLink", source: "this", predicate: through, target: initial, - }] + }) } } From 269fb2c27018aee948f25e3eee295277673637a6 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Wed, 2 Aug 2023 15:41:03 +0530 Subject: [PATCH 492/722] Handle not being able to parse expression URL if the language didn't exists --- core/src/subject/Subject.ts | 12 ++++++++---- core/src/subject/SubjectEntity.ts | 15 +++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/core/src/subject/Subject.ts b/core/src/subject/Subject.ts index bf78ad7b0..40e38970a 100644 --- a/core/src/subject/Subject.ts +++ b/core/src/subject/Subject.ts @@ -36,11 +36,15 @@ export class Subject { if(results && results.length > 0) { let expressionURI = results[0].Value if(resolveExpressionURI) { - const expression = await this.#perspective.getExpression(expressionURI) try { - return JSON.parse(expression.data) - } catch(e) { - return expression.data + const expression = await this.#perspective.getExpression(expressionURI) + try { + return JSON.parse(expression.data) + } catch(e) { + return expression.data + } + } catch (err) { + return expressionURI } } else { return expressionURI diff --git a/core/src/subject/SubjectEntity.ts b/core/src/subject/SubjectEntity.ts index 794860414..8849cee89 100644 --- a/core/src/subject/SubjectEntity.ts +++ b/core/src/subject/SubjectEntity.ts @@ -49,13 +49,16 @@ export class SubjectEntity { let results = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), property_getter(C, "${tempId}", "${p}", Value)`) if (results && results.length > 0) { let expressionURI = results[0].Value - if (resolveExpressionURI) { - const expression = await this.#perspective.getExpression(expressionURI) try { - return JSON.parse(expression.data) - } catch (e) { - return expression.data + const expression = await this.#perspective.getExpression(expressionURI) + try { + return JSON.parse(expression.data) + } catch (e) { + return expression.data + } + } catch (err) { + return expressionURI } } else { return expressionURI @@ -101,7 +104,7 @@ export class SubjectEntity { if (resolveLanguageResults && resolveLanguageResults.length > 0) { resolveLanguage = resolveLanguageResults[0].Language } - + if (resolveLanguage) { value = await this.#perspective.createExpression(value, resolveLanguage) } From 588f3c303bd0f390cbf5448e448779bfb7902684 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 2 Aug 2023 14:54:43 +0200 Subject: [PATCH 493/722] Don't write prolog facts about SDNA links --- executor/src/core/Perspective.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 564aa951c..ea7514b99 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -810,12 +810,14 @@ export default class Perspective { // link/5 //------------------- lines.push(":- discontiguous(triple/3).") - lines.push(":- discontiguous(link/5).") + lines.push(":- discontiguous(link/5).") + + const linksWithoutSDNA = allLinks.filter(l => !this.isSDNALink(l.data)) - for (const link of allLinks) { + for (const link of linksWithoutSDNA) { lines.push(this.tripleFact(link)); } - for (const link of allLinks) { + for (const link of linksWithoutSDNA) { lines.push(this.linkFact(link)); }; @@ -833,7 +835,7 @@ export default class Perspective { - lines = [...lines, ...await this.nodeFacts(allLinks)] + lines = [...lines, ...await this.nodeFacts(linksWithoutSDNA)] //------------------- // Social DNA zomes From 566a78f33fa87a2de0c0df45b8434cb107a6dd8a Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 2 Aug 2023 14:56:33 +0200 Subject: [PATCH 494/722] Update scryer dependency to latest commit in our fork --- Cargo.lock | 51 +++++++++++++++++++++++++++++++--------- rust-executor/Cargo.toml | 4 ++-- 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cbd8d1ff4..bdadee862 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -188,6 +188,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "aho-corasick" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +dependencies = [ + "memchr", +] + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -952,7 +961,7 @@ checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ "lazy_static", "memchr", - "regex-automata", + "regex-automata 0.1.10", ] [[package]] @@ -3931,7 +3940,7 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" dependencies = [ - "aho-corasick", + "aho-corasick 0.7.20", "bstr", "fnv", "log", @@ -6517,7 +6526,7 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] @@ -6526,7 +6535,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] @@ -8823,13 +8832,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" dependencies = [ - "aho-corasick", + "aho-corasick 1.0.2", "memchr", - "regex-syntax", + "regex-automata 0.3.3", + "regex-syntax 0.7.4", ] [[package]] @@ -8838,7 +8848,18 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "regex-syntax", + "regex-syntax 0.6.28", +] + +[[package]] +name = "regex-automata" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +dependencies = [ + "aho-corasick 1.0.2", + "memchr", + "regex-syntax 0.7.4", ] [[package]] @@ -8847,6 +8868,12 @@ version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +[[package]] +name = "regex-syntax" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" + [[package]] name = "region" version = "3.0.0" @@ -9202,6 +9229,7 @@ dependencies = [ "juniper_warp", "lazy_static", "log", + "maplit", "multibase", "multihash", "once_cell", @@ -9452,7 +9480,7 @@ checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" [[package]] name = "scryer-prolog" version = "0.9.1" -source = "git+https://github.com/coasys/scryer-prolog?rev=644559b7f793429c487693489a7e398b91cc29a3#644559b7f793429c487693489a7e398b91cc29a3" +source = "git+https://github.com/coasys/scryer-prolog?rev=df048a4f42627d891abe4ada24b17b091dc9335a#df048a4f42627d891abe4ada24b17b091dc9335a" dependencies = [ "base64 0.12.3", "blake2 0.8.1", @@ -9480,6 +9508,7 @@ dependencies = [ "proc-macro2 1.0.56", "quote 1.0.26", "ref_thread_local", + "regex", "ring", "ripemd160", "roxmltree", @@ -10897,7 +10926,7 @@ dependencies = [ "once_cell", "onig", "plist", - "regex-syntax", + "regex-syntax 0.6.28", "serde", "serde_derive", "serde_json", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index c73b3f711..d90f40646 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -55,8 +55,8 @@ jsonwebtoken = "8.3.0" holochain = "0.1.3" -#scryer-prolog = { version = "0.9.1", path = "../../Coasys/code/scryer-prolog" } -scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "0b833bd2f3cf0e87d4240b3d6a3953d8050b90f5" } +#scryer-prolog = { version = "0.9.1", path = "../../scryer-prolog" } +scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "df048a4f42627d891abe4ada24b17b091dc9335a" } [dev-dependencies] maplit = "1.0.2" \ No newline at end of file From 4834449b15f5c4917541ade8c60268ea89aabe79 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 2 Aug 2023 14:56:58 +0200 Subject: [PATCH 495/722] Use consult_module_string instead of load --- rust-executor/src/prolog_service/engine.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/prolog_service/engine.rs b/rust-executor/src/prolog_service/engine.rs index d4c689c19..5d541a18b 100644 --- a/rust-executor/src/prolog_service/engine.rs +++ b/rust-executor/src/prolog_service/engine.rs @@ -59,7 +59,7 @@ impl PrologEngine { .replace("\r", "")) .collect::>() .join("\n"); - let _result = machine.load_module_string(module_name.as_str(), program); + let _result = machine.consult_module_string(module_name.as_str(), program); let _ = response.send(PrologServiceResponse::LoadModuleResult(Ok(()))); } }, From f2225d89d44051bac9e52712881e6c81c9c58868 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 2 Aug 2023 14:57:54 +0200 Subject: [PATCH 496/722] VS code launch config for debugging --- .vscode/launch.json | 188 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..d53087ad5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,188 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "lldb", + "request": "launch", + "name": "Debug ad4m executor for JS tests", + "cargo": { + "args": [ + "build", + "--bin=ad4m", + "--package=ad4m" + ], + "filter": { + "name": "ad4m", + "kind": "bin" + } + }, + "args": [ + "run", + "--app-data-path", "/Users/nicolasluck/Coasys/code/ad4m/tests/js/tst-tmp/agents/integration-agent", + "--gql-port", "15500", + "--hc-admin-port", "15501", + "--hc-app-port", "15502", + "--ipfs-swarm-port", "15503", + "--hc-use-bootstrap", "false", + "--hc-use-proxy", "false", + "--hc-use-local-proxy", "false", + "--hc-use-mdns", "true", + "--language-language-only", "false", + "--run-dapp-server", "false" + ], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'ad4m'", + "cargo": { + "args": [ + "build", + "--bin=ad4m", + "--package=ad4m" + ], + "filter": { + "name": "ad4m", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'ad4m'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=ad4m", + "--package=ad4m" + ], + "filter": { + "name": "ad4m", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'ad4m-client'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=ad4m-client" + ], + "filter": { + "name": "ad4m-client", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'rust_executor'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=rust-executor" + ], + "filter": { + "name": "rust_executor", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'rust_executor_bin'", + "cargo": { + "args": [ + "build", + "--bin=rust_executor_bin", + "--package=rust-executor" + ], + "filter": { + "name": "rust_executor_bin", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'rust_executor_bin'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=rust_executor_bin", + "--package=rust-executor" + ], + "filter": { + "name": "rust_executor_bin", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'ad4m-launcher'", + "cargo": { + "args": [ + "build", + "--bin=ad4m-launcher", + "--package=ad4m-launcher" + ], + "filter": { + "name": "ad4m-launcher", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'ad4m-launcher'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=ad4m-launcher", + "--package=ad4m-launcher" + ], + "filter": { + "name": "ad4m-launcher", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + } + ] +} \ No newline at end of file From b284e1db62d8065f9757740adec73cb45856c3d9 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Wed, 2 Aug 2023 18:56:53 +0530 Subject: [PATCH 497/722] Changelog updated --- CHANGELOG | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 569e2c7d7..292573450 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -14,6 +14,9 @@ This project _loosely_ adheres to [Semantic Versioning](https://semver.org/spec/ ### Removed ### Fixed +- Fixed resolveLanguage not working for properties [PR#402](https://github.com/coasys/ad4m/pull/402) +- Fixed destructor not working because it would not remove all intial value [PR#402](https://github.com/coasys/ad4m/pull/402) +- Handle not being able to parse expression URL if the language didn't exists [PR#402](https://github.com/coasys/ad4m/pull/402) ## [0.5.0] - 10/07/2023 From dc9172e693bd5b823c70fee08727574ae7df339c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 2 Aug 2023 14:48:31 +0100 Subject: [PATCH 498/722] make the holochain service run inside its own thread with its own runtime --- cli/src/main.rs | 2 +- rust-executor/src/holochain_service/mod.rs | 160 +++++++++++---------- 2 files changed, 83 insertions(+), 79 deletions(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index 0a5ca433a..d8e447ed3 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -182,7 +182,7 @@ async fn get_ad4m_client(args: &ClapApp) -> Result { Ok(ad4m_client) } -#[tokio::main] +#[tokio::main(flavor = "multi_thread")] async fn main() -> Result<()> { let args = ClapApp::parse(); diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 135f47748..e4e76cf31 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -64,98 +64,102 @@ impl HolochainService { let (response_sender, response_receiver) = oneshot::channel(); - tokio::spawn(async move { + std::thread::spawn(move || { let rt = tokio::runtime::Builder::new_multi_thread() .enable_all() .build() .expect("Failed to create Tokio runtime"); let _guard = rt.enter(); - let mut service = HolochainService::new(local_config).await.unwrap(); + rt.block_on(async move { + let mut service = HolochainService::new(local_config).await.unwrap(); - set_holochain_service(inteface).await; + set_holochain_service(inteface).await; - let conductor_clone = service.conductor.clone(); - // Spawn a new task to forward items from the stream to the receiver - tokio::spawn(async move { - let sig_broadcasters = conductor_clone.signal_broadcaster(); + let conductor_clone = service.conductor.clone(); + // Spawn a new task to forward items from the stream to the receiver + tokio::spawn(async move { + let sig_broadcasters = conductor_clone.signal_broadcaster(); - let mut streams = tokio_stream::StreamMap::new(); - for (i, rx) in sig_broadcasters - .subscribe_separately() - .into_iter() - .enumerate() - { - streams.insert(i, tokio_stream::wrappers::BroadcastStream::new(rx)); - } - let mut stream = - streams.map(|(_, signal)| signal.expect("Couldn't receive a signal")); - - response_sender - .send(HolochainServiceResponse::InitComplete(Ok(()))) - .unwrap(); - - loop { - while let Some(item) = stream.next().await { - let _ = stream_sender.send(item); + let mut streams = tokio_stream::StreamMap::new(); + for (i, rx) in sig_broadcasters + .subscribe_separately() + .into_iter() + .enumerate() + { + streams.insert(i, tokio_stream::wrappers::BroadcastStream::new(rx)); } - } - }); + let mut stream = + streams.map(|(_, signal)| signal.expect("Couldn't receive a signal")); - while let Some(message) = receiver.recv().await { - match message { - HolochainServiceRequest::InstallApp(payload, response) => { - let result = service.install_app(payload).await; - let _ = response.send(HolochainServiceResponse::InstallApp(result)); - } - HolochainServiceRequest::CallZomeFunction { - app_id, - cell_name, - zome_name, - fn_name, - payload, - response, - } => { - let result = service - .call_zome_function(app_id, cell_name, zome_name, fn_name, payload) - .await; - let _ = response.send(HolochainServiceResponse::CallZomeFunction(result)); - } - HolochainServiceRequest::RemoveApp(app_id, response_tx) => { - let result = service.remove_app(app_id).await; - let _ = response_tx.send(HolochainServiceResponse::RemoveApp(result)); - } - HolochainServiceRequest::AgentInfos(response_tx) => { - let result = service.agent_infos().await; - let _ = response_tx.send(HolochainServiceResponse::AgentInfos(result)); - } - HolochainServiceRequest::AddAgentInfos(agent_infos, response_tx) => { - let result = service.add_agent_infos(agent_infos).await; - let _ = response_tx.send(HolochainServiceResponse::AddAgentInfos(result)); - } - HolochainServiceRequest::Sign(data, response_tx) => { - let result = service.sign(data).await; - let _ = response_tx.send(HolochainServiceResponse::Sign(result)); - } - HolochainServiceRequest::Shutdown(response_tx) => { - let result = service.shutdown().await; - let _ = response_tx.send(HolochainServiceResponse::Shutdown(result)); - } - HolochainServiceRequest::GetAgentKey(response_tx) => { - let result = service.get_agent_key().await; - let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(result)); - } - HolochainServiceRequest::GetAppInfo(app_id, response_tx) => { - let result = service.get_app_info(app_id).await; - let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); + response_sender + .send(HolochainServiceResponse::InitComplete(Ok(()))) + .unwrap(); + + loop { + while let Some(item) = stream.next().await { + let _ = stream_sender.send(item); + } } - HolochainServiceRequest::GetNetworkMetrics(response_tx) => { - let result = service.get_network_metrics().await; - let _ = - response_tx.send(HolochainServiceResponse::GetNetworkMetrics(result)); + }); + + while let Some(message) = receiver.recv().await { + match message { + HolochainServiceRequest::InstallApp(payload, response) => { + let result = service.install_app(payload).await; + let _ = response.send(HolochainServiceResponse::InstallApp(result)); + } + HolochainServiceRequest::CallZomeFunction { + app_id, + cell_name, + zome_name, + fn_name, + payload, + response, + } => { + let result = service + .call_zome_function(app_id, cell_name, zome_name, fn_name, payload) + .await; + let _ = + response.send(HolochainServiceResponse::CallZomeFunction(result)); + } + HolochainServiceRequest::RemoveApp(app_id, response_tx) => { + let result = service.remove_app(app_id).await; + let _ = response_tx.send(HolochainServiceResponse::RemoveApp(result)); + } + HolochainServiceRequest::AgentInfos(response_tx) => { + let result = service.agent_infos().await; + let _ = response_tx.send(HolochainServiceResponse::AgentInfos(result)); + } + HolochainServiceRequest::AddAgentInfos(agent_infos, response_tx) => { + let result = service.add_agent_infos(agent_infos).await; + let _ = + response_tx.send(HolochainServiceResponse::AddAgentInfos(result)); + } + HolochainServiceRequest::Sign(data, response_tx) => { + let result = service.sign(data).await; + let _ = response_tx.send(HolochainServiceResponse::Sign(result)); + } + HolochainServiceRequest::Shutdown(response_tx) => { + let result = service.shutdown().await; + let _ = response_tx.send(HolochainServiceResponse::Shutdown(result)); + } + HolochainServiceRequest::GetAgentKey(response_tx) => { + let result = service.get_agent_key().await; + let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(result)); + } + HolochainServiceRequest::GetAppInfo(app_id, response_tx) => { + let result = service.get_app_info(app_id).await; + let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); + } + HolochainServiceRequest::GetNetworkMetrics(response_tx) => { + let result = service.get_network_metrics().await; + let _ = response_tx + .send(HolochainServiceResponse::GetNetworkMetrics(result)); + } } } - } + }); }); match response_receiver.await? { From b8e47fd062cc4802f5cf4df81c1c3669d7a4d964 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 2 Aug 2023 16:29:12 +0200 Subject: [PATCH 499/722] WIP: fix literal handling --- executor/src/core/LanguageController.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index bd92cd3c1..ac3cf9295 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -84,6 +84,10 @@ export default class LanguageController { this.#signatures = services.signatures this.#db = services.db this.#languages = new Map() + this.#languages.set("literal", { + name: "literal", + interactions() { return [] }, + } as Language) this.#languageConstructors = new Map() this.#linkObservers = [] this.#telepresenceSignalObservers = [] From 84c66306da20fc82de0465996e1563acce3f1db1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 2 Aug 2023 17:50:04 +0100 Subject: [PATCH 500/722] fix literal language tagging when getting an expression --- executor/src/core/graphQL-interface/GraphQL.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index f651d48a7..a4d37c8eb 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -98,14 +98,14 @@ export function createResolvers(core: Ad4mCore, config: OuterConfig) { let lang if(expression.ref.language.address === "literal") { - return { address: "literal", name: "literal" } - } - - try { - lang = await core.languageController.languageForExpression(expression.ref) as any - } catch(e) { - console.error("While trying to get language for expression", expression, ":", e) - lang = {} + lang = { address: "literal", name: "literal" } + } else { + try { + lang = await core.languageController.languageForExpression(expression.ref) as any + } catch(e) { + console.error("While trying to get language for expression", expression, ":", e) + lang = {} + } } lang.address = expression.ref.language.address From a9b6378dce4d597cd571ad9b6351d7d4d6b25e96 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 3 Aug 2023 16:25:33 +0200 Subject: [PATCH 501/722] Always respawn Prolog machines on every query --- executor/src/core/Perspective.ts | 7 +++++++ executor/src/core/PrologInstance.ts | 4 ++++ rust-executor/src/prolog_service/mod.rs | 8 ++++++++ .../src/prolog_service/prolog_service_extension.js | 3 +++ .../src/prolog_service/prolog_service_extension.rs | 7 +++++++ 5 files changed, 29 insertions(+) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index ea7514b99..24262ef3e 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -884,6 +884,10 @@ export default class Perspective { } async spawnPrologEngine(): Promise { + if(this.#prologEngine) { + await this.#prologEngine.remove() + } + let error const prolog = new PrologInstance(this) await prolog.start(); @@ -901,6 +905,8 @@ export default class Perspective { async prologQuery(query: string): Promise { await this.#prologMutex.runExclusive(async () => { + await this.spawnPrologEngine() + /* if(!this.#prologEngine) { await this.spawnPrologEngine() this.#prologNeedsRebuild = false @@ -911,6 +917,7 @@ export default class Perspective { const facts = await this.initEngineFacts() await this.#prologEngine!.consult(facts) } + */ }) return await this.#prologEngine!.query(query) diff --git a/executor/src/core/PrologInstance.ts b/executor/src/core/PrologInstance.ts index 9598ca6e7..d5dbf1995 100644 --- a/executor/src/core/PrologInstance.ts +++ b/executor/src/core/PrologInstance.ts @@ -61,4 +61,8 @@ export default class PrologInstance { // tmpobj.removeCallback() // return result } + + async remove() { + return await this.prologService.removeEngine(this.name) + } } \ No newline at end of file diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index 365a2af6c..d18bcb677 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -34,6 +34,14 @@ impl PrologService { Ok(()) } + pub async fn remove_engine(&mut self, engine_name: String) -> Result<(), Error> { + let mut engines = self.engines.write().await; + engines + .remove(&engine_name) + .ok_or_else(|| Error::msg("Engine not found"))?; + Ok(()) + } + pub async fn run_query( &self, engine_name: String, diff --git a/rust-executor/src/prolog_service/prolog_service_extension.js b/rust-executor/src/prolog_service/prolog_service_extension.js index a7be419ab..47d83412a 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.js +++ b/rust-executor/src/prolog_service/prolog_service_extension.js @@ -5,6 +5,9 @@ spawnEngine: async (engineName) => { return core.opAsync("spawn_engine", engineName); }, + removeEngine: async (engineName) => { + return core.opAsync("remove_engine", engineName); + }, runQuery: async (engineName, query) => { if(!query.endsWith(".")) query = query+"."; return JSON.parse(await core.opAsync("run_query", engineName, query)); diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index 215e81e4d..ee1ebafd4 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -9,6 +9,12 @@ async fn spawn_engine(engine_name: String) -> Result<(), AnyError> { service.spawn_engine(engine_name).await } +#[op] +async fn remove_engine(engine_name: String) -> Result<(), AnyError> { + let mut service = get_prolog_service().await; + service.remove_engine(engine_name).await +} + pub fn prolog_value_to_json_tring(value: Value) -> String { match value { @@ -108,6 +114,7 @@ pub fn build() -> Extension { .js(include_js_files!(holochain_service "prolog_service_extension.js",)) .ops(vec![ spawn_engine::decl(), + remove_engine::decl(), run_query::decl(), load_module_string::decl(), ]) From 7a782094bad8b8b069fdb700653448f44912646f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 3 Aug 2023 15:32:35 +0100 Subject: [PATCH 502/722] run our own runtime in prolog engine spawn & use proper async code --- rust-executor/src/prolog_service/engine.rs | 37 +++++++++++++--------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/rust-executor/src/prolog_service/engine.rs b/rust-executor/src/prolog_service/engine.rs index 5d541a18b..6cc690e58 100644 --- a/rust-executor/src/prolog_service/engine.rs +++ b/rust-executor/src/prolog_service/engine.rs @@ -38,34 +38,41 @@ impl PrologEngine { let (response_sender, response_receiver) = oneshot::channel(); std::thread::spawn(move || { - let mut machine = Machine::new_lib(); + let rt = tokio::runtime::Builder::new_multi_thread() + .build() + .expect("Failed to create Tokio runtime"); + let _guard = rt.enter(); - response_sender - .send(PrologServiceResponse::InitComplete(Ok(()))) - .unwrap(); + rt.block_on(async move { + let mut machine = Machine::new_lib(); - loop { - match receiver.try_recv() { - Ok(message) => match message { + response_sender + .send(PrologServiceResponse::InitComplete(Ok(()))) + .unwrap(); + + while let Some(message) = receiver.recv().await { + match message { PrologServiceRequest::RunQuery(query, response) => { let result = machine.run_query(query); let _ = response.send(PrologServiceResponse::QueryResult(result)); } - PrologServiceRequest::LoadModuleString(module_name, program_lines, response) => { + PrologServiceRequest::LoadModuleString( + module_name, + program_lines, + response, + ) => { let program = program_lines .iter() - .map(|l| l - .replace("\n", "") - .replace("\r", "")) + .map(|l| l.replace("\n", "").replace("\r", "")) .collect::>() .join("\n"); - let _result = machine.consult_module_string(module_name.as_str(), program); + let _result = + machine.consult_module_string(module_name.as_str(), program); let _ = response.send(PrologServiceResponse::LoadModuleResult(Ok(()))); } - }, - Err(_err) => std::thread::sleep(std::time::Duration::from_millis(5)), + } } - } + }) }); match response_receiver.await? { From 6f896d86bd988b85fd4b74e8cd0e370a3d58f79c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 3 Aug 2023 17:16:08 +0200 Subject: [PATCH 503/722] Remove debug out --- rust-executor/src/prolog_service/prolog_service_extension.js | 1 - 1 file changed, 1 deletion(-) diff --git a/rust-executor/src/prolog_service/prolog_service_extension.js b/rust-executor/src/prolog_service/prolog_service_extension.js index a7be419ab..53039ae5e 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.js +++ b/rust-executor/src/prolog_service/prolog_service_extension.js @@ -10,7 +10,6 @@ return JSON.parse(await core.opAsync("run_query", engineName, query)); }, loadModuleString: async (engineName, module_name, program_lines) => { - console.log("JS PROGRAM: "+program_lines) return core.opAsync("load_module_string", engineName, module_name, program_lines); } }; From 8b831838f9c5b9c12ced9511eeb9ec829a4a81fa Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 3 Aug 2023 17:16:37 +0200 Subject: [PATCH 504/722] Add missing declaration for destructor/2 predicate --- executor/src/core/Perspective.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index ea7514b99..cf85b85dc 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -849,6 +849,7 @@ export default class Perspective { lines.push(":- discontiguous(subject_class/2).") lines.push(":- discontiguous(constructor/2).") + lines.push(":- discontiguous(destructor/2).") lines.push(":- discontiguous(instance/2).") lines.push(":- discontiguous(property/2).") From 888d60cfe8918f34f2b9d4ed9fb7e047fbcbe396 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 3 Aug 2023 17:16:58 +0200 Subject: [PATCH 505/722] Only use parsable URIs in tests --- tests/js/tests/prolog-and-literals.test.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/js/tests/prolog-and-literals.test.ts b/tests/js/tests/prolog-and-literals.test.ts index b7256ade3..e593eaea2 100644 --- a/tests/js/tests/prolog-and-literals.test.ts +++ b/tests/js/tests/prolog-and-literals.test.ts @@ -635,7 +635,7 @@ describe("Prolog + Literals", () => { recipe.name = "recipe://collection_test"; - recipe.comments = ['test', 'test1'] + recipe.comments = ['recipe://test', 'recipe://test1'] await recipe.save() @@ -651,7 +651,7 @@ describe("Prolog + Literals", () => { const recipe = new Recipe(perspective!, root) recipe.name = "recipe://locallink"; - recipe.local = 'test' + recipe.local = 'recipe://test' await recipe.save(); @@ -660,7 +660,7 @@ describe("Prolog + Literals", () => { await recipe2.get(); expect(recipe2.name).to.equal("recipe://locallink") - expect(recipe2.local).to.equal("test") + expect(recipe2.local).to.equal("recipe://test") // @ts-ignore const links = await perspective?.get({ @@ -669,7 +669,7 @@ describe("Prolog + Literals", () => { }) expect(links!.length).to.equal(1) - expect(links![0].status).to.equal('local') + expect(links![0].status).to.equal('recipe://local') }) it("delete()", async () => { @@ -692,7 +692,7 @@ describe("Prolog + Literals", () => { recipe.entries = [recipeEntries] // @ts-ignore - recipe.comments = ['test', 'test1'] + recipe.comments = ['recipe://test', 'recipe://test1'] recipe.name = "recipe://collection_test"; await recipe.save() From 211038edad8acb2747b7feac38357baaac66a259 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 4 Aug 2023 09:52:20 +0530 Subject: [PATCH 506/722] Removed external bin from tauri config --- ui/src-tauri/tauri.conf.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index 5b074f7bf..e65ee00e2 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -32,9 +32,6 @@ "icons/icon.ico" ], "resources": [], - "externalBin": [ - "bins/ad4m-host" - ], "copyright": "", "category": "DeveloperTool", "shortDescription": "", From 6278a64fa2ccd3f6cef8837b91439f923b408370 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 4 Aug 2023 09:53:12 +0530 Subject: [PATCH 507/722] Updated turbo config to build packages before packaging launcher --- turbo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/turbo.json b/turbo.json index c6cf55644..3f0636eee 100644 --- a/turbo.json +++ b/turbo.json @@ -18,7 +18,7 @@ }, "ad4m-launcher#package-ad4m": { - "dependsOn": [], + "dependsOn": ["build-libs"], "outputs": ["dist/**"] }, From d476e8593c131398f486e8b1a8f4127a9b42902a Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 4 Aug 2023 09:53:45 +0530 Subject: [PATCH 508/722] Updated rust-executor config --- Cargo.lock | 2 +- rust-executor/Cargo.toml | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aad52dafa..13ca01ea5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8815,7 +8815,7 @@ dependencies = [ [[package]] name = "rust-executor" -version = "0.1.0" +version = "0.5.0" dependencies = [ "argon2", "base64 0.21.0", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index ba5d7be07..bd7a6b541 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -1,7 +1,15 @@ [package] name = "rust-executor" -version = "0.1.0" +version = "0.5.0" edition = "2021" +authors = ["Nicolas Luck "] +description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" +keywords = ["ad4m", "perspect3vism", "cli"] +license = "CAL-1.0" +homepage = "https://ad4m.dev" +repository = "https://github.com/perspect3vism/ad4m" +documentation = "https://docs.ad4m.dev" +readme = "README.md" [lib] name = "rust_executor" From 136f4a34425164b0a5b90955c47ce76350e2b8e6 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 4 Aug 2023 09:56:45 +0530 Subject: [PATCH 509/722] Updated staging ci --- .github/workflows/publish_staging.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index f26265f4f..7dd30ef97 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -43,7 +43,7 @@ jobs: fail-fast: false matrix: platform: [GH-hosted-ubuntu, macos-latest, windows-latest] - node-version: [16.x] + node-version: [18.17.0] needs: - create-release @@ -60,6 +60,10 @@ jobs: with: override: true toolchain: 1.68.2 + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) @@ -85,9 +89,16 @@ jobs: - name: Yarn Install run: yarn install - - name: Build AD4M-CLI & build Launcher binary (macos-latest) + - name: Build AD4M-CLI & build Launcher binary (macos/linux-latest) + if: matrix.platform != 'windows-latest' run: yarn run package-ad4m + - name: Build AD4M-CLI & build Launcher binary (windows-latest) + if: matrix.platform == 'windows-latest' + run: | + choco install curl cygwin gnuwin32-m4 libgcc make mingw + yarn run package-ad4m + - name: Upload Release Deb Asset id: upload-release-deb-asset if: matrix.platform == 'GH-hosted-ubuntu' @@ -181,6 +192,10 @@ jobs: node-version: 16.x - name: Install deps run: yarn install + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 - name: Build modules run: yarn run build-libs - name: Publish core From 9968bcbf6bc08287091458dc42578e67cdcf19c9 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 4 Aug 2023 09:56:56 +0530 Subject: [PATCH 510/722] Updated main ci --- .github/workflows/publish.yml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f9e11c3d0..a6f6c7b0e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -41,7 +41,7 @@ jobs: fail-fast: false matrix: platform: [GH-hosted-ubuntu, macos-latest, windows-latest] - node-version: [16.x] + node-version: [18.17.0] needs: - create-release @@ -58,6 +58,10 @@ jobs: with: override: true toolchain: 1.68.2 + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) @@ -83,8 +87,15 @@ jobs: - name: Yarn Install run: yarn install - - name: Build Launcher binary - run: yarn run package-macos + - name: Build AD4M-CLI & build Launcher binary (macos/linux-latest) + if: matrix.platform != 'windows-latest' + run: yarn run package-ad4m + + - name: Build AD4M-CLI & build Launcher binary (windows-latest) + if: matrix.platform == 'windows-latest' + run: | + choco install curl cygwin gnuwin32-m4 libgcc make mingw + yarn run package-ad4m - name: Upload Release Deb Asset id: upload-release-deb-asset @@ -179,6 +190,10 @@ jobs: node-version: 16.x - name: Install deps run: yarn install + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 - name: Build modules run: yarn run build-libs - name: Publish core From 7d089b5a6fbf114f535c0f1f7f053d45df496fa8 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 4 Aug 2023 19:13:58 +0530 Subject: [PATCH 511/722] override libffi to solve dependecy issue --- Cargo.toml | 1 + rust-client/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index e9ffe936d..cf77f58f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,3 +10,4 @@ members = [ [patch.crates-io] sodiumoxide = { git = "https://github.com/fayeed/sodiumoxide" } +libffi = { git = "https://github.com/coasys/libffi-rs.git", branch = "windows-space" } diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index 1a628be07..d58bfd144 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -16,7 +16,7 @@ anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } graphql_client = "0.12.0" serde = "1.0.147" -reqwest = { version = "0.11.12", features = ["blocking", "json"] } +reqwest = { version = "0.11.18", features = ["blocking", "json"] } futures = "0.3" tokio = { version = "1", features = ["full"] } rustyline = "10" From d3cd88eb063813559d61fffe2a1ddfe0b9dd6695 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 4 Aug 2023 15:47:45 +0200 Subject: [PATCH 512/722] Update scryer rev --- Cargo.lock | 285 ++++++++++++++++++++++++++++++--------- rust-executor/Cargo.toml | 2 +- 2 files changed, 226 insertions(+), 61 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bdadee862..38ec8a095 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -347,6 +347,20 @@ dependencies = [ "tokio", ] +[[package]] +name = "async-compression" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b74f44609f0f91493e3082d3734d98497e094777144380ea4db9f9905dd5b6" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + [[package]] name = "async-executor" version = "1.5.1" @@ -607,12 +621,6 @@ dependencies = [ "shrinkwraprs", ] -[[package]] -name = "az" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" - [[package]] name = "backtrace" version = "0.3.66" @@ -2150,6 +2158,73 @@ dependencies = [ "parking_lot_core 0.9.4", ] +[[package]] +name = "dashu" +version = "0.3.1" +source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-macros", + "dashu-ratio", +] + +[[package]] +name = "dashu-base" +version = "0.3.1" +source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" + +[[package]] +name = "dashu-float" +version = "0.3.2" +source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +dependencies = [ + "dashu-base", + "dashu-int", + "num-order", + "num-traits", + "static_assertions", +] + +[[package]] +name = "dashu-int" +version = "0.3.1" +source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +dependencies = [ + "cfg-if 1.0.0", + "dashu-base", + "num-modular 0.6.0", + "num-order", + "num-traits", + "static_assertions", +] + +[[package]] +name = "dashu-macros" +version = "0.3.1" +source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-ratio", + "proc-macro2 1.0.56", + "quote 1.0.26", +] + +[[package]] +name = "dashu-ratio" +version = "0.3.2" +source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "num-order", + "num-traits", +] + [[package]] name = "data-encoding" version = "2.3.3" @@ -2370,7 +2445,7 @@ dependencies = [ "libc", "log", "mio 0.8.5", - "rustls", + "rustls 0.20.8", "rustls-pemfile 1.0.2", "serde", "socket2 0.4.9", @@ -2402,7 +2477,7 @@ version = "0.92.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9c1eb9a4b3ebafb4aa96ea719adad52c620a465204528ccc7000951526b6e9e" dependencies = [ - "async-compression", + "async-compression 0.3.15", "base64 0.13.1", "brotli", "bytes", @@ -2591,7 +2666,7 @@ checksum = "934d24d9b79e9fdd69cbb398a2d2353c7e8086943fca03b44e372024afcfe516" dependencies = [ "deno_core", "once_cell", - "rustls", + "rustls 0.20.8", "rustls-native-certs", "rustls-pemfile 1.0.2", "serde", @@ -2648,7 +2723,7 @@ dependencies = [ "hyper", "serde", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "tokio-tungstenite 0.16.1", ] @@ -2722,6 +2797,17 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "derive_deref" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcdbcee2d9941369faba772587a565f4f534e42cb8d17e5295871de730163b2b" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.103", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -3959,16 +4045,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "gmp-mpfr-sys" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13eabc29d16e4a621b495e3919c71ebb7caaed24380955671e7d417370fea95d" -dependencies = [ - "libc", - "windows-sys 0.42.0", -] - [[package]] name = "gobject-sys" version = "0.15.10" @@ -5057,6 +5133,29 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-body" +version = "1.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951dfc2e32ac02d67c90c0d65bd27009a635dc9b381a2cc7d284ab01e3a0150d" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08ef12f041acdd397010e5fb6433270c147d3b8b2d0a840cd7fff8e531dca5c8" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body 1.0.0-rc.2", + "pin-project-lite", +] + [[package]] name = "http-range" version = "0.1.5" @@ -5109,7 +5208,7 @@ dependencies = [ "futures-util", "h2", "http", - "http-body", + "http-body 0.4.5", "httparse", "httpdate", "itoa 1.0.4", @@ -5123,15 +5222,16 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.2" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" dependencies = [ + "futures-util", "http", "hyper", - "rustls", + "rustls 0.21.6", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] @@ -5798,7 +5898,7 @@ dependencies = [ "observability", "parking_lot 0.11.2", "rmp-serde 0.15.5", - "rustls", + "rustls 0.20.8", "serde", "serde_bytes", "structopt", @@ -5834,7 +5934,7 @@ dependencies = [ "once_cell", "quinn", "rcgen 0.9.3", - "rustls", + "rustls 0.20.8", "serde", "tokio", "webpki 0.22.0", @@ -5862,7 +5962,7 @@ dependencies = [ "parking_lot 0.11.2", "paste", "rmp-serde 0.15.5", - "rustls", + "rustls 0.20.8", "serde", "serde_bytes", "serde_json", @@ -6111,8 +6211,7 @@ dependencies = [ [[package]] name = "libffi" version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" +source = "git+https://github.com/coasys/libffi-rs.git?branch=windows-space#f6e9e50efde0aa4e940dd6f709a59bb426875362" dependencies = [ "libc", "libffi-sys", @@ -6120,9 +6219,8 @@ dependencies = [ [[package]] name = "libffi-sys" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc65067b78c0fc069771e8b9a9e02df71e08858bec92c1f101377c67b9dca7c7" +version = "2.3.0" +source = "git+https://github.com/coasys/libffi-rs.git?branch=windows-space#f6e9e50efde0aa4e940dd6f709a59bb426875362" dependencies = [ "cc", ] @@ -7211,6 +7309,31 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.6.0" +source = "git+https://github.com/coasys/num-modular.git#87d6dc30600207445e07c2cc84e0a47ff58f0aca" + +[[package]] +name = "num-order" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e81e321057a0370997b13e6638bba6bd7f6f426e1f8e9a2562490a28eb23e1bc" +dependencies = [ + "num-modular 0.5.1", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.1" @@ -8391,7 +8514,7 @@ dependencies = [ "fxhash", "quinn-proto", "quinn-udp", - "rustls", + "rustls 0.20.8", "thiserror", "tokio", "tracing", @@ -8408,7 +8531,7 @@ dependencies = [ "fxhash", "rand 0.8.5", "ring", - "rustls", + "rustls 0.20.8", "rustls-native-certs", "rustls-pemfile 0.2.1", "slab", @@ -8910,19 +9033,19 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.13" +version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "async-compression", - "base64 0.13.1", + "async-compression 0.4.1", + "base64 0.21.0", "bytes", "encoding_rs", "futures-core", "futures-util", "h2", "http", - "http-body", + "http-body 0.4.5", "hyper", "hyper-rustls", "hyper-tls", @@ -8934,20 +9057,21 @@ dependencies = [ "once_cell", "percent-encoding 2.2.0", "pin-project-lite", - "rustls", + "rustls 0.21.6", "rustls-pemfile 1.0.2", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.24.1", "tokio-socks", "tokio-util", "tower-service", "url 2.3.1", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", "webpki-roots", "winreg", @@ -9179,17 +9303,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "rug" -version = "1.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555e8b44763d034526db899c88cd56ccc4486cd38b444c8aa0e79d4e70ae5a34" -dependencies = [ - "az", - "gmp-mpfr-sys", - "libc", -] - [[package]] name = "rusqlite" version = "0.28.0" @@ -9327,6 +9440,18 @@ dependencies = [ "webpki 0.22.0", ] +[[package]] +name = "rustls" +version = "0.21.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + [[package]] name = "rustls-native-certs" version = "0.6.2" @@ -9357,6 +9482,16 @@ dependencies = [ "base64 0.21.0", ] +[[package]] +name = "rustls-webpki" +version = "0.101.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513722fd73ad80a71f72b61009ea1b584bcfa1483ca93949c8f290298837fa59" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.9" @@ -9480,39 +9615,46 @@ checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" [[package]] name = "scryer-prolog" version = "0.9.1" -source = "git+https://github.com/coasys/scryer-prolog?rev=df048a4f42627d891abe4ada24b17b091dc9335a#df048a4f42627d891abe4ada24b17b091dc9335a" +source = "git+https://github.com/coasys/scryer-prolog?rev=c5e63015a474f8533db4deb69752956eec9da4b9#c5e63015a474f8533db4deb69752956eec9da4b9" dependencies = [ "base64 0.12.3", "blake2 0.8.1", + "bytes", "chrono", "cpu-time", "crossterm 0.20.0", "crrl", "ctrlc", + "dashu", + "derive_deref", "dirs-next", "divrem", "futures", "fxhash", "git-version", "hostname", + "http-body-util", "hyper", "hyper-tls", "indexmap", "lazy_static", "lexical 5.2.2", "libc", + "libffi", + "libloading", "modular-bitfield", "native-tls", "ordered-float", "phf 0.9.0", "proc-macro2 1.0.56", "quote 1.0.26", + "rand 0.8.5", "ref_thread_local", "regex", + "reqwest", "ring", "ripemd160", "roxmltree", - "rug", "rustyline 9.1.2", "ryu", "select", @@ -11581,11 +11723,21 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls", + "rustls 0.20.8", "tokio", "webpki 0.22.0", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.6", + "tokio", +] + [[package]] name = "tokio-socks" version = "0.5.1" @@ -11633,9 +11785,9 @@ checksum = "e80b39df6afcc12cdf752398ade96a6b9e99c903dfdc36e53ad10b9c366bca72" dependencies = [ "futures-util", "log", - "rustls", + "rustls 0.20.8", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "tungstenite 0.16.0", "webpki 0.22.0", "webpki-roots", @@ -11925,7 +12077,7 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "rustls", + "rustls 0.20.8", "sha-1 0.9.8", "thiserror", "url 2.3.1", @@ -12158,7 +12310,7 @@ dependencies = [ "base64 0.13.1", "log", "once_cell", - "rustls", + "rustls 0.20.8", "url 2.3.1", "webpki 0.22.0", "webpki-roots", @@ -12509,6 +12661,19 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-streams" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wasmer" version = "2.3.0" diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index d90f40646..1701e5be9 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -56,7 +56,7 @@ jsonwebtoken = "8.3.0" holochain = "0.1.3" #scryer-prolog = { version = "0.9.1", path = "../../scryer-prolog" } -scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "df048a4f42627d891abe4ada24b17b091dc9335a" } +scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "c5e63015a474f8533db4deb69752956eec9da4b9" } [dev-dependencies] maplit = "1.0.2" \ No newline at end of file From 6a2e3df7a01916928831cc9fe7b5f735578bccbb Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Tue, 8 Aug 2023 11:46:01 +0530 Subject: [PATCH 513/722] Updated deps --- cli/Cargo.toml | 4 ++-- rust-client/Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cli/Cargo.toml b/cli/Cargo.toml index e1cb86831..bdf0448a9 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -17,7 +17,7 @@ rust-executor = { path = "../rust-executor" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" -tokio = { version = "1", features = ["full"] } +tokio = { version = "1.25.0", features = ["full"] } rustyline = "10" dirs = "4" chrono = { version = "0.4", features = ["serde"] } @@ -27,5 +27,5 @@ unicode-width = "0.1" rand = "0.8" regex = "1" serde = { version = "1.0", features = ["derive"] } -colour = "0.6.0" +colour = "0.7.0" syntect = "5.0" diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index d58bfd144..a74c8e144 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -16,9 +16,9 @@ anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } graphql_client = "0.12.0" serde = "1.0.147" -reqwest = { version = "0.11.18", features = ["blocking", "json"] } +reqwest = { version = "0.11.18", features = ["blocking", "json", "native-tls"] } futures = "0.3" -tokio = { version = "1", features = ["full"] } +tokio = { version = "1.25.0", features = ["full"] } rustyline = "10" dirs = "4" chrono = { version = "0.4", features = ["serde"] } From 5c90460745f2ec97f2b7bb21fe2b3bceddec954e Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Tue, 8 Aug 2023 11:47:36 +0530 Subject: [PATCH 514/722] Update deno to latest --- rust-executor/Cargo.toml | 12 +++--- .../holochain_service_extension.rs | 39 ++++++++++--------- rust-executor/src/init.rs | 2 +- rust-executor/src/js_core/futures.rs | 2 +- rust-executor/src/js_core/jwt_extension.rs | 18 +++++---- rust-executor/src/js_core/mod.rs | 4 +- rust-executor/src/js_core/pubsub_extension.rs | 17 +++++--- .../src/js_core/string_module_loader.rs | 18 +++------ rust-executor/src/js_core/utils_extension.rs | 30 +++++++------- rust-executor/src/js_core/wallet_extension.rs | 37 ++++++++++-------- rust-executor/src/prolog_service/engine.rs | 2 +- rust-executor/src/prolog_service/mod.rs | 3 +- .../prolog_service_extension.rs | 27 +++++++------ ui/src-tauri/Cargo.toml | 4 +- ui/src-tauri/src/util.rs | 2 - 15 files changed, 115 insertions(+), 102 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index d75580631..e9e198aec 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -22,8 +22,8 @@ path = "src/main.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -deno_core = "0.179.0" -deno_runtime = "0.105.0" +deno_core = "0.199.0" +deno_runtime = "0.122.0" tokio = { version = "1.25.0", features = ["full"] } url = "2.3.1" futures = "0.3.28" @@ -34,7 +34,7 @@ chrono = { version = "0.4.24", features = ["serde"] } env_logger = "0.10.0" serde_json = "1.0.95" uuid = "1.3.0" -log = "0.4.17" +log = "0.4.19" serde = "1.0.159" secp256k1 = { version = "0.27.0", features = ["rand", "serde"] } crypto_box = "0.8.2" @@ -61,10 +61,10 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = "0.1.3" +holochain = { version = "0.1.3", features = ["test_utils"] } -#scryer-prolog = { version = "0.9.1", path = "../../scryer-prolog" } -scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "c5e63015a474f8533db4deb69752956eec9da4b9" } +scryer-prolog = { version = "0.9.1", path = "../../scryer-prolog" } +# scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "cc0487293348ad8dddf2da23c2e001c5b8a122d4" } [dev-dependencies] maplit = "1.0.2" diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 14bc406f6..092dd285c 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -1,4 +1,6 @@ -use deno_core::{error::AnyError, include_js_files, op, Extension}; +use std::borrow::Cow; + +use deno_core::{error::AnyError, include_js_files, op, Extension, Op}; use holochain::{ conductor::api::AppInfo, prelude::{ @@ -95,21 +97,22 @@ async fn get_agent_key() -> Result, AnyError> { //Implement signal callbacks from dna/holochain to js pub fn build() -> Extension { - Extension::builder("holochain_service") - .js(include_js_files!(holochain_service "holochain_service_extension.js",)) - .ops(vec![ - start_holochain_conductor::decl(), - log_dht_status::decl(), - install_app::decl(), - get_app_info::decl(), - call_zome_function::decl(), - agent_infos::decl(), - add_agent_infos::decl(), - remove_app::decl(), - sign_string::decl(), - shutdown::decl(), - get_agent_key::decl(), - ]) - .force_op_registration() - .build() + Extension { + name: "holochain_service", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/holochain_service/holochain_service_extension.js",)), + ops: Cow::Borrowed(&[ + start_holochain_conductor::DECL, + log_dht_status::DECL, + install_app::DECL, + get_app_info::DECL, + call_zome_function::DECL, + agent_infos::DECL, + add_agent_infos::DECL, + remove_app::DECL, + sign_string::DECL, + shutdown::DECL, + get_agent_key::DECL, + ]), + ..Default::default() + } } diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 50af02b79..21f10a41b 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -72,7 +72,7 @@ pub fn init( let hc_data = &HC_BIN; let hc_target = binary_path.join(hc); info!("write hc target"); - fs::write(&hc_target, hc_data.as_ref())?; + fs::write::<&PathBuf, &[u8]>(&hc_target, hc_data.as_ref())?; set_permissions(hc_target)?; diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs index 67e686c3b..b82986e71 100644 --- a/rust-executor/src/js_core/futures.rs +++ b/rust-executor/src/js_core/futures.rs @@ -41,7 +41,7 @@ impl Future for GlobalVariableFuture { fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll { let mut worker = self.worker.lock().unwrap(); - if let Ok(global_value) = worker.execute_script("global_var_future", self.name.clone()) { + if let Ok(global_value) = worker.execute_script("global_var_future", self.name.clone().into()) { let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); let context = v8::Context::new(scope); let scope = &mut v8::ContextScope::new(scope, context); diff --git a/rust-executor/src/js_core/jwt_extension.rs b/rust-executor/src/js_core/jwt_extension.rs index 4c96499b9..b64ee6bc2 100644 --- a/rust-executor/src/js_core/jwt_extension.rs +++ b/rust-executor/src/js_core/jwt_extension.rs @@ -1,6 +1,6 @@ -use std::time::{SystemTime, UNIX_EPOCH}; +use std::{time::{SystemTime, UNIX_EPOCH}, borrow::Cow}; -use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension}; +use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension, Op}; use jsonwebtoken::{encode, Algorithm, DecodingKey, EncodingKey, Header}; use serde::{Deserialize, Serialize}; @@ -107,9 +107,13 @@ async fn verify_jwt(token: String) -> Result { } pub fn build() -> Extension { - Extension::builder("jwt") - .js(include_js_files!(jwt "jwt_extension.js",)) - .ops(vec![generate_jwt::decl(), verify_jwt::decl()]) - .force_op_registration() - .build() + Extension { + name: "jwt", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/js_core/jwt_extension.js",)), + ops: Cow::Borrowed(&[ + generate_jwt::DECL, + verify_jwt::DECL + ]), + ..Default::default() + } } diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 0c3716f03..c7975d60c 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -200,7 +200,7 @@ impl JsCore { .lock() .expect("init_core(): couldn't lock worker"); let _init_core = - worker.execute_script("js_core", format!("initCore({})", config.get_json()))?; + worker.execute_script("js_core", format!("initCore({})", config.get_json()).into())?; Ok(GlobalVariableFuture::new( self.worker.clone(), "core".to_string(), @@ -221,7 +221,7 @@ impl JsCore { "#, script ); - let _execute_async = worker.execute_script("js_core", wrapped_script)?; + let _execute_async = worker.execute_script("js_core", wrapped_script.into())?; Ok(GlobalVariableFuture::new( self.worker.clone(), "asyncResult".to_string(), diff --git a/rust-executor/src/js_core/pubsub_extension.rs b/rust-executor/src/js_core/pubsub_extension.rs index 090caf7d5..28feb5bb4 100644 --- a/rust-executor/src/js_core/pubsub_extension.rs +++ b/rust-executor/src/js_core/pubsub_extension.rs @@ -1,4 +1,6 @@ -use deno_core::{error::AnyError, include_js_files, op, Extension}; +use std::borrow::Cow; + +use deno_core::{error::AnyError, include_js_files, op, Extension, Op}; use crate::pubsub::get_global_pubsub; @@ -10,9 +12,12 @@ async fn publish(topic: String, data: String) -> Result<(), AnyError> { } pub fn build() -> Extension { - Extension::builder("pubsub") - .js(include_js_files!(pub_sub "pubsub_extension.js",)) - .ops(vec![publish::decl()]) - .force_op_registration() - .build() + Extension { + name: "pubsub", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/js_core/pubsub_extension.js",)), + ops: Cow::Borrowed(&[ + publish::DECL + ]), + ..Default::default() + } } diff --git a/rust-executor/src/js_core/string_module_loader.rs b/rust-executor/src/js_core/string_module_loader.rs index d7e7df2f9..0bbb8a6f0 100644 --- a/rust-executor/src/js_core/string_module_loader.rs +++ b/rust-executor/src/js_core/string_module_loader.rs @@ -8,6 +8,8 @@ use deno_core::ModuleType; use deno_core::ResolutionKind; use deno_runtime::deno_core::error::AnyError; use tracing::info; +use log::info; +use url::Url; use std::collections::HashMap; use std::pin::Pin; @@ -41,7 +43,7 @@ impl ModuleLoader for StringModuleLoader { fn load( &self, module_specifier: &ModuleSpecifier, - _maybe_referrer: Option, + _maybe_referrer: std::option::Option<&Url>, _is_dyn_import: bool, ) -> Pin> { let path = module_specifier.to_file_path().map_err(|_| { @@ -66,12 +68,7 @@ impl ModuleLoader for StringModuleLoader { std::fs::read_to_string(path).expect("Could not read file path to string"); let module_specifier = module_specifier.clone(); let fut = async move { - Ok(ModuleSource { - code: code.into(), - module_type: module_type, - module_url_specified: module_specifier.to_string(), - module_url_found: module_specifier.to_string(), - }) + Ok(ModuleSource::new(module_type, code.into(), &module_specifier)) }; Box::pin(fut) } @@ -81,12 +78,7 @@ impl ModuleLoader for StringModuleLoader { let module_specifier = module_specifier.clone(); let fut = async move { match module_code { - Some(code) => Ok(ModuleSource { - code: code.into(), - module_type: deno_core::ModuleType::JavaScript, - module_url_specified: module_specifier.clone().to_string(), - module_url_found: module_specifier.clone().to_string(), - }), + Some(code) => Ok(ModuleSource::new(deno_core::ModuleType::JavaScript, code.into(), &module_specifier)), None => Err(anyhow::anyhow!("Module not found: {}", module_specifier)), } }; diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index 880e96b25..1564d5e00 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -1,5 +1,8 @@ +use std::borrow::Cow; + use cid::Cid; -use deno_core::{error::AnyError, include_js_files, op, Extension}; +use deno_core::{error::AnyError, include_js_files, op, Extension, Op}; +use log::info; use multibase::Base; use multihash::{Code, MultihashDigest}; use tracing::{error, info, debug, warn}; @@ -63,16 +66,17 @@ async fn load_module(path: String) -> Result { } pub fn build() -> Extension { - Extension::builder("utils") - .js(include_js_files!(utils "utils_extension.js",)) - .ops(vec![ - hash::decl(), - load_module::decl(), - console_log::decl(), - console_debug::decl(), - console_error::decl(), - console_warn::decl(), - ]) - .force_op_registration() - .build() + Extension { + name: "utils", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/js_core/utils_extension.js",)), + ops: Cow::Borrowed(&[ + hash::DECL, + load_module::DECL, + console_log::DECL, + console_debug::DECL, + console_error::DECL, + console_warn::DECL, + ]), + ..Default::default() + } } diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index 11f408fc6..ef1d23792 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -1,5 +1,7 @@ +use std::borrow::Cow; + use base64::{engine::general_purpose as base64engine, Engine as _}; -use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension}; +use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension, Op}; use did_key::{CoreSign, PatchedKeyPair}; use tracing::error; use serde::{Deserialize, Serialize}; @@ -121,20 +123,21 @@ fn wallet_verify(did: String, message: &[u8], signature: &[u8]) -> bool { } pub fn build() -> Extension { - Extension::builder("wallet") - .js(include_js_files!(wallet "wallet_extension.js",)) - .ops(vec![ - wallet_get_main_key::decl(), - wallet_get_main_key_document::decl(), - wallet_create_main_key::decl(), - wallet_is_unlocked::decl(), - wallet_unlock::decl(), - wallet_lock::decl(), - wallet_export::decl(), - wallet_load::decl(), - wallet_sign::decl(), - wallet_verify::decl(), - ]) - .force_op_registration() - .build() + Extension { + name: "wallet", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/js_core/wallet_extension.js",)), + ops: Cow::Borrowed(&[ + wallet_get_main_key::DECL, + wallet_get_main_key_document::DECL, + wallet_create_main_key::DECL, + wallet_is_unlocked::DECL, + wallet_unlock::DECL, + wallet_lock::DECL, + wallet_export::DECL, + wallet_load::DECL, + wallet_sign::DECL, + wallet_verify::DECL, + ]), + ..Default::default() + } } diff --git a/rust-executor/src/prolog_service/engine.rs b/rust-executor/src/prolog_service/engine.rs index 6cc690e58..859b54a85 100644 --- a/rust-executor/src/prolog_service/engine.rs +++ b/rust-executor/src/prolog_service/engine.rs @@ -138,7 +138,7 @@ mod prolog_test { "#, ); - let load_facts = engine.load_module_string("facts".to_string(), facts).await; + let load_facts = engine.load_module_string("facts".to_string(), vec![facts]).await; assert!(load_facts.is_ok()); println!("Facts loaded"); diff --git a/rust-executor/src/prolog_service/mod.rs b/rust-executor/src/prolog_service/mod.rs index d18bcb677..4d3560280 100644 --- a/rust-executor/src/prolog_service/mod.rs +++ b/rust-executor/src/prolog_service/mod.rs @@ -85,6 +85,7 @@ pub async fn get_prolog_service() -> PrologService { #[cfg(test)] mod prolog_test { + use maplit::btreemap; use scryer_prolog::machine::parsed_results::{QueryResolution, QueryMatch, Value}; use super::*; @@ -106,7 +107,7 @@ mod prolog_test { ); let load_facts = service - .load_module_string(engine_name.clone(), "facts".to_string(), facts) + .load_module_string(engine_name.clone(), "facts".to_string(), vec![facts]) .await; assert!(load_facts.is_ok()); diff --git a/rust-executor/src/prolog_service/prolog_service_extension.rs b/rust-executor/src/prolog_service/prolog_service_extension.rs index ee1ebafd4..747ed94bb 100644 --- a/rust-executor/src/prolog_service/prolog_service_extension.rs +++ b/rust-executor/src/prolog_service/prolog_service_extension.rs @@ -1,7 +1,9 @@ -use deno_core::{error::AnyError, include_js_files, op, Extension, anyhow::bail}; +use std::borrow::Cow; + +use deno_core::{error::AnyError, include_js_files, op, Extension, anyhow::bail, Op}; use scryer_prolog::machine::parsed_results::{Value, QueryMatch, QueryResolution}; -use super::{get_prolog_service}; +use super::get_prolog_service; #[op] async fn spawn_engine(engine_name: String) -> Result<(), AnyError> { @@ -110,14 +112,15 @@ async fn load_module_string( } pub fn build() -> Extension { - Extension::builder("prolog_service") - .js(include_js_files!(holochain_service "prolog_service_extension.js",)) - .ops(vec![ - spawn_engine::decl(), - remove_engine::decl(), - run_query::decl(), - load_module_string::decl(), - ]) - .force_op_registration() - .build() + Extension { + name: "prolog_service", + js_files: Cow::Borrowed(&include_js_files!(holochain_service "src/prolog_service/prolog_service_extension.js",)), + ops: Cow::Borrowed(&[ + spawn_engine::DECL, + remove_engine::DECL, + run_query::DECL, + load_module_string::DECL, + ]), + ..Default::default() + } } diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index e1ebc334d..5c155e65c 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -26,14 +26,14 @@ libc = "0.2.121" directories = "4.0.1" opener = "0.5.0" open = "2.0.1" -sysinfo = "0.23.12" +sysinfo = "0.29.7" tauri = { version = "1.2.1", features = ["api-all", "system-tray"] } uuid = { version = "0.8", features = ["v4"] } localtunnel-client = "0.0.12" tokio = { version = "1.19.2", features = ["full"] } tauri-plugin-positioner = { version = "1.0", features = ["system-tray"] } remove_dir_all = "0.7.0" -reqwest = { version = "0.11", features = ["json"] } +reqwest = { version = "0.11.18", features = ["json", "native-tls"] } ad4m-client = { path = "../../rust-client" } rust-executor = { path = "../../rust-executor" } tracing = "0.1" diff --git a/ui/src-tauri/src/util.rs b/ui/src-tauri/src/util.rs index 6a32f4997..223aa30ec 100644 --- a/ui/src-tauri/src/util.rs +++ b/ui/src-tauri/src/util.rs @@ -5,8 +5,6 @@ use crate::menu::open_logs_folder; use std::fs::remove_file; use std::fs::File; use std::io::prelude::*; -use std::time::Duration; -use std::time::SystemTime; use sysinfo::Process; use sysinfo::{ProcessExt, Signal, System, SystemExt}; use tauri::{AppHandle, Manager, WindowBuilder, WindowEvent, WindowUrl, Wry}; From 5623f0fd01bff2ba394739a9f1c1491b788918a9 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Tue, 8 Aug 2023 16:26:31 +0530 Subject: [PATCH 515/722] Fixed build errors --- Cargo.lock | 4866 ++++++++++------- Cargo.toml | 1 - rust-executor/Cargo.toml | 5 +- .../src/js_core/string_module_loader.rs | 1 - rust-executor/src/js_core/utils_extension.rs | 1 - yarn.lock | 16 +- 6 files changed, 2903 insertions(+), 1987 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 38ec8a095..8ca90ef5c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,14 +19,14 @@ dependencies = [ "ad4m-client", "anyhow", "chrono", - "clap 4.1.10", + "clap 4.3.21", "colour", "dirs", "futures", "rand 0.8.5", "regex", "rust-executor", - "rustyline 10.0.0", + "rustyline 10.1.1", "serde", "serde_json", "syntect", @@ -42,7 +42,7 @@ dependencies = [ "anyhow", "async-tungstenite", "chrono", - "clap 4.1.10", + "clap 4.3.21", "dirs", "futures", "graphql-ws-client", @@ -51,7 +51,7 @@ dependencies = [ "rand 0.8.5", "regex", "reqwest", - "rustyline 10.0.0", + "rustyline 10.1.1", "serde", "serde_json", "tokio", @@ -69,29 +69,32 @@ dependencies = [ "localtunnel-client", "log", "log4rs", - "nix 0.23.1", + "nix 0.23.2", "open 2.1.3", "opener", "portpicker", "remove_dir_all", "reqwest", + "rust-executor", "serde", "serde_json", - "sysinfo 0.23.13", + "sysinfo 0.29.7", "tauri", "tauri-build", "tauri-plugin-positioner", "tokio", + "tracing", + "tracing-subscriber 0.2.25", "uuid 0.8.2", ] [[package]] name = "addr2line" -version = "0.17.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" dependencies = [ - "gimli", + "gimli 0.27.3", ] [[package]] @@ -113,19 +116,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ "crypto-common", - "generic-array 0.14.6", -] - -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if 1.0.0", - "cipher 0.3.0", - "cpufeatures", - "opaque-debug 0.3.0", + "generic-array 0.14.7", ] [[package]] @@ -135,19 +126,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" dependencies = [ "cfg-if 1.0.0", - "cipher 0.4.4", + "cipher", "cpufeatures", ] [[package]] name = "aes-gcm" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" dependencies = [ "aead", - "aes 0.8.2", - "cipher 0.4.4", + "aes", + "cipher", "ctr", "ghash", "subtle 2.4.1", @@ -159,7 +150,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c" dependencies = [ - "aes 0.8.2", + "aes", ] [[package]] @@ -174,18 +165,20 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.10", "once_cell", "version_check", ] [[package]] -name = "aho-corasick" -version = "0.7.20" +name = "ahash" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ - "memchr", + "cfg-if 1.0.0", + "once_cell", + "version_check", ] [[package]] @@ -212,6 +205,18 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -230,11 +235,60 @@ dependencies = [ "winapi", ] +[[package]] +name = "anstream" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is-terminal", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" + +[[package]] +name = "anstyle-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] + [[package]] name = "anyhow" -version = "1.0.66" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" +checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" dependencies = [ "backtrace", ] @@ -259,18 +313,19 @@ dependencies = [ [[package]] name = "arc-swap" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" [[package]] name = "argon2" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95c2fcf79ad1932ac6269a738109997a83c227c09b75842ae564dc8ede6a861c" +checksum = "b2e554a8638bdc1e4eae9984845306cc95f8a9208ba8d49c3859fd958b46774d" dependencies = [ "base64ct", "blake2 0.10.6", + "cpufeatures", "password-hash 0.5.0", ] @@ -288,9 +343,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ascii" @@ -298,18 +353,56 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom 7.1.3", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.25", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", +] + [[package]] name = "ast_node" -version = "0.8.8" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70151a5226578411132d798aa248df45b30aa34aea2e580628870b4d87be717b" +checksum = "c704e2f6ee1a98223f5a7629a6ef0f3decb3b552ed282889dc957edff98ce1e6" dependencies = [ - "darling 0.13.4", - "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.32", "swc_macros_common", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -318,15 +411,26 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 1.0.109", +] + +[[package]] +name = "async-broadcast" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d26004fe83b2d1cd3a97609b21e39f9a31535822210fe83205d2ce48866ea61" +dependencies = [ + "event-listener", + "futures-core", + "parking_lot 0.12.1", ] [[package]] name = "async-channel" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", "event-listener", @@ -370,7 +474,7 @@ dependencies = [ "async-lock", "async-task", "concurrent-queue", - "fastrand", + "fastrand 1.9.0", "futures-lite", "slab", ] @@ -404,7 +508,7 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.7", + "rustix 0.37.23", "slab", "socket2 0.4.9", "waker-fn", @@ -432,8 +536,8 @@ dependencies = [ "cfg-if 1.0.0", "event-listener", "futures-lite", - "rustix 0.37.7", - "signal-hook 0.3.15", + "rustix 0.37.23", + "signal-hook", "windows-sys 0.48.0", ] @@ -443,9 +547,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -492,9 +596,9 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25f9db3b38af870bf7e5cc649167533b493928e50744e2c30ae350230b414670" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -505,13 +609,13 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.13", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -535,7 +639,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" dependencies = [ "atk-sys", - "bitflags", + "bitflags 1.3.2", "glib", "libc", ] @@ -549,7 +653,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", ] [[package]] @@ -567,22 +671,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" -[[package]] -name = "attohttpc" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcf00bc6d5abb29b5f97e3c61a90b6d3caa12f3faf897d4a3e3607c050a35a7" -dependencies = [ - "flate2", - "http", - "log", - "native-tls", - "serde", - "serde_json", - "serde_urlencoded", - "url 2.3.1", -] - [[package]] name = "atty" version = "0.2.14" @@ -623,16 +711,16 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.66" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" dependencies = [ "addr2line", "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.5.4", - "object 0.29.0", + "miniz_oxide 0.7.1", + "object 0.31.1", "rustc-demangle", ] @@ -648,6 +736,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" version = "0.12.3" @@ -662,9 +756,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "base64-simd" @@ -684,9 +778,9 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "better_scoped_tls" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73e8ecdec39e98aa3b19e8cd0b8ed8f77ccb86a6b0b2dc7cd86d105438a2123" +checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de" dependencies = [ "scoped-tls", ] @@ -730,6 +824,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" + [[package]] name = "bitvec" version = "1.0.1" @@ -760,7 +860,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -781,8 +881,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", - "arrayvec 0.7.2", - "constant_time_eq 0.2.5", + "arrayvec 0.7.4", + "constant_time_eq 0.2.6", ] [[package]] @@ -792,21 +892,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", - "arrayvec 0.7.2", - "constant_time_eq 0.2.5", + "arrayvec 0.7.4", + "constant_time_eq 0.2.6", ] [[package]] name = "blake3" -version = "1.3.3" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" +checksum = "199c42ab6972d92c9f8995f086273d25c42fc0f7b2a1fcefba465c1352d25ba5" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "cc", "cfg-if 1.0.0", - "constant_time_eq 0.2.5", + "constant_time_eq 0.3.0", ] [[package]] @@ -833,24 +933,18 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] -[[package]] -name = "block-modes" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e2211b0817f061502a8dd9f11a37e879e79763e3c698d2418cf824d8cb2f21e" - [[package]] name = "block-padding" version = "0.1.5" @@ -866,7 +960,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -879,7 +973,7 @@ dependencies = [ "async-lock", "async-task", "atomic-waker", - "fastrand", + "fastrand 1.9.0", "futures-lite", "log", ] @@ -891,8 +985,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8129c0ab340c1b0caf6dbc587e814d04ba811e336dcf8fc268c04e047428ebb0" dependencies = [ "bit-vec", - "getrandom 0.2.8", - "siphasher 0.3.10", + "getrandom 0.2.10", + "siphasher", ] [[package]] @@ -902,8 +996,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7c681aa947677ec0c5ccfa6f14c0dd039ddbaa7b12952bf146bd5226a5f9880" dependencies = [ "digest 0.9.0", - "ff", - "group", + "ff 0.12.1", + "group 0.12.1", "heapless", "pairing", "rand_core 0.6.4", @@ -925,9 +1019,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "2.3.2" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -950,33 +1044,33 @@ dependencies = [ "bitvec", "chrono", "hex", - "indexmap", + "indexmap 1.9.3", "js-sys", "lazy_static", "rand 0.8.5", "serde", "serde_bytes", "serde_json", - "time 0.3.17", - "uuid 1.3.0", + "time 0.3.25", + "uuid 1.4.1", ] [[package]] name = "bstr" -version = "0.2.17" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ - "lazy_static", "memchr", - "regex-automata 0.1.10", + "regex-automata 0.3.6", + "serde", ] [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "byte-tools" @@ -986,9 +1080,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytecheck" -version = "0.6.10" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13fe11640a23eb24562225322cd3e452b93a3d4091d62fab69c70542fcd17d1f" +checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" dependencies = [ "bytecheck_derive", "ptr_meta", @@ -997,20 +1091,20 @@ dependencies = [ [[package]] name = "bytecheck_derive" -version = "0.6.10" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e31225543cb46f81a7e224762764f4a6a0f097b1db0b175f69e8065efaa42de5" +checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "bytemuck" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" [[package]] name = "byteorder" @@ -1023,6 +1117,9 @@ name = "bytes" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +dependencies = [ + "serde", +] [[package]] name = "bzip2" @@ -1057,7 +1154,7 @@ version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-sys-rs", "glib", "libc", @@ -1072,23 +1169,23 @@ checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" dependencies = [ "glib-sys", "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", ] [[package]] name = "camino" -version = "1.1.4" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] @@ -1101,7 +1198,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.17", + "semver 1.0.18", "serde", "serde_json", "thiserror", @@ -1109,12 +1206,12 @@ dependencies = [ [[package]] name = "cargo_toml" -version = "0.13.0" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa0e3586af56b3bfa51fca452bd56e8dbbbd5d8d81cbf0b7e4e35b695b537eb8" +checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" dependencies = [ "serde", - "toml", + "toml 0.7.6", ] [[package]] @@ -1123,16 +1220,17 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] name = "cc" -version = "1.0.77" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" +checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -1143,12 +1241,13 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfb" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" dependencies = [ "byteorder", - "uuid 0.8.2", + "fnv", + "uuid 1.4.1", ] [[package]] @@ -1157,16 +1256,17 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" dependencies = [ - "smallvec 1.10.0", + "smallvec 1.11.0", ] [[package]] name = "cfg-expr" -version = "0.11.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" +checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9" dependencies = [ - "smallvec 1.10.0", + "smallvec 1.11.0", + "target-lexicon", ] [[package]] @@ -1188,7 +1288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if 1.0.0", - "cipher 0.4.4", + "cipher", "cpufeatures", ] @@ -1200,7 +1300,7 @@ checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20", - "cipher 0.4.4", + "cipher", "poly1305", "zeroize", ] @@ -1217,16 +1317,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "serde", - "time 0.1.44", + "time 0.1.45", "wasm-bindgen", "winapi", ] @@ -1244,15 +1344,6 @@ dependencies = [ "unsigned-varint", ] -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array 0.14.6", -] - [[package]] name = "cipher" version = "0.4.4" @@ -1272,7 +1363,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "ansi_term", "atty", - "bitflags", + "bitflags 1.3.2", "strsim 0.8.0", "textwrap 0.11.0", "unicode-width", @@ -1286,10 +1377,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", - "bitflags", + "bitflags 1.3.2", "clap_derive 3.2.25", "clap_lex 0.2.4", - "indexmap", + "indexmap 1.9.3", "once_cell", "strsim 0.10.0", "termcolor", @@ -1298,17 +1389,25 @@ dependencies = [ [[package]] name = "clap" -version = "4.1.10" +version = "4.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce38afc168d8665cfc75c7b1dd9672e50716a137f433f070991619744a67342a" +checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd" dependencies = [ - "bitflags", - "clap_derive 4.1.9", - "clap_lex 0.3.0", - "is-terminal", + "clap_builder", + "clap_derive 4.3.12", "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.5.0", "strsim 0.10.0", - "termcolor", ] [[package]] @@ -1317,24 +1416,23 @@ version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" dependencies = [ - "heck 0.4.0", + "heck 0.4.1", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "clap_derive" -version = "4.1.9" +version = "4.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644" +checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" dependencies = [ - "heck 0.4.0", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -1348,18 +1446,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" -dependencies = [ - "os_str_bytes", -] +checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" [[package]] name = "clipboard-win" -version = "4.4.2" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" dependencies = [ "error-code", "str-buf", @@ -1372,7 +1467,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -1381,7 +1476,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "cocoa-foundation", "core-foundation", @@ -1393,11 +1488,11 @@ dependencies = [ [[package]] name = "cocoa-foundation" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "core-foundation", "core-graphics-types", @@ -1406,40 +1501,36 @@ dependencies = [ "objc", ] -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - [[package]] name = "color_quant" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "colored" -version = "1.9.3" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355" dependencies = [ - "atty", + "is-terminal", "lazy_static", "winapi", ] [[package]] name = "colour" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27e4532f26f510c24bb8477d963c0c3ef27e293c3b2c507cccb0536d493201a" +checksum = "0f58a501d883cdb7f1a780407eefba005458b8fdf7c09213ea0104879bf87aa9" dependencies = [ - "crossterm 0.19.0", + "crossterm 0.26.1", ] [[package]] @@ -1465,23 +1556,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "concolor" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "318d6c16e73b3a900eb212ad6a82fc7d298c5ab8184c7a9998646455bc474a16" -dependencies = [ - "bitflags", - "concolor-query", - "is-terminal", -] - -[[package]] -name = "concolor-query" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a90734b3d5dcf656e7624cca6bce9c3a90ee11f900e80141a7427ccfb3d317" - [[package]] name = "concurrent-queue" version = "2.2.0" @@ -1503,9 +1577,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" +checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747" [[package]] name = "constant_time_eq" @@ -1515,9 +1589,15 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" +checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "contrafact" @@ -1551,9 +1631,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "core-graphics" @@ -1561,7 +1641,7 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-graphics-types", "foreign-types", @@ -1570,13 +1650,12 @@ dependencies = [ [[package]] name = "core-graphics-types" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", - "foreign-types", "libc", ] @@ -1614,9 +1693,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] @@ -1640,10 +1719,10 @@ dependencies = [ "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli", + "gimli 0.26.2", "log", "regalloc", - "smallvec 1.10.0", + "smallvec 1.11.0", "target-lexicon", ] @@ -1676,7 +1755,7 @@ checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" dependencies = [ "cranelift-codegen", "log", - "smallvec 1.10.0", + "smallvec 1.11.0", "target-lexicon", ] @@ -1708,9 +1787,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1718,9 +1797,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -1729,72 +1808,72 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", "crossbeam-utils", - "memoffset 0.7.1", + "memoffset 0.9.0", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if 1.0.0", ] [[package]] name = "crossterm" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c36c10130df424b2f3552fcc2ddcd9b28a27b1e54b358b45874f88d1ca6888c" +checksum = "c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d" dependencies = [ - "bitflags", - "crossterm_winapi 0.7.0", - "lazy_static", + "bitflags 1.3.2", + "crossterm_winapi 0.8.0", "libc", "mio 0.7.14", "parking_lot 0.11.2", - "signal-hook 0.1.17", + "signal-hook", + "signal-hook-mio", "winapi", ] [[package]] name = "crossterm" -version = "0.20.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d" +checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13" dependencies = [ - "bitflags", - "crossterm_winapi 0.8.0", + "bitflags 1.3.2", + "crossterm_winapi 0.9.1", "libc", - "mio 0.7.14", - "parking_lot 0.11.2", - "signal-hook 0.3.15", + "mio 0.8.8", + "parking_lot 0.12.1", + "signal-hook", "signal-hook-mio", "winapi", ] [[package]] name = "crossterm_winapi" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da8964ace4d3e4a044fd027919b2237000b24315a37c916f61809f1ff2140b9" +checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" dependencies = [ "winapi", ] [[package]] name = "crossterm_winapi" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" dependencies = [ "winapi", ] @@ -1807,7 +1886,7 @@ checksum = "2db40892a506901e4e8281f00e42687df82d1d3448cb0289ae9183a60cb42ec1" dependencies = [ "blake2 0.10.6", "rand_core 0.6.4", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -1822,22 +1901,34 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core 0.6.4", "subtle 2.4.1", "zeroize", ] [[package]] -name = "crypto-common" -version = "0.1.6" +name = "crypto-bigint" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core 0.6.4", - "typenum", -] + "subtle 2.4.1", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "typenum", +] [[package]] name = "crypto-mac" @@ -1855,7 +1946,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle 2.4.1", ] @@ -1865,7 +1956,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle 2.4.1", ] @@ -1895,20 +1986,20 @@ dependencies = [ "itoa 0.4.8", "matches", "phf 0.8.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "smallvec 1.10.0", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "smallvec 1.11.0", + "syn 1.0.109", ] [[package]] name = "cssparser-macros" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -1917,8 +2008,8 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -1927,7 +2018,7 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -1940,12 +2031,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "cty" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" - [[package]] name = "curve25519-dalek" version = "2.1.3" @@ -1974,60 +2059,29 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-rc.2" +version = "4.0.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585" +checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7" dependencies = [ "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", "fiat-crypto", - "packed_simd_2", "platforms", + "rustc_version 0.4.0", "subtle 2.4.1", "zeroize", ] [[package]] -name = "cxx" -version = "1.0.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "scratch", - "syn 1.0.103", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.82" +name = "curve25519-dalek-derive" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" +checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -2060,6 +2114,16 @@ dependencies = [ "darling_macro 0.14.4", ] +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core 0.20.3", + "darling_macro 0.20.3", +] + [[package]] name = "darling_core" version = "0.10.2" @@ -2068,10 +2132,10 @@ checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "strsim 0.9.3", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -2082,10 +2146,10 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "strsim 0.10.0", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -2096,10 +2160,24 @@ checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "strsim 0.10.0", - "syn 1.0.103", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.66", + "quote 1.0.32", + "strsim 0.10.0", + "syn 2.0.28", ] [[package]] @@ -2109,8 +2187,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core 0.10.2", - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -2120,8 +2198,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core 0.13.4", - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -2131,10 +2209,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core 0.14.4", - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 1.0.109", ] +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core 0.20.3", + "quote 1.0.32", + "syn 2.0.28", +] + +[[package]] +name = "dary_heap" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" + [[package]] name = "dashmap" version = "4.0.2" @@ -2147,15 +2242,15 @@ dependencies = [ [[package]] name = "dashmap" -version = "5.4.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" +checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.12.3", - "lock_api 0.4.9", + "hashbrown 0.14.0", + "lock_api 0.4.10", "once_cell", - "parking_lot_core 0.9.4", + "parking_lot_core 0.9.8", ] [[package]] @@ -2209,8 +2304,8 @@ dependencies = [ "dashu-float", "dashu-int", "dashu-ratio", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", ] [[package]] @@ -2227,15 +2322,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "data-encoding-macro" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2243,12 +2338,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" dependencies = [ "data-encoding", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -2258,29 +2353,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5" [[package]] -name = "dbus" -version = "0.9.6" +name = "debugid" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8bcdd56d2e5c4ed26a529c5a9029f5db8290d433497506f958eae3be148eb6" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ - "libc", - "libdbus-sys", - "winapi", + "serde", + "uuid 1.4.1", +] + +[[package]] +name = "deno-proc-macro-rules" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c65c2ffdafc1564565200967edc4851c7b55422d3913466688907efd05ea26f" +dependencies = [ + "deno-proc-macro-rules-macros", + "proc-macro2 1.0.66", + "syn 2.0.28", +] + +[[package]] +name = "deno-proc-macro-rules-macros" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3047b312b7451e3190865713a4dd6e1f821aed614ada219766ebc3024a690435" +dependencies = [ + "once_cell", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] name = "deno_ast" -version = "0.25.0" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b08341e0ed5b816e24b6582054b37707c8686de5598fa3004dc555131c993308" +checksum = "6b17e25531279d9795aeb076909c91c9b369fa63fd4d801486950577d0457d22" dependencies = [ "anyhow", "base64 0.13.1", - "data-url", + "deno_media_type", "dprint-swc-ext", "serde", "swc_atoms", "swc_common", + "swc_config", + "swc_config_macro", "swc_ecma_ast", "swc_ecma_codegen", "swc_ecma_codegen_macros", @@ -2294,112 +2413,116 @@ dependencies = [ "swc_ecma_transforms_typescript", "swc_ecma_utils", "swc_ecma_visit", + "swc_eq_ignore_macros", + "swc_macros_common", + "swc_visit", + "swc_visit_macros", "text_lines", - "url 2.3.1", + "url 2.4.0", ] [[package]] name = "deno_broadcast_channel" -version = "0.91.0" +version = "0.108.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02ff07549d23525aa3d6d34db940c9558189932ee463d83655057cf55face32" +checksum = "af3e8ca691a282c918cc5c223dcd5840286954a396e3108ade4c3c3b55017ebf" dependencies = [ "async-trait", "deno_core", "tokio", - "uuid 1.3.0", + "uuid 1.4.1", ] [[package]] name = "deno_cache" -version = "0.29.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48819e1571a41ad74d13c9f916725e44b99ce413f14c2bdf90232880ded84fe" +checksum = "bc385e88d95f925f3384319cde1e813022d4842a9a791c79b47699334e81d516" dependencies = [ "async-trait", "deno_core", "rusqlite", "serde", - "sha2 0.10.6", + "sha2 0.10.7", "tokio", ] [[package]] name = "deno_console" -version = "0.97.0" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "966d617116a8de05342956cfe09ece89d830e4cc123aa1e55907d648346d0c8f" +checksum = "7a3df41ff26499c3f4f352f8fc1fe6bb50c39121675bf594b3af511c28db84c2" dependencies = [ "deno_core", ] [[package]] name = "deno_core" -version = "0.179.0" +version = "0.199.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9307ca2299cb7b0bdaa345cbdc82a252a8e4e5a4463e28f44c715d55e460fb" +checksum = "70fbd0cb620ac36fac08d708c5f01362280c5aa8149657a225db4932bd73758e" dependencies = [ "anyhow", "bytes", "deno_ops", "futures", - "indexmap", + "indexmap 1.9.3", "libc", "log", "once_cell", "parking_lot 0.12.1", - "pin-project 1.0.12", + "pin-project 1.1.3", "serde", "serde_json", "serde_v8", - "smallvec 1.10.0", + "smallvec 1.11.0", "sourcemap", - "url 2.3.1", + "tokio", + "url 2.4.0", "v8", ] [[package]] name = "deno_crypto" -version = "0.111.0" +version = "0.128.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1daf156a53364ea0196dac48f1b6277968ffec7e251db4d04da96d12742fb429" +checksum = "5000445c43538cb54a021e761071137ebab615c751e17178e564c56647414f5c" dependencies = [ - "aes 0.8.2", + "aes", "aes-gcm", "aes-kw", "base64 0.13.1", - "block-modes", "cbc", "const-oid", "ctr", "curve25519-dalek 2.1.3", "deno_core", "deno_web", - "elliptic-curve", + "elliptic-curve 0.12.3", "num-traits", "once_cell", - "p256", - "p384", + "p256 0.11.1", + "p384 0.11.2", "rand 0.8.5", "ring", "rsa", - "sec1", + "sec1 0.3.0", "serde", "serde_bytes", - "sha1", - "sha2 0.10.6", - "signature", - "spki", + "sha1 0.10.5", + "sha2 0.10.7", + "signature 1.6.4", + "spki 0.6.0", "tokio", - "uuid 1.3.0", - "x25519-dalek 2.0.0-rc.2", + "uuid 1.4.1", + "x25519-dalek 2.0.0-rc.3", ] [[package]] name = "deno_fetch" -version = "0.121.0" +version = "0.138.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "060aa125cf5ad9bfa922e0fc24970037b898ca42f75cb9aecfda5f8f3380f8b4" +checksum = "af49c674cf373a8946e67dae1d2badc0c1176f9ecb84cda168c5c9421ef15b3a" dependencies = [ "bytes", "data-url", @@ -2410,20 +2533,20 @@ dependencies = [ "reqwest", "serde", "tokio", - "tokio-stream", "tokio-util", ] [[package]] name = "deno_ffi" -version = "0.84.0" +version = "0.101.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f738a63f44ef92a0128b5e3fdad8367432c86db2473e8d84e67e5c997f687ff6" +checksum = "6cb34b1d3bb618b0bbbc5ebc148301263824a5673290483ff0a52386913a43e2" dependencies = [ "deno_core", "dlopen", "dynasmrt", - "libffi", + "libffi 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libffi-sys 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "serde-value", "serde_json", @@ -2431,41 +2554,21 @@ dependencies = [ "winapi", ] -[[package]] -name = "deno_flash" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7680b86dcf0cc24d895261c14bc9dafc8cd066d460515566f4aec66305f28dfa" -dependencies = [ - "deno_core", - "deno_tls", - "deno_websocket", - "http", - "httparse", - "libc", - "log", - "mio 0.8.5", - "rustls 0.20.8", - "rustls-pemfile 1.0.2", - "serde", - "socket2 0.4.9", - "tokio", -] - [[package]] name = "deno_fs" -version = "0.7.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b18a1b3bb1f4762d62b2ec366b672549305b550ce6aa4cf42b2c2d0cc616a1" +checksum = "5ddb0692853905a87a96666c77d58e4adf1cf3671d1a7ec7edafe301cfce9441" dependencies = [ + "async-trait", "deno_core", - "deno_crypto", "deno_io", "filetime", "fs3", "libc", "log", "nix 0.24.2", + "rand 0.8.5", "serde", "tokio", "winapi", @@ -2473,38 +2576,50 @@ dependencies = [ [[package]] name = "deno_http" -version = "0.92.0" +version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9c1eb9a4b3ebafb4aa96ea719adad52c620a465204528ccc7000951526b6e9e" +checksum = "8d083d63029b9cd366bcee007db8348e7c515c19e5432f0d2f138f03e5908ca1" dependencies = [ "async-compression 0.3.15", + "async-trait", "base64 0.13.1", "brotli", "bytes", "cache_control", "deno_core", + "deno_net", "deno_websocket", "flate2", "fly-accept-encoding", - "hyper", + "http", + "httparse", + "hyper 0.14.27", + "hyper 1.0.0-rc.4", + "memmem", "mime", - "percent-encoding 2.2.0", + "once_cell", + "percent-encoding 2.3.0", "phf 0.10.1", - "pin-project 1.0.12", + "pin-project 1.1.3", "ring", "serde", + "slab", + "smallvec 1.11.0", + "thiserror", "tokio", "tokio-util", ] [[package]] name = "deno_io" -version = "0.7.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830342535b39cd223cad825709a20dde24736aa700ba628551e1c6efb57c9589" +checksum = "b4b0886f3be06a065c9738b4162c30634ea2645eaad7efcf13ec197c63d67d15" dependencies = [ + "async-trait", "deno_core", - "nix 0.24.2", + "filetime", + "fs3", "once_cell", "tokio", "winapi", @@ -2512,9 +2627,9 @@ dependencies = [ [[package]] name = "deno_kv" -version = "0.5.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33efdd7657e9eddfd465169855352f8e11ed82ec4b1034c05c326d1ef869b45" +checksum = "677532e9ee16ef744205bae030f5047f66f5ff5ad6359b6a0e393197a78cd2b3" dependencies = [ "anyhow", "async-trait", @@ -2522,15 +2637,30 @@ dependencies = [ "deno_core", "hex", "num-bigint", + "rand 0.8.5", "rusqlite", "serde", + "serde_json", + "tokio", + "uuid 1.4.1", +] + +[[package]] +name = "deno_media_type" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "001d69b833ed4d244b608bab9c07069bfb570f631b763b58e73f82a020bf84ef" +dependencies = [ + "data-url", + "serde", + "url 2.4.0", ] [[package]] name = "deno_napi" -version = "0.27.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "606e57727e54da7f38607034543c4101ddfd23ff34c5ada485a24496c1f70ee5" +checksum = "aef1534b43dcf5cb8d28ee72035e4d5a426952fa305b75f0100dac3c89c99a4e" dependencies = [ "deno_core", "libloading", @@ -2538,13 +2668,15 @@ dependencies = [ [[package]] name = "deno_net" -version = "0.89.0" +version = "0.106.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d350f67d8c8e8df3471fd73c190adddbcc5e0f2786dc4144974225fe111b2490" +checksum = "a76fa1823075955b96bbc1a58db8584f4b4b6da3411c4be4d77063852ccf067a" dependencies = [ "deno_core", "deno_tls", + "enum-as-inner", "log", + "pin-project 1.1.3", "serde", "socket2 0.4.9", "tokio", @@ -2554,60 +2686,106 @@ dependencies = [ [[package]] name = "deno_node" -version = "0.34.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffd2289db1e0b2719718718a0f30087c6c46f605732d67b8e9bcaada956eb643" +checksum = "ede647cd70b9cf8f3d678cf3e07844a74ac1d3f20beba7bc4cd63ffd1349a56e" dependencies = [ - "aes 0.8.2", + "aes", + "brotli", "cbc", + "data-encoding", "deno_core", - "digest 0.10.6", + "deno_fetch", + "deno_fs", + "deno_media_type", + "deno_npm", + "deno_semver", + "digest 0.10.7", + "dsa", "ecb", + "elliptic-curve 0.13.5", + "errno 0.2.8", "hex", + "hkdf 0.12.3", "idna 0.3.0", - "indexmap", + "indexmap 1.9.3", + "lazy-regex", + "libc", "libz-sys", "md-5", "md4", "num-bigint", + "num-bigint-dig", "num-integer", "num-traits", "once_cell", + "p224", + "p256 0.13.2", + "p384 0.13.0", "path-clean", - "pbkdf2 0.12.1", + "pbkdf2 0.12.2", "rand 0.8.5", "regex", + "reqwest", + "ring", "ripemd", "rsa", + "scrypt", + "secp256k1", "serde", "sha-1 0.10.0", - "sha2 0.10.6", - "sha3 0.10.6", - "signature", + "sha2 0.10.7", + "signature 1.6.4", "tokio", "typenum", + "whoami", + "winapi", + "x25519-dalek 2.0.0-rc.3", + "x509-parser", +] + +[[package]] +name = "deno_npm" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa5d1097de53e8ce3316d3e44095e253719ae367cf7478263f83082f44dddabf" +dependencies = [ + "anyhow", + "async-trait", + "deno_semver", + "futures", + "log", + "monch", + "serde", + "thiserror", ] [[package]] name = "deno_ops" -version = "0.57.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04610f07342fbb33a2b7ea7aa16a95ab71adb13a0ce858a8d1a1414660a83e3e" +checksum = "8b345c096fd8433337ed8e1727f4732397c134e188e1739c88b0c077869020f3" dependencies = [ + "deno-proc-macro-rules", + "lazy-regex", "once_cell", - "pmutil", + "pmutil 0.6.1", "proc-macro-crate", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "regex", - "syn 1.0.103", + "strum 0.25.0", + "strum_macros 0.25.2", + "syn 1.0.109", + "syn 2.0.28", + "thiserror", ] [[package]] name = "deno_runtime" -version = "0.105.0" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7a70130370fa4afe0ab1d70753e8479cedefdaf7695d567e16124527e28907" +checksum = "a15dd7fe2a7c53ffbbd55966eb7bf2298291b77a47e043f768f0aa1732f61e95" dependencies = [ "atty", "console_static_text", @@ -2619,7 +2797,6 @@ dependencies = [ "deno_crypto", "deno_fetch", "deno_ffi", - "deno_flash", "deno_fs", "deno_http", "deno_io", @@ -2635,17 +2812,18 @@ dependencies = [ "deno_webstorage", "dlopen", "encoding_rs", + "fastwebsockets", "filetime", "fs3", "fwdansi", "http", - "hyper", + "hyper 0.14.27", "libc", "log", "netif", "nix 0.24.2", "notify", - "ntapi 0.4.0", + "ntapi 0.4.1", "once_cell", "regex", "ring", @@ -2653,44 +2831,57 @@ dependencies = [ "signal-hook-registry", "termcolor", "tokio", - "uuid 1.3.0", + "tokio-metrics", + "uuid 1.4.1", "winapi", "winres", ] +[[package]] +name = "deno_semver" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96f99990457915af1f444900003ffd5a9d3ab2e5337b06d681e56ca371b3e11f" +dependencies = [ + "monch", + "once_cell", + "serde", + "thiserror", + "url 2.4.0", +] + [[package]] name = "deno_tls" -version = "0.84.0" +version = "0.101.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934d24d9b79e9fdd69cbb398a2d2353c7e8086943fca03b44e372024afcfe516" +checksum = "02167d4913ff4b1f93f0f3182b6ebee67f41129a94ea9ef8ce15dff51649aff4" dependencies = [ "deno_core", "once_cell", - "rustls 0.20.8", + "rustls 0.21.6", "rustls-native-certs", - "rustls-pemfile 1.0.2", + "rustls-pemfile 1.0.3", "serde", "webpki 0.22.0", - "webpki-roots", + "webpki-roots 0.22.6", ] [[package]] name = "deno_url" -version = "0.97.0" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d08e96518d7a8367e6cce39b8e82ad48fe45fab4b7e86d3d5f4a169395b6a41" +checksum = "8fe9282c24607371fd2e6db7fca22da861032317c1396c08506a5a04ec81927a" dependencies = [ "deno_core", "serde", - "serde_repr", "urlpattern", ] [[package]] name = "deno_web" -version = "0.128.0" +version = "0.145.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93c96108a7dfe315199418054cbac88fc19536d36c6b7a79c69b02ac5aa021f4" +checksum = "b757302c2f04de142ee2962078f5f255caef80c792a9989fa860b867143a71e7" dependencies = [ "async-trait", "base64-simd", @@ -2699,39 +2890,43 @@ dependencies = [ "flate2", "serde", "tokio", - "uuid 1.3.0", + "uuid 1.4.1", + "windows-sys 0.48.0", ] [[package]] name = "deno_webidl" -version = "0.97.0" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "997fc11d02e5031dd79abc3b6b670931d8b089be66840bd5de818f13bdf4a5a6" +checksum = "1a12d8e0f1ef5af84075819a2568af54f8e073886a2c2941ac6e34c2092508d7" dependencies = [ "deno_core", ] [[package]] name = "deno_websocket" -version = "0.102.0" +version = "0.119.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1d51a45330c2418c14d7dbc5b0a3c863077ce2435deb2208b3da49c04efb17" +checksum = "3249bed57e808fdb99f7d39d8711210b2a0380638f0520447cb4794200c81d56" dependencies = [ + "bytes", "deno_core", + "deno_net", "deno_tls", + "fastwebsockets", "http", - "hyper", + "hyper 0.14.27", + "once_cell", "serde", "tokio", - "tokio-rustls 0.23.4", - "tokio-tungstenite 0.16.1", + "tokio-rustls", ] [[package]] name = "deno_webstorage" -version = "0.92.0" +version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e474fb2f4053200e201966a4e5d72e1b4fbd0735b21e581bf31f175d7cd05f5" +checksum = "03f122fd89054593e11e34fedbc063d00b407ea2b26c910171de4416618140b1" dependencies = [ "deno_core", "deno_web", @@ -2746,30 +2941,64 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ "const-oid", - "pem-rfc7468", + "pem-rfc7468 0.6.0", "zeroize", ] +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom 7.1.3", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" +dependencies = [ + "serde", +] + [[package]] name = "derivative" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "derive_arbitrary" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7" +checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -2780,9 +3009,9 @@ checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0" dependencies = [ "darling 0.10.2", "derive_builder_core", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -2792,9 +3021,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" dependencies = [ "darling 0.10.2", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -2803,9 +3032,9 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcdbcee2d9941369faba772587a565f4f534e42cb8d17e5295871de730163b2b" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -2815,10 +3044,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "rustc_version 0.4.0", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -2827,9 +3056,9 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "532b4c15dccee12c7044f1fcad956e98410860b22231e44a3b827464797ca7bf" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -2851,11 +3080,11 @@ dependencies = [ "curve25519-dalek 3.2.0", "did_url", "ed25519-dalek", - "getrandom 0.2.8", + "getrandom 0.2.10", "hkdf 0.11.0", - "json-patch", + "json-patch 0.2.7", "libsecp256k1", - "p256", + "p256 0.11.1", "serde", "serde_json", "sha2 0.9.9", @@ -2898,16 +3127,16 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "const-oid", "crypto-common", "subtle 2.4.1", @@ -2979,6 +3208,17 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", +] + [[package]] name = "divrem" version = "0.1.0" @@ -3026,9 +3266,9 @@ checksum = "4bb454f0228b18c7f4c3b0ebbee346ed9c52e7443b0999cd543ff3571205701d" [[package]] name = "dprint-swc-ext" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b6061551bcf644454469e6506c32bb23b765df93d608bf7a8e2494f82fcb3" +checksum = "dd4dda8a1b920e8be367aeaad035753d21bb69b3c50515afb41ab1eefbb886b5" dependencies = [ "bumpalo", "num-bigint", @@ -3040,32 +3280,48 @@ dependencies = [ "text_lines", ] +[[package]] +name = "dsa" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5638f6d17447bc0ffc46354949ee366847e83450e2a07895862942085cc9761" +dependencies = [ + "digest 0.10.7", + "num-bigint-dig", + "num-traits", + "pkcs8 0.10.2", + "rfc6979 0.4.0", + "sha2 0.10.7", + "signature 2.1.0", + "zeroize", +] + [[package]] name = "dtoa" -version = "0.4.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] name = "dtoa-short" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74" dependencies = [ "dtoa", ] [[package]] name = "dunce" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clone" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" +checksum = "304e6508efa593091e97a9abbc10f90aa7ca635b6d2784feff3c89d41dd12272" [[package]] name = "dynasm" @@ -3073,13 +3329,13 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "add9a102807b524ec050363f09e06f1504214b0e1c7797f64261c891022dce8b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder", "lazy_static", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -3099,7 +3355,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17fd84ba81a904351ee27bbccb4aa2461e1cca04176a63ab4f8ca087757681a2" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -3108,10 +3364,24 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", - "elliptic-curve", - "rfc6979", - "signature", + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" +dependencies = [ + "der 0.7.8", + "digest 0.10.7", + "elliptic-curve 0.13.5", + "rfc6979 0.4.0", + "signature 2.1.0", + "spki 0.7.2", ] [[package]] @@ -3120,7 +3390,7 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ - "signature", + "signature 1.6.4", ] [[package]] @@ -3139,9 +3409,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" @@ -3149,22 +3419,56 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct", - "crypto-bigint", - "der", - "digest 0.10.6", - "ff", - "generic-array 0.14.6", - "group", + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array 0.14.7", + "group 0.12.1", + "hkdf 0.12.3", + "pem-rfc7468 0.6.0", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle 2.4.1", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.2", + "digest 0.10.7", + "ff 0.13.0", + "generic-array 0.14.7", + "group 0.13.0", "hkdf 0.12.3", - "pem-rfc7468", - "pkcs8", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.3", "subtle 2.4.1", "zeroize", ] +[[package]] +name = "embed-resource" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7f1e82a60222fc67bfd50d752a9c89da5cce4c39ed39decc84a443b07bbd69a" +dependencies = [ + "cc", + "rustc_version 0.4.0", + "toml 0.7.6", + "vswhom", + "winreg 0.11.0", +] + [[package]] name = "embed_plist" version = "1.2.2" @@ -3192,10 +3496,10 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "heck 0.4.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -3213,42 +3517,51 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] -name = "enum_kind" -version = "0.2.2" +name = "enumflags2" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9895954c6ec59d897ed28a64815f2ceb57653fcaaebd317f2edc78b74f5495b6" +checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" dependencies = [ - "pmutil", - "proc-macro2 1.0.56", - "swc_macros_common", - "syn 1.0.103", + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] name = "enumset" -version = "1.0.12" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753" +checksum = "e875f1719c16de097dee81ed675e2d9bb63096823ed3f0ca827b7dea3028bbbb" dependencies = [ "enumset_derive", ] [[package]] name = "enumset_derive" -version = "0.6.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0" +checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af" dependencies = [ - "darling 0.14.4", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "darling 0.20.3", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -3273,6 +3586,12 @@ dependencies = [ "termcolor", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "err-derive" version = "0.2.4" @@ -3280,10 +3599,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22deed3a8124cff5fa835713fa105621e43bbdc46690c3a6b68328a012d350d4" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "rustversion", - "syn 1.0.103", + "syn 1.0.109", "synstructure", ] @@ -3300,13 +3619,13 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" +checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" dependencies = [ "errno-dragonfly", "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -3351,9 +3670,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", "synstructure", ] @@ -3371,22 +3690,54 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] +[[package]] +name = "fastrand" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" + +[[package]] +name = "fastwebsockets" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1925eb5ee48fffa504a9edce24b3b4d43e2809d1cc713a1df2b13a46e661b3c6" +dependencies = [ + "base64 0.21.2", + "cc", + "hyper 0.14.27", + "pin-project 1.1.3", + "rand 0.8.5", + "sha1 0.10.5", + "simdutf8", + "tokio", + "utf-8", +] + [[package]] name = "fd-lock" -version = "3.0.8" +version = "3.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb21c69b9fea5e15dbc1049e4b77145dd0ba1c84019c488102de0dc4ea4b0a27" +checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" dependencies = [ "cfg-if 1.0.0", - "rustix 0.36.2", - "windows-sys 0.42.0", + "rustix 0.38.7", + "windows-sys 0.48.0", +] + +[[package]] +name = "fdeflate" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" +dependencies = [ + "simd-adler32", ] [[package]] @@ -3400,6 +3751,16 @@ dependencies = [ "subtle 2.4.1", ] +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle 2.4.1", +] + [[package]] name = "fiat-crypto" version = "0.1.20" @@ -3408,31 +3769,31 @@ checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" [[package]] name = "field-offset" -version = "0.3.4" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset 0.6.5", - "rustc_version 0.3.3", + "memoffset 0.9.0", + "rustc_version 0.4.0", ] [[package]] name = "filetime" -version = "0.2.18" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.16", - "windows-sys 0.42.0", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", ] [[package]] name = "fixt" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0c56586e2d46ef54b2e603cba5f9d92b15084c6ef28ef4fcb5bb0896317a41d" +checksum = "22ccb978b54171f597ebb93855417156a4df0c44e47d64ac0b0b3d909e3216b6" dependencies = [ "holochain_serialized_bytes 0.0.51", "lazy_static", @@ -3498,11 +3859,11 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ - "percent-encoding 2.2.0", + "percent-encoding 2.3.0", ] [[package]] @@ -3526,10 +3887,10 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d449976075322384507443937df2f1d5577afbf4282f12a5a66ef29fa3e6307" dependencies = [ - "pmutil", - "proc-macro2 1.0.56", + "pmutil 0.5.3", + "proc-macro2 1.0.66", "swc_macros_common", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -3628,8 +3989,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3422d14de7903a52e9dbc10ae05a7e14445ec61890100e098754e120b2bd7b1e" dependencies = [ "derive_utils", - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -3655,7 +4016,7 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ - "fastrand", + "fastrand 1.9.0", "futures-core", "futures-io", "memchr", @@ -3670,9 +4031,9 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.13", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -3748,7 +4109,7 @@ version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "gdk-pixbuf", "gdk-sys", @@ -3764,7 +4125,7 @@ version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "gdk-pixbuf-sys", "gio", "glib", @@ -3781,7 +4142,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", ] [[package]] @@ -3798,7 +4159,21 @@ dependencies = [ "libc", "pango-sys", "pkg-config", - "system-deps 6.0.3", + "system-deps 6.1.1", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps 6.1.1", ] [[package]] @@ -3810,21 +4185,21 @@ dependencies = [ "gdk-sys", "glib-sys", "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", "x11", ] [[package]] name = "generator" -version = "0.7.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc184cace1cea8335047a471cc1da80f18acf8a76f3bab2028d499e328948ec7" +checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" dependencies = [ "cc", "libc", "log", "rustversion", - "windows 0.32.0", + "windows 0.48.0", ] [[package]] @@ -3838,12 +4213,13 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -3859,9 +4235,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -3913,17 +4289,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" dependencies = [ "fallible-iterator", - "indexmap", + "indexmap 1.9.3", "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" + [[package]] name = "gio" version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "futures-channel", "futures-core", "futures-io", @@ -3943,7 +4325,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", "winapi", ] @@ -3964,9 +4346,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -3975,7 +4357,7 @@ version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" dependencies = [ - "bitflags", + "bitflags 1.3.2", "futures-channel", "futures-core", "futures-executor", @@ -3985,23 +4367,23 @@ dependencies = [ "gobject-sys", "libc", "once_cell", - "smallvec 1.10.0", + "smallvec 1.11.0", "thiserror", ] [[package]] name = "glib-macros" -version = "0.15.11" +version = "0.15.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" +checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" dependencies = [ "anyhow", - "heck 0.4.0", + "heck 0.4.1", "proc-macro-crate", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -4011,22 +4393,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" dependencies = [ "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", ] [[package]] name = "glob" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" dependencies = [ - "aho-corasick 0.7.20", + "aho-corasick", "bstr", "fnv", "log", @@ -4053,7 +4435,7 @@ checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" dependencies = [ "glib-sys", "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", ] [[package]] @@ -4070,7 +4452,7 @@ dependencies = [ "parking_lot 0.11.2", "quanta", "rand 0.8.5", - "smallvec 1.10.0", + "smallvec 1.11.0", ] [[package]] @@ -4102,11 +4484,11 @@ dependencies = [ "futures", "graphql_client", "log", - "pin-project 1.0.12", + "pin-project 1.1.3", "serde", "serde_json", "thiserror", - "uuid 1.3.0", + "uuid 1.4.1", ] [[package]] @@ -4128,13 +4510,13 @@ checksum = "4e55df64cc702c4ad6647f8df13a799ad11688a3781fadf5045f7ba12733fa9b" dependencies = [ "graphql-introspection-query", "graphql-parser", - "heck 0.4.0", + "heck 0.4.1", "lazy_static", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "serde", "serde_json", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -4144,8 +4526,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52fc9cde811f44b15ec0692b31e56a3067f6f431c5ace712f286e47c1dacc98" dependencies = [ "graphql_client_codegen", - "proc-macro2 1.0.56", - "syn 1.0.103", + "proc-macro2 1.0.66", + "syn 1.0.109", ] [[package]] @@ -4154,7 +4536,18 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "ff", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle 2.4.1", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", "rand_core 0.6.4", "subtle 2.4.1", ] @@ -4166,7 +4559,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" dependencies = [ "atk", - "bitflags", + "bitflags 1.3.2", "cairo-rs", "field-offset", "futures-channel", @@ -4197,28 +4590,28 @@ dependencies = [ "gobject-sys", "libc", "pango-sys", - "system-deps 6.0.3", + "system-deps 6.1.1", ] [[package]] name = "gtk3-macros" -version = "0.15.4" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" dependencies = [ "anyhow", "proc-macro-crate", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "h2" -version = "0.3.15" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" dependencies = [ "bytes", "fnv", @@ -4226,7 +4619,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util", @@ -4270,24 +4663,43 @@ dependencies = [ "ahash 0.7.6", ] +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", +] + +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash 0.8.3", + "allocator-api2", +] + [[package]] name = "hashlink" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" +checksum = "312f66718a2d7789ffef4f4b7b213138ed9f1eb3aa1d0d82fc99f88fb3ffd26f" dependencies = [ - "hashbrown 0.12.3", + "hashbrown 0.14.0", ] [[package]] name = "hc_seed_bundle" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bfd1584a885bb064bd877e78a43465261c5bd369c001e7095ab5b00cb57b3c5" +checksum = "63bba5629a49d90007bb81a27a9ba8f9c597a82246d44e73126130617f11c52b" dependencies = [ "futures", "one_err", - "rmp-serde 1.1.1", + "rmp-serde 1.1.2", "rmpv", "serde", "serde_bytes", @@ -4296,9 +4708,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9f6105d20d9c8dcac3b967bef3de5c811d43de3079c60f05ddebb86421f362" +checksum = "6c3ec758c7f6a2adc57336caebc38ee86a07349ae622f58dacdc65645957f2c9" dependencies = [ "hdk_derive", "holo_hash", @@ -4313,11 +4725,11 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a354d9b29d879b8e05c2e1e5f5a9657dac2a1f4be6732ecc4d72273cf6d30bbd" +checksum = "41155c2019be0cbad493ba092aff02002c304d09f0750e4a7bc363f472b8fd14" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.10", "hdi", "hdk_derive", "holo_hash", @@ -4333,18 +4745,18 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b42de4f722e215382845ca26d6b71d557f843c674dfd9463cb517873c6cade8" +checksum = "5781d5b09f0229edadff38be6efc4c549384b7a711dc3e8f78c3f84002d8b7b2" dependencies = [ "darling 0.14.4", - "heck 0.4.0", + "heck 0.4.1", "holochain_integrity_types", "paste", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -4354,13 +4766,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" dependencies = [ "base64 0.13.1", - "bitflags", + "bitflags 1.3.2", "bytes", "headers-core", "http", "httpdate", "mime", - "sha1", + "sha1 0.10.5", ] [[package]] @@ -4396,9 +4808,9 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -4411,9 +4823,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "hex" @@ -4466,7 +4878,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -4476,15 +4888,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array 0.14.6", + "generic-array 0.14.7", "hmac 0.8.1", ] [[package]] name = "holo_hash" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d8076a1021ca8bf729d4224c4facd24f06c3aebd3fd335080d1460495538dfd" +checksum = "df56e386a660feed3ab6db81be49918b7bc080979b48b1d4e6e19405feb6b651" dependencies = [ "arbitrary", "base64 0.13.1", @@ -4504,9 +4916,9 @@ dependencies = [ [[package]] name = "holochain" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ec4017d1b3d07503f7a17b2df428acd87c19c318b26c3f6560eabc3b45d6cc4" +checksum = "2b8868e8bfa5501c8a98c98e1a96c06f9b94c6295456c4dca1bfd96f744732b8" dependencies = [ "anyhow", "async-recursion", @@ -4521,7 +4933,7 @@ dependencies = [ "fallible-iterator", "fixt", "futures", - "getrandom 0.2.8", + "getrandom 0.2.10", "ghost_actor 0.3.0-alpha.4", "hdk", "holo_hash", @@ -4563,7 +4975,7 @@ dependencies = [ "sd-notify", "serde", "serde_json", - "serde_yaml 0.9.21", + "serde_yaml 0.9.25", "shrinkwraprs", "sodoken", "structopt", @@ -4575,7 +4987,7 @@ dependencies = [ "tiny-keccak", "tokio", "tokio-stream", - "toml", + "toml 0.5.11", "tracing", "tracing-futures", "tracing-subscriber 0.2.25", @@ -4589,9 +5001,9 @@ dependencies = [ [[package]] name = "holochain_cascade" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb03147cc0e99e5236fe5f6e77e5fa296bd281c4da2ace18c948e6dcd085e5ee" +checksum = "30b9ca60ed5b7ec8ce9e96fd058cd088ce5dcd94b3044915003ae06ade69b2e7" dependencies = [ "async-trait", "derive_more", @@ -4622,9 +5034,9 @@ dependencies = [ [[package]] name = "holochain_conductor_api" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e86402c2b1b92e3badc5144934e64b09099b79c8f80d239a8dc60125385e87" +checksum = "144f16f4c7f730165ee685bab31d4ef51781591720112c63160753e1a23c2edb" dependencies = [ "derive_more", "directories 2.0.2", @@ -4638,7 +5050,7 @@ dependencies = [ "kitsune_p2p", "serde", "serde_derive", - "serde_yaml 0.9.21", + "serde_yaml 0.9.25", "structopt", "thiserror", "tracing", @@ -4647,9 +5059,9 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5755ca3e4d8d3121c8294b8ac21a1da072350519309381336ff9e0aaee80e1b5" +checksum = "f733f35118d450fdc165c097d8434224624e6a3ff18b49675be4a452149af04e" dependencies = [ "arbitrary", "holo_hash", @@ -4664,9 +5076,9 @@ dependencies = [ [[package]] name = "holochain_keystore" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c42da7f8151feca101feb628252774771834e700e72dc57f67d7ec11b574c7f" +checksum = "237842d444203febaffcde106c4e22168b569b697199c7430229ab4a888d013d" dependencies = [ "base64 0.13.1", "futures", @@ -4690,9 +5102,9 @@ dependencies = [ [[package]] name = "holochain_p2p" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1ead00875101cad60884f113284d0e62ccaf70b27f700b7f7133fcdec3850a8" +checksum = "2e37d67250268a518dd55d320207a8a7ef0d47f88eb0d7a5468c4df5b168d86c" dependencies = [ "async-trait", "derive_more", @@ -4755,8 +5167,8 @@ version = "0.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" dependencies = [ - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -4765,15 +5177,15 @@ version = "0.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17cec0d0c2317fcb87772d0a8b5b5e88c7276aef93bf3496931e89cb9231c129" dependencies = [ - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "holochain_sqlite" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dad83e4dc6001f80b99d9e9863730d97dd560a562ffbde209a9b4c0b8ac097c" +checksum = "3b0478997b700ab1c98cd990336386c8b78c6a61c6c587269598babf58afa553" dependencies = [ "anyhow", "async-trait", @@ -4787,7 +5199,7 @@ dependencies = [ "fallible-iterator", "fixt", "futures", - "getrandom 0.2.8", + "getrandom 0.2.10", "holo_hash", "holochain_serialized_bytes 0.0.51", "holochain_util", @@ -4822,9 +5234,9 @@ dependencies = [ [[package]] name = "holochain_state" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3745dc3a741280e9bd690b7dae1a633c7264b9c695aaa6ceae65c80443f7def4" +checksum = "39da384cbf8ca1da473eb7ed5365e643e0018497cf68c7393da9254d46fa43c3" dependencies = [ "async-recursion", "base64 0.13.1", @@ -4837,7 +5249,7 @@ dependencies = [ "either", "fallible-iterator", "futures", - "getrandom 0.2.8", + "getrandom 0.2.10", "holo_hash", "holochain_keystore", "holochain_p2p", @@ -4864,9 +5276,9 @@ dependencies = [ [[package]] name = "holochain_test_wasm_common" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97bf9098c13c40681fe96eaacbc1918ea07656595789ad03184271803c6aa5a5" +checksum = "20c27abb2b4f79f0bdffa081cae3f64b722067c5612e18d9a0cab8e4352a3c9d" dependencies = [ "hdk", "serde", @@ -4874,9 +5286,9 @@ dependencies = [ [[package]] name = "holochain_types" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39681c5767cebf220f706be13801a451a61535d83ddaf20a640597c8518fa2a6" +checksum = "1dbb009ac2cebed3e0c216fc0ccb9d2d5c6ee31fcd7017617ff8411d6fb7a700" dependencies = [ "anyhow", "arbitrary", @@ -4916,8 +5328,8 @@ dependencies = [ "serde", "serde_bytes", "serde_derive", - "serde_with", - "serde_yaml 0.9.21", + "serde_with 1.14.0", + "serde_yaml 0.9.25", "shrinkwraprs", "strum 0.18.0", "strum_macros 0.18.0", @@ -4929,9 +5341,9 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6696351bacb3fd484954a51d9c5b52eccfdbb9dfedc4437c258e2d44374587f" +checksum = "08c5ef241a2112529e041c2efec8ced3a7e0cbdbce4e987099172fb2a857aa3f" dependencies = [ "backtrace", "cfg-if 0.1.10", @@ -4947,15 +5359,15 @@ dependencies = [ [[package]] name = "holochain_wasm_test_utils" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e86e3abe453264013e1eecdb61c95d9218dd8fb45fbae7249df585916a3aedc" +checksum = "176e6f1545fe86c407b95b22f309d29d4cbfe7643e302b7ebc388a6324452106" dependencies = [ "holochain_types", "holochain_util", "strum 0.18.0", "strum_macros 0.18.0", - "toml", + "toml 0.5.11", "walkdir", ] @@ -5007,9 +5419,9 @@ dependencies = [ [[package]] name = "holochain_websocket" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e1fd11a074d217a090449c63b71c1ffb8e07a6700a67cc4eab779159e925b7f" +checksum = "4fbb14b20e79dd2ddefbbd3f64477e8d5dea7b095c58b3ed469987dec3ba3b08" dependencies = [ "futures", "ghost_actor 0.4.0-alpha.5", @@ -5032,9 +5444,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd45986999baf8590ff444442cdbbd460ae26e8ecaa7494a69f081c897bbe714" +checksum = "29048ce963a001f672cbf5a1269a148fa2e0ab2f7c5cad58bb8d1c9968097041" dependencies = [ "arbitrary", "contrafact", @@ -5054,7 +5466,7 @@ dependencies = [ "rusqlite", "serde", "serde_bytes", - "serde_yaml 0.9.21", + "serde_yaml 0.9.25", "shrinkwraprs", "strum 0.18.0", "subtle 2.4.1", @@ -5085,30 +5497,30 @@ dependencies = [ [[package]] name = "html5ever" -version = "0.23.0" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce65ac8028cf5a287a7dbf6c4e0a6cf2dcf022ed5b167a81bae66ebf599a8b7" +checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" dependencies = [ "log", "mac", - "markup5ever 0.8.1", - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", + "markup5ever 0.10.1", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "html5ever" -version = "0.25.2" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" dependencies = [ "log", "mac", - "markup5ever 0.10.1", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "markup5ever 0.11.0", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -5119,7 +5531,7 @@ checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", - "itoa 1.0.4", + "itoa 1.0.9", ] [[package]] @@ -5176,18 +5588,18 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "human-panic" -version = "1.1.0" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87eb03e654582b31967d414b86711a7bbd7c6b28a6b7d32857b7d1d45c0926f9" +checksum = "38a841f87949b0dd751864e769a870be79dc34abcee1cf31d737a61d498b22b6" dependencies = [ + "anstream", + "anstyle", "backtrace", - "concolor", - "os_info 2.0.8", + "os_info", "serde", "serde_derive", - "termcolor", - "toml", - "uuid 0.8.2", + "toml 0.7.6", + "uuid 1.4.1", ] [[package]] @@ -5198,9 +5610,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.23" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ "bytes", "futures-channel", @@ -5211,7 +5623,7 @@ dependencies = [ "http-body 0.4.5", "httparse", "httpdate", - "itoa 1.0.4", + "itoa 1.0.9", "pin-project-lite", "socket2 0.4.9", "tokio", @@ -5220,6 +5632,27 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.0.0-rc.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d280a71f348bcc670fc55b02b63c53a04ac0bf2daff2980795aeaf53edae10e6" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body 1.0.0-rc.2", + "httparse", + "httpdate", + "itoa 1.0.9", + "pin-project-lite", + "tokio", + "tracing", + "want", +] + [[package]] name = "hyper-rustls" version = "0.24.1" @@ -5228,10 +5661,10 @@ checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" dependencies = [ "futures-util", "http", - "hyper", + "hyper 0.14.27", "rustls 0.21.6", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", ] [[package]] @@ -5241,41 +5674,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper", + "hyper 0.14.27", "native-tls", "tokio", "tokio-native-tls", ] +[[package]] +name = "hyper-util" +version = "0.0.0" +source = "git+https://github.com/hyperium/hyper-util.git#f898015fc9eca9f459ddac521db278d904099e89" +dependencies = [ + "futures-channel", + "futures-util", + "http", + "hyper 1.0.0-rc.4", + "once_cell", + "pin-project-lite", + "socket2 0.4.9", + "tokio", + "tower", + "tower-service", + "tracing", +] + [[package]] name = "iana-time-zone" -version = "0.1.53" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "winapi", + "windows 0.48.0", ] [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] name = "ico" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031530fe562d8c8d71c0635013d6d155bbfe8ba0aa4b4d2d24ce8af6b71047bd" +checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" dependencies = [ "byteorder", "png", @@ -5319,6 +5769,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "if-addrs" version = "0.6.7" @@ -5358,11 +5818,10 @@ checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" [[package]] name = "ignore" -version = "0.4.18" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" dependencies = [ - "crossbeam-utils", "globset", "lazy_static", "log", @@ -5376,9 +5835,9 @@ dependencies = [ [[package]] name = "image" -version = "0.24.5" +version = "0.24.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945" +checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" dependencies = [ "bytemuck", "byteorder", @@ -5389,20 +5848,31 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg 1.1.0", "hashbrown 0.12.3", "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", + "serde", +] + [[package]] name = "infer" -version = "0.7.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" +checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" dependencies = [ "cfb", ] @@ -5418,10 +5888,10 @@ dependencies = [ "clap 3.2.25", "crossbeam-channel", "crossbeam-utils", - "dashmap 5.4.0", + "dashmap 5.5.0", "env_logger 0.9.3", - "indexmap", - "itoa 1.0.4", + "indexmap 1.9.3", + "itoa 1.0.9", "lazy_static", "log", "num-format", @@ -5437,7 +5907,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" dependencies = [ - "bitflags", + "bitflags 1.3.2", "inotify-sys", "libc", ] @@ -5458,7 +5928,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ "block-padding 0.3.3", - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -5494,31 +5964,32 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.1" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d367024b3f3414d8e01f437f704f41a9f64ab36f9067fa73e526ad4c763c87" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ + "hermit-abi 0.3.2", "libc", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] name = "ipconfig" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.4.9", + "socket2 0.5.3", "widestring", - "winapi", - "winreg", + "windows-sys 0.48.0", + "winreg 0.50.0", ] [[package]] name = "ipnet" -version = "2.5.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "is-macro" @@ -5527,22 +5998,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7d079e129b77477a49c5c4f1cfe9ce6c2c909ef52520693e8e811a714c7b20" dependencies = [ "Inflector", - "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "is-terminal" -version = "0.4.6" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "hermit-abi 0.3.1", - "io-lifetimes", - "rustix 0.37.7", - "windows-sys 0.45.0", + "hermit-abi 0.3.2", + "rustix 0.38.7", + "windows-sys 0.48.0", ] [[package]] @@ -5581,9 +6051,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "javascriptcore-rs" @@ -5591,7 +6061,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "glib", "javascriptcore-rs-sys", ] @@ -5639,22 +6109,34 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] [[package]] name = "json-patch" -version = "0.2.6" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3fa5a61630976fc4c353c70297f2e93f1930e3ccee574d59d618ccbd5154ce" +dependencies = [ + "serde", + "serde_json", + "treediff 3.0.2", +] + +[[package]] +name = "json-patch" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" +checksum = "1f54898088ccb91df1b492cc80029a6fdf1c48ca0db7c6822a8babad69c94658" dependencies = [ "serde", "serde_json", - "treediff", + "thiserror", + "treediff 4.0.2", ] [[package]] @@ -5663,7 +6145,7 @@ version = "8.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", "pem", "ring", "serde", @@ -5683,13 +6165,13 @@ dependencies = [ "futures", "futures-enum", "graphql-parser", - "indexmap", + "indexmap 1.9.3", "juniper_codegen", "serde", "smartstring", "static_assertions", - "url 2.3.1", - "uuid 1.3.0", + "url 2.4.0", + "uuid 1.4.1", "void", ] @@ -5699,10 +6181,10 @@ version = "0.16.0-dev" source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-ws-protocol#a6ae3864573977a131723c21c28fba3e812fb09f" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", - "url 2.3.1", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", + "url 2.4.0", ] [[package]] @@ -5756,18 +6238,18 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" dependencies = [ "cpufeatures", ] [[package]] name = "kitsune_p2p" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfda706b5e183af43db1fa33698d2d5c035a0d9831b70d92e4f148febbf93e91" +checksum = "646cc0379a2ed7529f09f3dae5aaa8c1a303ccf358b608b1b31661339b51ce4f" dependencies = [ "arbitrary", "arrayref", @@ -5809,9 +6291,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c7c44c640e2cac1102b4f8c0646ba9fb9b93104d7a897293863b4573ffbf8f" +checksum = "b34bbe2d79872fbc9044b173dbb5927f410bf556df4f8fb182ceec3916a7b814" dependencies = [ "colored", "derivative", @@ -5833,9 +6315,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +checksum = "393459f0d302ef9abbf80271174b5899737400efa5554a52b0883ae787be2489" dependencies = [ "derive_more", "gcollections", @@ -5847,9 +6329,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_fetch" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26017ad7656a9d0b6a9a3ccd5a180f9e915a76c92ea895064e34c8003d2f5e7b" +checksum = "82eaafc477b3f8f336f08fcaf52882c38dd3d78458864c852bd9042875f704d7" dependencies = [ "derive_more", "futures", @@ -5867,9 +6349,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_mdns" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c208d7e03718484d5b5c12810298bc22c60d1c71837a3b7a7ae8e70e77ba04e" +checksum = "a563ae2f9b61e11ada532ab6e5379bb4fc9d965b79a4793e2cfb3c9610c870d2" dependencies = [ "async-stream", "base64 0.13.1", @@ -5884,9 +6366,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_proxy" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c79c2df7ac60567c0f9dc574d391de6eea349e002adb356fee44607ea119f6" +checksum = "5d2c0abf2abc852f6e668a3a6daae208df67a6a2e7fa3d6f22c085a8020fb386" dependencies = [ "base64 0.13.1", "blake2b_simd 0.5.11", @@ -5909,9 +6391,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +checksum = "5e546f28741482c3a50e75f25f78b712fb2840dff20b17f194231d19cfe23424" dependencies = [ "arbitrary", "chrono", @@ -5922,9 +6404,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_transport_quic" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d9687db0e42e1c46f430aa4fd186b766a7b9de88527272e5fd2539fc878298" +checksum = "f5999a8af746ebee7b0f3954ef9fc3b7b61c13309916a95276e763283be9531f" dependencies = [ "blake2b_simd 1.0.1", "futures", @@ -5942,9 +6424,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_types" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bff1212472faca04202d455e473d204e6beed27b79d14dbde1f02ff2cd1d501" +checksum = "a632abb5fc16d59d8b6b6faf772c92986bbd039d0e13c2cbd7b493f746e2a145" dependencies = [ "arbitrary", "base64 0.13.1", @@ -5954,7 +6436,7 @@ dependencies = [ "kitsune_p2p_dht", "kitsune_p2p_dht_arc", "lair_keystore_api", - "lru", + "lru 0.8.1", "mockall", "nanoid 0.3.0", "observability", @@ -5971,16 +6453,16 @@ dependencies = [ "thiserror", "tokio", "tokio-stream", - "url 2.3.1", + "url 2.4.0", "url2", "webpki 0.22.0", ] [[package]] name = "kqueue" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" dependencies = [ "kqueue-sys", "libc", @@ -5988,11 +6470,11 @@ dependencies = [ [[package]] name = "kqueue-sys" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", ] @@ -6019,45 +6501,69 @@ dependencies = [ [[package]] name = "lair_keystore" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa5e8f029253e54888ad85db4d3843904f5814c6c5d14985257f5263dd8e97b" +checksum = "d453c328fa04779277f6f4b8e4a71f2bd20e0f0566cb837e6f800bc58777e4a8" dependencies = [ "lair_keystore_api", - "pretty_assertions 1.3.0", + "pretty_assertions 1.4.0", "rpassword 7.2.0", "rusqlite", "sqlformat 0.2.1", "structopt", - "sysinfo 0.27.8", - "tracing-subscriber 0.3.16", + "sysinfo 0.28.4", + "tracing-subscriber 0.3.17", ] [[package]] name = "lair_keystore_api" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00cbc9276859e19728b03e65ab8f25903f8e9a70dd3d5e63b19ced26e25dd479" +checksum = "b379baacc103ee1939976fb8f32e6b8ae887a245fbde78bf1ef95e95b3035216" dependencies = [ "base64 0.13.1", "dunce", "hc_seed_bundle", - "lru", + "lru 0.10.1", "nanoid 0.4.0", "once_cell", "parking_lot 0.12.1", "rcgen 0.10.0", "serde", "serde_json", - "serde_yaml 0.9.21", + "serde_yaml 0.9.25", "tokio", - "toml", + "toml 0.5.11", + "toml 0.7.6", "tracing", - "url 2.3.1", + "url 2.4.0", "winapi", "zeroize", ] +[[package]] +name = "lazy-regex" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff63c423c68ea6814b7da9e88ce585f793c87ddd9e78f646970891769c8235d4" +dependencies = [ + "lazy-regex-proc_macros", + "once_cell", + "regex", +] + +[[package]] +name = "lazy-regex-proc_macros" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8edfc11b8f56ce85e207e62ea21557cfa09bb24a8f6b04ae181b086ff8611c22" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "regex", + "syn 1.0.109", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -6099,7 +6605,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" dependencies = [ "arrayvec 0.5.2", - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "ryu", "static_assertions", @@ -6195,53 +6701,65 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.140" +version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] -name = "libdbus-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b" +name = "libffi" +version = "3.2.0" dependencies = [ - "pkg-config", + "libc", + "libffi-sys 2.3.0", ] [[package]] name = "libffi" version = "3.2.0" -source = "git+https://github.com/coasys/libffi-rs.git?branch=windows-space#f6e9e50efde0aa4e940dd6f709a59bb426875362" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" dependencies = [ "libc", - "libffi-sys", + "libffi-sys 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "libffi-sys" +version = "2.3.0" +dependencies = [ + "cc", ] [[package]] name = "libffi-sys" version = "2.3.0" -source = "git+https://github.com/coasys/libffi-rs.git?branch=windows-space#f6e9e50efde0aa4e940dd6f709a59bb426875362" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" dependencies = [ "cc", ] [[package]] name = "libflate" -version = "1.3.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97822bf791bd4d5b403713886a5fbe8bf49520fe78e323b0dc480ca1a03e50b0" +checksum = "9f7d5654ae1795afc7ff76f4365c2c8791b0feb18e8996a96adad8ffd7c3b2bf" dependencies = [ "adler32", + "core2", "crc32fast", + "dary_heap", "libflate_lz77", ] [[package]] name = "libflate_lz77" -version = "1.2.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a52d3a8bfc85f250440e4424db7d857e241a3aebbbe301f3eb606ab15c39acbf" +checksum = "be5f52fb8c451576ec6b79d3f4deb327398bc05bbdbd99021a6e77a4c855d524" dependencies = [ + "core2", + "hashbrown 0.13.2", "rle-decode-fast", ] @@ -6257,15 +6775,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" - -[[package]] -name = "libm" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libmdns" @@ -6335,9 +6847,9 @@ dependencies = [ [[package]] name = "libsodium-sys-stable" -version = "1.19.27" +version = "1.19.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2e36a6759ec7f4d772d2e01af0bf5ba63eb114bbab488cbcf53884c6408bb9" +checksum = "2cf9c3bd17952580efd8f57e3d01d724cfb18d51fbd9dc00a65e5911f71521ba" dependencies = [ "cc", "libc", @@ -6352,9 +6864,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.25.2" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa" +checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326" dependencies = [ "cc", "pkg-config", @@ -6363,9 +6875,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.8" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "libc", @@ -6382,15 +6894,6 @@ dependencies = [ "safemem", ] -[[package]] -name = "link-cplusplus" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" -dependencies = [ - "cc", -] - [[package]] name = "linked-hash-map" version = "0.5.6" @@ -6399,15 +6902,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.1.2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb68f22743a3fb35785f1e7f844ca5a3de2dde5bd0c0ef5b372065814699b121" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.3.1" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" +checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" [[package]] name = "localtunnel-client" @@ -6433,9 +6936,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg 1.1.0", "scopeguard", @@ -6443,11 +6946,10 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" dependencies = [ - "cfg-if 1.0.0", "serde", "value-bag", ] @@ -6479,7 +6981,7 @@ dependencies = [ "serde_json", "serde_yaml 0.8.26", "thiserror", - "thread-id 4.0.0", + "thread-id 4.1.0", "typemap-ors", "winapi", ] @@ -6496,7 +6998,7 @@ dependencies = [ "serde", "serde_json", "tracing", - "tracing-subscriber 0.3.16", + "tracing-subscriber 0.3.17", ] [[package]] @@ -6505,7 +7007,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" dependencies = [ - "indexmap", + "indexmap 1.9.3", "loupe-derive", "rustversion", ] @@ -6516,8 +7018,8 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" dependencies = [ - "quote 1.0.26", - "syn 1.0.103", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -6529,6 +7031,15 @@ dependencies = [ "hashbrown 0.12.3", ] +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + [[package]] name = "lru-cache" version = "0.1.2" @@ -6546,15 +7057,15 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "mac-notification-sys" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5" +checksum = "abc434554ad0e640d772f7f262aa28e61d485212533d3673abe5f3d1729bd42a" dependencies = [ "cc", "dirs-next", "objc-foundation", "objc_id", - "time 0.3.17", + "time 0.3.25", ] [[package]] @@ -6583,35 +7094,44 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "markup5ever" -version = "0.8.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1af46a727284117e09780d05038b1ce6fc9c76cc6df183c3dae5a8955a25e21" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" dependencies = [ "log", - "phf 0.7.24", - "phf_codegen 0.7.24", - "serde", - "serde_derive", - "serde_json", - "string_cache 0.7.5", - "string_cache_codegen 0.4.4", + "phf 0.8.0", + "phf_codegen 0.8.0", + "string_cache", + "string_cache_codegen", "tendril", ] [[package]] name = "markup5ever" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" dependencies = [ "log", - "phf 0.8.0", - "phf_codegen 0.8.0", - "string_cache 0.8.7", - "string_cache_codegen 0.5.2", + "phf 0.10.1", + "phf_codegen 0.10.0", + "string_cache", + "string_cache_codegen", "tendril", ] +[[package]] +name = "markup5ever_rcdom" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9521dd6750f8e80ee6c53d65e2e4656d7de37064f3a7a5d2d11d05df93839c2" +dependencies = [ + "html5ever 0.26.0", + "markup5ever 0.11.0", + "tendril", + "xml5ever", +] + [[package]] name = "match_cfg" version = "0.1.0" @@ -6638,9 +7158,9 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" @@ -6664,7 +7184,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -6673,7 +7193,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da5ac363534dce5fabf69949225e174fbf111a498bf0ff794c8ea1fba9f3dda" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -6707,6 +7227,12 @@ dependencies = [ "libc", ] +[[package]] +name = "memmem" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" + [[package]] name = "memoffset" version = "0.6.5" @@ -6718,18 +7244,18 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg 1.1.0", ] [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" @@ -6764,11 +7290,12 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", + "simd-adler32", ] [[package]] @@ -6786,14 +7313,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -6827,9 +7354,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7e25b214433f669161f414959594216d8e6ba83b6679d3db96899c0b4639033" dependencies = [ "cfg-if 1.0.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -6848,11 +7375,17 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] +[[package]] +name = "monch" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4519a88847ba2d5ead3dc53f1060ec6a571de93f325d9c5c4968147382b1cbc3" + [[package]] name = "more-asserts" version = "0.2.2" @@ -6861,9 +7394,9 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "mr_bundle" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb63fbe49ada1be6fd0e5d2c733458a10de7794a8524ca90eb0650f32d88482a" +checksum = "c67909e9551fd2c5048661e9a73e0161ae40f1589758fb7d297ae7de97606076" dependencies = [ "arbitrary", "bytes", @@ -6877,10 +7410,28 @@ dependencies = [ "serde", "serde_bytes", "serde_derive", - "serde_yaml 0.9.21", + "serde_yaml 0.9.25", "thiserror", ] +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", +] + [[package]] name = "multibase" version = "0.9.1" @@ -6894,18 +7445,18 @@ dependencies = [ [[package]] name = "multihash" -version = "0.18.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e5d911412e631e1de11eb313e4dd71f73fd964401102aab23d6c8327c431ba" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" dependencies = [ "blake2b_simd 1.0.1", "blake2s_simd", "blake3", "core2", - "digest 0.10.6", + "digest 0.10.7", "multihash-derive", - "sha2 0.10.6", - "sha3 0.10.6", + "sha2 0.10.7", + "sha3 0.10.8", "unsigned-varint", ] @@ -6917,9 +7468,9 @@ checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ "proc-macro-crate", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", "synstructure", ] @@ -6932,20 +7483,6 @@ dependencies = [ "serde", ] -[[package]] -name = "multiparty" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed1ec6589a6d4a1e0b33b4c0a3f6ee96dfba88ebdb3da51403fd7cf0a24a4b04" -dependencies = [ - "bytes", - "futures-core", - "httparse", - "memchr", - "pin-project-lite", - "try-lock", -] - [[package]] name = "must_future" version = "0.1.2" @@ -6980,9 +7517,9 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -7027,7 +7564,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" dependencies = [ - "bitflags", + "bitflags 1.3.2", "jni-sys", "ndk-sys", "num_enum", @@ -7051,9 +7588,9 @@ dependencies = [ [[package]] name = "net2" -version = "0.2.38" +version = "0.2.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" +checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" dependencies = [ "cfg-if 0.1.10", "libc", @@ -7082,16 +7619,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" dependencies = [ - "smallvec 1.10.0", + "smallvec 1.11.0", ] [[package]] name = "nix" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cc", "cfg-if 1.0.0", "libc", @@ -7104,19 +7641,31 @@ version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "libc", "memoffset 0.6.5", ] +[[package]] +name = "nix" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" +dependencies = [ + "autocfg 1.1.0", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "libc", +] + [[package]] name = "nix" version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "libc", "static_assertions", @@ -7174,27 +7723,30 @@ version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2c66da08abae1c024c01d635253e402341b4060a12e99b31c7594063bf490a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crossbeam-channel", "filetime", "fsevent-sys", "inotify", "kqueue", "libc", - "mio 0.8.5", + "mio 0.8.8", "walkdir", "winapi", ] [[package]] name = "notify-rust" -version = "4.5.10" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368e89ea58df747ce88be669ae44e79783c1d30bfd540ad0fc520b3f41f0b3b0" +checksum = "5cc2e370356160e41aba3fd0fbac26d86a89ddd2ac4300c03de999a77cfa2509" dependencies = [ - "dbus", "mac-notification-sys", + "serde", "tauri-winrt-notification", + "zbus", + "zvariant", + "zvariant_derive", ] [[package]] @@ -7208,9 +7760,9 @@ dependencies = [ [[package]] name = "ntapi" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc51db7b362b205941f71232e56c625156eb9a929f8cf74a428fd5bc094a4afc" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ "winapi", ] @@ -7227,9 +7779,9 @@ dependencies = [ [[package]] name = "num" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" dependencies = [ "num-bigint", "num-complex", @@ -7254,18 +7806,19 @@ dependencies = [ [[package]] name = "num-bigint-dig" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" dependencies = [ "byteorder", "lazy_static", - "libm 0.2.6", + "libm", "num-integer", "num-iter", "num-traits", "rand 0.8.5", - "smallvec 1.10.0", + "serde", + "smallvec 1.11.0", "zeroize", ] @@ -7284,8 +7837,8 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "arrayvec 0.7.2", - "itoa 1.0.4", + "arrayvec 0.7.4", + "itoa 1.0.9", ] [[package]] @@ -7348,43 +7901,43 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg 1.1.0", - "libm 0.2.6", + "libm", ] [[package]] name = "num_cpus" -version = "1.14.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.1.19", + "hermit-abi 0.3.2", "libc", ] [[package]] name = "num_enum" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -7434,15 +7987,15 @@ checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" dependencies = [ "crc32fast", "hashbrown 0.11.2", - "indexmap", + "indexmap 1.9.3", "memchr", ] [[package]] name = "object" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" dependencies = [ "memchr", ] @@ -7470,11 +8023,20 @@ dependencies = [ "tracing-subscriber 0.2.25", ] +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "one_err" @@ -7482,7 +8044,7 @@ version = "0.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e81851974d8bb6cc9a643cca68afdce7f0a3b80e08a4620388836bb99a680554" dependencies = [ - "indexmap", + "indexmap 1.9.3", "libc", "serde", "serde_json", @@ -7494,7 +8056,7 @@ version = "6.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", "once_cell", "onig_sys", @@ -7544,9 +8106,9 @@ dependencies = [ [[package]] name = "opener" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea3ebcd72a54701f56345f16785a6d3ac2df7e986d273eb4395c0b01db17952" +checksum = "293c15678e37254c15bd2f092314abb4e51d7fdde05c2021279c12631b54f005" dependencies = [ "bstr", "winapi", @@ -7554,11 +8116,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.42" +version = "0.10.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" +checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "foreign-types", "libc", @@ -7569,13 +8131,13 @@ dependencies = [ [[package]] name = "openssl-macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -7586,11 +8148,10 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.77" +version = "0.9.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a" +checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac" dependencies = [ - "autocfg 1.1.0", "cc", "libc", "pkg-config", @@ -7606,7 +8167,7 @@ dependencies = [ "bincode", "futures", "lazy_static", - "percent-encoding 2.2.0", + "percent-encoding 2.3.0", "pin-project 0.4.30", "rand 0.7.3", "serde", @@ -7622,14 +8183,13 @@ dependencies = [ ] [[package]] -name = "os_info" -version = "2.0.8" +name = "ordered-stream" +version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc1b4330bb29087e791ae2a5cf56be64fb8946a4ff5aec2ba11c6ca51f5d60" +checksum = "44630c059eacfd6e08bdaa51b1db2ce33119caa4ddc1235e923109aa5f25ccb1" dependencies = [ - "log", - "serde", - "winapi", + "futures-core", + "pin-project-lite", ] [[package]] @@ -7645,19 +8205,19 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.0.1" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c92f2b54f081d635c77e7120862d48db8e91f7f21cef23ab1b4fe9971c59f55" +checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" dependencies = [ "libc", - "winapi", + "windows-sys 0.48.0", ] [[package]] name = "os_str_bytes" -version = "6.4.1" +version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" [[package]] name = "output_vt100" @@ -7686,15 +8246,39 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d52571ddcb42e9c900c901a18d8d67e393df723fcd51dd59c5b1a85d0acb6cc" +[[package]] +name = "p224" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c06436d66652bc2f01ade021592c80a2aad401570a18aa18b82e440d2b9aa1" +dependencies = [ + "ecdsa 0.16.8", + "elliptic-curve 0.13.5", + "primeorder", + "sha2 0.10.7", +] + [[package]] name = "p256" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ - "ecdsa", - "elliptic-curve", - "sha2 0.10.6", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.7", +] + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.8", + "elliptic-curve 0.13.5", + "primeorder", + "sha2 0.10.7", ] [[package]] @@ -7703,19 +8287,21 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ - "ecdsa", - "elliptic-curve", - "sha2 0.10.6", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.7", ] [[package]] -name = "packed_simd_2" -version = "0.3.8" +name = "p384" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" +checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" dependencies = [ - "cfg-if 1.0.0", - "libm 0.1.4", + "ecdsa 0.16.8", + "elliptic-curve 0.13.5", + "primeorder", + "sha2 0.10.7", ] [[package]] @@ -7734,7 +8320,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" dependencies = [ - "group", + "group 0.12.1", ] [[package]] @@ -7743,7 +8329,7 @@ version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" dependencies = [ - "bitflags", + "bitflags 1.3.2", "glib", "libc", "once_cell", @@ -7759,7 +8345,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.3", + "system-deps 6.1.1", ] [[package]] @@ -7796,8 +8382,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", - "lock_api 0.4.9", - "parking_lot_core 0.8.5", + "lock_api 0.4.10", + "parking_lot_core 0.8.6", ] [[package]] @@ -7806,8 +8392,8 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ - "lock_api 0.4.9", - "parking_lot_core 0.9.4", + "lock_api 0.4.10", + "parking_lot_core 0.9.8", ] [[package]] @@ -7832,35 +8418,35 @@ dependencies = [ "cloudabi", "libc", "redox_syscall 0.1.57", - "smallvec 1.10.0", + "smallvec 1.11.0", "winapi", ] [[package]] name = "parking_lot_core" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" dependencies = [ "cfg-if 1.0.0", "instant", "libc", "redox_syscall 0.2.16", - "smallvec 1.10.0", + "smallvec 1.11.0", "winapi", ] [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.16", - "smallvec 1.10.0", - "windows-sys 0.42.0", + "redox_syscall 0.3.5", + "smallvec 1.11.0", + "windows-targets 0.48.1", ] [[package]] @@ -7909,19 +8495,19 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "hmac 0.12.1", "password-hash 0.4.2", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] name = "pbkdf2" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "hmac 0.12.1", ] @@ -7943,6 +8529,15 @@ dependencies = [ "base64ct", ] +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "1.0.1" @@ -7951,29 +8546,20 @@ checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.5.7" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1403e8401ad5dedea73c626b99758535b342502f8d1e361f4a2dd952749122" +checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" dependencies = [ "thiserror", "ucd-trie", ] -[[package]] -name = "phf" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" -dependencies = [ - "phf_shared 0.7.24", -] - [[package]] name = "phf" version = "0.8.0" @@ -8007,16 +8593,6 @@ dependencies = [ "proc-macro-hack", ] -[[package]] -name = "phf_codegen" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" -dependencies = [ - "phf_generator 0.7.24", - "phf_shared 0.7.24", -] - [[package]] name = "phf_codegen" version = "0.8.0" @@ -8028,13 +8604,13 @@ dependencies = [ ] [[package]] -name = "phf_generator" -version = "0.7.24" +name = "phf_codegen" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" dependencies = [ - "phf_shared 0.7.24", - "rand 0.6.5", + "phf_generator 0.10.0", + "phf_shared 0.10.0", ] [[package]] @@ -8076,9 +8652,9 @@ dependencies = [ "phf_generator 0.8.0", "phf_shared 0.8.0", "proc-macro-hack", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -8090,9 +8666,9 @@ dependencies = [ "phf_generator 0.9.1", "phf_shared 0.9.0", "proc-macro-hack", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -8104,18 +8680,9 @@ dependencies = [ "phf_generator 0.10.0", "phf_shared 0.10.0", "proc-macro-hack", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", -] - -[[package]] -name = "phf_shared" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" -dependencies = [ - "siphasher 0.2.3", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -8124,7 +8691,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" dependencies = [ - "siphasher 0.3.10", + "siphasher", ] [[package]] @@ -8133,7 +8700,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9" dependencies = [ - "siphasher 0.3.10", + "siphasher", ] [[package]] @@ -8142,7 +8709,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "siphasher 0.3.10", + "siphasher", ] [[package]] @@ -8156,11 +8723,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ - "pin-project-internal 1.0.12", + "pin-project-internal 1.1.3", ] [[package]] @@ -8169,27 +8736,27 @@ version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "2c516611246607d0c04186886dbb3a754368ef82c79e9827a802c6d836dd111c" [[package]] name = "pin-utils" @@ -8203,9 +8770,9 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" dependencies = [ - "der", - "pkcs8", - "spki", + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", "zeroize", ] @@ -8215,15 +8782,25 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.8", + "spki 0.7.2", ] [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "platforms" @@ -8233,16 +8810,16 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "plist" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" +checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06" dependencies = [ - "base64 0.13.1", - "indexmap", + "base64 0.21.2", + "indexmap 1.9.3", "line-wrap", + "quick-xml 0.29.0", "serde", - "time 0.3.17", - "xml-rs", + "time 0.3.25", ] [[package]] @@ -8251,21 +8828,33 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", +] + +[[package]] +name = "pmutil" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] name = "png" -version = "0.17.7" +version = "0.17.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" +checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", + "fdeflate", "flate2", - "miniz_oxide 0.6.2", + "miniz_oxide 0.7.1", ] [[package]] @@ -8275,7 +8864,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ "autocfg 1.1.0", - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "concurrent-queue", "libc", @@ -8297,9 +8886,9 @@ dependencies = [ [[package]] name = "polyval" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -8371,16 +8960,23 @@ dependencies = [ [[package]] name = "pretty_assertions" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" dependencies = [ - "ctor", "diff", - "output_vt100", "yansi", ] +[[package]] +name = "primeorder" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3" +dependencies = [ + "elliptic-curve 0.13.5", +] + [[package]] name = "proc-macro-crate" version = "1.1.3" @@ -8388,7 +8984,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ "thiserror", - "toml", + "toml 0.5.11", ] [[package]] @@ -8398,9 +8994,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", "version_check", ] @@ -8410,16 +9006,16 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "version_check", ] [[package]] name = "proc-macro-hack" -version = "0.5.19" +version = "0.5.20+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" @@ -8432,9 +9028,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] @@ -8463,9 +9059,9 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -8502,6 +9098,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "quick-xml" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51" +dependencies = [ + "memchr", +] + [[package]] name = "quinn" version = "0.8.5" @@ -8566,11 +9171,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.26" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ - "proc-macro2 1.0.56", + "proc-macro2 1.0.66", ] [[package]] @@ -8586,12 +9191,13 @@ dependencies = [ [[package]] name = "r2d2_sqlite" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f5d0337e99cd5cacd91ffc326c6cc9d8078def459df560c4f9bf9ba4a51034" +checksum = "99f31323d6161385f385046738df520e0e8694fa74852d35891fc0be08348ddc" dependencies = [ "r2d2", "rusqlite", + "uuid 1.4.1", ] [[package]] @@ -8736,7 +9342,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.10", ] [[package]] @@ -8831,12 +9437,9 @@ dependencies = [ [[package]] name = "raw-window-handle" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" -dependencies = [ - "cty", -] +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" [[package]] name = "rawpointer" @@ -8846,20 +9449,19 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ - "crossbeam-deque", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -8875,7 +9477,7 @@ checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring", - "time 0.3.17", + "time 0.3.25", "yasna", ] @@ -8887,7 +9489,7 @@ checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", "ring", - "time 0.3.17", + "time 0.3.25", "yasna", "zeroize", ] @@ -8913,7 +9515,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -8922,7 +9524,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -8931,7 +9533,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.10", "redox_syscall 0.2.16", "thiserror", ] @@ -8950,18 +9552,18 @@ checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" dependencies = [ "log", "rustc-hash", - "smallvec 1.10.0", + "smallvec 1.11.0", ] [[package]] name = "regex" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" dependencies = [ - "aho-corasick 1.0.2", + "aho-corasick", "memchr", - "regex-automata 0.3.3", + "regex-automata 0.3.6", "regex-syntax 0.7.4", ] @@ -8971,25 +9573,25 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "regex-syntax 0.6.28", + "regex-syntax 0.6.29", ] [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" dependencies = [ - "aho-corasick 1.0.2", + "aho-corasick", "memchr", "regex-syntax 0.7.4", ] [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" @@ -9003,7 +9605,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", "mach", "winapi", @@ -9038,7 +9640,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ "async-compression 0.4.1", - "base64 0.21.0", + "base64 0.21.2", "bytes", "encoding_rs", "futures-core", @@ -9046,7 +9648,7 @@ dependencies = [ "h2", "http", "http-body 0.4.5", - "hyper", + "hyper 0.14.27", "hyper-rustls", "hyper-tls", "ipnet", @@ -9055,26 +9657,26 @@ dependencies = [ "mime", "native-tls", "once_cell", - "percent-encoding 2.2.0", + "percent-encoding 2.3.0", "pin-project-lite", "rustls 0.21.6", - "rustls-pemfile 1.0.2", + "rustls-pemfile 1.0.3", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-rustls 0.24.1", + "tokio-rustls", "tokio-socks", "tokio-util", "tower-service", - "url 2.3.1", + "url 2.4.0", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots", - "winreg", + "webpki-roots 0.22.6", + "winreg 0.10.1", ] [[package]] @@ -9093,11 +9695,21 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint", + "crypto-bigint 0.4.9", "hmac 0.12.1", "zeroize", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle 2.4.1", +] + [[package]] name = "rfd" version = "0.10.0" @@ -9152,7 +9764,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -9168,27 +9780,30 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.41" +version = "0.7.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21499ed91807f07ae081880aabb2ccc0235e9d88011867d984525e9a4c3cfa3e" +checksum = "0200c8230b013893c0b2d6213d6ec64ed2b9be2e0e016682b7224ff82cff5c58" dependencies = [ + "bitvec", "bytecheck", "hashbrown 0.12.3", "ptr_meta", "rend", "rkyv_derive", "seahash", + "tinyvec", + "uuid 1.4.1", ] [[package]] name = "rkyv_derive" -version = "0.7.41" +version = "0.7.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1c672430eb41556291981f45ca900a0239ad007242d1cb4b4167af842db666" +checksum = "b2e06b915b5c230a17d7a736d1e2e63ee753c256a8614ef3f5147b13a4f5541d" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -9199,9 +9814,9 @@ checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" [[package]] name = "rmp" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" dependencies = [ "byteorder", "num-traits", @@ -9221,9 +9836,9 @@ dependencies = [ [[package]] name = "rmp-serde" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b13be192e0220b8afb7222aa5813cb62cc269ebb5cac346ca6487681d2913e" +checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" dependencies = [ "byteorder", "rmp", @@ -9232,9 +9847,9 @@ dependencies = [ [[package]] name = "rmpv" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754" +checksum = "2e0e0214a4a2b444ecce41a4025792fc31f77c7bb89c46d253953ea8c65701ec" dependencies = [ "num-traits", "rmp", @@ -9279,16 +9894,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "094052d5470cbcef561cb848a7209968c9f12dfa6d668f4bca048ac5de51099c" dependencies = [ "byteorder", - "digest 0.10.6", + "digest 0.10.7", "num-bigint-dig", "num-integer", "num-iter", "num-traits", "pkcs1", - "pkcs8", + "pkcs8 0.9.0", "rand_core 0.6.4", - "signature", - "smallvec 1.10.0", + "signature 1.6.4", + "smallvec 1.11.0", "subtle 2.4.1", "zeroize", ] @@ -9305,27 +9920,27 @@ dependencies = [ [[package]] name = "rusqlite" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e213bc3ecb39ac32e81e51ebe31fd888a940515173e3a18a35f8c6e896422a" +checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2" dependencies = [ - "bitflags", + "bitflags 2.3.3", "fallible-iterator", "fallible-streaming-iterator", "hashlink", "libsqlite3-sys", - "smallvec 1.10.0", + "smallvec 1.11.0", ] [[package]] name = "rust-executor" -version = "0.1.0" +version = "0.5.0" dependencies = [ "argon2", - "base64 0.21.0", + "base64 0.21.2", "chrono", "cid", - "clap 4.1.10", + "clap 4.3.21", "crypto_box", "deno_core", "deno_runtime", @@ -9346,26 +9961,27 @@ dependencies = [ "multibase", "multihash", "once_cell", - "os_info 3.7.0", + "os_info", "rand 0.8.5", "scryer-prolog", "secp256k1", - "semver 1.0.17", + "semver 1.0.18", "serde", "serde_json", "tokio", "tokio-stream", - "url 2.3.1", - "uuid 1.3.0", + "tracing", + "url 2.4.0", + "uuid 1.4.1", "warp", "zip", ] [[package]] name = "rustc-demangle" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc-hash" @@ -9384,48 +10000,47 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 0.11.0", + "semver 1.0.18", ] [[package]] -name = "rustc_version" -version = "0.4.0" +name = "rusticata-macros" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ - "semver 1.0.17", + "nom 7.1.3", ] [[package]] name = "rustix" -version = "0.36.2" +version = "0.37.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "203974af07ea769452490ee8de3e5947971efc3a090dca8a779dd432d3fa46a7" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" dependencies = [ - "bitflags", - "errno 0.2.8", + "bitflags 1.3.2", + "errno 0.3.2", "io-lifetimes", "libc", - "linux-raw-sys 0.1.2", - "windows-sys 0.42.0", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", ] [[package]] name = "rustix" -version = "0.37.7" +version = "0.38.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d" +checksum = "172891ebdceb05aa0005f533a6cbfca599ddd7d966f6f5d4d9b2e70478e70399" dependencies = [ - "bitflags", - "errno 0.3.0", - "io-lifetimes", + "bitflags 2.3.3", + "errno 0.3.2", "libc", - "linux-raw-sys 0.3.1", - "windows-sys 0.45.0", + "linux-raw-sys 0.4.5", + "windows-sys 0.48.0", ] [[package]] @@ -9448,18 +10063,18 @@ checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" dependencies = [ "log", "ring", - "rustls-webpki", + "rustls-webpki 0.101.2", "sct", ] [[package]] name = "rustls-native-certs" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.2", + "rustls-pemfile 1.0.3", "schannel", "security-framework", ] @@ -9475,11 +10090,21 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.2" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" dependencies = [ - "base64 0.21.0", + "ring", + "untrusted", ] [[package]] @@ -9494,17 +10119,17 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.9" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "rustyline" -version = "9.1.2" +version = "10.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039" +checksum = "c1e83c32c3f3c33b08496e0d1df9ea8c64d39adb8eb36a1ebb1440c690697aef" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "clipboard-win", "dirs-next", @@ -9512,10 +10137,9 @@ dependencies = [ "libc", "log", "memchr", - "nix 0.23.1", + "nix 0.25.1", "radix_trie", "scopeguard", - "smallvec 1.10.0", "unicode-segmentation", "unicode-width", "utf8parse", @@ -9524,19 +10148,19 @@ dependencies = [ [[package]] name = "rustyline" -version = "10.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1cd5ae51d3f7bf65d7969d579d502168ef578f289452bd8ccc91de28fda20e" +checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9" dependencies = [ - "bitflags", + "bitflags 2.3.3", "cfg-if 1.0.0", "clipboard-win", - "dirs-next", "fd-lock", + "home", "libc", "log", "memchr", - "nix 0.24.2", + "nix 0.26.2", "radix_trie", "scopeguard", "unicode-segmentation", @@ -9547,9 +10171,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "safemem" @@ -9563,7 +10187,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -9577,12 +10201,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.20" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "lazy_static", - "windows-sys 0.36.1", + "windows-sys 0.48.0", ] [[package]] @@ -9602,22 +10225,17 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scryer-prolog" version = "0.9.1" -source = "git+https://github.com/coasys/scryer-prolog?rev=c5e63015a474f8533db4deb69752956eec9da4b9#c5e63015a474f8533db4deb69752956eec9da4b9" dependencies = [ "base64 0.12.3", + "bit-set", + "bitvec", "blake2 0.8.1", "bytes", "chrono", @@ -9634,20 +10252,20 @@ dependencies = [ "git-version", "hostname", "http-body-util", - "hyper", - "hyper-tls", - "indexmap", + "hyper 1.0.0-rc.4", + "hyper-util", + "indexmap 1.9.3", "lazy_static", "lexical 5.2.2", "libc", - "libffi", + "libffi 3.2.0", "libloading", "modular-bitfield", "native-tls", "ordered-float", "phf 0.9.0", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "rand 0.8.5", "ref_thread_local", "regex", @@ -9655,22 +10273,34 @@ dependencies = [ "ring", "ripemd160", "roxmltree", - "rustyline 9.1.2", + "rustyline 12.0.0", "ryu", "select", "sha3 0.8.2", - "smallvec 1.10.0", + "smallvec 1.11.0", "sodiumoxide", "static_assertions", "strum 0.23.0", "strum_macros 0.23.1", - "syn 1.0.103", + "syn 1.0.109", "to-syn-value", "to-syn-value_derive", "tokio", "walkdir", ] +[[package]] +name = "scrypt" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +dependencies = [ + "password-hash 0.5.0", + "pbkdf2 0.12.2", + "salsa20", + "sha2 0.10.7", +] + [[package]] name = "sct" version = "0.7.0" @@ -9699,10 +10329,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ - "base16ct", - "der", - "generic-array 0.14.6", - "pkcs8", + "base16ct 0.1.1", + "der 0.6.1", + "generic-array 0.14.7", + "pkcs8 0.9.0", + "subtle 2.4.1", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.8", + "generic-array 0.14.7", + "pkcs8 0.10.2", "subtle 2.4.1", "zeroize", ] @@ -9729,11 +10373,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.7.0" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -9742,9 +10386,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", "libc", @@ -9752,12 +10396,13 @@ dependencies = [ [[package]] name = "select" -version = "0.4.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac645958c62108d11f90f8d34e4dc2799c838fc995ed4c2075867a2a8d5be76b" +checksum = "6f9da09dc3f4dfdb6374cbffff7a2cffcec316874d4429899eefdc97b3b94dcd" dependencies = [ "bit-set", - "html5ever 0.23.0", + "html5ever 0.26.0", + "markup5ever_rcdom", ] [[package]] @@ -9766,7 +10411,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cssparser", "derive_more", "fxhash", @@ -9776,7 +10421,7 @@ dependencies = [ "phf_codegen 0.8.0", "precomputed-hash", "servo_arc", - "smallvec 1.10.0", + "smallvec 1.11.0", "thin-slice", ] @@ -9800,9 +10445,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", ] @@ -9824,9 +10469,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.159" +version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" +checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" dependencies = [ "serde_derive", ] @@ -9852,45 +10497,54 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.9" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.159" +version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" +checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.13", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] name = "serde_json" -version = "1.0.95" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" +checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" dependencies = [ - "indexmap", - "itoa 1.0.4", + "indexmap 2.0.0", + "itoa 1.0.9", "ryu", "serde", ] [[package]] name = "serde_repr" -version = "0.1.9" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", +] + +[[package]] +name = "serde_spanned" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "serde", ] [[package]] @@ -9900,23 +10554,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.4", + "itoa 1.0.9", "ryu", "serde", ] [[package]] name = "serde_v8" -version = "0.90.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916ca7852a4c5f0ba59ce4a46301bf7c7ad573c2c89a0fe67e90fe30dcbd6f7d" +checksum = "b3bafaee0eecbef6c47ad3e7e0a764e22eb35a229ff7d06b7801fcbeaa5364b8" dependencies = [ "bytes", "derive_more", "num-bigint", "serde", "serde_bytes", - "smallvec 1.10.0", + "smallvec 1.11.0", + "thiserror", "v8", ] @@ -9927,7 +10582,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" dependencies = [ "serde", - "serde_with_macros", + "serde_with_macros 1.5.2", +] + +[[package]] +name = "serde_with" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1402f54f9a3b9e2efe71c1cea24e648acce55887983553eeb858cf3115acfd49" +dependencies = [ + "base64 0.21.2", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.0.0", + "serde", + "serde_json", + "serde_with_macros 3.2.0", + "time 0.3.25", ] [[package]] @@ -9937,9 +10609,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ "darling 0.13.4", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", +] + +[[package]] +name = "serde_with_macros" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9197f1ad0e3c173a0222d3c4404fb04c3afe87e962bcb327af73e8301fa203c7" +dependencies = [ + "darling 0.20.3", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -9948,7 +10632,7 @@ version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ - "indexmap", + "indexmap 1.9.3", "ryu", "serde", "yaml-rust", @@ -9956,12 +10640,12 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.21" +version = "0.9.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" +checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" dependencies = [ - "indexmap", - "itoa 1.0.4", + "indexmap 2.0.0", + "itoa 1.0.9", "ryu", "serde", "unsafe-libyaml", @@ -9984,9 +10668,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -10020,7 +10704,16 @@ checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", +] + +[[package]] +name = "sha1" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +dependencies = [ + "sha1_smol", ] [[package]] @@ -10031,9 +10724,15 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + [[package]] name = "sha2" version = "0.9.9" @@ -10049,13 +10748,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -10073,11 +10772,11 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "keccak", ] @@ -10106,29 +10805,18 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" dependencies = [ - "bitflags", + "bitflags 1.3.2", "itertools 0.8.2", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", -] - -[[package]] -name = "signal-hook" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729" -dependencies = [ - "libc", - "mio 0.7.14", - "signal-hook-registry", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "signal-hook" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ "libc", "signal-hook-registry", @@ -10142,14 +10830,15 @@ checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" dependencies = [ "libc", "mio 0.7.14", - "signal-hook 0.3.15", + "mio 0.8.8", + "signal-hook", ] [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] @@ -10160,7 +10849,17 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +dependencies = [ + "digest 0.10.7", "rand_core 0.6.4", ] @@ -10176,6 +10875,12 @@ dependencies = [ "paste", ] +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + [[package]] name = "simdutf8" version = "0.1.4" @@ -10191,15 +10896,9 @@ dependencies = [ "num-bigint", "num-traits", "thiserror", - "time 0.3.17", + "time 0.3.25", ] -[[package]] -name = "siphasher" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" - [[package]] name = "siphasher" version = "0.3.10" @@ -10211,9 +10910,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg 1.1.0", ] @@ -10229,9 +10928,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "smartstring" @@ -10265,6 +10964,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "sodiumoxide" version = "0.2.7" @@ -10278,9 +10987,9 @@ dependencies = [ [[package]] name = "sodoken" -version = "0.0.7" +version = "0.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c6c18e49cbf5a8b8bae94ce992b4ae019fdcb5872a318348e97de3d1f671776" +checksum = "4ebd7d30290221181652f7a08112f5e7871e3deffde718dfa621025aa0e9c290" dependencies = [ "libc", "libsodium-sys-stable", @@ -10297,7 +11006,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "gio", "glib", "libc", @@ -10311,7 +11020,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" dependencies = [ - "bitflags", + "bitflags 1.3.2", "gio-sys", "glib-sys", "gobject-sys", @@ -10321,17 +11030,18 @@ dependencies = [ [[package]] name = "sourcemap" -version = "6.2.3" +version = "6.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed16231c92d0a6f0388f56e0ab2be24ecff1173f8e22f0ea5e074d0525631cb" +checksum = "e9221a6bba3e9cfa7decfe64edf5233311e1bf837ea3234df6e7f35836e1093d" dependencies = [ "data-encoding", + "debugid", "if_chain", "rustc_version 0.2.3", "serde", "serde_json", "unicode-id", - "url 2.3.1", + "url 2.4.0", ] [[package]] @@ -10346,7 +11056,7 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" dependencies = [ - "lock_api 0.4.9", + "lock_api 0.4.10", ] [[package]] @@ -10356,7 +11066,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der 0.7.8", ] [[package]] @@ -10447,25 +11167,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0a9eb2715209fb8cc0d942fcdff45674bfc9f0090a0d897e85a22955ad159b" dependencies = [ "futures-core", - "pin-project 1.0.12", + "pin-project 1.1.3", "tokio", ] -[[package]] -name = "string_cache" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89c058a82f9fd69b1becf8c274f412281038877c553182f1d02eb027045a2d67" -dependencies = [ - "lazy_static", - "new_debug_unreachable", - "phf_shared 0.7.24", - "precomputed-hash", - "serde", - "string_cache_codegen 0.4.4", - "string_cache_shared", -] - [[package]] name = "string_cache" version = "0.8.7" @@ -10480,19 +11185,6 @@ dependencies = [ "serde", ] -[[package]] -name = "string_cache_codegen" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" -dependencies = [ - "phf_generator 0.7.24", - "phf_shared 0.7.24", - "proc-macro2 1.0.56", - "quote 1.0.26", - "string_cache_shared", -] - [[package]] name = "string_cache_codegen" version = "0.5.2" @@ -10501,27 +11193,21 @@ checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" dependencies = [ "phf_generator 0.10.0", "phf_shared 0.10.0", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", ] -[[package]] -name = "string_cache_shared" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" - [[package]] name = "string_enum" -version = "0.3.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91f42363e5ca94ea6f3faee9e3b5e1a4047535ae323f5c0579385fb2ae95874e" +checksum = "0090512bdfee4b56d82480d66c0fd8a6f53f0fe0f97e075e949b252acdd482e0" dependencies = [ - "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.32", "swc_macros_common", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -10561,9 +11247,9 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck 0.3.3", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -10574,18 +11260,18 @@ checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" [[package]] name = "strum" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" -dependencies = [ - "strum_macros 0.22.0", -] +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" [[package]] name = "strum" -version = "0.23.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.2", +] [[package]] name = "strum_macros" @@ -10594,47 +11280,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" dependencies = [ "heck 0.3.3", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "strum_macros" -version = "0.22.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" dependencies = [ "heck 0.3.3", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "rustversion", + "syn 1.0.109", ] [[package]] name = "strum_macros" -version = "0.23.1" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck 0.3.3", - "proc-macro2 1.0.56", - "quote 1.0.26", + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.32", "rustversion", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "strum_macros" -version = "0.24.3" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" dependencies = [ - "heck 0.4.0", - "proc-macro2 1.0.56", - "quote 1.0.26", + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.32", "rustversion", - "syn 1.0.103", + "syn 2.0.28", ] [[package]] @@ -10670,23 +11357,23 @@ dependencies = [ [[package]] name = "swc_atoms" -version = "0.4.39" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ebef84c2948cd0d1ba25acbf1b4bd9d80ab6f057efdbe35d8449b8d54699401" +checksum = "93d0307dc4bfd107d49c7528350c372758cfca94fb503629b9a056e6a1572860" dependencies = [ "once_cell", "rustc-hash", "serde", - "string_cache 0.8.7", - "string_cache_codegen 0.5.2", + "string_cache", + "string_cache_codegen", "triomphe", ] [[package]] name = "swc_common" -version = "0.29.37" +version = "0.31.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5005cd73617e18592faa31298225b26f1c407b84a681d67efb735c3d3458e101" +checksum = "19c774005489d2907fb67909cf42af926e72edee1366512777c605ba2ef19c94" dependencies = [ "ahash 0.7.6", "ast_node", @@ -10699,15 +11386,15 @@ dependencies = [ "once_cell", "rustc-hash", "serde", - "siphasher 0.3.10", + "siphasher", "sourcemap", - "string_cache 0.8.7", + "string_cache", "swc_atoms", "swc_eq_ignore_macros", "swc_visit", "tracing", "unicode-width", - "url 2.3.1", + "url 2.4.0", ] [[package]] @@ -10716,7 +11403,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89c8fc2c12bb1634c7c32fc3c9b6b963ad8f034cc62c4ecddcf215dc4f6f959d" dependencies = [ - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "swc_config_macro", @@ -10728,20 +11415,20 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dadb9998d4f5fc36ef558ed5a092579441579ee8c6fcce84a5228cca9df4004" dependencies = [ - "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.32", "swc_macros_common", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "swc_ecma_ast" -version = "0.100.1" +version = "0.104.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dbfdbe05dde274473a6030dcf5e52e579516aea761d25d7a8d128f2ab597f09" +checksum = "b5cf9dd351d0c285dcd36535267953a18995d4dda0cbe34ac9d1df61aa415b26" dependencies = [ - "bitflags", + "bitflags 2.3.3", "is-macro", "num-bigint", "scoped-tls", @@ -10754,9 +11441,9 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.135.2" +version = "0.139.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78d196e6979af0cbb91084361ca006db292a6374f75ec04cbb55306051cc4f50" +checksum = "c66d1ea16bb9b7ea6f87f17325742ff256fcbd65b188af57c2bf415fe4afc945" dependencies = [ "memchr", "num-bigint", @@ -10773,22 +11460,22 @@ dependencies = [ [[package]] name = "swc_ecma_codegen_macros" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0159c99f81f52e48fe692ef7af1b0990b45d3006b14c6629be0b1ffee1b23aea" +checksum = "bf4ee0caee1018808d94ecd09490cb7affd3d504b19aa11c49238f5fc4b54901" dependencies = [ - "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.32", "swc_macros_common", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "swc_ecma_loader" -version = "0.41.39" +version = "0.43.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681c1fbb762c82700a5bd23dc39bad892a287ea9fb2121cf56e77f1ddc89afeb" +checksum = "fe45f1e5dcc1b005544ff78253b787dea5dfd5e2f712b133964cdc3545c954a4" dependencies = [ "ahash 0.7.6", "anyhow", @@ -10800,16 +11487,15 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.130.2" +version = "0.134.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "042435aaeb71c4416cde440323ac9fa2c24121c2ec150f0cb79999c2e6ceffaa" +checksum = "f0a3fcfe3d83dd445cbd9321882e47b467594433d9a21c4d6c37a27f534bb89e" dependencies = [ "either", - "enum_kind", "lexical 6.1.1", "num-bigint", "serde", - "smallvec 1.10.0", + "smallvec 1.11.0", "smartstring", "stacker", "swc_atoms", @@ -10821,17 +11507,18 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.122.3" +version = "0.127.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd4141092b17cd85eefc224b035b717e03c910b9fd58e4e637ffd05236d7e13b" +checksum = "f9c33ec5369178f3a0580ab86cfe89ffb9c3fbd122aed379cfb71d469d9d61c1" dependencies = [ "better_scoped_tls", - "bitflags", + "bitflags 2.3.3", + "indexmap 1.9.3", "once_cell", "phf 0.10.1", "rustc-hash", "serde", - "smallvec 1.10.0", + "smallvec 1.11.0", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -10843,9 +11530,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "0.111.3" +version = "0.116.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5022c592f0ae17f4dc42031e1c4c60b7e6d2d8d1c2428b986759a92ea853801" +checksum = "6e3b0d5f362f0da97be1f1b06d7b0d8667ea70b4adeabff0dcaecb6259c09525" dependencies = [ "swc_atoms", "swc_common", @@ -10857,26 +11544,27 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_macros" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf907935ec5492256b523ae7935a824d9fdc0368dcadc41375bad0dca91cd8b" +checksum = "984d5ac69b681fc5438f9abf82b0fda34fe04e119bc75f8213b7e01128c7c9a2" dependencies = [ - "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.32", "swc_macros_common", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "swc_ecma_transforms_proposal" -version = "0.156.4" +version = "0.161.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4015c3ab090f27eee0834d45bdcf9666dc6329ed06845d1882cdfe6f4826fca" +checksum = "0cdce42d44ef775bc29f5ada3678a80ff72fa17a0ef705e14f63cfd0e0155e0e" dependencies = [ "either", + "rustc-hash", "serde", - "smallvec 1.10.0", + "smallvec 1.11.0", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -10889,16 +11577,15 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "0.167.4" +version = "0.173.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db1c7801b1d7741ab335441dd301ddcc4183fb250d5e6efaab33b03def268c06" +checksum = "5fb9481ad4e2acba34c6fbb6d4ccc64efe9f1821675e883dcfa732d7220f4b1e" dependencies = [ "ahash 0.7.6", "base64 0.13.1", - "dashmap 5.4.0", - "indexmap", + "dashmap 5.5.0", + "indexmap 1.9.3", "once_cell", - "regex", "serde", "sha-1 0.10.0", "string_enum", @@ -10915,9 +11602,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "0.171.4" +version = "0.177.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "142e8fb5ebe870bc51b3a95c0214af9112d3475b7cd5be4f13b87f3be664841a" +checksum = "1fe2eea4f5b8a25c93cdaa29fb1ce4108893da88a11e61e04b7f5295b5468829" dependencies = [ "serde", "swc_atoms", @@ -10931,11 +11618,11 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.113.3" +version = "0.117.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c44885603c09926118708f4352e04242c2482bc16eb51ad7beb8ad4cf5f7bb6" +checksum = "ad791bbfdafcebd878584021e050964c8ab68aba7eeac9d0ee4afba4c284a629" dependencies = [ - "indexmap", + "indexmap 1.9.3", "num_cpus", "once_cell", "rustc-hash", @@ -10949,9 +11636,9 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.86.1" +version = "0.90.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147cf9137da6fe2704a5defd29a1cde849961978f8c92911e6790d50df475fef" +checksum = "6ce3ac941ae1d6c7e683aa375fc71fbf58df58b441f614d757fbb10554936ca2" dependencies = [ "num-bigint", "swc_atoms", @@ -10967,10 +11654,10 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c20468634668c2bbab581947bb8c75c97158d5a6959f4ba33df20983b20b4f6" dependencies = [ - "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -10979,17 +11666,17 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e582c3e3c2269238524923781df5be49e011dbe29cf7683a2215d600a562ea6" dependencies = [ - "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "swc_visit" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1d5999f23421c8e21a0f2bc53a0b9e8244f3b421de89471561af2fbe40b9cca" +checksum = "5f412dd4fbc58f509a04e64f5c8038333142fc139e8232f01b883db0094b3b51" dependencies = [ "either", "swc_visit_macros", @@ -10997,16 +11684,16 @@ dependencies = [ [[package]] name = "swc_visit_macros" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebeed7eb0f545f48ad30f5aab314e5208b735bcea1d1464f26e20f06db904989" +checksum = "4cfc226380ba54a5feed2c12f3ccd33f1ae8e959160290e5d2d9b4e918b6472a" dependencies = [ "Inflector", - "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "pmutil 0.5.3", + "proc-macro2 1.0.66", + "quote 1.0.32", "swc_macros_common", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -11022,23 +11709,23 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.103" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.13" +version = "2.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" +checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "unicode-ident", ] @@ -11048,45 +11735,71 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", "unicode-xid 0.2.4", ] [[package]] name = "syntect" -version = "5.0.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c454c27d9d7d9a84c7803aaa3c50cd088d2906fe3c6e42da3209aa623576a8" +checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" dependencies = [ "bincode", - "bitflags", + "bitflags 1.3.2", "flate2", "fnv", - "lazy_static", "once_cell", "onig", "plist", - "regex-syntax 0.6.28", + "regex-syntax 0.7.4", "serde", - "serde_derive", "serde_json", "thiserror", "walkdir", "yaml-rust", ] +[[package]] +name = "sys-locale" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8a11bd9c338fdba09f7881ab41551932ad42e405f61d01e8406baea71c07aee" +dependencies = [ + "js-sys", + "libc", + "wasm-bindgen", + "web-sys", + "windows-sys 0.45.0", +] + +[[package]] +name = "sysinfo" +version = "0.27.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33" +dependencies = [ + "cfg-if 1.0.0", + "core-foundation-sys", + "libc", + "ntapi 0.4.1", + "once_cell", + "rayon", + "winapi", +] + [[package]] name = "sysinfo" -version = "0.23.13" +version = "0.28.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3977ec2e0520829be45c8a2df70db2bf364714d8a748316a10c3c35d4d2b01c9" +checksum = "b4c2f3ca6693feb29a89724516f016488e9aafc7f37264f898593ee4b942f31b" dependencies = [ "cfg-if 1.0.0", "core-foundation-sys", "libc", - "ntapi 0.3.7", + "ntapi 0.4.1", "once_cell", "rayon", "winapi", @@ -11094,14 +11807,14 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.27.8" +version = "0.29.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33" +checksum = "165d6d8539689e3d3bc8b98ac59541e1f21c7de7c85d60dc80e43ae0ed2113db" dependencies = [ "cfg-if 1.0.0", "core-foundation-sys", "libc", - "ntapi 0.4.0", + "ntapi 0.4.1", "once_cell", "rayon", "winapi", @@ -11116,30 +11829,30 @@ dependencies = [ "cfg-expr 0.9.1", "heck 0.3.3", "pkg-config", - "toml", + "toml 0.5.11", "version-compare 0.0.11", ] [[package]] name = "system-deps" -version = "6.0.3" +version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" +checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3" dependencies = [ - "cfg-expr 0.11.0", - "heck 0.4.0", + "cfg-expr 0.15.4", + "heck 0.4.1", "pkg-config", - "toml", + "toml 0.7.6", "version-compare 0.1.1", ] [[package]] name = "tao" -version = "0.15.6" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c8fab9f2ba9a6d7ad55b46f812984b6ab203d774c162163ac297edc9567404b" +checksum = "6a6d198e01085564cea63e976ad1566c1ba2c2e4cc79578e35d9f05521505e31" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "cc", "cocoa", @@ -11151,6 +11864,7 @@ dependencies = [ "gdk", "gdk-pixbuf", "gdk-sys", + "gdkwayland-sys", "gdkx11-sys", "gio", "glib", @@ -11169,18 +11883,29 @@ dependencies = [ "objc", "once_cell", "parking_lot 0.12.1", - "paste", "png", "raw-window-handle", "scopeguard", "serde", + "tao-macros", "unicode-segmentation", - "uuid 1.3.0", + "uuid 1.4.1", "windows 0.39.0", "windows-implement", "x11-dl", ] +[[package]] +name = "tao-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b27a4bcc5eb524658234589bdffc7e7bfb996dbae6ce9393bfd39cb4159b445" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", +] + [[package]] name = "tap" version = "1.0.1" @@ -11189,9 +11914,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.38" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" dependencies = [ "filetime", "libc", @@ -11200,9 +11925,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.7" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" +checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "task-motel" @@ -11218,12 +11943,12 @@ dependencies = [ [[package]] name = "tauri" -version = "1.2.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18203448b9d4dcad55607eafeda6dc7fe135848e5f567cd8bdade6cafd8b1a85" +checksum = "7fbe522898e35407a8e60dc3870f7579fea2fc262a6a6072eccdd37ae1e1d91e" dependencies = [ "anyhow", - "attohttpc", + "bytes", "cocoa", "dirs-next", "embed_plist", @@ -11233,27 +11958,29 @@ dependencies = [ "glib", "glob", "gtk", - "heck 0.4.0", + "heck 0.4.1", "http", "ignore", "notify-rust", "objc", "once_cell", "open 3.2.0", - "os_info 3.7.0", + "os_info", "os_pipe", - "percent-encoding 2.2.0", + "percent-encoding 2.3.0", "rand 0.8.5", "raw-window-handle", "regex", + "reqwest", "rfd", - "semver 1.0.17", + "semver 1.0.18", "serde", "serde_json", "serde_repr", "serialize-to-javascript", "shared_child", "state", + "sys-locale", "tar", "tauri-macros", "tauri-runtime", @@ -11262,8 +11989,8 @@ dependencies = [ "tempfile", "thiserror", "tokio", - "url 2.3.1", - "uuid 1.3.0", + "url 2.4.0", + "uuid 1.4.1", "webkit2gtk", "webview2-com", "windows 0.39.0", @@ -11271,56 +11998,57 @@ dependencies = [ [[package]] name = "tauri-build" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8807c85d656b2b93927c19fe5a5f1f1f348f96c2de8b90763b3c2d561511f9b4" +checksum = "7d2edd6a259b5591c8efdeb9d5702cb53515b82a6affebd55c7fd6d3a27b7d1b" dependencies = [ "anyhow", "cargo_toml", - "heck 0.4.0", - "json-patch", - "semver 1.0.17", + "heck 0.4.1", + "json-patch 1.0.0", + "semver 1.0.18", + "serde", "serde_json", "tauri-utils", - "winres", + "tauri-winres", ] [[package]] name = "tauri-codegen" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251" +checksum = "54ad2d49fdeab4a08717f5b49a163bdc72efc3b1950b6758245fcde79b645e1a" dependencies = [ - "base64 0.13.1", + "base64 0.21.2", "brotli", "ico", - "json-patch", + "json-patch 1.0.0", "plist", "png", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "regex", - "semver 1.0.17", + "semver 1.0.18", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "tauri-utils", "thiserror", - "time 0.3.17", - "uuid 1.3.0", + "time 0.3.25", + "uuid 1.4.1", "walkdir", ] [[package]] name = "tauri-macros" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075" +checksum = "8eb12a2454e747896929338d93b0642144bb51e0dddbb36e579035731f0d76b7" dependencies = [ - "heck 0.4.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "heck 0.4.1", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", "tauri-codegen", "tauri-utils", ] @@ -11339,9 +12067,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c507d954d08ac8705d235bc70ec6975b9054fb95ff7823af72dbb04186596f3b" +checksum = "108683199cb18f96d2d4134187bb789964143c845d2d154848dda209191fd769" dependencies = [ "gtk", "http", @@ -11352,25 +12080,26 @@ dependencies = [ "serde_json", "tauri-utils", "thiserror", - "uuid 1.3.0", + "url 2.4.0", + "uuid 1.4.1", "webview2-com", "windows 0.39.0", ] [[package]] name = "tauri-runtime-wry" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7821c34cf1bd6d89ff46b46a53f3a5050d92afaf2053569f1cc4531167257b24" +checksum = "0b7aa256a1407a3a091b5d843eccc1a5042289baf0a43d1179d9f0fcfea37c1b" dependencies = [ "cocoa", "gtk", - "percent-encoding 2.2.0", + "percent-encoding 2.3.0", "rand 0.8.5", "raw-window-handle", "tauri-runtime", "tauri-utils", - "uuid 1.3.0", + "uuid 1.4.1", "webkit2gtk", "webview2-com", "windows 0.39.0", @@ -11379,54 +12108,64 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5abbc109a6eb45127956ffcc26ef0e875d160150ac16cfa45d26a6b2871686f1" +checksum = "03fc02bb6072bb397e1d473c6f76c953cda48b4a2d0cce605df284aa74a12e84" dependencies = [ "brotli", "ctor", + "dunce", "glob", - "heck 0.4.0", + "heck 0.4.1", "html5ever 0.25.2", "infer", - "json-patch", + "json-patch 1.0.0", "kuchiki", "memchr", "phf 0.10.1", - "proc-macro2 1.0.56", - "quote 1.0.26", - "semver 1.0.17", + "proc-macro2 1.0.66", + "quote 1.0.32", + "semver 1.0.18", "serde", "serde_json", - "serde_with", + "serde_with 3.2.0", "thiserror", - "url 2.3.1", + "url 2.4.0", "walkdir", "windows 0.39.0", ] +[[package]] +name = "tauri-winres" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" +dependencies = [ + "embed-resource", + "toml 0.7.6", +] + [[package]] name = "tauri-winrt-notification" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" +checksum = "4f5bff1d532fead7c43324a0fa33643b8621a47ce2944a633be4cb6c0240898f" dependencies = [ "quick-xml 0.23.1", - "strum 0.22.0", "windows 0.39.0", ] [[package]] name = "tempfile" -version = "3.5.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651" dependencies = [ "cfg-if 1.0.0", - "fastrand", + "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.37.7", - "windows-sys 0.45.0", + "rustix 0.38.7", + "windows-sys 0.48.0", ] [[package]] @@ -11442,9 +12181,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] @@ -11474,8 +12213,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" dependencies = [ "cargo_metadata", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "serde", "strum_macros 0.24.3", ] @@ -11489,10 +12228,10 @@ dependencies = [ "darling 0.14.4", "if_chain", "lazy_static", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", "subprocess", - "syn 1.0.103", + "syn 1.0.109", "test-fuzz-internal", "toolchain_find", "unzip-n", @@ -11544,22 +12283,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.38" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.38" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] @@ -11575,9 +12314,9 @@ dependencies = [ [[package]] name = "thread-id" -version = "4.0.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fdfe0627923f7411a43ec9ec9c39c3a9b4151be313e0922042581fb6c9b717f" +checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" dependencies = [ "libc", "redox_syscall 0.2.16", @@ -11586,18 +12325,19 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if 1.0.0", "once_cell", ] [[package]] name = "time" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", @@ -11606,11 +12346,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.17" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" dependencies = [ - "itoa 1.0.4", + "deranged", + "itoa 1.0.9", "serde", "time-core", "time-macros", @@ -11618,15 +12359,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.6" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" dependencies = [ "time-core", ] @@ -11651,9 +12392,9 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "to-syn-value" @@ -11661,7 +12402,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45dcb7b4108a4793bdd74aa3714296c6eaf43663edf73fa8625d0d7621e68447" dependencies = [ - "syn 1.0.103", + "syn 1.0.109", "to-syn-value_derive", ] @@ -11671,61 +12412,62 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd4fdec6de01b568c1d3721c9d46a352623c536cd55a8a5acfefb63d1fccccbc" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "tokio" -version = "1.25.0" +version = "1.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" +checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" dependencies = [ "autocfg 1.1.0", + "backtrace", "bytes", "libc", - "memchr", - "mio 0.8.5", + "mio 0.8.8", "num_cpus", "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", "socket2 0.4.9", "tokio-macros", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "1.8.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] -name = "tokio-native-tls" -version = "0.3.0" +name = "tokio-metrics" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "b60ac6224d622f71d0b80546558eedf8ff6c2d3817517a9d3ed87ce24fccf6a6" dependencies = [ - "native-tls", + "futures-util", + "pin-project-lite", "tokio", + "tokio-stream", ] [[package]] -name = "tokio-rustls" -version = "0.23.4" +name = "tokio-native-tls" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ - "rustls 0.20.8", + "native-tls", "tokio", - "webpki 0.22.0", ] [[package]] @@ -11752,9 +12494,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", "pin-project-lite", @@ -11771,28 +12513,12 @@ dependencies = [ "futures-util", "log", "native-tls", - "pin-project 1.0.12", + "pin-project 1.1.3", "tokio", "tokio-native-tls", "tungstenite 0.12.0", ] -[[package]] -name = "tokio-tungstenite" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e80b39df6afcc12cdf752398ade96a6b9e99c903dfdc36e53ad10b9c366bca72" -dependencies = [ - "futures-util", - "log", - "rustls 0.20.8", - "tokio", - "tokio-rustls 0.23.4", - "tungstenite 0.16.0", - "webpki 0.22.0", - "webpki-roots", -] - [[package]] name = "tokio-tungstenite" version = "0.18.0" @@ -11807,9 +12533,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" dependencies = [ "bytes", "futures-core", @@ -11821,11 +12547,45 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.9" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" dependencies = [ + "indexmap 2.0.0", "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] @@ -11841,6 +12601,28 @@ dependencies = [ "walkdir", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project 1.1.3", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -11862,20 +12644,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", @@ -11887,7 +12669,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.12", + "pin-project 1.1.3", "tracing", ] @@ -11940,7 +12722,7 @@ dependencies = [ "serde", "serde_json", "sharded-slab", - "smallvec 1.10.0", + "smallvec 1.11.0", "thread_local", "tracing", "tracing-core", @@ -11950,16 +12732,16 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ "matchers 0.1.0", "nu-ansi-term", "once_cell", "regex", "sharded-slab", - "smallvec 1.10.0", + "smallvec 1.11.0", "thread_local", "tracing", "tracing-core", @@ -11975,6 +12757,15 @@ dependencies = [ "serde_json", ] +[[package]] +name = "treediff" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303" +dependencies = [ + "serde_json", +] + [[package]] name = "trilean" version = "1.1.0" @@ -11983,9 +12774,9 @@ checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" [[package]] name = "triomphe" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1ee9bd9239c339d714d657fac840c6d2a4f9c45f4f9ec7b0975113458be78db" +checksum = "0eee8098afad3fb0c54a9007aab6804558410503ad676d4633f9c2559a00ac0f" dependencies = [ "serde", "stable_deref_trait", @@ -12009,12 +12800,12 @@ dependencies = [ "lazy_static", "rand 0.8.5", "serde", - "smallvec 1.10.0", + "smallvec 1.11.0", "thiserror", "tinyvec", "tokio", "tracing", - "url 2.3.1", + "url 2.4.0", ] [[package]] @@ -12031,7 +12822,7 @@ dependencies = [ "parking_lot 0.12.1", "resolv-conf", "serde", - "smallvec 1.10.0", + "smallvec 1.11.0", "thiserror", "tokio", "tracing", @@ -12040,9 +12831,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "tungstenite" @@ -12060,29 +12851,8 @@ dependencies = [ "native-tls", "rand 0.8.5", "sha-1 0.9.8", - "url 2.3.1", - "utf-8", -] - -[[package]] -name = "tungstenite" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" -dependencies = [ - "base64 0.13.1", - "byteorder", - "bytes", - "http", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.20.8", - "sha-1 0.9.8", - "thiserror", - "url 2.3.1", + "url 2.4.0", "utf-8", - "webpki 0.22.0", ] [[package]] @@ -12098,17 +12868,17 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "sha1", + "sha1 0.10.5", "thiserror", - "url 2.3.1", + "url 2.4.0", "utf-8", ] [[package]] name = "typed-arena" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0685c84d5d54d1c26f7d3eb96cd41550adb97baed141a761cf335d3d33bcd0ae" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" [[package]] name = "typemap-ors" @@ -12121,15 +12891,25 @@ dependencies = [ [[package]] name = "typenum" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uds_windows" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" +dependencies = [ + "tempfile", + "winapi", +] [[package]] name = "unic-char-property" @@ -12183,9 +12963,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-id" @@ -12195,9 +12975,9 @@ checksum = "d70b6494226b36008c8366c288d77190b3fad2eb4c10533139c1c1f461127f1a" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-normalization" @@ -12210,9 +12990,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" @@ -12240,9 +13020,9 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] name = "universal-hash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", "subtle 2.4.1", @@ -12268,9 +13048,9 @@ dependencies = [ [[package]] name = "unsafe-libyaml" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1865806a559042e51ab5414598446a5871b561d21b6764f2eabb0dd481d880a6" +checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" [[package]] name = "unsigned-varint" @@ -12296,24 +13076,24 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] name = "ureq" -version = "2.6.2" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338b31dd1314f68f3aabf3ed57ab922df95ffcd902476ca7ba3c4ce7b908c46d" +checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9" dependencies = [ - "base64 0.13.1", + "base64 0.21.2", "log", "once_cell", - "rustls 0.20.8", - "url 2.3.1", - "webpki 0.22.0", - "webpki-roots", + "rustls 0.21.6", + "rustls-webpki 0.100.1", + "url 2.4.0", + "webpki-roots 0.23.1", ] [[package]] @@ -12329,13 +13109,13 @@ dependencies = [ [[package]] name = "url" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" dependencies = [ "form_urlencoded", - "idna 0.3.0", - "percent-encoding 2.2.0", + "idna 0.4.0", + "percent-encoding 2.3.0", "serde", ] @@ -12346,7 +13126,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c89cd13f1de9862d363308f5ffdadcd2b64b2a4a812fb296a80b7d3e80011b1e" dependencies = [ "serde", - "url 2.3.1", + "url 2.4.0", ] [[package]] @@ -12361,9 +13141,9 @@ dependencies = [ [[package]] name = "urlencoding" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" [[package]] name = "urlpattern" @@ -12375,7 +13155,7 @@ dependencies = [ "regex", "serde", "unic-ucd-ident", - "url 2.3.1", + "url 2.4.0", ] [[package]] @@ -12386,9 +13166,9 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "utf8parse" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" @@ -12406,28 +13186,29 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.10", ] [[package]] name = "uuid" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.10", + "rand 0.8.5", "serde", ] [[package]] name = "v8" -version = "0.68.0" +version = "0.74.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81c69410b7435f1b74e82e243ba906d71e8b9bb350828291418b9311dbd77222" +checksum = "2eedac634b8dd39b889c5b62349cbc55913780226239166435c5cf66771792ea" dependencies = [ - "bitflags", + "bitflags 1.3.2", "fslock", - "lazy_static", + "once_cell", "which", ] @@ -12439,13 +13220,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.0.0-alpha.9" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" -dependencies = [ - "ctor", - "version_check", -] +checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3" [[package]] name = "vcpkg" @@ -12489,13 +13266,33 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "vte" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aae21c12ad2ec2d168c236f369c38ff332bc1134f7246350dca641437365045" +checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "utf8parse", "vte_generate_state_changes", ] @@ -12506,8 +13303,8 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.66", + "quote 1.0.32", ] [[package]] @@ -12518,44 +13315,42 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi", "winapi-util", ] [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] [[package]] name = "warp" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27e1a710288f0f91a98dd8a74f05b76a10768db245ce183edf64dc1afdc3016c" +checksum = "ba431ef570df1287f7f8b07e376491ad54f84d26ac473489427231e1718e1f69" dependencies = [ "bytes", "futures-channel", "futures-util", "headers", "http", - "hyper", + "hyper 0.14.27", "log", "mime", "mime_guess", - "multiparty", - "percent-encoding 2.2.0", - "pin-project 1.0.12", - "rustls-pemfile 1.0.2", + "multer", + "percent-encoding 2.3.0", + "pin-project 1.1.3", + "rustls-pemfile 1.0.3", "scoped-tls", "serde", "serde_json", @@ -12588,9 +13383,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -12598,24 +13393,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -12625,38 +13420,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ - "quote 1.0.26", + "quote 1.0.32", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasm-encoder" -version = "0.26.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05d0b6fcd0aeb98adf16e7975331b3c17222aa815148f5b976370ce589d80ef" +checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16" dependencies = [ "leb128", ] @@ -12681,7 +13476,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ "cfg-if 1.0.0", - "indexmap", + "indexmap 1.9.3", "js-sys", "loupe", "more-asserts", @@ -12725,7 +13520,7 @@ dependencies = [ "rkyv", "serde", "serde_bytes", - "smallvec 1.10.0", + "smallvec 1.11.0", "target-lexicon", "thiserror", "wasmer-types", @@ -12741,11 +13536,11 @@ dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "gimli", + "gimli 0.26.2", "loupe", "more-asserts", "rayon", - "smallvec 1.10.0", + "smallvec 1.11.0", "target-lexicon", "tracing", "wasmer-compiler", @@ -12759,9 +13554,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -12881,7 +13676,7 @@ checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" dependencies = [ "backtrace", "enum-iterator", - "indexmap", + "indexmap 1.9.3", "loupe", "more-asserts", "rkyv", @@ -12900,7 +13695,7 @@ dependencies = [ "cfg-if 1.0.0", "corosensei", "enum-iterator", - "indexmap", + "indexmap 1.9.3", "lazy_static", "libc", "loupe", @@ -12925,9 +13720,9 @@ checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" [[package]] name = "wast" -version = "57.0.0" +version = "62.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eb0f5ed17ac4421193c7477da05892c2edafd67f9639e3c11a82086416662dc" +checksum = "b8ae06f09dbe377b889fbd620ff8fa21e1d49d1d9d364983c0cdbf9870cb9f1f" dependencies = [ "leb128", "memchr", @@ -12937,18 +13732,18 @@ dependencies = [ [[package]] name = "wat" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9ab0d87337c3be2bb6fc5cd331c4ba9fd6bcb4ee85048a0dd59ed9ecf92e53" +checksum = "842e15861d203fb4a96d314b0751cdeaf0f6f8b35e8d81d2953af2af5e44e637" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -12960,7 +13755,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "gdk", "gdk-sys", @@ -12985,7 +13780,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" dependencies = [ "atk-sys", - "bitflags", + "bitflags 1.3.2", "cairo-sys-rs", "gdk-pixbuf-sys", "gdk-sys", @@ -12998,7 +13793,7 @@ dependencies = [ "pango-sys", "pkg-config", "soup2-sys", - "system-deps 6.0.3", + "system-deps 6.1.1", ] [[package]] @@ -13030,6 +13825,15 @@ dependencies = [ "webpki 0.22.0", ] +[[package]] +name = "webpki-roots" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" +dependencies = [ + "rustls-webpki 0.100.1", +] + [[package]] name = "webview2-com" version = "0.19.1" @@ -13048,9 +13852,9 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.103", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", ] [[package]] @@ -13079,11 +13883,21 @@ dependencies = [ "once_cell", ] +[[package]] +name = "whoami" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + [[package]] name = "widestring" -version = "0.5.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "winapi" @@ -13116,19 +13930,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbedf6db9096bc2364adce0ae0aa636dcd89f3c3f2cd67947062aaf0ca2a10ec" -dependencies = [ - "windows_aarch64_msvc 0.32.0", - "windows_i686_gnu 0.32.0", - "windows_i686_msvc 0.32.0", - "windows_x86_64_gnu 0.32.0", - "windows_x86_64_msvc 0.32.0", -] - [[package]] name = "windows" version = "0.37.0" @@ -13156,6 +13957,15 @@ dependencies = [ "windows_x86_64_msvc 0.39.0", ] +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.1", +] + [[package]] name = "windows-bindgen" version = "0.39.0" @@ -13172,7 +13982,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" dependencies = [ - "syn 1.0.103", + "syn 1.0.109", "windows-tokens", ] @@ -13238,7 +14048,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.48.1", ] [[package]] @@ -13258,9 +14068,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm 0.48.0", "windows_aarch64_msvc 0.48.0", @@ -13289,12 +14099,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" -[[package]] -name = "windows_aarch64_msvc" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" - [[package]] name = "windows_aarch64_msvc" version = "0.33.0" @@ -13331,12 +14135,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" -[[package]] -name = "windows_i686_gnu" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" - [[package]] name = "windows_i686_gnu" version = "0.33.0" @@ -13373,12 +14171,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" -[[package]] -name = "windows_i686_msvc" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" - [[package]] name = "windows_i686_msvc" version = "0.33.0" @@ -13415,12 +14207,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" -[[package]] -name = "windows_x86_64_gnu" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" - [[package]] name = "windows_x86_64_gnu" version = "0.33.0" @@ -13469,12 +14255,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" -[[package]] -name = "windows_x86_64_msvc" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" - [[package]] name = "windows_x86_64_msvc" version = "0.33.0" @@ -13511,6 +14291,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acaaa1190073b2b101e15083c38ee8ec891b5e05cbee516521e94ec008f61e64" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" @@ -13520,20 +14309,40 @@ dependencies = [ "winapi", ] +[[package]] +name = "winreg" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a1a57ff50e9b408431e8f97d5456f2807f8eb2a2cd79b06068fc87f8ecf189" +dependencies = [ + "cfg-if 1.0.0", + "winapi", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.48.0", +] + [[package]] name = "winres" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" dependencies = [ - "toml", + "toml 0.5.11", ] [[package]] name = "wry" -version = "0.22.5" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b4906cc7b3c5959893f3984bb60882ec94539eb14622077e6529f5b3d008ee" +checksum = "33748f35413c8a98d45f7a08832d848c0c5915501803d1faade5a4ebcd258cea" dependencies = [ "base64 0.13.1", "block", @@ -13555,11 +14364,11 @@ dependencies = [ "once_cell", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "soup2", "tao", "thiserror", - "url 2.3.1", + "url 2.4.0", "webkit2gtk", "webkit2gtk-sys", "webview2-com", @@ -13578,9 +14387,9 @@ dependencies = [ [[package]] name = "x11" -version = "2.20.1" +version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2638d5b9c17ac40575fb54bb461a4b1d2a8d1b4ffcc4ff237d254ec59ddeb82" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" dependencies = [ "libc", "pkg-config", @@ -13588,12 +14397,12 @@ dependencies = [ [[package]] name = "x11-dl" -version = "2.20.1" +version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" dependencies = [ - "lazy_static", "libc", + "once_cell", "pkg-config", ] @@ -13610,30 +14419,52 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95" +checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a" dependencies = [ - "curve25519-dalek 4.0.0-rc.2", + "curve25519-dalek 4.0.0-rc.3", "rand_core 0.6.4", "serde", "zeroize", ] +[[package]] +name = "x509-parser" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom 7.1.3", + "oid-registry", + "rusticata-macros", + "thiserror", + "time 0.3.25", +] + [[package]] name = "xattr" -version = "0.2.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" dependencies = [ "libc", ] [[package]] -name = "xml-rs" -version = "0.8.4" +name = "xml5ever" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650" +dependencies = [ + "log", + "mac", + "markup5ever 0.11.0", +] [[package]] name = "xmlparser" @@ -13643,9 +14474,9 @@ checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" [[package]] name = "xsalsa20poly1305" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "472c385ee974833d7e59979eeb74175d56774be3768b5bcc581337e21396bda3" +checksum = "02a6dad357567f81cd78ee75f7c61f1b30bb2fe4390be8fb7c69e2ac8dffb6c7" dependencies = [ "aead", "poly1305", @@ -13675,7 +14506,70 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.17", + "time 0.3.25", +] + +[[package]] +name = "zbus" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ce2de393c874ba871292e881bf3c13a0d5eb38170ebab2e50b4c410eaa222b" +dependencies = [ + "async-broadcast", + "async-channel", + "async-executor", + "async-io", + "async-lock", + "async-recursion", + "async-task", + "async-trait", + "byteorder", + "derivative", + "dirs", + "enumflags2", + "event-listener", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.24.2", + "once_cell", + "ordered-stream", + "rand 0.8.5", + "serde", + "serde_repr", + "sha1 0.6.1", + "static_assertions", + "tracing", + "uds_windows", + "winapi", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13d08f5dc6cf725b693cb6ceacd43cd430ec0664a879188f29e7d7dcd98f96d" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.66", + "quote 1.0.32", + "regex", + "syn 1.0.109", +] + +[[package]] +name = "zbus_names" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a408fd8a352695690f53906dc7fd036be924ec51ea5e05666ff42685ed0af5" +dependencies = [ + "serde", + "static_assertions", + "zvariant", ] [[package]] @@ -13693,18 +14587,18 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.13", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", ] [[package]] name = "zip" -version = "0.6.4" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" dependencies = [ - "aes 0.7.5", + "aes", "byteorder", "bzip2", "constant_time_eq 0.1.5", @@ -13713,8 +14607,8 @@ dependencies = [ "flate2", "hmac 0.12.1", "pbkdf2 0.11.0", - "sha1", - "time 0.3.17", + "sha1 0.10.5", + "time 0.3.25", "zstd", ] @@ -13739,11 +14633,37 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.7+zstd.1.5.4" +version = "2.0.8+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" dependencies = [ "cc", "libc", "pkg-config", ] + +[[package]] +name = "zvariant" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794fb7f59af4105697b0449ba31731ee5dbb3e773a17dbdf3d36206ea1b1644" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd58d4b6c8e26d3dd2149c8c40c6613ef6451b9885ff1296d1ac86c388351a54" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", +] diff --git a/Cargo.toml b/Cargo.toml index cf77f58f1..e9ffe936d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,3 @@ members = [ [patch.crates-io] sodiumoxide = { git = "https://github.com/fayeed/sodiumoxide" } -libffi = { git = "https://github.com/coasys/libffi-rs.git", branch = "windows-space" } diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index e9e198aec..8a3b3b52c 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -64,8 +64,9 @@ jsonwebtoken = "8.3.0" holochain = { version = "0.1.3", features = ["test_utils"] } scryer-prolog = { version = "0.9.1", path = "../../scryer-prolog" } -# scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "cc0487293348ad8dddf2da23c2e001c5b8a122d4" } +# scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } + +tracing = "0.1" [dev-dependencies] maplit = "1.0.2" -tracing = "0.1" diff --git a/rust-executor/src/js_core/string_module_loader.rs b/rust-executor/src/js_core/string_module_loader.rs index 0bbb8a6f0..ffada099e 100644 --- a/rust-executor/src/js_core/string_module_loader.rs +++ b/rust-executor/src/js_core/string_module_loader.rs @@ -8,7 +8,6 @@ use deno_core::ModuleType; use deno_core::ResolutionKind; use deno_runtime::deno_core::error::AnyError; use tracing::info; -use log::info; use url::Url; use std::collections::HashMap; use std::pin::Pin; diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index 1564d5e00..2fe050065 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -2,7 +2,6 @@ use std::borrow::Cow; use cid::Cid; use deno_core::{error::AnyError, include_js_files, op, Extension, Op}; -use log::info; use multibase::Base; use multihash::{Code, MultihashDigest}; use tracing::{error, info, debug, warn}; diff --git a/yarn.lock b/yarn.lock index be16ff24c..cbc787f25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8063,7 +8063,7 @@ dayjs@^1.11.7: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.8.tgz#4282f139c8c19dd6d0c7bd571e30c2d0ba7698ea" integrity sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.4, debug@^2.6.8: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -13531,6 +13531,11 @@ khroma@^2.0.0: resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b" integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== +kill-process-by-name@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/kill-process-by-name/-/kill-process-by-name-1.0.5.tgz#d729c6a9509ac756dad5f2bd61851e01dd598e89" + integrity sha512-uxgO15GtTsK5ofd/c17saZ7GagZEJrMt5VY4AL5X+vVS3kw5uHfzyIk5+npRD8gowWvx3cB37vrCy/yr0PyD8A== + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -19441,7 +19446,7 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split@^1.0.0, split@^1.0.1: +split@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== @@ -19997,13 +20002,6 @@ svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -"swipl-stdio@https://github.com/perspect3vism/node-swipl-stdio.git": - version "1.0.4" - resolved "https://github.com/perspect3vism/node-swipl-stdio.git#a00dbfb99aeacf99cb59448e2a9c92b40a889545" - dependencies: - debug "^2.6.4" - split "^1.0.0" - symbol-observable@^1.0.2, symbol-observable@^1.0.4, symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" From dea5526fadc97368b4f19148c76aab9e4a3013f0 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 11 Aug 2023 09:24:13 +0530 Subject: [PATCH 516/722] fixed windows language build errors --- bootstrap-languages/agent-language/hc-dna/build.ps1 | 2 +- bootstrap-languages/file-storage/hc-dna/build.ps1 | 2 +- bootstrap-languages/p-diff-sync/hc-dna/build.ps1 | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/bootstrap-languages/agent-language/hc-dna/build.ps1 b/bootstrap-languages/agent-language/hc-dna/build.ps1 index e7bcb228e..42d3e50d2 100644 --- a/bootstrap-languages/agent-language/hc-dna/build.ps1 +++ b/bootstrap-languages/agent-language/hc-dna/build.ps1 @@ -1,3 +1,3 @@ -$env:CARGO_TARGET_DIR = target +# $env:CARGO_TARGET_DIR = target cargo build --release --target wasm32-unknown-unknown hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/build.ps1 b/bootstrap-languages/file-storage/hc-dna/build.ps1 index e7bcb228e..42d3e50d2 100644 --- a/bootstrap-languages/file-storage/hc-dna/build.ps1 +++ b/bootstrap-languages/file-storage/hc-dna/build.ps1 @@ -1,3 +1,3 @@ -$env:CARGO_TARGET_DIR = target +# $env:CARGO_TARGET_DIR = target cargo build --release --target wasm32-unknown-unknown hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/build.ps1 b/bootstrap-languages/p-diff-sync/hc-dna/build.ps1 index e7bcb228e..81582cbd3 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/build.ps1 +++ b/bootstrap-languages/p-diff-sync/hc-dna/build.ps1 @@ -1,3 +1,2 @@ -$env:CARGO_TARGET_DIR = target cargo build --release --target wasm32-unknown-unknown hc dna pack workdir \ No newline at end of file From 14fea6d9748bf92b85b63e867c41c32df59120cc Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 11 Aug 2023 09:24:58 +0530 Subject: [PATCH 517/722] Updated agent language to v0.3 --- .../agent-language/hc-dna/Cargo.lock | 420 +++++++++++++++++- .../hc-dna/zomes/agent_store/Cargo.toml | 4 +- .../hc-dna/zomes/agent_store/src/utils.rs | 10 +- .../zomes/agent_store_integrity/Cargo.toml | 4 +- 4 files changed, 411 insertions(+), 27 deletions(-) diff --git a/bootstrap-languages/agent-language/hc-dna/Cargo.lock b/bootstrap-languages/agent-language/hc-dna/Cargo.lock index 649b4766b..f4d60cbc0 100644 --- a/bootstrap-languages/agent-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/agent-language/hc-dna/Cargo.lock @@ -70,6 +70,15 @@ dependencies = [ "libc", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arrayref" version = "0.3.6" @@ -82,6 +91,17 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -250,6 +270,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -482,6 +513,17 @@ dependencies = [ "syn", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -573,6 +615,95 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "gcollections" version = "1.5.0" @@ -637,9 +768,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.0" +version = "0.4.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "344ddd3db53dec1352aca06ca5048d305a2c20149cf3117e9669ac567e71c109" +checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" dependencies = [ "hdk_derive", "holo_hash", @@ -654,9 +785,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.0" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab34bc763d15b2d91d26008487b189547da9c184b5bcd448242ac255f483443e" +checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" dependencies = [ "getrandom", "hdi", @@ -674,9 +805,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.0" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "596ab116a5f8977ef7d630b065b233ab73b5cded613688a487c666f8e6e63291" +checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" dependencies = [ "darling 0.14.1", "heck", @@ -711,14 +842,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.1.0" +version = "0.3.0-beta-dev.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270268effa8c72be70eeb0c3d3944f58a3885daf355cd3597300bf4b33bfee1b" +checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -727,12 +859,13 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.0" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3cf7e728e70ab5aac0c89e437879ee529894d6aa2b6d6ca5d59527fda38157" +checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -768,9 +901,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_common" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" dependencies = [ "holochain_serialized_bytes", "serde", @@ -783,9 +916,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -797,14 +930,17 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.0" +version = "0.3.0-beta-dev.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9725c45ba4fff602c0ac548945ddbb44cb255ee934336efd43262fff8bec8e49" +checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" dependencies = [ "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -882,6 +1018,15 @@ dependencies = [ "trilean", ] +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.2" @@ -897,11 +1042,61 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.3.0-beta-dev.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +dependencies = [ + "base64", + "derive_more", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.3.0-beta-dev.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.3.0-beta-dev.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand", + "serde", + "statrs", + "thiserror", + "tracing", +] + [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.0" +version = "0.3.0-beta-dev.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" dependencies = [ "derive_more", "gcollections", @@ -912,9 +1107,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.0" +version = "0.3.0-beta-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" dependencies = [ "chrono", "derive_more", @@ -949,6 +1144,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "lock_api" version = "0.4.7" @@ -998,6 +1199,16 @@ dependencies = [ "libc", ] +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "memchr" version = "2.5.0" @@ -1037,6 +1248,54 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -1047,6 +1306,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -1054,6 +1324,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1118,9 +1389,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pest" @@ -1138,6 +1409,18 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1200,6 +1483,52 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.5.3" @@ -1480,6 +1809,40 @@ dependencies = [ "digest", ] +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" version = "1.9.0" @@ -1492,6 +1855,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand", +] + [[package]] name = "strsim" version = "0.10.0" diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml index 893f444e9..a65d0c5f1 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml @@ -14,6 +14,6 @@ serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } thiserror = "1.0.20" -hdk = "0.1.0" -holo_hash = "0.1.0" +hdk = "0.3.0-beta-dev.12" +holo_hash = "0.3.0-beta-dev.6" agent_store_integrity = { path = "../agent_store_integrity" } \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs index dc3046356..986440c13 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs @@ -6,7 +6,15 @@ pub(crate) fn err(reason: &str) -> WasmError { } pub(crate) fn get_latest_link(base: EntryHash, tag: Option) -> ExternResult> { - let profile_info = get_links(base, LinkTypes::ProfileLink, tag)?; + let input = GetLinksInputBuilder::try_new( + base, + LinkTypes::ProfileLink + ) + .unwrap() + .tag_prefix(tag.unwrap()) + .build(); + + let profile_info = get_links(input)?; // Find the latest let latest_info = diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml index 93ccbca47..eddf7ce56 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml @@ -13,5 +13,5 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = "0.2.0" -hdk = "0.1.0" \ No newline at end of file +hdi = "0.4.0-beta-dev.8" +hdk = "0.3.0-beta-dev.12" \ No newline at end of file From 8a80dfa0769754567569d223ff605c43f56cd550 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 11 Aug 2023 09:25:12 +0530 Subject: [PATCH 518/722] Updated direct message language to v0.3 --- .../direct-message-language/hc-dna/Cargo.lock | 420 +++++++++++++++++- .../zomes/direct-message-integrity/Cargo.toml | 4 +- .../hc-dna/zomes/direct-message/Cargo.toml | 4 +- .../hc-dna/zomes/direct-message/src/lib.rs | 22 +- 4 files changed, 415 insertions(+), 35 deletions(-) diff --git a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock index fc0f4c4e9..f99a51642 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock @@ -46,6 +46,15 @@ dependencies = [ "libc", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arrayref" version = "0.3.6" @@ -58,6 +67,17 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -226,6 +246,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -458,6 +489,17 @@ dependencies = [ "syn", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -574,6 +616,95 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "gcollections" version = "1.5.0" @@ -638,9 +769,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.0" +version = "0.4.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "344ddd3db53dec1352aca06ca5048d305a2c20149cf3117e9669ac567e71c109" +checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" dependencies = [ "hdk_derive", "holo_hash", @@ -655,9 +786,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.0" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab34bc763d15b2d91d26008487b189547da9c184b5bcd448242ac255f483443e" +checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" dependencies = [ "getrandom", "hdi", @@ -675,9 +806,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.0" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "596ab116a5f8977ef7d630b065b233ab73b5cded613688a487c666f8e6e63291" +checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" dependencies = [ "darling 0.14.1", "heck", @@ -712,14 +843,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.1.0" +version = "0.3.0-beta-dev.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270268effa8c72be70eeb0c3d3944f58a3885daf355cd3597300bf4b33bfee1b" +checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -728,12 +860,13 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.0" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3cf7e728e70ab5aac0c89e437879ee529894d6aa2b6d6ca5d59527fda38157" +checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -769,9 +902,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_common" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" dependencies = [ "holochain_serialized_bytes", "serde", @@ -784,9 +917,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -798,14 +931,17 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.0" +version = "0.3.0-beta-dev.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9725c45ba4fff602c0ac548945ddbb44cb255ee934336efd43262fff8bec8e49" +checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" dependencies = [ "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -883,6 +1019,15 @@ dependencies = [ "trilean", ] +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.1" @@ -898,11 +1043,61 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.3.0-beta-dev.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +dependencies = [ + "base64", + "derive_more", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.3.0-beta-dev.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.3.0-beta-dev.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand", + "serde", + "statrs", + "thiserror", + "tracing", +] + [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.0" +version = "0.3.0-beta-dev.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" dependencies = [ "derive_more", "gcollections", @@ -913,9 +1108,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.0" +version = "0.3.0-beta-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" dependencies = [ "chrono", "derive_more", @@ -950,6 +1145,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "lock_api" version = "0.4.9" @@ -999,6 +1200,16 @@ dependencies = [ "libc", ] +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "memchr" version = "2.5.0" @@ -1038,6 +1249,54 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.44" @@ -1048,6 +1307,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -1055,6 +1325,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1110,9 +1381,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pest" @@ -1130,6 +1401,18 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1192,6 +1475,52 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.5.3" @@ -1471,6 +1800,40 @@ dependencies = [ "digest", ] +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" version = "1.8.0" @@ -1483,6 +1846,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand", +] + [[package]] name = "strsim" version = "0.10.0" diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml index f1e9b6aa7..824e3fe15 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml @@ -13,5 +13,5 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = "0.2.0" -holo_hash = "0.1.0" \ No newline at end of file +hdi = "0.4.0-beta-dev.8" +holo_hash = "0.3.0-beta-dev.6" \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml index d85061237..eec1da6fe 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml @@ -15,7 +15,7 @@ serde_json = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } hex = "0.4.3" -hdk = "0.1.0" -holo_hash = "0.1.0" +hdk = "0.3.0-beta-dev.12" +holo_hash = "0.3.0-beta-dev.6" direct-message-integrity = { path = "../direct-message-integrity" } \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs index 1821d01aa..7cd843a6b 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs @@ -35,7 +35,7 @@ fn recipient() -> ExternResult { Ok(Recipient(recipient.get())) } else { //debug!("RECIPIENT from properties"); - let properties = Properties::try_from(dna_info()?.properties) + let properties = Properties::try_from(dna_info()?.modifiers.properties) .map_err(|err| wasm_error!(WasmErrorInner::Host(err.to_string())))?; let bytes = hex::decode(properties.recipient_hc_agent_pubkey).or_else(|_| { Err(wasm_error!(WasmErrorInner::Host( @@ -77,11 +77,11 @@ pub fn get_status(_: ()) -> ExternResult> { // (either from local ad4m-executor or via remote_call) // we retrieve the latest status entry from source chain let mut filter = QueryFilter::new(); - filter.entry_type = Some(EntryType::App(AppEntryDef::new( + filter.entry_type = Some(vec![EntryType::App(AppEntryDef::new( 0.into(), 0.into(), EntryVisibility::Private, - ))); + ))]); filter.include_entries = true; if let Some(element) = query(filter)?.pop() { let status = StatusUpdate::try_from(element)?; @@ -144,11 +144,11 @@ fn recv_remote_signal(signal: SerializedBytes) -> ExternResult<()> { fn inbox(did_filter: Option) -> ExternResult> { //debug!("INBOX({:?})", did_filter); let mut filter = QueryFilter::new(); - filter.entry_type = Some(EntryType::App(AppEntryDef::new( + filter.entry_type = Some(vec![EntryType::App(AppEntryDef::new( 1.into(), 0.into(), EntryVisibility::Private, - ))); + ))]); filter.include_entries = true; Ok(query(filter)? .into_iter() @@ -209,11 +209,15 @@ pub fn fetch_inbox(_: ()) -> ExternResult<()> { if Recipient(agent_info()?.agent_latest_pubkey) == recipient()? { //debug!("fetch_inbox agent"); //debug!("agent_address: {}", agent_address); - for link in get_links( + let input = GetLinksInputBuilder::try_new( agent_address, - LinkTypes::Message, - Some(LinkTag::new(String::from("message"))), - )? { + LinkTypes::Message + ) + .unwrap() + .tag_prefix(LinkTag::new("message")) + .build(); + + for link in get_links(input)? { //debug!("fetch_inbox link"); if let Some(message_entry) = get( link.target From e3ee99a1fa16724a52037e1118c23d51f359740b Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 11 Aug 2023 09:25:24 +0530 Subject: [PATCH 519/722] Updated file storage language to v0.3 --- .../file-storage/hc-dna/Cargo.lock | 553 +++++++++++++++++- .../hc-dna/zomes/file_storage/Cargo.toml | 4 +- .../hc-dna/zomes/integrity/Cargo.toml | 6 +- 3 files changed, 532 insertions(+), 31 deletions(-) diff --git a/bootstrap-languages/file-storage/hc-dna/Cargo.lock b/bootstrap-languages/file-storage/hc-dna/Cargo.lock index 1ad45f3e3..298205112 100644 --- a/bootstrap-languages/file-storage/hc-dna/Cargo.lock +++ b/bootstrap-languages/file-storage/hc-dna/Cargo.lock @@ -46,6 +46,15 @@ dependencies = [ "libc", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arrayref" version = "0.3.6" @@ -236,6 +245,17 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "colored" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355" +dependencies = [ + "is-terminal", + "lazy_static", + "winapi", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -476,6 +496,17 @@ dependencies = [ "syn", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -546,6 +577,27 @@ dependencies = [ "syn", ] +[[package]] +name = "errno" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "fallible-iterator" version = "0.2.0" @@ -582,6 +634,95 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "gcollections" version = "1.5.0" @@ -652,9 +793,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.1" +version = "0.4.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8046116c32434837d28ad1b443802e2444a38d8cdb69caca9169414364fe0b69" +checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" dependencies = [ "hdk_derive", "holo_hash", @@ -669,9 +810,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.1" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cbecb374a53eba516cbfefaad21f4bc805f4c731b81bd800a9a9e0239004eb3" +checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" dependencies = [ "getrandom", "hdi", @@ -689,9 +830,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.1" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8eade453438a832944ab3f4006482f6bb5693997ff58e3049f23a8f8c617a4" +checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" dependencies = [ "darling", "heck", @@ -718,6 +859,12 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" + [[package]] name = "hex" version = "0.4.3" @@ -726,14 +873,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.1.1" +version = "0.3.0-beta-dev.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cffb2fb9ce1d2ce4c98d4cc9d625ddb92f6982f47094ed2e36fa93f5a096f36" +checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -742,12 +890,13 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.1" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0630a221701e40ddf0fb369ead8eb6e18e3ec84241b3c77f803ea137930017b" +checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -783,9 +932,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_common" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" dependencies = [ "holochain_serialized_bytes", "serde", @@ -798,9 +947,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -812,14 +961,17 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.1" +version = "0.3.0-beta-dev.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df99af259b89d8309121d2a81852f8e468dc587332ce59a93130f4e1149758b4" +checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" dependencies = [ "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -919,6 +1071,38 @@ dependencies = [ "trilean", ] +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.2", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "is-terminal" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +dependencies = [ + "hermit-abi 0.3.2", + "io-lifetimes", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.5" @@ -934,11 +1118,61 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.3.0-beta-dev.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +dependencies = [ + "base64", + "derive_more", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.3.0-beta-dev.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.3.0-beta-dev.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand", + "serde", + "statrs", + "thiserror", + "tracing", +] + [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.0" +version = "0.3.0-beta-dev.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" dependencies = [ "derive_more", "gcollections", @@ -949,9 +1183,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.0" +version = "0.3.0-beta-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" dependencies = [ "chrono", "derive_more", @@ -986,6 +1220,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "link-cplusplus" version = "1.0.8" @@ -995,6 +1235,12 @@ dependencies = [ "cc", ] +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + [[package]] name = "lock_api" version = "0.4.9" @@ -1044,6 +1290,16 @@ dependencies = [ "libc", ] +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "memchr" version = "2.5.0" @@ -1092,6 +1348,54 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -1102,6 +1406,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -1109,6 +1424,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1117,7 +1433,7 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] @@ -1173,9 +1489,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pest" @@ -1193,6 +1509,18 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1255,6 +1583,52 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.6.1" @@ -1412,6 +1786,20 @@ dependencies = [ "semver 1.0.16", ] +[[package]] +name = "rustix" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.45.0", +] + [[package]] name = "rustversion" version = "1.0.11" @@ -1550,6 +1938,40 @@ dependencies = [ "digest", ] +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" version = "1.10.0" @@ -1562,6 +1984,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand", +] + [[package]] name = "strsim" version = "0.10.0" @@ -2230,7 +2665,16 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets", + "windows-targets 0.42.1", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.1", ] [[package]] @@ -2239,21 +2683,42 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" dependencies = [ - "windows_aarch64_gnullvm", + "windows_aarch64_gnullvm 0.42.1", "windows_aarch64_msvc 0.42.1", "windows_i686_gnu 0.42.1", "windows_i686_msvc 0.42.1", "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm", + "windows_x86_64_gnullvm 0.42.1", "windows_x86_64_msvc 0.42.1", ] +[[package]] +name = "windows-targets" +version = "0.48.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + [[package]] name = "windows_aarch64_msvc" version = "0.33.0" @@ -2266,6 +2731,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + [[package]] name = "windows_i686_gnu" version = "0.33.0" @@ -2278,6 +2749,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + [[package]] name = "windows_i686_msvc" version = "0.33.0" @@ -2290,6 +2767,12 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + [[package]] name = "windows_x86_64_gnu" version = "0.33.0" @@ -2302,12 +2785,24 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + [[package]] name = "windows_x86_64_msvc" version = "0.33.0" @@ -2319,3 +2814,9 @@ name = "windows_x86_64_msvc" version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml index 6fadb6261..01b547d29 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml @@ -17,5 +17,5 @@ chrono = { version = "0.4.22", default-features = false, features = ["clock", "s thiserror = "1.0.20" integrity = { path = "../integrity" } sha2 = "0.10.5" -hdk = "0.1.0" -holo_hash = "0.1.0" \ No newline at end of file +hdk = "0.3.0-beta-dev.12" +holo_hash = "0.3.0-beta-dev.6" \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml index 8a860b176..2dd2cb994 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml @@ -13,6 +13,6 @@ name = "integrity" derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.1.0" -hdi = "0.2.0" -hdk = "0.1.0" +holo_hash = "0.3.0-beta-dev.6" +hdi = "0.4.0-beta-dev.8" +hdk = "0.3.0-beta-dev.12" From 9ba9ddf746027297710db944d1d95dd9b5fae133 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 11 Aug 2023 09:25:44 +0530 Subject: [PATCH 520/722] Updated p-dff-sync language to v0.3 --- .../p-diff-sync/hc-dna/Cargo.lock | 386 ++++++++++++++++-- .../zomes/perspective_diff_sync/Cargo.toml | 4 +- .../src/link_adapter/snapshots.rs | 11 +- .../src/link_adapter/workspace.rs | 11 +- .../src/retriever/holochain.rs | 27 +- .../src/telepresence/status.rs | 32 +- .../Cargo.toml | 6 +- 7 files changed, 426 insertions(+), 51 deletions(-) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock index 95b0d1059..2e3b90639 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock +++ b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock @@ -46,6 +46,15 @@ dependencies = [ "libc", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arrayref" version = "0.3.6" @@ -58,6 +67,17 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -226,6 +246,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -458,6 +489,17 @@ dependencies = [ "syn", ] +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -579,6 +621,95 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "gcollections" version = "1.5.0" @@ -659,9 +790,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.0" +version = "0.4.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "344ddd3db53dec1352aca06ca5048d305a2c20149cf3117e9669ac567e71c109" +checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" dependencies = [ "hdk_derive", "holo_hash", @@ -676,9 +807,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.0" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab34bc763d15b2d91d26008487b189547da9c184b5bcd448242ac255f483443e" +checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" dependencies = [ "getrandom", "hdi", @@ -696,9 +827,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.0" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "596ab116a5f8977ef7d630b065b233ab73b5cded613688a487c666f8e6e63291" +checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" dependencies = [ "darling 0.14.1", "heck", @@ -733,14 +864,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.1.0" +version = "0.3.0-beta-dev.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270268effa8c72be70eeb0c3d3944f58a3885daf355cd3597300bf4b33bfee1b" +checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -749,12 +881,13 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.0" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3cf7e728e70ab5aac0c89e437879ee529894d6aa2b6d6ca5d59527fda38157" +checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -790,9 +923,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_common" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" dependencies = [ "holochain_serialized_bytes", "serde", @@ -805,9 +938,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -819,14 +952,17 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.0" +version = "0.3.0-beta-dev.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9725c45ba4fff602c0ac548945ddbb44cb255ee934336efd43262fff8bec8e49" +checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" dependencies = [ "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -926,6 +1062,15 @@ dependencies = [ "syn", ] +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.10.3" @@ -950,11 +1095,61 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.3.0-beta-dev.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +dependencies = [ + "base64", + "derive_more", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.3.0-beta-dev.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.3.0-beta-dev.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "must_future", + "num-traits", + "once_cell", + "rand", + "serde", + "statrs", + "thiserror", + "tracing", +] + [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.0" +version = "0.3.0-beta-dev.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" dependencies = [ "derive_more", "gcollections", @@ -965,9 +1160,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.0" +version = "0.3.0-beta-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" dependencies = [ "chrono", "derive_more", @@ -1002,6 +1197,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "lock_api" version = "0.4.8" @@ -1057,6 +1258,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "memchr" version = "2.5.0" @@ -1096,6 +1307,54 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "rand", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -1106,6 +1365,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -1113,6 +1383,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1177,9 +1448,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "perspective_diff_sync" @@ -1191,7 +1462,7 @@ dependencies = [ "graphviz-rust", "hdk", "holo_hash", - "itertools", + "itertools 0.10.3", "lazy_static", "maplit", "perspective_diff_sync_integrity", @@ -1273,6 +1544,12 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "ppv-lite86" version = "0.2.16" @@ -1371,6 +1648,22 @@ dependencies = [ "getrandom", ] +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.5.3" @@ -1673,6 +1966,40 @@ dependencies = [ "digest", ] +[[package]] +name = "shrinkwraprs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" +dependencies = [ + "bitflags", + "itertools 0.8.2", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" version = "1.9.0" @@ -1685,6 +2012,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand", +] + [[package]] name = "strsim" version = "0.10.0" diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml index d7fca4018..08875b8dd 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml @@ -21,8 +21,8 @@ dot-structures = "0.1.0" itertools = "0.10.3" perspective_diff_sync_integrity = { path = "../perspective_diff_sync_integrity" } sha2 = "0.10.5" -hdk = "0.1.0" -holo_hash = "0.1.0" +hdk = "0.3.0-beta-dev.12" +holo_hash = "0.3.0-beta-dev.6" [features] test = [] \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs index 45e48ba96..d8a053b98 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs @@ -41,11 +41,14 @@ pub fn generate_snapshot( ))?; if diff.diffs_since_snapshot == 0 && search_position.hash != latest { let now = get_now()?.time(); - let mut snapshot_links = get_links( + let input = GetLinksInputBuilder::try_new( hash_entry(&diff)?, - LinkTypes::Snapshot, - Some(LinkTag::new("snapshot")), - )?; + LinkTypes::Snapshot + ) + .unwrap() + .tag_prefix(LinkTag::new("snapshot")) + .build(); + let mut snapshot_links = get_links(input)?; let after = get_now()?.time(); debug!("===PerspectiveDiffSync.generate_snapshot() - Profiling: Took {} to get the snapshot links", (after - now).num_milliseconds()); if snapshot_links.len() == 0 { diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs index 2cfcb13c3..2a8c4ad0f 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs @@ -654,11 +654,14 @@ impl Workspace { debug!("===Workspace.get_snapshot(): Function start"); let fn_start = get_now()?.time(); - let mut snapshot_links = get_links( + let input = GetLinksInputBuilder::try_new( hash_entry(address)?, - LinkTypes::Snapshot, - Some(LinkTag::new("snapshot")), - )?; + LinkTypes::Snapshot + ) + .unwrap() + .tag_prefix(LinkTag::new("snapshot")) + .build(); + let mut snapshot_links = get_links(input)?; if snapshot_links.len() > 0 { let snapshot = get( diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs index 4e78a47c6..83cef098d 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs @@ -100,8 +100,13 @@ impl PerspectiveDiffRetreiver for HolochainRetreiver { fn latest_revision() -> SocialContextResult> { let latest_root_entry = get_latest_revision_anchor(); let latest_root_entry_hash = hash_entry(latest_root_entry.clone())?; - - let mut latest_revision_links = get_links(latest_root_entry_hash, LinkTypes::Index, None)?; + let input = GetLinksInputBuilder::try_new( + latest_root_entry_hash, + LinkTypes::Index + ) + .unwrap() + .build(); + let mut latest_revision_links = get_links(input)?; latest_revision_links.sort_by(|link_a, link_b| { let link_a_str = std::str::from_utf8(&link_a.tag.0).unwrap(); @@ -164,16 +169,22 @@ pub fn get_active_agent_anchor() -> Anchor { } pub fn get_active_agents() -> SocialContextResult> { - let recent_agents = get_links( + let input = GetLinksInputBuilder::try_new( hash_entry(get_active_agent_anchor())?, - LinkTypes::Index, - Some(LinkTag::new("active_agent")), - )?; + LinkTypes::Index + ) + .unwrap() + .tag_prefix(LinkTag::new("active_agent")) + .build(); + let recent_agents = get_links(input)?; let recent_agents = recent_agents .into_iter() - .map(|val| AgentPubKey::from(EntryHash::from(val.target))) - .collect::>(); + .map(|val| { + let entry: EntryHash = val.target.try_into().unwrap(); + AgentPubKey::from(entry) + }) + .collect(); //Dedup the agents let mut recent_agents = dedup(&recent_agents); diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs index 17cba84ce..df6fdbba4 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs @@ -64,7 +64,8 @@ pub fn create_did_pub_key_link(did: String) -> SocialContextResult<()> { debug!("PerspectiveDiffSync.create_did_pub_key_link({:?})", did); let agent_key = agent_info()?.agent_latest_pubkey; debug!("PerspectiveDiffSync.create_did_pub_key_link() agent_key: {:?}", agent_key); - let did_links = get_links(agent_key.clone(), LinkTypes::DidLink, None)?; + let input = GetLinksInputBuilder::try_new(agent_key.clone(), LinkTypes::DidLink).unwrap().build(); + let did_links = get_links(input)?; debug!("PerspectiveDiffSync.create_did_pub_key_link() did_links: {:?}", did_links); if did_links.len() == 0 { @@ -88,7 +89,13 @@ pub fn create_did_pub_key_link(did: String) -> SocialContextResult<()> { } pub fn get_my_did() -> SocialContextResult> { - let mut did_links = get_links(agent_info()?.agent_latest_pubkey, LinkTypes::DidLink, None)?; + let input = GetLinksInputBuilder::try_new( + agent_info()?.agent_latest_pubkey, + LinkTypes::DidLink + ) + .unwrap() + .build(); + let mut did_links = get_links(input)?; if did_links.len() > 0 { let did = get( did_links @@ -115,19 +122,30 @@ pub fn get_my_did() -> SocialContextResult> { pub fn get_dids_agent_key(did: String) -> SocialContextResult> { let did_entry = Anchor(did); let did_entry_hash = hash_entry(EntryTypes::Anchor(did_entry.clone()))?; - let did_links = get_links(did_entry_hash, LinkTypes::DidLink, None)?; + let input = GetLinksInputBuilder::try_new( + did_entry_hash, + LinkTypes::DidLink + ) + .unwrap() + .build(); + let did_links = get_links(input)?; debug!("PerspectiveDiffSync.get_dids_agent_key() did_links: {:?}", did_links); if did_links.len() > 0 { - Ok(Some(AgentPubKey::from(EntryHash::from( - did_links[0].target.clone(), - )))) + let entry: EntryHash = did_links[0].target.clone().try_into().unwrap(); + Ok(Some(AgentPubKey::from(entry))) } else { Ok(None) } } pub fn get_agents_did_key(agent: AgentPubKey) -> SocialContextResult> { - let mut did_links = get_links(agent, LinkTypes::DidLink, None)?; + let input = GetLinksInputBuilder::try_new( + agent, + LinkTypes::DidLink + ) + .unwrap() + .build(); + let mut did_links = get_links(input)?; if did_links.len() > 0 { let did = get( did_links diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml index 63a506c59..daf56f2d2 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml @@ -13,6 +13,6 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.1.0" -hdi = "0.2.0" -hdk = "0.1.0" \ No newline at end of file +holo_hash = "0.3.0-beta-dev.6" +hdi = "0.4.0-beta-dev.8" +hdk = "0.3.0-beta-dev.12" \ No newline at end of file From 6a0f639f34515441da5a57df1994cea2753b20a7 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 11 Aug 2023 09:26:18 +0530 Subject: [PATCH 521/722] Updated rust-executor to v0.3 --- Cargo.lock | 1256 +++++++++++++------- Cargo.toml | 1 + rust-executor/Cargo.toml | 2 +- rust-executor/src/holochain_service/mod.rs | 27 +- 4 files changed, 832 insertions(+), 454 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8ca90ef5c..ebc735092 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,7 +21,7 @@ dependencies = [ "chrono", "clap 4.3.21", "colour", - "dirs", + "dirs 4.0.0", "futures", "rand 0.8.5", "regex", @@ -43,7 +43,7 @@ dependencies = [ "async-tungstenite", "chrono", "clap 4.3.21", - "dirs", + "dirs 4.0.0", "futures", "graphql-ws-client", "graphql_client", @@ -177,6 +177,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if 1.0.0", + "getrandom 0.2.10", "once_cell", "version_check", ] @@ -190,6 +191,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -232,7 +239,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -679,7 +686,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi 0.1.19", "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1142,6 +1149,12 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "c_linked_list" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b" + [[package]] name = "cache_control" version = "0.2.0" @@ -1328,7 +1341,7 @@ dependencies = [ "serde", "time 0.1.45", "wasm-bindgen", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1408,6 +1421,7 @@ dependencies = [ "anstyle", "clap_lex 0.5.0", "strsim 0.10.0", + "terminal_size", ] [[package]] @@ -1458,7 +1472,7 @@ checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" dependencies = [ "error-code", "str-buf", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1521,7 +1535,7 @@ checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355" dependencies = [ "is-terminal", "lazy_static", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1577,9 +1591,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" [[package]] name = "constant_time_eq" @@ -1601,15 +1615,17 @@ checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "contrafact" -version = "0.1.0-dev.1" +version = "0.2.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6231a9c847846745ffad14917538e99182408b3987e89a11d86a37677dbb3c01" +checksum = "65bfae7a2ef93841d7e9e5ef69e387b26e70f7b156434b6b95714006cc00e1f9" dependencies = [ - "anyhow", "arbitrary", "derive_more", + "either", "itertools 0.10.5", "num", + "once_cell", + "rand 0.7.3", "tracing", ] @@ -1688,7 +1704,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1841,7 +1857,7 @@ dependencies = [ "parking_lot 0.11.2", "signal-hook", "signal-hook-mio", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1857,7 +1873,7 @@ dependencies = [ "parking_lot 0.12.1", "signal-hook", "signal-hook-mio", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1866,7 +1882,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1875,7 +1891,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -2471,7 +2487,7 @@ dependencies = [ "log", "once_cell", "parking_lot 0.12.1", - "pin-project 1.1.3", + "pin-project", "serde", "serde_json", "serde_v8", @@ -2551,7 +2567,7 @@ dependencies = [ "serde-value", "serde_json", "tokio", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -2571,7 +2587,7 @@ dependencies = [ "rand 0.8.5", "serde", "tokio", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -2600,7 +2616,7 @@ dependencies = [ "once_cell", "percent-encoding 2.3.0", "phf 0.10.1", - "pin-project 1.1.3", + "pin-project", "ring", "serde", "slab", @@ -2622,7 +2638,7 @@ dependencies = [ "fs3", "once_cell", "tokio", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -2663,7 +2679,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aef1534b43dcf5cb8d28ee72035e4d5a426952fa305b75f0100dac3c89c99a4e" dependencies = [ "deno_core", - "libloading", + "libloading 0.7.4", ] [[package]] @@ -2676,7 +2692,7 @@ dependencies = [ "deno_tls", "enum-as-inner", "log", - "pin-project 1.1.3", + "pin-project", "serde", "socket2 0.4.9", "tokio", @@ -2739,7 +2755,7 @@ dependencies = [ "tokio", "typenum", "whoami", - "winapi", + "winapi 0.3.9", "x25519-dalek 2.0.0-rc.3", "x509-parser", ] @@ -2833,7 +2849,7 @@ dependencies = [ "tokio", "tokio-metrics", "uuid 1.4.1", - "winapi", + "winapi 0.3.9", "winres", ] @@ -2919,7 +2935,7 @@ dependencies = [ "once_cell", "serde", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] @@ -3112,6 +3128,12 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + [[package]] name = "digest" version = "0.8.1" @@ -3149,7 +3171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c" dependencies = [ "cfg-if 0.1.10", - "dirs-sys", + "dirs-sys 0.3.7", ] [[package]] @@ -3158,7 +3180,7 @@ version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" dependencies = [ - "dirs-sys", + "dirs-sys 0.3.7", ] [[package]] @@ -3167,7 +3189,16 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" dependencies = [ - "dirs-sys", + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", ] [[package]] @@ -3188,7 +3219,19 @@ checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", "redox_users", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", ] [[package]] @@ -3199,7 +3242,7 @@ checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", "redox_users", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -3234,7 +3277,7 @@ dependencies = [ "dlopen_derive", "lazy_static", "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -3260,9 +3303,9 @@ dependencies = [ [[package]] name = "downcast" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb454f0228b18c7f4c3b0ebbee346ed9c52e7443b0999cd543ff3571205701d" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dprint-swc-ext" @@ -3564,15 +3607,6 @@ dependencies = [ "syn 2.0.28", ] -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "log", -] - [[package]] name = "env_logger" version = "0.10.0" @@ -3614,7 +3648,7 @@ checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" dependencies = [ "errno-dragonfly", "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -3654,28 +3688,6 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 1.0.109", - "synstructure", -] - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -3712,7 +3724,7 @@ dependencies = [ "base64 0.21.2", "cc", "hyper 0.14.27", - "pin-project 1.1.3", + "pin-project", "rand 0.8.5", "sha1 0.10.5", "simdutf8", @@ -3791,11 +3803,11 @@ dependencies = [ [[package]] name = "fixt" -version = "0.1.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ccb978b54171f597ebb93855417156a4df0c44e47d64ac0b0b3d909e3216b6" +checksum = "7639bc73b1f77c02a3346d265af7f76a66d4954686eb1112ea32955ca76a018a" dependencies = [ - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "lazy_static", "parking_lot 0.10.2", "paste", @@ -3825,6 +3837,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + [[package]] name = "fly-accept-encoding" version = "0.2.0" @@ -3866,15 +3887,6 @@ dependencies = [ "percent-encoding 2.3.0", ] -[[package]] -name = "fragile" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7464c5c4a3f014d9b2ec4073650e5c06596f385060af740fc45ad5a19f959e8" -dependencies = [ - "fragile 2.0.0", -] - [[package]] name = "fragile" version = "2.0.0" @@ -3901,7 +3913,7 @@ checksum = "fb17cf6ed704f72485332f6ab65257460c4f9f3083934cf402bf9f5b3b600a90" dependencies = [ "libc", "rustc_version 0.2.3", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -3926,7 +3938,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57eafdd0c16f57161105ae1b98a1238f97645f2f588438b2949c99a2af9616bf" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -4091,6 +4103,12 @@ dependencies = [ "byteorder", ] +[[package]] +name = "gcc" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" + [[package]] name = "gcollections" version = "1.5.0" @@ -4222,6 +4240,28 @@ dependencies = [ "zeroize", ] +[[package]] +name = "get_if_addrs" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7" +dependencies = [ + "c_linked_list", + "get_if_addrs-sys", + "libc", + "winapi 0.2.8", +] + +[[package]] +name = "get_if_addrs-sys" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48" +dependencies = [ + "gcc", + "libc", +] + [[package]] name = "getrandom" version = "0.1.16" @@ -4258,16 +4298,16 @@ dependencies = [ [[package]] name = "ghost_actor" -version = "0.3.0-alpha.4" +version = "0.3.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecc8c54b8ebb1e0347a75a2c1e54268c737313da693f99c0964643011e5406d" +checksum = "8a34addaffa7d2c80637807444f171c646cad7549fcdac8019544034678f76d5" dependencies = [ "futures", "mockall", "must_future", - "observability", "paste", "thiserror", + "tokio", "tracing", "tracing-futures", ] @@ -4326,7 +4366,7 @@ dependencies = [ "gobject-sys", "libc", "system-deps 6.1.1", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -4484,7 +4524,7 @@ dependencies = [ "futures", "graphql_client", "log", - "pin-project 1.1.3", + "pin-project", "serde", "serde_json", "thiserror", @@ -4708,9 +4748,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.2.3" +version = "0.4.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c3ec758c7f6a2adc57336caebc38ee86a07349ae622f58dacdc65645957f2c9" +checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" dependencies = [ "hdk_derive", "holo_hash", @@ -4725,9 +4765,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.1.3" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41155c2019be0cbad493ba092aff02002c304d09f0750e4a7bc363f472b8fd14" +checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" dependencies = [ "getrandom 0.2.10", "hdi", @@ -4745,9 +4785,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.1.3" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5781d5b09f0229edadff38be6efc4c549384b7a711dc3e8f78c3f84002d8b7b2" +checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" dependencies = [ "darling 0.14.4", "heck 0.4.1", @@ -4833,6 +4873,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + [[package]] name = "hkdf" version = "0.11.0" @@ -4894,9 +4940,9 @@ dependencies = [ [[package]] name = "holo_hash" -version = "0.1.3" +version = "0.3.0-beta-dev.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df56e386a660feed3ab6db81be49918b7bc080979b48b1d4e6e19405feb6b651" +checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" dependencies = [ "arbitrary", "base64 0.13.1", @@ -4904,7 +4950,8 @@ dependencies = [ "derive_more", "fixt", "futures", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", + "holochain_wasmer_common", "kitsune_p2p_dht_arc", "must_future", "rand 0.8.5", @@ -4916,35 +4963,41 @@ dependencies = [ [[package]] name = "holochain" -version = "0.1.5" +version = "0.3.0-beta-dev.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b8868e8bfa5501c8a98c98e1a96c06f9b94c6295456c4dca1bfd96f744732b8" +checksum = "928bf36ef4dac278c6a1e6475d4f2534e2183fb680474f84b52f974288599a19" dependencies = [ "anyhow", + "arbitrary", "async-recursion", "async-trait", "base64 0.13.1", "byteorder", "cfg-if 0.1.10", "chrono", + "contrafact", "derive_more", + "diff", "directories 2.0.2", "either", "fallible-iterator", "fixt", "futures", + "get_if_addrs", "getrandom 0.2.10", - "ghost_actor 0.3.0-alpha.4", + "ghost_actor 0.3.0-alpha.6", "hdk", "holo_hash", "holochain_cascade", "holochain_conductor_api", "holochain_keystore", + "holochain_metrics", "holochain_p2p", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "holochain_sqlite", "holochain_state", "holochain_test_wasm_common", + "holochain_trace", "holochain_types", "holochain_util", "holochain_wasm_test_utils", @@ -4955,6 +5008,8 @@ dependencies = [ "human-panic", "itertools 0.10.5", "kitsune_p2p", + "kitsune_p2p_block", + "kitsune_p2p_bootstrap", "kitsune_p2p_types", "lazy_static", "matches", @@ -4963,11 +5018,10 @@ dependencies = [ "must_future", "nanoid 0.3.0", "num_cpus", - "observability", "once_cell", "one_err", "parking_lot 0.10.2", - "predicates", + "predicates 1.0.8", "rand 0.8.5", "rand-utf8", "rpassword 5.0.1", @@ -4990,9 +5044,11 @@ dependencies = [ "toml 0.5.11", "tracing", "tracing-futures", - "tracing-subscriber 0.2.25", + "tracing-subscriber 0.3.17", + "tx5-go-pion-turn", + "tx5-signal-srv", "unwrap_to", - "url 1.7.2", + "url 2.4.0", "url2", "url_serde", "uuid 0.7.4", @@ -5001,9 +5057,9 @@ dependencies = [ [[package]] name = "holochain_cascade" -version = "0.1.5" +version = "0.3.0-beta-dev.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b9ca60ed5b7ec8ce9e96fd058cd088ce5dcd94b3044915003ae06ade69b2e7" +checksum = "c0eb94a5a91371f9f08290721fd6102f3890a82320a52eafea65a99f761fd455" dependencies = [ "async-trait", "derive_more", @@ -5011,19 +5067,19 @@ dependencies = [ "fallible-iterator", "fixt", "futures", - "ghost_actor 0.3.0-alpha.4", + "ghost_actor 0.3.0-alpha.6", "hdk", "hdk_derive", "holo_hash", "holochain_p2p", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "holochain_sqlite", "holochain_state", + "holochain_trace", "holochain_types", "holochain_zome_types", "kitsune_p2p", "mockall", - "observability", "serde", "serde_derive", "thiserror", @@ -5034,16 +5090,16 @@ dependencies = [ [[package]] name = "holochain_conductor_api" -version = "0.1.5" +version = "0.3.0-beta-dev.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "144f16f4c7f730165ee685bab31d4ef51781591720112c63160753e1a23c2edb" +checksum = "5047efbe01088537346ad2a7e8f49b71edd00c0001c86ead313265bd9ab5e2eb" dependencies = [ "derive_more", "directories 2.0.2", "holo_hash", "holochain_keystore", "holochain_p2p", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "holochain_state", "holochain_types", "holochain_zome_types", @@ -5059,32 +5115,34 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.1.3" +version = "0.3.0-beta-dev.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f733f35118d450fdc165c097d8434224624e6a3ff18b49675be4a452149af04e" +checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" dependencies = [ "arbitrary", + "derive_builder", "holo_hash", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", "serde_bytes", "subtle 2.4.1", + "subtle-encoding", "tracing", ] [[package]] name = "holochain_keystore" -version = "0.1.5" +version = "0.3.0-beta-dev.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237842d444203febaffcde106c4e22168b569b697199c7430229ab4a888d013d" +checksum = "e3b27a587437df54b67e170fa42a73b5d3a1fd89a61fc14119f7218839e8cf74" dependencies = [ "base64 0.13.1", "futures", "holo_hash", - "holochain_serialized_bytes 0.0.51", - "holochain_sqlite", + "holochain_serialized_bytes", "holochain_zome_types", "kitsune_p2p_types", "lair_keystore", @@ -5100,27 +5158,38 @@ dependencies = [ "tracing", ] +[[package]] +name = "holochain_metrics" +version = "0.3.0-beta-dev.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e921c4e67608880b56e002cbdf89f612e73508152032201073eac3298d86c498" +dependencies = [ + "influxive", + "tracing", + "ts_opentelemetry_api", +] + [[package]] name = "holochain_p2p" -version = "0.1.5" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e37d67250268a518dd55d320207a8a7ef0d47f88eb0d7a5468c4df5b168d86c" +checksum = "b4a827dcc331dac59012a34f925535d4a120da8d7c7043f60ef8130b75a12391" dependencies = [ "async-trait", "derive_more", "fixt", "futures", - "ghost_actor 0.3.0-alpha.4", + "ghost_actor 0.3.0-alpha.6", "holo_hash", "holochain_keystore", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", + "holochain_trace", "holochain_types", "holochain_util", "holochain_zome_types", "kitsune_p2p", "kitsune_p2p_types", "mockall", - "observability", "rand 0.8.5", "serde", "serde_bytes", @@ -5137,22 +5206,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" dependencies = [ "arbitrary", - "holochain_serialized_bytes_derive 0.0.51", - "rmp-serde 0.15.5", - "serde", - "serde-transcode", - "serde_bytes", - "serde_json", - "thiserror", -] - -[[package]] -name = "holochain_serialized_bytes" -version = "0.0.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac6151d65c9a6f26f1b1068046a98900214030924377a2142f60c279b091f51" -dependencies = [ - "holochain_serialized_bytes_derive 0.0.52", + "holochain_serialized_bytes_derive", "rmp-serde 0.15.5", "serde", "serde-transcode", @@ -5171,52 +5225,34 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "holochain_serialized_bytes_derive" -version = "0.0.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cec0d0c2317fcb87772d0a8b5b5e88c7276aef93bf3496931e89cb9231c129" -dependencies = [ - "quote 1.0.32", - "syn 1.0.109", -] - [[package]] name = "holochain_sqlite" -version = "0.1.5" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0478997b700ab1c98cd990336386c8b78c6a61c6c587269598babf58afa553" +checksum = "372cddf1ea7a3249a1b6ad030b42b98490fed43c8e332637660621c316f3e0d2" dependencies = [ "anyhow", "async-trait", - "byteorder", - "cfg-if 0.1.10", "chashmap", - "chrono", "derive_more", - "either", - "failure", "fallible-iterator", - "fixt", "futures", "getrandom 0.2.10", "holo_hash", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "holochain_util", "holochain_zome_types", - "kitsune_p2p", - "lazy_static", - "must_future", - "nanoid 0.3.0", - "num-traits", + "kitsune_p2p_bin_data", + "kitsune_p2p_dht", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "kitsune_p2p_types", "num_cpus", "once_cell", - "page_size", "parking_lot 0.10.2", "pretty_assertions 0.7.2", "r2d2", - "r2d2_sqlite", - "rand 0.8.5", + "r2d2_sqlite_neonphog", "rmp-serde 0.15.5", "rusqlite", "scheduled-thread-pool", @@ -5229,14 +5265,13 @@ dependencies = [ "thiserror", "tokio", "tracing", - "tracing-futures", ] [[package]] name = "holochain_state" -version = "0.1.5" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39da384cbf8ca1da473eb7ed5365e643e0018497cf68c7393da9254d46fa43c3" +checksum = "be5e38028754e4ebb68c3ea5efe10e0b5f4bd98bd483db293f9eef067d54708d" dependencies = [ "async-recursion", "base64 0.13.1", @@ -5253,7 +5288,7 @@ dependencies = [ "holo_hash", "holochain_keystore", "holochain_p2p", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "holochain_sqlite", "holochain_types", "holochain_util", @@ -5276,19 +5311,37 @@ dependencies = [ [[package]] name = "holochain_test_wasm_common" -version = "0.1.3" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c27abb2b4f79f0bdffa081cae3f64b722067c5612e18d9a0cab8e4352a3c9d" +checksum = "d9076608fbed56546c9d78c6d1d9f1f1ad0936bafb0f8fe712d936ec9d8f403d" dependencies = [ "hdk", "serde", ] +[[package]] +name = "holochain_trace" +version = "0.3.0-beta-dev.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79123f87eed68619077d1730d58745bb365f1073de732211149fd88a879a98de" +dependencies = [ + "chrono", + "derive_more", + "inferno", + "once_cell", + "serde_json", + "thiserror", + "tracing", + "tracing-core", + "tracing-serde", + "tracing-subscriber 0.3.17", +] + [[package]] name = "holochain_types" -version = "0.1.5" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dbb009ac2cebed3e0c216fc0ccb9d2d5c6ee31fcd7017617ff8411d6fb7a700" +checksum = "30b3aed264ef6950456a2b9545b6c90a15e29eefe3d133353945ec828acae953" dependencies = [ "anyhow", "arbitrary", @@ -5305,11 +5358,14 @@ dependencies = [ "fixt", "flate2", "futures", + "getrandom 0.2.10", "holo_hash", "holochain_keystore", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "holochain_sqlite", + "holochain_trace", "holochain_util", + "holochain_wasmer_host", "holochain_zome_types", "isotest", "itertools 0.10.5", @@ -5319,7 +5375,6 @@ dependencies = [ "mr_bundle", "must_future", "nanoid 0.3.0", - "observability", "one_err", "parking_lot 0.10.2", "rand 0.8.5", @@ -5328,6 +5383,7 @@ dependencies = [ "serde", "serde_bytes", "serde_derive", + "serde_json", "serde_with 1.14.0", "serde_yaml 0.9.25", "shrinkwraprs", @@ -5337,13 +5393,14 @@ dependencies = [ "thiserror", "tokio", "tracing", + "wasmer-middlewares", ] [[package]] name = "holochain_util" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c5ef241a2112529e041c2efec8ced3a7e0cbdbce4e987099172fb2a857aa3f" +checksum = "2e5661bebd4f4610a8a8802cc7fb6c8000713eca872390df1496790f5324ac62" dependencies = [ "backtrace", "cfg-if 0.1.10", @@ -5359,9 +5416,9 @@ dependencies = [ [[package]] name = "holochain_wasm_test_utils" -version = "0.1.5" +version = "0.3.0-beta-dev.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e6f1545fe86c407b95b22f309d29d4cbfe7643e302b7ebc388a6324452106" +checksum = "23f5a6399850fd4fd2989957565bc713bb3fa471940b49fcb603659cc029b9ba" dependencies = [ "holochain_types", "holochain_util", @@ -5373,11 +5430,11 @@ dependencies = [ [[package]] name = "holochain_wasmer_common" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +checksum = "223daec7ca62d4e36841a99d8799b29cc616f5976ad0e2975e6ca6810de8f14f" dependencies = [ - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "serde", "serde_bytes", "test-fuzz", @@ -5388,11 +5445,11 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +checksum = "92b2026e44595cb16108464973622577936605582aa22932933a5130ad32ce42" dependencies = [ - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "holochain_wasmer_common", "parking_lot 0.12.1", "paste", @@ -5402,12 +5459,12 @@ dependencies = [ [[package]] name = "holochain_wasmer_host" -version = "0.0.83" +version = "0.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22765ece4cda73be1bb004f849e8c71b921916fd9fb05bfc7110dfb5b1864cdd" +checksum = "65912ef579fa53ca4ad7713f13379fae53a0d79ef2d91b87670201044eae0d5e" dependencies = [ "bimap", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "holochain_wasmer_common", "once_cell", "parking_lot 0.12.1", @@ -5419,13 +5476,13 @@ dependencies = [ [[package]] name = "holochain_websocket" -version = "0.1.1" +version = "0.3.0-beta-dev.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbb14b20e79dd2ddefbbd3f64477e8d5dea7b095c58b3ed469987dec3ba3b08" +checksum = "9be564666d2cc78a7cdbca222eb7b2c5d21692c63d82ae3011069d162f2a385d" dependencies = [ "futures", "ghost_actor 0.4.0-alpha.5", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "must_future", "nanoid 0.3.0", "net2", @@ -5444,9 +5501,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.1.3" +version = "0.3.0-beta-dev.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29048ce963a001f672cbf5a1269a148fa2e0ab2f7c5cad58bb8d1c9968097041" +checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" dependencies = [ "arbitrary", "contrafact", @@ -5454,8 +5511,10 @@ dependencies = [ "fixt", "holo_hash", "holochain_integrity_types", - "holochain_serialized_bytes 0.0.51", + "holochain_serialized_bytes", "holochain_wasmer_common", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", "kitsune_p2p_dht", "kitsune_p2p_timestamp", "nanoid 0.3.0", @@ -5492,7 +5551,7 @@ checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ "libc", "match_cfg", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -5602,6 +5661,12 @@ dependencies = [ "uuid 1.4.1", ] +[[package]] +name = "human-repr" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f58b778a5761513caf593693f8951c97a5b610841e754788400f32102eefdff1" + [[package]] name = "humantime" version = "2.1.0" @@ -5664,7 +5729,7 @@ dependencies = [ "hyper 0.14.27", "rustls 0.21.6", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] @@ -5781,33 +5846,32 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.6.7" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2273e421f7c4f0fc99e1934fe4776f59d8df2972f4199d703fc0da9f2a9f73de" +checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9" dependencies = [ - "if-addrs-sys", "libc", - "winapi", + "winapi 0.3.9", ] [[package]] name = "if-addrs" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9" +checksum = "26b24dd0826eee92c56edcda7ff190f2cf52115c49eadb2c2da8063e2673a8c2" dependencies = [ "libc", - "winapi", + "windows-sys 0.42.0", ] [[package]] -name = "if-addrs-sys" -version = "0.3.2" +name = "if-addrs" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" +checksum = "2cfc4a06638d2fd0dda83b01126fefd38ef9f04f54d2fc717a938df68b83a68d" dependencies = [ - "cc", "libc", + "windows-sys 0.45.0", ] [[package]] @@ -5835,9 +5899,9 @@ dependencies = [ [[package]] name = "image" -version = "0.24.6" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" dependencies = [ "bytemuck", "byteorder", @@ -5879,28 +5943,130 @@ dependencies = [ [[package]] name = "inferno" -version = "0.10.12" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3886428c6400486522cf44b8626e7b94ad794c14390290f2a274dcf728a58f" +checksum = "2fb7c1b80a1dfa604bb4a649a5c5aeef3d913f7c520cb42b40e534e8a61bcdfc" dependencies = [ - "ahash 0.7.6", - "atty", - "clap 3.2.25", + "ahash 0.8.3", + "clap 4.3.21", "crossbeam-channel", "crossbeam-utils", "dashmap 5.5.0", - "env_logger 0.9.3", + "env_logger", "indexmap 1.9.3", + "is-terminal", "itoa 1.0.9", - "lazy_static", "log", "num-format", - "num_cpus", - "quick-xml 0.22.0", + "once_cell", + "quick-xml 0.26.0", "rgb", "str_stack", ] +[[package]] +name = "influxdb" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f79168e8b5047761c3e027438d6a46150380b2d78b15b723da04beefde29832" +dependencies = [ + "chrono", + "futures-util", + "http", + "lazy_static", + "regex", + "reqwest", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "influxive" +version = "0.0.1-alpha.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e751ac3b2c3a7943237d176f43d051e81611ab60927ee0de778eef8eb8a9946" +dependencies = [ + "influxive-child-svc", + "influxive-otel", + "influxive-writer", +] + +[[package]] +name = "influxive-child-svc" +version = "0.0.1-alpha.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3304096e465620b1e8b8f126e385050d8a0071f20ad09d1dae240474fde52bb9" +dependencies = [ + "hex-literal", + "influxive-core", + "influxive-downloader", + "influxive-writer", + "tempfile", + "tokio", + "tracing", +] + +[[package]] +name = "influxive-core" +version = "0.0.1-alpha.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "361ab244896d34c02cdfb4fb90a0cf11d1db7e140f6d0f9eb872c335e3f7f602" + +[[package]] +name = "influxive-downloader" +version = "0.0.1-alpha.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2575384f9b4e5f94f316c69844f0a31e139694a530ffcc9cea6c98ce81627f" +dependencies = [ + "base64 0.21.2", + "digest 0.10.7", + "dirs 5.0.1", + "flate2", + "futures", + "hex", + "hex-literal", + "influxive-core", + "reqwest", + "sha2 0.10.7", + "tar", + "tempfile", + "tokio", + "zip", +] + +[[package]] +name = "influxive-otel" +version = "0.0.1-alpha.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a29ee9911b66e6f433734c900ed1d95b3cffeab1ea7dace3ecd3a3dd224e8be" +dependencies = [ + "influxive-core", + "tokio", + "ts_opentelemetry_api", +] + +[[package]] +name = "influxive-otel-atomic-obs" +version = "0.0.1-alpha.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07bcce79167d27b8b2d639cf026029506ed3dfa7bf7ee402c29cab03a7afd16" +dependencies = [ + "ts_opentelemetry_api", +] + +[[package]] +name = "influxive-writer" +version = "0.0.1-alpha.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee73e5486492eafd6c50790545df7b73c81edf69b299f96183bdcb9371619951" +dependencies = [ + "influxdb", + "influxive-core", + "tokio", + "tracing", +] + [[package]] name = "inotify" version = "0.9.6" @@ -6247,21 +6413,24 @@ dependencies = [ [[package]] name = "kitsune_p2p" -version = "0.1.4" +version = "0.3.0-beta-dev.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "646cc0379a2ed7529f09f3dae5aaa8c1a303ccf358b608b1b31661339b51ce4f" +checksum = "5815cea51fe754223ec08f02614152d10bde4a4d4b40a3bd4ce05c98ff0469f7" dependencies = [ "arbitrary", "arrayref", "base64 0.13.1", "blake2b_simd 0.5.11", "bloomfilter", + "bytes", "derive_more", "fixt", "futures", - "ghost_actor 0.3.0-alpha.4", + "ghost_actor 0.3.0-alpha.6", "governor", + "holochain_trace", "itertools 0.10.5", + "kitsune_p2p_block", "kitsune_p2p_fetch", "kitsune_p2p_mdns", "kitsune_p2p_proxy", @@ -6273,7 +6442,6 @@ dependencies = [ "must_future", "nanoid 0.4.0", "num-traits", - "observability", "once_cell", "parking_lot 0.11.2", "rand 0.8.5", @@ -6286,14 +6454,63 @@ dependencies = [ "tokio", "tokio-stream", "tracing", + "ts_opentelemetry_api", + "tx5", "url2", ] +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.3.0-beta-dev.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +dependencies = [ + "arbitrary", + "base64 0.13.1", + "derive_more", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.3.0-beta-dev.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" +dependencies = [ + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_bootstrap" +version = "0.2.0-beta-dev.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5186bf95f801c07fa7cfed4f568eccfb0a4d297d2f249c27ed132947570b337a" +dependencies = [ + "clap 3.2.25", + "futures", + "kitsune_p2p_types", + "once_cell", + "parking_lot 0.11.2", + "rand 0.8.5", + "rmp-serde 0.15.5", + "serde", + "serde_bytes", + "serde_json", + "tokio", + "warp", +] + [[package]] name = "kitsune_p2p_dht" -version = "0.1.1" +version = "0.3.0-beta-dev.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34bbe2d79872fbc9044b173dbb5927f410bf556df4f8fb182ceec3916a7b814" +checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" dependencies = [ "colored", "derivative", @@ -6315,9 +6532,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.1.1" +version = "0.3.0-beta-dev.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "393459f0d302ef9abbf80271174b5899737400efa5554a52b0883ae787be2489" +checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" dependencies = [ "derive_more", "gcollections", @@ -6329,12 +6546,13 @@ dependencies = [ [[package]] name = "kitsune_p2p_fetch" -version = "0.1.3" +version = "0.3.0-beta-dev.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82eaafc477b3f8f336f08fcaf52882c38dd3d78458864c852bd9042875f704d7" +checksum = "190ba3b08e5362eaeb44fa971f603e82ccd5de6b26d345a4e2d10b51d769044d" dependencies = [ "derive_more", "futures", + "human-repr", "kitsune_p2p_timestamp", "kitsune_p2p_types", "linked-hash-map", @@ -6349,9 +6567,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_mdns" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a563ae2f9b61e11ada532ab6e5379bb4fc9d965b79a4793e2cfb3c9610c870d2" +checksum = "b714dbb2199f2f7d2b22d0bc84982b92f3db3922b70538c5f750e6dbaa82a40f" dependencies = [ "async-stream", "base64 0.13.1", @@ -6366,18 +6584,18 @@ dependencies = [ [[package]] name = "kitsune_p2p_proxy" -version = "0.1.3" +version = "0.3.0-beta-dev.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d2c0abf2abc852f6e668a3a6daae208df67a6a2e7fa3d6f22c085a8020fb386" +checksum = "0e56cd48058bd8b0bf4ce59bf4c5e6a4336473982613dfcd6eb275c604c2879b" dependencies = [ "base64 0.13.1", "blake2b_simd 0.5.11", "derive_more", "futures", + "holochain_trace", "kitsune_p2p_transport_quic", "kitsune_p2p_types", "nanoid 0.3.0", - "observability", "parking_lot 0.11.2", "rmp-serde 0.15.5", "rustls 0.20.8", @@ -6385,15 +6603,15 @@ dependencies = [ "serde_bytes", "structopt", "tokio", - "tracing-subscriber 0.2.25", + "tracing-subscriber 0.3.17", "webpki 0.21.4", ] [[package]] name = "kitsune_p2p_timestamp" -version = "0.1.1" +version = "0.3.0-beta-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e546f28741482c3a50e75f25f78b712fb2840dff20b17f194231d19cfe23424" +checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" dependencies = [ "arbitrary", "chrono", @@ -6404,13 +6622,13 @@ dependencies = [ [[package]] name = "kitsune_p2p_transport_quic" -version = "0.1.3" +version = "0.3.0-beta-dev.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5999a8af746ebee7b0f3954ef9fc3b7b61c13309916a95276e763283be9531f" +checksum = "0a7bc8e5557ac54ff88bef3395e22cdb85d3db04f7f8e4a1ba43b065357f338c" dependencies = [ "blake2b_simd 1.0.1", "futures", - "if-addrs 0.7.0", + "if-addrs 0.8.0", "kitsune_p2p_types", "nanoid 0.4.0", "once_cell", @@ -6424,22 +6642,25 @@ dependencies = [ [[package]] name = "kitsune_p2p_types" -version = "0.1.3" +version = "0.3.0-beta-dev.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a632abb5fc16d59d8b6b6faf772c92986bbd039d0e13c2cbd7b493f746e2a145" +checksum = "14b463767bf87550e3cb222a53f982014279ed286ed83d9ac5c21b608db5bea6" dependencies = [ "arbitrary", "base64 0.13.1", "derive_more", "futures", - "ghost_actor 0.3.0-alpha.4", + "ghost_actor 0.3.0-alpha.6", + "holochain_trace", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", "kitsune_p2p_dht", "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", "lair_keystore_api", "lru 0.8.1", "mockall", "nanoid 0.3.0", - "observability", "once_cell", "parking_lot 0.11.2", "paste", @@ -6452,7 +6673,6 @@ dependencies = [ "sysinfo 0.27.8", "thiserror", "tokio", - "tokio-stream", "url 2.4.0", "url2", "webpki 0.22.0", @@ -6537,7 +6757,7 @@ dependencies = [ "toml 0.7.6", "tracing", "url 2.4.0", - "winapi", + "winapi 0.3.9", "zeroize", ] @@ -6695,7 +6915,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1b3b6681973cea8cc3bce7391e6d7d5502720b80a581c9a95c9cbaf592826aa" dependencies = [ "gtk-sys", - "libloading", + "libloading 0.7.4", "once_cell", ] @@ -6770,7 +6990,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ "cfg-if 1.0.0", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "libloading" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.48.0", ] [[package]] @@ -6781,20 +7011,22 @@ checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libmdns" -version = "0.6.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b276920bfc6c9285e16ffd30ed410487f0185f383483f45a3446afc0554fded" +checksum = "6a60d8339ad1ddf68a81335fcafb6c6cf20d5036138a1e4ef86b8ce87f076c92" dependencies = [ "byteorder", "futures-util", "hostname", - "if-addrs 0.6.7", + "if-addrs 0.7.0", "log", "multimap", - "quick-error", + "nix 0.23.2", "rand 0.8.5", - "socket2 0.3.19", + "socket2 0.4.9", + "thiserror", "tokio", + "winapi 0.3.9", ] [[package]] @@ -6983,7 +7215,7 @@ dependencies = [ "thiserror", "thread-id 4.1.0", "typemap-ors", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -7308,7 +7540,7 @@ dependencies = [ "log", "miow", "ntapi 0.3.7", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -7329,29 +7561,29 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] name = "mockall" -version = "0.10.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab571328afa78ae322493cacca3efac6a0f2e0a67305b4df31fd439ef129ac0" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" dependencies = [ "cfg-if 1.0.0", "downcast", - "fragile 1.2.2", + "fragile", "lazy_static", "mockall_derive", - "predicates", + "predicates 2.1.5", "predicates-tree", ] [[package]] name = "mockall_derive" -version = "0.10.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e25b214433f669161f414959594216d8e6ba83b6679d3db96899c0b4639033" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" dependencies = [ "cfg-if 1.0.0", "proc-macro2 1.0.66", @@ -7394,9 +7626,9 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "mr_bundle" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c67909e9551fd2c5048661e9a73e0161ae40f1589758fb7d297ae7de97606076" +checksum = "ac36235a1fedd3db089ebc880bfdee39574363ceabe2da9a9720d116cc5269d5" dependencies = [ "arbitrary", "bytes", @@ -7594,7 +7826,7 @@ checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" dependencies = [ "cfg-if 0.1.10", "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -7604,7 +7836,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29a01b9f018d6b7b277fef6c79fdbd9bf17bb2d1e298238055cafab49baa5ee" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -7732,7 +7964,7 @@ dependencies = [ "libc", "mio 0.8.8", "walkdir", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -7755,7 +7987,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -7764,7 +7996,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -7774,7 +8006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -7992,35 +8224,12 @@ dependencies = [ ] [[package]] -name = "object" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" -dependencies = [ - "memchr", -] - -[[package]] -name = "observability" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ee3ae3ce7a7b9f875526d3f956c106f991114f1c61a0e10553918256efc8fc" -dependencies = [ - "chrono", - "derive_more", - "holochain_serialized_bytes 0.0.52", - "inferno", - "once_cell", - "opentelemetry", - "serde", - "serde_bytes", - "serde_json", - "thiserror", - "tracing", - "tracing-core", - "tracing-opentelemetry", - "tracing-serde", - "tracing-subscriber 0.2.25", +name = "object" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +dependencies = [ + "memchr", ] [[package]] @@ -8111,7 +8320,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "293c15678e37254c15bd2f092314abb4e51d7fdde05c2021279c12631b54f005" dependencies = [ "bstr", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -8159,19 +8368,10 @@ dependencies = [ ] [[package]] -name = "opentelemetry" -version = "0.8.0" +name = "option-ext" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf68b6b34b5d869342732c0dc05f74b7bdb4f17f2302d16d799231a6106441" -dependencies = [ - "bincode", - "futures", - "lazy_static", - "percent-encoding 2.3.0", - "pin-project 0.4.30", - "rand 0.7.3", - "serde", -] +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "ordered-float" @@ -8200,7 +8400,7 @@ checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" dependencies = [ "log", "serde", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -8219,13 +8419,36 @@ version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" +[[package]] +name = "ouroboros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" +dependencies = [ + "aliasable", + "ouroboros_macro", +] + +[[package]] +name = "ouroboros_macro" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" +dependencies = [ + "Inflector", + "proc-macro-error", + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 1.0.109", +] + [[package]] name = "output_vt100" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -8304,16 +8527,6 @@ dependencies = [ "sha2 0.10.7", ] -[[package]] -name = "page_size" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "pairing" version = "0.22.0" @@ -8405,7 +8618,7 @@ dependencies = [ "libc", "rand 0.4.6", "smallvec 0.6.14", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -8419,7 +8632,7 @@ dependencies = [ "libc", "redox_syscall 0.1.57", "smallvec 1.11.0", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -8433,7 +8646,7 @@ dependencies = [ "libc", "redox_syscall 0.2.16", "smallvec 1.11.0", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -8473,9 +8686,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "path-clean" @@ -8712,33 +8925,13 @@ dependencies = [ "siphasher", ] -[[package]] -name = "pin-project" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef0f924a5ee7ea9cbcea77529dba45f8a9ba9f622419fe3386ca581a3ae9d5a" -dependencies = [ - "pin-project-internal 0.4.30", -] - [[package]] name = "pin-project" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ - "pin-project-internal 1.1.3", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" -dependencies = [ - "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 1.0.109", + "pin-project-internal", ] [[package]] @@ -8924,7 +9117,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df" dependencies = [ "difference", - "float-cmp", + "float-cmp 0.8.0", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp 0.9.0", + "itertools 0.10.5", "normalize-line-endings", "predicates-core", "regex", @@ -9035,6 +9242,27 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "prometheus" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +dependencies = [ + "cfg-if 1.0.0", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.1", + "protobuf", + "thiserror", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" + [[package]] name = "psm" version = "0.1.21" @@ -9071,7 +9299,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d98dc777a7a39b76b1a26ae9d3f691f4c1bc0455090aa0b64dfa8cb7fc34c135" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9082,18 +9310,18 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quick-xml" -version = "0.22.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8533f14c8382aaad0d592c812ac3b826162128b65662331e1127b45c3d18536b" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" dependencies = [ "memchr", ] [[package]] name = "quick-xml" -version = "0.23.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd" dependencies = [ "memchr", ] @@ -9190,14 +9418,13 @@ dependencies = [ ] [[package]] -name = "r2d2_sqlite" -version = "0.22.0" +name = "r2d2_sqlite_neonphog" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99f31323d6161385f385046738df520e0e8694fa74852d35891fc0be08348ddc" +checksum = "4d1e95b387a49ce52c5e4994fbe18af7b6cd52510f74c9a243b12abfc207f49c" dependencies = [ "r2d2", "rusqlite", - "uuid 1.4.1", ] [[package]] @@ -9226,7 +9453,7 @@ dependencies = [ "libc", "rand_core 0.3.1", "rdrand", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9245,7 +9472,7 @@ dependencies = [ "rand_os", "rand_pcg 0.1.2", "rand_xorshift", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9390,7 +9617,7 @@ checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" dependencies = [ "libc", "rand_core 0.4.2", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9404,7 +9631,7 @@ dependencies = [ "libc", "rand_core 0.4.2", "rdrand", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9608,7 +9835,7 @@ dependencies = [ "bitflags 1.3.2", "libc", "mach", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9621,7 +9848,7 @@ dependencies = [ "log", "num_cpus", "rayon", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9666,7 +9893,7 @@ dependencies = [ "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.24.1", "tokio-socks", "tokio-util", "tower-service", @@ -9755,7 +9982,7 @@ dependencies = [ "spin 0.5.2", "untrusted", "web-sys", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9873,7 +10100,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9884,7 +10111,7 @@ checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" dependencies = [ "libc", "rtoolbox", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9915,7 +10142,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -9945,7 +10172,7 @@ dependencies = [ "deno_core", "deno_runtime", "did-key", - "env_logger 0.10.0", + "env_logger", "fs_extra", "futures", "hex", @@ -10063,7 +10290,7 @@ checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" dependencies = [ "log", "ring", - "rustls-webpki 0.101.2", + "rustls-webpki 0.101.3", "sct", ] @@ -10109,9 +10336,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.2" +version = "0.101.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513722fd73ad80a71f72b61009ea1b584bcfa1483ca93949c8f290298837fa59" +checksum = "261e9e0888cba427c3316e6322805653c9425240b6fd96cee7cb671ab70ab8d0" dependencies = [ "ring", "untrusted", @@ -10143,7 +10370,7 @@ dependencies = [ "unicode-segmentation", "unicode-width", "utf8parse", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -10166,7 +10393,7 @@ dependencies = [ "unicode-segmentation", "unicode-width", "utf8parse", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -10259,7 +10486,7 @@ dependencies = [ "lexical 5.2.2", "libc", "libffi 3.2.0", - "libloading", + "libloading 0.7.4", "modular-bitfield", "native-tls", "ordered-float", @@ -10796,7 +11023,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -10943,17 +11170,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "socket2" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.4.9" @@ -10961,7 +11177,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -11117,7 +11333,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "psm", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -11167,7 +11383,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0a9eb2715209fb8cc0d942fcdff45674bfc9f0090a0d897e85a22955ad159b" dependencies = [ "futures-core", - "pin-project 1.1.3", + "pin-project", "tokio", ] @@ -11331,7 +11547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -11787,7 +12003,7 @@ dependencies = [ "ntapi 0.4.1", "once_cell", "rayon", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -11802,7 +12018,7 @@ dependencies = [ "ntapi 0.4.1", "once_cell", "rayon", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -11817,7 +12033,7 @@ dependencies = [ "ntapi 0.4.1", "once_cell", "rayon", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -12188,6 +12404,16 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" +dependencies = [ + "rustix 0.37.23", + "windows-sys 0.48.0", +] + [[package]] name = "termtree" version = "0.4.1" @@ -12309,7 +12535,7 @@ checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" dependencies = [ "libc", "redox_syscall 0.1.57", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -12320,7 +12546,7 @@ checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" dependencies = [ "libc", "redox_syscall 0.2.16", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -12341,7 +12567,7 @@ checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -12470,6 +12696,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.8", + "tokio", + "webpki 0.22.0", +] + [[package]] name = "tokio-rustls" version = "0.24.1" @@ -12513,7 +12750,7 @@ dependencies = [ "futures-util", "log", "native-tls", - "pin-project 1.1.3", + "pin-project", "tokio", "tokio-native-tls", "tungstenite 0.12.0", @@ -12527,8 +12764,12 @@ checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" dependencies = [ "futures-util", "log", + "rustls 0.20.8", + "rustls-native-certs", "tokio", + "tokio-rustls 0.23.4", "tungstenite 0.18.0", + "webpki 0.22.0", ] [[package]] @@ -12609,7 +12850,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "pin-project 1.1.3", + "pin-project", "pin-project-lite", "tokio", "tower-layer", @@ -12669,7 +12910,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.1.3", + "pin-project", "tracing", ] @@ -12684,20 +12925,6 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-opentelemetry" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aba1fbd3e3152340cfa12087759543277affcce4a40a659bdb5ec21f725d3d6" -dependencies = [ - "opentelemetry", - "rand 0.7.3", - "tracing", - "tracing-core", - "tracing-log", - "tracing-subscriber 0.2.25", -] - [[package]] name = "tracing-serde" version = "0.1.3" @@ -12740,12 +12967,16 @@ dependencies = [ "nu-ansi-term", "once_cell", "regex", + "serde", + "serde_json", "sharded-slab", "smallvec 1.11.0", "thread_local", + "time 0.3.25", "tracing", "tracing-core", "tracing-log", + "tracing-serde", ] [[package]] @@ -12835,6 +13066,22 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +[[package]] +name = "ts_opentelemetry_api" +version = "0.20.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d186495330f646b5881aeb3b83bac75b8a462d7ef32fda06a2a68f3869d5ba82" +dependencies = [ + "futures-channel", + "futures-util", + "indexmap 1.9.3", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + [[package]] name = "tungstenite" version = "0.12.0" @@ -12868,10 +13115,154 @@ dependencies = [ "httparse", "log", "rand 0.8.5", + "rustls 0.20.8", "sha1 0.10.5", "thiserror", "url 2.4.0", "utf-8", + "webpki 0.22.0", +] + +[[package]] +name = "tx5" +version = "0.0.1-alpha.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9dcc0a2b0b0dc28f32200c30b838e58b0737bbe4b25ce4369f9396acc4f339" +dependencies = [ + "bytes", + "futures", + "influxive-otel-atomic-obs", + "once_cell", + "parking_lot 0.12.1", + "rand 0.8.5", + "rand-utf8", + "serde", + "serde_json", + "tokio", + "tracing", + "ts_opentelemetry_api", + "tx5-core", + "tx5-go-pion", + "tx5-signal", + "url 2.4.0", +] + +[[package]] +name = "tx5-core" +version = "0.0.1-alpha.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6de3181cafaf2cd7d1cd60c3367db5daf53a818159afa596f420bc2da1d7243d" +dependencies = [ + "base64 0.13.1", + "dirs 5.0.1", + "once_cell", + "rand 0.8.5", + "serde", + "serde_json", + "sha2 0.10.7", + "tempfile", + "tracing", + "url 2.4.0", +] + +[[package]] +name = "tx5-go-pion" +version = "0.0.1-alpha.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15d7118da8a1353717e9a42b21d922933097c069e13ef8547c7be07efa8ea8a8" +dependencies = [ + "parking_lot 0.12.1", + "tokio", + "tracing", + "tx5-go-pion-sys", + "url 2.4.0", +] + +[[package]] +name = "tx5-go-pion-sys" +version = "0.0.1-alpha.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b249cfddf59d1a7593017785f9b73cb396145166c0a3fd1bc39214757a416d7a" +dependencies = [ + "Inflector", + "base64 0.13.1", + "dirs 5.0.1", + "libc", + "libloading 0.8.0", + "once_cell", + "ouroboros", + "sha2 0.10.7", + "tracing", + "tx5-core", + "zip", +] + +[[package]] +name = "tx5-go-pion-turn" +version = "0.0.1-alpha.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925f258966cedc265cb2e1ba5a19be3007b562b203068d0c33967458695a680a" +dependencies = [ + "base64 0.13.1", + "dirs 5.0.1", + "dunce", + "if-addrs 0.10.1", + "once_cell", + "sha2 0.10.7", + "tokio", + "tracing", + "tx5-core", + "zip", +] + +[[package]] +name = "tx5-signal" +version = "0.0.1-alpha.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e26fee2c1c3e227c8bae711545c7536d17a508af0a5e317296cce18afaff5b7" +dependencies = [ + "futures", + "lair_keystore_api", + "once_cell", + "parking_lot 0.12.1", + "rand 0.8.5", + "rand-utf8", + "rcgen 0.10.0", + "ring", + "rustls 0.20.8", + "rustls-native-certs", + "rustls-pemfile 1.0.3", + "serde_json", + "sha2 0.10.7", + "socket2 0.5.3", + "tokio", + "tokio-rustls 0.23.4", + "tokio-tungstenite 0.18.0", + "tracing", + "tx5-core", + "url 2.4.0", + "webpki-roots 0.23.1", +] + +[[package]] +name = "tx5-signal-srv" +version = "0.0.1-alpha.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8359558d90ae7c4b2ff885619fcd75186cccdb62f575252c95c0c06484ce7de0" +dependencies = [ + "clap 4.3.21", + "dirs 5.0.1", + "futures", + "if-addrs 0.10.1", + "once_cell", + "prometheus", + "rand 0.8.5", + "sodoken", + "tokio", + "tracing", + "tracing-subscriber 0.3.17", + "tx5-core", + "warp", ] [[package]] @@ -12908,7 +13299,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" dependencies = [ "tempfile", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -13196,7 +13587,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" dependencies = [ "getrandom 0.2.10", - "rand 0.8.5", "serde", ] @@ -13349,7 +13739,7 @@ dependencies = [ "mime_guess", "multer", "percent-encoding 2.3.0", - "pin-project 1.1.3", + "pin-project", "rustls-pemfile 1.0.3", "scoped-tls", "serde", @@ -13493,7 +13883,7 @@ dependencies = [ "wasmer-types", "wasmer-vm", "wat", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -13592,7 +13982,7 @@ dependencies = [ "enum-iterator", "enumset", "leb128", - "libloading", + "libloading 0.7.4", "loupe", "object 0.28.4", "rkyv", @@ -13625,7 +14015,7 @@ dependencies = [ "wasmer-engine-universal-artifact", "wasmer-types", "wasmer-vm", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -13709,7 +14099,7 @@ dependencies = [ "thiserror", "wasmer-artifact", "wasmer-types", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -13899,6 +14289,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + [[package]] name = "winapi" version = "0.3.9" @@ -13921,7 +14317,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -14306,7 +14702,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -14316,7 +14712,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76a1a57ff50e9b408431e8f97d5456f2807f8eb2a2cd79b06068fc87f8ecf189" dependencies = [ "cfg-if 1.0.0", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -14525,7 +14921,7 @@ dependencies = [ "async-trait", "byteorder", "derivative", - "dirs", + "dirs 4.0.0", "enumflags2", "event-listener", "futures-core", @@ -14542,7 +14938,7 @@ dependencies = [ "static_assertions", "tracing", "uds_windows", - "winapi", + "winapi 0.3.9", "zbus_macros", "zbus_names", "zvariant", diff --git a/Cargo.toml b/Cargo.toml index e9ffe936d..2d1ece235 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,3 +10,4 @@ members = [ [patch.crates-io] sodiumoxide = { git = "https://github.com/fayeed/sodiumoxide" } +# rusqlite = { path = "../rusqlite" } \ No newline at end of file diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 8a3b3b52c..354158303 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -61,7 +61,7 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = { version = "0.1.3", features = ["test_utils"] } +holochain = { version = "0.3.0-beta-dev.12", features = ["test_utils"] } scryer-prolog = { version = "0.9.1", path = "../../scryer-prolog" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 2335c310a..ca4892851 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -194,33 +194,14 @@ impl HolochainService { kitsune_config.network_type = NetworkType::QuicBootstrap; } if local_config.use_proxy { - kitsune_config.transport_pool = vec![TransportConfig::Proxy { - sub_transport: Box::new(TransportConfig::Quic { - bind_to: None, - override_host: None, - override_port: None, - }), - proxy_config: ProxyConfig::RemoteProxyClient { - proxy_url: Url2::parse(local_config.proxy_url), - }, + kitsune_config.transport_pool = vec![TransportConfig::WebRTC { + signal_url: local_config.proxy_url, }]; } else { kitsune_config.transport_pool = vec![ - TransportConfig::Quic { - bind_to: None, - override_host: None, - override_port: None, - }, TransportConfig::Mem {}, - TransportConfig::Proxy { - sub_transport: Box::new(TransportConfig::Quic { - bind_to: None, - override_host: None, - override_port: None, - }), - proxy_config: ProxyConfig::RemoteProxyClient { - proxy_url: Url2::parse(local_config.proxy_url), - }, + TransportConfig::WebRTC { + signal_url: local_config.proxy_url, }, ]; } From 7aea33aaa416c40891c104e70add3df3d7cb94f4 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 14 Aug 2023 20:08:36 +0530 Subject: [PATCH 522/722] Downgraded serde with our fork so that it works with deno & holochain --- Cargo.lock | 27 ++++++++++++++++++--------- Cargo.toml | 2 +- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ebc735092..b9cc4a0db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5081,7 +5081,7 @@ dependencies = [ "kitsune_p2p", "mockall", "serde", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror", "tokio", "tracing", @@ -5105,7 +5105,7 @@ dependencies = [ "holochain_zome_types", "kitsune_p2p", "serde", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "serde_yaml 0.9.25", "structopt", "thiserror", @@ -5257,7 +5257,7 @@ dependencies = [ "rusqlite", "scheduled-thread-pool", "serde", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json", "shrinkwraprs", "sqlformat 0.1.8", @@ -5382,7 +5382,7 @@ dependencies = [ "rusqlite", "serde", "serde_bytes", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json", "serde_with 1.14.0", "serde_yaml 0.9.25", @@ -5656,7 +5656,7 @@ dependencies = [ "backtrace", "os_info", "serde", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.7.6", "uuid 1.4.1", ] @@ -7641,7 +7641,7 @@ dependencies = [ "rmp-serde 0.15.5", "serde", "serde_bytes", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "serde_yaml 0.9.25", "thiserror", ] @@ -10697,10 +10697,9 @@ dependencies = [ [[package]] name = "serde" version = "1.0.183" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" +source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" dependencies = [ - "serde_derive", + "serde_derive 1.0.183 (git+https://github.com/fayeed/serde.git?branch=ad4m-compatible)", ] [[package]] @@ -10742,6 +10741,16 @@ dependencies = [ "syn 2.0.28", ] +[[package]] +name = "serde_derive" +version = "1.0.183" +source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", +] + [[package]] name = "serde_json" version = "1.0.104" diff --git a/Cargo.toml b/Cargo.toml index 2d1ece235..52f9d3de9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,4 @@ members = [ [patch.crates-io] sodiumoxide = { git = "https://github.com/fayeed/sodiumoxide" } -# rusqlite = { path = "../rusqlite" } \ No newline at end of file +serde = { git = "https://github.com/fayeed/serde.git", branch = "ad4m-compatible" } \ No newline at end of file From 6425cda9909c5481c2777b0269b8da2834b43199 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 14 Aug 2023 20:09:37 +0530 Subject: [PATCH 523/722] Updated holochain client to latest --- .../hc-dna/zomes/tests/package.json | 2 +- .../hc-dna/tests/package.json | 2 +- .../file-storage/hc-dna/tests/package.json | 2 +- .../hc-dna/zomes/tests/package.json | 2 +- core/package.json | 2 +- executor/package.json | 2 +- rust-executor/Cargo.toml | 2 +- yarn.lock | 34 ++++++++++++++++--- 8 files changed, 36 insertions(+), 12 deletions(-) diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json b/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json index 15ffc1f1f..3dc43fa8b 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json @@ -10,7 +10,7 @@ "author": "", "license": "ISC", "dependencies": { - "@holochain/client": "0.12.0", + "@holochain/client": "0.16.0", "@holochain/tryorama": "0.11.0", "@types/lodash": "^4.14.158", "@types/node": "^18.0.0", diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/package.json b/bootstrap-languages/direct-message-language/hc-dna/tests/package.json index b283ac490..12275eff9 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/tests/package.json +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/package.json @@ -10,7 +10,7 @@ "author": "", "license": "ISC", "dependencies": { - "@holochain/client": "0.12.0", + "@holochain/client": "0.16.0", "@holochain/tryorama": "0.11.0", "@types/lodash": "^4.14.158", "@types/node": "^18.0.0", diff --git a/bootstrap-languages/file-storage/hc-dna/tests/package.json b/bootstrap-languages/file-storage/hc-dna/tests/package.json index 36257fbce..d0f5725b4 100644 --- a/bootstrap-languages/file-storage/hc-dna/tests/package.json +++ b/bootstrap-languages/file-storage/hc-dna/tests/package.json @@ -5,7 +5,7 @@ "type": "module", "license": "MIT", "dependencies": { - "@holochain/client": "^0.12.0", + "@holochain/client": "0.16.0", "@holochain/tryorama": "^0.11.1", "tape-promise": "^4.0.0", "ts-node": "^10.8.0", diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json index 13a126dd5..19cbe924e 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json @@ -18,7 +18,7 @@ "author": "", "license": "ISC", "dependencies": { - "@holochain/client": "0.12.0", + "@holochain/client": "0.16.0", "@holochain/tryorama": "0.11.1", "@perspect3vism/ad4m": "^0.2.12", "@types/lodash": "^4.14.158", diff --git a/core/package.json b/core/package.json index f2df6d8b7..019843179 100644 --- a/core/package.json +++ b/core/package.json @@ -33,7 +33,7 @@ "homepage": "https://ad4m.dev", "dependencies": { "@apollo/client": "3.7.10", - "@holochain/client": "0.12.5", + "@holochain/client": "0.16.0", "@types/jest": "^26.0.14", "class-validator": "^0.13.1", "express": "4.18.2", diff --git a/executor/package.json b/executor/package.json index a8f9f28e9..d7d137637 100644 --- a/executor/package.json +++ b/executor/package.json @@ -60,7 +60,7 @@ }, "dependencies": { "@holochain/client": "perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b", - "@msgpack/msgpack": "^2.7.2", + "@msgpack/msgpack": "3.0.0-beta2", "@noble/secp256k1": "^1.7.0", "@perspect3vism/ad4m": "*", "@transmute/did-key.js": "^0.2.1-unstable.29", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 354158303..b74c9b15e 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -61,7 +61,7 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = { version = "0.3.0-beta-dev.12", features = ["test_utils"] } +holochain = { version = "0.3.0-beta-dev.13", features = ["test_utils"] } scryer-prolog = { version = "0.9.1", path = "../../scryer-prolog" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } diff --git a/yarn.lock b/yarn.lock index cbc787f25..774ebb526 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1903,19 +1903,21 @@ dependencies: client-only "^0.0.1" -"@holochain/client@0.12.5": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" - integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== +"@holochain/client@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.0.tgz#3800ecc0551eef9a2b8e3534f6a6651f87b9af82" + integrity sha512-GJEl6F3OSlDX71H+rtyUXpEuor7O9MhvNIi+Tq6obrysu71JsbXfR1rtmSBiNb9fttHOZLW60EzY/Lj3I9dv8g== dependencies: "@holochain/serialization" "^0.1.0-beta-rc.3" "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" "@tauri-apps/api" "^1.2.0" emittery "^1.0.1" isomorphic-ws "^5.0.0" js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" lodash-es "^4.17.21" - tweetnacl "^1.0.3" + ws "^8.13.0" "@holochain/client@perspect3vism/holochain-client-js#2f3a436b6d28344b0aca883ef3dc229cd042c04b": version "0.12.5" @@ -2583,6 +2585,11 @@ "@types/mdx" "^2.0.0" "@types/react" ">=16" +"@msgpack/msgpack@3.0.0-beta2": + version "3.0.0-beta2" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-3.0.0-beta2.tgz#5bccee30f84df220b33905e3d8249ba96deca0b7" + integrity sha512-y+l1PNV0XDyY8sM3YtuMLK5vE3/hkfId+Do8pLo/OPxfxuFAUwcGz3oiiUuV46/aBpwTzZ+mRWVMtlSKbradhw== + "@msgpack/msgpack@^2.7.2": version "2.8.0" resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" @@ -2724,6 +2731,11 @@ dependencies: eslint-scope "5.1.1" +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== + "@noble/secp256k1@^1.7.0": version "1.7.1" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" @@ -13656,6 +13668,18 @@ libphonenumber-js@^1.9.43: resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.34.tgz#63374bb988688ac28b03ed6c4b344d412199d56c" integrity sha512-p6g4NaQH4gK1gre32+kV14Mk6GPo2EDcPDvjbi+D2ycsPFsN4gVWNbs0itdHLZqByg6YEK8mE7OeP200I/ScTQ== +libsodium-wrappers@^0.7.11: + version "0.7.11" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz#53bd20606dffcc54ea2122133c7da38218f575f7" + integrity sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q== + dependencies: + libsodium "^0.7.11" + +libsodium@^0.7.11: + version "0.7.11" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.11.tgz#cd10aae7bcc34a300cc6ad0ac88fcca674cfbc2e" + integrity sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A== + lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" From b3f3d2736b2934baa56b16ebb9456fb0e3bb274d Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 14 Aug 2023 20:26:05 +0530 Subject: [PATCH 524/722] Updated srcyer git link --- Cargo.lock | 17 ++++++++++------- rust-executor/Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b9cc4a0db..d9a6fc2ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6928,24 +6928,27 @@ checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libffi" version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" dependencies = [ "libc", - "libffi-sys 2.3.0", + "libffi-sys 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libffi" version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" +source = "git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link#ed07c20dfc2a239e6e89f978c3b67c85577f35d4" dependencies = [ "libc", - "libffi-sys 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libffi-sys 2.3.0 (git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link)", ] [[package]] name = "libffi-sys" version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" dependencies = [ "cc", ] @@ -6953,8 +6956,7 @@ dependencies = [ [[package]] name = "libffi-sys" version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" +source = "git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link#ed07c20dfc2a239e6e89f978c3b67c85577f35d4" dependencies = [ "cc", ] @@ -10459,6 +10461,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scryer-prolog" version = "0.9.1" +source = "git+https://github.com/coasys/scryer-prolog?branch=ad4m-compatible#1bf263815b74ff9750eeefca4ada42e2ca43af95" dependencies = [ "base64 0.12.3", "bit-set", @@ -10485,7 +10488,7 @@ dependencies = [ "lazy_static", "lexical 5.2.2", "libc", - "libffi 3.2.0", + "libffi 3.2.0 (git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link)", "libloading 0.7.4", "modular-bitfield", "native-tls", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index b74c9b15e..58785735c 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -63,7 +63,7 @@ jsonwebtoken = "8.3.0" holochain = { version = "0.3.0-beta-dev.13", features = ["test_utils"] } -scryer-prolog = { version = "0.9.1", path = "../../scryer-prolog" } +scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } tracing = "0.1" From c96bd138977e7029b1c609ea397d78c162bb8441 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 14 Aug 2023 21:27:27 +0530 Subject: [PATCH 525/722] Updated rust version to 1.71.1 in CI --- .github/workflows/agent-language-tests.yml | 2 +- .github/workflows/direct-message-language-tests.yml | 2 +- .github/workflows/file-storage-language-tests.yml | 2 +- .github/workflows/integration_cli.yml | 2 +- .github/workflows/integration_js.yml | 2 +- .github/workflows/p-diff-sync-tests.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/publish_staging.yml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index b96450853..a5fa40f82 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index 781b1eb23..345fcefd2 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index 8befc8a19..b5da5cf1a 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/integration_cli.yml b/.github/workflows/integration_cli.yml index 05e9fd5ba..48defdf8b 100644 --- a/.github/workflows/integration_cli.yml +++ b/.github/workflows/integration_cli.yml @@ -26,7 +26,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 189a7c17a..046e603a3 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index c0697cbbd..72367a8a9 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a6f6c7b0e..cb15c3a20 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -57,7 +57,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Install Deno uses: denoland/setup-deno@v1 with: diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 7dd30ef97..43c648150 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -59,7 +59,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Install Deno uses: denoland/setup-deno@v1 with: From 168eaa4ae211cd07afeffcbade47b30ab0aa63c4 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Tue, 15 Aug 2023 00:08:34 +0530 Subject: [PATCH 526/722] Disable windows & mac tests --- .github/workflows/integration_js.yml | 236 +++++++++++++-------------- 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 046e603a3..4255465ca 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -71,123 +71,123 @@ jobs: - name: Run the tests run: yarn test - test-windows: - name: JS Ad4mClient <> AD4M Executor - Windows - runs-on: windows-2019 - strategy: - matrix: - node-version: [16.x] - - steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.68.2 - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - - - name: Install Deno - uses: denoland/setup-deno@v1 - with: - deno-version: v1.32.4 - - - name: Install dependencies - run: yarn install - - - name: Build the workspace - run: yarn run build + # test-windows: + # name: JS Ad4mClient <> AD4M Executor - Windows + # runs-on: windows-2019 + # strategy: + # matrix: + # node-version: [16.x] + + # steps: + # - uses: actions/checkout@v2 + # - uses: actions-rs/toolchain@v1 + # with: + # toolchain: 1.68.2 + # - name: Cache cargo + # id: cache-cargo + # uses: actions/cache@v3 + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # restore-keys: | + # ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # ${{ runner.os }}-cargo + # - run: rustup target add wasm32-unknown-unknown + + # - name: Use Node.js ${{ matrix.node-version }} + # uses: actions/setup-node@v2 + # with: + # node-version: ${{ matrix.node-version }} + # cache: 'yarn' + + # - name: Install Deno + # uses: denoland/setup-deno@v1 + # with: + # deno-version: v1.32.4 + + # - name: Install dependencies + # run: yarn install + + # - name: Build the workspace + # run: yarn run build - - uses: actions/cache/save@v3 - if: always() - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - - - name: Run the tests - run: | - choco install swi-prolog - $env:path += ";C:\Program Files\swipl\bin" - yarn run test:windows - - test-macos: - name: JS Ad4mClient <> AD4M Executor - MacOS - runs-on: macos-latest - strategy: - matrix: - node-version: [16.x] - - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.68.2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - - name: Install Deno - uses: denoland/setup-deno@v1 - with: - deno-version: v1.32.4 - - - name: Install dependencies - run: yarn install - - - name: Build the workspace - run: yarn run build - - - uses: actions/cache/save@v3 - if: always() - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # - uses: actions/cache/save@v3 + # if: always() + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + + # - name: Run the tests + # run: | + # choco install swi-prolog + # $env:path += ";C:\Program Files\swipl\bin" + # yarn run test:windows + + # test-macos: + # name: JS Ad4mClient <> AD4M Executor - MacOS + # runs-on: macos-latest + # strategy: + # matrix: + # node-version: [16.x] + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rs/toolchain@v1 + # with: + # toolchain: 1.68.2 + # - name: Use Node.js ${{ matrix.node-version }} + # uses: actions/setup-node@v2 + # with: + # node-version: ${{ matrix.node-version }} + # cache: 'yarn' + + # - name: Cache cargo + # id: cache-cargo + # uses: actions/cache@v3 + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # restore-keys: | + # ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # ${{ runner.os }}-cargo + # - run: rustup target add wasm32-unknown-unknown + + # - name: Install Deno + # uses: denoland/setup-deno@v1 + # with: + # deno-version: v1.32.4 + + # - name: Install dependencies + # run: yarn install + + # - name: Build the workspace + # run: yarn run build + + # - uses: actions/cache/save@v3 + # if: always() + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - - name: Run the tests - run: yarn test + # - name: Run the tests + # run: yarn test From b43400f710ae94d54e30a8954a6b1b749e546eae Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 14 Aug 2023 20:08:36 +0530 Subject: [PATCH 527/722] Downgraded serde with our fork so that it works with deno & holochain --- Cargo.lock | 28 +++++++++++++++++++--------- Cargo.toml | 1 + 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8ca90ef5c..6baa73969 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5025,7 +5025,7 @@ dependencies = [ "mockall", "observability", "serde", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror", "tokio", "tracing", @@ -5049,7 +5049,7 @@ dependencies = [ "holochain_zome_types", "kitsune_p2p", "serde", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "serde_yaml 0.9.25", "structopt", "thiserror", @@ -5221,7 +5221,7 @@ dependencies = [ "rusqlite", "scheduled-thread-pool", "serde", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json", "shrinkwraprs", "sqlformat 0.1.8", @@ -5327,7 +5327,8 @@ dependencies = [ "rusqlite", "serde", "serde_bytes", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json", "serde_with 1.14.0", "serde_yaml 0.9.25", "shrinkwraprs", @@ -5597,7 +5598,7 @@ dependencies = [ "backtrace", "os_info", "serde", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.7.6", "uuid 1.4.1", ] @@ -7409,7 +7410,7 @@ dependencies = [ "rmp-serde 0.15.5", "serde", "serde_bytes", - "serde_derive", + "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", "serde_yaml 0.9.25", "thiserror", ] @@ -10470,10 +10471,9 @@ dependencies = [ [[package]] name = "serde" version = "1.0.183" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" +source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" dependencies = [ - "serde_derive", + "serde_derive 1.0.183 (git+https://github.com/fayeed/serde.git?branch=ad4m-compatible)", ] [[package]] @@ -10515,6 +10515,16 @@ dependencies = [ "syn 2.0.28", ] +[[package]] +name = "serde_derive" +version = "1.0.183" +source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.32", + "syn 2.0.28", +] + [[package]] name = "serde_json" version = "1.0.104" diff --git a/Cargo.toml b/Cargo.toml index e9ffe936d..b11072581 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,3 +10,4 @@ members = [ [patch.crates-io] sodiumoxide = { git = "https://github.com/fayeed/sodiumoxide" } +serde = { git = "https://github.com/fayeed/serde.git", branch = "ad4m-compatible" } From 97065c03023a62aaca6a2df73bde6f5e5d44f296 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 14 Aug 2023 20:26:05 +0530 Subject: [PATCH 528/722] Updated srcyer git link --- Cargo.lock | 19 +++++++++++-------- rust-executor/Cargo.toml | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6baa73969..18226b770 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6709,24 +6709,27 @@ checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libffi" version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" dependencies = [ "libc", - "libffi-sys 2.3.0", + "libffi-sys 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libffi" version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" +source = "git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link#ed07c20dfc2a239e6e89f978c3b67c85577f35d4" dependencies = [ "libc", - "libffi-sys 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libffi-sys 2.3.0 (git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link)", ] [[package]] name = "libffi-sys" version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" dependencies = [ "cc", ] @@ -6734,8 +6737,7 @@ dependencies = [ [[package]] name = "libffi-sys" version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" +source = "git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link#ed07c20dfc2a239e6e89f978c3b67c85577f35d4" dependencies = [ "cc", ] @@ -10233,6 +10235,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scryer-prolog" version = "0.9.1" +source = "git+https://github.com/coasys/scryer-prolog?branch=ad4m-compatible#1bf263815b74ff9750eeefca4ada42e2ca43af95" dependencies = [ "base64 0.12.3", "bit-set", @@ -10259,8 +10262,8 @@ dependencies = [ "lazy_static", "lexical 5.2.2", "libc", - "libffi 3.2.0", - "libloading", + "libffi 3.2.0 (git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link)", + "libloading 0.7.4", "modular-bitfield", "native-tls", "ordered-float", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 8a3b3b52c..de9da1710 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -63,7 +63,7 @@ jsonwebtoken = "8.3.0" holochain = { version = "0.1.3", features = ["test_utils"] } -scryer-prolog = { version = "0.9.1", path = "../../scryer-prolog" } +scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } tracing = "0.1" From 77d31df9a5d97762f1032f2399ebebe60774fad8 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 14 Aug 2023 21:27:27 +0530 Subject: [PATCH 529/722] Updated rust version to 1.71.1 in CI --- .github/workflows/agent-language-tests.yml | 2 +- .github/workflows/direct-message-language-tests.yml | 2 +- .github/workflows/file-storage-language-tests.yml | 2 +- .github/workflows/integration_cli.yml | 2 +- .github/workflows/integration_js.yml | 2 +- .github/workflows/p-diff-sync-tests.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/publish_staging.yml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index b96450853..a5fa40f82 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index 781b1eb23..345fcefd2 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index 8befc8a19..b5da5cf1a 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/integration_cli.yml b/.github/workflows/integration_cli.yml index 05e9fd5ba..48defdf8b 100644 --- a/.github/workflows/integration_cli.yml +++ b/.github/workflows/integration_cli.yml @@ -26,7 +26,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 189a7c17a..046e603a3 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index c0697cbbd..72367a8a9 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a6f6c7b0e..cb15c3a20 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -57,7 +57,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Install Deno uses: denoland/setup-deno@v1 with: diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 7dd30ef97..43c648150 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -59,7 +59,7 @@ jobs: uses: actions-rs/toolchain@v1 with: override: true - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Install Deno uses: denoland/setup-deno@v1 with: From b4d79add71dd797a2304ddd94472ff82da9fddeb Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Tue, 15 Aug 2023 00:08:34 +0530 Subject: [PATCH 530/722] Disable windows & mac tests --- .github/workflows/integration_js.yml | 236 +++++++++++++-------------- 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 046e603a3..4255465ca 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -71,123 +71,123 @@ jobs: - name: Run the tests run: yarn test - test-windows: - name: JS Ad4mClient <> AD4M Executor - Windows - runs-on: windows-2019 - strategy: - matrix: - node-version: [16.x] - - steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.68.2 - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - - - name: Install Deno - uses: denoland/setup-deno@v1 - with: - deno-version: v1.32.4 - - - name: Install dependencies - run: yarn install - - - name: Build the workspace - run: yarn run build + # test-windows: + # name: JS Ad4mClient <> AD4M Executor - Windows + # runs-on: windows-2019 + # strategy: + # matrix: + # node-version: [16.x] + + # steps: + # - uses: actions/checkout@v2 + # - uses: actions-rs/toolchain@v1 + # with: + # toolchain: 1.68.2 + # - name: Cache cargo + # id: cache-cargo + # uses: actions/cache@v3 + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # restore-keys: | + # ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # ${{ runner.os }}-cargo + # - run: rustup target add wasm32-unknown-unknown + + # - name: Use Node.js ${{ matrix.node-version }} + # uses: actions/setup-node@v2 + # with: + # node-version: ${{ matrix.node-version }} + # cache: 'yarn' + + # - name: Install Deno + # uses: denoland/setup-deno@v1 + # with: + # deno-version: v1.32.4 + + # - name: Install dependencies + # run: yarn install + + # - name: Build the workspace + # run: yarn run build - - uses: actions/cache/save@v3 - if: always() - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - - - name: Run the tests - run: | - choco install swi-prolog - $env:path += ";C:\Program Files\swipl\bin" - yarn run test:windows - - test-macos: - name: JS Ad4mClient <> AD4M Executor - MacOS - runs-on: macos-latest - strategy: - matrix: - node-version: [16.x] - - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.68.2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - - - name: Cache cargo - id: cache-cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - ${{ runner.os }}-cargo - - run: rustup target add wasm32-unknown-unknown - - - name: Install Deno - uses: denoland/setup-deno@v1 - with: - deno-version: v1.32.4 - - - name: Install dependencies - run: yarn install - - - name: Build the workspace - run: yarn run build - - - uses: actions/cache/save@v3 - if: always() - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # - uses: actions/cache/save@v3 + # if: always() + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + + # - name: Run the tests + # run: | + # choco install swi-prolog + # $env:path += ";C:\Program Files\swipl\bin" + # yarn run test:windows + + # test-macos: + # name: JS Ad4mClient <> AD4M Executor - MacOS + # runs-on: macos-latest + # strategy: + # matrix: + # node-version: [16.x] + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rs/toolchain@v1 + # with: + # toolchain: 1.68.2 + # - name: Use Node.js ${{ matrix.node-version }} + # uses: actions/setup-node@v2 + # with: + # node-version: ${{ matrix.node-version }} + # cache: 'yarn' + + # - name: Cache cargo + # id: cache-cargo + # uses: actions/cache@v3 + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # restore-keys: | + # ${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} + # ${{ runner.os }}-cargo + # - run: rustup target add wasm32-unknown-unknown + + # - name: Install Deno + # uses: denoland/setup-deno@v1 + # with: + # deno-version: v1.32.4 + + # - name: Install dependencies + # run: yarn install + + # - name: Build the workspace + # run: yarn run build + + # - uses: actions/cache/save@v3 + # if: always() + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: $${{ runner.os }}-cargo-${{ hashFiles('./Cargo.lock') }} - - name: Run the tests - run: yarn test + # - name: Run the tests + # run: yarn test From 8a52fbac4a913d7689d94b8f4efc49e3b0141235 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 17 Aug 2023 12:03:58 +0530 Subject: [PATCH 531/722] updated prolog tests --- tests/js/tests/prolog-and-literals.test.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/js/tests/prolog-and-literals.test.ts b/tests/js/tests/prolog-and-literals.test.ts index e593eaea2..36d27ad66 100644 --- a/tests/js/tests/prolog-and-literals.test.ts +++ b/tests/js/tests/prolog-and-literals.test.ts @@ -1,7 +1,7 @@ import { expect } from "chai"; import { ChildProcess } from 'node:child_process'; -import { Ad4mClient, Link, LinkQuery, Literal, PerspectiveProxy, - SmartLiteral, SMART_LITERAL_CONTENT_PREDICATE, +import { Ad4mClient, Link, LinkQuery, Literal, PerspectiveProxy, + SmartLiteral, SMART_LITERAL_CONTENT_PREDICATE, instanceQuery, Subject, subjectProperty, subjectCollection, subjectFlag, SDNAClass, @@ -25,12 +25,12 @@ describe("Prolog + Literals", () => { let executorProcess: ChildProcess | null = null const TEST_DIR = path.join(`${__dirname}/../tst-tmp`); - const appDataPath = path.join(TEST_DIR, "agents", "integration-agent"); + const appDataPath = path.join(TEST_DIR, "agents", "prolog-agent"); const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const gqlPort = 15500 - const hcAdminPort = 15501 - const hcAppPort = 15502 - const ipfsSwarmPort = 15503 + const gqlPort = 16600 + const hcAdminPort = 16601 + const hcAppPort = 16602 + const ipfsSwarmPort = 16603 before(async () => { executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, @@ -369,7 +369,7 @@ describe("Prolog + Literals", () => { const regExp = /\("Todo", ([^)]+)\)/; const matches = regExp.exec(sdna); const value = matches![1]; - + const equal = readFileSync("./sdna/subject.pl").toString().replace(/c\)/g, `${value})`).replace(/\(c/g, `(${value}`); expect(sdna.normalize('NFC')).to.equal(equal.normalize('NFC')) From bbbdec733a558628d6356e86ea0b9b5afbd3c295 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 22 Aug 2023 18:36:09 +0100 Subject: [PATCH 532/722] add correct proxy url --- .../src/core/storage-services/Holochain/HolochainService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 1dba2d8ae..93cd390f1 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -12,7 +12,7 @@ import EntanglementProofController from '../../EntanglementProof' import AgentService from '../../agent/AgentService' export const bootstrapUrl = "https://bootstrap.holo.host" -export const kitsuneProxy = "kitsune-proxy://f3gH2VMkJ4qvZJOXx0ccL_Zo5n-s_CnBjSzAsEHHDCA/kitsune-quic/h/137.184.142.208/p/5788/--" +export const kitsuneProxy = "wss://signal.holotest.net" export interface HolochainConfiguration { conductorPath?: string, From 65a2b897638663c7db436d8432dde3fa2f8ab7a9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 22 Aug 2023 18:36:18 +0100 Subject: [PATCH 533/722] turn on default features for holochain --- rust-executor/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 58785735c..9ec65003c 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -61,7 +61,7 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = { version = "0.3.0-beta-dev.13", features = ["test_utils"] } +holochain = { version = "0.3.0-beta-dev.13", features = ["test_utils", "default"] } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } From 41d748d0a969131bc42d7fa8dda130b59f69cdce Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 22 Aug 2023 19:08:37 +0100 Subject: [PATCH 534/722] use webrtc for test networking --- tests/js/utils/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 337ac9e0b..31d4764f1 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -58,9 +58,9 @@ export async function startExecutor(dataPath: string, } if (!adminCredential) { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap false --hc-use-proxy false --hc-use-local-proxy false --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From 8cd23a8b3449275f5b1dbb0d02f9131825c72253 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 22 Aug 2023 19:55:54 +0100 Subject: [PATCH 535/722] pretty print out conductor config --- rust-executor/src/holochain_service/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index ca4892851..2106a49e5 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -210,7 +210,7 @@ impl HolochainService { config }; - info!("Starting holochain conductor with config: {:?}", config); + info!("Starting holochain conductor with config: {:#?}", config); let conductor = ConductorBuilder::new() .config(config) .passphrase(Some(local_config.passphrase.as_bytes().into())) From 36d11c54f77898b9f358a09609e1c73a1d86028c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 22 Aug 2023 21:20:11 +0200 Subject: [PATCH 536/722] Don't always respawn Prolog engines --- executor/src/core/Perspective.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 71d3f0f58..cf85b85dc 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -885,10 +885,6 @@ export default class Perspective { } async spawnPrologEngine(): Promise { - if(this.#prologEngine) { - await this.#prologEngine.remove() - } - let error const prolog = new PrologInstance(this) await prolog.start(); @@ -906,8 +902,6 @@ export default class Perspective { async prologQuery(query: string): Promise { await this.#prologMutex.runExclusive(async () => { - await this.spawnPrologEngine() - /* if(!this.#prologEngine) { await this.spawnPrologEngine() this.#prologNeedsRebuild = false @@ -918,7 +912,6 @@ export default class Perspective { const facts = await this.initEngineFacts() await this.#prologEngine!.consult(facts) } - */ }) return await this.#prologEngine!.query(query) From 539b90a595d3a12e97d30dbf30a3efe295a29e3c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 22 Aug 2023 21:28:57 +0200 Subject: [PATCH 537/722] Don't log rebuilding of Prolog facts --- executor/src/core/Perspective.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index cf85b85dc..694e17aee 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -907,7 +907,7 @@ export default class Perspective { this.#prologNeedsRebuild = false } if(this.#prologNeedsRebuild) { - console.log("Perspective.prologQuery: Making prolog query but first rebuilding facts"); + //console.log("Perspective.prologQuery: Making prolog query but first rebuilding facts"); this.#prologNeedsRebuild = false const facts = await this.initEngineFacts() await this.#prologEngine!.consult(facts) From f47eedec99ed220987636b64a0761c5067ea7fa9 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 22 Aug 2023 21:31:14 +0200 Subject: [PATCH 538/722] Fix assertion of local links test --- tests/js/tests/prolog-and-literals.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/js/tests/prolog-and-literals.test.ts b/tests/js/tests/prolog-and-literals.test.ts index 36d27ad66..34a9c2af4 100644 --- a/tests/js/tests/prolog-and-literals.test.ts +++ b/tests/js/tests/prolog-and-literals.test.ts @@ -669,7 +669,7 @@ describe("Prolog + Literals", () => { }) expect(links!.length).to.equal(1) - expect(links![0].status).to.equal('recipe://local') + expect(links![0].status).to.equal('LOCAL') }) it("delete()", async () => { From 2e95f2eb2ac33d40a7ddf7fd29c72e9e35d382b5 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 22 Aug 2023 21:52:57 +0200 Subject: [PATCH 539/722] Less Rust warnings --- rust-executor/src/holochain_service/mod.rs | 2 +- rust-executor/src/init.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 2106a49e5..808cb0b8f 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -12,7 +12,7 @@ use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::hash_type::Agent; use holochain::prelude::kitsune_p2p::dependencies::url2::Url2; use holochain::prelude::{ - ExternIO, HoloHash, InstallAppPayload, KitsuneP2pConfig, NetworkType, ProxyConfig, Signal, + ExternIO, HoloHash, InstallAppPayload, KitsuneP2pConfig, NetworkType, Signal, Signature, Timestamp, TransportConfig, ZomeCallResponse, ZomeCallUnsigned, }; use holochain::test_utils::itertools::Either; diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 21f10a41b..23b53ecd6 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -13,7 +13,7 @@ pub fn init( network_bootstrap_seed: Option, ) -> Result<(), Box> { std::env::set_var("RUST_LOG", "info"); - env_logger::try_init(); + let _ = env_logger::try_init(); //Get the default data path if none is provided let app_data_path = match data_path { From 5ce39cc4850f305bd4f018e5ac2735219597640d Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 22 Aug 2023 22:51:19 +0200 Subject: [PATCH 540/722] Fix prolog lists handling --- core/src/subject/Subject.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/core/src/subject/Subject.ts b/core/src/subject/Subject.ts index bf78ad7b0..b38d7e696 100644 --- a/core/src/subject/Subject.ts +++ b/core/src/subject/Subject.ts @@ -76,16 +76,6 @@ export class Subject { } } - - const flattenPrologList = (list: object): any[] =>{ - let result = [] - while(list && list["head"]) { - result.push(list["head"]) - list = list["tail"] - } - return result - } - let results2 = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), collection(C, Collection)`) if(!results2) results2 = [] let collections = results2.map(result => result.Collection) @@ -96,7 +86,8 @@ export class Subject { get: async () => { let results = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), collection_getter(C, "${this.#baseExpression}", "${c}", Value)`) if(results && results.length > 0 && results[0].Value) { - return flattenPrologList(eval(results[0].Value)) + let collectionContent = results[0].Value.filter((v: any) => v !== "" && v !== '') + return collectionContent } else { return [] } From ccf20d1993b6f66f38af30fc1e3c0ea3b79094c1 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 22 Aug 2023 23:16:19 +0200 Subject: [PATCH 541/722] Add missing parameter "status" to perspectiveAddlinks --- rust-executor/src/graphql/mutation_resolvers.rs | 17 +++++++++++++++-- tests/js/schema.gql | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index e3a7202f9..3822509f6 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -772,20 +772,33 @@ impl Mutation { context: &RequestContext, links: Vec, uuid: String, + status: Option, ) -> FieldResult> { let capabilities = get_capabilies(context.js_handle.clone(), context.capability.clone()).await?; let mut js = context.js_handle.clone(); let links_json = serde_json::to_string(&links)?; + let status = match status { + Some(status) => { + if status != String::from("shared") && status != String::from("local") { + return Err(juniper::FieldError::new( + "Invalid status, must be either 'shared' or 'local'", + graphql_value!({ "invalid_status": status }), + )); + } + format!(r#""{}""#, status) + } + None => String::from("null"), + }; let script = format!( r#"JSON.stringify( await core.callResolver( "Mutation", "perspectiveAddLinks", - {{ links: {}, uuid: "{}" }}, + {{ links: {}, uuid: "{}", status: {} }}, {{ capabilities: {} }} ))"#, - links_json, uuid, capabilities + links_json, uuid, status, capabilities ); let result = js.execute(script).await?; let result: JsResultType> = serde_json::from_str(&result)?; diff --git a/tests/js/schema.gql b/tests/js/schema.gql index 561891fbd..c86982286 100644 --- a/tests/js/schema.gql +++ b/tests/js/schema.gql @@ -205,8 +205,8 @@ type Mutation { perspectiveAdd(name: String!): PerspectiveHandle! perspectiveAddLink(link: LinkInput!, uuid: String!, status: String): LinkExpression! perspectiveAddLinkExpression(link: LinkExpressionInput!, uuid: String!, status: String): LinkExpression! - perspectiveAddLinks(links: [LinkInput!]!, uuid: String!): [LinkExpression!]! - perspectiveLinkMutations(mutations: LinkMutations!, uuid: String!): LinkExpressionMutations! + perspectiveAddLinks(links: [LinkInput!]!, uuid: String!, status: String): [LinkExpression!]! + perspectiveLinkMutations(mutations: LinkMutations!, uuid: String!, status: String): LinkExpressionMutations! perspectivePublishSnapshot(uuid: String!): String! perspectiveRemove(uuid: String!): Boolean! perspectiveRemoveLink(link: LinkExpressionInput!, uuid: String!): Boolean! From ac48ad37a48c8a724626f7618235b749e485690c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 22 Aug 2023 23:18:41 +0200 Subject: [PATCH 542/722] Resolve indeterministic assertions --- tests/js/tests/prolog-and-literals.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/js/tests/prolog-and-literals.test.ts b/tests/js/tests/prolog-and-literals.test.ts index 34a9c2af4..a7371e303 100644 --- a/tests/js/tests/prolog-and-literals.test.ts +++ b/tests/js/tests/prolog-and-literals.test.ts @@ -190,7 +190,7 @@ describe("Prolog + Literals", () => { let todos = await perspective!.getAllSubjectInstances("Todo") as unknown as Subject[] expect(todos.length).to.equal(2) //@ts-ignore - expect(await todos[1].state).to.equal("todo://done") + expect(await todos[1].state).to.exist }) }) @@ -253,7 +253,7 @@ describe("Prolog + Literals", () => { // todos is an array of Todo objects // note how we don't need @ts-ignore here: expect(todos.length).to.equal(2) - expect(await todos[1].state).to.equal("todo://done") + expect(await todos[1].state).to.exist }) }) From 9663e66297365332a1a0f6a0247e9abeff439997 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 23 Aug 2023 00:12:08 +0200 Subject: [PATCH 543/722] Fix prolog list handling in SubjectEntity --- core/src/subject/SubjectEntity.ts | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/core/src/subject/SubjectEntity.ts b/core/src/subject/SubjectEntity.ts index c6dab67e1..6f11e1642 100644 --- a/core/src/subject/SubjectEntity.ts +++ b/core/src/subject/SubjectEntity.ts @@ -3,15 +3,6 @@ import { PerspectiveProxy } from "../perspectives/PerspectiveProxy"; import { makeRandomPrologAtom } from "./SDNADecorators"; import { singularToPlural } from "./util"; -const flattenPrologList = (list: object): any[] => { - let result = [] - while (list && list["head"]) { - result.push(list["head"]) - list = list["tail"] - } - return result -} - export type QueryPartialEntity = { [P in keyof T]?: T[P] | (() => string); }; @@ -78,7 +69,7 @@ export class SubjectEntity { const getProperty = async () => { let results = await this.#perspective.infer(`subject_class("${this.#subjectClass}", C), collection_getter(C, "${tempId}", "${c}", Value)`) if (results && results.length > 0 && results[0].Value) { - return flattenPrologList(eval(results[0].Value)) + return eval(results[0].Value) } else { return [] } From c46e3a81e5babf8623053374ca00dc8914356afb Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 00:41:03 +0100 Subject: [PATCH 544/722] add ability to pass hc proxy and bootstrap urls to ad4m run --- cli/src/dev.rs | 2 ++ cli/src/main.rs | 10 ++++++++++ executor/src/core/Ad4mCore.ts | 4 ++++ executor/src/core/graphQL-interface/GraphQL.ts | 8 ++++---- .../storage-services/Holochain/HolochainService.ts | 9 ++++----- executor/src/main.ts | 2 ++ rust-executor/src/config.rs | 10 ++++++++++ 7 files changed, 36 insertions(+), 9 deletions(-) diff --git a/cli/src/dev.rs b/cli/src/dev.rs index d5cb12012..1b32984d4 100644 --- a/cli/src/dev.rs +++ b/cli/src/dev.rs @@ -111,6 +111,8 @@ pub async fn run(command: DevFunctions) -> Result<()> { admin_credential: None, swipl_path: None, swipl_home_path: None, + hc_proxy_url: None, + hc_bootstrap_url: None, }) .await; }; diff --git a/cli/src/main.rs b/cli/src/main.rs index d8e447ed3..0e2c08049 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -142,6 +142,10 @@ enum Domain { hc_use_mdns: Option, #[arg(long, action)] hc_use_proxy: Option, + #[arg(long, action)] + hc_proxy_url: Option, + #[arg(long, action)] + hc_bootstrap_url: Option, #[arg(short, long, action)] ipfs_swarm_port: Option, #[arg(short, long, action)] @@ -219,6 +223,8 @@ async fn main() -> Result<()> { hc_use_local_proxy, hc_use_mdns, hc_use_proxy, + hc_proxy_url, + hc_bootstrap_url, ipfs_swarm_port, connect_holochain, admin_credential, @@ -239,6 +245,8 @@ async fn main() -> Result<()> { hc_use_local_proxy, hc_use_mdns, hc_use_proxy, + hc_proxy_url, + hc_bootstrap_url, ipfs_swarm_port, connect_holochain, admin_credential, @@ -286,6 +294,8 @@ async fn main() -> Result<()> { hc_use_local_proxy: _, hc_use_mdns: _, hc_use_proxy: _, + hc_proxy_url: _, + hc_bootstrap_url: _, ipfs_swarm_port: _, connect_holochain: _, admin_credential: _, diff --git a/executor/src/core/Ad4mCore.ts b/executor/src/core/Ad4mCore.ts index 4121548fc..0d1ada891 100644 --- a/executor/src/core/Ad4mCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -37,6 +37,8 @@ export interface InitHolochainParams { hcUseLocalProxy?: boolean, hcUseMdns?: boolean, passphrase?: string + hcProxyUrl: string, + hcBootstrapUrl: string, } export interface HolochainUnlockConfiguration extends HolochainConfiguration { @@ -204,6 +206,8 @@ export default class Ad4mCore { useProxy: params.hcUseProxy, useLocalProxy: params.hcUseLocalProxy, useMdns: params.hcUseMdns, + hcProxyUrl: params.hcProxyUrl, + hcBootstrapUrl: params.hcBootstrapUrl, } this.#holochain = new HolochainService(holochainConfig, this.#agentService, this.entanglementProofController) diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index a4d37c8eb..4876dd620 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -492,9 +492,9 @@ export function createResolvers(core: Ad4mCore, config: OuterConfig) { checkCapability(context.capabilities, Auth.AGENT_CREATE_CAPABILITY) await core.agentService.createNewKeys() await core.agentService.save(args.passphrase) - const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap} = config; + const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, hcProxyUrl, hcBootstrapUrl} = config; - await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase }); + await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase, hcProxyUrl, hcBootstrapUrl }); console.log("Holochain init complete"); await core.waitForAgent(); @@ -538,9 +538,9 @@ export function createResolvers(core: Ad4mCore, config: OuterConfig) { await core.initLanguages(); } catch (e) { // @ts-ignore - const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap} = config; + const {hcPortAdmin, connectHolochain, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, hcProxyUrl, hcBootstrapUrl} = config; - await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase }); + await core.initHolochain({ hcPortAdmin, hcPortApp, hcUseLocalProxy, hcUseMdns, hcUseProxy, hcUseBootstrap, passphrase: args.passphrase, hcProxyUrl, hcBootstrapUrl }); await core.waitForAgent(); core.initControllers() await core.initLanguages() diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 93cd390f1..1a73dcc90 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -11,13 +11,12 @@ import { HolochainUnlockConfiguration } from '../../Ad4mCore' import EntanglementProofController from '../../EntanglementProof' import AgentService from '../../agent/AgentService' -export const bootstrapUrl = "https://bootstrap.holo.host" -export const kitsuneProxy = "wss://signal.holotest.net" - export interface HolochainConfiguration { conductorPath?: string, dataPath: string, resourcePath: string + hcProxyUrl: string, + hcBootstrapUrl: string, adminPort?: number; appPort?: number; useBootstrap?: boolean, @@ -116,8 +115,8 @@ export default class HolochainService { useProxy: config.useProxy!, useLocalProxy: config.useLocalProxy!, useMdns: config.useMdns!, - proxyUrl: kitsuneProxy, - bootstrapUrl, + proxyUrl: config.hcProxyUrl, + bootstrapUrl: config.hcBootstrapUrl, adminPort: config.adminPort! } as ConductorConfig); diff --git a/executor/src/main.ts b/executor/src/main.ts index d14be2f24..b139c169e 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -48,6 +48,8 @@ export interface OuterConfig { hcUseProxy?: boolean, //Should holochain use a bootstrap server hcUseBootstrap?: boolean, + hcProxyUrl: string, + hcBootstrapUrl: string, //Should ad4m-executor connect to an existing holochain instance, or spawn its own connectHolochain?: boolean, //The credential used by admin client to make request diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs index b344a4d67..c6e759d77 100644 --- a/rust-executor/src/config.rs +++ b/rust-executor/src/config.rs @@ -19,6 +19,8 @@ pub struct Ad4mConfig { pub hc_use_mdns: Option, pub hc_use_proxy: Option, pub hc_use_bootstrap: Option, + pub hc_proxy_url: Option, + pub hc_bootstrap_url: Option, pub ipfs_swarm_port: Option, pub connect_holochain: Option, pub admin_credential: Option, @@ -68,6 +70,12 @@ impl Ad4mConfig { if self.connect_holochain.is_none() { self.connect_holochain = Some(false); } + if self.hc_proxy_url.is_none() { + self.hc_proxy_url = Some("wss://signal.holotest.net".to_string()); + } + if self.hc_bootstrap_url.is_none() { + self.hc_bootstrap_url = Some("https://bootstrap.holo.host".to_string()); + } if self.swipl_path.is_none() { let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); //If OS is windows push swipl/ @@ -117,6 +125,8 @@ impl Default for Ad4mConfig { hc_use_mdns: None, hc_use_proxy: None, hc_use_bootstrap: None, + hc_proxy_url: None, + hc_bootstrap_url: None, ipfs_swarm_port: None, connect_holochain: None, admin_credential: None, From bcf02e977db50df9b6efd0ba5c7c71dfd4438e5f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 00:41:30 +0100 Subject: [PATCH 545/722] start our own proxy and bootstrap services for testing --- tests/js/utils/utils.ts | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 31d4764f1..4363b7ace 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -52,15 +52,40 @@ export async function startExecutor(dataPath: string, console.log("Starting executor") try { - execSync("killall holochain") + execSync("killall ad4m") } catch (e) { - console.log("No holochain process running") + console.log("No ad4m process running") } + + console.log(`Current directory: ${process.cwd()}`); + let servicesProcess = exec("./tst-tmp/agents/p/binary/hc run-local-services"); + + let bootstrapUrl = null; + let proxyUrl = null; + + let servicesReady = new Promise((resolve, reject) => { + servicesProcess.stdout!.on('data', (data) => { + if (data.includes("HC BOOTSTRAP - ADDR")) { + bootstrapUrl = data.split(" ")[5]; + bootstrapUrl = bootstrapUrl.substring(0, bootstrapUrl.length - 3); + } + + if (data.includes("HC SIGNAL - ADDR")) { + proxyUrl = data.split(" ")[5]; + proxyUrl = proxyUrl.substring(0, proxyUrl.length - 3); + resolve(); + } + }); + }); + + await servicesReady; + + console.log("USING LOCAL BOOTSTRAP & PROXY URL: ", bootstrapUrl, proxyUrl); if (!adminCredential) { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From eb4143b442da97799d5797e22699f856e3bb7e8d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 00:41:42 +0100 Subject: [PATCH 546/722] use new holochain version with 1.71.1 support --- rust-executor/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 9ec65003c..9b7b5a2af 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -22,8 +22,8 @@ path = "src/main.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -deno_core = "0.199.0" -deno_runtime = "0.122.0" +deno_core = "0.202.0" +deno_runtime = "0.124.0" tokio = { version = "1.25.0", features = ["full"] } url = "2.3.1" futures = "0.3.28" @@ -61,7 +61,7 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = { version = "0.3.0-beta-dev.13", features = ["test_utils", "default"] } +holochain = { git = "https://github.com/holochain/holochain", branch = "rust-1.71.1", features = ["test_utils", "default"] } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } From 7e3dc67b13d8a14c27c57891dde2d8152753e095 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 00:42:54 +0100 Subject: [PATCH 547/722] enable prolog and perspective tests in integration.test.ts --- tests/js/tests/integration.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/js/tests/integration.test.ts b/tests/js/tests/integration.test.ts index e1cdb417f..7c7b98b24 100644 --- a/tests/js/tests/integration.test.ts +++ b/tests/js/tests/integration.test.ts @@ -116,8 +116,8 @@ describe("Integration tests", function () { describe('Agent / Agent-Setup', agentTests(testContext)) describe('Runtime', runtimeTests(testContext)) describe('Expression', expressionTests(testContext)) - //describe('Perspective', perspectiveTests(testContext)) - //describe('Social DNA', socialDNATests(testContext)) + describe('Perspective', perspectiveTests(testContext)) + describe('Social DNA', socialDNATests(testContext)) describe('with Alice and Bob', () => { let bobExecutorProcess: ChildProcess | null = null From 7b3f31d7a0c34b292bce4ceb11955928b6565ef2 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 10:37:05 +0100 Subject: [PATCH 548/722] add logging to trace hanging of dna install --- executor/src/core/Ad4mCore.ts | 7 +++---- executor/src/core/LanguageController.ts | 2 ++ executor/src/core/graphQL-interface/GraphQL.ts | 1 + .../core/storage-services/Holochain/HolochainService.ts | 6 ++++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/executor/src/core/Ad4mCore.ts b/executor/src/core/Ad4mCore.ts index 0d1ada891..f57d22932 100644 --- a/executor/src/core/Ad4mCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -344,10 +344,6 @@ export default class Ad4mCore { } } - async pubKeyForLanguage(lang: string): Promise { - return Buffer.from(await HOLOCHAIN_SERVICE.getAgentKey()); - } - async holochainRequestAgentInfos(): Promise { return await this.#holochain!.requestAgentInfos() } @@ -363,11 +359,14 @@ export default class Ad4mCore { } async initializeAgentsDirectMessageLanguage() { + console.log("wait for languages"); await this.waitForLanguages() + console.log("finished wait"); const agent = this.#agentService.agent! if(agent.directMessageLanguage) return console.log("Agent doesn't have direct message language set yet. Creating from template...") + console.log("Cloning direct message language from template..."); const templateParams = { uid: uuidv4(), recipient_did: this.#agentService.agent?.did, diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index ac3cf9295..f5e013957 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -586,6 +586,7 @@ export default class LanguageController { //Unpack the DNA //TODO: we need to be able to check for errors in this fn call, currently we just crudly split the result + console.log("LanguageController.readAndTemplateHolochainDNA: unpacking DNA"); let unpackPath = this.#holochainService.unpackDna(tempDnaPath).replace(/(\r\n|\n|\r)/gm, ""); fs.unlinkSync(tempDnaPath); //TODO: are all dna's using the same dna.yaml? @@ -621,6 +622,7 @@ export default class LanguageController { fs.writeFileSync(dnaYamlPath, dnaYamlDump); //TODO: we need to be able to check for errors in this fn call, currently we just crudly split the result + console.log("LanguageController.readAndTemplateHolochainDNA: packing DNA"); let packPath = this.#holochainService.packDna(unpackPath).replace(/(\r\n|\n|\r)/gm, ""); const base64 = fs.readFileSync(packPath, "base64").replace(/[\r\n]+/gm, ''); diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index 4876dd620..b5dd8c3b2 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -501,6 +501,7 @@ export function createResolvers(core: Ad4mCore, config: OuterConfig) { console.log("Wait for agent"); core.initControllers() await core.initLanguages() + console.log("Core languages init'd"); if (!config.languageLanguageOnly) { await core.initializeAgentsDirectMessageLanguage() diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 1a73dcc90..05be49b5b 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -179,15 +179,20 @@ export default class HolochainService { //Did should only ever be undefined when the system DNA's get init'd before agent create occurs //These system DNA's do not currently need EP proof's let membraneProof = {}; + console.log("get agent key from holochain service holocahin service"); const agentKey = await HOLOCHAIN_SERVICE.getAgentKey(); + console.log("done"); if(did) { + console.log("signing did"); const signedDid = await HOLOCHAIN_SERVICE.signString(did).toString(); + console.log("done"); const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(agentKey.toString(), signedDid); membraneProof = {"ad4mDidEntanglement": Buffer.from(JSON.stringify(didHolochainEntanglement))}; } else { membraneProof = {}; } + console.log("install app"); const installAppResult = await HOLOCHAIN_SERVICE.installApp({ installed_app_id: lang, agent_key: agentKey, membrane_proofs: membraneProof, bundle: { manifest: { @@ -199,6 +204,7 @@ export default class HolochainService { resources: {} } } as InstallAppRequest) + console.log("done"); appInfo = installAppResult From 81807e4d13bd3b4c2238664be41b13218e147fc6 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 10:37:58 +0100 Subject: [PATCH 549/722] add code for doing dna pack/unpack inside our lib (needs more holochain exports to work) --- .../holochain_service_extension.js | 6 +++++ .../holochain_service_extension.rs | 14 +++++++++- .../src/holochain_service/interface.rs | 26 +++++++++++++++++++ rust-executor/src/holochain_service/mod.rs | 25 ++++++++++++++++++ 4 files changed, 70 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/holochain_service/holochain_service_extension.js b/rust-executor/src/holochain_service/holochain_service_extension.js index f0cd6b058..253e2c963 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.js +++ b/rust-executor/src/holochain_service/holochain_service_extension.js @@ -34,6 +34,12 @@ }, getAgentKey: async () => { return core.opAsync("get_agent_key") + }, + packDna: async (path) => { + return core.opAsync("pack_dna", path) + }, + UnPackDna: async (path) => { + return core.opAsync("unpack_dna", path) } }; })(globalThis); diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 092dd285c..67759f3b2 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -92,7 +92,17 @@ async fn get_agent_key() -> Result, AnyError> { interface.get_agent_key().await } -//TODO: implement dna packing and unpacking (not currently possible with holochain_cli_bundle unpack / pack functions since it does not exposed the functions in lib) +#[op] +async fn pack_dna(path: String) -> Result<(), AnyError> { + let interface = get_holochain_service().await; + interface.pack_dna(path).await +} + +#[op] +async fn unpack_dna(path: String) -> Result<(), AnyError> { + let interface = get_holochain_service().await; + interface.unpack_dna(path).await +} //Implement signal callbacks from dna/holochain to js @@ -112,6 +122,8 @@ pub fn build() -> Extension { sign_string::DECL, shutdown::DECL, get_agent_key::DECL, + pack_dna::DECL, + unpack_dna::DECL, ]), ..Default::default() } diff --git a/rust-executor/src/holochain_service/interface.rs b/rust-executor/src/holochain_service/interface.rs index 9826d80f1..20298c493 100644 --- a/rust-executor/src/holochain_service/interface.rs +++ b/rust-executor/src/holochain_service/interface.rs @@ -38,6 +38,8 @@ pub enum HolochainServiceRequest { GetAgentKey(oneshot::Sender), GetAppInfo(String, oneshot::Sender), GetNetworkMetrics(oneshot::Sender), + PackDna(String, oneshot::Sender), + UnPackDna(String, oneshot::Sender), } #[derive(Debug)] @@ -53,6 +55,8 @@ pub enum HolochainServiceResponse { GetAppInfo(Result, AnyError>), InitComplete(Result<(), AnyError>), GetNetworkMetrics(Result), + PackDna(Result<(), AnyError>), + UnPackDna(Result<(), AnyError>), } impl HolochainServiceInterface { @@ -185,6 +189,28 @@ impl HolochainServiceInterface { _ => unreachable!(), } } + + pub async fn pack_dna(&self, path: String) -> Result<(), AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::PackDna(path, response_tx)) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::PackDna(result) => result, + _ => unreachable!(), + } + } + + pub async fn unpack_dna(&self, path: String) -> Result<(), AnyError> { + let (response_tx, response_rx) = oneshot::channel(); + self.sender + .send(HolochainServiceRequest::UnPackDna(path, response_tx)) + .await?; + match response_rx.await.unwrap() { + HolochainServiceResponse::UnPackDna(result) => result, + _ => unreachable!(), + } + } } lazy_static! { diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 808cb0b8f..46db2e66d 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -157,6 +157,14 @@ impl HolochainService { let _ = response_tx .send(HolochainServiceResponse::GetNetworkMetrics(result)); } + HolochainServiceRequest::PackDna(path, response_tx) => { + let result = HolochainService::pack_dna(path).await; + let _ = response_tx.send(HolochainServiceResponse::PackDna(result)); + } + HolochainServiceRequest::UnPackDna(path, response_tx) => { + let result = HolochainService::unpack_dna(path).await; + let _ = response_tx.send(HolochainServiceResponse::UnPackDna(result)); + } } } }); @@ -252,12 +260,14 @@ impl HolochainService { match app_info { None => { + info!("installing app rust"); self.conductor .clone() .install_app_bundle(install_app_payload) .await .map_err(|e| anyhow!("Could not install app: {:?}", e))?; + info!("activating app rust"); let activate = self .conductor .clone() @@ -390,6 +400,7 @@ impl HolochainService { pub async fn sign(&self, data: String) -> Result { let keystore = self.conductor.keystore(); let pub_keys = keystore.list_public_keys().await?; + info!("Public keys: {:?}", pub_keys); if pub_keys.len() == 0 { return Err(anyhow!("No public keys found")); } @@ -425,4 +436,18 @@ impl HolochainService { pub async fn get_network_metrics(&self) -> Result { Ok(self.conductor.dump_network_metrics(None).await?) } + + pub async fn pack_dna(path: String) -> Result<(), AnyError> { + let path = PathBuf::try_from(path)?; + let command = holochain_cli::CliSubcommand::Dna(holochain_cli_bundle::HcDnaBundle {subcommand: holochain_cli_bundle::HcDnaBundleSubcommand::Pack { path: path, output: None, recursive: true }}); + command.run().await?; + Ok(()) + } + + pub async fn unpack_dna(path: String) -> Result<(), AnyError> { + let path = PathBuf::try_from(path)?; + let command = holochain_cli::CliSubcommand::Dna(holochain_cli_bundle::HcDnaBundle {subcommand: holochain_cli_bundle::HcDnaBundleSubcommand::Unpack { path: path, output: None, raw: false, force: true }}); + command.run().await?; + Ok(()) + } } From 5742f516769aaa43ab40c5b64bc4eaadac178863 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 11:53:10 +0100 Subject: [PATCH 550/722] integrate js code with new pack/unpack functions & return path --- executor/src/core/LanguageController.ts | 4 ++-- .../storage-services/Holochain/HcExecution.ts | 13 ----------- .../Holochain/HolochainService.ts | 9 ++++---- executor/src/holochain_service_extension.d.ts | 2 ++ rust-executor/Cargo.toml | 2 ++ .../holochain_service_extension.js | 2 +- .../holochain_service_extension.rs | 4 ++-- .../src/holochain_service/interface.rs | 8 +++---- rust-executor/src/holochain_service/mod.rs | 23 +++++++++++-------- tests/js/utils/utils.ts | 6 ++--- 10 files changed, 33 insertions(+), 40 deletions(-) delete mode 100644 executor/src/core/storage-services/Holochain/HcExecution.ts diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index f5e013957..320c80509 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -587,7 +587,7 @@ export default class LanguageController { //Unpack the DNA //TODO: we need to be able to check for errors in this fn call, currently we just crudly split the result console.log("LanguageController.readAndTemplateHolochainDNA: unpacking DNA"); - let unpackPath = this.#holochainService.unpackDna(tempDnaPath).replace(/(\r\n|\n|\r)/gm, ""); + let unpackPath = (await this.#holochainService.unpackDna(tempDnaPath)).replace(/(\r\n|\n|\r)/gm, ""); fs.unlinkSync(tempDnaPath); //TODO: are all dna's using the same dna.yaml? const dnaYamlPath = path.join(unpackPath, "dna.yaml"); @@ -623,7 +623,7 @@ export default class LanguageController { //TODO: we need to be able to check for errors in this fn call, currently we just crudly split the result console.log("LanguageController.readAndTemplateHolochainDNA: packing DNA"); - let packPath = this.#holochainService.packDna(unpackPath).replace(/(\r\n|\n|\r)/gm, ""); + let packPath = (await this.#holochainService.packDna(unpackPath)).replace(/(\r\n|\n|\r)/gm, ""); const base64 = fs.readFileSync(packPath, "base64").replace(/[\r\n]+/gm, ''); //Cleanup temp directory diff --git a/executor/src/core/storage-services/Holochain/HcExecution.ts b/executor/src/core/storage-services/Holochain/HcExecution.ts deleted file mode 100644 index 17f23e820..000000000 --- a/executor/src/core/storage-services/Holochain/HcExecution.ts +++ /dev/null @@ -1,13 +0,0 @@ -import child_process from "child_process"; - -function escapeShellArg (arg: string) { - return arg.replace(" ", "\ "); -} - -export function unpackDna(hcPath: string, dnaPath: string): string { - return child_process.execFileSync(`${escapeShellArg(hcPath)}`, ["dna", "unpack", `${escapeShellArg(dnaPath)}`]).toString(); -} - -export function packDna(hcPath: string, workdirPath: string): string { - return child_process.execFileSync(`${escapeShellArg(hcPath)}`, ["dna", "pack", `${escapeShellArg(workdirPath)}`]).toString(); -} diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 05be49b5b..2e6a430cf 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -2,7 +2,6 @@ import { AppSignalCb, AppSignal, CellId, CellType, AgentInfoResponse, InstallApp import path from 'path' import fs from 'fs' import HolochainLanguageDelegate from "./HolochainLanguageDelegate" -import { unpackDna, packDna } from "./HcExecution" import type { Dna } from '@perspect3vism/ad4m' import { AsyncQueue } from './Queue' import { decode, encode } from "@msgpack/msgpack" @@ -131,8 +130,8 @@ export default class HolochainService { await HOLOCHAIN_SERVICE.shutdown(); } - unpackDna(dnaPath: string): string { - let result = unpackDna(`${this.#resourcePath}/hc`, dnaPath); + async unpackDna(dnaPath: string): Promise { + let result = await HOLOCHAIN_SERVICE.unPackDna(dnaPath); let splitResult = result.split("Unpacked to directory "); if (splitResult.length == 2) { return splitResult[1] @@ -141,8 +140,8 @@ export default class HolochainService { } } - packDna(workdirPath: string): string { - let result = packDna(`${this.#resourcePath}/hc`, workdirPath); + async packDna(workdirPath: string): Promise { + let result = await HOLOCHAIN_SERVICE.packDna(workdirPath); let splitResult = result.split("Wrote bundle "); if (splitResult.length == 2) { return splitResult[1] diff --git a/executor/src/holochain_service_extension.d.ts b/executor/src/holochain_service_extension.d.ts index e396fc4d5..a0994d6b7 100644 --- a/executor/src/holochain_service_extension.d.ts +++ b/executor/src/holochain_service_extension.d.ts @@ -26,6 +26,8 @@ declare global { async signString: (string: String) => Signature; async shutdown: () => void; async getAgentKey: () => AgentPubKey; + async packDna: (path: String) => String; + async unPackDna: (path: String) => String; } const HOLOCHAIN_SERVICE: HolochainService; diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 9b7b5a2af..3937986a0 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -62,6 +62,8 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" holochain = { git = "https://github.com/holochain/holochain", branch = "rust-1.71.1", features = ["test_utils", "default"] } +holochain_cli_bundle = { path = "../../holochain/crates/hc_bundle" } +holochain_types = { path = "../../holochain/crates/holochain_types" } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } diff --git a/rust-executor/src/holochain_service/holochain_service_extension.js b/rust-executor/src/holochain_service/holochain_service_extension.js index 253e2c963..8fa8f9fcf 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.js +++ b/rust-executor/src/holochain_service/holochain_service_extension.js @@ -38,7 +38,7 @@ packDna: async (path) => { return core.opAsync("pack_dna", path) }, - UnPackDna: async (path) => { + unPackDna: async (path) => { return core.opAsync("unpack_dna", path) } }; diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 67759f3b2..00f63e57b 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -93,13 +93,13 @@ async fn get_agent_key() -> Result, AnyError> { } #[op] -async fn pack_dna(path: String) -> Result<(), AnyError> { +async fn pack_dna(path: String) -> Result { let interface = get_holochain_service().await; interface.pack_dna(path).await } #[op] -async fn unpack_dna(path: String) -> Result<(), AnyError> { +async fn unpack_dna(path: String) -> Result { let interface = get_holochain_service().await; interface.unpack_dna(path).await } diff --git a/rust-executor/src/holochain_service/interface.rs b/rust-executor/src/holochain_service/interface.rs index 20298c493..b6bce286f 100644 --- a/rust-executor/src/holochain_service/interface.rs +++ b/rust-executor/src/holochain_service/interface.rs @@ -55,8 +55,8 @@ pub enum HolochainServiceResponse { GetAppInfo(Result, AnyError>), InitComplete(Result<(), AnyError>), GetNetworkMetrics(Result), - PackDna(Result<(), AnyError>), - UnPackDna(Result<(), AnyError>), + PackDna(Result), + UnPackDna(Result), } impl HolochainServiceInterface { @@ -190,7 +190,7 @@ impl HolochainServiceInterface { } } - pub async fn pack_dna(&self, path: String) -> Result<(), AnyError> { + pub async fn pack_dna(&self, path: String) -> Result { let (response_tx, response_rx) = oneshot::channel(); self.sender .send(HolochainServiceRequest::PackDna(path, response_tx)) @@ -201,7 +201,7 @@ impl HolochainServiceInterface { } } - pub async fn unpack_dna(&self, path: String) -> Result<(), AnyError> { + pub async fn unpack_dna(&self, path: String) -> Result { let (response_tx, response_rx) = oneshot::channel(); self.sender .send(HolochainServiceRequest::UnPackDna(path, response_tx)) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 46db2e66d..af6957823 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -16,6 +16,7 @@ use holochain::prelude::{ Signature, Timestamp, TransportConfig, ZomeCallResponse, ZomeCallUnsigned, }; use holochain::test_utils::itertools::Either; +use holochain_types::dna::ValidatedDnaManifest; use tracing::info; use rand::Rng; use serde::{Deserialize, Serialize}; @@ -437,17 +438,19 @@ impl HolochainService { Ok(self.conductor.dump_network_metrics(None).await?) } - pub async fn pack_dna(path: String) -> Result<(), AnyError> { - let path = PathBuf::try_from(path)?; - let command = holochain_cli::CliSubcommand::Dna(holochain_cli_bundle::HcDnaBundle {subcommand: holochain_cli_bundle::HcDnaBundleSubcommand::Pack { path: path, output: None, recursive: true }}); - command.run().await?; - Ok(()) + pub async fn pack_dna(path: String) -> Result { + let path = PathBuf::from(path); + let name = holochain_cli_bundle::get_dna_name(&path).await?; + info!("Got dna name: {:?}", name); + let pack = holochain_cli_bundle::pack::(&path, None, name, false).await?; + info!("Packed dna at path: {:#?}", pack.0); + Ok(pack.0.to_str().unwrap().to_string()) } - pub async fn unpack_dna(path: String) -> Result<(), AnyError> { - let path = PathBuf::try_from(path)?; - let command = holochain_cli::CliSubcommand::Dna(holochain_cli_bundle::HcDnaBundle {subcommand: holochain_cli_bundle::HcDnaBundleSubcommand::Unpack { path: path, output: None, raw: false, force: true }}); - command.run().await?; - Ok(()) + pub async fn unpack_dna(path: String) -> Result { + let path = PathBuf::from(path); + let pack = holochain_cli_bundle::unpack::("dna", &path, None, true).await?; + info!("UnPacked dna at path: {:#?}", pack); + Ok(pack.to_str().unwrap().to_string()) } } diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 4363b7ace..ddbdfe198 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -54,7 +54,7 @@ export async function startExecutor(dataPath: string, try { execSync("killall ad4m") } catch (e) { - console.log("No ad4m process running") + //console.log("No ad4m process running") } console.log(`Current directory: ${process.cwd()}`); @@ -83,9 +83,9 @@ export async function startExecutor(dataPath: string, console.log("USING LOCAL BOOTSTRAP & PROXY URL: ", bootstrapUrl, proxyUrl); if (!adminCredential) { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From 72594d5e127c35b6fcb7ee97f8d3f74c475b5dea Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 11:53:55 +0100 Subject: [PATCH 551/722] use mdns for tests --- tests/js/utils/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 4363b7ace..5be287acf 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -83,9 +83,9 @@ export async function startExecutor(dataPath: string, console.log("USING LOCAL BOOTSTRAP & PROXY URL: ", bootstrapUrl, proxyUrl); if (!adminCredential) { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns false --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From 0f95309078fbbe369520ffe608600051eecc2862 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 11:55:16 +0100 Subject: [PATCH 552/722] revert holochain version bumps --- rust-executor/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 9b7b5a2af..9ec65003c 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -22,8 +22,8 @@ path = "src/main.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -deno_core = "0.202.0" -deno_runtime = "0.124.0" +deno_core = "0.199.0" +deno_runtime = "0.122.0" tokio = { version = "1.25.0", features = ["full"] } url = "2.3.1" futures = "0.3.28" @@ -61,7 +61,7 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = { git = "https://github.com/holochain/holochain", branch = "rust-1.71.1", features = ["test_utils", "default"] } +holochain = { version = "0.3.0-beta-dev.13", features = ["test_utils", "default"] } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } From 124e453de7eebc0c18dec0bee9c5f3f656936165 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 12:12:50 +0100 Subject: [PATCH 553/722] set hc use bootstrap to false --- tests/js/utils/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 5be287acf..2f64ee0e1 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -83,9 +83,9 @@ export async function startExecutor(dataPath: string, console.log("USING LOCAL BOOTSTRAP & PROXY URL: ", bootstrapUrl, proxyUrl); if (!adminCredential) { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap false --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap true --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap false --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From f061fcae9a5dc821f10a30989e900a355ef9b5c8 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Wed, 23 Aug 2023 17:07:38 +0530 Subject: [PATCH 554/722] Fixed hc path in utils script --- tests/js/utils/utils.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 5be287acf..7d79b31a8 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -58,7 +58,8 @@ export async function startExecutor(dataPath: string, } console.log(`Current directory: ${process.cwd()}`); - let servicesProcess = exec("./tst-tmp/agents/p/binary/hc run-local-services"); + const hc = path.resolve(__dirname, '..', 'tst-tmp', 'agents', 'p','binary', 'hc'); + let servicesProcess = exec(`${hc} run-local-services`); let bootstrapUrl = null; let proxyUrl = null; From 78067a93a08ebc09080661f2378b6467162d4006 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 13:49:05 +0100 Subject: [PATCH 555/722] add command for running local hc services in ad4m cli --- cli/src/main.rs | 7 +++++++ rust-executor/Cargo.toml | 1 + rust-executor/src/holochain_service/mod.rs | 6 ++++++ rust-executor/src/lib.rs | 2 +- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index 0e2c08049..be624b6f6 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -157,6 +157,7 @@ enum Domain { #[arg(long, action)] swipl_home_path: Option, }, + RunLocalHcServices {} } async fn get_ad4m_client(args: &ClapApp) -> Result { @@ -257,6 +258,11 @@ async fn main() -> Result<()> { return Ok(()); }; + if let Domain::RunLocalHcServices {} = args.domain { + rust_executor::run_local_hc_services().await; + return Ok(()); + } + let ad4m_client = get_ad4m_client(&args).await?; match args.domain { @@ -302,6 +308,7 @@ async fn main() -> Result<()> { swipl_path: _, swipl_home_path: _, } => unreachable!(), + Domain::RunLocalHcServices {} => unreachable!(), } Ok(()) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 3937986a0..9c78019fa 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -64,6 +64,7 @@ jsonwebtoken = "8.3.0" holochain = { git = "https://github.com/holochain/holochain", branch = "rust-1.71.1", features = ["test_utils", "default"] } holochain_cli_bundle = { path = "../../holochain/crates/hc_bundle" } holochain_types = { path = "../../holochain/crates/holochain_types" } +holochain_cli_run_local_services = { path = "../../holochain/crates/hc_run_local_services" } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index af6957823..5f2b06dde 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -454,3 +454,9 @@ impl HolochainService { Ok(pack.to_str().unwrap().to_string()) } } + +pub async fn run_local_hc_services() -> Result<(), AnyError> { + let ops = holochain_cli_run_local_services::HcRunLocalServices::new(None, String::from("127.0.0.1"), 0, false, None, String::from("127.0.0.1"), 0, false); + ops.run().await; + Ok(()) +} diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index fd41efe45..f84004224 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -18,10 +18,10 @@ mod pubsub; use std::env; use tracing::{info, error}; -//use graphql::start_server; use js_core::JsCore; pub use config::Ad4mConfig; +pub use holochain_service::run_local_hc_services; use crate::prolog_service::init_prolog_service; From b6fe53b5edbd5492c2a3d2fa3cf664d137d051d0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 13:49:22 +0100 Subject: [PATCH 556/722] remove dead hc binary fetching --- download-binaries-linux.sh | 13 ------------- download-binaries-macos.sh | 14 -------------- download-binaries-windows.ps1 | 14 -------------- package.json | 7 +------ rust-executor/src/init.rs | 20 -------------------- 5 files changed, 1 insertion(+), 67 deletions(-) delete mode 100755 download-binaries-linux.sh delete mode 100755 download-binaries-macos.sh delete mode 100644 download-binaries-windows.ps1 diff --git a/download-binaries-linux.sh b/download-binaries-linux.sh deleted file mode 100755 index 6359d8828..000000000 --- a/download-binaries-linux.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -[ ! -d "./rust-executor/temp/binary" ] && mkdir -p "./rust-executor/temp/binary" - -if [ ! -f "./rust-executor/temp/binary/hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 - mv hc-linux-0.1.0 ./rust-executor/temp/binary/hc - chmod +x ./rust-executor/temp/binary/hc - - if [ ! -f "/usr/local/bin/hc" ]; then - echo "Copying hc to /usr/local/bin" - cp ./rust-executor/temp/binary/hc /usr/local/bin/hc - fi -fi diff --git a/download-binaries-macos.sh b/download-binaries-macos.sh deleted file mode 100755 index 361e3ee1e..000000000 --- a/download-binaries-macos.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -[ ! -d "./rust-executor/temp/binary" ] && mkdir -p "./rust-executor/temp/binary" - -if [ ! -f "./rust-executor/temp/binary/hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-darwin-0.1.0 - mv hc-darwin-0.1.0 ./rust-executor/temp/binary/hc - chmod +x ./rust-executor/temp/binary/hc - - if [ ! -f "/usr/local/bin/hc" ]; then - echo "Copying hc to /usr/local/bin" - cp ./rust-executor/temp/binary/hc /usr/local/bin/hc - fi -fi diff --git a/download-binaries-windows.ps1 b/download-binaries-windows.ps1 deleted file mode 100644 index 8179166d8..000000000 --- a/download-binaries-windows.ps1 +++ /dev/null @@ -1,14 +0,0 @@ -mkdir rust-executor/temp/binary - -wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-windows-0.1.0.exe -O ./rust-executor/temp/binary/hc.exe - -# Global path where the binary should be copied to -$global_path = "C:\Windows\System32\" - -# Check if the global path exists -if (-not (Test-Path $global_path -PathType Container)) { - Write-Host "Global path not found." - exit 1 -} - -Copy-Item ./rust-executor/temp/binary/hc.exe $global_path \ No newline at end of file diff --git a/package.json b/package.json index f67beb5d5..e65521a9c 100644 --- a/package.json +++ b/package.json @@ -25,10 +25,6 @@ "test:macos": "turbo run test:macos --concurrency=1", "test:linux": "turbo run test:linux --concurrency=1", "test:windows": "turbo run test:windows --concurrency=1", - "fetch-binaries": "run-script-os", - "fetch-binaries:macos": "./download-binaries-macos.sh", - "fetch-binaries:windows": "powershell.exe -ExecutionPolicy Bypass -File download-binaries-windows.ps1", - "fetch-binaries:linux": "./download-binaries-linux.sh", "package-ad4m": "turbo run package-ad4m", "build-languages": "turbo run build-languages", "docs": "jsdoc -c jsdoc.json", @@ -46,8 +42,7 @@ "build-all-windows": "turbo run build-all-windows", "patchpackage": "patch-package", "set-version": "node setVersion.js", - "patch-package": "^6.5.0", - "postinstall": "yarn run fetch-binaries" + "patch-package": "^6.5.0" }, "devDependencies": { "@changesets/cli": "^2.25.2", diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 23b53ecd6..9a9c5f5cb 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -56,26 +56,6 @@ pub fn init( //Write the mainnet seed to the data directory write_seed_config(&app_data_path, network_bootstrap_seed)?; - //Create the path for binaries if it doesn't already exist - let binary_path = Path::new(&app_data_path).join("binary"); - if !Path::new(&binary_path).exists() { - info!("Creating binary path"); - fs::create_dir_all(&binary_path)?; - } - - let platform = os_info::get().os_type(); - let hc = match platform { - os_info::Type::Windows => "hc.exe", - _ => "hc", - }; - - let hc_data = &HC_BIN; - let hc_target = binary_path.join(hc); - info!("write hc target"); - fs::write::<&PathBuf, &[u8]>(&hc_target, hc_data.as_ref())?; - - set_permissions(hc_target)?; - Ok(()) } From 018c62f5733107458f887e35652f184cff8682ae Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 13:50:38 +0100 Subject: [PATCH 557/722] remove bin const for hc and permission setting functions --- rust-executor/src/globals.rs | 12 +----------- rust-executor/src/init.rs | 4 ++-- rust-executor/src/utils.rs | 17 ----------------- 3 files changed, 3 insertions(+), 30 deletions(-) diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index 0c81257db..191796263 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -20,14 +20,4 @@ lazy_static! { } /// Raw JSON data for the mainnet seed, included at buildtime from the mainnet_seed.json file -pub const MAINNET_JSON: &str = include_str!("mainnet_seed.json"); - -#[cfg(target_os = "windows")] -lazy_static! { - pub static ref HC_BIN: &'static [u8] = include_bytes!("../temp/binary/hc.exe"); -} - -#[cfg(not(target_os = "windows"))] -lazy_static! { - pub static ref HC_BIN: &'static [u8] = include_bytes!("../temp/binary/hc"); -} +pub const MAINNET_JSON: &str = include_str!("mainnet_seed.json"); \ No newline at end of file diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 9a9c5f5cb..3bb82d4ba 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -4,8 +4,8 @@ use std::error::Error; use std::fs; use std::path::{Path, PathBuf}; -use super::utils::{ad4m_data_directory, set_permissions}; -use crate::globals::{AD4M_VERSION, HC_BIN, MAINNET_JSON, OLDEST_VERSION}; +use super::utils::ad4m_data_directory; +use crate::globals::{AD4M_VERSION, MAINNET_JSON, OLDEST_VERSION}; /// Sets up the ad4m data directory and config files ready for the executor to consume pub fn init( diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs index d700a5219..cd6ed65b2 100644 --- a/rust-executor/src/utils.rs +++ b/rust-executor/src/utils.rs @@ -10,20 +10,3 @@ pub(crate) fn ad4m_data_directory() -> PathBuf { ad4m_dir.push_str("/.ad4m"); Path::new(&ad4m_dir).to_path_buf() } - -#[cfg(not(target_os = "windows"))] -pub fn set_permissions(path: PathBuf) -> Result<(), Box> { - use std::fs::Permissions; - use std::os::unix::fs::PermissionsExt; - - let mut perms = Permissions::from_mode(0o755); - perms.set_readonly(true); - perms.set_mode(0o755); - std::fs::set_permissions(path, perms)?; - Ok(()) -} - -#[cfg(target_os = "windows")] -pub fn set_permissions(_path: PathBuf) -> Result<(), Box> { - Ok(()) -} From 67873285c209b95f2d7966e6f90263c0c76890e7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 13:50:57 +0100 Subject: [PATCH 558/722] remove dead import --- rust-executor/src/utils.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs index cd6ed65b2..302a93653 100644 --- a/rust-executor/src/utils.rs +++ b/rust-executor/src/utils.rs @@ -1,5 +1,4 @@ use std::env::var_os; -use std::error::Error; use std::path::{Path, PathBuf}; pub(crate) fn ad4m_data_directory() -> PathBuf { From dae63f9205aa16e530a214a5440bc9fb9d01100e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 13:56:14 +0100 Subject: [PATCH 559/722] spawn hc local services using new cli command in test setup --- tests/js/utils/utils.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index ddbdfe198..e2feafada 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -57,8 +57,7 @@ export async function startExecutor(dataPath: string, //console.log("No ad4m process running") } - console.log(`Current directory: ${process.cwd()}`); - let servicesProcess = exec("./tst-tmp/agents/p/binary/hc run-local-services"); + let servicesProcess = exec(`${command} run-local-hc-services`); let bootstrapUrl = null; let proxyUrl = null; From d9782e3c96b5c0a34447d686f26746e0d5b1ca08 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 14:07:07 +0100 Subject: [PATCH 560/722] bump minor deps --- Cargo.lock | 1935 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 1115 insertions(+), 820 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d9a6fc2ba..8950cfc06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,7 +19,7 @@ dependencies = [ "ad4m-client", "anyhow", "chrono", - "clap 4.3.21", + "clap 4.3.23", "colour", "dirs 4.0.0", "futures", @@ -42,7 +42,7 @@ dependencies = [ "anyhow", "async-tungstenite", "chrono", - "clap 4.3.21", + "clap 4.3.23", "dirs 4.0.0", "futures", "graphql-ws-client", @@ -78,7 +78,7 @@ dependencies = [ "rust-executor", "serde", "serde_json", - "sysinfo 0.29.7", + "sysinfo 0.29.8", "tauri", "tauri-build", "tauri-plugin-positioner", @@ -90,11 +90,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "gimli 0.27.3", + "gimli 0.28.0", ] [[package]] @@ -184,9 +184,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] @@ -283,9 +283,9 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" dependencies = [ "anstyle", "windows-sys 0.48.0", @@ -293,9 +293,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.72" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" dependencies = [ "backtrace", ] @@ -373,7 +373,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.25", + "time 0.3.23", ] [[package]] @@ -383,7 +383,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", "synstructure", ] @@ -395,21 +395,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] [[package]] name = "ast_node" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c704e2f6ee1a98223f5a7629a6ef0f3decb3b552ed282889dc957edff98ce1e6" +checksum = "c09c69dffe06d222d072c878c3afe86eee2179806f20503faec97250268b4c24" dependencies = [ - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "swc_macros_common", - "syn 1.0.109", + "syn 2.0.29", ] [[package]] @@ -418,7 +418,7 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -444,20 +444,6 @@ dependencies = [ "futures-core", ] -[[package]] -name = "async-compression" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" -dependencies = [ - "brotli", - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", -] - [[package]] name = "async-compression" version = "0.4.1" @@ -523,9 +509,9 @@ dependencies = [ [[package]] name = "async-lock" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ "event-listener", ] @@ -555,7 +541,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -604,7 +590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25f9db3b38af870bf7e5cc649167533b493928e50744e2c30ae350230b414670" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -616,13 +602,13 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -718,16 +704,16 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.7.1", - "object 0.31.1", + "miniz_oxide", + "object 0.32.0", "rustc-demangle", ] @@ -833,9 +819,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "bitvec" @@ -987,13 +973,13 @@ dependencies = [ [[package]] name = "bloomfilter" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8129c0ab340c1b0caf6dbc587e814d04ba811e336dcf8fc268c04e047428ebb0" +checksum = "b92db7965d438b8b4b1c1d0aedd188440a1084593c9eb7f6657e3df7e906d934" dependencies = [ "bit-vec", "getrandom 0.2.10", - "siphasher", + "siphasher 1.0.0", ] [[package]] @@ -1058,7 +1044,7 @@ dependencies = [ "serde", "serde_bytes", "serde_json", - "time 0.3.25", + "time 0.3.23", "uuid 1.4.1", ] @@ -1103,7 +1089,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -1238,9 +1224,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", "libc", @@ -1402,9 +1388,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.21" +version = "4.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd" +checksum = "03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3" dependencies = [ "clap_builder", "clap_derive 4.3.12", @@ -1413,9 +1399,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.3.21" +version = "4.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa" +checksum = "f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98" dependencies = [ "anstream", "anstyle", @@ -1433,7 +1419,7 @@ dependencies = [ "heck 0.4.1", "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -1445,8 +1431,8 @@ checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -1484,6 +1470,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "cmake" +version = "0.1.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" +dependencies = [ + "cc", +] + [[package]] name = "cocoa" version = "0.24.1" @@ -1686,9 +1681,9 @@ dependencies = [ [[package]] name = "corosensei" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" +checksum = "80128832c58ea9cbd041d2a759ec449224487b2c1e400453d99d244eead87a8e" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", @@ -1786,9 +1781,9 @@ dependencies = [ [[package]] name = "critical-section" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" [[package]] name = "cron" @@ -2003,7 +1998,7 @@ dependencies = [ "matches", "phf 0.8.0", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "smallvec 1.11.0", "syn 1.0.109", ] @@ -2014,8 +2009,8 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -2024,7 +2019,7 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -2075,9 +2070,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-rc.3" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7" +checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -2096,8 +2091,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -2149,7 +2144,7 @@ dependencies = [ "fnv", "ident_case", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "strsim 0.9.3", "syn 1.0.109", ] @@ -2163,7 +2158,7 @@ dependencies = [ "fnv", "ident_case", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "strsim 0.10.0", "syn 1.0.109", ] @@ -2177,7 +2172,7 @@ dependencies = [ "fnv", "ident_case", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "strsim 0.10.0", "syn 1.0.109", ] @@ -2191,9 +2186,9 @@ dependencies = [ "fnv", "ident_case", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "strsim 0.10.0", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -2203,7 +2198,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core 0.10.2", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -2214,7 +2209,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core 0.13.4", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -2225,7 +2220,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core 0.14.4", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -2236,8 +2231,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core 0.20.3", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -2258,9 +2253,9 @@ dependencies = [ [[package]] name = "dashmap" -version = "5.5.0" +version = "5.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d" +checksum = "edd72493923899c6f10c641bdbdeddc7183d6396641d99c1a0d1597f37f92e28" dependencies = [ "cfg-if 1.0.0", "hashbrown 0.14.0", @@ -2321,7 +2316,7 @@ dependencies = [ "dashu-int", "dashu-ratio", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", ] [[package]] @@ -2386,7 +2381,7 @@ checksum = "3c65c2ffdafc1564565200967edc4851c7b55422d3913466688907efd05ea26f" dependencies = [ "deno-proc-macro-rules-macros", "proc-macro2 1.0.66", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -2397,15 +2392,15 @@ checksum = "3047b312b7451e3190865713a4dd6e1f821aed614ada219766ebc3024a690435" dependencies = [ "once_cell", "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] name = "deno_ast" -version = "0.27.3" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b17e25531279d9795aeb076909c91c9b369fa63fd4d801486950577d0457d22" +checksum = "00c93119b1c487a85603406a988a0ca9a1d0e5315404cccc5c158fb484b1f5a2" dependencies = [ "anyhow", "base64 0.13.1", @@ -2439,9 +2434,9 @@ dependencies = [ [[package]] name = "deno_broadcast_channel" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3e8ca691a282c918cc5c223dcd5840286954a396e3108ade4c3c3b55017ebf" +checksum = "a40c3d51cff8e603b4d8071290ea1e120d97969f33b0447b8c4aa7e5463bc6c9" dependencies = [ "async-trait", "deno_core", @@ -2451,9 +2446,9 @@ dependencies = [ [[package]] name = "deno_cache" -version = "0.46.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc385e88d95f925f3384319cde1e813022d4842a9a791c79b47699334e81d516" +checksum = "44250183b4f3382b9e8046719f4214450026962343b3f733daa10fc42c98afde" dependencies = [ "async-trait", "deno_core", @@ -2465,18 +2460,18 @@ dependencies = [ [[package]] name = "deno_console" -version = "0.114.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3df41ff26499c3f4f352f8fc1fe6bb50c39121675bf594b3af511c28db84c2" +checksum = "0cca5045174defc692b1db5002f548382f4139fa30f3c0767f904df028e4f749" dependencies = [ "deno_core", ] [[package]] name = "deno_core" -version = "0.199.0" +version = "0.202.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70fbd0cb620ac36fac08d708c5f01362280c5aa8149657a225db4932bd73758e" +checksum = "e9d4f3ad9c2861e0bb8745e1f228aaee04782a9ab6a3c3bbb887e60d7faf087a" dependencies = [ "anyhow", "bytes", @@ -2500,9 +2495,9 @@ dependencies = [ [[package]] name = "deno_crypto" -version = "0.128.0" +version = "0.130.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5000445c43538cb54a021e761071137ebab615c751e17178e564c56647414f5c" +checksum = "0de38d310ecaec36c37953a293312502b259b4d4054ca0b9c03064b95d4b4aa5" dependencies = [ "aes", "aes-gcm", @@ -2531,14 +2526,14 @@ dependencies = [ "spki 0.6.0", "tokio", "uuid 1.4.1", - "x25519-dalek 2.0.0-rc.3", + "x25519-dalek 2.0.0", ] [[package]] name = "deno_fetch" -version = "0.138.0" +version = "0.140.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af49c674cf373a8946e67dae1d2badc0c1176f9ecb84cda168c5c9421ef15b3a" +checksum = "d6cfbc01f08ea26c979ceacc034175a66851d061d45b4fa85ea1a22088b09ecb" dependencies = [ "bytes", "data-url", @@ -2554,9 +2549,9 @@ dependencies = [ [[package]] name = "deno_ffi" -version = "0.101.0" +version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb34b1d3bb618b0bbbc5ebc148301263824a5673290483ff0a52386913a43e2" +checksum = "5dd158e9aa23eaaf4d9aeadb09d398184f3e531766864924e72da8a99b91e76c" dependencies = [ "deno_core", "dlopen", @@ -2572,9 +2567,9 @@ dependencies = [ [[package]] name = "deno_fs" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ddb0692853905a87a96666c77d58e4adf1cf3671d1a7ec7edafe301cfce9441" +checksum = "72cc1bbfeab39476376ec931195110b5734717d7def55e035fcf6a374691105b" dependencies = [ "async-trait", "deno_core", @@ -2592,11 +2587,11 @@ dependencies = [ [[package]] name = "deno_http" -version = "0.109.0" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d083d63029b9cd366bcee007db8348e7c515c19e5432f0d2f138f03e5908ca1" +checksum = "b8129c068b7c94a5642b818a9a04c594929397b5b632d77dd1ee7beb91d34b9e" dependencies = [ - "async-compression 0.3.15", + "async-compression", "async-trait", "base64 0.13.1", "brotli", @@ -2628,9 +2623,9 @@ dependencies = [ [[package]] name = "deno_io" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b0886f3be06a065c9738b4162c30634ea2645eaad7efcf13ec197c63d67d15" +checksum = "b9a395c43e98604c320853c8fdcbcfeaa6a9c09522b9b52ad0c29c9eb4405c34" dependencies = [ "async-trait", "deno_core", @@ -2643,15 +2638,16 @@ dependencies = [ [[package]] name = "deno_kv" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677532e9ee16ef744205bae030f5047f66f5ff5ad6359b6a0e393197a78cd2b3" +checksum = "5135c3056f07882ef3616630438e09e4489d797544195de88175379f7bfa79f6" dependencies = [ "anyhow", "async-trait", "base64 0.13.1", "deno_core", "hex", + "log", "num-bigint", "rand 0.8.5", "rusqlite", @@ -2661,6 +2657,18 @@ dependencies = [ "uuid 1.4.1", ] +[[package]] +name = "deno_lockfile" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e1fcc91fa4e18c3e0574965d7133709e76eda665cb589de703219f0819dfaec" +dependencies = [ + "ring", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "deno_media_type" version = "0.1.1" @@ -2674,9 +2682,9 @@ dependencies = [ [[package]] name = "deno_napi" -version = "0.44.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef1534b43dcf5cb8d28ee72035e4d5a426952fa305b75f0100dac3c89c99a4e" +checksum = "58fb91e734b61504b16015d9ef35b09cca046f041e49a2affdb5f0a126e2b5e8" dependencies = [ "deno_core", "libloading 0.7.4", @@ -2684,9 +2692,9 @@ dependencies = [ [[package]] name = "deno_net" -version = "0.106.0" +version = "0.108.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fa1823075955b96bbc1a58db8584f4b4b6da3411c4be4d77063852ccf067a" +checksum = "260baab6b6d9a09ced5b561be57aeea871194bc5b0deb30fe78c67ece0f9b2cc" dependencies = [ "deno_core", "deno_tls", @@ -2702,9 +2710,9 @@ dependencies = [ [[package]] name = "deno_node" -version = "0.51.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede647cd70b9cf8f3d678cf3e07844a74ac1d3f20beba7bc4cd63ffd1349a56e" +checksum = "55d65c11765f445bfa28f66cc181d0e815b57182416e31b96e28606153090019" dependencies = [ "aes", "brotli", @@ -2756,18 +2764,19 @@ dependencies = [ "typenum", "whoami", "winapi 0.3.9", - "x25519-dalek 2.0.0-rc.3", + "x25519-dalek 2.0.0", "x509-parser", ] [[package]] name = "deno_npm" -version = "0.10.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa5d1097de53e8ce3316d3e44095e253719ae367cf7478263f83082f44dddabf" +checksum = "c90198ae433bf22ac9b39fe5e18748d9d5b36db042ef1c24637f43d3b5e101e0" dependencies = [ "anyhow", "async-trait", + "deno_lockfile", "deno_semver", "futures", "log", @@ -2778,30 +2787,30 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.77.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b345c096fd8433337ed8e1727f4732397c134e188e1739c88b0c077869020f3" +checksum = "abb6a1ceabfbab1c29b32872e68ec994d393b58ccdf12a835d150199555496f3" dependencies = [ "deno-proc-macro-rules", "lazy-regex", "once_cell", - "pmutil 0.6.1", + "pmutil", "proc-macro-crate", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "regex", "strum 0.25.0", "strum_macros 0.25.2", "syn 1.0.109", - "syn 2.0.28", + "syn 2.0.29", "thiserror", ] [[package]] name = "deno_runtime" -version = "0.122.0" +version = "0.124.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15dd7fe2a7c53ffbbd55966eb7bf2298291b77a47e043f768f0aa1732f61e95" +checksum = "6aa440bb67cccecec66ea3a785898e8dcd374d8a7ba5f32a78f0c28e6598f882" dependencies = [ "atty", "console_static_text", @@ -2855,9 +2864,9 @@ dependencies = [ [[package]] name = "deno_semver" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96f99990457915af1f444900003ffd5a9d3ab2e5337b06d681e56ca371b3e11f" +checksum = "6f739a9d90c47e2af7e2fcbae0976360f3fb5292f7288a084d035ed44d12a288" dependencies = [ "monch", "once_cell", @@ -2868,9 +2877,9 @@ dependencies = [ [[package]] name = "deno_tls" -version = "0.101.0" +version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02167d4913ff4b1f93f0f3182b6ebee67f41129a94ea9ef8ce15dff51649aff4" +checksum = "0073142d27b7c9361301f680440cc57786fabf5f62755338d14c01ef4856ccf7" dependencies = [ "deno_core", "once_cell", @@ -2884,9 +2893,9 @@ dependencies = [ [[package]] name = "deno_url" -version = "0.114.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe9282c24607371fd2e6db7fca22da861032317c1396c08506a5a04ec81927a" +checksum = "05d4b7267f725a8d9d565377600137d705b094b0b79720b05f2abf4dcfde5245" dependencies = [ "deno_core", "serde", @@ -2895,15 +2904,17 @@ dependencies = [ [[package]] name = "deno_web" -version = "0.145.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b757302c2f04de142ee2962078f5f255caef80c792a9989fa860b867143a71e7" +checksum = "e3849a0f7062b20288896bc40c808553fa96566cc8bf4d400fa73e2ba65f93ee" dependencies = [ "async-trait", "base64-simd", + "bytes", "deno_core", "encoding_rs", "flate2", + "futures", "serde", "tokio", "uuid 1.4.1", @@ -2912,18 +2923,18 @@ dependencies = [ [[package]] name = "deno_webidl" -version = "0.114.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a12d8e0f1ef5af84075819a2568af54f8e073886a2c2941ac6e34c2092508d7" +checksum = "880ecf26f3218018fac3931ca2b26f07c20faf42017755b3d2b291ee63a6c73f" dependencies = [ "deno_core", ] [[package]] name = "deno_websocket" -version = "0.119.0" +version = "0.121.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3249bed57e808fdb99f7d39d8711210b2a0380638f0520447cb4794200c81d56" +checksum = "8dbcb4e9f39674b2296121ef8ee0ebdf7752df99c91b1efe0ccec9a70ffa9d69" dependencies = [ "bytes", "deno_core", @@ -2940,9 +2951,9 @@ dependencies = [ [[package]] name = "deno_webstorage" -version = "0.109.0" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03f122fd89054593e11e34fedbc063d00b407ea2b26c910171de4416618140b1" +checksum = "a92c72d0811a4b539cbc3bd4c24021135e1c5b73088b71dd22d002f2f01151e9" dependencies = [ "deno_core", "deno_web", @@ -2986,15 +2997,6 @@ dependencies = [ "rusticata-macros", ] -[[package]] -name = "deranged" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" -dependencies = [ - "serde", -] - [[package]] name = "derivative" version = "2.2.0" @@ -3002,7 +3004,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -3013,8 +3015,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -3026,7 +3028,7 @@ dependencies = [ "darling 0.10.2", "derive_builder_core", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -3038,7 +3040,7 @@ checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" dependencies = [ "darling 0.10.2", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -3049,7 +3051,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcdbcee2d9941369faba772587a565f4f534e42cb8d17e5295871de730163b2b" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -3061,7 +3063,7 @@ checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "rustc_version 0.4.0", "syn 1.0.109", ] @@ -3073,7 +3075,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "532b4c15dccee12c7044f1fcad956e98410860b22231e44a3b827464797ca7bf" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -3258,8 +3260,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -3309,9 +3311,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dprint-swc-ext" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4dda8a1b920e8be367aeaad035753d21bb69b3c50515afb41ab1eefbb886b5" +checksum = "3f115ea5b6f5d0d02a25a9364f41b8c4f857452c299309dcfd29a694724d0566" dependencies = [ "bumpalo", "num-bigint", @@ -3362,9 +3364,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clone" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "304e6508efa593091e97a9abbc10f90aa7ca635b6d2784feff3c89d41dd12272" +checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555" [[package]] name = "dynasm" @@ -3377,7 +3379,7 @@ dependencies = [ "lazy_static", "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -3541,7 +3543,7 @@ checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -3561,7 +3563,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -3582,8 +3584,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -3603,8 +3605,8 @@ checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af" dependencies = [ "darling 0.20.3", "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -3634,7 +3636,7 @@ checksum = "22deed3a8124cff5fa835713fa105621e43bbdc46690c3a6b68328a012d350d4" dependencies = [ "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "rustversion", "syn 1.0.109", "synstructure", @@ -3717,17 +3719,17 @@ checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" [[package]] name = "fastwebsockets" -version = "0.3.1" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1925eb5ee48fffa504a9edce24b3b4d43e2809d1cc713a1df2b13a46e661b3c6" +checksum = "9e6185b6dc9dddc4db0dedd2e213047e93bcbf7a0fb092abc4c4e4f3195efdb4" dependencies = [ "base64 0.21.2", - "cc", "hyper 0.14.27", "pin-project", "rand 0.8.5", "sha1 0.10.5", "simdutf8", + "thiserror", "tokio", "utf-8", ] @@ -3739,7 +3741,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" dependencies = [ "cfg-if 1.0.0", - "rustix 0.38.7", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -3803,9 +3805,23 @@ dependencies = [ [[package]] name = "fixt" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7639bc73b1f77c02a3346d265af7f76a66d4954686eb1112ea32955ca76a018a" +version = "0.2.0" +dependencies = [ + "holochain_serialized_bytes", + "lazy_static", + "parking_lot 0.10.2", + "paste", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "strum 0.18.0", + "strum_macros 0.18.0", +] + +[[package]] +name = "fixt" +version = "0.2.0" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "holochain_serialized_bytes", "lazy_static", @@ -3820,12 +3836,13 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", - "miniz_oxide 0.5.4", + "libz-ng-sys", + "miniz_oxide", ] [[package]] @@ -3895,14 +3912,14 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "from_variant" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d449976075322384507443937df2f1d5577afbf4282f12a5a66ef29fa3e6307" +checksum = "03ec5dc38ee19078d84a692b1c41181ff9f94331c76cee66ff0208c770b5e54f" dependencies = [ - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", "swc_macros_common", - "syn 1.0.109", + "syn 2.0.29", ] [[package]] @@ -4001,7 +4018,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3422d14de7903a52e9dbc10ae05a7e14445ec61890100e098754e120b2bd7b1e" dependencies = [ "derive_utils", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -4044,8 +4061,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -4335,9 +4352,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.3" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "gio" @@ -4387,7 +4404,7 @@ checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" dependencies = [ "proc-macro-hack", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -4422,7 +4439,7 @@ dependencies = [ "proc-macro-crate", "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -4553,7 +4570,7 @@ dependencies = [ "heck 0.4.1", "lazy_static", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "serde", "serde_json", "syn 1.0.109", @@ -4643,15 +4660,15 @@ dependencies = [ "proc-macro-crate", "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] [[package]] name = "h2" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -4733,9 +4750,9 @@ dependencies = [ [[package]] name = "hc_seed_bundle" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63bba5629a49d90007bb81a27a9ba8f9c597a82246d44e73126130617f11c52b" +checksum = "ded13e388a81713db6919cd750e6113acf2fe5afbaedf8aff79780ec4fc47425" dependencies = [ "futures", "one_err", @@ -4748,13 +4765,12 @@ dependencies = [ [[package]] name = "hdi" -version = "0.4.0-beta-dev.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" +version = "0.4.0-beta-dev.9" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "hdk_derive", - "holo_hash", - "holochain_integrity_types", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_integrity_types 0.3.0-beta-dev.9 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_wasmer_guest", "paste", "serde", @@ -4765,16 +4781,15 @@ dependencies = [ [[package]] name = "hdk" -version = "0.3.0-beta-dev.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" +version = "0.3.0-beta-dev.13" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "getrandom 0.2.10", "hdi", "hdk_derive", - "holo_hash", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_wasmer_guest", - "holochain_zome_types", + "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "paste", "serde", "serde_bytes", @@ -4785,17 +4800,16 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.3.0-beta-dev.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" +version = "0.3.0-beta-dev.9" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "darling 0.14.4", "heck 0.4.1", - "holochain_integrity_types", + "holochain_integrity_types 0.3.0-beta-dev.9 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "paste", "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -4941,18 +4955,38 @@ dependencies = [ [[package]] name = "holo_hash" version = "0.3.0-beta-dev.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" dependencies = [ "arbitrary", "base64 0.13.1", "blake2b_simd 0.5.11", "derive_more", - "fixt", + "fixt 0.2.0", "futures", "holochain_serialized_bytes", "holochain_wasmer_common", - "kitsune_p2p_dht_arc", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", + "must_future", + "rand 0.8.5", + "rusqlite", + "serde", + "serde_bytes", + "thiserror", +] + +[[package]] +name = "holo_hash" +version = "0.3.0-beta-dev.6" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +dependencies = [ + "arbitrary", + "base64 0.13.1", + "blake2b_simd 0.5.11", + "derive_more", + "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "futures", + "holochain_serialized_bytes", + "holochain_wasmer_common", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "must_future", "rand 0.8.5", "rusqlite", @@ -4963,9 +4997,8 @@ dependencies = [ [[package]] name = "holochain" -version = "0.3.0-beta-dev.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928bf36ef4dac278c6a1e6475d4f2534e2183fb680474f84b52f974288599a19" +version = "0.3.0-beta-dev.15" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "anyhow", "arbitrary", @@ -4981,40 +5014,40 @@ dependencies = [ "directories 2.0.2", "either", "fallible-iterator", - "fixt", + "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "futures", "get_if_addrs", "getrandom 0.2.10", "ghost_actor 0.3.0-alpha.6", "hdk", - "holo_hash", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_cascade", "holochain_conductor_api", - "holochain_keystore", + "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_metrics", "holochain_p2p", "holochain_serialized_bytes", - "holochain_sqlite", + "holochain_sqlite 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_state", "holochain_test_wasm_common", - "holochain_trace", - "holochain_types", - "holochain_util", + "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_wasm_test_utils", "holochain_wasmer_host", "holochain_websocket", - "holochain_zome_types", + "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "hostname", "human-panic", "itertools 0.10.5", "kitsune_p2p", - "kitsune_p2p_block", - "kitsune_p2p_bootstrap", - "kitsune_p2p_types", + "kitsune_p2p_block 0.3.0-beta-dev.5 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_bootstrap 0.2.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "lazy_static", "matches", "mockall", - "mr_bundle", + "mr_bundle 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "must_future", "nanoid 0.3.0", "num_cpus", @@ -5057,31 +5090,30 @@ dependencies = [ [[package]] name = "holochain_cascade" -version = "0.3.0-beta-dev.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0eb94a5a91371f9f08290721fd6102f3890a82320a52eafea65a99f761fd455" +version = "0.3.0-beta-dev.15" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "async-trait", "derive_more", "either", "fallible-iterator", - "fixt", + "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "futures", "ghost_actor 0.3.0-alpha.6", "hdk", "hdk_derive", - "holo_hash", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_p2p", "holochain_serialized_bytes", - "holochain_sqlite", + "holochain_sqlite 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_state", - "holochain_trace", - "holochain_types", - "holochain_zome_types", + "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "kitsune_p2p", "mockall", "serde", - "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.185", "thiserror", "tokio", "tracing", @@ -5089,23 +5121,56 @@ dependencies = [ ] [[package]] -name = "holochain_conductor_api" +name = "holochain_cli_bundle" version = "0.3.0-beta-dev.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5047efbe01088537346ad2a7e8f49b71edd00c0001c86ead313265bd9ab5e2eb" +dependencies = [ + "anyhow", + "clap 4.3.23", + "futures", + "holochain_serialized_bytes", + "holochain_types 0.3.0-beta-dev.13", + "holochain_util 0.2.0", + "holochain_wasmer_host", + "mr_bundle 0.2.0", + "serde", + "serde_bytes", + "serde_yaml 0.9.25", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "holochain_cli_run_local_services" +version = "0.3.0-beta-dev.7" +dependencies = [ + "clap 4.3.23", + "futures", + "holochain_trace 0.3.0-beta-dev.1", + "if-addrs 0.10.1", + "kitsune_p2p_bootstrap 0.2.0-beta-dev.7", + "tokio", + "tracing", + "tx5-signal-srv", +] + +[[package]] +name = "holochain_conductor_api" +version = "0.3.0-beta-dev.15" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "derive_more", "directories 2.0.2", - "holo_hash", - "holochain_keystore", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_p2p", "holochain_serialized_bytes", "holochain_state", - "holochain_types", - "holochain_zome_types", + "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "kitsune_p2p", "serde", - "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.185", "serde_yaml 0.9.25", "structopt", "thiserror", @@ -5115,16 +5180,31 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.3.0-beta-dev.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" +version = "0.3.0-beta-dev.9" dependencies = [ "arbitrary", "derive_builder", - "holo_hash", + "holo_hash 0.3.0-beta-dev.6", "holochain_serialized_bytes", - "kitsune_p2p_dht", - "kitsune_p2p_timestamp", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0", + "paste", + "serde", + "serde_bytes", + "subtle 2.4.1", + "subtle-encoding", + "tracing", +] + +[[package]] +name = "holochain_integrity_types" +version = "0.3.0-beta-dev.9" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +dependencies = [ + "arbitrary", + "derive_builder", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_serialized_bytes", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "paste", "serde", "serde_bytes", @@ -5135,16 +5215,38 @@ dependencies = [ [[package]] name = "holochain_keystore" -version = "0.3.0-beta-dev.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b27a587437df54b67e170fa42a73b5d3a1fd89a61fc14119f7218839e8cf74" +version = "0.3.0-beta-dev.11" dependencies = [ "base64 0.13.1", "futures", - "holo_hash", + "holo_hash 0.3.0-beta-dev.6", "holochain_serialized_bytes", - "holochain_zome_types", - "kitsune_p2p_types", + "holochain_zome_types 0.3.0-beta-dev.10", + "kitsune_p2p_types 0.3.0-beta-dev.7", + "lair_keystore", + "must_future", + "nanoid 0.4.0", + "one_err", + "parking_lot 0.11.2", + "serde", + "serde_bytes", + "sodoken", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "holochain_keystore" +version = "0.3.0-beta-dev.11" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +dependencies = [ + "base64 0.13.1", + "futures", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_serialized_bytes", + "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "lair_keystore", "must_future", "nanoid 0.4.0", @@ -5161,8 +5263,7 @@ dependencies = [ [[package]] name = "holochain_metrics" version = "0.3.0-beta-dev.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e921c4e67608880b56e002cbdf89f612e73508152032201073eac3298d86c498" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "influxive", "tracing", @@ -5171,24 +5272,23 @@ dependencies = [ [[package]] name = "holochain_p2p" -version = "0.3.0-beta-dev.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a827dcc331dac59012a34f925535d4a120da8d7c7043f60ef8130b75a12391" +version = "0.3.0-beta-dev.14" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "async-trait", "derive_more", - "fixt", + "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "futures", "ghost_actor 0.3.0-alpha.6", - "holo_hash", - "holochain_keystore", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_serialized_bytes", - "holochain_trace", - "holochain_types", - "holochain_util", - "holochain_zome_types", + "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "kitsune_p2p", - "kitsune_p2p_types", + "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "mockall", "rand 0.8.5", "serde", @@ -5221,15 +5321,13 @@ version = "0.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" dependencies = [ - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] [[package]] name = "holochain_sqlite" -version = "0.3.0-beta-dev.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372cddf1ea7a3249a1b6ad030b42b98490fed43c8e332637660621c316f3e0d2" +version = "0.3.0-beta-dev.13" dependencies = [ "anyhow", "async-trait", @@ -5238,15 +5336,15 @@ dependencies = [ "fallible-iterator", "futures", "getrandom 0.2.10", - "holo_hash", + "holo_hash 0.3.0-beta-dev.6", "holochain_serialized_bytes", - "holochain_util", - "holochain_zome_types", - "kitsune_p2p_bin_data", - "kitsune_p2p_dht", - "kitsune_p2p_dht_arc", - "kitsune_p2p_timestamp", - "kitsune_p2p_types", + "holochain_util 0.2.0", + "holochain_zome_types 0.3.0-beta-dev.10", + "kitsune_p2p_bin_data 0.3.0-beta-dev.4", + "kitsune_p2p_dht 0.3.0-beta-dev.4", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0", + "kitsune_p2p_types 0.3.0-beta-dev.7", "num_cpus", "once_cell", "parking_lot 0.10.2", @@ -5257,7 +5355,48 @@ dependencies = [ "rusqlite", "scheduled-thread-pool", "serde", - "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.185", + "serde_json", + "shrinkwraprs", + "sqlformat 0.1.8", + "tempfile", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "holochain_sqlite" +version = "0.3.0-beta-dev.13" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +dependencies = [ + "anyhow", + "async-trait", + "chashmap", + "derive_more", + "fallible-iterator", + "futures", + "getrandom 0.2.10", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_serialized_bytes", + "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_bin_data 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_dht 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "num_cpus", + "once_cell", + "parking_lot 0.10.2", + "pretty_assertions 0.7.2", + "r2d2", + "r2d2_sqlite_neonphog", + "rmp-serde 0.15.5", + "rusqlite", + "scheduled-thread-pool", + "serde", + "serde_derive 1.0.185", "serde_json", "shrinkwraprs", "sqlformat 0.1.8", @@ -5269,9 +5408,8 @@ dependencies = [ [[package]] name = "holochain_state" -version = "0.3.0-beta-dev.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be5e38028754e4ebb68c3ea5efe10e0b5f4bd98bd483db293f9eef067d54708d" +version = "0.3.0-beta-dev.14" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "async-recursion", "base64 0.13.1", @@ -5285,14 +5423,14 @@ dependencies = [ "fallible-iterator", "futures", "getrandom 0.2.10", - "holo_hash", - "holochain_keystore", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_p2p", "holochain_serialized_bytes", - "holochain_sqlite", - "holochain_types", - "holochain_util", - "holochain_zome_types", + "holochain_sqlite 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "kitsune_p2p", "mockall", "nanoid 0.3.0", @@ -5311,9 +5449,8 @@ dependencies = [ [[package]] name = "holochain_test_wasm_common" -version = "0.3.0-beta-dev.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9076608fbed56546c9d78c6d1d9f1f1ad0936bafb0f8fe712d936ec9d8f403d" +version = "0.3.0-beta-dev.13" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "hdk", "serde", @@ -5322,8 +5459,23 @@ dependencies = [ [[package]] name = "holochain_trace" version = "0.3.0-beta-dev.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79123f87eed68619077d1730d58745bb365f1073de732211149fd88a879a98de" +dependencies = [ + "chrono", + "derive_more", + "inferno", + "once_cell", + "serde_json", + "thiserror", + "tracing", + "tracing-core", + "tracing-serde", + "tracing-subscriber 0.3.17", +] + +[[package]] +name = "holochain_trace" +version = "0.3.0-beta-dev.1" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "chrono", "derive_more", @@ -5339,9 +5491,65 @@ dependencies = [ [[package]] name = "holochain_types" -version = "0.3.0-beta-dev.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b3aed264ef6950456a2b9545b6c90a15e29eefe3d133353945ec828acae953" +version = "0.3.0-beta-dev.13" +dependencies = [ + "anyhow", + "arbitrary", + "async-trait", + "automap", + "backtrace", + "base64 0.13.1", + "cfg-if 0.1.10", + "chrono", + "contrafact", + "derive_builder", + "derive_more", + "either", + "fixt 0.2.0", + "flate2", + "futures", + "getrandom 0.2.10", + "holo_hash 0.3.0-beta-dev.6", + "holochain_keystore 0.3.0-beta-dev.11", + "holochain_serialized_bytes", + "holochain_sqlite 0.3.0-beta-dev.13", + "holochain_trace 0.3.0-beta-dev.1", + "holochain_util 0.2.0", + "holochain_wasmer_host", + "holochain_zome_types 0.3.0-beta-dev.10", + "isotest", + "itertools 0.10.5", + "kitsune_p2p_dht 0.3.0-beta-dev.4", + "lazy_static", + "mockall", + "mr_bundle 0.2.0", + "must_future", + "nanoid 0.3.0", + "one_err", + "parking_lot 0.10.2", + "rand 0.8.5", + "regex", + "rusqlite", + "serde", + "serde_bytes", + "serde_derive 1.0.185", + "serde_json", + "serde_with 1.14.0", + "serde_yaml 0.9.25", + "shrinkwraprs", + "strum 0.18.0", + "strum_macros 0.18.0", + "tempfile", + "thiserror", + "tokio", + "tracing", + "wasmer-middlewares", +] + +[[package]] +name = "holochain_types" +version = "0.3.0-beta-dev.13" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "anyhow", "arbitrary", @@ -5355,24 +5563,24 @@ dependencies = [ "derive_builder", "derive_more", "either", - "fixt", + "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "flate2", "futures", "getrandom 0.2.10", - "holo_hash", - "holochain_keystore", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_serialized_bytes", - "holochain_sqlite", - "holochain_trace", - "holochain_util", + "holochain_sqlite 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "holochain_wasmer_host", - "holochain_zome_types", + "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "isotest", "itertools 0.10.5", - "kitsune_p2p_dht", + "kitsune_p2p_dht 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "lazy_static", "mockall", - "mr_bundle", + "mr_bundle 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "must_future", "nanoid 0.3.0", "one_err", @@ -5382,7 +5590,7 @@ dependencies = [ "rusqlite", "serde", "serde_bytes", - "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.185", "serde_json", "serde_with 1.14.0", "serde_yaml 0.9.25", @@ -5398,9 +5606,22 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5661bebd4f4610a8a8802cc7fb6c8000713eca872390df1496790f5324ac62" +version = "0.2.0" +dependencies = [ + "backtrace", + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", + "tokio", +] + +[[package]] +name = "holochain_util" +version = "0.2.0" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "backtrace", "cfg-if 0.1.10", @@ -5416,12 +5637,11 @@ dependencies = [ [[package]] name = "holochain_wasm_test_utils" -version = "0.3.0-beta-dev.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23f5a6399850fd4fd2989957565bc713bb3fa471940b49fcb603659cc029b9ba" +version = "0.3.0-beta-dev.13" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ - "holochain_types", - "holochain_util", + "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "strum 0.18.0", "strum_macros 0.18.0", "toml 0.5.11", @@ -5477,8 +5697,7 @@ dependencies = [ [[package]] name = "holochain_websocket" version = "0.3.0-beta-dev.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be564666d2cc78a7cdbca222eb7b2c5d21692c63d82ae3011069d162f2a385d" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "futures", "ghost_actor 0.4.0-alpha.5", @@ -5501,22 +5720,54 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.3.0-beta-dev.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" +version = "0.3.0-beta-dev.10" dependencies = [ "arbitrary", "contrafact", "derive_builder", - "fixt", - "holo_hash", - "holochain_integrity_types", + "fixt 0.2.0", + "holo_hash 0.3.0-beta-dev.6", + "holochain_integrity_types 0.3.0-beta-dev.9", "holochain_serialized_bytes", "holochain_wasmer_common", - "kitsune_p2p_bin_data", - "kitsune_p2p_block", - "kitsune_p2p_dht", - "kitsune_p2p_timestamp", + "kitsune_p2p_bin_data 0.3.0-beta-dev.4", + "kitsune_p2p_block 0.3.0-beta-dev.5", + "kitsune_p2p_dht 0.3.0-beta-dev.4", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0", + "nanoid 0.3.0", + "num_enum", + "once_cell", + "paste", + "rand 0.8.5", + "rusqlite", + "serde", + "serde_bytes", + "serde_yaml 0.9.25", + "shrinkwraprs", + "strum 0.18.0", + "subtle 2.4.1", + "subtle-encoding", + "thiserror", + "tracing", +] + +[[package]] +name = "holochain_zome_types" +version = "0.3.0-beta-dev.10" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +dependencies = [ + "arbitrary", + "contrafact", + "derive_builder", + "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_integrity_types 0.3.0-beta-dev.9 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_serialized_bytes", + "holochain_wasmer_common", + "kitsune_p2p_bin_data 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_block 0.3.0-beta-dev.5 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_dht 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "nanoid 0.3.0", "num_enum", "once_cell", @@ -5564,7 +5815,7 @@ dependencies = [ "mac", "markup5ever 0.10.1", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -5578,7 +5829,7 @@ dependencies = [ "mac", "markup5ever 0.11.0", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -5641,9 +5892,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "human-panic" @@ -5656,7 +5907,7 @@ dependencies = [ "backtrace", "os_info", "serde", - "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.185", "toml 0.7.6", "uuid 1.4.1", ] @@ -5943,17 +6194,17 @@ dependencies = [ [[package]] name = "inferno" -version = "0.11.15" +version = "0.11.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fb7c1b80a1dfa604bb4a649a5c5aeef3d913f7c520cb42b40e534e8a61bcdfc" +checksum = "73c0fefcb6d409a6587c07515951495d482006f89a21daa0f2f783aa4fd5e027" dependencies = [ "ahash 0.8.3", - "clap 4.3.21", + "clap 4.3.23", "crossbeam-channel", "crossbeam-utils", - "dashmap 5.5.0", + "dashmap 5.5.1", "env_logger", - "indexmap 1.9.3", + "indexmap 2.0.0", "is-terminal", "itoa 1.0.9", "log", @@ -6159,15 +6410,15 @@ checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "is-macro" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7d079e129b77477a49c5c4f1cfe9ce6c2c909ef52520693e8e811a714c7b20" +checksum = "f4467ed1321b310c2625c5aa6c1b1ffc5de4d9e42668cf697a08fb033ee8265e" dependencies = [ "Inflector", - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 1.0.109", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -6177,7 +6428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi 0.3.2", - "rustix 0.38.7", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -6348,7 +6599,7 @@ source = "git+https://github.com/graphql-rust/juniper?branch=graphql-transport-w dependencies = [ "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", "url 2.4.0", ] @@ -6413,9 +6664,8 @@ dependencies = [ [[package]] name = "kitsune_p2p" -version = "0.3.0-beta-dev.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5815cea51fe754223ec08f02614152d10bde4a4d4b40a3bd4ce05c98ff0469f7" +version = "0.3.0-beta-dev.12" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "arbitrary", "arrayref", @@ -6424,19 +6674,19 @@ dependencies = [ "bloomfilter", "bytes", "derive_more", - "fixt", + "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "futures", "ghost_actor 0.3.0-alpha.6", "governor", - "holochain_trace", + "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "itertools 0.10.5", - "kitsune_p2p_block", + "kitsune_p2p_block 0.3.0-beta-dev.5 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "kitsune_p2p_fetch", "kitsune_p2p_mdns", "kitsune_p2p_proxy", - "kitsune_p2p_timestamp", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "kitsune_p2p_transport_quic", - "kitsune_p2p_types", + "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "maplit", "mockall", "must_future", @@ -6462,13 +6712,24 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" version = "0.3.0-beta-dev.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +dependencies = [ + "base64 0.13.1", + "derive_more", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", + "serde", + "serde_bytes", + "shrinkwraprs", +] + +[[package]] +name = "kitsune_p2p_bin_data" +version = "0.3.0-beta-dev.4" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "arbitrary", "base64 0.13.1", "derive_more", - "kitsune_p2p_dht_arc", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "serde", "serde_bytes", "shrinkwraprs", @@ -6477,24 +6738,31 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" version = "0.3.0-beta-dev.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" dependencies = [ - "kitsune_p2p_bin_data", - "kitsune_p2p_timestamp", + "kitsune_p2p_bin_data 0.3.0-beta-dev.4", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0", + "serde", + "serde_bytes", +] + +[[package]] +name = "kitsune_p2p_block" +version = "0.3.0-beta-dev.5" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +dependencies = [ + "kitsune_p2p_bin_data 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "serde", "serde_bytes", ] [[package]] name = "kitsune_p2p_bootstrap" -version = "0.2.0-beta-dev.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5186bf95f801c07fa7cfed4f568eccfb0a4d297d2f249c27ed132947570b337a" +version = "0.2.0-beta-dev.7" dependencies = [ "clap 3.2.25", "futures", - "kitsune_p2p_types", + "kitsune_p2p_types 0.3.0-beta-dev.7", "once_cell", "parking_lot 0.11.2", "rand 0.8.5", @@ -6506,11 +6774,51 @@ dependencies = [ "warp", ] +[[package]] +name = "kitsune_p2p_bootstrap" +version = "0.2.0-beta-dev.7" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +dependencies = [ + "clap 3.2.25", + "futures", + "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "once_cell", + "parking_lot 0.11.2", + "rand 0.8.5", + "rmp-serde 0.15.5", + "serde", + "serde_bytes", + "serde_json", + "tokio", + "warp", +] + +[[package]] +name = "kitsune_p2p_dht" +version = "0.3.0-beta-dev.4" +dependencies = [ + "colored", + "derivative", + "derive_more", + "futures", + "gcollections", + "intervallum", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0", + "must_future", + "num-traits", + "once_cell", + "rand 0.8.5", + "serde", + "statrs", + "thiserror", + "tracing", +] + [[package]] name = "kitsune_p2p_dht" version = "0.3.0-beta-dev.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "colored", "derivative", @@ -6518,8 +6826,8 @@ dependencies = [ "futures", "gcollections", "intervallum", - "kitsune_p2p_dht_arc", - "kitsune_p2p_timestamp", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "must_future", "num-traits", "once_cell", @@ -6533,8 +6841,19 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" version = "0.3.0-beta-dev.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" +dependencies = [ + "derive_more", + "gcollections", + "intervallum", + "num-traits", + "rusqlite", + "serde", +] + +[[package]] +name = "kitsune_p2p_dht_arc" +version = "0.3.0-beta-dev.3" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "derive_more", "gcollections", @@ -6546,30 +6865,27 @@ dependencies = [ [[package]] name = "kitsune_p2p_fetch" -version = "0.3.0-beta-dev.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190ba3b08e5362eaeb44fa971f603e82ccd5de6b26d345a4e2d10b51d769044d" +version = "0.3.0-beta-dev.8" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "derive_more", "futures", "human-repr", - "kitsune_p2p_timestamp", - "kitsune_p2p_types", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "linked-hash-map", "must_future", "num-traits", "serde", "serde_bytes", - "thiserror", "tokio", "tracing", ] [[package]] name = "kitsune_p2p_mdns" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b714dbb2199f2f7d2b22d0bc84982b92f3db3922b70538c5f750e6dbaa82a40f" +version = "0.2.0" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "async-stream", "base64 0.13.1", @@ -6584,17 +6900,16 @@ dependencies = [ [[package]] name = "kitsune_p2p_proxy" -version = "0.3.0-beta-dev.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e56cd48058bd8b0bf4ce59bf4c5e6a4336473982613dfcd6eb275c604c2879b" +version = "0.3.0-beta-dev.7" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "base64 0.13.1", "blake2b_simd 0.5.11", "derive_more", "futures", - "holochain_trace", + "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "kitsune_p2p_transport_quic", - "kitsune_p2p_types", + "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "nanoid 0.3.0", "parking_lot 0.11.2", "rmp-serde 0.15.5", @@ -6610,8 +6925,18 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" version = "0.3.0-beta-dev.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" +dependencies = [ + "arbitrary", + "chrono", + "derive_more", + "rusqlite", + "serde", +] + +[[package]] +name = "kitsune_p2p_timestamp" +version = "0.3.0-beta-dev.0" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "arbitrary", "chrono", @@ -6622,14 +6947,13 @@ dependencies = [ [[package]] name = "kitsune_p2p_transport_quic" -version = "0.3.0-beta-dev.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a7bc8e5557ac54ff88bef3395e22cdb85d3db04f7f8e4a1ba43b065357f338c" +version = "0.3.0-beta-dev.7" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "blake2b_simd 1.0.1", "futures", "if-addrs 0.8.0", - "kitsune_p2p_types", + "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "nanoid 0.4.0", "once_cell", "quinn", @@ -6642,21 +6966,54 @@ dependencies = [ [[package]] name = "kitsune_p2p_types" -version = "0.3.0-beta-dev.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b463767bf87550e3cb222a53f982014279ed286ed83d9ac5c21b608db5bea6" +version = "0.3.0-beta-dev.7" +dependencies = [ + "base64 0.13.1", + "derive_more", + "futures", + "ghost_actor 0.3.0-alpha.6", + "holochain_trace 0.3.0-beta-dev.1", + "kitsune_p2p_bin_data 0.3.0-beta-dev.4", + "kitsune_p2p_block 0.3.0-beta-dev.5", + "kitsune_p2p_dht 0.3.0-beta-dev.4", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0", + "lair_keystore_api", + "lru 0.8.1", + "nanoid 0.3.0", + "once_cell", + "parking_lot 0.11.2", + "paste", + "rmp-serde 0.15.5", + "rustls 0.20.8", + "serde", + "serde_bytes", + "serde_json", + "shrinkwraprs", + "sysinfo 0.27.8", + "thiserror", + "tokio", + "url 2.4.0", + "url2", + "webpki 0.22.0", +] + +[[package]] +name = "kitsune_p2p_types" +version = "0.3.0-beta-dev.7" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "arbitrary", "base64 0.13.1", "derive_more", "futures", "ghost_actor 0.3.0-alpha.6", - "holochain_trace", - "kitsune_p2p_bin_data", - "kitsune_p2p_block", - "kitsune_p2p_dht", - "kitsune_p2p_dht_arc", - "kitsune_p2p_timestamp", + "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_bin_data 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_block 0.3.0-beta-dev.5 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_dht 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "lair_keystore_api", "lru 0.8.1", "mockall", @@ -6721,9 +7078,9 @@ dependencies = [ [[package]] name = "lair_keystore" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d453c328fa04779277f6f4b8e4a71f2bd20e0f0566cb837e6f800bc58777e4a8" +checksum = "843c7dbcbc8d75eef0b30397a7eb0d04549aabeff4ea69ebd272aea991555746" dependencies = [ "lair_keystore_api", "pretty_assertions 1.4.0", @@ -6737,9 +7094,9 @@ dependencies = [ [[package]] name = "lair_keystore_api" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b379baacc103ee1939976fb8f32e6b8ae887a245fbde78bf1ef95e95b3035216" +checksum = "5829f25d0eab6309ae4307aa645f123a64e568a41ec17c358dcbd65dec207e10" dependencies = [ "base64 0.13.1", "dunce", @@ -6752,6 +7109,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml 0.9.25", + "time 0.3.23", "tokio", "toml 0.5.11", "toml 0.7.6", @@ -6779,7 +7137,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8edfc11b8f56ce85e207e62ea21557cfa09bb24a8f6b04ae181b086ff8611c22" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "regex", "syn 1.0.109", ] @@ -6806,16 +7164,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f404a90a744e32e8be729034fc33b90cf2a56418fbf594d69aa3c0214ad414e5" dependencies = [ "cfg-if 1.0.0", - "lexical-core 0.7.6", -] - -[[package]] -name = "lexical" -version = "6.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" -dependencies = [ - "lexical-core 0.8.5", + "lexical-core", ] [[package]] @@ -6831,70 +7180,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "lexical-core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" -dependencies = [ - "lexical-parse-float", - "lexical-parse-integer", - "lexical-util", - "lexical-write-float", - "lexical-write-integer", -] - -[[package]] -name = "lexical-parse-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer", - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-parse-integer" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-util" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ - "static_assertions", -] - -[[package]] -name = "lexical-write-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" -dependencies = [ - "lexical-util", - "lexical-write-integer", - "static_assertions", -] - -[[package]] -name = "lexical-write-integer" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" -dependencies = [ - "lexical-util", - "static_assertions", -] - [[package]] name = "libappindicator" version = "0.7.1" @@ -7107,6 +7392,16 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "libz-ng-sys" +version = "1.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dd9f43e75536a46ee0f92b758f6b63846e594e86638c61a9251338a65baea63" +dependencies = [ + "cmake", + "libc", +] + [[package]] name = "libz-sys" version = "1.1.12" @@ -7215,7 +7510,7 @@ dependencies = [ "serde_json", "serde_yaml 0.8.26", "thiserror", - "thread-id 4.1.0", + "thread-id 4.2.0", "typemap-ors", "winapi 0.3.9", ] @@ -7252,7 +7547,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" dependencies = [ - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -7291,15 +7586,15 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "mac-notification-sys" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc434554ad0e640d772f7f262aa28e61d485212533d3673abe5f3d1729bd42a" +checksum = "9402858e87f85f88bf518bd2e68450640df1c99b1ddb3ea28c4d5d823bb54cdd" dependencies = [ "cc", "dirs-next", "objc-foundation", "objc_id", - "time 0.3.25", + "time 0.3.23", ] [[package]] @@ -7513,15 +7808,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881" -[[package]] -name = "miniz_oxide" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.7.1" @@ -7589,7 +7875,7 @@ checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" dependencies = [ "cfg-if 1.0.0", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -7610,7 +7896,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -7628,9 +7914,28 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "mr_bundle" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36235a1fedd3db089ebc880bfdee39574363ceabe2da9a9720d116cc5269d5" +version = "0.2.0" +dependencies = [ + "arbitrary", + "bytes", + "derive_more", + "either", + "flate2", + "futures", + "holochain_util 0.2.0", + "reqwest", + "rmp-serde 0.15.5", + "serde", + "serde_bytes", + "serde_derive 1.0.185", + "serde_yaml 0.9.25", + "thiserror", +] + +[[package]] +name = "mr_bundle" +version = "0.2.0" +source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" dependencies = [ "arbitrary", "bytes", @@ -7638,12 +7943,12 @@ dependencies = [ "either", "flate2", "futures", - "holochain_util", + "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", "reqwest", "rmp-serde 0.15.5", "serde", "serde_bytes", - "serde_derive 1.0.183 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.185", "serde_yaml 0.9.25", "thiserror", ] @@ -7703,7 +8008,7 @@ dependencies = [ "proc-macro-crate", "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", "synstructure", ] @@ -7752,7 +8057,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -8027,9 +8332,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg 1.1.0", "num-integer", @@ -8058,9 +8363,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -8170,7 +8475,7 @@ checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -8227,9 +8532,9 @@ dependencies = [ [[package]] name = "object" -version = "0.31.1" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe" dependencies = [ "memchr", ] @@ -8347,8 +8652,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -8440,7 +8745,7 @@ dependencies = [ "Inflector", "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -8661,7 +8966,7 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec 1.11.0", - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -8868,7 +9173,7 @@ dependencies = [ "phf_shared 0.8.0", "proc-macro-hack", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -8882,7 +9187,7 @@ dependencies = [ "phf_shared 0.9.0", "proc-macro-hack", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -8896,7 +9201,7 @@ dependencies = [ "phf_shared 0.10.0", "proc-macro-hack", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -8906,7 +9211,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" dependencies = [ - "siphasher", + "siphasher 0.3.11", ] [[package]] @@ -8915,7 +9220,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9" dependencies = [ - "siphasher", + "siphasher 0.3.11", ] [[package]] @@ -8924,7 +9229,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "siphasher", + "siphasher 0.3.11", ] [[package]] @@ -8943,15 +9248,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] name = "pin-project-lite" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c516611246607d0c04186886dbb3a754368ef82c79e9827a802c6d836dd111c" +checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" [[package]] name = "pin-utils" @@ -9014,18 +9319,7 @@ dependencies = [ "line-wrap", "quick-xml 0.29.0", "serde", - "time 0.3.25", -] - -[[package]] -name = "pmutil" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" -dependencies = [ - "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 1.0.109", + "time 0.3.23", ] [[package]] @@ -9035,21 +9329,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] name = "png" -version = "0.17.9" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" dependencies = [ "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", - "miniz_oxide 0.7.1", + "miniz_oxide", ] [[package]] @@ -9204,7 +9498,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", "version_check", ] @@ -9216,7 +9510,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "version_check", ] @@ -9290,7 +9584,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -9401,9 +9695,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2 1.0.66", ] @@ -9706,7 +10000,7 @@ checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring", - "time 0.3.25", + "time 0.3.23", "yasna", ] @@ -9718,7 +10012,7 @@ checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", "ring", - "time 0.3.25", + "time 0.3.23", "yasna", "zeroize", ] @@ -9864,11 +10158,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.18" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +checksum = "20b9b67e2ca7dd9e9f9285b759de30ff538aab981abaaf7bc9bd90b84a0126c3" dependencies = [ - "async-compression 0.4.1", + "async-compression", "base64 0.21.2", "bytes", "encoding_rs", @@ -9904,8 +10198,8 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.22.6", - "winreg 0.10.1", + "webpki-roots 0.25.2", + "winreg 0.50.0", ] [[package]] @@ -10031,7 +10325,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2e06b915b5c230a17d7a736d1e2e63ee753c256a8614ef3f5147b13a4f5541d" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -10076,9 +10370,9 @@ dependencies = [ [[package]] name = "rmpv" -version = "1.0.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e0e0214a4a2b444ecce41a4025792fc31f77c7bb89c46d253953ea8c65701ec" +checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754" dependencies = [ "num-traits", "rmp", @@ -10153,7 +10447,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "fallible-iterator", "fallible-streaming-iterator", "hashlink", @@ -10169,7 +10463,7 @@ dependencies = [ "base64 0.21.2", "chrono", "cid", - "clap 4.3.21", + "clap 4.3.23", "crypto_box", "deno_core", "deno_runtime", @@ -10179,6 +10473,9 @@ dependencies = [ "futures", "hex", "holochain", + "holochain_cli_bundle", + "holochain_cli_run_local_services", + "holochain_types 0.3.0-beta-dev.13", "jsonwebtoken", "juniper", "juniper_graphql_transport_ws", @@ -10261,11 +10558,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.7" +version = "0.38.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172891ebdceb05aa0005f533a6cbfca599ddd7d966f6f5d4d9b2e70478e70399" +checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "errno 0.3.2", "libc", "linux-raw-sys 0.4.5", @@ -10292,7 +10589,7 @@ checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" dependencies = [ "log", "ring", - "rustls-webpki 0.101.3", + "rustls-webpki 0.101.4", "sct", ] @@ -10328,9 +10625,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.100.1" +version = "0.100.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +checksum = "e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab" dependencies = [ "ring", "untrusted", @@ -10338,9 +10635,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.3" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261e9e0888cba427c3316e6322805653c9425240b6fd96cee7cb671ab70ab8d0" +checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" dependencies = [ "ring", "untrusted", @@ -10381,7 +10678,7 @@ version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "cfg-if 1.0.0", "clipboard-win", "fd-lock", @@ -10461,7 +10758,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scryer-prolog" version = "0.9.1" -source = "git+https://github.com/coasys/scryer-prolog?branch=ad4m-compatible#1bf263815b74ff9750eeefca4ada42e2ca43af95" +source = "git+https://github.com/coasys/scryer-prolog?branch=ad4m-compatible#fb470f276756d3974894a08b1a672de8cd65ec27" dependencies = [ "base64 0.12.3", "bit-set", @@ -10486,7 +10783,7 @@ dependencies = [ "hyper-util", "indexmap 1.9.3", "lazy_static", - "lexical 5.2.2", + "lexical", "libc", "libffi 3.2.0 (git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link)", "libloading 0.7.4", @@ -10495,7 +10792,7 @@ dependencies = [ "ordered-float", "phf 0.9.0", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "rand 0.8.5", "ref_thread_local", "regex", @@ -10702,7 +10999,7 @@ name = "serde" version = "1.0.183" source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" dependencies = [ - "serde_derive 1.0.183 (git+https://github.com/fayeed/serde.git?branch=ad4m-compatible)", + "serde_derive 1.0.183", ] [[package]] @@ -10736,29 +11033,29 @@ dependencies = [ [[package]] name = "serde_derive" version = "1.0.183" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" +source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] name = "serde_derive" -version = "1.0.183" -source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" +version = "1.0.185" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] name = "serde_json" -version = "1.0.104" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" +checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" dependencies = [ "indexmap 2.0.0", "itoa 1.0.9", @@ -10773,8 +11070,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -10800,9 +11097,9 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.110.0" +version = "0.113.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bafaee0eecbef6c47ad3e7e0a764e22eb35a229ff7d06b7801fcbeaa5364b8" +checksum = "3fa7b3ecd650d790ff8781402d0704d35a2f51c3bec87fe92d43eea6d371f05d" dependencies = [ "bytes", "derive_more", @@ -10826,9 +11123,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1402f54f9a3b9e2efe71c1cea24e648acce55887983553eeb858cf3115acfd49" +checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" dependencies = [ "base64 0.21.2", "chrono", @@ -10837,8 +11134,8 @@ dependencies = [ "indexmap 2.0.0", "serde", "serde_json", - "serde_with_macros 3.2.0", - "time 0.3.25", + "serde_with_macros 3.3.0", + "time 0.3.23", ] [[package]] @@ -10849,20 +11146,20 @@ checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ "darling 0.13.4", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] [[package]] name = "serde_with_macros" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9197f1ad0e3c173a0222d3c4404fb04c3afe87e962bcb327af73e8301fa203c7" +checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c" dependencies = [ "darling 0.20.3", "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -10908,7 +11205,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -11047,7 +11344,7 @@ dependencies = [ "bitflags 1.3.2", "itertools 0.8.2", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -11135,23 +11432,29 @@ dependencies = [ "num-bigint", "num-traits", "thiserror", - "time 0.3.25", + "time 0.3.23", ] [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe" dependencies = [ "serde", ] [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg 1.1.0", ] @@ -11258,9 +11561,9 @@ dependencies = [ [[package]] name = "sourcemap" -version = "6.4.0" +version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9221a6bba3e9cfa7decfe64edf5233311e1bf837ea3234df6e7f35836e1093d" +checksum = "e4cbf65ca7dc576cf50e21f8d0712d96d4fcfd797389744b7b222a85cdf5bd90" dependencies = [ "data-encoding", "debugid", @@ -11422,20 +11725,20 @@ dependencies = [ "phf_generator 0.10.0", "phf_shared 0.10.0", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", ] [[package]] name = "string_enum" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0090512bdfee4b56d82480d66c0fd8a6f53f0fe0f97e075e949b252acdd482e0" +checksum = "8fa4d4f81d7c05b9161f8de839975d3326328b8ba2831164b465524cc2f55252" dependencies = [ - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "swc_macros_common", - "syn 1.0.109", + "syn 2.0.29", ] [[package]] @@ -11476,7 +11779,7 @@ dependencies = [ "heck 0.3.3", "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -11509,7 +11812,7 @@ checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" dependencies = [ "heck 0.3.3", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -11521,7 +11824,7 @@ checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" dependencies = [ "heck 0.3.3", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "rustversion", "syn 1.0.109", ] @@ -11534,7 +11837,7 @@ checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "rustversion", "syn 1.0.109", ] @@ -11547,9 +11850,9 @@ checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "rustversion", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -11585,9 +11888,9 @@ dependencies = [ [[package]] name = "swc_atoms" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d0307dc4bfd107d49c7528350c372758cfca94fb503629b9a056e6a1572860" +checksum = "b8066e17abb484602da673e2d35138ab32ce53f26368d9c92113510e1659220b" dependencies = [ "once_cell", "rustc-hash", @@ -11599,11 +11902,10 @@ dependencies = [ [[package]] name = "swc_common" -version = "0.31.12" +version = "0.31.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19c774005489d2907fb67909cf42af926e72edee1366512777c605ba2ef19c94" +checksum = "de5823ef063f116ad281cde9700f5be6dfb182e543ce3f62c42cee1c03ffbc6b" dependencies = [ - "ahash 0.7.6", "ast_node", "better_scoped_tls", "cfg-if 1.0.0", @@ -11614,7 +11916,7 @@ dependencies = [ "once_cell", "rustc-hash", "serde", - "siphasher", + "siphasher 0.3.11", "sourcemap", "string_cache", "swc_atoms", @@ -11627,9 +11929,9 @@ dependencies = [ [[package]] name = "swc_config" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89c8fc2c12bb1634c7c32fc3c9b6b963ad8f034cc62c4ecddcf215dc4f6f959d" +checksum = "9ba1c7a40d38f9dd4e9a046975d3faf95af42937b34b2b963be4d8f01239584b" dependencies = [ "indexmap 1.9.3", "serde", @@ -11639,24 +11941,24 @@ dependencies = [ [[package]] name = "swc_config_macro" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dadb9998d4f5fc36ef558ed5a092579441579ee8c6fcce84a5228cca9df4004" +checksum = "e5b5aaca9a0082be4515f0fbbecc191bf5829cd25b5b9c0a2810f6a2bb0d6829" dependencies = [ - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "swc_macros_common", - "syn 1.0.109", + "syn 2.0.29", ] [[package]] name = "swc_ecma_ast" -version = "0.104.5" +version = "0.107.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5cf9dd351d0c285dcd36535267953a18995d4dda0cbe34ac9d1df61aa415b26" +checksum = "b7191c8c57af059b75a2aadc927a2608c3962d19e4d09ce8f9c3f03739ddf833" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "is-macro", "num-bigint", "scoped-tls", @@ -11669,9 +11971,9 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.139.17" +version = "0.142.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66d1ea16bb9b7ea6f87f17325742ff256fcbd65b188af57c2bf415fe4afc945" +checksum = "1e4e3ee8a1f0bfaf630febbe0f6a03f2c28d66d373a9bbdb3f500f6bfb536b43" dependencies = [ "memchr", "num-bigint", @@ -11688,24 +11990,23 @@ dependencies = [ [[package]] name = "swc_ecma_codegen_macros" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ee0caee1018808d94ecd09490cb7affd3d504b19aa11c49238f5fc4b54901" +checksum = "dcdff076dccca6cc6a0e0b2a2c8acfb066014382bc6df98ec99e755484814384" dependencies = [ - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "swc_macros_common", - "syn 1.0.109", + "syn 2.0.29", ] [[package]] name = "swc_ecma_loader" -version = "0.43.14" +version = "0.43.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe45f1e5dcc1b005544ff78253b787dea5dfd5e2f712b133964cdc3545c954a4" +checksum = "82f47bb1ab686f603da93a8b6e559d69b42369ab47d5dee6bdda38ae5902dc2a" dependencies = [ - "ahash 0.7.6", "anyhow", "pathdiff", "serde", @@ -11715,13 +12016,13 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.134.12" +version = "0.137.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a3fcfe3d83dd445cbd9321882e47b467594433d9a21c4d6c37a27f534bb89e" +checksum = "29c0d554865a63bfa58cf1c433fa91d7d4adf40030fa8e4530e8065d0578166a" dependencies = [ "either", - "lexical 6.1.1", "num-bigint", + "num-traits", "serde", "smallvec 1.11.0", "smartstring", @@ -11735,12 +12036,12 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.127.18" +version = "0.130.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9c33ec5369178f3a0580ab86cfe89ffb9c3fbd122aed379cfb71d469d9d61c1" +checksum = "d8d8ca5dd849cea79e6a9792d725f4082ad3ade7a9541fba960c42d55ae778f2" dependencies = [ "better_scoped_tls", - "bitflags 2.3.3", + "bitflags 2.4.0", "indexmap 1.9.3", "once_cell", "phf 0.10.1", @@ -11758,9 +12059,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "0.116.18" +version = "0.119.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e3b0d5f362f0da97be1f1b06d7b0d8667ea70b4adeabff0dcaecb6259c09525" +checksum = "a09d0e350963d4fb14bf9dc31c85eb28e58a88614e779c75f49296710f9cb381" dependencies = [ "swc_atoms", "swc_common", @@ -11772,22 +12073,22 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_macros" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "984d5ac69b681fc5438f9abf82b0fda34fe04e119bc75f8213b7e01128c7c9a2" +checksum = "f59c4b6ed5d78d3ad9fc7c6f8ab4f85bba99573d31d9a2c0a712077a6b45efd2" dependencies = [ - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "swc_macros_common", - "syn 1.0.109", + "syn 2.0.29", ] [[package]] name = "swc_ecma_transforms_proposal" -version = "0.161.22" +version = "0.164.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cdce42d44ef775bc29f5ada3678a80ff72fa17a0ef705e14f63cfd0e0155e0e" +checksum = "62d3a04de35f6c79d8f343822138e7313934d3530cc4e4f891a079f7e2415c1a" dependencies = [ "either", "rustc-hash", @@ -11805,13 +12106,12 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "0.173.20" +version = "0.176.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb9481ad4e2acba34c6fbb6d4ccc64efe9f1821675e883dcfa732d7220f4b1e" +checksum = "607017e6fbfe3229b69ffce7b47383eb9b62025ea93a50cd1cc1788d2a29a4ca" dependencies = [ - "ahash 0.7.6", "base64 0.13.1", - "dashmap 5.5.0", + "dashmap 5.5.1", "indexmap 1.9.3", "once_cell", "serde", @@ -11830,9 +12130,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "0.177.23" +version = "0.180.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe2eea4f5b8a25c93cdaa29fb1ce4108893da88a11e61e04b7f5295b5468829" +checksum = "ea349e787a62af0dcf1b8b52d507045345871571c18cb78a2f892912f7d6b753" dependencies = [ "serde", "swc_atoms", @@ -11846,9 +12146,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.117.13" +version = "0.120.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad791bbfdafcebd878584021e050964c8ab68aba7eeac9d0ee4afba4c284a629" +checksum = "2cb60e20e1eb9e9f7c88d99ac8659fd0561d70abd27853f550fbd907a448c878" dependencies = [ "indexmap 1.9.3", "num_cpus", @@ -11864,9 +12164,9 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.90.5" +version = "0.93.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce3ac941ae1d6c7e683aa375fc71fbf58df58b441f614d757fbb10554936ca2" +checksum = "bb23a48abd9f5731b6275dbf4ea89f6e03dc60b7c8e3e1e383bb4a6c39fd7e25" dependencies = [ "num-bigint", "swc_atoms", @@ -11878,33 +12178,33 @@ dependencies = [ [[package]] name = "swc_eq_ignore_macros" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c20468634668c2bbab581947bb8c75c97158d5a6959f4ba33df20983b20b4f6" +checksum = "05a95d367e228d52484c53336991fdcf47b6b553ef835d9159db4ba40efb0ee8" dependencies = [ - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 1.0.109", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] name = "swc_macros_common" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e582c3e3c2269238524923781df5be49e011dbe29cf7683a2215d600a562ea6" +checksum = "7a273205ccb09b51fabe88c49f3b34c5a4631c4c00a16ae20e03111d6a42e832" dependencies = [ - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 1.0.109", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] name = "swc_visit" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f412dd4fbc58f509a04e64f5c8038333142fc139e8232f01b883db0094b3b51" +checksum = "e87c337fbb2d191bf371173dea6a957f01899adb8f189c6c31b122a6cfc98fc3" dependencies = [ "either", "swc_visit_macros", @@ -11912,16 +12212,16 @@ dependencies = [ [[package]] name = "swc_visit_macros" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfc226380ba54a5feed2c12f3ccd33f1ae8e959160290e5d2d9b4e918b6472a" +checksum = "0f322730fb82f3930a450ac24de8c98523af7d34ab8cb2f46bcb405839891a99" dependencies = [ "Inflector", - "pmutil 0.5.3", + "pmutil", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "swc_macros_common", - "syn 1.0.109", + "syn 2.0.29", ] [[package]] @@ -11942,18 +12242,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.28" +version = "2.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "unicode-ident", ] @@ -11964,7 +12264,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", "unicode-xid 0.2.4", ] @@ -12035,9 +12335,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.29.7" +version = "0.29.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165d6d8539689e3d3bc8b98ac59541e1f21c7de7c85d60dc80e43ae0ed2113db" +checksum = "d10ed79c22663a35a255d289a7fdcb43559fc77ff15df5ce6c341809e7867528" dependencies = [ "cfg-if 1.0.0", "core-foundation-sys", @@ -12125,12 +12425,12 @@ dependencies = [ [[package]] name = "tao-macros" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b27a4bcc5eb524658234589bdffc7e7bfb996dbae6ce9393bfd39cb4159b445" +checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -12254,7 +12554,7 @@ dependencies = [ "plist", "png", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "regex", "semver 1.0.18", "serde", @@ -12262,7 +12562,7 @@ dependencies = [ "sha2 0.10.7", "tauri-utils", "thiserror", - "time 0.3.25", + "time 0.3.23", "uuid 1.4.1", "walkdir", ] @@ -12275,7 +12575,7 @@ checksum = "8eb12a2454e747896929338d93b0642144bb51e0dddbb36e579035731f0d76b7" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", "tauri-codegen", "tauri-utils", @@ -12352,11 +12652,11 @@ dependencies = [ "memchr", "phf 0.10.1", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "semver 1.0.18", "serde", "serde_json", - "serde_with 3.2.0", + "serde_with 3.3.0", "thiserror", "url 2.4.0", "walkdir", @@ -12385,14 +12685,14 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.7.1" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if 1.0.0", "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.38.7", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -12452,7 +12752,7 @@ checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" dependencies = [ "cargo_metadata", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "serde", "strum_macros 0.24.3", ] @@ -12467,7 +12767,7 @@ dependencies = [ "if_chain", "lazy_static", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "subprocess", "syn 1.0.109", "test-fuzz-internal", @@ -12521,22 +12821,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -12552,9 +12852,9 @@ dependencies = [ [[package]] name = "thread-id" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" +checksum = "79474f573561cdc4871a0de34a51c92f7f5a56039113fbb5b9c9f96bdb756669" dependencies = [ "libc", "redox_syscall 0.2.16", @@ -12584,11 +12884,10 @@ dependencies = [ [[package]] name = "time" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" +checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" dependencies = [ - "deranged", "itoa 1.0.9", "serde", "time-core", @@ -12603,9 +12902,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.11" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" +checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" dependencies = [ "time-core", ] @@ -12651,17 +12950,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd4fdec6de01b568c1d3721c9d46a352623c536cd55a8a5acfefb63d1fccccbc" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] [[package]] name = "tokio" -version = "1.29.1" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ - "autocfg 1.1.0", "backtrace", "bytes", "libc", @@ -12670,7 +12968,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2 0.4.9", + "socket2 0.5.3", "tokio-macros", "windows-sys 0.48.0", ] @@ -12682,8 +12980,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -12902,8 +13200,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -12984,7 +13282,7 @@ dependencies = [ "sharded-slab", "smallvec 1.11.0", "thread_local", - "time 0.3.25", + "time 0.3.23", "tracing", "tracing-core", "tracing-log", @@ -13137,9 +13435,9 @@ dependencies = [ [[package]] name = "tx5" -version = "0.0.1-alpha.19" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9dcc0a2b0b0dc28f32200c30b838e58b0737bbe4b25ce4369f9396acc4f339" +checksum = "a76decf02d813606a817a33793aa5b7bf3cbf8d85d1623157ca7b05ef939c5e1" dependencies = [ "bytes", "futures", @@ -13161,9 +13459,9 @@ dependencies = [ [[package]] name = "tx5-core" -version = "0.0.1-alpha.7" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6de3181cafaf2cd7d1cd60c3367db5daf53a818159afa596f420bc2da1d7243d" +checksum = "062c8fa9036a5f4e2795e5d6abe1b2e4591f36d0480732ddc0e7405a7489d01f" dependencies = [ "base64 0.13.1", "dirs 5.0.1", @@ -13179,9 +13477,9 @@ dependencies = [ [[package]] name = "tx5-go-pion" -version = "0.0.1-alpha.11" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d7118da8a1353717e9a42b21d922933097c069e13ef8547c7be07efa8ea8a8" +checksum = "8fc0ceeb67c3c846ea7bb6f5d30088f75359a5a55646d80f6a01a3ec235a2eb5" dependencies = [ "parking_lot 0.12.1", "tokio", @@ -13192,9 +13490,9 @@ dependencies = [ [[package]] name = "tx5-go-pion-sys" -version = "0.0.1-alpha.12" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b249cfddf59d1a7593017785f9b73cb396145166c0a3fd1bc39214757a416d7a" +checksum = "a12b039d7f78e57ab84b7db1293cd194147895b7b43a6a8910f1e82268756fbe" dependencies = [ "Inflector", "base64 0.13.1", @@ -13211,9 +13509,9 @@ dependencies = [ [[package]] name = "tx5-go-pion-turn" -version = "0.0.1-alpha.7" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925f258966cedc265cb2e1ba5a19be3007b562b203068d0c33967458695a680a" +checksum = "8e0194742195d3676fa8c2907995676604cd3ebf8e17fe7f0e9a50495092b945" dependencies = [ "base64 0.13.1", "dirs 5.0.1", @@ -13229,9 +13527,9 @@ dependencies = [ [[package]] name = "tx5-signal" -version = "0.0.1-alpha.10" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e26fee2c1c3e227c8bae711545c7536d17a508af0a5e317296cce18afaff5b7" +checksum = "7698b18a456f298ae7c4bb3c2a5e76c7193242f0a53d91866cc9507e1ff4373b" dependencies = [ "futures", "lair_keystore_api", @@ -13258,11 +13556,11 @@ dependencies = [ [[package]] name = "tx5-signal-srv" -version = "0.0.1-alpha.9" +version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8359558d90ae7c4b2ff885619fcd75186cccdb62f575252c95c0c06484ce7de0" +checksum = "4dd44a26819757459b14994e728adeeb05931ca95605e54eb7733d01f3f130f8" dependencies = [ - "clap 4.3.21", + "clap 4.3.23", "dirs 5.0.1", "futures", "if-addrs 0.10.1", @@ -13357,9 +13655,9 @@ dependencies = [ [[package]] name = "unicase" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" dependencies = [ "version_check", ] @@ -13480,7 +13778,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -13494,7 +13792,7 @@ dependencies = [ "log", "once_cell", "rustls 0.21.6", - "rustls-webpki 0.100.1", + "rustls-webpki 0.100.2", "url 2.4.0", "webpki-roots 0.23.1", ] @@ -13604,9 +13902,9 @@ dependencies = [ [[package]] name = "v8" -version = "0.74.3" +version = "0.75.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eedac634b8dd39b889c5b62349cbc55913780226239166435c5cf66771792ea" +checksum = "f9be435abe79a8427b0969f1ac0a3c0e91644235f68a3de5da4a27ec69666985" dependencies = [ "bitflags 1.3.2", "fslock", @@ -13706,7 +14004,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", ] [[package]] @@ -13803,8 +14101,8 @@ dependencies = [ "log", "once_cell", "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", "wasm-bindgen-shared", ] @@ -13826,7 +14124,7 @@ version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ - "quote 1.0.32", + "quote 1.0.33", "wasm-bindgen-macro-support", ] @@ -13837,8 +14135,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -13860,9 +14158,9 @@ dependencies = [ [[package]] name = "wasm-streams" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" +checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" dependencies = [ "futures-util", "js-sys", @@ -13957,7 +14255,7 @@ checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" dependencies = [ "proc-macro-error", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -14122,9 +14420,9 @@ checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" [[package]] name = "wast" -version = "62.0.1" +version = "63.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ae06f09dbe377b889fbd620ff8fa21e1d49d1d9d364983c0cdbf9870cb9f1f" +checksum = "2560471f60a48b77fccefaf40796fda61c97ce1e790b59dfcec9dc3995c9f63a" dependencies = [ "leb128", "memchr", @@ -14134,9 +14432,9 @@ dependencies = [ [[package]] name = "wat" -version = "1.0.69" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842e15861d203fb4a96d314b0751cdeaf0f6f8b35e8d81d2953af2af5e44e637" +checksum = "3bdc306c2c4c2f2bf2ba69e083731d0d2a77437fc6a350a19db139636e7e416c" dependencies = [ "wast", ] @@ -14233,9 +14531,15 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "rustls-webpki 0.100.1", + "rustls-webpki 0.100.2", ] +[[package]] +name = "webpki-roots" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" + [[package]] name = "webview2-com" version = "0.19.1" @@ -14255,7 +14559,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] @@ -14371,7 +14675,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -14456,7 +14760,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -14476,17 +14780,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -14503,9 +14807,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -14539,9 +14843,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -14575,9 +14879,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -14611,9 +14915,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -14647,9 +14951,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" @@ -14659,9 +14963,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -14695,28 +14999,19 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.4" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acaaa1190073b2b101e15083c38ee8ec891b5e05cbee516521e94ec008f61e64" +checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "winreg" version = "0.11.0" @@ -14827,11 +15122,11 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0-rc.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" dependencies = [ - "curve25519-dalek 4.0.0-rc.3", + "curve25519-dalek 4.0.0", "rand_core 0.6.4", "serde", "zeroize", @@ -14851,7 +15146,7 @@ dependencies = [ "oid-registry", "rusticata-macros", "thiserror", - "time 0.3.25", + "time 0.3.23", ] [[package]] @@ -14914,7 +15209,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.25", + "time 0.3.23", ] [[package]] @@ -14964,7 +15259,7 @@ checksum = "a13d08f5dc6cf725b693cb6ceacd43cd430ec0664a879188f29e7d7dcd98f96d" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "regex", "syn 1.0.109", ] @@ -14996,8 +15291,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2 1.0.66", - "quote 1.0.32", - "syn 2.0.28", + "quote 1.0.33", + "syn 2.0.29", ] [[package]] @@ -15016,7 +15311,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", "sha1 0.10.5", - "time 0.3.25", + "time 0.3.23", "zstd", ] @@ -15072,6 +15367,6 @@ checksum = "dd58d4b6c8e26d3dd2149c8c40c6613ef6451b9885ff1296d1ac86c388351a54" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.66", - "quote 1.0.32", + "quote 1.0.33", "syn 1.0.109", ] From f39c122279cd36593b717e5ee934d941ebc63f93 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 14:36:51 +0100 Subject: [PATCH 561/722] use remote forked holochain deps --- Cargo.lock | 651 +++++++++------------------------------ rust-executor/Cargo.toml | 8 +- 2 files changed, 143 insertions(+), 516 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8950cfc06..25a65c66b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3806,22 +3806,7 @@ dependencies = [ [[package]] name = "fixt" version = "0.2.0" -dependencies = [ - "holochain_serialized_bytes", - "lazy_static", - "parking_lot 0.10.2", - "paste", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "strum 0.18.0", - "strum_macros 0.18.0", -] - -[[package]] -name = "fixt" -version = "0.2.0" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "holochain_serialized_bytes", "lazy_static", @@ -4766,11 +4751,11 @@ dependencies = [ [[package]] name = "hdi" version = "0.4.0-beta-dev.9" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "hdk_derive", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_integrity_types 0.3.0-beta-dev.9 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holo_hash", + "holochain_integrity_types", "holochain_wasmer_guest", "paste", "serde", @@ -4782,14 +4767,14 @@ dependencies = [ [[package]] name = "hdk" version = "0.3.0-beta-dev.13" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "getrandom 0.2.10", "hdi", "hdk_derive", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holo_hash", "holochain_wasmer_guest", - "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_zome_types", "paste", "serde", "serde_bytes", @@ -4801,11 +4786,11 @@ dependencies = [ [[package]] name = "hdk_derive" version = "0.3.0-beta-dev.9" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "darling 0.14.4", "heck 0.4.1", - "holochain_integrity_types 0.3.0-beta-dev.9 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_integrity_types", "paste", "proc-macro-error", "proc-macro2 1.0.66", @@ -4955,38 +4940,17 @@ dependencies = [ [[package]] name = "holo_hash" version = "0.3.0-beta-dev.6" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "arbitrary", "base64 0.13.1", "blake2b_simd 0.5.11", "derive_more", - "fixt 0.2.0", - "futures", - "holochain_serialized_bytes", - "holochain_wasmer_common", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", - "must_future", - "rand 0.8.5", - "rusqlite", - "serde", - "serde_bytes", - "thiserror", -] - -[[package]] -name = "holo_hash" -version = "0.3.0-beta-dev.6" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "arbitrary", - "base64 0.13.1", - "blake2b_simd 0.5.11", - "derive_more", - "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "fixt", "futures", "holochain_serialized_bytes", "holochain_wasmer_common", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_dht_arc", "must_future", "rand 0.8.5", "rusqlite", @@ -4998,7 +4962,7 @@ dependencies = [ [[package]] name = "holochain" version = "0.3.0-beta-dev.15" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "anyhow", "arbitrary", @@ -5014,40 +4978,40 @@ dependencies = [ "directories 2.0.2", "either", "fallible-iterator", - "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "fixt", "futures", "get_if_addrs", "getrandom 0.2.10", "ghost_actor 0.3.0-alpha.6", "hdk", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holo_hash", "holochain_cascade", "holochain_conductor_api", - "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_keystore", "holochain_metrics", "holochain_p2p", "holochain_serialized_bytes", - "holochain_sqlite 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_sqlite", "holochain_state", "holochain_test_wasm_common", - "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_trace", + "holochain_types", + "holochain_util", "holochain_wasm_test_utils", "holochain_wasmer_host", "holochain_websocket", - "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_zome_types", "hostname", "human-panic", "itertools 0.10.5", "kitsune_p2p", - "kitsune_p2p_block 0.3.0-beta-dev.5 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_bootstrap 0.2.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_block", + "kitsune_p2p_bootstrap", + "kitsune_p2p_types", "lazy_static", "matches", "mockall", - "mr_bundle 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "mr_bundle", "must_future", "nanoid 0.3.0", "num_cpus", @@ -5091,25 +5055,25 @@ dependencies = [ [[package]] name = "holochain_cascade" version = "0.3.0-beta-dev.15" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "async-trait", "derive_more", "either", "fallible-iterator", - "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "fixt", "futures", "ghost_actor 0.3.0-alpha.6", "hdk", "hdk_derive", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holo_hash", "holochain_p2p", "holochain_serialized_bytes", - "holochain_sqlite 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_sqlite", "holochain_state", - "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_trace", + "holochain_types", + "holochain_zome_types", "kitsune_p2p", "mockall", "serde", @@ -5123,15 +5087,16 @@ dependencies = [ [[package]] name = "holochain_cli_bundle" version = "0.3.0-beta-dev.13" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "anyhow", "clap 4.3.23", "futures", "holochain_serialized_bytes", - "holochain_types 0.3.0-beta-dev.13", - "holochain_util 0.2.0", + "holochain_types", + "holochain_util", "holochain_wasmer_host", - "mr_bundle 0.2.0", + "mr_bundle", "serde", "serde_bytes", "serde_yaml 0.9.25", @@ -5143,12 +5108,13 @@ dependencies = [ [[package]] name = "holochain_cli_run_local_services" version = "0.3.0-beta-dev.7" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "clap 4.3.23", "futures", - "holochain_trace 0.3.0-beta-dev.1", + "holochain_trace", "if-addrs 0.10.1", - "kitsune_p2p_bootstrap 0.2.0-beta-dev.7", + "kitsune_p2p_bootstrap", "tokio", "tracing", "tx5-signal-srv", @@ -5157,17 +5123,17 @@ dependencies = [ [[package]] name = "holochain_conductor_api" version = "0.3.0-beta-dev.15" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "derive_more", "directories 2.0.2", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holo_hash", + "holochain_keystore", "holochain_p2p", "holochain_serialized_bytes", "holochain_state", - "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_types", + "holochain_zome_types", "kitsune_p2p", "serde", "serde_derive 1.0.185", @@ -5181,30 +5147,13 @@ dependencies = [ [[package]] name = "holochain_integrity_types" version = "0.3.0-beta-dev.9" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "arbitrary", "derive_builder", - "holo_hash 0.3.0-beta-dev.6", + "holo_hash", "holochain_serialized_bytes", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0", - "paste", - "serde", - "serde_bytes", - "subtle 2.4.1", - "subtle-encoding", - "tracing", -] - -[[package]] -name = "holochain_integrity_types" -version = "0.3.0-beta-dev.9" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "arbitrary", - "derive_builder", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_serialized_bytes", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_timestamp", "paste", "serde", "serde_bytes", @@ -5216,37 +5165,14 @@ dependencies = [ [[package]] name = "holochain_keystore" version = "0.3.0-beta-dev.11" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "base64 0.13.1", "futures", - "holo_hash 0.3.0-beta-dev.6", + "holo_hash", "holochain_serialized_bytes", - "holochain_zome_types 0.3.0-beta-dev.10", - "kitsune_p2p_types 0.3.0-beta-dev.7", - "lair_keystore", - "must_future", - "nanoid 0.4.0", - "one_err", - "parking_lot 0.11.2", - "serde", - "serde_bytes", - "sodoken", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "holochain_keystore" -version = "0.3.0-beta-dev.11" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "base64 0.13.1", - "futures", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_serialized_bytes", - "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_zome_types", + "kitsune_p2p_types", "lair_keystore", "must_future", "nanoid 0.4.0", @@ -5263,7 +5189,7 @@ dependencies = [ [[package]] name = "holochain_metrics" version = "0.3.0-beta-dev.3" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "influxive", "tracing", @@ -5273,22 +5199,22 @@ dependencies = [ [[package]] name = "holochain_p2p" version = "0.3.0-beta-dev.14" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "async-trait", "derive_more", - "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "fixt", "futures", "ghost_actor 0.3.0-alpha.6", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holo_hash", + "holochain_keystore", "holochain_serialized_bytes", - "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_trace", + "holochain_types", + "holochain_util", + "holochain_zome_types", "kitsune_p2p", - "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_types", "mockall", "rand 0.8.5", "serde", @@ -5328,6 +5254,7 @@ dependencies = [ [[package]] name = "holochain_sqlite" version = "0.3.0-beta-dev.13" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "anyhow", "async-trait", @@ -5336,56 +5263,15 @@ dependencies = [ "fallible-iterator", "futures", "getrandom 0.2.10", - "holo_hash 0.3.0-beta-dev.6", - "holochain_serialized_bytes", - "holochain_util 0.2.0", - "holochain_zome_types 0.3.0-beta-dev.10", - "kitsune_p2p_bin_data 0.3.0-beta-dev.4", - "kitsune_p2p_dht 0.3.0-beta-dev.4", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0", - "kitsune_p2p_types 0.3.0-beta-dev.7", - "num_cpus", - "once_cell", - "parking_lot 0.10.2", - "pretty_assertions 0.7.2", - "r2d2", - "r2d2_sqlite_neonphog", - "rmp-serde 0.15.5", - "rusqlite", - "scheduled-thread-pool", - "serde", - "serde_derive 1.0.185", - "serde_json", - "shrinkwraprs", - "sqlformat 0.1.8", - "tempfile", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "holochain_sqlite" -version = "0.3.0-beta-dev.13" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "anyhow", - "async-trait", - "chashmap", - "derive_more", - "fallible-iterator", - "futures", - "getrandom 0.2.10", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holo_hash", "holochain_serialized_bytes", - "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_bin_data 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_dht 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_util", + "holochain_zome_types", + "kitsune_p2p_bin_data", + "kitsune_p2p_dht", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", + "kitsune_p2p_types", "num_cpus", "once_cell", "parking_lot 0.10.2", @@ -5409,7 +5295,7 @@ dependencies = [ [[package]] name = "holochain_state" version = "0.3.0-beta-dev.14" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "async-recursion", "base64 0.13.1", @@ -5423,14 +5309,14 @@ dependencies = [ "fallible-iterator", "futures", "getrandom 0.2.10", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holo_hash", + "holochain_keystore", "holochain_p2p", "holochain_serialized_bytes", - "holochain_sqlite 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_sqlite", + "holochain_types", + "holochain_util", + "holochain_zome_types", "kitsune_p2p", "mockall", "nanoid 0.3.0", @@ -5450,7 +5336,7 @@ dependencies = [ [[package]] name = "holochain_test_wasm_common" version = "0.3.0-beta-dev.13" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "hdk", "serde", @@ -5459,23 +5345,7 @@ dependencies = [ [[package]] name = "holochain_trace" version = "0.3.0-beta-dev.1" -dependencies = [ - "chrono", - "derive_more", - "inferno", - "once_cell", - "serde_json", - "thiserror", - "tracing", - "tracing-core", - "tracing-serde", - "tracing-subscriber 0.3.17", -] - -[[package]] -name = "holochain_trace" -version = "0.3.0-beta-dev.1" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "chrono", "derive_more", @@ -5492,6 +5362,7 @@ dependencies = [ [[package]] name = "holochain_types" version = "0.3.0-beta-dev.13" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "anyhow", "arbitrary", @@ -5505,82 +5376,24 @@ dependencies = [ "derive_builder", "derive_more", "either", - "fixt 0.2.0", + "fixt", "flate2", "futures", "getrandom 0.2.10", - "holo_hash 0.3.0-beta-dev.6", - "holochain_keystore 0.3.0-beta-dev.11", + "holo_hash", + "holochain_keystore", "holochain_serialized_bytes", - "holochain_sqlite 0.3.0-beta-dev.13", - "holochain_trace 0.3.0-beta-dev.1", - "holochain_util 0.2.0", + "holochain_sqlite", + "holochain_trace", + "holochain_util", "holochain_wasmer_host", - "holochain_zome_types 0.3.0-beta-dev.10", + "holochain_zome_types", "isotest", "itertools 0.10.5", - "kitsune_p2p_dht 0.3.0-beta-dev.4", + "kitsune_p2p_dht", "lazy_static", "mockall", - "mr_bundle 0.2.0", - "must_future", - "nanoid 0.3.0", - "one_err", - "parking_lot 0.10.2", - "rand 0.8.5", - "regex", - "rusqlite", - "serde", - "serde_bytes", - "serde_derive 1.0.185", - "serde_json", - "serde_with 1.14.0", - "serde_yaml 0.9.25", - "shrinkwraprs", - "strum 0.18.0", - "strum_macros 0.18.0", - "tempfile", - "thiserror", - "tokio", - "tracing", - "wasmer-middlewares", -] - -[[package]] -name = "holochain_types" -version = "0.3.0-beta-dev.13" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "anyhow", - "arbitrary", - "async-trait", - "automap", - "backtrace", - "base64 0.13.1", - "cfg-if 0.1.10", - "chrono", - "contrafact", - "derive_builder", - "derive_more", - "either", - "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "flate2", - "futures", - "getrandom 0.2.10", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_keystore 0.3.0-beta-dev.11 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_serialized_bytes", - "holochain_sqlite 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_wasmer_host", - "holochain_zome_types 0.3.0-beta-dev.10 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "isotest", - "itertools 0.10.5", - "kitsune_p2p_dht 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "lazy_static", - "mockall", - "mr_bundle 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "mr_bundle", "must_future", "nanoid 0.3.0", "one_err", @@ -5607,21 +5420,7 @@ dependencies = [ [[package]] name = "holochain_util" version = "0.2.0" -dependencies = [ - "backtrace", - "cfg-if 0.1.10", - "derive_more", - "dunce", - "futures", - "num_cpus", - "once_cell", - "tokio", -] - -[[package]] -name = "holochain_util" -version = "0.2.0" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "backtrace", "cfg-if 0.1.10", @@ -5638,10 +5437,10 @@ dependencies = [ [[package]] name = "holochain_wasm_test_utils" version = "0.3.0-beta-dev.13" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ - "holochain_types 0.3.0-beta-dev.13 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_types", + "holochain_util", "strum 0.18.0", "strum_macros 0.18.0", "toml 0.5.11", @@ -5697,7 +5496,7 @@ dependencies = [ [[package]] name = "holochain_websocket" version = "0.3.0-beta-dev.3" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "futures", "ghost_actor 0.4.0-alpha.5", @@ -5721,53 +5520,20 @@ dependencies = [ [[package]] name = "holochain_zome_types" version = "0.3.0-beta-dev.10" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "arbitrary", "contrafact", "derive_builder", - "fixt 0.2.0", - "holo_hash 0.3.0-beta-dev.6", - "holochain_integrity_types 0.3.0-beta-dev.9", - "holochain_serialized_bytes", - "holochain_wasmer_common", - "kitsune_p2p_bin_data 0.3.0-beta-dev.4", - "kitsune_p2p_block 0.3.0-beta-dev.5", - "kitsune_p2p_dht 0.3.0-beta-dev.4", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0", - "nanoid 0.3.0", - "num_enum", - "once_cell", - "paste", - "rand 0.8.5", - "rusqlite", - "serde", - "serde_bytes", - "serde_yaml 0.9.25", - "shrinkwraprs", - "strum 0.18.0", - "subtle 2.4.1", - "subtle-encoding", - "thiserror", - "tracing", -] - -[[package]] -name = "holochain_zome_types" -version = "0.3.0-beta-dev.10" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "arbitrary", - "contrafact", - "derive_builder", - "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holo_hash 0.3.0-beta-dev.6 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "holochain_integrity_types 0.3.0-beta-dev.9 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "fixt", + "holo_hash", + "holochain_integrity_types", "holochain_serialized_bytes", "holochain_wasmer_common", - "kitsune_p2p_bin_data 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_block 0.3.0-beta-dev.5 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_dht 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", + "kitsune_p2p_timestamp", "nanoid 0.3.0", "num_enum", "once_cell", @@ -6665,7 +6431,7 @@ dependencies = [ [[package]] name = "kitsune_p2p" version = "0.3.0-beta-dev.12" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "arbitrary", "arrayref", @@ -6674,19 +6440,19 @@ dependencies = [ "bloomfilter", "bytes", "derive_more", - "fixt 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "fixt", "futures", "ghost_actor 0.3.0-alpha.6", "governor", - "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_trace", "itertools 0.10.5", - "kitsune_p2p_block 0.3.0-beta-dev.5 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_block", "kitsune_p2p_fetch", "kitsune_p2p_mdns", "kitsune_p2p_proxy", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_timestamp", "kitsune_p2p_transport_quic", - "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_types", "maplit", "mockall", "must_future", @@ -6712,24 +6478,12 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" version = "0.3.0-beta-dev.4" -dependencies = [ - "base64 0.13.1", - "derive_more", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", - "serde", - "serde_bytes", - "shrinkwraprs", -] - -[[package]] -name = "kitsune_p2p_bin_data" -version = "0.3.0-beta-dev.4" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "arbitrary", "base64 0.13.1", "derive_more", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_dht_arc", "serde", "serde_bytes", "shrinkwraprs", @@ -6738,20 +6492,10 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" version = "0.3.0-beta-dev.5" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ - "kitsune_p2p_bin_data 0.3.0-beta-dev.4", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0", - "serde", - "serde_bytes", -] - -[[package]] -name = "kitsune_p2p_block" -version = "0.3.0-beta-dev.5" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "kitsune_p2p_bin_data 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_bin_data", + "kitsune_p2p_timestamp", "serde", "serde_bytes", ] @@ -6759,29 +6503,11 @@ dependencies = [ [[package]] name = "kitsune_p2p_bootstrap" version = "0.2.0-beta-dev.7" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "clap 3.2.25", "futures", - "kitsune_p2p_types 0.3.0-beta-dev.7", - "once_cell", - "parking_lot 0.11.2", - "rand 0.8.5", - "rmp-serde 0.15.5", - "serde", - "serde_bytes", - "serde_json", - "tokio", - "warp", -] - -[[package]] -name = "kitsune_p2p_bootstrap" -version = "0.2.0-beta-dev.7" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "clap 3.2.25", - "futures", - "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_types", "once_cell", "parking_lot 0.11.2", "rand 0.8.5", @@ -6796,6 +6522,7 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" version = "0.3.0-beta-dev.4" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "colored", "derivative", @@ -6803,31 +6530,8 @@ dependencies = [ "futures", "gcollections", "intervallum", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0", - "must_future", - "num-traits", - "once_cell", - "rand 0.8.5", - "serde", - "statrs", - "thiserror", - "tracing", -] - -[[package]] -name = "kitsune_p2p_dht" -version = "0.3.0-beta-dev.4" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "colored", - "derivative", - "derive_more", - "futures", - "gcollections", - "intervallum", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", "must_future", "num-traits", "once_cell", @@ -6841,19 +6545,7 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" version = "0.3.0-beta-dev.3" -dependencies = [ - "derive_more", - "gcollections", - "intervallum", - "num-traits", - "rusqlite", - "serde", -] - -[[package]] -name = "kitsune_p2p_dht_arc" -version = "0.3.0-beta-dev.3" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "derive_more", "gcollections", @@ -6866,13 +6558,13 @@ dependencies = [ [[package]] name = "kitsune_p2p_fetch" version = "0.3.0-beta-dev.8" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "derive_more", "futures", "human-repr", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_timestamp", + "kitsune_p2p_types", "linked-hash-map", "must_future", "num-traits", @@ -6885,7 +6577,7 @@ dependencies = [ [[package]] name = "kitsune_p2p_mdns" version = "0.2.0" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "async-stream", "base64 0.13.1", @@ -6901,15 +6593,15 @@ dependencies = [ [[package]] name = "kitsune_p2p_proxy" version = "0.3.0-beta-dev.7" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "base64 0.13.1", "blake2b_simd 0.5.11", "derive_more", "futures", - "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_trace", "kitsune_p2p_transport_quic", - "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_types", "nanoid 0.3.0", "parking_lot 0.11.2", "rmp-serde 0.15.5", @@ -6925,18 +6617,7 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" version = "0.3.0-beta-dev.0" -dependencies = [ - "arbitrary", - "chrono", - "derive_more", - "rusqlite", - "serde", -] - -[[package]] -name = "kitsune_p2p_timestamp" -version = "0.3.0-beta-dev.0" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "arbitrary", "chrono", @@ -6948,12 +6629,12 @@ dependencies = [ [[package]] name = "kitsune_p2p_transport_quic" version = "0.3.0-beta-dev.7" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "blake2b_simd 1.0.1", "futures", "if-addrs 0.8.0", - "kitsune_p2p_types 0.3.0-beta-dev.7 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "kitsune_p2p_types", "nanoid 0.4.0", "once_cell", "quinn", @@ -6967,53 +6648,19 @@ dependencies = [ [[package]] name = "kitsune_p2p_types" version = "0.3.0-beta-dev.7" -dependencies = [ - "base64 0.13.1", - "derive_more", - "futures", - "ghost_actor 0.3.0-alpha.6", - "holochain_trace 0.3.0-beta-dev.1", - "kitsune_p2p_bin_data 0.3.0-beta-dev.4", - "kitsune_p2p_block 0.3.0-beta-dev.5", - "kitsune_p2p_dht 0.3.0-beta-dev.4", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0", - "lair_keystore_api", - "lru 0.8.1", - "nanoid 0.3.0", - "once_cell", - "parking_lot 0.11.2", - "paste", - "rmp-serde 0.15.5", - "rustls 0.20.8", - "serde", - "serde_bytes", - "serde_json", - "shrinkwraprs", - "sysinfo 0.27.8", - "thiserror", - "tokio", - "url 2.4.0", - "url2", - "webpki 0.22.0", -] - -[[package]] -name = "kitsune_p2p_types" -version = "0.3.0-beta-dev.7" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "arbitrary", "base64 0.13.1", "derive_more", "futures", "ghost_actor 0.3.0-alpha.6", - "holochain_trace 0.3.0-beta-dev.1 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_bin_data 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_block 0.3.0-beta-dev.5 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_dht 0.3.0-beta-dev.4 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_dht_arc 0.3.0-beta-dev.3 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", - "kitsune_p2p_timestamp 0.3.0-beta-dev.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_trace", + "kitsune_p2p_bin_data", + "kitsune_p2p_block", + "kitsune_p2p_dht", + "kitsune_p2p_dht_arc", + "kitsune_p2p_timestamp", "lair_keystore_api", "lru 0.8.1", "mockall", @@ -7915,6 +7562,7 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "mr_bundle" version = "0.2.0" +source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "arbitrary", "bytes", @@ -7922,28 +7570,7 @@ dependencies = [ "either", "flate2", "futures", - "holochain_util 0.2.0", - "reqwest", - "rmp-serde 0.15.5", - "serde", - "serde_bytes", - "serde_derive 1.0.185", - "serde_yaml 0.9.25", - "thiserror", -] - -[[package]] -name = "mr_bundle" -version = "0.2.0" -source = "git+https://github.com/holochain/holochain?branch=rust-1.71.1#c143023481f483625d9378838483f4602c25e09e" -dependencies = [ - "arbitrary", - "bytes", - "derive_more", - "either", - "flate2", - "futures", - "holochain_util 0.2.0 (git+https://github.com/holochain/holochain?branch=rust-1.71.1)", + "holochain_util", "reqwest", "rmp-serde 0.15.5", "serde", @@ -10475,7 +10102,7 @@ dependencies = [ "holochain", "holochain_cli_bundle", "holochain_cli_run_local_services", - "holochain_types 0.3.0-beta-dev.13", + "holochain_types", "jsonwebtoken", "juniper", "juniper_graphql_transport_ws", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 9c78019fa..b636de1eb 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -61,10 +61,10 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = { git = "https://github.com/holochain/holochain", branch = "rust-1.71.1", features = ["test_utils", "default"] } -holochain_cli_bundle = { path = "../../holochain/crates/hc_bundle" } -holochain_types = { path = "../../holochain/crates/holochain_types" } -holochain_cli_run_local_services = { path = "../../holochain/crates/hc_run_local_services" } +holochain = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports", features = ["test_utils", "default"] } +holochain_cli_bundle = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports" } +holochain_types = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports" } +holochain_cli_run_local_services = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports" } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible" } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } From 6d251756a79834005dacfc512f8048d506de7be9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 14:37:13 +0100 Subject: [PATCH 562/722] add more logging to the gossip output --- cli/src/main.rs | 2 +- .../holochain_service_extension.rs | 4 +--- rust-executor/src/holochain_service/interface.rs | 10 +++++----- rust-executor/src/holochain_service/mod.rs | 15 ++++++++++----- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index be624b6f6..98b0b4d2f 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -259,7 +259,7 @@ async fn main() -> Result<()> { }; if let Domain::RunLocalHcServices {} = args.domain { - rust_executor::run_local_hc_services().await; + rust_executor::run_local_hc_services().await?; return Ok(()); } diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 00f63e57b..18b9f4cc4 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -8,7 +8,6 @@ use holochain::{ Signature, ZomeCallResponse, }, }; -use tracing::info; use crate::holochain_service::{HolochainService, LocalConductorConfig}; @@ -23,8 +22,7 @@ async fn start_holochain_conductor(config: LocalConductorConfig) -> Result<(), A #[op] async fn log_dht_status() -> Result<(), AnyError> { let interface = get_holochain_service().await; - let metrics = interface.get_network_metrics().await?; - info!("DHT metrics: {:?}", serde_json::Value::try_from(metrics)?); + interface.log_network_metrics().await?; Ok(()) } diff --git a/rust-executor/src/holochain_service/interface.rs b/rust-executor/src/holochain_service/interface.rs index b6bce286f..c783b7b16 100644 --- a/rust-executor/src/holochain_service/interface.rs +++ b/rust-executor/src/holochain_service/interface.rs @@ -37,7 +37,7 @@ pub enum HolochainServiceRequest { Shutdown(oneshot::Sender), GetAgentKey(oneshot::Sender), GetAppInfo(String, oneshot::Sender), - GetNetworkMetrics(oneshot::Sender), + LogNetworkMetrics(oneshot::Sender), PackDna(String, oneshot::Sender), UnPackDna(String, oneshot::Sender), } @@ -54,7 +54,7 @@ pub enum HolochainServiceResponse { GetAgentKey(Result, AnyError>), GetAppInfo(Result, AnyError>), InitComplete(Result<(), AnyError>), - GetNetworkMetrics(Result), + LogNetworkMetrics(Result<(), AnyError>), PackDna(Result), UnPackDna(Result), } @@ -179,13 +179,13 @@ impl HolochainServiceInterface { } } - pub async fn get_network_metrics(&self) -> Result { + pub async fn log_network_metrics(&self) -> Result<(), AnyError> { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::GetNetworkMetrics(response_tx)) + .send(HolochainServiceRequest::LogNetworkMetrics(response_tx)) .await?; match response_rx.await.unwrap() { - HolochainServiceResponse::GetNetworkMetrics(result) => result, + HolochainServiceResponse::LogNetworkMetrics(result) => result, _ => unreachable!(), } } diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 5f2b06dde..dfe4b7369 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -153,10 +153,10 @@ impl HolochainService { let result = service.get_app_info(app_id).await; let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); } - HolochainServiceRequest::GetNetworkMetrics(response_tx) => { - let result = service.get_network_metrics().await; + HolochainServiceRequest::LogNetworkMetrics(response_tx) => { + let result = service.log_network_metrics().await; let _ = response_tx - .send(HolochainServiceResponse::GetNetworkMetrics(result)); + .send(HolochainServiceResponse::LogNetworkMetrics(result)); } HolochainServiceRequest::PackDna(path, response_tx) => { let result = HolochainService::pack_dna(path).await; @@ -434,8 +434,13 @@ impl HolochainService { Ok(self.conductor.get_app_info(&app_id).await?) } - pub async fn get_network_metrics(&self) -> Result { - Ok(self.conductor.dump_network_metrics(None).await?) + pub async fn log_network_metrics(&self) -> Result<(), AnyError> { + let metrics = self.conductor.dump_network_metrics(None).await?; + info!("Network metrics: {}", serde_json::to_string_pretty(&serde_json::Value::try_from(metrics)?)?); + + let stats = self.conductor.dump_network_stats().await?; + info!("Network stats: {}", serde_json::to_string_pretty(&serde_json::Value::try_from(stats)?)?); + Ok(()) } pub async fn pack_dna(path: String) -> Result { From 8b6ee273c6787c151a539a8403039ba27f624bb4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 15:29:57 +0100 Subject: [PATCH 563/722] remove debug logging and fix up broken console.log for holochain AppInfo type --- .../storage-services/Holochain/HolochainService.ts | 10 +++------- rust-executor/src/holochain_service/mod.rs | 8 +------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 2e6a430cf..75bc140e4 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -178,20 +178,15 @@ export default class HolochainService { //Did should only ever be undefined when the system DNA's get init'd before agent create occurs //These system DNA's do not currently need EP proof's let membraneProof = {}; - console.log("get agent key from holochain service holocahin service"); const agentKey = await HOLOCHAIN_SERVICE.getAgentKey(); - console.log("done"); if(did) { - console.log("signing did"); const signedDid = await HOLOCHAIN_SERVICE.signString(did).toString(); - console.log("done"); const didHolochainEntanglement = await this.#entanglementProofController!.generateHolochainProof(agentKey.toString(), signedDid); membraneProof = {"ad4mDidEntanglement": Buffer.from(JSON.stringify(didHolochainEntanglement))}; } else { membraneProof = {}; } - console.log("install app"); const installAppResult = await HOLOCHAIN_SERVICE.installApp({ installed_app_id: lang, agent_key: agentKey, membrane_proofs: membraneProof, bundle: { manifest: { @@ -203,11 +198,12 @@ export default class HolochainService { resources: {} } } as InstallAppRequest) - console.log("done"); appInfo = installAppResult - console.warn("HolochainService: Installed DNA's:", roles, " with result:", installAppResult); + console.log("HolochainService: Installed DNA's:", roles) + console.log(" with result:"); + console.dir(installAppResult); } catch(e) { console.error("HolochainService: InstallApp, got error: ", e); return []; diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index dfe4b7369..8b414c4cf 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -261,24 +261,20 @@ impl HolochainService { match app_info { None => { - info!("installing app rust"); self.conductor .clone() .install_app_bundle(install_app_payload) .await .map_err(|e| anyhow!("Could not install app: {:?}", e))?; - info!("activating app rust"); - let activate = self + self .conductor .clone() .enable_app(app_id.clone()) .await .map_err(|e| anyhow!("Could not activate app: {:?}", e))?; - info!("Installed app with result: {:?}", activate); let app_info = self.conductor.get_app_info(&app_id).await?; - Ok(app_info.unwrap()) } Some(app_info) => { @@ -401,7 +397,6 @@ impl HolochainService { pub async fn sign(&self, data: String) -> Result { let keystore = self.conductor.keystore(); let pub_keys = keystore.list_public_keys().await?; - info!("Public keys: {:?}", pub_keys); if pub_keys.len() == 0 { return Err(anyhow!("No public keys found")); } @@ -426,7 +421,6 @@ impl HolochainService { return Err(anyhow!("No public keys found")); } let agent = pub_keys.first().unwrap(); - info!("Agent key: {:?}", agent); Ok(agent.to_owned()) } From 7d2a3d6b5e99e391907b41daa2e72622ac474fb8 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 23 Aug 2023 15:30:14 +0100 Subject: [PATCH 564/722] turn back on try/catch for loading a language module --- executor/src/core/LanguageController.ts | 32 ++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 320c80509..5af8c6cd3 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -49,7 +49,7 @@ const loadModule = async (modulePath: string) => { } catch (err) { //@ts-ignore if (err instanceof Deno.errors.NotFound) { - throw new Error(`File not found: ${modulePath}`); + throw new Error(`File not found: ${modulePath}`); } throw err; } @@ -215,21 +215,21 @@ export default class LanguageController { const hash = await this.ipfsHash(bundleBytes) console.debug("LanguageController.loadLanguage: loading language at path", sourceFilePath, "with hash", hash); let languageSource; - //try { - languageSource = await loadModule(sourceFilePath); - // } catch (e) { - // const errMsg = `Could not load language ${e}`; - // console.error(errMsg); - // await this.#pubSub.publish( - // PubSub.EXCEPTION_OCCURRED_TOPIC, - // { - // title: "Failed to load installed language", - // message: errMsg, - // type: ExceptionType.LanguageIsNotLoaded - // } as ExceptionInfo - // ); - // throw new Error(errMsg); - // } + try { + languageSource = await loadModule(sourceFilePath); + } catch (e) { + const errMsg = `Could not load language ${e}`; + console.error(errMsg); + await this.#pubSub.publish( + PubSubDefinitions.EXCEPTION_OCCURRED_TOPIC, + { + title: "Failed to load installed language", + message: errMsg, + type: ExceptionType.LanguageIsNotLoaded + } as ExceptionInfo + ); + throw new Error(errMsg); + } console.warn("LanguageController.loadLanguage: language loaded!"); let create; if (!languageSource.default) { From 91b03d4f63b4709ddd6a5036c30d0b156b75c712 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 24 Aug 2023 11:52:17 +0530 Subject: [PATCH 565/722] Fixed subscripton not passing status with the link --- executor/src/core/Perspective.ts | 4 +++- executor/src/core/db.ts | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 694e17aee..46af29792 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -453,13 +453,15 @@ export default class Perspective { this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); + + linkExpression.status = status; + await this.#pubSub.publish(PubSubDefinitions.LINK_ADDED_TOPIC, { perspective: perspectivePlain, link: linkExpression }) this.#prologNeedsRebuild = true - linkExpression.status = status; return linkExpression } diff --git a/executor/src/core/db.ts b/executor/src/core/db.ts index 570ce2902..91f198b23 100644 --- a/executor/src/core/db.ts +++ b/executor/src/core/db.ts @@ -119,9 +119,6 @@ export class Ad4mDb { if (link.data.source == null) { delete link.data.source; }; - if (link.data.predicate == null) { - delete link.data.predicate; - }; if (link.data.target == null) { delete link.data.target; }; From f46ca5474ecf8e9bdc05b0978395e053a14e287d Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Thu, 24 Aug 2023 11:52:32 +0530 Subject: [PATCH 566/722] Fixed local perspective link test --- tests/js/tests/perspective.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/js/tests/perspective.ts b/tests/js/tests/perspective.ts index 9ef8c8a5b..5ba9f9bce 100644 --- a/tests/js/tests/perspective.ts +++ b/tests/js/tests/perspective.ts @@ -73,7 +73,7 @@ export default function perspectiveTests(testContext: TestContext) { const links = await create.get({} as LinkQuery); expect(links.length).to.equal(1); - expect(links[0].status).to.equal('local') + expect(links[0].status).to.equal('LOCAL') await create.remove(linkAdd); From 7c0914939a6ec39f5302c491da08987c73ae8de1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 24 Aug 2023 14:27:17 +0100 Subject: [PATCH 567/722] fix local services spawning --- tests/js/utils/utils.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 5a4b7c728..44732a067 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -57,8 +57,7 @@ export async function startExecutor(dataPath: string, //console.log("No ad4m process running") } - const hc = path.resolve(__dirname, '..', 'tst-tmp', 'agents', 'p','binary', 'hc'); - let servicesProcess = exec(`${hc} run-local-services`); + let servicesProcess = exec(`${command} run-local-hc-services`); let bootstrapUrl = null; let proxyUrl = null; From ce79bce28e3e86485d002b4b4f8a73885a59ae54 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 24 Aug 2023 14:36:29 +0100 Subject: [PATCH 568/722] only start new proxy service if one was not already started before --- tests/js/utils/utils.ts | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 44732a067..cbfada638 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -11,6 +11,9 @@ import { dirname } from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); +let proxyUrl: null | string = null; +let bootstrapUrl: null | string = null; + export async function isProcessRunning(processName: string): Promise { const cmd = (() => { switch (process.platform) { @@ -57,27 +60,26 @@ export async function startExecutor(dataPath: string, //console.log("No ad4m process running") } - let servicesProcess = exec(`${command} run-local-hc-services`); - - let bootstrapUrl = null; - let proxyUrl = null; + if (proxyUrl === null || bootstrapUrl === null) { + let servicesProcess = exec(`${command} run-local-hc-services`); - let servicesReady = new Promise((resolve, reject) => { - servicesProcess.stdout!.on('data', (data) => { - if (data.includes("HC BOOTSTRAP - ADDR")) { - bootstrapUrl = data.split(" ")[5]; - bootstrapUrl = bootstrapUrl.substring(0, bootstrapUrl.length - 3); - } + let servicesReady = new Promise((resolve, reject) => { + servicesProcess.stdout!.on('data', (data) => { + if (data.includes("HC BOOTSTRAP - ADDR")) { + bootstrapUrl = data.split(" ")[5]; + bootstrapUrl = bootstrapUrl!.substring(0, bootstrapUrl!.length - 3); + } - if (data.includes("HC SIGNAL - ADDR")) { - proxyUrl = data.split(" ")[5]; - proxyUrl = proxyUrl.substring(0, proxyUrl.length - 3); - resolve(); - } + if (data.includes("HC SIGNAL - ADDR")) { + proxyUrl = data.split(" ")[5]; + proxyUrl = proxyUrl!.substring(0, proxyUrl!.length - 3); + resolve(); + } + }); }); - }); - await servicesReady; + await servicesReady; + }; console.log("USING LOCAL BOOTSTRAP & PROXY URL: ", bootstrapUrl, proxyUrl); From c8e9a85efc2e84ce2547575002bb5b40943eb18c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 24 Aug 2023 15:21:19 +0100 Subject: [PATCH 569/722] correctly attach app port instead of admin port --- .../src/core/storage-services/Holochain/HolochainService.ts | 2 +- executor/src/holochain_service_extension.d.ts | 2 +- rust-executor/src/holochain_service/mod.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 75bc140e4..802d98d64 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -116,7 +116,7 @@ export default class HolochainService { useMdns: config.useMdns!, proxyUrl: config.hcProxyUrl, bootstrapUrl: config.hcBootstrapUrl, - adminPort: config.adminPort! + appPort: config.appPort! } as ConductorConfig); console.log("Holochain run complete"); diff --git a/executor/src/holochain_service_extension.d.ts b/executor/src/holochain_service_extension.d.ts index a0994d6b7..68cd429f4 100644 --- a/executor/src/holochain_service_extension.d.ts +++ b/executor/src/holochain_service_extension.d.ts @@ -11,7 +11,7 @@ declare global { useMdns: bool, proxyUrl: String, bootstrapUrl: String, - adminPort: Number + appPort: Number } interface HolochainService { diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 8b414c4cf..30ac21b1e 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -50,7 +50,7 @@ pub struct LocalConductorConfig { pub use_mdns: bool, pub proxy_url: String, pub bootstrap_url: String, - pub admin_port: u16, + pub app_port: u16, } impl HolochainService { @@ -236,7 +236,7 @@ impl HolochainService { let interface = conductor .clone() - .add_app_interface(Either::Left(local_config.admin_port)) + .add_app_interface(Either::Left(local_config.app_port)) .await; info!("Added app interface: {:?}", interface); From 99d650154498aacb6d1932f88e1af4b5da09b7b3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 24 Aug 2023 17:49:45 +0100 Subject: [PATCH 570/722] remove dead run() cli arguments --- cli/src/dev.rs | 4 -- cli/src/main.rs | 28 ++----------- executor/src/core/Config.ts | 10 +---- executor/src/main.ts | 37 ++++------------ rust-executor/src/config.rs | 49 +--------------------- rust-executor/src/holochain_service/mod.rs | 1 + tests/js/tests/app.test.ts | 3 +- tests/js/tests/authentication.test.ts | 6 +-- tests/js/tests/integration.test.ts | 7 +--- tests/js/tests/prolog-and-literals.test.ts | 3 +- tests/js/tests/simple.test.ts | 3 +- tests/js/tests/social-dna-flow.ts | 23 ++++++++++ tests/js/utils/publishTestLangs.ts | 3 +- tests/js/utils/utils.ts | 5 +-- 14 files changed, 49 insertions(+), 133 deletions(-) diff --git a/cli/src/dev.rs b/cli/src/dev.rs index 1b32984d4..b895153df 100644 --- a/cli/src/dev.rs +++ b/cli/src/dev.rs @@ -93,7 +93,6 @@ pub async fn run(command: DevFunctions) -> Result<()> { let run_fut = async move { rust_executor::run(rust_executor::Ad4mConfig { app_data_path: Some(data_path.to_str().unwrap().to_string()), - resource_path: None, network_bootstrap_seed: Some( temp_publish_bootstrap_path.to_str().unwrap().to_string(), ), @@ -106,11 +105,8 @@ pub async fn run(command: DevFunctions) -> Result<()> { hc_use_local_proxy: None, hc_use_mdns: None, hc_use_proxy: None, - ipfs_swarm_port: None, connect_holochain: None, admin_credential: None, - swipl_path: None, - swipl_home_path: None, hc_proxy_url: None, hc_bootstrap_url: None, }) diff --git a/cli/src/main.rs b/cli/src/main.rs index 98b0b4d2f..9e1c6a942 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -121,8 +121,6 @@ enum Domain { #[arg(short, long, action)] app_data_path: Option, #[arg(short, long, action)] - resource_path: Option, - #[arg(short, long, action)] network_bootstrap_seed: Option, #[arg(short, long, action)] language_language_only: Option, @@ -147,15 +145,9 @@ enum Domain { #[arg(long, action)] hc_bootstrap_url: Option, #[arg(short, long, action)] - ipfs_swarm_port: Option, - #[arg(short, long, action)] connect_holochain: Option, #[arg(long, action)] - admin_credential: Option, - #[arg(long, action)] - swipl_path: Option, - #[arg(long, action)] - swipl_home_path: Option, + admin_credential: Option }, RunLocalHcServices {} } @@ -213,7 +205,6 @@ async fn main() -> Result<()> { if let Domain::Run { app_data_path, - resource_path, network_bootstrap_seed, language_language_only, run_dapp_server, @@ -226,16 +217,12 @@ async fn main() -> Result<()> { hc_use_proxy, hc_proxy_url, hc_bootstrap_url, - ipfs_swarm_port, connect_holochain, - admin_credential, - swipl_path, - swipl_home_path, + admin_credential } = args.domain { rust_executor::run(Ad4mConfig { app_data_path, - resource_path, network_bootstrap_seed, language_language_only, run_dapp_server, @@ -248,11 +235,8 @@ async fn main() -> Result<()> { hc_use_proxy, hc_proxy_url, hc_bootstrap_url, - ipfs_swarm_port, connect_holochain, - admin_credential, - swipl_path, - swipl_home_path, + admin_credential }) .await; return Ok(()); @@ -289,7 +273,6 @@ async fn main() -> Result<()> { } => unreachable!(), Domain::Run { app_data_path: _, - resource_path: _, network_bootstrap_seed: _, language_language_only: _, run_dapp_server: _, @@ -302,11 +285,8 @@ async fn main() -> Result<()> { hc_use_proxy: _, hc_proxy_url: _, hc_bootstrap_url: _, - ipfs_swarm_port: _, connect_holochain: _, - admin_credential: _, - swipl_path: _, - swipl_home_path: _, + admin_credential: _ } => unreachable!(), Domain::RunLocalHcServices {} => unreachable!(), } diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index 16e6be670..b9e8ae1e1 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -35,8 +35,7 @@ export class MainConfig { swiplPath: string | undefined = undefined; swiplHomePath: string | undefined = undefined; - constructor(resourcePath = '', appDataPath = '') { - this.resourcePath = resourcePath; + constructor(appDataPath = '') { this.rootConfigPath = path.join(appDataPath, 'ad4m'); this.dataPath = path.join(this.rootConfigPath, 'data') this.languagesPath = path.join(this.rootConfigPath, 'languages') @@ -53,7 +52,6 @@ export type LanguageAlias = { export interface CoreConfig { appDataPath: string - appResourcePath: string languageLanguageBundle: string systemLanguages: string[] preloadLanguages: string[] @@ -69,13 +67,11 @@ export interface CoreConfig { neighbourhoodLanguageSettings?: object languageLanguageSettings?: object adminCredential?: string - swiplPath?: string, - swiplHomePath?: string, } export function init(c: CoreConfig): MainConfig { - const mainConfig = new MainConfig(c.appResourcePath, c.appDataPath); + const mainConfig = new MainConfig(c.appDataPath); if(c.adminCredential) { mainConfig.adminCredential = c.adminCredential @@ -119,8 +115,6 @@ export function init(c: CoreConfig): MainConfig { if (c.languageLanguageSettings) { mainConfig.languageLanguageSettings = c.languageLanguageSettings } - mainConfig.swiplPath = c.swiplPath - mainConfig.swiplHomePath = c.swiplHomePath return mainConfig; } diff --git a/executor/src/main.ts b/executor/src/main.ts index b139c169e..62ba7022b 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -12,8 +12,6 @@ import { createResolvers } from "./core/graphQL-interface/GraphQL"; Reflect.getOwnPropertyDescriptor = getOwnPropertyDescriptor export interface OuterConfig { - //Path to resources used by ad4m-executor such as; hc, holochain, prolog - resourcePath: string //Path to be used for storing ad4m data appDataPath: string //Seed file used to load initial languages & agent configuration @@ -36,10 +34,6 @@ export interface OuterConfig { hcPortAdmin?: number, //Port for holochain application port hcPortApp?: number, - //Port for IPFS swarm - ipfsSwarmPort?: number, - //Port for IPFS repo - ipfsRepoPath?: string //Should holochain use a local proxy hcUseLocalProxy?: boolean, //Should holochain use Mdns @@ -53,11 +47,7 @@ export interface OuterConfig { //Should ad4m-executor connect to an existing holochain instance, or spawn its own connectHolochain?: boolean, //The credential used by admin client to make request - adminCredential?: string, - //Path to swipl executable - swiplPath?: string, - //Path to swipl home directory - swiplHomePath?: string, + adminCredential?: string } export interface SeedFileSchema { @@ -90,8 +80,8 @@ export interface SeedFileSchema { /// Main function which starts ad4m-executor export async function init(config: OuterConfig): Promise { let { - resourcePath, appDataPath, networkBootstrapSeed, appLangAliases, bootstrapFixtures, languageLanguageOnly, - mocks, gqlPort, ipfsSwarmPort, ipfsRepoPath, adminCredential, swiplPath, swiplHomePath,runDappServer, + appDataPath, networkBootstrapSeed, appLangAliases, bootstrapFixtures, languageLanguageOnly, + mocks, gqlPort, adminCredential, runDappServer, dAppPort } = config if(!gqlPort) gqlPort = 4000 @@ -160,23 +150,12 @@ export async function init(config: OuterConfig): Promise { preloadLanguages.push(address); }) } - - - console.log("\x1b[2m", - "AD4M executor starting with version: ", ad4mExecutorVersion, "\n", - "Starting ad4m core with path:", appDataPath, "\n", - "=> AD4M core language addresses: languageLanguage bundle (hidden) + ", systemLanguages.slice(1, systemLanguages.length), "\n", - "Languages to be preloaded, as supplied by appLangAliases", preloadLanguages, "\n", - "Language aliases:", languageAliases, "\n", - "Bootstrap fixtures:", bootstrapFixtures, "\n", - "Resource path:", resourcePath, "\n", - "Bootstrap seed:", networkBootstrapSeed, "\n", - "\x1b[0m" - ); + + console.log("AD4M executor starting with version: "); + console.dir(config); const core = new create({ appDataPath, - appResourcePath: resourcePath, systemLanguages, preloadLanguages, languageLanguageBundle: networkBootstrapSeedData.languageLanguageBundle, @@ -191,9 +170,7 @@ export async function init(config: OuterConfig): Promise { languageAliases, bootstrapFixtures, languageLanguageOnly, - adminCredential, - swiplPath, - swiplHomePath + adminCredential } as CoreConfig); core.resolvers = createResolvers(core, config) diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs index c6e759d77..66c888e7e 100644 --- a/rust-executor/src/config.rs +++ b/rust-executor/src/config.rs @@ -6,7 +6,6 @@ use std::path::PathBuf; #[serde(rename_all = "camelCase")] pub struct Ad4mConfig { pub app_data_path: Option, - pub resource_path: Option, pub network_bootstrap_seed: Option, pub language_language_only: Option, pub run_dapp_server: Option, @@ -21,11 +20,8 @@ pub struct Ad4mConfig { pub hc_use_bootstrap: Option, pub hc_proxy_url: Option, pub hc_bootstrap_url: Option, - pub ipfs_swarm_port: Option, pub connect_holochain: Option, - pub admin_credential: Option, - pub swipl_path: Option, - pub swipl_home_path: Option, + pub admin_credential: Option } impl Ad4mConfig { @@ -38,16 +34,6 @@ impl Ad4mConfig { .expect("Could not convert data path to string"), ); } - if self.resource_path.is_none() { - let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); - data_path.push("binary"); - self.resource_path = Some( - data_path - .into_os_string() - .into_string() - .expect("Could not convert binary path to string"), - ); - } if self.network_bootstrap_seed.is_none() { let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); data_path.push("mainnet_seed.seed"); @@ -76,33 +62,6 @@ impl Ad4mConfig { if self.hc_bootstrap_url.is_none() { self.hc_bootstrap_url = Some("https://bootstrap.holo.host".to_string()); } - if self.swipl_path.is_none() { - let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); - //If OS is windows push swipl/ - if cfg!(windows) { - data_path.push("swipl"); - } - //If os is other push swipl/bin/swipl/ - else { - data_path.push("swipl/bin/swipl"); - } - self.swipl_path = Some( - data_path - .into_os_string() - .into_string() - .expect("Could not convert swipl path to string"), - ); - } - if self.swipl_home_path.is_none() { - let mut data_path = PathBuf::from(self.app_data_path.clone().unwrap()); - data_path.push("swipl/lib/swipl"); - self.swipl_home_path = Some( - data_path - .into_os_string() - .into_string() - .expect("Could not convert swipl home path to string"), - ); - } } pub fn get_json(&self) -> String { @@ -114,7 +73,6 @@ impl Default for Ad4mConfig { fn default() -> Self { let mut config = Ad4mConfig { app_data_path: None, - resource_path: None, network_bootstrap_seed: None, language_language_only: None, run_dapp_server: None, @@ -127,11 +85,8 @@ impl Default for Ad4mConfig { hc_use_bootstrap: None, hc_proxy_url: None, hc_bootstrap_url: None, - ipfs_swarm_port: None, connect_holochain: None, - admin_credential: None, - swipl_path: None, - swipl_home_path: None, + admin_credential: None }; config.prepare(); config diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 30ac21b1e..c1c6926f9 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -227,6 +227,7 @@ impl HolochainService { .await; if conductor.is_err() { + info!("Could not start holochain conductor: {:#?}", conductor.err()); panic!("Could not start holochain conductor"); } diff --git a/tests/js/tests/app.test.ts b/tests/js/tests/app.test.ts index 5324030b3..8e15e601d 100644 --- a/tests/js/tests/app.test.ts +++ b/tests/js/tests/app.test.ts @@ -24,7 +24,6 @@ describe("Apps integration tests", () => { const gqlPort = 15000 const hcAdminPort = 15001 const hcAppPort = 15002 - const ipfsSwarmPort = 15003 let adminAd4mClient: Ad4mClient | null = null let unAuthenticatedAppAd4mClient: Ad4mClient | null = null @@ -42,7 +41,7 @@ describe("Apps integration tests", () => { fs.mkdirSync(appDataPath) executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort , false, "123"); + gqlPort, hcAdminPort, hcAppPort , false, "123"); adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123"), false) await adminAd4mClient.agent.generate("passphrase") diff --git a/tests/js/tests/authentication.test.ts b/tests/js/tests/authentication.test.ts index 7787bd1f3..08fdf37b1 100644 --- a/tests/js/tests/authentication.test.ts +++ b/tests/js/tests/authentication.test.ts @@ -25,7 +25,6 @@ describe("Authentication integration tests", () => { const gqlPort = 15100 const hcAdminPort = 15101 const hcAppPort = 15102 - const ipfsSwarmPort = 15103 let executorProcess: ChildProcess | null = null let ad4mClient: Ad4mClient | null = null @@ -36,7 +35,7 @@ describe("Authentication integration tests", () => { } executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); + gqlPort, hcAdminPort, hcAppPort); ad4mClient = new Ad4mClient(apolloClient(gqlPort), false) await ad4mClient.agent.generate("passphrase") @@ -88,7 +87,6 @@ describe("Authentication integration tests", () => { const gqlPort = 15200 const hcAdminPort = 15202 const hcAppPort = 15203 - const ipfsSwarmPort = 15204 let executorProcess: ChildProcess | null = null let adminAd4mClient: Ad4mClient | null = null @@ -100,7 +98,7 @@ describe("Authentication integration tests", () => { } executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort, false, "123"); + gqlPort, hcAdminPort, hcAppPort, false, "123"); adminAd4mClient = new Ad4mClient(apolloClient(gqlPort, "123"), false) await adminAd4mClient.agent.generate("passphrase") diff --git a/tests/js/tests/integration.test.ts b/tests/js/tests/integration.test.ts index 7c7b98b24..fcb298e8d 100644 --- a/tests/js/tests/integration.test.ts +++ b/tests/js/tests/integration.test.ts @@ -79,11 +79,9 @@ describe("Integration tests", function () { this.timeout(200000) const appDataPath = path.join(TEST_DIR, 'agents', 'alice') const bootstrapSeedPath = path.join(`${__dirname}/../bootstrapSeed.json`); - const ipfsRepoPath = path.join(appDataPath) const gqlPort = 15300 const hcAdminPort = 15301 const hcAppPort = 15302 - const ipfsSwarmPort = 15303 let executorProcess: ChildProcess | null = null @@ -97,7 +95,7 @@ describe("Integration tests", function () { fs.mkdirSync(appDataPath) executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); + gqlPort, hcAdminPort, hcAppPort); testContext.alice = new Ad4mClient(apolloClient(gqlPort)) testContext.aliceCore = executorProcess @@ -127,7 +125,6 @@ describe("Integration tests", function () { const bobGqlPort = 15400 const bobHcAdminPort = 15401 const bobHcAppPort = 15402 - const bobIpfsSwarmPort = 15403 if(!fs.existsSync(path.join(TEST_DIR, 'agents'))) fs.mkdirSync(path.join(TEST_DIR, 'agents')) @@ -135,7 +132,7 @@ describe("Integration tests", function () { fs.mkdirSync(bobAppDataPath) bobExecutorProcess = await startExecutor(bobAppDataPath, bobBootstrapSeedPath, - bobGqlPort, bobHcAdminPort, bobHcAppPort, bobIpfsSwarmPort); + bobGqlPort, bobHcAdminPort, bobHcAppPort); testContext.bob = new Ad4mClient(apolloClient(bobGqlPort)) testContext.bobCore = bobExecutorProcess diff --git a/tests/js/tests/prolog-and-literals.test.ts b/tests/js/tests/prolog-and-literals.test.ts index a7371e303..35221abd2 100644 --- a/tests/js/tests/prolog-and-literals.test.ts +++ b/tests/js/tests/prolog-and-literals.test.ts @@ -30,11 +30,10 @@ describe("Prolog + Literals", () => { const gqlPort = 16600 const hcAdminPort = 16601 const hcAppPort = 16602 - const ipfsSwarmPort = 16603 before(async () => { executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); + gqlPort, hcAdminPort, hcAppPort); console.log("Creating ad4m client") ad4m = new Ad4mClient(apolloClient(gqlPort)) diff --git a/tests/js/tests/simple.test.ts b/tests/js/tests/simple.test.ts index e77f54e6f..bcde9a53c 100644 --- a/tests/js/tests/simple.test.ts +++ b/tests/js/tests/simple.test.ts @@ -19,14 +19,13 @@ describe("Integration", () => { const gqlPort = 15600 const hcAdminPort = 15601 const hcAppPort = 15602 - const ipfsSwarmPort = 15603 let ad4m: Ad4mClient | null = null let executorProcess: ChildProcess | null = null before(async () => { executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort); + gqlPort, hcAdminPort, hcAppPort); console.log("Creating ad4m client") ad4m = new Ad4mClient(apolloClient(gqlPort)) diff --git a/tests/js/tests/social-dna-flow.ts b/tests/js/tests/social-dna-flow.ts index 3892405e8..9e029a4e2 100644 --- a/tests/js/tests/social-dna-flow.ts +++ b/tests/js/tests/social-dna-flow.ts @@ -32,68 +32,91 @@ export default function socialDNATests(testContext: TestContext) { const perspective = await ad4mClient.perspective.add("sdna-test"); expect(perspective.name).to.be.equal("sdna-test"); + console.log("adding link"); await perspective.add(new Link({ source: 'ad4m://self', predicate: 'ad4m://has_zome', target: Literal.from(sdna.join('\n')).toUrl(), })) + console.log("added link"); let sDNAFacts = await ad4mClient!.perspective.queryLinks(perspective.uuid, new LinkQuery({source: "ad4m://self", predicate: "ad4m://has_zome"})); expect(sDNAFacts.length).to.be.equal(1); + console.log("got sDNAFacts"); let flows = await perspective.sdnaFlows() expect(flows[0]).to.be.equal('TODO') + console.log("got flows"); + console.log("adding link"); await perspective.add(new Link({source: 'ad4m://self', target: 'test-lang://1234'})) + console.log("added link"); let availableFlows = await perspective.availableFlows('test-lang://1234') expect(availableFlows.length).to.be.equal(1) expect(availableFlows[0]).to.be.equal('TODO') + console.log("got availableFlows"); let startAction = await perspective.infer(`start_action(Action, F), register_sdna_flow("TODO", F)`) + console.log("got startAction"); await perspective.startFlow('TODO', 'test-lang://1234') + console.log("started flow"); + console.log("getting flowLinks") let flowLinks = await ad4mClient!.perspective.queryLinks(perspective.uuid, new LinkQuery({source: "test-lang://1234", predicate: "todo://state"})) expect(flowLinks.length).to.be.equal(1) expect(flowLinks[0].data.target).to.be.equal("todo://ready") + console.log("got flowLinks") let todoState = await perspective.flowState('TODO', 'test-lang://1234') expect(todoState).to.be.equal(0) + console.log("got todoState") let expressionsInTodo = await perspective.expressionsInFlowState('TODO', 0) expect(expressionsInTodo.length).to.be.equal(1) expect(expressionsInTodo[0]).to.be.equal('test-lang://1234') + console.log("got expressionsInTodo") // continue flow let flowActions = await perspective.flowActions('TODO', 'test-lang://1234') expect(flowActions.length).to.be.equal(1) expect(flowActions[0]).to.be.equal("Start") + console.log("got flowActions") await perspective.runFlowAction('TODO', 'test-lang://1234', "Start") + console.log("ran flow action") todoState = await perspective.flowState('TODO', 'test-lang://1234') expect(todoState).to.be.equal(0.5) + console.log("got todoState") flowLinks = await ad4mClient!.perspective.queryLinks(perspective.uuid, new LinkQuery({source: "test-lang://1234", predicate: "todo://state"})) + console.log("got flowLinks") expect(flowLinks.length).to.be.equal(1) expect(flowLinks[0].data.target).to.be.equal("todo://doing") expressionsInTodo = await perspective.expressionsInFlowState('TODO', 0.5) + console.log("got expressionsInTodo") expect(expressionsInTodo.length).to.be.equal(1) expect(expressionsInTodo[0]).to.be.equal('test-lang://1234') // continue flow flowActions = await perspective.flowActions('TODO', 'test-lang://1234') + console.log("got flowActions") expect(flowActions.length).to.be.equal(1) expect(flowActions[0]).to.be.equal("Finish") await perspective.runFlowAction('TODO', 'test-lang://1234', "Finish") + console.log("ran flow action") todoState = await perspective.flowState('TODO', 'test-lang://1234') expect(todoState).to.be.equal(1) + console.log("got todoState") flowLinks = await ad4mClient!.perspective.queryLinks(perspective.uuid, new LinkQuery({source: "test-lang://1234", predicate: "todo://state"})) expect(flowLinks.length).to.be.equal(1) expect(flowLinks[0].data.target).to.be.equal("todo://done") + console.log("got flowLinks") expressionsInTodo = await perspective.expressionsInFlowState('TODO', 1) + console.log("got expressionsInTodo") expect(expressionsInTodo.length).to.be.equal(1) expect(expressionsInTodo[0]).to.be.equal('test-lang://1234') diff --git a/tests/js/utils/publishTestLangs.ts b/tests/js/utils/publishTestLangs.ts index 2c4609831..414bbe360 100644 --- a/tests/js/utils/publishTestLangs.ts +++ b/tests/js/utils/publishTestLangs.ts @@ -21,7 +21,6 @@ const perspectiveDiffSyncHashPath = path.resolve(__dirname, '..', 'scripts', 'pe const gqlPort = 15700; const hcAdminPort = 15701; const hcAppPort = 15702; -const ipfsSwarmPort = 15703; //Update this as new languages are needed within testing code const languagesToPublish = { @@ -67,7 +66,7 @@ function injectLangAliasHashes() { async function publish() { createTestingAgent(); - const executorProcess = await startExecutor(appDataPath, publishingBootstrapSeedPath, gqlPort, hcAdminPort, hcAppPort, ipfsSwarmPort, true); + const executorProcess = await startExecutor(appDataPath, publishingBootstrapSeedPath, gqlPort, hcAdminPort, hcAppPort, true); const ad4mClient = new Ad4mClient(apolloClient(gqlPort)); await ad4mClient.agent.generate("passphrase"); diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index cbfada638..5eec0cf4e 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -41,7 +41,6 @@ export async function startExecutor(dataPath: string, gqlPort: number, hcAdminPort: number, hcAppPort: number, - ipfsSwarmPort: number, languageLanguageOnly: boolean = false, adminCredential?: string ): Promise { @@ -84,9 +83,9 @@ export async function startExecutor(dataPath: string, console.log("USING LOCAL BOOTSTRAP & PROXY URL: ", bootstrapUrl, proxyUrl); if (!adminCredential) { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap false --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap false --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --run-dapp-server false`, {}) } else { - executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --ipfs-swarm-port ${ipfsSwarmPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap false --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) + executorProcess = exec(`${command} run --app-data-path ${dataPath} --gql-port ${gqlPort} --hc-admin-port ${hcAdminPort} --hc-app-port ${hcAppPort} --hc-proxy-url ${proxyUrl} --hc-bootstrap-url ${bootstrapUrl} --hc-use-bootstrap false --hc-use-proxy true --hc-use-local-proxy true --hc-use-mdns true --language-language-only ${languageLanguageOnly} --admin-credential ${adminCredential} --run-dapp-server false`, {}) } let executorReady = new Promise((resolve, reject) => { executorProcess!.stdout!.on('data', (data) => { From 84a21f7ca1898ea433c1ef9052b23e64803afb92 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 24 Aug 2023 17:52:21 +0100 Subject: [PATCH 571/722] cleanup main config logging --- executor/src/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/main.ts b/executor/src/main.ts index 62ba7022b..51204337c 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -151,7 +151,7 @@ export async function init(config: OuterConfig): Promise { }) } - console.log("AD4M executor starting with version: "); + console.log("AD4M executor starting with config:"); console.dir(config); const core = new create({ From b17a5531b4c32347035c48bae78b4a136c9c5fce Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 24 Aug 2023 17:37:03 +0200 Subject: [PATCH 572/722] Deactivate "getting pubsub" log --- executor/src/core/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/utils.ts b/executor/src/core/utils.ts index 4887778ba..73fcfa122 100644 --- a/executor/src/core/utils.ts +++ b/executor/src/core/utils.ts @@ -3,7 +3,7 @@ export function sleep(ms: number) { } export function getPubSub(): PubSub { - console.log("Getting pubsub"); + //console.log("Getting pubsub"); if (typeof PUBSUB !== 'undefined') { return PUBSUB } else { From 375e48ca95b0e7a2126652a5ce69f2a15d20460a Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Thu, 24 Aug 2023 19:30:07 +0200 Subject: [PATCH 573/722] Scryer now needs new Cargo feature "multi_thread" --- rust-executor/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 8cd44b145..f2b4cf58c 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -66,9 +66,9 @@ holochain_cli_bundle = { git = "https://github.com/coasys/holochain", branch = " holochain_types = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports" } holochain_cli_run_local_services = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports" } -scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible" } +scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible", features = ["multi_thread"] } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } - +# scryer-prolog = { path = "../../scryer-prolog", features = ["multi_thread"] } tracing = "0.1" [dev-dependencies] From dc2eb6fd19f3c71511683944648cbe7fecc72e02 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 24 Aug 2023 19:01:47 +0100 Subject: [PATCH 574/722] add more fine graned control over proxy spawning to avoid zombie processes --- tests/js/tests/integration.test.ts | 22 +++++++++-- tests/js/utils/utils.ts | 63 +++++++++++++++--------------- 2 files changed, 50 insertions(+), 35 deletions(-) diff --git a/tests/js/tests/integration.test.ts b/tests/js/tests/integration.test.ts index fcb298e8d..99d526136 100644 --- a/tests/js/tests/integration.test.ts +++ b/tests/js/tests/integration.test.ts @@ -4,7 +4,7 @@ import { isProcessRunning, sleep } from "../utils/utils"; import { Ad4mClient } from "@perspect3vism/ad4m"; import { fileURLToPath } from 'url'; import { expect } from "chai"; -import { startExecutor, apolloClient } from "../utils/utils"; +import { startExecutor, apolloClient, runHcLocalServices } from "../utils/utils"; import { ChildProcess } from 'child_process'; import perspectiveTests from "./perspective"; import agentTests from "./agent"; @@ -85,6 +85,10 @@ describe("Integration tests", function () { let executorProcess: ChildProcess | null = null + let proxyUrl: string | null = null; + let bootstrapUrl: string | null = null; + let localServicesProcess: ChildProcess | null = null; + before(async () => { if(!fs.existsSync(TEST_DIR)) { throw Error("Please ensure that prepare-test is run before running tests!"); @@ -94,8 +98,13 @@ describe("Integration tests", function () { if(!fs.existsSync(appDataPath)) fs.mkdirSync(appDataPath) + let localServices = await runHcLocalServices(); + proxyUrl = localServices.proxyUrl; + bootstrapUrl = localServices.bootstrapUrl; + localServicesProcess = localServices.process; + executorProcess = await startExecutor(appDataPath, bootstrapSeedPath, - gqlPort, hcAdminPort, hcAppPort); + gqlPort, hcAdminPort, hcAppPort, false, undefined, proxyUrl!, bootstrapUrl!); testContext.alice = new Ad4mClient(apolloClient(gqlPort)) testContext.aliceCore = executorProcess @@ -109,6 +118,13 @@ describe("Integration tests", function () { await sleep(500); } } + if (localServicesProcess) { + while (!localServicesProcess?.killed) { + let status = localServicesProcess?.kill(); + console.log("killed local services with", status); + await sleep(500); + } + } }) describe('Agent / Agent-Setup', agentTests(testContext)) @@ -132,7 +148,7 @@ describe("Integration tests", function () { fs.mkdirSync(bobAppDataPath) bobExecutorProcess = await startExecutor(bobAppDataPath, bobBootstrapSeedPath, - bobGqlPort, bobHcAdminPort, bobHcAppPort); + bobGqlPort, bobHcAdminPort, bobHcAppPort, false, undefined, proxyUrl!, bootstrapUrl!); testContext.bob = new Ad4mClient(apolloClient(bobGqlPort)) testContext.bobCore = bobExecutorProcess diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 5eec0cf4e..174a3d13d 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -11,9 +11,6 @@ import { dirname } from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); -let proxyUrl: null | string = null; -let bootstrapUrl: null | string = null; - export async function isProcessRunning(processName: string): Promise { const cmd = (() => { switch (process.platform) { @@ -33,8 +30,34 @@ export async function isProcessRunning(processName: string): Promise { resolve(stdout.toLowerCase().indexOf(processName.toLowerCase()) > -1) }) - }) - } + }) +} + +export async function runHcLocalServices(): Promise<{proxyUrl: string | null, bootstrapUrl: string | null, process: ChildProcess}> { + const command = path.resolve(__dirname, '..', '..', '..','target', 'release', 'ad4m'); + let servicesProcess = exec(`${command} run-local-hc-services`); + + let proxyUrl: string | null = null; + let bootstrapUrl: string | null = null; + + let servicesReady = new Promise((resolve, reject) => { + servicesProcess.stdout!.on('data', (data) => { + if (data.includes("HC BOOTSTRAP - ADDR")) { + bootstrapUrl = data.split(" ")[5]; + bootstrapUrl = bootstrapUrl!.substring(0, bootstrapUrl!.length - 3); + } + + if (data.includes("HC SIGNAL - ADDR")) { + proxyUrl = data.split(" ")[5]; + proxyUrl = proxyUrl!.substring(0, proxyUrl!.length - 3); + resolve(); + } + }); + }); + + await servicesReady; + return {proxyUrl, bootstrapUrl, process: servicesProcess}; +} export async function startExecutor(dataPath: string, bootstrapSeedPath: string, @@ -42,7 +65,9 @@ export async function startExecutor(dataPath: string, hcAdminPort: number, hcAppPort: number, languageLanguageOnly: boolean = false, - adminCredential?: string + adminCredential?: string, + proxyUrl: string = "wss://signal.holotest.net", + bootstrapUrl: string = "https://bootstrap.holo.host", ): Promise { const command = path.resolve(__dirname, '..', '..', '..','target', 'release', 'ad4m'); @@ -53,32 +78,6 @@ export async function startExecutor(dataPath: string, execSync(`${command} init --data-path ${dataPath} --network-bootstrap-seed ${bootstrapSeedPath}`, {cwd: process.cwd()}) console.log("Starting executor") - try { - execSync("killall ad4m") - } catch (e) { - //console.log("No ad4m process running") - } - - if (proxyUrl === null || bootstrapUrl === null) { - let servicesProcess = exec(`${command} run-local-hc-services`); - - let servicesReady = new Promise((resolve, reject) => { - servicesProcess.stdout!.on('data', (data) => { - if (data.includes("HC BOOTSTRAP - ADDR")) { - bootstrapUrl = data.split(" ")[5]; - bootstrapUrl = bootstrapUrl!.substring(0, bootstrapUrl!.length - 3); - } - - if (data.includes("HC SIGNAL - ADDR")) { - proxyUrl = data.split(" ")[5]; - proxyUrl = proxyUrl!.substring(0, proxyUrl!.length - 3); - resolve(); - } - }); - }); - - await servicesReady; - }; console.log("USING LOCAL BOOTSTRAP & PROXY URL: ", bootstrapUrl, proxyUrl); From bd5304a633a2cf1b8ba8544b344b1cfa68370fb7 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 24 Aug 2023 19:22:30 +0100 Subject: [PATCH 575/722] cleanup test logging --- tests/js/tests/neighbourhood.ts | 2 ++ tests/js/tests/social-dna-flow.ts | 23 ----------------------- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index 72e5a9841..329494b0b 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -86,6 +86,7 @@ export default function neighbourhoodTests(testContext: TestContext) { let tries = 1 while(bobLinks.length < 1 && tries < 20) { + console.log("Bob retrying getting links..."); await sleep(1000) bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) tries++ @@ -116,6 +117,7 @@ export default function neighbourhoodTests(testContext: TestContext) { let tries = 1 while(bobLinks.length < 1 && tries < 20) { + console.log("Bob retrying getting NOT received links..."); await sleep(1000) bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) tries++ diff --git a/tests/js/tests/social-dna-flow.ts b/tests/js/tests/social-dna-flow.ts index 9e029a4e2..3892405e8 100644 --- a/tests/js/tests/social-dna-flow.ts +++ b/tests/js/tests/social-dna-flow.ts @@ -32,91 +32,68 @@ export default function socialDNATests(testContext: TestContext) { const perspective = await ad4mClient.perspective.add("sdna-test"); expect(perspective.name).to.be.equal("sdna-test"); - console.log("adding link"); await perspective.add(new Link({ source: 'ad4m://self', predicate: 'ad4m://has_zome', target: Literal.from(sdna.join('\n')).toUrl(), })) - console.log("added link"); let sDNAFacts = await ad4mClient!.perspective.queryLinks(perspective.uuid, new LinkQuery({source: "ad4m://self", predicate: "ad4m://has_zome"})); expect(sDNAFacts.length).to.be.equal(1); - console.log("got sDNAFacts"); let flows = await perspective.sdnaFlows() expect(flows[0]).to.be.equal('TODO') - console.log("got flows"); - console.log("adding link"); await perspective.add(new Link({source: 'ad4m://self', target: 'test-lang://1234'})) - console.log("added link"); let availableFlows = await perspective.availableFlows('test-lang://1234') expect(availableFlows.length).to.be.equal(1) expect(availableFlows[0]).to.be.equal('TODO') - console.log("got availableFlows"); let startAction = await perspective.infer(`start_action(Action, F), register_sdna_flow("TODO", F)`) - console.log("got startAction"); await perspective.startFlow('TODO', 'test-lang://1234') - console.log("started flow"); - console.log("getting flowLinks") let flowLinks = await ad4mClient!.perspective.queryLinks(perspective.uuid, new LinkQuery({source: "test-lang://1234", predicate: "todo://state"})) expect(flowLinks.length).to.be.equal(1) expect(flowLinks[0].data.target).to.be.equal("todo://ready") - console.log("got flowLinks") let todoState = await perspective.flowState('TODO', 'test-lang://1234') expect(todoState).to.be.equal(0) - console.log("got todoState") let expressionsInTodo = await perspective.expressionsInFlowState('TODO', 0) expect(expressionsInTodo.length).to.be.equal(1) expect(expressionsInTodo[0]).to.be.equal('test-lang://1234') - console.log("got expressionsInTodo") // continue flow let flowActions = await perspective.flowActions('TODO', 'test-lang://1234') expect(flowActions.length).to.be.equal(1) expect(flowActions[0]).to.be.equal("Start") - console.log("got flowActions") await perspective.runFlowAction('TODO', 'test-lang://1234', "Start") - console.log("ran flow action") todoState = await perspective.flowState('TODO', 'test-lang://1234') expect(todoState).to.be.equal(0.5) - console.log("got todoState") flowLinks = await ad4mClient!.perspective.queryLinks(perspective.uuid, new LinkQuery({source: "test-lang://1234", predicate: "todo://state"})) - console.log("got flowLinks") expect(flowLinks.length).to.be.equal(1) expect(flowLinks[0].data.target).to.be.equal("todo://doing") expressionsInTodo = await perspective.expressionsInFlowState('TODO', 0.5) - console.log("got expressionsInTodo") expect(expressionsInTodo.length).to.be.equal(1) expect(expressionsInTodo[0]).to.be.equal('test-lang://1234') // continue flow flowActions = await perspective.flowActions('TODO', 'test-lang://1234') - console.log("got flowActions") expect(flowActions.length).to.be.equal(1) expect(flowActions[0]).to.be.equal("Finish") await perspective.runFlowAction('TODO', 'test-lang://1234', "Finish") - console.log("ran flow action") todoState = await perspective.flowState('TODO', 'test-lang://1234') expect(todoState).to.be.equal(1) - console.log("got todoState") flowLinks = await ad4mClient!.perspective.queryLinks(perspective.uuid, new LinkQuery({source: "test-lang://1234", predicate: "todo://state"})) expect(flowLinks.length).to.be.equal(1) expect(flowLinks[0].data.target).to.be.equal("todo://done") - console.log("got flowLinks") expressionsInTodo = await perspective.expressionsInFlowState('TODO', 1) - console.log("got expressionsInTodo") expect(expressionsInTodo.length).to.be.equal(1) expect(expressionsInTodo[0]).to.be.equal('test-lang://1234') From 8c9910da3dca0b732e917f6d705ddb56727449a5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 25 Aug 2023 12:56:44 +0100 Subject: [PATCH 576/722] fix bootstrap and proxyUrl parsing --- tests/js/tests/agent-language.ts | 5 ++--- tests/js/utils/utils.ts | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/js/tests/agent-language.ts b/tests/js/tests/agent-language.ts index b34292efb..0279121f0 100644 --- a/tests/js/tests/agent-language.ts +++ b/tests/js/tests/agent-language.ts @@ -5,16 +5,15 @@ import { expect } from "chai"; export default function agentLanguageTests(testContext: TestContext) { return () => { it("works across remote agents", async () => { - const alice = testContext.alice! const didAlice = (await alice.agent.status()).did! - const bob = testContext.bob! + const bob = testContext.bob! const didBob = (await bob.agent.status()).did! const aliceHerself = await alice.agent.me() const bobHimself = await bob.agent.me() - await sleep(5000) + await sleep(1000) const bobSeenFromAlice = await alice.agent.byDID(didBob) expect(bobSeenFromAlice).not.to.be.undefined diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 174a3d13d..586e20a14 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -44,12 +44,12 @@ export async function runHcLocalServices(): Promise<{proxyUrl: string | null, bo servicesProcess.stdout!.on('data', (data) => { if (data.includes("HC BOOTSTRAP - ADDR")) { bootstrapUrl = data.split(" ")[5]; - bootstrapUrl = bootstrapUrl!.substring(0, bootstrapUrl!.length - 3); + bootstrapUrl = bootstrapUrl!.substring(0, bootstrapUrl!.length - 2); } if (data.includes("HC SIGNAL - ADDR")) { proxyUrl = data.split(" ")[5]; - proxyUrl = proxyUrl!.substring(0, proxyUrl!.length - 3); + proxyUrl = proxyUrl!.substring(0, proxyUrl!.length - 2); resolve(); } }); From 61fa0a5c7a9716fca35028d6d2d8212ca9753311 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 25 Aug 2023 13:03:39 +0100 Subject: [PATCH 577/722] reduce sleeps on neighbourhood tests --- tests/js/tests/neighbourhood.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index 329494b0b..422c45b0e 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -76,11 +76,11 @@ export default function neighbourhoodTests(testContext: TestContext) { await testContext.makeAllNodesKnown() expect(bobP1!.state).to.be.oneOf([PerspectiveState.LinkLanguageInstalledButNotSynced, PerspectiveState.Synced]); - await sleep(5000) + await sleep(1000) await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) - await sleep(5000) + await sleep(1000) let bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) let tries = 1 @@ -107,16 +107,16 @@ export default function neighbourhoodTests(testContext: TestContext) { await testContext.makeAllNodesKnown() - await sleep(5000) + await sleep(1000) await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}, 'local') - await sleep(5000) + await sleep(1000) let bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) let tries = 1 - while(bobLinks.length < 1 && tries < 20) { + while(bobLinks.length < 1 && tries < 5) { console.log("Bob retrying getting NOT received links..."); await sleep(1000) bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) @@ -198,7 +198,7 @@ export default function neighbourhoodTests(testContext: TestContext) { const aliceP1 = await alice.perspective.add("telepresence") const linkLang = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood for Telepresence"})); const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, linkLang.address, new Perspective()) - await sleep(60000) + await sleep(1000) const bobP1Handle = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); const bobP1 = await bob.perspective.byUUID(bobP1Handle.uuid) await testContext.makeAllNodesKnown() @@ -207,7 +207,7 @@ export default function neighbourhoodTests(testContext: TestContext) { bobNH = bobP1!.getNeighbourhoodProxy() aliceDID = (await alice.agent.me()).did bobDID = (await bob.agent.me()).did - await sleep(60000) + await sleep(5000) }) it('they see each other in `otherAgents`', async () => { @@ -292,7 +292,7 @@ export default function neighbourhoodTests(testContext: TestContext) { await aliceNH!.sendSignal(bobDID!, aliceSignal) - await sleep(2000) + await sleep(1000) expect(bobCalls).to.be.equal(1) expect(aliceCalls).to.be.equal(0) @@ -308,7 +308,7 @@ export default function neighbourhoodTests(testContext: TestContext) { await bobNH!.sendBroadcastU(bobSignal) - await sleep(2000) + await sleep(1000) expect(aliceCalls).to.be.equal(1) From 756c5a5349317f8183fa97b3323f315f1683eae6 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 25 Aug 2023 13:16:32 +0100 Subject: [PATCH 578/722] install hc in ci runs --- .github/workflows/agent-language-tests.yml | 3 ++- .../direct-message-language-tests.yml | 3 ++- .../workflows/file-storage-language-tests.yml | 6 ++++-- .github/workflows/integration_cli.yml | 3 +++ .github/workflows/integration_js.yml | 3 +++ .github/workflows/p-diff-sync-tests.yml | 21 ++++++++++++------- .github/workflows/publish.yml | 5 +++++ .github/workflows/publish_staging.yml | 3 +++ 8 files changed, 36 insertions(+), 11 deletions(-) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index a5fa40f82..2a2d41768 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -45,6 +45,7 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/agent-language/hc-dna/zomes/tests && yarn install && yarn run test \ No newline at end of file diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index 345fcefd2..a6a6ef2e5 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -45,6 +45,7 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/direct-message-language/hc-dna/tests && yarn install && yarn run test \ No newline at end of file diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index b5da5cf1a..3d3d75b81 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -45,8 +45,9 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/file-storage/hc-dna/tests && yarn install && yarn run test integration: @@ -83,6 +84,7 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/file-storage && yarn run integration-test \ No newline at end of file diff --git a/.github/workflows/integration_cli.yml b/.github/workflows/integration_cli.yml index 48defdf8b..bc55f1803 100644 --- a/.github/workflows/integration_cli.yml +++ b/.github/workflows/integration_cli.yml @@ -51,6 +51,9 @@ jobs: with: deno-version: v1.32.4 + - name: Install HC + run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - name: Yarn Install run: yarn install diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 4255465ca..a6d0382fa 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -51,6 +51,9 @@ jobs: with: deno-version: v1.32.4 + - name: Install HC + run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - name: Install dependencies run: yarn install diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 72367a8a9..8584d97ff 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -74,8 +74,9 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-pull render: @@ -112,8 +113,9 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-render revisions: @@ -150,8 +152,9 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-revisions signals: @@ -188,8 +191,9 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-signals @@ -227,8 +231,9 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-stress telepresence: @@ -265,8 +270,9 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build-languages - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-telepresence integration: @@ -303,6 +309,7 @@ jobs: cache: 'npm' - run: rustup target add wasm32-unknown-unknown - run: yarn install + - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" + - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - run: yarn run build - - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" - run: cd bootstrap-languages/p-diff-sync && yarn run integration-test \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index cb15c3a20..f7cbc7614 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,10 +17,15 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16 + - name: Install Deno uses: denoland/setup-deno@v1 with: deno-version: v1.32.4 + + - name: Install HC + run: cargo install holochain_cli --git https://github.com/coasys/holochain || echo "hc already installed" + - name: Create Tags From id: create_tag uses: jaywcjlove/create-tag-action@v1.3.14 diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 43c648150..a63a3e533 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -23,6 +23,9 @@ jobs: with: deno-version: v1.32.4 + - name: Install HC + run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - name: Create Tags From id: create_tag uses: jaywcjlove/create-tag-action@v1.3.14 From 8002aa2d4cf204865a7c68ede64feea4de129778 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 25 Aug 2023 13:16:36 +0100 Subject: [PATCH 579/722] Cargo.lock --- Cargo.lock | 503 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 288 insertions(+), 215 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 25a65c66b..5ef7468c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,7 +19,7 @@ dependencies = [ "ad4m-client", "anyhow", "chrono", - "clap 4.3.23", + "clap 4.4.0", "colour", "dirs 4.0.0", "futures", @@ -42,7 +42,7 @@ dependencies = [ "anyhow", "async-tungstenite", "chrono", - "clap 4.3.23", + "clap 4.4.0", "dirs 4.0.0", "futures", "graphql-ws-client", @@ -244,24 +244,23 @@ dependencies = [ [[package]] name = "anstream" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is-terminal", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" +checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" [[package]] name = "anstyle-parse" @@ -283,9 +282,9 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "1.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" +checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" dependencies = [ "anstyle", "windows-sys 0.48.0", @@ -401,15 +400,15 @@ dependencies = [ [[package]] name = "ast_node" -version = "0.9.5" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c09c69dffe06d222d072c878c3afe86eee2179806f20503faec97250268b4c24" +checksum = "c704e2f6ee1a98223f5a7629a6ef0f3decb3b552ed282889dc957edff98ce1e6" dependencies = [ - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "quote 1.0.33", "swc_macros_common", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] @@ -444,6 +443,20 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + [[package]] name = "async-compression" version = "0.4.1" @@ -712,7 +725,7 @@ dependencies = [ "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide", + "miniz_oxide 0.7.1", "object 0.32.0", "rustc-demangle", ] @@ -1388,24 +1401,24 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.23" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3" +checksum = "1d5f1946157a96594eb2d2c10eb7ad9a2b27518cb3000209dec700c35df9197d" dependencies = [ "clap_builder", - "clap_derive 4.3.12", + "clap_derive 4.4.0", "once_cell", ] [[package]] name = "clap_builder" -version = "4.3.23" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98" +checksum = "78116e32a042dd73c2901f0dc30790d20ff3447f3e3472fad359e8c3d282bcd6" dependencies = [ "anstream", "anstyle", - "clap_lex 0.5.0", + "clap_lex 0.5.1", "strsim 0.10.0", "terminal_size", ] @@ -1425,9 +1438,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.3.12" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" +checksum = "c9fd1a5729c4548118d7d70ff234a44868d00489a4b6597b0b020918a0e91a1a" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.66", @@ -1446,9 +1459,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" [[package]] name = "clipboard-win" @@ -1470,15 +1483,6 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "cmake" -version = "0.1.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" -dependencies = [ - "cc", -] - [[package]] name = "cocoa" version = "0.24.1" @@ -2398,9 +2402,9 @@ dependencies = [ [[package]] name = "deno_ast" -version = "0.28.0" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00c93119b1c487a85603406a988a0ca9a1d0e5315404cccc5c158fb484b1f5a2" +checksum = "6b17e25531279d9795aeb076909c91c9b369fa63fd4d801486950577d0457d22" dependencies = [ "anyhow", "base64 0.13.1", @@ -2434,9 +2438,9 @@ dependencies = [ [[package]] name = "deno_broadcast_channel" -version = "0.110.0" +version = "0.108.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40c3d51cff8e603b4d8071290ea1e120d97969f33b0447b8c4aa7e5463bc6c9" +checksum = "af3e8ca691a282c918cc5c223dcd5840286954a396e3108ade4c3c3b55017ebf" dependencies = [ "async-trait", "deno_core", @@ -2446,9 +2450,9 @@ dependencies = [ [[package]] name = "deno_cache" -version = "0.48.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44250183b4f3382b9e8046719f4214450026962343b3f733daa10fc42c98afde" +checksum = "bc385e88d95f925f3384319cde1e813022d4842a9a791c79b47699334e81d516" dependencies = [ "async-trait", "deno_core", @@ -2460,18 +2464,18 @@ dependencies = [ [[package]] name = "deno_console" -version = "0.116.0" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cca5045174defc692b1db5002f548382f4139fa30f3c0767f904df028e4f749" +checksum = "7a3df41ff26499c3f4f352f8fc1fe6bb50c39121675bf594b3af511c28db84c2" dependencies = [ "deno_core", ] [[package]] name = "deno_core" -version = "0.202.0" +version = "0.199.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d4f3ad9c2861e0bb8745e1f228aaee04782a9ab6a3c3bbb887e60d7faf087a" +checksum = "70fbd0cb620ac36fac08d708c5f01362280c5aa8149657a225db4932bd73758e" dependencies = [ "anyhow", "bytes", @@ -2495,9 +2499,9 @@ dependencies = [ [[package]] name = "deno_crypto" -version = "0.130.0" +version = "0.128.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de38d310ecaec36c37953a293312502b259b4d4054ca0b9c03064b95d4b4aa5" +checksum = "5000445c43538cb54a021e761071137ebab615c751e17178e564c56647414f5c" dependencies = [ "aes", "aes-gcm", @@ -2531,9 +2535,9 @@ dependencies = [ [[package]] name = "deno_fetch" -version = "0.140.0" +version = "0.138.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6cfbc01f08ea26c979ceacc034175a66851d061d45b4fa85ea1a22088b09ecb" +checksum = "af49c674cf373a8946e67dae1d2badc0c1176f9ecb84cda168c5c9421ef15b3a" dependencies = [ "bytes", "data-url", @@ -2549,9 +2553,9 @@ dependencies = [ [[package]] name = "deno_ffi" -version = "0.103.0" +version = "0.101.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd158e9aa23eaaf4d9aeadb09d398184f3e531766864924e72da8a99b91e76c" +checksum = "6cb34b1d3bb618b0bbbc5ebc148301263824a5673290483ff0a52386913a43e2" dependencies = [ "deno_core", "dlopen", @@ -2567,9 +2571,9 @@ dependencies = [ [[package]] name = "deno_fs" -version = "0.26.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72cc1bbfeab39476376ec931195110b5734717d7def55e035fcf6a374691105b" +checksum = "5ddb0692853905a87a96666c77d58e4adf1cf3671d1a7ec7edafe301cfce9441" dependencies = [ "async-trait", "deno_core", @@ -2587,11 +2591,11 @@ dependencies = [ [[package]] name = "deno_http" -version = "0.111.0" +version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8129c068b7c94a5642b818a9a04c594929397b5b632d77dd1ee7beb91d34b9e" +checksum = "8d083d63029b9cd366bcee007db8348e7c515c19e5432f0d2f138f03e5908ca1" dependencies = [ - "async-compression", + "async-compression 0.3.15", "async-trait", "base64 0.13.1", "brotli", @@ -2623,9 +2627,9 @@ dependencies = [ [[package]] name = "deno_io" -version = "0.26.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9a395c43e98604c320853c8fdcbcfeaa6a9c09522b9b52ad0c29c9eb4405c34" +checksum = "b4b0886f3be06a065c9738b4162c30634ea2645eaad7efcf13ec197c63d67d15" dependencies = [ "async-trait", "deno_core", @@ -2638,16 +2642,15 @@ dependencies = [ [[package]] name = "deno_kv" -version = "0.24.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5135c3056f07882ef3616630438e09e4489d797544195de88175379f7bfa79f6" +checksum = "677532e9ee16ef744205bae030f5047f66f5ff5ad6359b6a0e393197a78cd2b3" dependencies = [ "anyhow", "async-trait", "base64 0.13.1", "deno_core", "hex", - "log", "num-bigint", "rand 0.8.5", "rusqlite", @@ -2657,18 +2660,6 @@ dependencies = [ "uuid 1.4.1", ] -[[package]] -name = "deno_lockfile" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e1fcc91fa4e18c3e0574965d7133709e76eda665cb589de703219f0819dfaec" -dependencies = [ - "ring", - "serde", - "serde_json", - "thiserror", -] - [[package]] name = "deno_media_type" version = "0.1.1" @@ -2682,9 +2673,9 @@ dependencies = [ [[package]] name = "deno_napi" -version = "0.46.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fb91e734b61504b16015d9ef35b09cca046f041e49a2affdb5f0a126e2b5e8" +checksum = "aef1534b43dcf5cb8d28ee72035e4d5a426952fa305b75f0100dac3c89c99a4e" dependencies = [ "deno_core", "libloading 0.7.4", @@ -2692,9 +2683,9 @@ dependencies = [ [[package]] name = "deno_net" -version = "0.108.0" +version = "0.106.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260baab6b6d9a09ced5b561be57aeea871194bc5b0deb30fe78c67ece0f9b2cc" +checksum = "a76fa1823075955b96bbc1a58db8584f4b4b6da3411c4be4d77063852ccf067a" dependencies = [ "deno_core", "deno_tls", @@ -2710,9 +2701,9 @@ dependencies = [ [[package]] name = "deno_node" -version = "0.53.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55d65c11765f445bfa28f66cc181d0e815b57182416e31b96e28606153090019" +checksum = "ede647cd70b9cf8f3d678cf3e07844a74ac1d3f20beba7bc4cd63ffd1349a56e" dependencies = [ "aes", "brotli", @@ -2770,13 +2761,12 @@ dependencies = [ [[package]] name = "deno_npm" -version = "0.12.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c90198ae433bf22ac9b39fe5e18748d9d5b36db042ef1c24637f43d3b5e101e0" +checksum = "fa5d1097de53e8ce3316d3e44095e253719ae367cf7478263f83082f44dddabf" dependencies = [ "anyhow", "async-trait", - "deno_lockfile", "deno_semver", "futures", "log", @@ -2787,14 +2777,14 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.80.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb6a1ceabfbab1c29b32872e68ec994d393b58ccdf12a835d150199555496f3" +checksum = "8b345c096fd8433337ed8e1727f4732397c134e188e1739c88b0c077869020f3" dependencies = [ "deno-proc-macro-rules", "lazy-regex", "once_cell", - "pmutil", + "pmutil 0.6.1", "proc-macro-crate", "proc-macro2 1.0.66", "quote 1.0.33", @@ -2808,9 +2798,9 @@ dependencies = [ [[package]] name = "deno_runtime" -version = "0.124.0" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aa440bb67cccecec66ea3a785898e8dcd374d8a7ba5f32a78f0c28e6598f882" +checksum = "a15dd7fe2a7c53ffbbd55966eb7bf2298291b77a47e043f768f0aa1732f61e95" dependencies = [ "atty", "console_static_text", @@ -2864,9 +2854,9 @@ dependencies = [ [[package]] name = "deno_semver" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f739a9d90c47e2af7e2fcbae0976360f3fb5292f7288a084d035ed44d12a288" +checksum = "96f99990457915af1f444900003ffd5a9d3ab2e5337b06d681e56ca371b3e11f" dependencies = [ "monch", "once_cell", @@ -2877,9 +2867,9 @@ dependencies = [ [[package]] name = "deno_tls" -version = "0.103.0" +version = "0.101.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0073142d27b7c9361301f680440cc57786fabf5f62755338d14c01ef4856ccf7" +checksum = "02167d4913ff4b1f93f0f3182b6ebee67f41129a94ea9ef8ce15dff51649aff4" dependencies = [ "deno_core", "once_cell", @@ -2893,9 +2883,9 @@ dependencies = [ [[package]] name = "deno_url" -version = "0.116.0" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b7267f725a8d9d565377600137d705b094b0b79720b05f2abf4dcfde5245" +checksum = "8fe9282c24607371fd2e6db7fca22da861032317c1396c08506a5a04ec81927a" dependencies = [ "deno_core", "serde", @@ -2904,17 +2894,15 @@ dependencies = [ [[package]] name = "deno_web" -version = "0.147.0" +version = "0.145.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3849a0f7062b20288896bc40c808553fa96566cc8bf4d400fa73e2ba65f93ee" +checksum = "b757302c2f04de142ee2962078f5f255caef80c792a9989fa860b867143a71e7" dependencies = [ "async-trait", "base64-simd", - "bytes", "deno_core", "encoding_rs", "flate2", - "futures", "serde", "tokio", "uuid 1.4.1", @@ -2923,18 +2911,18 @@ dependencies = [ [[package]] name = "deno_webidl" -version = "0.116.0" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "880ecf26f3218018fac3931ca2b26f07c20faf42017755b3d2b291ee63a6c73f" +checksum = "1a12d8e0f1ef5af84075819a2568af54f8e073886a2c2941ac6e34c2092508d7" dependencies = [ "deno_core", ] [[package]] name = "deno_websocket" -version = "0.121.0" +version = "0.119.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dbcb4e9f39674b2296121ef8ee0ebdf7752df99c91b1efe0ccec9a70ffa9d69" +checksum = "3249bed57e808fdb99f7d39d8711210b2a0380638f0520447cb4794200c81d56" dependencies = [ "bytes", "deno_core", @@ -2951,9 +2939,9 @@ dependencies = [ [[package]] name = "deno_webstorage" -version = "0.111.0" +version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92c72d0811a4b539cbc3bd4c24021135e1c5b73088b71dd22d002f2f01151e9" +checksum = "03f122fd89054593e11e34fedbc063d00b407ea2b26c910171de4416618140b1" dependencies = [ "deno_core", "deno_web", @@ -3311,9 +3299,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dprint-swc-ext" -version = "0.11.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f115ea5b6f5d0d02a25a9364f41b8c4f857452c299309dcfd29a694724d0566" +checksum = "dd4dda8a1b920e8be367aeaad035753d21bb69b3c50515afb41ab1eefbb886b5" dependencies = [ "bumpalo", "num-bigint", @@ -3719,17 +3707,17 @@ checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" [[package]] name = "fastwebsockets" -version = "0.4.4" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6185b6dc9dddc4db0dedd2e213047e93bcbf7a0fb092abc4c4e4f3195efdb4" +checksum = "1925eb5ee48fffa504a9edce24b3b4d43e2809d1cc713a1df2b13a46e661b3c6" dependencies = [ "base64 0.21.2", + "cc", "hyper 0.14.27", "pin-project", "rand 0.8.5", "sha1 0.10.5", "simdutf8", - "thiserror", "tokio", "utf-8", ] @@ -3821,13 +3809,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.27" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ "crc32fast", - "libz-ng-sys", - "miniz_oxide", + "miniz_oxide 0.5.4", ] [[package]] @@ -3897,14 +3884,14 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "from_variant" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ec5dc38ee19078d84a692b1c41181ff9f94331c76cee66ff0208c770b5e54f" +checksum = "1d449976075322384507443937df2f1d5577afbf4282f12a5a66ef29fa3e6307" dependencies = [ - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "swc_macros_common", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] @@ -5077,7 +5064,7 @@ dependencies = [ "kitsune_p2p", "mockall", "serde", - "serde_derive 1.0.185", + "serde_derive 1.0.186", "thiserror", "tokio", "tracing", @@ -5090,7 +5077,7 @@ version = "0.3.0-beta-dev.13" source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "anyhow", - "clap 4.3.23", + "clap 4.4.0", "futures", "holochain_serialized_bytes", "holochain_types", @@ -5110,7 +5097,7 @@ name = "holochain_cli_run_local_services" version = "0.3.0-beta-dev.7" source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ - "clap 4.3.23", + "clap 4.4.0", "futures", "holochain_trace", "if-addrs 0.10.1", @@ -5136,7 +5123,7 @@ dependencies = [ "holochain_zome_types", "kitsune_p2p", "serde", - "serde_derive 1.0.185", + "serde_derive 1.0.186", "serde_yaml 0.9.25", "structopt", "thiserror", @@ -5282,7 +5269,7 @@ dependencies = [ "rusqlite", "scheduled-thread-pool", "serde", - "serde_derive 1.0.185", + "serde_derive 1.0.186", "serde_json", "shrinkwraprs", "sqlformat 0.1.8", @@ -5403,7 +5390,7 @@ dependencies = [ "rusqlite", "serde", "serde_bytes", - "serde_derive 1.0.185", + "serde_derive 1.0.186", "serde_json", "serde_with 1.14.0", "serde_yaml 0.9.25", @@ -5664,16 +5651,16 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "human-panic" -version = "1.1.5" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a841f87949b0dd751864e769a870be79dc34abcee1cf31d737a61d498b22b6" +checksum = "eb2df2fb4e13fa697d21d93061ebcbbd876f5ef643b48ff59cfab57a726ef140" dependencies = [ "anstream", "anstyle", "backtrace", "os_info", "serde", - "serde_derive 1.0.185", + "serde_derive 1.0.186", "toml 0.7.6", "uuid 1.4.1", ] @@ -5965,7 +5952,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73c0fefcb6d409a6587c07515951495d482006f89a21daa0f2f783aa4fd5e027" dependencies = [ "ahash 0.8.3", - "clap 4.3.23", + "clap 4.4.0", "crossbeam-channel", "crossbeam-utils", "dashmap 5.5.1", @@ -6176,15 +6163,15 @@ checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "is-macro" -version = "0.3.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4467ed1321b310c2625c5aa6c1b1ffc5de4d9e42668cf697a08fb033ee8265e" +checksum = "8a7d079e129b77477a49c5c4f1cfe9ce6c2c909ef52520693e8e811a714c7b20" dependencies = [ "Inflector", - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "quote 1.0.33", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] @@ -6811,7 +6798,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f404a90a744e32e8be729034fc33b90cf2a56418fbf594d69aa3c0214ad414e5" dependencies = [ "cfg-if 1.0.0", - "lexical-core", + "lexical-core 0.7.6", +] + +[[package]] +name = "lexical" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" +dependencies = [ + "lexical-core 0.8.5", ] [[package]] @@ -6827,6 +6823,70 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "lexical-core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" +dependencies = [ + "lexical-parse-integer", + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-parse-integer" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" +dependencies = [ + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-util" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "lexical-write-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" +dependencies = [ + "lexical-util", + "lexical-write-integer", + "static_assertions", +] + +[[package]] +name = "lexical-write-integer" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" +dependencies = [ + "lexical-util", + "static_assertions", +] + [[package]] name = "libappindicator" version = "0.7.1" @@ -7039,16 +7099,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "libz-ng-sys" -version = "1.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dd9f43e75536a46ee0f92b758f6b63846e594e86638c61a9251338a65baea63" -dependencies = [ - "cmake", - "libc", -] - [[package]] name = "libz-sys" version = "1.1.12" @@ -7455,6 +7505,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881" +[[package]] +name = "miniz_oxide" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +dependencies = [ + "adler", +] + [[package]] name = "miniz_oxide" version = "0.7.1" @@ -7575,7 +7634,7 @@ dependencies = [ "rmp-serde 0.15.5", "serde", "serde_bytes", - "serde_derive 1.0.185", + "serde_derive 1.0.186", "serde_yaml 0.9.25", "thiserror", ] @@ -8949,6 +9008,17 @@ dependencies = [ "time 0.3.23", ] +[[package]] +name = "pmutil" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "pmutil" version = "0.6.1" @@ -8970,7 +9040,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.7.1", ] [[package]] @@ -9785,11 +9855,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.19" +version = "0.11.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b9b67e2ca7dd9e9f9285b759de30ff538aab981abaaf7bc9bd90b84a0126c3" +checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" dependencies = [ - "async-compression", + "async-compression 0.4.1", "base64 0.21.2", "bytes", "encoding_rs", @@ -10090,7 +10160,7 @@ dependencies = [ "base64 0.21.2", "chrono", "cid", - "clap 4.3.23", + "clap 4.4.0", "crypto_box", "deno_core", "deno_runtime", @@ -10385,7 +10455,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scryer-prolog" version = "0.9.1" -source = "git+https://github.com/coasys/scryer-prolog?branch=ad4m-compatible#fb470f276756d3974894a08b1a672de8cd65ec27" +source = "git+https://github.com/coasys/scryer-prolog?branch=ad4m-compatible#7d78acf2f99b6177fb9a6f14d1021772f1416cf7" dependencies = [ "base64 0.12.3", "bit-set", @@ -10410,7 +10480,7 @@ dependencies = [ "hyper-util", "indexmap 1.9.3", "lazy_static", - "lexical", + "lexical 5.2.2", "libc", "libffi 3.2.0 (git+https://github.com/coasys/libffi-rs.git?branch=window-space-no-link)", "libloading 0.7.4", @@ -10669,9 +10739,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.185" +version = "1.0.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec" +checksum = "5ad697f7e0b65af4983a4ce8f56ed5b357e8d3c36651bf6a7e13639c17b8e670" dependencies = [ "proc-macro2 1.0.66", "quote 1.0.33", @@ -10724,9 +10794,9 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.113.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fa7b3ecd650d790ff8781402d0704d35a2f51c3bec87fe92d43eea6d371f05d" +checksum = "b3bafaee0eecbef6c47ad3e7e0a764e22eb35a229ff7d06b7801fcbeaa5364b8" dependencies = [ "bytes", "derive_more", @@ -11357,15 +11427,15 @@ dependencies = [ [[package]] name = "string_enum" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fa4d4f81d7c05b9161f8de839975d3326328b8ba2831164b465524cc2f55252" +checksum = "0090512bdfee4b56d82480d66c0fd8a6f53f0fe0f97e075e949b252acdd482e0" dependencies = [ - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "quote 1.0.33", "swc_macros_common", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] @@ -11515,9 +11585,9 @@ dependencies = [ [[package]] name = "swc_atoms" -version = "0.5.8" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8066e17abb484602da673e2d35138ab32ce53f26368d9c92113510e1659220b" +checksum = "93d0307dc4bfd107d49c7528350c372758cfca94fb503629b9a056e6a1572860" dependencies = [ "once_cell", "rustc-hash", @@ -11529,10 +11599,11 @@ dependencies = [ [[package]] name = "swc_common" -version = "0.31.21" +version = "0.31.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5823ef063f116ad281cde9700f5be6dfb182e543ce3f62c42cee1c03ffbc6b" +checksum = "19c774005489d2907fb67909cf42af926e72edee1366512777c605ba2ef19c94" dependencies = [ + "ahash 0.7.6", "ast_node", "better_scoped_tls", "cfg-if 1.0.0", @@ -11556,9 +11627,9 @@ dependencies = [ [[package]] name = "swc_config" -version = "0.1.7" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba1c7a40d38f9dd4e9a046975d3faf95af42937b34b2b963be4d8f01239584b" +checksum = "89c8fc2c12bb1634c7c32fc3c9b6b963ad8f034cc62c4ecddcf215dc4f6f959d" dependencies = [ "indexmap 1.9.3", "serde", @@ -11568,22 +11639,22 @@ dependencies = [ [[package]] name = "swc_config_macro" -version = "0.1.2" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5b5aaca9a0082be4515f0fbbecc191bf5829cd25b5b9c0a2810f6a2bb0d6829" +checksum = "7dadb9998d4f5fc36ef558ed5a092579441579ee8c6fcce84a5228cca9df4004" dependencies = [ - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "quote 1.0.33", "swc_macros_common", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] name = "swc_ecma_ast" -version = "0.107.7" +version = "0.104.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7191c8c57af059b75a2aadc927a2608c3962d19e4d09ce8f9c3f03739ddf833" +checksum = "b5cf9dd351d0c285dcd36535267953a18995d4dda0cbe34ac9d1df61aa415b26" dependencies = [ "bitflags 2.4.0", "is-macro", @@ -11598,9 +11669,9 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.142.17" +version = "0.139.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e4e3ee8a1f0bfaf630febbe0f6a03f2c28d66d373a9bbdb3f500f6bfb536b43" +checksum = "c66d1ea16bb9b7ea6f87f17325742ff256fcbd65b188af57c2bf415fe4afc945" dependencies = [ "memchr", "num-bigint", @@ -11617,23 +11688,24 @@ dependencies = [ [[package]] name = "swc_ecma_codegen_macros" -version = "0.7.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdff076dccca6cc6a0e0b2a2c8acfb066014382bc6df98ec99e755484814384" +checksum = "bf4ee0caee1018808d94ecd09490cb7affd3d504b19aa11c49238f5fc4b54901" dependencies = [ - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "quote 1.0.33", "swc_macros_common", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] name = "swc_ecma_loader" -version = "0.43.23" +version = "0.43.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82f47bb1ab686f603da93a8b6e559d69b42369ab47d5dee6bdda38ae5902dc2a" +checksum = "fe45f1e5dcc1b005544ff78253b787dea5dfd5e2f712b133964cdc3545c954a4" dependencies = [ + "ahash 0.7.6", "anyhow", "pathdiff", "serde", @@ -11643,13 +11715,13 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.137.15" +version = "0.134.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c0d554865a63bfa58cf1c433fa91d7d4adf40030fa8e4530e8065d0578166a" +checksum = "f0a3fcfe3d83dd445cbd9321882e47b467594433d9a21c4d6c37a27f534bb89e" dependencies = [ "either", + "lexical 6.1.1", "num-bigint", - "num-traits", "serde", "smallvec 1.11.0", "smartstring", @@ -11663,9 +11735,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.130.24" +version = "0.127.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d8ca5dd849cea79e6a9792d725f4082ad3ade7a9541fba960c42d55ae778f2" +checksum = "f9c33ec5369178f3a0580ab86cfe89ffb9c3fbd122aed379cfb71d469d9d61c1" dependencies = [ "better_scoped_tls", "bitflags 2.4.0", @@ -11686,9 +11758,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "0.119.24" +version = "0.116.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a09d0e350963d4fb14bf9dc31c85eb28e58a88614e779c75f49296710f9cb381" +checksum = "6e3b0d5f362f0da97be1f1b06d7b0d8667ea70b4adeabff0dcaecb6259c09525" dependencies = [ "swc_atoms", "swc_common", @@ -11700,22 +11772,22 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_macros" -version = "0.5.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f59c4b6ed5d78d3ad9fc7c6f8ab4f85bba99573d31d9a2c0a712077a6b45efd2" +checksum = "984d5ac69b681fc5438f9abf82b0fda34fe04e119bc75f8213b7e01128c7c9a2" dependencies = [ - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "quote 1.0.33", "swc_macros_common", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] name = "swc_ecma_transforms_proposal" -version = "0.164.30" +version = "0.161.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62d3a04de35f6c79d8f343822138e7313934d3530cc4e4f891a079f7e2415c1a" +checksum = "0cdce42d44ef775bc29f5ada3678a80ff72fa17a0ef705e14f63cfd0e0155e0e" dependencies = [ "either", "rustc-hash", @@ -11733,10 +11805,11 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "0.176.34" +version = "0.173.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "607017e6fbfe3229b69ffce7b47383eb9b62025ea93a50cd1cc1788d2a29a4ca" +checksum = "5fb9481ad4e2acba34c6fbb6d4ccc64efe9f1821675e883dcfa732d7220f4b1e" dependencies = [ + "ahash 0.7.6", "base64 0.13.1", "dashmap 5.5.1", "indexmap 1.9.3", @@ -11757,9 +11830,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "0.180.33" +version = "0.177.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea349e787a62af0dcf1b8b52d507045345871571c18cb78a2f892912f7d6b753" +checksum = "1fe2eea4f5b8a25c93cdaa29fb1ce4108893da88a11e61e04b7f5295b5468829" dependencies = [ "serde", "swc_atoms", @@ -11773,9 +11846,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.120.19" +version = "0.117.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb60e20e1eb9e9f7c88d99ac8659fd0561d70abd27853f550fbd907a448c878" +checksum = "ad791bbfdafcebd878584021e050964c8ab68aba7eeac9d0ee4afba4c284a629" dependencies = [ "indexmap 1.9.3", "num_cpus", @@ -11791,9 +11864,9 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.93.7" +version = "0.90.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb23a48abd9f5731b6275dbf4ea89f6e03dc60b7c8e3e1e383bb4a6c39fd7e25" +checksum = "6ce3ac941ae1d6c7e683aa375fc71fbf58df58b441f614d757fbb10554936ca2" dependencies = [ "num-bigint", "swc_atoms", @@ -11805,33 +11878,33 @@ dependencies = [ [[package]] name = "swc_eq_ignore_macros" -version = "0.1.2" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a95d367e228d52484c53336991fdcf47b6b553ef835d9159db4ba40efb0ee8" +checksum = "0c20468634668c2bbab581947bb8c75c97158d5a6959f4ba33df20983b20b4f6" dependencies = [ - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "quote 1.0.33", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] name = "swc_macros_common" -version = "0.3.8" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a273205ccb09b51fabe88c49f3b34c5a4631c4c00a16ae20e03111d6a42e832" +checksum = "3e582c3e3c2269238524923781df5be49e011dbe29cf7683a2215d600a562ea6" dependencies = [ - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "quote 1.0.33", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] name = "swc_visit" -version = "0.5.7" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c337fbb2d191bf371173dea6a957f01899adb8f189c6c31b122a6cfc98fc3" +checksum = "5f412dd4fbc58f509a04e64f5c8038333142fc139e8232f01b883db0094b3b51" dependencies = [ "either", "swc_visit_macros", @@ -11839,16 +11912,16 @@ dependencies = [ [[package]] name = "swc_visit_macros" -version = "0.5.8" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f322730fb82f3930a450ac24de8c98523af7d34ab8cb2f46bcb405839891a99" +checksum = "4cfc226380ba54a5feed2c12f3ccd33f1ae8e959160290e5d2d9b4e918b6472a" dependencies = [ "Inflector", - "pmutil", + "pmutil 0.5.3", "proc-macro2 1.0.66", "quote 1.0.33", "swc_macros_common", - "syn 2.0.29", + "syn 1.0.109", ] [[package]] @@ -13187,7 +13260,7 @@ version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd44a26819757459b14994e728adeeb05931ca95605e54eb7733d01f3f130f8" dependencies = [ - "clap 4.3.23", + "clap 4.4.0", "dirs 5.0.1", "futures", "if-addrs 0.10.1", @@ -13529,9 +13602,9 @@ dependencies = [ [[package]] name = "v8" -version = "0.75.0" +version = "0.74.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9be435abe79a8427b0969f1ac0a3c0e91644235f68a3de5da4a27ec69666985" +checksum = "2eedac634b8dd39b889c5b62349cbc55913780226239166435c5cf66771792ea" dependencies = [ "bitflags 1.3.2", "fslock", @@ -14632,9 +14705,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" dependencies = [ "memchr", ] From 07d2f29832237daf5120b1cc87eeb44a9703a8b5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 25 Aug 2023 13:37:17 +0100 Subject: [PATCH 580/722] add longer sleep for neighbourhood tests --- tests/js/tests/neighbourhood.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index 422c45b0e..36735c27b 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -198,7 +198,7 @@ export default function neighbourhoodTests(testContext: TestContext) { const aliceP1 = await alice.perspective.add("telepresence") const linkLang = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood for Telepresence"})); const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, linkLang.address, new Perspective()) - await sleep(1000) + await sleep(5000) const bobP1Handle = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); const bobP1 = await bob.perspective.byUUID(bobP1Handle.uuid) await testContext.makeAllNodesKnown() From 394b73cf918d6dfb4350071a03bbaf6a35fe6fb9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 25 Aug 2023 13:37:53 +0100 Subject: [PATCH 581/722] use regex to get bootstrap & proxy url --- tests/js/utils/utils.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/js/utils/utils.ts b/tests/js/utils/utils.ts index 586e20a14..19b74463b 100644 --- a/tests/js/utils/utils.ts +++ b/tests/js/utils/utils.ts @@ -43,13 +43,15 @@ export async function runHcLocalServices(): Promise<{proxyUrl: string | null, bo let servicesReady = new Promise((resolve, reject) => { servicesProcess.stdout!.on('data', (data) => { if (data.includes("HC BOOTSTRAP - ADDR")) { - bootstrapUrl = data.split(" ")[5]; - bootstrapUrl = bootstrapUrl!.substring(0, bootstrapUrl!.length - 2); + const regex = /(http:\/\/|ws:\/\/)[^\s]+/g; + const matches = data.match(regex); + bootstrapUrl = matches![0]; } if (data.includes("HC SIGNAL - ADDR")) { - proxyUrl = data.split(" ")[5]; - proxyUrl = proxyUrl!.substring(0, proxyUrl!.length - 2); + const regex = /(http:\/\/|ws:\/\/)[^\s]+/g; + const matches = data.match(regex); + proxyUrl = matches![0]; resolve(); } }); From cad25a964a4d3762eeeb8b4fac061208f7b81f3f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 25 Aug 2023 13:53:57 +0100 Subject: [PATCH 582/722] install go in ci & fix up rust versions --- .github/workflows/agent-language-tests.yml | 3 +++ .../direct-message-language-tests.yml | 3 +++ .../workflows/file-storage-language-tests.yml | 8 +++++- .github/workflows/integration_cli.yml | 5 ++++ .github/workflows/integration_js.yml | 6 +++++ .github/workflows/publish.yml | 27 ++++++++++++++++++- .github/workflows/publish_staging.yml | 26 +++++++++++++++++- 7 files changed, 75 insertions(+), 3 deletions(-) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index 2a2d41768..f1331bda1 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -27,6 +27,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -38,11 +39,13 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index a6a6ef2e5..f93783f01 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -27,6 +27,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -38,11 +39,13 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index 3d3d75b81..68512e734 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -27,6 +27,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -38,11 +39,13 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" @@ -65,7 +68,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -77,11 +81,13 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" diff --git a/.github/workflows/integration_cli.yml b/.github/workflows/integration_cli.yml index bc55f1803..f93509b30 100644 --- a/.github/workflows/integration_cli.yml +++ b/.github/workflows/integration_cli.yml @@ -51,6 +51,11 @@ jobs: with: deno-version: v1.32.4 + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - name: Install HC run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index a6d0382fa..1135948a4 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -24,6 +24,12 @@ jobs: - uses: actions-rs/toolchain@v1 with: toolchain: 1.71.1 + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f7cbc7614..2fb911dd8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -63,6 +63,12 @@ jobs: with: override: true toolchain: 1.71.1 + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - name: Install Deno uses: denoland/setup-deno@v1 with: @@ -193,12 +199,20 @@ jobs: uses: actions/setup-node@v1 with: node-version: 16.x + - name: Install deps run: yarn install + - name: Install Deno uses: denoland/setup-deno@v1 with: deno-version: v1.32.4 + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - name: Build modules run: yarn run build-libs - name: Publish core @@ -206,16 +220,19 @@ jobs: with: token: ${{ secrets.NPM_TOKEN }} package: core/package.json + - name: Publish connect uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: connect/package.json + - name: Publish executor uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: executor/package.json + - name: Publish Test runner uses: JS-DevTools/npm-publish@v1 with: @@ -229,12 +246,19 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: 1.71.1 override: true + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - uses: actions/setup-node@v3 with: node-version: '16.x' cache: 'yarn' + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -246,6 +270,7 @@ jobs: ~/.cargo/git/db/ key: ${{ runner.os }}-cargo restore-keys: ${{ runner.os }}-cargo + - run: rustup target add wasm32-unknown-unknown - run: cd core && yarn install && yarn build && cd .. - run: cargo install cargo-workspaces || echo "cargo-workspaces already installed" diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index a63a3e533..d9123f77a 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -89,6 +89,11 @@ jobs: with: node-version: ${{ matrix.node-version }} + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - name: Yarn Install run: yarn install @@ -193,29 +198,41 @@ jobs: uses: actions/setup-node@v1 with: node-version: 16.x + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - name: Install deps run: yarn install + - name: Install Deno uses: denoland/setup-deno@v1 with: deno-version: v1.32.4 + - name: Build modules run: yarn run build-libs + - name: Publish core uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: core/package.json + - name: Publish connect uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: connect/package.json + - name: Publish executor uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: executor/package.json + - name: Publish Test runner uses: JS-DevTools/npm-publish@v1 with: @@ -229,12 +246,19 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: 1.71.1 override: true + + - name: Install GO + uses: actions/setup-go@v4 + with: + go-version: '1.18' + - uses: actions/setup-node@v3 with: node-version: '16.x' cache: 'yarn' + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 From f645e494f5fee2854008f3087ecc7223da1f59dd Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 28 Aug 2023 14:21:20 +0530 Subject: [PATCH 583/722] moved public folder to dapp folder --- dapp/.gitignore | 2 + dapp/package.json | 16 ++ {public => dapp/public}/404.html | 0 {public => dapp/public}/favicon.png | Bin {public => dapp/public}/global.css | 0 {public => dapp/public}/index.html | 8 +- dapp/rollup.config.js | 28 +++ dapp/yarn.lock | 375 ++++++++++++++++++++++++++++ 8 files changed, 425 insertions(+), 4 deletions(-) create mode 100644 dapp/.gitignore create mode 100644 dapp/package.json rename {public => dapp/public}/404.html (100%) rename {public => dapp/public}/favicon.png (100%) rename {public => dapp/public}/global.css (100%) rename {public => dapp/public}/index.html (50%) create mode 100644 dapp/rollup.config.js create mode 100644 dapp/yarn.lock diff --git a/dapp/.gitignore b/dapp/.gitignore new file mode 100644 index 000000000..ce1bb2e87 --- /dev/null +++ b/dapp/.gitignore @@ -0,0 +1,2 @@ +bundle.js +bundle.cjs \ No newline at end of file diff --git a/dapp/package.json b/dapp/package.json new file mode 100644 index 000000000..5fccbd905 --- /dev/null +++ b/dapp/package.json @@ -0,0 +1,16 @@ +{ + "name": "@perspect3vism/dapp", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "scripts": { + "build": "rollup -c rollup.config.js" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^25.0.4", + "@rollup/plugin-node-resolve": "^15.2.1", + "rollup": "^3.28.1", + "rollup-plugin-svelte": "^7.1.6", + "svelte": "^4.2.0" + } +} diff --git a/public/404.html b/dapp/public/404.html similarity index 100% rename from public/404.html rename to dapp/public/404.html diff --git a/public/favicon.png b/dapp/public/favicon.png similarity index 100% rename from public/favicon.png rename to dapp/public/favicon.png diff --git a/public/global.css b/dapp/public/global.css similarity index 100% rename from public/global.css rename to dapp/public/global.css diff --git a/public/index.html b/dapp/public/index.html similarity index 50% rename from public/index.html rename to dapp/public/index.html index c2bd4611b..a98d78f51 100644 --- a/public/index.html +++ b/dapp/public/index.html @@ -6,11 +6,11 @@ Ad4m DAPP Integration - - - + + + - + diff --git a/dapp/rollup.config.js b/dapp/rollup.config.js new file mode 100644 index 000000000..757a2cd1b --- /dev/null +++ b/dapp/rollup.config.js @@ -0,0 +1,28 @@ +const nodeResolve = require('@rollup/plugin-node-resolve'); +const commonjs = require('@rollup/plugin-commonjs'); +const svelte = require('rollup-plugin-svelte'); + +module.exports = { + input: 'main.js', + output: [ + { + format: 'cjs', + file: "./public/bundle.cjs", + }, + { + format: 'esm', + file: "./public/bundle.js", + } + ], + plugins: [ + svelte({ + emitCss: false, + }), + nodeResolve({ + browser: true, + exportConditions: ['svelte'], + extensions: ['.svelte'] + }), + commonjs() + ] +}; \ No newline at end of file diff --git a/dapp/yarn.lock b/dapp/yarn.lock new file mode 100644 index 000000000..c1bb252a1 --- /dev/null +++ b/dapp/yarn.lock @@ -0,0 +1,375 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@rollup/plugin-commonjs@^25.0.4": + version "25.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz#a7547a0c4ec3fa79818eb313e1de0023e548f4e6" + integrity sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.27.0" + +"@rollup/plugin-node-resolve@^15.2.1": + version "15.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz#a15b14fb7969229e26a30feff2816d39eff503f0" + integrity sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" + +"@rollup/pluginutils@^4.1.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^5.0.1": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.3.tgz#183126d69aeb1cfa23401d5a71cb4b8c16c4a4e0" + integrity sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + +acorn@^8.10.0, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== + dependencies: + dequal "^2.0.3" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +code-red@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35" + integrity sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + "@types/estree" "^1.0.1" + acorn "^8.10.0" + estree-walker "^3.0.3" + periscopic "^3.1.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +estree-walker@^2.0.1, estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +estree-walker@^3.0.0, estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + +is-core-module@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-reference@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-reference@^3.0.0, is-reference@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831" + integrity sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w== + dependencies: + "@types/estree" "*" + +locate-character@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" + integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== + +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + +magic-string@^0.30.0: + version "0.30.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +periscopic@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + +picomatch@^2.2.2, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.22.1: + version "1.22.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" + integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +rollup-plugin-svelte@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.6.tgz#44a4ea6c6e8ed976824d9fd40c78d048515e5838" + integrity sha512-nVFRBpGWI2qUY1OcSiEEA/kjCY2+vAjO9BI8SzA7NRrh2GTunLd6w2EYmnMt/atgdg8GvcNjLsmZmbQs/u4SQA== + dependencies: + "@rollup/pluginutils" "^4.1.0" + resolve.exports "^2.0.0" + +rollup@^3.28.1: + version "3.28.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" + integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== + optionalDependencies: + fsevents "~2.3.2" + +source-map-js@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svelte@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.0.tgz#0e4304c15524450b22fba02516eb72efbd8847b6" + integrity sha512-kVsdPjDbLrv74SmLSUzAsBGquMs4MPgWGkGLpH+PjOYnFOziAvENVzgJmyOCV2gntxE32aNm8/sqNKD6LbIpeQ== + dependencies: + "@ampproject/remapping" "^2.2.1" + "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/trace-mapping" "^0.3.18" + acorn "^8.9.0" + aria-query "^5.3.0" + axobject-query "^3.2.1" + code-red "^1.0.3" + css-tree "^2.3.1" + estree-walker "^3.0.3" + is-reference "^3.0.1" + locate-character "^3.0.0" + magic-string "^0.30.0" + periscopic "^3.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== From 93bf8f899ba9d98144cd33926e056bc3f040c3ec Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 28 Aug 2023 14:22:16 +0530 Subject: [PATCH 584/722] Removed dapp server from js executor code --- executor/customHttpDownloader.js | 1 - executor/src/core/DAppServer.ts | 59 -------------------------------- executor/src/main.ts | 2 -- package.json | 3 +- turbo.json | 2 +- 5 files changed, 3 insertions(+), 64 deletions(-) delete mode 100644 executor/src/core/DAppServer.ts diff --git a/executor/customHttpDownloader.js b/executor/customHttpDownloader.js index 927bafde8..d4070dd10 100644 --- a/executor/customHttpDownloader.js +++ b/executor/customHttpDownloader.js @@ -5,7 +5,6 @@ let setup = ({onResolve, onLoad}) => { } let resolveFile = ({path}) => { - console.log('wow', path) return { path: path, namespace: 'http-fetch' diff --git a/executor/src/core/DAppServer.ts b/executor/src/core/DAppServer.ts deleted file mode 100644 index c7edadd2c..000000000 --- a/executor/src/core/DAppServer.ts +++ /dev/null @@ -1,59 +0,0 @@ -import http from "http"; -import path from "path"; -import fs from "fs"; - -export default function runDAppServer(port: number) { - http.createServer(function (request, response) { - console.log("DAppServer request: ", request.url); - let filePath = request.url; - if (filePath == '/') { - filePath = path.join(__dirname, "../../public", "index.html"); - } else { - filePath = path.join(__dirname, "../../public", filePath || "") - } - - var extname = path.extname(filePath); - var contentType = 'text/html'; - switch (extname) { - case '.js': - contentType = 'text/javascript'; - break; - case '.css': - contentType = 'text/css'; - break; - case '.json': - contentType = 'application/json'; - break; - case '.png': - contentType = 'image/png'; - break; - case '.jpg': - contentType = 'image/jpg'; - break; - case '.wav': - contentType = 'audio/wav'; - break; - } - fs.readFile(filePath, function(error, content) { - if (error) { - if(error.code == 'ENOENT'){ - fs.readFile(path.join(__dirname, "../../public", "404.html"), function(error, content) { - response.writeHead(200, { 'Content-Type': contentType }); - response.end(content, 'utf-8'); - }); - } - else { - response.writeHead(500); - response.end('Sorry, check with the site admin for error: '+error.code+' ..\n'); - response.end(); - } - } - else { - response.writeHead(200, { 'Content-Type': contentType }); - response.end(content, 'utf-8'); - } - }); - - }).listen(port); - console.log("\x1b[32m", `Ξ 🦄 DApp integration server running at: http://127.0.0.1:${port}/`, "\x1b[0m"); -} \ No newline at end of file diff --git a/executor/src/main.ts b/executor/src/main.ts index 51204337c..0470bea96 100644 --- a/executor/src/main.ts +++ b/executor/src/main.ts @@ -175,8 +175,6 @@ export async function init(config: OuterConfig): Promise { core.resolvers = createResolvers(core, config) - if (runDappServer) { core.startDAppServer(dAppPort) }; - return core } diff --git a/package.json b/package.json index e65521a9c..bf10cc1be 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "bootstrap-languages/*", "tests/js", "rust-executor", - "cli" + "cli", + "dapp" ], "private": true, "scripts": { diff --git a/turbo.json b/turbo.json index 3f0636eee..7047c342d 100644 --- a/turbo.json +++ b/turbo.json @@ -6,7 +6,7 @@ "outputs": ["dist/**", "lib/**", "build/**"] }, "build-libs": { - "dependsOn": ["@perspect3vism/ad4m#build", "@perspect3vism/ad4m-connect#build", "@perspect3vism/ad4m-executor#build", "@perspect3vism/ad4m-test#build", "@perspect3vism/ad4m-cli#build"], + "dependsOn": ["@perspect3vism/ad4m#build", "@perspect3vism/ad4m-connect#build", "@perspect3vism/ad4m-executor#build", "@perspect3vism/ad4m-test#build", "@perspect3vism/ad4m-cli#build", "@perspect3vism/dapp#build"], "outputs": ["dist/**", "lib/**", "build/**"] }, "build-languages": { From ae569ccbf6aa4ebad078ff0140ced68c4577783c Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 28 Aug 2023 14:23:10 +0530 Subject: [PATCH 585/722] Add dapp at compile time to cli binary --- Cargo.lock | 38 ++++++++++++++++++++++++++++++++++++++ rust-executor/Cargo.toml | 4 ++++ rust-executor/build.rs | 26 ++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 rust-executor/build.rs diff --git a/Cargo.lock b/Cargo.lock index 5ef7468c7..2fb35f9fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10152,6 +10152,40 @@ dependencies = [ "smallvec 1.11.0", ] +[[package]] +name = "rust-embed" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e7d90385b59f0a6bf3d3b757f3ca4ece2048265d70db20a2016043d4509a40" +dependencies = [ + "rust-embed-impl", + "rust-embed-utils", + "walkdir", +] + +[[package]] +name = "rust-embed-impl" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3d8c6fd84090ae348e63a84336b112b5c3918b3bf0493a581f7bd8ee623c29" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "rust-embed-utils", + "syn 2.0.29", + "walkdir", +] + +[[package]] +name = "rust-embed-utils" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873feff8cb7bf86fdf0a71bb21c95159f4e4a37dd7a4bd1855a940909b583ada" +dependencies = [ + "sha2 0.10.7", + "walkdir", +] + [[package]] name = "rust-executor" version = "0.5.0" @@ -10173,6 +10207,9 @@ dependencies = [ "holochain_cli_bundle", "holochain_cli_run_local_services", "holochain_types", + "http-body-util", + "hyper 1.0.0-rc.4", + "hyper-util", "jsonwebtoken", "juniper", "juniper_graphql_transport_ws", @@ -10186,6 +10223,7 @@ dependencies = [ "once_cell", "os_info", "rand 0.8.5", + "rust-embed", "scryer-prolog", "secp256k1", "semver 1.0.18", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index f2b4cf58c..ae6f300ed 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -52,6 +52,10 @@ multibase = "0.9.1" multihash = { version = "0.18.0", features = ["sha2"] } cid = "0.10.1" once_cell = "1.17.1" +hyper = { version = "1.0.0-rc.4", features = ["full"] } +http-body-util = "0.1.0-rc.3" +hyper-util = { git = "https://github.com/hyperium/hyper-util.git" } +rust-embed="8.0.0" juniper = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["chrono"] } juniper_subscriptions = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } diff --git a/rust-executor/build.rs b/rust-executor/build.rs new file mode 100644 index 000000000..ef168d04b --- /dev/null +++ b/rust-executor/build.rs @@ -0,0 +1,26 @@ +use std::fs; +use std::path::Path; + +fn copy_dir_recursive(source: &Path, target: &Path) -> std::io::Result<()> { + if source.is_dir() { + fs::create_dir_all(target)?; + for entry in fs::read_dir(source)? { + let entry = entry?; + let entry_target = target.join(entry.file_name()); + copy_dir_recursive(&entry.path(), &entry_target)?; + } + } else { + fs::copy(source, target)?; + } + Ok(()) +} + +fn main() { + let source_dir = "../dapp/public"; + + let target_dir = concat!(env!("CARGO_MANIFEST_DIR"), "/dapp"); + + if let Err(err) = copy_dir_recursive(Path::new(source_dir), Path::new(target_dir)) { + eprintln!("Error copying directory: {}", err); + } +} \ No newline at end of file From b851ded02f3c5bfa5822788988f0ed76bcc61172 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 28 Aug 2023 14:23:33 +0530 Subject: [PATCH 586/722] Ignore dapp folder in executor --- rust-executor/.gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rust-executor/.gitignore b/rust-executor/.gitignore index e6ea29a4c..16fbedc51 100644 --- a/rust-executor/.gitignore +++ b/rust-executor/.gitignore @@ -6,4 +6,5 @@ schema.gql !src/js_core/pubsub_extension.js !src/js_core/jwt_extension.js !src/prolog_service/prolog_service_extension.js -!src/holochain_service/holochain_service_extension.js \ No newline at end of file +!src/holochain_service/holochain_service_extension.js +dapp \ No newline at end of file From b3173289901b6174a084a4c09c974375ab55abe0 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 28 Aug 2023 14:26:16 +0530 Subject: [PATCH 587/722] Start dapp server from rust-executor --- rust-executor/src/dapp_server.rs | 62 ++++++++++++++++++++++++++++++++ rust-executor/src/lib.rs | 43 ++++++++++++++++++++-- 2 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 rust-executor/src/dapp_server.rs diff --git a/rust-executor/src/dapp_server.rs b/rust-executor/src/dapp_server.rs new file mode 100644 index 000000000..bebe3021b --- /dev/null +++ b/rust-executor/src/dapp_server.rs @@ -0,0 +1,62 @@ +use std::convert::Infallible; +use std::net::SocketAddr; + +use http_body_util::Full; +use hyper::body::{Bytes, Body}; +use hyper::server::conn::http1; +use hyper::service::service_fn; +use hyper::{Request, Response}; +use hyper_util::rt::TokioIo; +use tokio::net::TcpListener; +use tracing::info; + +use rust_embed::*; + +#[derive(RustEmbed)] +#[folder = "dapp/"] +struct Asset; + + +async fn serve_file(req: Request) -> Result>, Infallible> { + let path = req.uri().path(); + let path_clone = path.clone().replace("/", ""); + let mut base = path_clone.as_str(); + + if (base == "") { + base = "index.html"; + } + + match Asset::get(base) { + Some(content) => { + let response = Response::new(Full::new(Bytes::from(content.data.into_owned()))); + Ok(response) + }, + None => { + let response = Response::new(Full::new(Bytes::from("File not found"))); + Ok(response) + }, + } +} + +pub(crate) async fn serve_dapp(port: u16) -> Result<(), Box> { + let addr = SocketAddr::from(([127, 0, 0, 1], port)); + + let listener = TcpListener::bind(addr).await?; + + info!("Listening dapp on http://{}", addr); + + loop { + let (stream, _) = listener.accept().await?; + + let io = TokioIo::new(stream); + + tokio::task::spawn(async move { + if let Err(err) = http1::Builder::new() + .serve_connection(io, service_fn(serve_file)) + .await + { + println!("Error serving connection: {:?}", err); + } + }); + } +} \ No newline at end of file diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index f84004224..23f45e6ec 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -14,6 +14,9 @@ use tokio; pub mod init; mod pubsub; +mod dapp_server; +#[macro_use] +extern crate rust_embed; use std::env; use tracing::{info, error}; @@ -23,7 +26,7 @@ use js_core::JsCore; pub use config::Ad4mConfig; pub use holochain_service::run_local_hc_services; -use crate::prolog_service::init_prolog_service; +use crate::{prolog_service::init_prolog_service, dapp_server::serve_dapp}; /// Runs the GraphQL server and the deno core runtime pub async fn run(mut config: Ad4mConfig) { @@ -41,6 +44,24 @@ pub async fn run(mut config: Ad4mConfig) { info!("Starting GraphQL..."); + if (config.run_dapp_server.unwrap()) { + tokio::task::spawn_blocking(move || { + let result = serve_dapp(4200); + tokio::runtime::Handle::current().block_on(async { + match result.await { + Ok(_) => { + info!("GraphQL server stopped."); + std::process::exit(0); + } + Err(err) => { + error!("GraphQL server stopped with error: {}", err); + std::process::exit(1); + } + } + }); + }); + } + match graphql::start_server( js_core_handle, config.gql_port.expect("Did not get gql port"), @@ -71,6 +92,24 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { info!("Starting GraphQL..."); + if (config.run_dapp_server.unwrap()) { + tokio::task::spawn_blocking(move || { + let result = serve_dapp(4200); + tokio::runtime::Handle::current().block_on(async { + match result.await { + Ok(_) => { + info!("GraphQL server stopped."); + std::process::exit(0); + } + Err(err) => { + error!("GraphQL server stopped with error: {}", err); + std::process::exit(1); + } + } + }); + }); + } + tokio::task::spawn_blocking(move || { let result = graphql::start_server( js_core_handle, @@ -89,4 +128,4 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { } }); }); -} +} \ No newline at end of file From ea2f09720933279ff81aeb71737ca2d19119d82b Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 28 Aug 2023 14:48:50 +0530 Subject: [PATCH 588/722] Fixed executor import error --- executor/src/core/Ad4mCore.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/executor/src/core/Ad4mCore.ts b/executor/src/core/Ad4mCore.ts index f57d22932..ac2fcfb7e 100644 --- a/executor/src/core/Ad4mCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -13,7 +13,6 @@ import type { DIDResolver } from './agent/DIDs' import Signatures from './agent/Signatures' import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' import EntanglementProofController from './EntanglementProof' -import runDAppServer from "./DAppServer" import fs from 'fs' import { AgentInfoResponse } from '@holochain/client' import RuntimeService from './RuntimeService' From 433e41409d00972b5cb58d2a0ba8fb77d6111c85 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 14:22:22 +0100 Subject: [PATCH 589/722] run prolog service in other run functions --- rust-executor/src/lib.rs | 3 +++ rust-executor/src/main.rs | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index f84004224..a79a00610 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -64,6 +64,9 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { let _ = env_logger::try_init(); config.prepare(); + info!("Initializing Prolog service..."); + init_prolog_service().await; + info!("Starting js_core..."); let mut js_core_handle = JsCore::start(config.clone()).await; js_core_handle.initialized().await; diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index a719d01e7..5d681de75 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -24,6 +24,10 @@ async fn main() { let mut config = Ad4mConfig::default(); config.prepare(); + + info!("Initializing Prolog service..."); + init_prolog_service().await; + info!("Starting js_core... with config: {:#?}", config); let mut js_core_handle = JsCore::start(config.clone()).await; From 6711c1845f7792b7db1fa4c4487399cebfccf115 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 14:22:36 +0100 Subject: [PATCH 590/722] remove ad4m-host path from generate bootstrap command --- cli/src/dev.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cli/src/dev.rs b/cli/src/dev.rs index b895153df..57ec10b91 100644 --- a/cli/src/dev.rs +++ b/cli/src/dev.rs @@ -11,7 +11,6 @@ pub enum DevFunctions { GenerateBootstrap { agent_path: String, passphrase: String, - ad4m_host_path: String, seed_proto: String, }, } @@ -21,12 +20,10 @@ pub async fn run(command: DevFunctions) -> Result<()> { DevFunctions::GenerateBootstrap { agent_path, passphrase, - ad4m_host_path, seed_proto, } => { green_ln!( - "Attempting to generate a new bootstrap seed using ad4m-host path: {:?} and agent path: {:?}\n", - ad4m_host_path, + "Attempting to generate a new bootstrap seed using agent path: {:?}\n", agent_path ); @@ -69,6 +66,7 @@ pub async fn run(command: DevFunctions) -> Result<()> { neighbourhood_language: String::from(""), }; let temp_publish_bootstrap_path = data_path.join("publishing_bootstrap.json"); + green_ln!("Writting temp publish boostrap at path: {:?}\n", temp_publish_bootstrap_path.to_str()); fs::write( &temp_publish_bootstrap_path, serde_json::to_string(&temp_bootstrap_seed)?, @@ -97,7 +95,7 @@ pub async fn run(command: DevFunctions) -> Result<()> { temp_publish_bootstrap_path.to_str().unwrap().to_string(), ), language_language_only: Some(true), - run_dapp_server: None, + run_dapp_server: Some(false), gql_port: None, hc_admin_port: None, hc_app_port: None, From 4823442137e4c4f2196ab71b014e7d867bb597a4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 14:22:46 +0100 Subject: [PATCH 591/722] fix up launcher start --- ui/src-tauri/src/main.rs | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 435a66bd9..214cd93a7 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -81,18 +81,6 @@ fn main() { if log_path().exists() { let _ = fs::remove_file(log_path()); } - - let mut waited_seconds = 0; - while data_path().join("ipfs").join("repo.lock").exists() { - println!("IPFS repo.lock exists, waiting..."); - std::thread::sleep(std::time::Duration::from_secs(1)); - waited_seconds = waited_seconds + 1; - if waited_seconds > 10 { - println!("Waited long enough, removing lock..."); - let _ = remove_dir_all(data_path().join("ipfs").join("repo.lock")); - let _ = remove_dir_all(data_path().join("ipfs").join("datastore").join("LOCK")); - } - } let file = File::create(log_path()).unwrap(); let file = Arc::new(Mutex::new(file)); @@ -124,10 +112,6 @@ fn main() { save_executor_port(free_port); - find_and_kill_processes("ad4m-host"); - - find_and_kill_processes("holochain"); - match rust_executor::init::init( Some(String::from(data_path().to_str().unwrap())), None @@ -186,6 +170,10 @@ fn main() { config.app_data_path = Some(String::from(data_path().to_str().unwrap())); config.gql_port = Some(free_port); config.network_bootstrap_seed = None; + config.run_dapp_server = Some(false); + config.hc_use_bootstrap = Some(true); + config.hc_use_mdns = Some(false); + config.hc_use_proxy = Some(true); let handle = app.handle(); From b62582ae86d3c0ff677c44128419fa020b72edf4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 14:35:02 +0100 Subject: [PATCH 592/722] remove old find and kill process logic --- ui/src-tauri/src/system_tray.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ui/src-tauri/src/system_tray.rs b/ui/src-tauri/src/system_tray.rs index 8f8f36b94..0b871ee5d 100644 --- a/ui/src-tauri/src/system_tray.rs +++ b/ui/src-tauri/src/system_tray.rs @@ -49,10 +49,6 @@ pub fn handle_system_tray_event(app: &AppHandle, event_id: String) { } } "quit" => { - find_and_kill_processes("ad4m-host"); - - find_and_kill_processes("holochain"); - let _ = remove_file(executor_port_path()); app.exit(0); From 7064072d0affe87a42297ce62327c4fe4c094406 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 15:49:11 +0100 Subject: [PATCH 593/722] fix agent.signMessage & add integration test case --- core/src/agent/AgentClient.ts | 8 ++++---- executor/src/core/agent/AgentService.ts | 13 ++++++++----- rust-executor/src/js_core/wallet_extension.rs | 1 + rust-executor/src/lib.rs | 4 ++-- tests/js/tests/agent.ts | 6 ++++++ 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/core/src/agent/AgentClient.ts b/core/src/agent/AgentClient.ts index f1b4eb799..a2852f28f 100644 --- a/core/src/agent/AgentClient.ts +++ b/core/src/agent/AgentClient.ts @@ -519,10 +519,10 @@ export class AgentClient { const { agentSignMessage } = unwrapApolloResult( await this.#apolloClient.mutate({ mutation: gql`mutation agentSignMessage($message: String!) { - agentSignMessage(message: $message) { - ${AGENT_SIGNATURE_FIELDS} - } - }`, + agentSignMessage(message: $message) { + ${AGENT_SIGNATURE_FIELDS} + } + }`, variables: { message }, }) ); diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index 3316d6064..ff6527b44 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -394,11 +394,14 @@ export default class AgentService { } async signMessage(msg: string) { - const key = this.getSigningKey(); - const msgHash = await secp.utils.sha256(new TextEncoder().encode(msg)); - const signature = await secp.sign(msgHash, key.privateKey); - const sigHex = Buffer.from(signature).toString("hex"); - return new AgentSignature(sigHex, key.publicKey); + this.signingChecks() + + const payloadBytes = Signatures.buildMessageRaw(msg) + const signature = WALLET.sign(payloadBytes); + const sigBuffer = Buffer.from(signature); + const sigHex = sigBuffer.toString("hex"); + + return new AgentSignature(sigHex, WALLET.getMainKey().publicKey); } } diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index ef1d23792..b88dcd59c 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -9,6 +9,7 @@ use serde::{Deserialize, Serialize}; use crate::wallet::Wallet; #[derive(Serialize, Deserialize, Clone)] +#[serde(rename_all = "camelCase")] pub struct Key { pub public_key: String, pub private_key: String, diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index a2333431d..d3cc314c1 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -44,7 +44,7 @@ pub async fn run(mut config: Ad4mConfig) { info!("Starting GraphQL..."); - if (config.run_dapp_server.unwrap()) { + if config.run_dapp_server.unwrap() { tokio::task::spawn_blocking(move || { let result = serve_dapp(4200); tokio::runtime::Handle::current().block_on(async { @@ -95,7 +95,7 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { info!("Starting GraphQL..."); - if (config.run_dapp_server.unwrap()) { + if config.run_dapp_server.unwrap() { tokio::task::spawn_blocking(move || { let result = serve_dapp(4200); tokio::runtime::Handle::current().block_on(async { diff --git a/tests/js/tests/agent.ts b/tests/js/tests/agent.ts index 53eedb291..f74a56ca1 100644 --- a/tests/js/tests/agent.ts +++ b/tests/js/tests/agent.ts @@ -157,6 +157,12 @@ export default function agentTests(testContext: TestContext) { const getProofsPostDelete = await ad4mClient.agent.getEntanglementProofs(); expect(getProofsPostDelete.length).to.be.equal(0); }) + it('can signMessage', async () => { + const ad4mClient = testContext.ad4mClient!; + + const signed = await ad4mClient.agent.signMessage("test"); + expect(signed).to.not.be.null; + }) }) } } \ No newline at end of file From ff083d81202d1b95005e66915121d909e320fa62 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 16:06:26 +0100 Subject: [PATCH 594/722] dont try and unwrap auth header string; just return empty string if None --- rust-executor/src/graphql/mod.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index 61ac54e4b..b787b8079 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -70,7 +70,10 @@ pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), if let Some(headers) = val.get("headers") { let headers = headers.to_object_value().unwrap(); if let Some(auth) = headers.get("authorization") { - auth_header = auth.as_string_value().unwrap().to_string(); + auth_header = match auth.as_string_value() { + Some(s) => s.to_string(), + None => String::from(""), + }; } }; From eeb8fc2b9e94300c1db23ac2b3de1f725f853033 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 16:23:17 +0100 Subject: [PATCH 595/722] log out more info with failed to send subscriber error --- rust-executor/src/pubsub.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index 6d3459744..f18ced200 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -42,7 +42,7 @@ impl PubSub { for tx in subscribers { let send_res = tx.send(message.to_owned()); if send_res.is_err() { - error!("Failed to send message to subscriber: {:?}", send_res); + error!("Failed to send message to subscriber: {:?} on topic: {:?}, with subscribers: {:?}", send_res, topic, subscribers); } } } From 4740087622449a75ef068f9ca4d7e09ef3b7a82d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 16:38:53 +0100 Subject: [PATCH 596/722] just log out subscribers len --- rust-executor/src/pubsub.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index f18ced200..ac251f7bd 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -3,7 +3,7 @@ use crate::graphql::graphql_types::GetValue; use futures::Stream; use futures::StreamExt; use juniper::{graphql_value, FieldError, FieldResult}; -use tracing::{debug, error}; +use tracing::{debug, error, warn}; use serde::de::DeserializeOwned; use std::collections::HashMap; use std::pin::Pin; @@ -42,7 +42,7 @@ impl PubSub { for tx in subscribers { let send_res = tx.send(message.to_owned()); if send_res.is_err() { - error!("Failed to send message to subscriber: {:?} on topic: {:?}, with subscribers: {:?}", send_res, topic, subscribers); + warn!("Failed to send message to subscriber: {:?} on topic: {:?}, with subscribers, len: {:?}", send_res, topic, subscribers.len()); } } } From c35047b724af30852d5fb0a41035c3c085cee40e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 18:10:37 +0100 Subject: [PATCH 597/722] allow updateFromId to also change state --- executor/src/core/Perspective.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 46af29792..33b6007bb 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -203,6 +203,7 @@ export default class Perspective { updateFromId(id: PerspectiveHandle) { this.name = id.name this.uuid = id.uuid + if(id.state) this.state = id.state if(id.sharedUrl) this.sharedUrl = id.sharedUrl if(id.neighbourhood) this.neighbourhood = id.neighbourhood } From f012607865f9e72d5bf98157d4af5a63f12574ee Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 28 Aug 2023 18:10:46 +0100 Subject: [PATCH 598/722] add missing init_prolog_service import to main.rs --- rust-executor/src/main.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 5d681de75..c4e30862f 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -14,6 +14,8 @@ use tracing::{error, info}; use rust_executor::Ad4mConfig; use std::env; +use prolog_service::init_prolog_service; + use js_core::JsCore; #[tokio::main(flavor = "multi_thread")] From 2f55eceaa1526fd75f68be515451b9ba948261b7 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Tue, 29 Aug 2023 14:50:50 +0530 Subject: [PATCH 599/722] Update tauri to latest --- ui/package.json | 14 +- ui/src-tauri/Cargo.toml | 2 +- yarn.lock | 278 +++++++++++++++++++++++++++++++--------- 3 files changed, 227 insertions(+), 67 deletions(-) diff --git a/ui/package.json b/ui/package.json index 625629a78..ca66cc473 100644 --- a/ui/package.json +++ b/ui/package.json @@ -8,7 +8,7 @@ "@junto-foundation/junto-elements": "^0.5.5", "@perspect3vism/ad4m": "*", "@preact/preset-vite": "^2.4.0", - "@tauri-apps/api": "^1.2.0", + "@tauri-apps/api": "^1.4.0", "apollo-boost": "^0.4.9", "graphql": "15.7.2", "graphql-ws": "5.12.0", @@ -28,7 +28,7 @@ "tauri": "tauri", "eject": "vite eject", "build": "vite build", - "package-ad4m": "yarn run build && yarn run tauri -- build -v" + "package-ad4m": "yarn run build && yarn tauri build" }, "eslintConfig": { "extends": [ @@ -49,15 +49,15 @@ ] }, "devDependencies": { + "@prefresh/vite": "^2.2.9", + "@tauri-apps/cli": "1.4.0", + "@testing-library/jest-dom": "^5.16.2", + "@testing-library/react": "^12.1.4", + "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.4.1", "@types/node": "^18.0.0", "@types/react": "^17.0.40", "@types/react-dom": "^18.0.9", - "@testing-library/jest-dom": "^5.16.2", - "@testing-library/react": "^12.1.4", - "@testing-library/user-event": "^13.5.0", - "@prefresh/vite": "^2.2.9", - "@tauri-apps/cli": "1.2.1", "@vitejs/plugin-react-refresh": "^1.3.6", "customize-cra": "1.0.0", "react-app-rewired": "^2.2.1", diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 5c155e65c..27fe64145 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -27,7 +27,7 @@ directories = "4.0.1" opener = "0.5.0" open = "2.0.1" sysinfo = "0.29.7" -tauri = { version = "1.2.1", features = ["api-all", "system-tray"] } +tauri = { version = "1.4.0", features = ["api-all", "system-tray"] } uuid = { version = "0.8", features = ["v4"] } localtunnel-client = "0.0.12" tokio = { version = "1.19.2", features = ["full"] } diff --git a/yarn.lock b/yarn.lock index 774ebb526..d8f915926 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,7 +12,7 @@ resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== -"@ampproject/remapping@^2.2.0": +"@ampproject/remapping@^2.2.0", "@ampproject/remapping@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== @@ -2437,7 +2437,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== @@ -2460,7 +2460,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -2481,6 +2481,14 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.18": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@junto-foundation/junto-elements@^0.5.5": version "0.5.5" resolved "https://registry.yarnpkg.com/@junto-foundation/junto-elements/-/junto-elements-0.5.5.tgz#525b254faee09fed9fdb4a89c2dc38285e913672" @@ -2971,6 +2979,18 @@ magic-string "^0.25.7" resolve "^1.17.0" +"@rollup/plugin-commonjs@^25.0.4": + version "25.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz#a7547a0c4ec3fa79818eb313e1de0023e548f4e6" + integrity sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.27.0" + "@rollup/plugin-json@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" @@ -3002,6 +3022,18 @@ is-module "^1.0.0" resolve "^1.19.0" +"@rollup/plugin-node-resolve@^15.2.1": + version "15.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz#a15b14fb7969229e26a30feff2816d39eff503f0" + integrity sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" + "@rollup/plugin-node-resolve@^8.0.0": version "8.4.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" @@ -3449,65 +3481,76 @@ resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.3.0.tgz#d0c853ab2cc7506bd826c5f7f260c67c7c15def5" integrity sha512-AH+3FonkKZNtfRtGrObY38PrzEj4d+1emCbwNGu0V2ENbXjlLHMZQlUh+Bhu/CRmjaIwZMGJ3yFvWaZZgTHoog== -"@tauri-apps/cli-darwin-arm64@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.2.1.tgz#e75d6582f76b6ef33f251f9b559e7692b7892faa" - integrity sha512-WiAxSON52owFI65Whd3NjcKjXdO1zJfafBVZ3v+Y3F2zlXhRPiirXbtefAc3mvN56zDz/pfi018Qb4XesuVzHA== +"@tauri-apps/api@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.4.0.tgz#b4013ca3d17b853f7df29fe14079ebb4d52dbffa" + integrity sha512-Jd6HPoTM1PZSFIzq7FB8VmMu3qSSyo/3lSwLpoapW+lQ41CL5Dow2KryLg+gyazA/58DRWI9vu/XpEeHK4uMdw== -"@tauri-apps/cli-darwin-x64@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.2.1.tgz#3fefdb0154d7d804ea1b08fad342abec625b36e4" - integrity sha512-jfumnrn7RYKVtDmHgrQhImoxpqT51bDrO4KxgpIXaYSaf6MdG2JT72dwUovPrURw0JX2Z/Elihq+dYbrsKoV/w== +"@tauri-apps/cli-darwin-arm64@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.4.0.tgz#e76bb8515ae31f03f2cbd440c1a09b237a79b3ac" + integrity sha512-nA/ml0SfUt6/CYLVbHmT500Y+ijqsuv5+s9EBnVXYSLVg9kbPUZJJHluEYK+xKuOj6xzyuT/+rZFMRapmJD3jQ== -"@tauri-apps/cli-linux-arm-gnueabihf@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.2.1.tgz#6f5f403334b840d0085fec38cca4551c5c6b36a6" - integrity sha512-n4p6Ekn6Wa9X/klUGevEGgoWAGApGGsLrJYE4c8bKTbAUfQ9Nyzjh8gK/GDii1dg9oRW0FdXDa6BJa7aEEj9sA== +"@tauri-apps/cli-darwin-x64@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.4.0.tgz#dd1472460550d0aa0ec6e699b073be2d77e5b962" + integrity sha512-ov/F6Zr+dg9B0PtRu65stFo2G0ow2TUlneqYYrkj+vA3n+moWDHfVty0raDjMLQbQt3rv3uayFMXGPMgble9OA== -"@tauri-apps/cli-linux-arm64-gnu@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.2.1.tgz#d1c536d0fe4819029de9132974bdfb6fa08e55a7" - integrity sha512-oAHkQQGfNCh8pQQHuDzzqt+S5sOj3tiUkySaquR2z/AQEHeDGAMrRGLZwOiDw9Xvu7qxFiF9H0e5OMK7BkncDw== +"@tauri-apps/cli-linux-arm-gnueabihf@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.4.0.tgz#325e90e47d260ba71a499850ce769b5a6bdfd48d" + integrity sha512-zwjbiMncycXDV7doovymyKD7sCg53ouAmfgpUqEBOTY3vgBi9TwijyPhJOqoG5vUVWhouNBC08akGmE4dja15g== -"@tauri-apps/cli-linux-arm64-musl@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.2.1.tgz#22dd054d3ae2a923d5f7d3c7f529f48e7113ec19" - integrity sha512-1dEZ5fdFYkMyB1U7ZkDJUlwYwCeqy9Y3vXmtZ6pCxrvgs844s8+RIFDuMU42pTN+lUxfFeQARmv0LpS4eF/QWQ== +"@tauri-apps/cli-linux-arm64-gnu@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.4.0.tgz#b5d8f5cba3f8f7c7d44d071681f0ab0a37f2c46e" + integrity sha512-5MCBcziqXC72mMXnkZU68mutXIR6zavDxopArE2gQtK841IlE06bIgtLi0kUUhlFJk2nhPRgiDgdLbrPlyt7fw== -"@tauri-apps/cli-linux-x64-gnu@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.2.1.tgz#bfe23577a46a74699b27714d82162f0ae9280090" - integrity sha512-wkgCD3s5P6tgBPnn0/gDx7MXMx2Hx+jdA+JP8zdCq4cIeYXlxdZG/zXbHb5ldPadNh582lzHiGg+Pmc+wDg2fA== +"@tauri-apps/cli-linux-arm64-musl@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.4.0.tgz#f805ab2ee415875900f4b456f17dc4900d2a7911" + integrity sha512-7J3pRB6n6uNYgIfCeKt2Oz8J7oSaz2s8GGFRRH2HPxuTHrBNCinzVYm68UhVpJrL3bnGkU0ziVZLsW/iaOGfUg== -"@tauri-apps/cli-linux-x64-musl@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.2.1.tgz#dce7fb0254a1975238bdde5882115b38271ec9b7" - integrity sha512-zD+a+5cSlYVU0ECOojWp71ok/9jE0DJufzb9oky17XIKV/oiOAG60z4OYRe+oqxYS1TcBt+pUa1/2zlu/6SRdA== +"@tauri-apps/cli-linux-x64-gnu@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.4.0.tgz#d3f5e69c22420c7ac9e4021b7a94bce2e48cb45d" + integrity sha512-Zh5gfAJxOv5AVWxcwuueaQ2vIAhlg0d6nZui6nMyfIJ8dbf3aZQ5ZzP38sYow5h/fbvgL+3GSQxZRBIa3c2E1w== -"@tauri-apps/cli-win32-ia32-msvc@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.2.1.tgz#b6cb355f2d85704710c845800a29784536fb7240" - integrity sha512-nEgdRd8czaKL1RQfj946dsfzlk6atmD95Fm7NVTVOe77PFHTS3ztHeWK7X6jirCaOF3h/F7qpJVCU6JMnq2tfA== +"@tauri-apps/cli-linux-x64-musl@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.4.0.tgz#2e7f718272ffdd9ace80f57a35023ba0c74767ad" + integrity sha512-OLAYoICU3FaYiTdBsI+lQTKnDHeMmFMXIApN0M+xGiOkoIOQcV9CConMPjgmJQ867+NHRNgUGlvBEAh9CiJodQ== -"@tauri-apps/cli-win32-x64-msvc@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.2.1.tgz#b2b431ffed68fab9024d59ac2a2bafb02c5b9a5a" - integrity sha512-ceWiQkmNNRrnfgbLMnndT4QF1IyLK7aOJsMqS/HueshAwmVQWnC1DUE0C58Taetgq38Cavc4gGnZOCHuH6ZuTw== +"@tauri-apps/cli-win32-arm64-msvc@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.4.0.tgz#85cdb52a06feb92da785def4d02512099464525e" + integrity sha512-gZ05GENFbI6CB5MlOUsLlU0kZ9UtHn9riYtSXKT6MYs8HSPRffPHaHSL0WxsJweWh9nR5Hgh/TUU8uW3sYCzCg== -"@tauri-apps/cli@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.2.1.tgz#d7f61547915a8b052a92197ac70b8322838c6d2d" - integrity sha512-JrFFT1/4V+AGSRjKdgszZwOr+/a1519LDhNxBkbsIg6D/kFK+3kk1qImaQBY9DvvIWK6IV4whc8OAkgxm+Sl3w== +"@tauri-apps/cli-win32-ia32-msvc@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.4.0.tgz#0b7c921204058215aec9a5a00f735e73909bd330" + integrity sha512-JsetT/lTx/Zq98eo8T5CiRyF1nKeX04RO8JlJrI3ZOYsZpp/A5RJvMd/szQ17iOzwiHdge+tx7k2jHysR6oBlQ== + +"@tauri-apps/cli-win32-x64-msvc@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.4.0.tgz#23abe3f08c0df89111c29602f91c21a23577b908" + integrity sha512-z8Olcnwp5aYhzqUAarFjqF+oELCjuYWnB2HAJHlfsYNfDCAORY5kct3Fklz8PSsubC3U2EugWn8n42DwnThurg== + +"@tauri-apps/cli@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.4.0.tgz#72732ae61e6b7d097e44a8a2ef5f211b2d01d98b" + integrity sha512-VXYr2i2iVFl98etQSQsqLzXgX96bnWiNZd1YADgatqwy/qecbd6Kl5ZAPB5R4ynsgE8A1gU7Fbzh7dCEQYFfmA== optionalDependencies: - "@tauri-apps/cli-darwin-arm64" "1.2.1" - "@tauri-apps/cli-darwin-x64" "1.2.1" - "@tauri-apps/cli-linux-arm-gnueabihf" "1.2.1" - "@tauri-apps/cli-linux-arm64-gnu" "1.2.1" - "@tauri-apps/cli-linux-arm64-musl" "1.2.1" - "@tauri-apps/cli-linux-x64-gnu" "1.2.1" - "@tauri-apps/cli-linux-x64-musl" "1.2.1" - "@tauri-apps/cli-win32-ia32-msvc" "1.2.1" - "@tauri-apps/cli-win32-x64-msvc" "1.2.1" + "@tauri-apps/cli-darwin-arm64" "1.4.0" + "@tauri-apps/cli-darwin-x64" "1.4.0" + "@tauri-apps/cli-linux-arm-gnueabihf" "1.4.0" + "@tauri-apps/cli-linux-arm64-gnu" "1.4.0" + "@tauri-apps/cli-linux-arm64-musl" "1.4.0" + "@tauri-apps/cli-linux-x64-gnu" "1.4.0" + "@tauri-apps/cli-linux-x64-musl" "1.4.0" + "@tauri-apps/cli-win32-arm64-msvc" "1.4.0" + "@tauri-apps/cli-win32-ia32-msvc" "1.4.0" + "@tauri-apps/cli-win32-x64-msvc" "1.4.0" "@testing-library/dom@^8.0.0": version "8.20.0" @@ -3867,7 +3910,7 @@ dependencies: "@types/estree" "*" -"@types/estree@*", "@types/estree@^1.0.0": +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== @@ -4251,6 +4294,11 @@ dependencies: "@types/node" "*" +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -4784,6 +4832,11 @@ acorn@^8.0.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== +acorn@^8.10.0, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" @@ -5240,6 +5293,13 @@ aria-query@^5.0.0, aria-query@^5.1.3: dependencies: deep-equal "^2.0.5" +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -5528,6 +5588,13 @@ axobject-query@^3.1.1: dependencies: deep-equal "^2.0.5" +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== + dependencies: + dequal "^2.0.3" + babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -6882,6 +6949,17 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== +code-red@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35" + integrity sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + "@types/estree" "^1.0.1" + acorn "^8.10.0" + estree-walker "^3.0.3" + periscopic "^3.1.0" + collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -7547,6 +7625,14 @@ css-tree@^1.1.2, css-tree@^1.1.3: mdn-data "2.0.14" source-map "^0.6.1" +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + css-what@^3.2.1: version "3.4.2" resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" @@ -8321,7 +8407,7 @@ deps-sort@^2.0.1: subarg "^1.0.0" through2 "^2.0.0" -dequal@^2.0.0: +dequal@^2.0.0, dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== @@ -9555,7 +9641,7 @@ estree-walker@^2.0.1, estree-walker@^2.0.2: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -estree-walker@^3.0.0: +estree-walker@^3.0.0, estree-walker@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== @@ -10544,6 +10630,17 @@ glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-agent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" @@ -11801,7 +11898,7 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-builtin-module@^3.1.0: +is-builtin-module@^3.1.0, is-builtin-module@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== @@ -12097,14 +12194,14 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-reference@^1.1.2, is-reference@^1.2.1: +is-reference@1.2.1, is-reference@^1.1.2, is-reference@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: "@types/estree" "*" -is-reference@^3.0.0: +is-reference@^3.0.0, is-reference@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831" integrity sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w== @@ -13838,6 +13935,11 @@ loader-utils@^3.2.0: resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== +locate-character@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" + integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -14064,6 +14166,20 @@ magic-string@^0.25.0, magic-string@^0.25.2, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + +magic-string@^0.30.0: + version "0.30.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -14464,6 +14580,11 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" @@ -16531,7 +16652,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -periscopic@^3.0.0: +periscopic@^3.0.0, periscopic@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== @@ -18517,6 +18638,11 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + resolve@^1.1.4, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.1, resolve@^1.14.2, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.4.0: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" @@ -18701,6 +18827,14 @@ rollup-plugin-svelte@^6.0.0: rollup-pluginutils "^2.8.2" sourcemap-codec "^1.4.8" +rollup-plugin-svelte@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.6.tgz#44a4ea6c6e8ed976824d9fd40c78d048515e5838" + integrity sha512-nVFRBpGWI2qUY1OcSiEEA/kjCY2+vAjO9BI8SzA7NRrh2GTunLd6w2EYmnMt/atgdg8GvcNjLsmZmbQs/u4SQA== + dependencies: + "@rollup/pluginutils" "^4.1.0" + resolve.exports "^2.0.0" + rollup-plugin-terser@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" @@ -18732,6 +18866,13 @@ rollup@^3.21.0: optionalDependencies: fsevents "~2.3.2" +rollup@^3.28.1: + version "3.28.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" + integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== + optionalDependencies: + fsevents "~2.3.2" + rsvp@^3.5.0: version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" @@ -19989,6 +20130,25 @@ svelte@^3.0.0: resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.59.1.tgz#3de3d56b9165748f32f3131589b8d183cabe7449" integrity sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ== +svelte@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.0.tgz#0e4304c15524450b22fba02516eb72efbd8847b6" + integrity sha512-kVsdPjDbLrv74SmLSUzAsBGquMs4MPgWGkGLpH+PjOYnFOziAvENVzgJmyOCV2gntxE32aNm8/sqNKD6LbIpeQ== + dependencies: + "@ampproject/remapping" "^2.2.1" + "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/trace-mapping" "^0.3.18" + acorn "^8.9.0" + aria-query "^5.3.0" + axobject-query "^3.2.1" + code-red "^1.0.3" + css-tree "^2.3.1" + estree-walker "^3.0.3" + is-reference "^3.0.1" + locate-character "^3.0.0" + magic-string "^0.30.0" + periscopic "^3.1.0" + svg-parser@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" From 6d083af1938766cfb957a63c8222f99b03912907 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 11:49:03 +0100 Subject: [PATCH 600/722] increase sleep in see other agents test --- tests/js/tests/neighbourhood.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index 36735c27b..6205982cd 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -211,7 +211,7 @@ export default function neighbourhoodTests(testContext: TestContext) { }) it('they see each other in `otherAgents`', async () => { - await sleep(1000); + await sleep(5000); const aliceAgents = await aliceNH!.otherAgents() console.log("alice agents", aliceAgents); const bobAgents = await bobNH!.otherAgents() From 618caae74a937437c45599896e2609d8ae381324 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Tue, 29 Aug 2023 16:19:06 +0530 Subject: [PATCH 601/722] Fixed packaged laucher hanging due to creating a file in read-only mount --- rust-executor/src/graphql/mod.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index b787b8079..68e91d190 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -8,6 +8,7 @@ use graphql_types::RequestContext; use mutation_resolvers::*; use query_resolvers::*; use subscription_resolvers::*; +use tauri::api::path::home_dir; use crate::js_core::JsCoreHandle; @@ -33,9 +34,11 @@ fn schema() -> Schema { pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), AnyError> { let log = warp::log("warp::server"); - let mut file = std::fs::File::create("schema.gql").unwrap(); - file.write_all(schema().as_schema_language().as_bytes()) - .unwrap(); + let mut file = std::fs::File::create( + home_dir().unwrap().join(".ad4m").join("schema.gql") + ).unwrap(); + + file.write_all(schema().as_schema_language().as_bytes()).unwrap(); let homepage = warp::path::end().map(|| { Response::builder() From f54467e4e4f733434b12d6f8acc9c5a647d6a2bc Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 11:52:00 +0100 Subject: [PATCH 602/722] allow running language test on rust-holochain-0.3.0 branch --- .github/workflows/agent-language-tests.yml | 1 + .github/workflows/direct-message-language-tests.yml | 1 + .github/workflows/file-storage-language-tests.yml | 1 + .github/workflows/p-diff-sync-tests.yml | 1 + 4 files changed, 4 insertions(+) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index f1331bda1..1f0f7c4b5 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -9,6 +9,7 @@ on: - main - staging - bootstrap-languages + - rust-holochain-0.3.0 jobs: pull: diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index f93783f01..2a626d8bc 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -9,6 +9,7 @@ on: - main - staging - bootstrap-languages + - rust-holochain-0.3.0 jobs: pull: diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index 68512e734..b8ad6417e 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -9,6 +9,7 @@ on: - main - staging - bootstrap-languages + - rust-holochain-0.3.0 jobs: holochain: diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 8584d97ff..8bebcdab3 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -9,6 +9,7 @@ on: - main - staging - bootstrap-languages + - rust-holochain-0.3.0 jobs: unit: From 2cc339a9722eef7234d914f461d36e8333862d18 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 12:08:23 +0100 Subject: [PATCH 603/722] install deno for bootstrap language tests --- .github/workflows/agent-language-tests.yml | 5 ++ .../direct-message-language-tests.yml | 5 ++ .../workflows/file-storage-language-tests.yml | 10 +++ .github/workflows/p-diff-sync-tests.yml | 69 +++++++++++++++++-- 4 files changed, 82 insertions(+), 7 deletions(-) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index 1f0f7c4b5..265f314df 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -47,6 +47,11 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'npm' + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index 2a626d8bc..f3bac0476 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -47,6 +47,11 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'npm' + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index b8ad6417e..ef4339613 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -47,6 +47,11 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'npm' + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" @@ -89,6 +94,11 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'npm' + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 8bebcdab3..07f1c14ec 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -56,7 +56,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -68,11 +68,18 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" @@ -95,7 +102,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -107,11 +115,18 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" @@ -134,7 +149,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -146,11 +162,18 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" @@ -173,7 +196,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -185,11 +209,18 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" @@ -213,7 +244,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -225,11 +257,18 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" @@ -252,7 +291,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -264,11 +304,18 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" @@ -291,7 +338,8 @@ jobs: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.68.2 + toolchain: 1.71.1 + - name: Cache cargo id: cache-cargo uses: actions/cache@v3 @@ -303,11 +351,18 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' + + - name: Install Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.32.4 + - run: rustup target add wasm32-unknown-unknown - run: yarn install - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" From 38cdebce6f9b1a7413955c3065d8abf28255732d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 12:24:10 +0100 Subject: [PATCH 604/722] remove concurrency from build-languages --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bf10cc1be..0559d3e93 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "test:linux": "turbo run test:linux --concurrency=1", "test:windows": "turbo run test:windows --concurrency=1", "package-ad4m": "turbo run package-ad4m", - "build-languages": "turbo run build-languages", + "build-languages": "turbo run build-languages --concurrency=1", "docs": "jsdoc -c jsdoc.json", "docs:api:jsdoc2md": "jsdoc2md --configure jsdoc.json --partial docs/header.hbs --global-index-format none --files src/**/* > docs-src/api.md", "docs:api:tsconcat": "concat-md --decrease-title-levels --dir-name-as-title docs-src/typedoc > docs-src/api.md", From f4afdb2f35ae8a15315c2dcfbf1181ad53f913e3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 13:00:14 +0100 Subject: [PATCH 605/722] dont run language tests on this branch anymore --- .github/workflows/agent-language-tests.yml | 1 - .github/workflows/direct-message-language-tests.yml | 1 - .github/workflows/file-storage-language-tests.yml | 1 - .github/workflows/p-diff-sync-tests.yml | 1 - 4 files changed, 4 deletions(-) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index 265f314df..d7eca87bf 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -9,7 +9,6 @@ on: - main - staging - bootstrap-languages - - rust-holochain-0.3.0 jobs: pull: diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index f3bac0476..d74fbe0ae 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -9,7 +9,6 @@ on: - main - staging - bootstrap-languages - - rust-holochain-0.3.0 jobs: pull: diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index ef4339613..a83006bc9 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -9,7 +9,6 @@ on: - main - staging - bootstrap-languages - - rust-holochain-0.3.0 jobs: holochain: diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 07f1c14ec..75c8eee9f 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -9,7 +9,6 @@ on: - main - staging - bootstrap-languages - - rust-holochain-0.3.0 jobs: unit: From 48b96b8622ccd1c46f2b51e3dbaa3a6c18302885 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 14:51:55 +0100 Subject: [PATCH 606/722] cleanup rust errors from dapp server --- rust-executor/src/dapp_server.rs | 4 ++-- rust-executor/src/lib.rs | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/dapp_server.rs b/rust-executor/src/dapp_server.rs index bebe3021b..e51c971b3 100644 --- a/rust-executor/src/dapp_server.rs +++ b/rust-executor/src/dapp_server.rs @@ -2,7 +2,7 @@ use std::convert::Infallible; use std::net::SocketAddr; use http_body_util::Full; -use hyper::body::{Bytes, Body}; +use hyper::body::Bytes; use hyper::server::conn::http1; use hyper::service::service_fn; use hyper::{Request, Response}; @@ -22,7 +22,7 @@ async fn serve_file(req: Request) -> Result Date: Tue, 29 Aug 2023 14:52:09 +0100 Subject: [PATCH 607/722] add test case for deleting a neighbourhood --- tests/js/tests/neighbourhood.ts | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index 6205982cd..ee71475c2 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -1,4 +1,4 @@ -import { Link, Perspective, LinkExpression, ExpressionProof, LinkQuery, PerspectiveState, NeighbourhoodProxy, PerspectiveUnsignedInput } from "@perspect3vism/ad4m"; +import { Link, Perspective, LinkExpression, ExpressionProof, LinkQuery, PerspectiveState, NeighbourhoodProxy, PerspectiveUnsignedInput, PerspectiveProxy, PerspectiveHandle } from "@perspect3vism/ad4m"; import { TestContext } from './integration.test' import { sleep } from "../utils/utils"; import fs from "fs"; @@ -6,6 +6,8 @@ import { v4 as uuidv4 } from 'uuid'; import { expect } from "chai"; const DIFF_SYNC_OFFICIAL = fs.readFileSync("./scripts/perspective-diff-sync-hash").toString(); +let aliceP1: null | PerspectiveProxy = null; +let bobP1: null | PerspectiveHandle = null; export default function neighbourhoodTests(testContext: TestContext) { return () => { @@ -99,11 +101,11 @@ export default function neighbourhoodTests(testContext: TestContext) { const alice = testContext.alice const bob = testContext.bob - const aliceP1 = await alice.perspective.add("friends") + aliceP1 = await alice.perspective.add("friends") const socialContext = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood with Bob test local links"})); const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, socialContext.address, new Perspective()) console.log("neighbourhoodUrl", neighbourhoodUrl); - let bobP1 = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); + bobP1 = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); await testContext.makeAllNodesKnown() @@ -125,6 +127,20 @@ export default function neighbourhoodTests(testContext: TestContext) { expect(bobLinks.length).to.be.equal(0) }) + + it('can delete neighbourhood', async () => { + const alice = testContext.alice; + const bob = testContext.bob; + + const deleteNeighbourhood = await alice.perspective.remove(aliceP1!.uuid); + expect(deleteNeighbourhood.perspectiveRemove).to.be.true; + + const bobDeleteNeighbourhood = await bob.perspective.remove(bobP1!.uuid); + expect(bobDeleteNeighbourhood.perspectiveRemove).to.be.true; + + const perspectives = await alice.perspective.all(); + console.log("Alice has perspectives", perspectives); + }) // it('can get the correct state change signals', async () => { // const aliceP1 = await testContext.alice.perspective.add("state-changes") From b13588edda9adc60e754cd3aab44aff7cb138cd4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 14:52:15 +0100 Subject: [PATCH 608/722] remove dead code --- executor/src/core/Ad4mCore.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/executor/src/core/Ad4mCore.ts b/executor/src/core/Ad4mCore.ts index ac2fcfb7e..cea01c967 100644 --- a/executor/src/core/Ad4mCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -180,10 +180,6 @@ export default class Ad4mCore { console.log("Done.") } - startDAppServer(port: number) { - runDAppServer(port) - } - async initIPFS(params: InitIPFSParams) { console.log("Init IPFS service with port ", params.ipfsSwarmPort, " at path: ", params.ipfsRepoPath); From 48bf918a88b8e526fab17983ec29f582a2c59025 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 14:52:37 +0100 Subject: [PATCH 609/722] fix neighbourhood deletion crashing ad4m-executor --- executor/src/core/LanguageController.ts | 10 ++-- executor/src/core/Perspective.ts | 49 +++++-------------- executor/src/core/PerspectivesController.ts | 32 ++++++++---- .../src/core/graphQL-interface/GraphQL.ts | 4 +- 4 files changed, 42 insertions(+), 53 deletions(-) diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 5af8c6cd3..7ad18d855 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -441,15 +441,15 @@ export default class LanguageController { language.teardown(); } - this.#holochainService.removeDnaForLang(hash as string); + //Remove language from memory + this.#languages.delete(hash as string); + this.#languageConstructors.delete(hash as string); + + await this.#holochainService.removeDnaForLang(hash as string); //Remove language files const languagePath = path.join(this.#config.languagesPath, hash as string); fs.rmdirSync(languagePath, {recursive: true}); - - //Remove language from memory - this.#languages.delete(hash as string); - this.#languageConstructors.delete(hash as string); } languageForExpression(e: ExpressionRef): Language { diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 33b6007bb..1d84a3b89 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -35,7 +35,9 @@ export default class Perspective { #prologEngine: PrologInstance|null #prologNeedsRebuild: boolean #pollingInterval: any; + #pendingDiffPollingInterval: any #prologMutex: Mutex + #isTeardown: boolean = false; constructor(id: PerspectiveHandle, context: PerspectiveContext, neighbourhood?: Neighbourhood, createdFromJoin?: boolean, state?: PerspectiveState) { this.updateFromId(id) @@ -61,11 +63,12 @@ export default class Perspective { process.on("SIGINT", () => { clearInterval(this.#pollingInterval); + clearInterval(this.#pendingDiffPollingInterval); }); if (this.neighbourhood) { // setup polling loop for Perspectives with a linkLanguage - this.setupSyncSignals(3000); + this.#pollingInterval = this.setupSyncSignals(3000); // Handle join differently so we wait before publishing diffs until we have seen // a first foreign revision. Otherwise we will never use snaphshots and make the @@ -77,7 +80,7 @@ export default class Perspective { // Set the state to LinkLanguageInstalledButNotSynced so we will keep // link additions as pending until we are synced if(!revision) { - this.setupPendingDiffsPublishing(5000); + this.#pendingDiffPollingInterval = this.setupPendingDiffsPublishing(5000); } }) } catch (e) { @@ -112,6 +115,8 @@ export default class Perspective { async setupSyncSignals(intervalMs: number) { return setInterval(async () => { + console.log("Calling sync"); + if (this.#isTeardown) return; try { await this.callLinksAdapter("sync"); } catch(e) { @@ -124,6 +129,8 @@ export default class Perspective { let pendingGotPublished = false; let pendingDiffsInterval = setInterval(async () => { + console.log("calling pending diff"); + if (this.#isTeardown) return; if(this.state == PerspectiveState.LinkLanguageFailedToInstall) { try { await this.getLinksAdapter() @@ -155,41 +162,7 @@ export default class Perspective { clearInterval(pendingDiffsInterval); } }, intervalMs); - } - - - setupPolling(intervalMs: number) { - return setInterval( - async () => { - try { - let madeSync = false; - // If LinkLanguage is connected/synced (otherwise currentRevision would be null)... - const currentRevision = await this.getCurrentRevision(); - if (currentRevision) { - madeSync = true; - //Let's check if we have unpublished diffs: - const mutations = await this.#db.getPendingDiffs(this.uuid!); - if (mutations.additions.length > 0 || mutations.removals.length > 0) { - // ...publish them... - await this.callLinksAdapter('commit', mutations); - // ...and clear the temporary storage - await this.#db.clearPendingDiffs(this.uuid!); - } - - //If we are fast polling (since we have not seen any changes) and we see changes, we can slow down the polling - if(this.isFastPolling && madeSync) { - this.isFastPolling = false; - clearInterval(this.#pollingInterval); - this.#pollingInterval = this.setupPolling(30000); - } - } - - } catch (e) { - console.warn(`Perspective.constructor(): NH [${this.sharedUrl}] (${this.name}): Got error when trying to check sync on linksAdapter. Error: ${e}`, e); - } - }, - intervalMs - ); + return pendingDiffsInterval; } @@ -921,7 +894,9 @@ export default class Perspective { } clearPolling() { + this.#isTeardown = true; clearInterval(this.#pollingInterval); + clearInterval(this.#pendingDiffPollingInterval); } } diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index 557ff61b8..174b5d080 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -5,7 +5,7 @@ import * as PubSubDefinitions from './graphQL-interface/SubscriptionDefinitions' import type PerspectiveContext from './PerspectiveContext' import { Perspective as Ad4mPerspective, Neighbourhood, LinkQuery, PerspectiveHandle, LanguageRef, PerspectiveDiff, PerspectiveState, PerspectiveExpression } from '@perspect3vism/ad4m' import Perspective from './Perspective' -import { getPubSub } from './utils'; +import { getPubSub, sleep } from './utils'; export default class PerspectivesController { #perspectiveHandles: Map @@ -152,8 +152,16 @@ export default class PerspectivesController { async replace(perspectiveHandle: PerspectiveHandle, neighbourhood: Neighbourhood, createdFromJoin: boolean, state: PerspectiveState) { await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_UPDATED_TOPIC, perspectiveHandle); + this.#perspectiveHandles.set(perspectiveHandle.uuid, perspectiveHandle); - this.#perspectiveInstances.get(perspectiveHandle.uuid)?.clearPolling(); + let existingPerspective = this.#perspectiveInstances.get(perspectiveHandle.uuid); + + if (existingPerspective) { + existingPerspective.clearPolling(); + this.#perspectiveInstances.delete(perspectiveHandle.uuid); + existingPerspective = undefined; + } + this.#perspectiveInstances.set(perspectiveHandle.uuid, new Perspective(perspectiveHandle, this.#context, neighbourhood, createdFromJoin, state)); this.save() } @@ -161,14 +169,20 @@ export default class PerspectivesController { async remove(uuid: string) { try { let perspective = this.#perspectiveInstances.get(uuid); - perspective?.clearPolling(); - if (perspective?.neighbourhood) { - this.#context.languageController?.languageRemove(perspective.neighbourhood.linkLanguage); + if (perspective) { + perspective.clearPolling(); + if (perspective.neighbourhood) { + await this.#context.languageController?.languageRemove(perspective.neighbourhood.linkLanguage); + } + perspective = undefined; + this.#perspectiveHandles.delete(uuid) + this.#perspectiveInstances.delete(uuid) + this.save() + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_REMOVED_TOPIC, uuid) + return true + } else { + return false } - this.#perspectiveHandles.delete(uuid) - this.#perspectiveInstances.delete(uuid) - this.save() - await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_REMOVED_TOPIC, uuid) } catch (e) { console.error("Error removing perspective:", e); throw new Error(`Error removing perspective: ${e}`); diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index b5dd8c3b2..3516eceb8 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -840,8 +840,8 @@ export function createResolvers(core: Ad4mCore, config: OuterConfig) { perspectiveRemove: async (args, context) => { const { uuid } = args checkCapability(context.capabilities, Auth.perspectiveDeleteCapability([uuid])) - await core.perspectivesController.remove(uuid) - return true + let removeStatus = await core.perspectivesController.remove(uuid) + return removeStatus }, //@ts-ignore perspectiveRemoveLink: async (args, context) => { From d5bcd5643d97385c4c5071c40813faf5d794c92e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 14:52:43 +0100 Subject: [PATCH 610/722] add missing tauri import --- rust-executor/Cargo.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index ae6f300ed..f794f726e 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -75,5 +75,7 @@ scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-pro # scryer-prolog = { path = "../../scryer-prolog", features = ["multi_thread"] } tracing = "0.1" +tauri = { version = "1.4.0", features = ["api-all", "system-tray"] } + [dev-dependencies] maplit = "1.0.2" From 95c8fb7cf092670a52036af5971c4330554fcfc9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 15:28:12 +0100 Subject: [PATCH 611/722] install system deps needed for tauri --- .github/workflows/integration_js.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 1135948a4..ee1feb418 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -57,6 +57,11 @@ jobs: with: deno-version: v1.32.4 + - name: install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf + - name: Install HC run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" From 3bec5b95716df360a929713606d635f7c59b5c37 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 29 Aug 2023 16:29:52 +0100 Subject: [PATCH 612/722] fix compilation --- Cargo.lock | 1 + rust-executor/src/lib.rs | 6 +----- rust-executor/src/main.rs | 1 + 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2fb35f9fb..1af1aaa6c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10229,6 +10229,7 @@ dependencies = [ "semver 1.0.18", "serde", "serde_json", + "tauri", "tokio", "tokio-stream", "tracing", diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index a183338e2..47a3f7acc 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -1,6 +1,4 @@ -#[cfg(test)] - -mod config; +pub mod config; mod globals; pub mod graphql; mod holochain_service; @@ -14,8 +12,6 @@ use tokio; pub mod init; mod pubsub; mod dapp_server; -#[macro_use] -extern crate rust_embed; use std::env; use tracing::{info, error}; diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index c4e30862f..8262e580d 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -6,6 +6,7 @@ mod prolog; mod prolog_service; mod utils; mod wallet; +mod config; pub mod init; mod pubsub; From e1b9dfbac38bc87ff2058885bb138421126a25d5 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Wed, 30 Aug 2023 15:47:54 +0530 Subject: [PATCH 613/722] Fixed ad4m_data_directory for windows --- rust-executor/src/utils.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs index 302a93653..8f722c4eb 100644 --- a/rust-executor/src/utils.rs +++ b/rust-executor/src/utils.rs @@ -1,11 +1,8 @@ -use std::env::var_os; +use std::env::home_dir; use std::path::{Path, PathBuf}; + pub(crate) fn ad4m_data_directory() -> PathBuf { - let mut ad4m_dir = var_os("HOME") - .unwrap_or_else(|| panic!("Failed to get home directory")) - .into_string() - .unwrap_or_else(|_| panic!("Failed to convert HOME env variable to string")); - ad4m_dir.push_str("/.ad4m"); - Path::new(&ad4m_dir).to_path_buf() + let ad4m_dir = home_dir().unwrap().join(".ad4m"); + ad4m_dir } From 04907dcf2998dabd36fd92bbac7bcefcee766e57 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Wed, 30 Aug 2023 15:48:04 +0530 Subject: [PATCH 614/722] Fixed logging for launcher --- ui/src-tauri/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 214cd93a7..0523aa8ed 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -72,7 +72,7 @@ pub struct AppState { } fn main() { - env::set_var("RUST_LOG", "rust_executor=info,error,warn,debugad4m-launcher=info,warn,error"); + env::set_var("RUST_LOG", "rust_executor=info,error,warn,debug,ad4m_launcher=info,warn,error"); if !data_path().exists() { let _ = fs::create_dir_all(data_path()); From 338b029aeaf85a8da6570701557cbf320931fa19 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 13:56:45 +0100 Subject: [PATCH 615/722] dont use tauri to get app path but just use app_data_path in config already --- rust-executor/src/graphql/mod.rs | 6 +++--- rust-executor/src/lib.rs | 2 ++ rust-executor/src/main.rs | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index 68e91d190..f4e774163 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -8,7 +8,6 @@ use graphql_types::RequestContext; use mutation_resolvers::*; use query_resolvers::*; use subscription_resolvers::*; -use tauri::api::path::home_dir; use crate::js_core::JsCoreHandle; @@ -22,6 +21,7 @@ use juniper::{InputValue, RootNode}; use juniper_graphql_transport_ws::ConnectionConfig; use juniper_warp::{playground_filter, subscriptions::serve_graphql_transport_ws}; use warp::{http::Response, Filter}; +use std::path::Path; impl juniper::Context for RequestContext {} @@ -31,11 +31,11 @@ fn schema() -> Schema { Schema::new(Query, Mutation, Subscription) } -pub async fn start_server(js_core_handle: JsCoreHandle, port: u16) -> Result<(), AnyError> { +pub async fn start_server(js_core_handle: JsCoreHandle, port: u16, app_data_path: String) -> Result<(), AnyError> { let log = warp::log("warp::server"); let mut file = std::fs::File::create( - home_dir().unwrap().join(".ad4m").join("schema.gql") + Path::new(&app_data_path).join("schema.gql") ).unwrap(); file.write_all(schema().as_schema_language().as_bytes()).unwrap(); diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 47a3f7acc..8eb658083 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -60,6 +60,7 @@ pub async fn run(mut config: Ad4mConfig) { match graphql::start_server( js_core_handle, config.gql_port.expect("Did not get gql port"), + config.app_data_path.expect("Did not get app data path") ) .await { @@ -112,6 +113,7 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { let result = graphql::start_server( js_core_handle, config.gql_port.expect("Did not get gql port"), + config.app_data_path.expect("Did not get app data path") ); tokio::runtime::Handle::current().block_on(async { match result.await { diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 8262e580d..1be0a8c55 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -41,6 +41,7 @@ async fn main() { match graphql::start_server( js_core_handle, config.gql_port.expect("Did not get gql port"), + config.app_data_path.expect("Did not get app data path"), ) .await { From d987ca284014ed019d2d53f4fffb41e75dca892f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 13:57:41 +0100 Subject: [PATCH 616/722] remove tauri from rust-executor and bump in ui --- Cargo.lock | 318 ++++++++++++++++++++------------------- rust-executor/Cargo.toml | 2 - ui/src-tauri/Cargo.toml | 2 +- 3 files changed, 162 insertions(+), 160 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1af1aaa6c..ac19bbc20 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,7 +19,7 @@ dependencies = [ "ad4m-client", "anyhow", "chrono", - "clap 4.4.0", + "clap 4.4.1", "colour", "dirs 4.0.0", "futures", @@ -42,7 +42,7 @@ dependencies = [ "anyhow", "async-tungstenite", "chrono", - "clap 4.4.0", + "clap 4.4.1", "dirs 4.0.0", "futures", "graphql-ws-client", @@ -78,7 +78,7 @@ dependencies = [ "rust-executor", "serde", "serde_json", - "sysinfo 0.29.8", + "sysinfo 0.29.9", "tauri", "tauri-build", "tauri-plugin-positioner", @@ -459,9 +459,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b74f44609f0f91493e3082d3734d98497e094777144380ea4db9f9905dd5b6" +checksum = "d495b6dc0184693324491a5ac05f559acc97bf937ab31d7a1c33dd0016be6d2b" dependencies = [ "brotli", "flate2", @@ -762,9 +762,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" [[package]] name = "base64-simd" @@ -1068,7 +1068,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ "memchr", - "regex-automata 0.3.6", + "regex-automata 0.3.7", "serde", ] @@ -1329,9 +1329,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "f56b4c72906975ca04becb8a30e102dfecddd0c06181e3e95ddc444be28881f8" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1340,7 +1340,7 @@ dependencies = [ "serde", "time 0.1.45", "wasm-bindgen", - "winapi 0.3.9", + "windows-targets 0.48.5", ] [[package]] @@ -1401,9 +1401,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.0" +version = "4.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d5f1946157a96594eb2d2c10eb7ad9a2b27518cb3000209dec700c35df9197d" +checksum = "7c8d502cbaec4595d2e7d5f61e318f05417bd2b66fdc3809498f0d3fdf0bea27" dependencies = [ "clap_builder", "clap_derive 4.4.0", @@ -1412,9 +1412,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.0" +version = "4.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78116e32a042dd73c2901f0dc30790d20ff3447f3e3472fad359e8c3d282bcd6" +checksum = "5891c7bc0edb3e1c2204fc5e94009affabeb1821c9e5fdc3959536c5c0bb984d" dependencies = [ "anstream", "anstyle", @@ -2042,7 +2042,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e" dependencies = [ - "nix 0.26.2", + "nix 0.26.4", "windows-sys 0.48.0", ] @@ -2257,9 +2257,9 @@ dependencies = [ [[package]] name = "dashmap" -version = "5.5.1" +version = "5.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd72493923899c6f10c641bdbdeddc7183d6396641d99c1a0d1597f37f92e28" +checksum = "9b101bb8960ab42ada6ae98eb82afcea4452294294c45b681295af26610d6d28" dependencies = [ "cfg-if 1.0.0", "hashbrown 0.14.0", @@ -2271,7 +2271,7 @@ dependencies = [ [[package]] name = "dashu" version = "0.3.1" -source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" dependencies = [ "dashu-base", "dashu-float", @@ -2283,12 +2283,12 @@ dependencies = [ [[package]] name = "dashu-base" version = "0.3.1" -source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" [[package]] name = "dashu-float" version = "0.3.2" -source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" dependencies = [ "dashu-base", "dashu-int", @@ -2300,11 +2300,11 @@ dependencies = [ [[package]] name = "dashu-int" version = "0.3.1" -source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" dependencies = [ "cfg-if 1.0.0", "dashu-base", - "num-modular 0.6.0", + "num-modular 0.5.2", "num-order", "num-traits", "static_assertions", @@ -2313,7 +2313,7 @@ dependencies = [ [[package]] name = "dashu-macros" version = "0.3.1" -source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" dependencies = [ "dashu-base", "dashu-float", @@ -2326,7 +2326,7 @@ dependencies = [ [[package]] name = "dashu-ratio" version = "0.3.2" -source = "git+https://github.com/coasys/dashu.git#ae7ee53fad213e09da5fe4b30e9e9e8bce96aedd" +source = "git+https://github.com/coasys/dashu.git#f9342190be9062630124e666b001077bb5f02f23" dependencies = [ "dashu-base", "dashu-float", @@ -2367,6 +2367,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5" +[[package]] +name = "data-url" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f" + [[package]] name = "debugid" version = "0.8.0" @@ -2433,7 +2439,7 @@ dependencies = [ "swc_visit", "swc_visit_macros", "text_lines", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -2493,7 +2499,7 @@ dependencies = [ "smallvec 1.11.0", "sourcemap", "tokio", - "url 2.4.0", + "url 2.4.1", "v8", ] @@ -2540,7 +2546,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af49c674cf373a8946e67dae1d2badc0c1176f9ecb84cda168c5c9421ef15b3a" dependencies = [ "bytes", - "data-url", + "data-url 0.2.0", "deno_core", "deno_tls", "dyn-clone", @@ -2662,13 +2668,13 @@ dependencies = [ [[package]] name = "deno_media_type" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "001d69b833ed4d244b608bab9c07069bfb570f631b763b58e73f82a020bf84ef" +checksum = "a798670c20308e5770cc0775de821424ff9e85665b602928509c8c70430b3ee0" dependencies = [ - "data-url", + "data-url 0.3.0", "serde", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -2862,7 +2868,7 @@ dependencies = [ "once_cell", "serde", "thiserror", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -2873,7 +2879,7 @@ checksum = "02167d4913ff4b1f93f0f3182b6ebee67f41129a94ea9ef8ce15dff51649aff4" dependencies = [ "deno_core", "once_cell", - "rustls 0.21.6", + "rustls 0.21.7", "rustls-native-certs", "rustls-pemfile 1.0.3", "serde", @@ -3491,15 +3497,15 @@ dependencies = [ [[package]] name = "embed-resource" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7f1e82a60222fc67bfd50d752a9c89da5cce4c39ed39decc84a443b07bbd69a" +checksum = "fd0a2c9b742a980060d22545a7a83b573acd6b73045b9de6370c9530ce652f27" dependencies = [ "cc", "rustc_version 0.4.0", "toml 0.7.6", "vswhom", - "winreg 0.11.0", + "winreg 0.51.0", ] [[package]] @@ -3643,9 +3649,9 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" dependencies = [ "errno-dragonfly", "libc", @@ -3711,7 +3717,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1925eb5ee48fffa504a9edce24b3b4d43e2809d1cc713a1df2b13a46e661b3c6" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", "cc", "hyper 0.14.27", "pin-project", @@ -3729,7 +3735,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" dependencies = [ "cfg-if 1.0.0", - "rustix 0.38.8", + "rustix 0.38.10", "windows-sys 0.48.0", ] @@ -4713,9 +4719,9 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312f66718a2d7789ffef4f4b7b213138ed9f1eb3aa1d0d82fc99f88fb3ffd26f" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ "hashbrown 0.14.0", ] @@ -5032,7 +5038,7 @@ dependencies = [ "tx5-go-pion-turn", "tx5-signal-srv", "unwrap_to", - "url 2.4.0", + "url 2.4.1", "url2", "url_serde", "uuid 0.7.4", @@ -5064,7 +5070,7 @@ dependencies = [ "kitsune_p2p", "mockall", "serde", - "serde_derive 1.0.186", + "serde_derive 1.0.188", "thiserror", "tokio", "tracing", @@ -5077,7 +5083,7 @@ version = "0.3.0-beta-dev.13" source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ "anyhow", - "clap 4.4.0", + "clap 4.4.1", "futures", "holochain_serialized_bytes", "holochain_types", @@ -5097,7 +5103,7 @@ name = "holochain_cli_run_local_services" version = "0.3.0-beta-dev.7" source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" dependencies = [ - "clap 4.4.0", + "clap 4.4.1", "futures", "holochain_trace", "if-addrs 0.10.1", @@ -5123,7 +5129,7 @@ dependencies = [ "holochain_zome_types", "kitsune_p2p", "serde", - "serde_derive 1.0.186", + "serde_derive 1.0.188", "serde_yaml 0.9.25", "structopt", "thiserror", @@ -5269,7 +5275,7 @@ dependencies = [ "rusqlite", "scheduled-thread-pool", "serde", - "serde_derive 1.0.186", + "serde_derive 1.0.188", "serde_json", "shrinkwraprs", "sqlformat 0.1.8", @@ -5390,7 +5396,7 @@ dependencies = [ "rusqlite", "serde", "serde_bytes", - "serde_derive 1.0.186", + "serde_derive 1.0.188", "serde_json", "serde_with 1.14.0", "serde_yaml 0.9.25", @@ -5660,7 +5666,7 @@ dependencies = [ "backtrace", "os_info", "serde", - "serde_derive 1.0.186", + "serde_derive 1.0.188", "toml 0.7.6", "uuid 1.4.1", ] @@ -5731,7 +5737,7 @@ dependencies = [ "futures-util", "http", "hyper 0.14.27", - "rustls 0.21.6", + "rustls 0.21.7", "tokio", "tokio-rustls 0.24.1", ] @@ -5952,10 +5958,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73c0fefcb6d409a6587c07515951495d482006f89a21daa0f2f783aa4fd5e027" dependencies = [ "ahash 0.8.3", - "clap 4.4.0", + "clap 4.4.1", "crossbeam-channel", "crossbeam-utils", - "dashmap 5.5.1", + "dashmap 5.5.2", "env_logger", "indexmap 2.0.0", "is-terminal", @@ -6023,7 +6029,7 @@ version = "0.0.1-alpha.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc2575384f9b4e5f94f316c69844f0a31e139694a530ffcc9cea6c98ce81627f" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", "digest 0.10.7", "dirs 5.0.1", "flate2", @@ -6181,7 +6187,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi 0.3.2", - "rustix 0.38.8", + "rustix 0.38.10", "windows-sys 0.48.0", ] @@ -6315,7 +6321,7 @@ version = "8.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", "pem", "ring", "serde", @@ -6340,7 +6346,7 @@ dependencies = [ "serde", "smartstring", "static_assertions", - "url 2.4.0", + "url 2.4.1", "uuid 1.4.1", "void", ] @@ -6354,7 +6360,7 @@ dependencies = [ "proc-macro2 1.0.66", "quote 1.0.33", "syn 1.0.109", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -6592,7 +6598,7 @@ dependencies = [ "nanoid 0.3.0", "parking_lot 0.11.2", "rmp-serde 0.15.5", - "rustls 0.20.8", + "rustls 0.20.9", "serde", "serde_bytes", "structopt", @@ -6626,7 +6632,7 @@ dependencies = [ "once_cell", "quinn", "rcgen 0.9.3", - "rustls 0.20.8", + "rustls 0.20.9", "serde", "tokio", "webpki 0.22.0", @@ -6656,7 +6662,7 @@ dependencies = [ "parking_lot 0.11.2", "paste", "rmp-serde 0.15.5", - "rustls 0.20.8", + "rustls 0.20.9", "serde", "serde_bytes", "serde_json", @@ -6664,7 +6670,7 @@ dependencies = [ "sysinfo 0.27.8", "thiserror", "tokio", - "url 2.4.0", + "url 2.4.1", "url2", "webpki 0.22.0", ] @@ -6748,7 +6754,7 @@ dependencies = [ "toml 0.5.11", "toml 0.7.6", "tracing", - "url 2.4.0", + "url 2.4.1", "winapi 0.3.9", "zeroize", ] @@ -7440,9 +7446,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f478948fd84d9f8e86967bf432640e46adfb5a4bd4f14ef7e864ab38220534ae" [[package]] name = "memmap2" @@ -7634,7 +7640,7 @@ dependencies = [ "rmp-serde 0.15.5", "serde", "serde_bytes", - "serde_derive 1.0.186", + "serde_derive 1.0.188", "serde_yaml 0.9.25", "thiserror", ] @@ -7886,14 +7892,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ "bitflags 1.3.2", "cfg-if 1.0.0", "libc", - "static_assertions", ] [[package]] @@ -8099,8 +8104,8 @@ dependencies = [ [[package]] name = "num-modular" -version = "0.6.0" -source = "git+https://github.com/coasys/num-modular.git#87d6dc30600207445e07c2cc84e0a47ff58f0aca" +version = "0.5.2" +source = "git+https://github.com/coasys/num-modular.git#1ae06248ec69390370def3a229b3bf4c209aa6c7" [[package]] name = "num-order" @@ -8318,11 +8323,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.56" +version = "0.10.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "cfg-if 1.0.0", "foreign-types", "libc", @@ -8350,9 +8355,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.91" +version = "0.9.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac" +checksum = "db7e971c2c2bba161b2d2fdf37080177eff520b3bc044787c7f1f5f9e78d869b" dependencies = [ "cc", "libc", @@ -8940,9 +8945,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -8990,9 +8995,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "platforms" -version = "3.0.2" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" +checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" [[package]] name = "plist" @@ -9000,7 +9005,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", "indexmap 1.9.3", "line-wrap", "quick-xml 0.29.0", @@ -9340,7 +9345,7 @@ dependencies = [ "fxhash", "quinn-proto", "quinn-udp", - "rustls 0.20.8", + "rustls 0.20.9", "thiserror", "tokio", "tracing", @@ -9357,7 +9362,7 @@ dependencies = [ "fxhash", "rand 0.8.5", "ring", - "rustls 0.20.8", + "rustls 0.20.9", "rustls-native-certs", "rustls-pemfile 0.2.1", "slab", @@ -9777,14 +9782,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.3" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" +checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.6", - "regex-syntax 0.7.4", + "regex-automata 0.3.7", + "regex-syntax 0.7.5", ] [[package]] @@ -9798,13 +9803,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" +checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.4", + "regex-syntax 0.7.5", ] [[package]] @@ -9815,9 +9820,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "region" @@ -9859,8 +9864,8 @@ version = "0.11.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" dependencies = [ - "async-compression 0.4.1", - "base64 0.21.2", + "async-compression 0.4.2", + "base64 0.21.3", "bytes", "encoding_rs", "futures-core", @@ -9879,7 +9884,7 @@ dependencies = [ "once_cell", "percent-encoding 2.3.0", "pin-project-lite", - "rustls 0.21.6", + "rustls 0.21.7", "rustls-pemfile 1.0.3", "serde", "serde_json", @@ -9890,7 +9895,7 @@ dependencies = [ "tokio-socks", "tokio-util", "tower-service", - "url 2.4.0", + "url 2.4.1", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", @@ -10191,10 +10196,10 @@ name = "rust-executor" version = "0.5.0" dependencies = [ "argon2", - "base64 0.21.2", + "base64 0.21.3", "chrono", "cid", - "clap 4.4.0", + "clap 4.4.1", "crypto_box", "deno_core", "deno_runtime", @@ -10229,11 +10234,10 @@ dependencies = [ "semver 1.0.18", "serde", "serde_json", - "tauri", "tokio", "tokio-stream", "tracing", - "url 2.4.0", + "url 2.4.1", "uuid 1.4.1", "warp", "zip", @@ -10285,7 +10289,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" dependencies = [ "bitflags 1.3.2", - "errno 0.3.2", + "errno 0.3.3", "io-lifetimes", "libc", "linux-raw-sys 0.3.8", @@ -10294,12 +10298,12 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.8" +version = "0.38.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" +checksum = "ed6248e1caa625eb708e266e06159f135e8c26f2bb7ceb72dc4b2766d0340964" dependencies = [ "bitflags 2.4.0", - "errno 0.3.2", + "errno 0.3.3", "libc", "linux-raw-sys 0.4.5", "windows-sys 0.48.0", @@ -10307,9 +10311,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ "log", "ring", @@ -10319,9 +10323,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.6" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", "ring", @@ -10356,7 +10360,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", ] [[package]] @@ -10422,7 +10426,7 @@ dependencies = [ "libc", "log", "memchr", - "nix 0.26.2", + "nix 0.26.4", "radix_trie", "scopeguard", "unicode-segmentation", @@ -10778,9 +10782,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.186" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad697f7e0b65af4983a4ce8f56ed5b357e8d3c36651bf6a7e13639c17b8e670" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2 1.0.66", "quote 1.0.33", @@ -10863,7 +10867,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", "chrono", "hex", "indexmap 1.9.3", @@ -11308,7 +11312,7 @@ dependencies = [ "serde", "serde_json", "unicode-id", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -11661,7 +11665,7 @@ dependencies = [ "swc_visit", "tracing", "unicode-width", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -11850,7 +11854,7 @@ checksum = "5fb9481ad4e2acba34c6fbb6d4ccc64efe9f1821675e883dcfa732d7220f4b1e" dependencies = [ "ahash 0.7.6", "base64 0.13.1", - "dashmap 5.5.1", + "dashmap 5.5.2", "indexmap 1.9.3", "once_cell", "serde", @@ -12021,7 +12025,7 @@ dependencies = [ "once_cell", "onig", "plist", - "regex-syntax 0.7.4", + "regex-syntax 0.7.5", "serde", "serde_json", "thiserror", @@ -12074,9 +12078,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.29.8" +version = "0.29.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d10ed79c22663a35a255d289a7fdcb43559fc77ff15df5ce6c341809e7867528" +checksum = "a8d0e9cc2273cc8d31377bdd638d72e3ac3e5607b18621062b169d02787f1bab" dependencies = [ "cfg-if 1.0.0", "core-foundation-sys", @@ -12256,7 +12260,7 @@ dependencies = [ "tempfile", "thiserror", "tokio", - "url 2.4.0", + "url 2.4.1", "uuid 1.4.1", "webkit2gtk", "webview2-com", @@ -12286,7 +12290,7 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54ad2d49fdeab4a08717f5b49a163bdc72efc3b1950b6758245fcde79b645e1a" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", "brotli", "ico", "json-patch 1.0.0", @@ -12347,7 +12351,7 @@ dependencies = [ "serde_json", "tauri-utils", "thiserror", - "url 2.4.0", + "url 2.4.1", "uuid 1.4.1", "webview2-com", "windows 0.39.0", @@ -12397,7 +12401,7 @@ dependencies = [ "serde_json", "serde_with 3.3.0", "thiserror", - "url 2.4.0", + "url 2.4.1", "walkdir", "windows 0.39.0", ] @@ -12431,7 +12435,7 @@ dependencies = [ "cfg-if 1.0.0", "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.38.8", + "rustix 0.38.10", "windows-sys 0.48.0", ] @@ -12751,7 +12755,7 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls 0.20.8", + "rustls 0.20.9", "tokio", "webpki 0.22.0", ] @@ -12762,7 +12766,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.6", + "rustls 0.21.7", "tokio", ] @@ -12813,7 +12817,7 @@ checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" dependencies = [ "futures-util", "log", - "rustls 0.20.8", + "rustls 0.20.9", "rustls-native-certs", "tokio", "tokio-rustls 0.23.4", @@ -13085,7 +13089,7 @@ dependencies = [ "tinyvec", "tokio", "tracing", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -13147,7 +13151,7 @@ dependencies = [ "native-tls", "rand 0.8.5", "sha-1 0.9.8", - "url 2.4.0", + "url 2.4.1", "utf-8", ] @@ -13164,10 +13168,10 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "rustls 0.20.8", + "rustls 0.20.9", "sha1 0.10.5", "thiserror", - "url 2.4.0", + "url 2.4.1", "utf-8", "webpki 0.22.0", ] @@ -13193,7 +13197,7 @@ dependencies = [ "tx5-core", "tx5-go-pion", "tx5-signal", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -13211,7 +13215,7 @@ dependencies = [ "sha2 0.10.7", "tempfile", "tracing", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -13224,7 +13228,7 @@ dependencies = [ "tokio", "tracing", "tx5-go-pion-sys", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -13278,7 +13282,7 @@ dependencies = [ "rand-utf8", "rcgen 0.10.0", "ring", - "rustls 0.20.8", + "rustls 0.20.9", "rustls-native-certs", "rustls-pemfile 1.0.3", "serde_json", @@ -13289,7 +13293,7 @@ dependencies = [ "tokio-tungstenite 0.18.0", "tracing", "tx5-core", - "url 2.4.0", + "url 2.4.1", "webpki-roots 0.23.1", ] @@ -13299,7 +13303,7 @@ version = "0.0.2-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd44a26819757459b14994e728adeeb05931ca95605e54eb7733d01f3f130f8" dependencies = [ - "clap 4.4.0", + "clap 4.4.1", "dirs 5.0.1", "futures", "if-addrs 0.10.1", @@ -13527,12 +13531,12 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", "log", "once_cell", - "rustls 0.21.6", + "rustls 0.21.7", "rustls-webpki 0.100.2", - "url 2.4.0", + "url 2.4.1", "webpki-roots 0.23.1", ] @@ -13549,9 +13553,9 @@ dependencies = [ [[package]] name = "url" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna 0.4.0", @@ -13566,7 +13570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c89cd13f1de9862d363308f5ffdadcd2b64b2a4a812fb296a80b7d3e80011b1e" dependencies = [ "serde", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -13595,7 +13599,7 @@ dependencies = [ "regex", "serde", "unic-ucd-ident", - "url 2.4.0", + "url 2.4.1", ] [[package]] @@ -13888,9 +13892,9 @@ checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasm-encoder" -version = "0.31.1" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16" +checksum = "1ba64e81215916eaeb48fee292f29401d69235d62d8b8fd92a7b2844ec5ae5f7" dependencies = [ "leb128", ] @@ -14159,9 +14163,9 @@ checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" [[package]] name = "wast" -version = "63.0.0" +version = "64.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2560471f60a48b77fccefaf40796fda61c97ce1e790b59dfcec9dc3995c9f63a" +checksum = "a259b226fd6910225aa7baeba82f9d9933b6d00f2ce1b49b80fa4214328237cc" dependencies = [ "leb128", "memchr", @@ -14171,9 +14175,9 @@ dependencies = [ [[package]] name = "wat" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdc306c2c4c2f2bf2ba69e083731d0d2a77437fc6a350a19db139636e7e416c" +checksum = "53253d920ab413fca1c7dc2161d601c79b4fdf631d0ba51dd4343bf9b556c3f6" dependencies = [ "wast", ] @@ -14753,19 +14757,19 @@ dependencies = [ [[package]] name = "winreg" -version = "0.11.0" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a1a57ff50e9b408431e8f97d5456f2807f8eb2a2cd79b06068fc87f8ecf189" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ "cfg-if 1.0.0", - "winapi 0.3.9", + "windows-sys 0.48.0", ] [[package]] name = "winreg" -version = "0.50.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc" dependencies = [ "cfg-if 1.0.0", "windows-sys 0.48.0", @@ -14810,7 +14814,7 @@ dependencies = [ "soup2", "tao", "thiserror", - "url 2.4.0", + "url 2.4.1", "webkit2gtk", "webkit2gtk-sys", "webview2-com", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index f794f726e..ae6f300ed 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -75,7 +75,5 @@ scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-pro # scryer-prolog = { path = "../../scryer-prolog", features = ["multi_thread"] } tracing = "0.1" -tauri = { version = "1.4.0", features = ["api-all", "system-tray"] } - [dev-dependencies] maplit = "1.0.2" diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 27fe64145..35c2f1cb1 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -27,7 +27,7 @@ directories = "4.0.1" opener = "0.5.0" open = "2.0.1" sysinfo = "0.29.7" -tauri = { version = "1.4.0", features = ["api-all", "system-tray"] } +tauri = { version = "1.4.1", features = ["api-all", "system-tray"] } uuid = { version = "0.8", features = ["v4"] } localtunnel-client = "0.0.12" tokio = { version = "1.19.2", features = ["full"] } From f1640dfd38bed0f1a258e69ff5247ca77981cfd5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 15:20:19 +0100 Subject: [PATCH 617/722] fix db.test.ts --- executor/src/core/db.test.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/executor/src/core/db.test.ts b/executor/src/core/db.test.ts index cde18c4f1..7ed63e812 100644 --- a/executor/src/core/db.test.ts +++ b/executor/src/core/db.test.ts @@ -45,8 +45,6 @@ describe('Ad4mDb', () => { delete link.data.predicate await db!.addLink(pUUID!, link); - link.data.predicate = null; - const result = await db!.getLink(pUUID!, link); expect(result).to.be.deep.equal(link); }) From 9ea18e90d9ddb2ecd9204c79926d2063dbc5348e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 15:20:26 +0100 Subject: [PATCH 618/722] fix perspective.test.ts --- executor/src/core/Perspective.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/Perspective.test.ts b/executor/src/core/Perspective.test.ts index 349a5d89b..f1ef70dd7 100644 --- a/executor/src/core/Perspective.test.ts +++ b/executor/src/core/Perspective.test.ts @@ -68,7 +68,7 @@ describe('Perspective', () => { agentService, db, languageController, - config: new MainConfig(TEST_DIR, appDataPath) + config: new MainConfig(appDataPath) } as PerspectiveContext) allLinks = [] }) From 00061c942e90bf6c748f3783cb6c105f545fcfda Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 15:31:48 +0100 Subject: [PATCH 619/722] use --release on rust unit tests to fix compilation --- cli/package.json | 2 +- rust-executor/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/package.json b/cli/package.json index 12fd0ba32..84152bddd 100644 --- a/cli/package.json +++ b/cli/package.json @@ -8,7 +8,7 @@ "types": "", "scripts": { "build": "cargo build --release", - "test": "cargo test" + "test": "cargo test --release" }, "repository": { "type": "git", diff --git a/rust-executor/package.json b/rust-executor/package.json index bd160964e..46326d25b 100644 --- a/rust-executor/package.json +++ b/rust-executor/package.json @@ -8,7 +8,7 @@ "types": "", "scripts": { "build": "cargo build --release", - "test": "cargo test" + "test": "cargo test --release" }, "repository": { "type": "git", From dc9a073c46aef5fd979442d5c49aa2b6e6dccf80 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 15:32:07 +0100 Subject: [PATCH 620/722] use dirs package instead of depreciated env::home_dir --- rust-executor/Cargo.toml | 1 + rust-executor/src/utils.rs | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index ae6f300ed..38866176c 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -56,6 +56,7 @@ hyper = { version = "1.0.0-rc.4", features = ["full"] } http-body-util = "0.1.0-rc.3" hyper-util = { git = "https://github.com/hyperium/hyper-util.git" } rust-embed="8.0.0" +dirs = "5.0.1" juniper = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol", features = ["chrono"] } juniper_subscriptions = { git = "https://github.com/graphql-rust/juniper", branch = "graphql-transport-ws-protocol" } diff --git a/rust-executor/src/utils.rs b/rust-executor/src/utils.rs index 8f722c4eb..6b54986c3 100644 --- a/rust-executor/src/utils.rs +++ b/rust-executor/src/utils.rs @@ -1,6 +1,5 @@ -use std::env::home_dir; -use std::path::{Path, PathBuf}; - +use std::path::PathBuf; +use dirs::home_dir; pub(crate) fn ad4m_data_directory() -> PathBuf { let ad4m_dir = home_dir().unwrap().join(".ad4m"); From c7aded7083f7c26ea749a0f4288c046ec95c0d5f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 15:44:48 +0100 Subject: [PATCH 621/722] fix compilation warning in rust-executor main.rs --- rust-executor/src/main.rs | 2 +- tests/js/tests/neighbourhood.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 1be0a8c55..05c135f07 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -23,7 +23,7 @@ use js_core::JsCore; async fn main() { prolog::run(); env::set_var("RUST_LOG", "rust_executor=info"); - env_logger::try_init(); + env_logger::try_init().expect("could not logger"); let mut config = Ad4mConfig::default(); config.prepare(); diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index ee71475c2..90f1cb8b0 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -139,7 +139,6 @@ export default function neighbourhoodTests(testContext: TestContext) { expect(bobDeleteNeighbourhood.perspectiveRemove).to.be.true; const perspectives = await alice.perspective.all(); - console.log("Alice has perspectives", perspectives); }) // it('can get the correct state change signals', async () => { From 7b6422e43613e4157258215d9486fbec0cb48404 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 16:49:31 +0100 Subject: [PATCH 622/722] update default webrtc proxy url --- Cargo.lock | 1 + rust-executor/src/config.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index ac19bbc20..a8918dcac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10204,6 +10204,7 @@ dependencies = [ "deno_core", "deno_runtime", "did-key", + "dirs 5.0.1", "env_logger", "fs_extra", "futures", diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs index 66c888e7e..351626b3c 100644 --- a/rust-executor/src/config.rs +++ b/rust-executor/src/config.rs @@ -57,7 +57,7 @@ impl Ad4mConfig { self.connect_holochain = Some(false); } if self.hc_proxy_url.is_none() { - self.hc_proxy_url = Some("wss://signal.holotest.net".to_string()); + self.hc_proxy_url = Some("wss://signal.holo.host".to_string()); } if self.hc_bootstrap_url.is_none() { self.hc_bootstrap_url = Some("https://bootstrap.holo.host".to_string()); From 0fc43321558f7894f4ce65104176068318c41e61 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 16:50:12 +0100 Subject: [PATCH 623/722] increase test sleeps --- tests/js/tests/agent-language.ts | 2 +- tests/js/tests/neighbourhood.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/js/tests/agent-language.ts b/tests/js/tests/agent-language.ts index 0279121f0..d9abb7371 100644 --- a/tests/js/tests/agent-language.ts +++ b/tests/js/tests/agent-language.ts @@ -13,7 +13,7 @@ export default function agentLanguageTests(testContext: TestContext) { const aliceHerself = await alice.agent.me() const bobHimself = await bob.agent.me() - await sleep(1000) + await sleep(5000) const bobSeenFromAlice = await alice.agent.byDID(didBob) expect(bobSeenFromAlice).not.to.be.undefined diff --git a/tests/js/tests/neighbourhood.ts b/tests/js/tests/neighbourhood.ts index 90f1cb8b0..0cb7d90c6 100644 --- a/tests/js/tests/neighbourhood.ts +++ b/tests/js/tests/neighbourhood.ts @@ -226,7 +226,7 @@ export default function neighbourhoodTests(testContext: TestContext) { }) it('they see each other in `otherAgents`', async () => { - await sleep(5000); + await sleep(10000); const aliceAgents = await aliceNH!.otherAgents() console.log("alice agents", aliceAgents); const bobAgents = await bobNH!.otherAgents() From 51bc0872b56d7645195fdd228e393acb7cf0424a Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 18:56:36 +0100 Subject: [PATCH 624/722] fix perspective getting state as Private when loading perspective from .json database --- executor/src/core/Ad4mCore.ts | 1 + executor/src/core/PerspectivesController.ts | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/executor/src/core/Ad4mCore.ts b/executor/src/core/Ad4mCore.ts index cea01c967..e3b00ba7d 100644 --- a/executor/src/core/Ad4mCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -298,6 +298,7 @@ export default class Ad4mCore { state = PerspectiveState.LinkLanguageFailedToInstall; } + console.log("Core.installNeighbourhood(): Creating perspective", url, neighbourhood, state); return this.#perspectivesController!.add("", url, neighbourhood, true, state); } diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index 174b5d080..ad1578975 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -32,7 +32,7 @@ export default class PerspectivesController { let perspectiveHandle = fileObject[k].perspectiveHandle; let createdFromJoin = fileObject[k].createdFromJoin; console.debug(`PerspectivesController: Found existing perspective "${k}":`, perspectiveHandle) - this.#perspectiveInstances.set(k, new Perspective(perspectiveHandle, this.#context, perspectiveHandle.neighbourhood as Neighbourhood, createdFromJoin)) + this.#perspectiveInstances.set(k, new Perspective(perspectiveHandle, this.#context, perspectiveHandle.neighbourhood as Neighbourhood, createdFromJoin, perspectiveHandle.state)) this.#perspectiveHandles.set(k, perspectiveHandle) }) } @@ -120,7 +120,7 @@ export default class PerspectivesController { } else { const foundID = this.#perspectiveHandles.get(uuid) if(foundID) { - return new Perspective(foundID, this.#context) + return new Perspective(foundID, this.#context, foundID.neighbourhood as Neighbourhood, false, foundID.state) } else { throw Error(`Perspective not found: ${uuid}`) } @@ -154,8 +154,8 @@ export default class PerspectivesController { await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_UPDATED_TOPIC, perspectiveHandle); this.#perspectiveHandles.set(perspectiveHandle.uuid, perspectiveHandle); - let existingPerspective = this.#perspectiveInstances.get(perspectiveHandle.uuid); + let existingPerspective = this.#perspectiveInstances.get(perspectiveHandle.uuid); if (existingPerspective) { existingPerspective.clearPolling(); this.#perspectiveInstances.delete(perspectiveHandle.uuid); From 3b00da1a171ff1fe09af5c20c8c3405440aeb723 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 18:56:52 +0100 Subject: [PATCH 625/722] more aggresive gossip params for kitsune --- rust-executor/src/holochain_service/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index c1c6926f9..201fcb116 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -192,6 +192,15 @@ impl HolochainService { let mut kitsune_config = KitsuneP2pConfig::default(); + /// How long should we hold off talking to a peer + /// we've previously gotten errors speaking to. + /// [Default: 5 minute; now updated to 2 minutes] + kitsune_config.tuning_params.gossip_peer_on_error_next_gossip_delay_ms = 1000 * 60 * 2; + + /// How often should we update and publish our agent info? + /// [Default: 5 minutes; now updated to 2 minutes] + kitsune_config.tuning_params.gossip_agent_info_update_interval_ms = 1000 * 60 * 2; + if local_config.use_bootstrap { kitsune_config.bootstrap_service = Some(Url2::parse(local_config.bootstrap_url)); } else { From e2e383c9f8791c94c9c8d80b6597184864c1dd35 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 19:08:33 +0100 Subject: [PATCH 626/722] fix compilation of kitsunep2p tuning params types --- rust-executor/src/holochain_service/mod.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 201fcb116..dd4b15dbd 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -10,10 +10,11 @@ use holochain::conductor::config::ConductorConfig; use holochain::conductor::{ConductorBuilder, ConductorHandle}; use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::hash_type::Agent; +use holochain::prelude::kitsune_p2p::dependencies::kitsune_p2p_types::config::tuning_params_struct::KitsuneP2pTuningParams; use holochain::prelude::kitsune_p2p::dependencies::url2::Url2; use holochain::prelude::{ ExternIO, HoloHash, InstallAppPayload, KitsuneP2pConfig, NetworkType, Signal, - Signature, Timestamp, TransportConfig, ZomeCallResponse, ZomeCallUnsigned, + Signature, Timestamp, TransportConfig, ZomeCallResponse, ZomeCallUnsigned }; use holochain::test_utils::itertools::Either; use holochain_types::dna::ValidatedDnaManifest; @@ -191,15 +192,18 @@ impl HolochainService { config.admin_interfaces = None; let mut kitsune_config = KitsuneP2pConfig::default(); + let mut tuning_params = KitsuneP2pTuningParams::default(); - /// How long should we hold off talking to a peer - /// we've previously gotten errors speaking to. - /// [Default: 5 minute; now updated to 2 minutes] - kitsune_config.tuning_params.gossip_peer_on_error_next_gossip_delay_ms = 1000 * 60 * 2; + // How long should we hold off talking to a peer + // we've previously gotten errors speaking to. + // [Default: 5 minute; now updated to 2 minutes] + tuning_params.gossip_peer_on_error_next_gossip_delay_ms = 1000 * 60 * 2; - /// How often should we update and publish our agent info? - /// [Default: 5 minutes; now updated to 2 minutes] - kitsune_config.tuning_params.gossip_agent_info_update_interval_ms = 1000 * 60 * 2; + // How often should we update and publish our agent info? + // [Default: 5 minutes; now updated to 2 minutes] + tuning_params.gossip_agent_info_update_interval_ms = 1000 * 60 * 2; + + kitsune_config.tuning_params = Arc::new(tuning_params); if local_config.use_bootstrap { kitsune_config.bootstrap_service = Some(Url2::parse(local_config.bootstrap_url)); From ed541ca31e10d775ea8531ebfc888e57411c2115 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 30 Aug 2023 20:04:31 +0100 Subject: [PATCH 627/722] set rlim at runtime in launcher to 10000 files --- ui/src-tauri/src/main.rs | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 0523aa8ed..823b2baa3 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -14,6 +14,11 @@ use std::fs; use std::fs::File; use std::sync::Arc; use std::sync::Mutex; +use libc::{rlimit, RLIMIT_NOFILE, setrlimit}; +use std::io; +use std::io::Write; +use tracing_subscriber::{fmt::format::FmtSpan, FmtSubscriber}; + extern crate remove_dir_all; use remove_dir_all::*; @@ -48,8 +53,7 @@ use crate::util::find_port; use crate::menu::{handle_menu_event, open_logs_folder}; use crate::util::has_processes_running; use crate::util::{find_and_kill_processes, create_main_window, save_executor_port}; -use std::io::{self, Write}; -use tracing_subscriber::{fmt::format::FmtSpan, FmtSubscriber}; + // the payload type must implement `Serialize` and `Clone`. #[derive(Clone, serde::Serialize)] @@ -74,6 +78,36 @@ pub struct AppState { fn main() { env::set_var("RUST_LOG", "rust_executor=info,error,warn,debug,ad4m_launcher=info,warn,error"); + let mut rlim: rlimit = rlimit { rlim_cur: 0, rlim_max: 0 }; + + // Get the current file limit + unsafe { + if libc::getrlimit(RLIMIT_NOFILE, &mut rlim) != 0 { + panic!("{}", io::Error::last_os_error()); + } + } + + let rlim_max = 1000 as u64; + println!("Current RLIMIT_NOFILE: current: {}, max: {}", rlim.rlim_cur, rlim_max); + + // Attempt to increase the limit + rlim.rlim_cur = rlim_max; + + unsafe { + if setrlimit(RLIMIT_NOFILE, &rlim) != 0 { + panic!("{}", io::Error::last_os_error()); + } + } + + // Check the updated limit + unsafe { + if libc::getrlimit(RLIMIT_NOFILE, &mut rlim) != 0 { + panic!("{}", io::Error::last_os_error()); + } + } + + println!("Updated RLIMIT_NOFILE: current: {}, max: {}", rlim.rlim_cur, rlim_max); + if !data_path().exists() { let _ = fs::create_dir_all(data_path()); } From c521f9b07e6829a96910848d655e858218869277 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 31 Aug 2023 11:40:43 +0100 Subject: [PATCH 628/722] new mainnet seed with rust refactor languages --- rust-executor/src/mainnet_seed.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index f469f32b8..8e5a857ad 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -1,13 +1,13 @@ { "trustedAgents": [ - "did:key:z6MkgtBC3UaxNLt5SFJmxHtzFUUeJLCxLiP8DTqJgwF9uCkv" + "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" ], "knownLinkLanguages": [ - "QmzSYwdkoKCD3dyjutRraNCqCMEfGQ5SQnpSC7At631eJCLEhkh" + "QmzSYwdgqaaRqcyz12zW9EhfjTsxHhqf9HBGpUgzyvpqgYNfL6b" ], - "directMessageLanguage": "QmzSYwdeycwPtNCnx7KfStTWQqu5qpZg9iCGopBEtRBAZjvg6uH", - "agentLanguage": "QmzSYwdpgYS2CHb6Nkjqn7xKRbsouUXn7535QSn41dgsjPJiYom", - "perspectiveLanguage": "QmzSYwdmkrLXFHC4wjDN6yq5cz3AGCRDT4Ltfc6pZ4bjqLgb4HJ", - "neighbourhoodLanguage": "QmzSYwdcUcz7bthbfj8Yu83LFrwc6DSF1XTcyv6TRadYThbTisE", - "languageLanguageBundle": "// deno-fmt-ignore-file\n// deno-lint-ignore-file\n// This code was bundled using `deno bundle` and it's not recommended to edit it manually\n\nconst urlJoin = function(...args) {\n let input;\n if (typeof args[0] === 'object') {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nconst normalize = (strArray)=>{\n const resultArray = [];\n if (strArray.length === 0) {\n return '';\n }\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n for(let i = 0; i < strArray.length; i++){\n let component = strArray[i];\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n if (component === '') {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, '');\n } else {\n component = component.replace(/[\\/]+$/, '/');\n }\n resultArray.push(component);\n }\n let str = resultArray.join('/');\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n let parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');\n return str;\n};\nconst methods = [\n 'get',\n 'post',\n 'put',\n 'delete',\n 'options',\n 'head',\n 'connect',\n 'trace',\n 'patch'\n];\nconst addInterceptor = ()=>{\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\nfunction axiod(url, config) {\n if (typeof url === 'string') {\n return axiod.request(Object.assign({}, axiod.defaults, {\n url\n }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: '/',\n method: 'get',\n timeout: 0,\n withCredentials: false,\n validateStatus: (status)=>{\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config)=>{\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options)=>{\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n };\n instance.post = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n };\n instance.put = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n };\n instance.delete = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n };\n instance.options = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n };\n instance.head = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n };\n instance.connect = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n };\n instance.trace = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n };\n instance.patch = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list){\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let { url ='/' , baseURL , method , headers , params ={} , data , timeout , withCredentials , auth , validateStatus , paramsSerializer , transformRequest , transformResponse , redirect , responseType ='json' } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = 'get';\n }\n let _params = '';\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key)=>{\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers['Authorization'] = 'Basic ' + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== 'get') {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== 'get') {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for(var i = 0; i < (transformRequest || []).length; i++){\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === 'string' || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers['Accept'] = 'application/json';\n headers['Content-Type'] = 'application/json';\n } catch (ex) {}\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header)=>{\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(()=>{\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x)=>{\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response = x.clone();\n if (responseType === 'json') {\n _data = await response.json();\n } else if (responseType === 'text') {\n _data = await response.text();\n } else if (responseType === 'arraybuffer') {\n _data = await response.arrayBuffer();\n } else if (responseType === 'blob') {\n _data = await response.blob();\n } else if (responseType === 'stream') {\n _data = (await response.blob()).stream();\n } else {\n _data = await response.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for(var i = 0; i < (transformResponse || []).length; i++){\n if (transformResponse && transformResponse[i]) {\n _data = transformResponse[i](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list){\n if (interceptor) {\n const { fulfilled , rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n};\naxiod.post = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n};\naxiod.put = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n};\naxiod.delete = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n};\naxiod.options = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n};\naxiod.head = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n};\naxiod.connect = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n};\naxiod.trace = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n};\naxiod.patch = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nclass LangAdapter {\n constructor(context){}\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await axiod.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n}\nclass CloudflarePutAdapter {\n #agent;\n constructor(context){\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address) throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n value: JSON.stringify(expression)\n };\n try {\n const metaPostResult = await axiod.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n value: language.bundle.toString()\n };\n const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n } catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n}\nclass Adapter {\n putAdapter;\n constructor(context){\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axiod.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport { name as name };\nexport { PROXY_URL as PROXY_URL };\nexport { create as default };\n" + "directMessageLanguage": "QmzSYwdcZPQToRt7653T2zAq8BEt8u7dZ7jyzWMaRTsSxMc4HuZ", + "agentLanguage": "QmzSYwdfHAE9cvfvCkNZFWH9L5y2QcKBiivNZYU53UR4hE8a8Dx", + "perspectiveLanguage": "QmzSYwdeBLCn99QU7DSnJuTFrp7TQGRZkrTDRXvxiv2XAbUFeEx", + "neighbourhoodLanguage": "QmzSYwdo2a6E4XghRHrN5eCReyYRDeRE8VnRbvqgoWZsr9B4pxV", + "languageLanguageBundle": "// https://deno.land/x/url_join@1.0.0/mod.ts\nvar urlJoin = function(...args) {\n let input;\n if (typeof args[0] === \"object\") {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nvar normalize = (strArray) => {\n const resultArray = [];\n if (strArray.length === 0) {\n return \"\";\n }\n if (typeof strArray[0] !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1:///\");\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1://\");\n }\n for (let i = 0; i < strArray.length; i++) {\n let component = strArray[i];\n if (typeof component !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + component);\n }\n if (component === \"\") {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, \"\");\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, \"\");\n } else {\n component = component.replace(/[\\/]+$/, \"/\");\n }\n resultArray.push(component);\n }\n let str = resultArray.join(\"/\");\n str = str.replace(/\\/(\\?|&|#[^!])/g, \"$1\");\n let parts = str.split(\"?\");\n str = parts.shift() + (parts.length > 0 ? \"?\" : \"\") + parts.join(\"&\");\n return str;\n};\n\n// https://deno.land/x/axiod@0.26.2/helpers.ts\nvar methods = [\n \"get\",\n \"post\",\n \"put\",\n \"delete\",\n \"options\",\n \"head\",\n \"connect\",\n \"trace\",\n \"patch\"\n];\nvar addInterceptor = () => {\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\n\n// https://deno.land/x/axiod@0.26.2/mod.ts\nfunction axiod(url, config) {\n if (typeof url === \"string\") {\n return axiod.request(Object.assign({}, axiod.defaults, { url }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: \"/\",\n method: \"get\",\n timeout: 0,\n withCredentials: false,\n validateStatus: (status) => {\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config) => {\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options) => {\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"get\" })\n );\n };\n instance.post = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"post\", data })\n );\n };\n instance.put = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"put\", data })\n );\n };\n instance.delete = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"delete\", data })\n );\n };\n instance.options = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"options\", data })\n );\n };\n instance.head = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"head\", data })\n );\n };\n instance.connect = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"connect\", data })\n );\n };\n instance.trace = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"trace\", data })\n );\n };\n instance.patch = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"patch\", data })\n );\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list) {\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let {\n url = \"/\",\n baseURL,\n method,\n headers,\n params = {},\n data,\n timeout,\n withCredentials,\n auth,\n validateStatus,\n paramsSerializer,\n transformRequest,\n transformResponse,\n redirect,\n responseType = \"json\"\n } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = \"get\";\n }\n let _params = \"\";\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key) => {\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]);\n }).join(\"&\");\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers[\"Authorization\"] = \"Basic \" + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== \"get\") {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== \"get\") {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for (var i = 0; i < (transformRequest || []).length; i++) {\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === \"string\" || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers[\"Accept\"] = \"application/json\";\n headers[\"Content-Type\"] = \"application/json\";\n } catch (ex) {\n }\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header) => {\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(() => {\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x) => {\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response2 = x.clone();\n if (responseType === \"json\") {\n _data = await response2.json();\n } else if (responseType === \"text\") {\n _data = await response2.text();\n } else if (responseType === \"arraybuffer\") {\n _data = await response2.arrayBuffer();\n } else if (responseType === \"blob\") {\n _data = await response2.blob();\n } else if (responseType === \"stream\") {\n _data = (await response2.blob()).stream();\n } else {\n _data = await response2.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for (var i2 = 0; i2 < (transformResponse || []).length; i2++) {\n if (transformResponse && transformResponse[i2]) {\n _data = transformResponse[i2](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list) {\n if (interceptor) {\n const { fulfilled, rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"get\" })\n );\n};\naxiod.post = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"post\", data })\n );\n};\naxiod.put = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"put\", data })\n );\n};\naxiod.delete = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"delete\", data })\n );\n};\naxiod.options = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"options\", data })\n );\n};\naxiod.head = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"head\", data })\n );\n};\naxiod.connect = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"connect\", data })\n );\n};\naxiod.trace = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"trace\", data })\n );\n};\naxiod.patch = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"patch\", data })\n );\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nvar mod_default = axiod;\n\n// languageAdapter.ts\nvar LangAdapter = class {\n constructor(context) {\n }\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await mod_default.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n};\n\n// putAdapter.ts\nvar CloudflarePutAdapter = class {\n #agent;\n constructor(context) {\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key,\n // Content of the new object.\n value: JSON.stringify(expression)\n };\n try {\n const metaPostResult = await mod_default.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString()\n };\n const bundlePostResult = await mod_default.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n } catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n};\n\n// adapter.ts\nvar Adapter = class {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await mod_default.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n};\n\n// index.ts\nvar name = \"languages\";\nvar PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport {\n PROXY_URL,\n create as default,\n name\n};\n" } \ No newline at end of file From 136468f69ebdeb9b9fd5ff9084fe15c0e5379893 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 31 Aug 2023 16:20:41 +0100 Subject: [PATCH 629/722] log call resolver --- executor/src/core/Ad4mCore.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/executor/src/core/Ad4mCore.ts b/executor/src/core/Ad4mCore.ts index e3b00ba7d..c3d2cdaf2 100644 --- a/executor/src/core/Ad4mCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -90,6 +90,7 @@ export default class Ad4mCore { } async callResolver (type: string, fnName: string, args: any, context: any) { + console.log("Calling resolvers with data", type, fnName, args, context); if(!this.resolvers[type]) throw new Error(`Could not find resolver for type ${type}`) if(!this.resolvers[type][fnName]) throw new Error(`Could not find resolver function ${fnName} for type ${type}`) try { From f6f0cb52df99c54901b0c52aa0156107f06500ac Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 31 Aug 2023 16:20:54 +0100 Subject: [PATCH 630/722] fix auth headers in rust-client --- rust-client/src/util.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust-client/src/util.rs b/rust-client/src/util.rs index 133a2971f..b4f18754d 100644 --- a/rust-client/src/util.rs +++ b/rust-client/src/util.rs @@ -12,7 +12,7 @@ where { let response_body: Response = reqwest::Client::new() .post(executor_url) - .header("Authorization", cap_token) + .header("authorization", cap_token) .json(&query) .send() .await? @@ -35,7 +35,7 @@ where { Ok(reqwest::Client::new() .post(executor_url) - .header("Authorization", cap_token) + .header("authorization", cap_token) .json(&query) .send() .await? @@ -77,7 +77,7 @@ pub async fn create_websocket_client( ); request .headers_mut() - .insert("Authorization", HeaderValue::from_str(&cap_token).unwrap()); + .insert("authorization", HeaderValue::from_str(&cap_token).unwrap()); let (connection, _) = async_tungstenite::tokio::connect_async(request).await?; let (sink, stream) = connection.split(); From 63a58b3e527ab78f5b4bcc82a22302e5b55434ce Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 31 Aug 2023 16:21:16 +0100 Subject: [PATCH 631/722] allow default auth if no auth header present in post request --- rust-executor/src/graphql/mod.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index f4e774163..0dba17e54 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -5,6 +5,7 @@ mod subscription_resolvers; mod utils; use graphql_types::RequestContext; +use hyper::body::Bytes; use mutation_resolvers::*; use query_resolvers::*; use subscription_resolvers::*; @@ -48,11 +49,21 @@ pub async fn start_server(js_core_handle: JsCoreHandle, port: u16, app_data_path let qm_schema = schema(); let js_core_handle_cloned1 = js_core_handle.clone(); + + let default_auth = warp::any().map(|| { + String::from("") + }); + let qm_state = warp::any() .and(warp::header::("authorization")) - .map(move |header| RequestContext { - capability: header, - js_handle: js_core_handle_cloned1.clone(), + .or(default_auth) + .unify() + .map(move |header| { + //println!("Request body: {}", std::str::from_utf8(body_data::bytes()).expect("error converting bytes to &str")); + RequestContext { + capability: header, + js_handle: js_core_handle_cloned1.clone(), + } }); let qm_graphql_filter = juniper_warp::make_graphql_filter(qm_schema, qm_state.boxed()); From 7122366df8b9401e1eb088ec470c2021e27891f6 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 31 Aug 2023 22:00:18 +0100 Subject: [PATCH 632/722] done setup subscriptions in ad4m-client inside launche ui (not used atm; and should be setup when needed and only once) --- ui/src/components/Connect.tsx | 5 +++-- ui/src/components/Profile.tsx | 2 +- ui/src/components/Settings.tsx | 4 ++-- ui/src/context/Ad4minContext.tsx | 4 ++-- ui/src/util.ts | 8 ++++---- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/ui/src/components/Connect.tsx b/ui/src/components/Connect.tsx index aa1448612..511c4fd41 100644 --- a/ui/src/components/Connect.tsx +++ b/ui/src/components/Connect.tsx @@ -35,7 +35,7 @@ export function Connect() { setURLError("Invalid websocket URL"); } else { try { - const client = await buildAd4mClient(url!); + const client = await buildAd4mClient(url!, false); const id = setTimeout(() => { resolve(true); @@ -45,7 +45,8 @@ export function Connect() { setLoading(false); }, 2000); - await client.runtime.hcAgentInfos(); + let ad4mInfo = await client.runtime.info(); + console.log("AD4M JS Client built, got info: ", ad4mInfo); clearTimeout(id); diff --git a/ui/src/components/Profile.tsx b/ui/src/components/Profile.tsx index 0890ba763..89a94fa69 100644 --- a/ui/src/components/Profile.tsx +++ b/ui/src/components/Profile.tsx @@ -27,7 +27,7 @@ function Profile() { const fetchCurrentAgentProfile = useCallback(async () => { if (url) { - const client = await buildAd4mClient(url); + const client = await buildAd4mClient(url, false); const agent = await client!.agent.me(); const profile = await fetchProfile(agent); diff --git a/ui/src/components/Settings.tsx b/ui/src/components/Settings.tsx index e2e8c0b8e..d2492865a 100644 --- a/ui/src/components/Settings.tsx +++ b/ui/src/components/Settings.tsx @@ -91,7 +91,7 @@ const Profile = (props: Props) => { const getTrustedAgents = useCallback(async () => { if (url) { - const client = await buildAd4mClient(url); + const client = await buildAd4mClient(url, false); const trustedAgents = await client!.runtime.getTrustedAgents(); const tempTempAgents = []; @@ -114,7 +114,7 @@ const Profile = (props: Props) => { const fetchCurrentAgentProfile = useCallback(async () => { if (url) { - const client = await buildAd4mClient(url); + const client = await buildAd4mClient(url, false); const agent = await client!.agent.me(); const profile = await fetchProfile(agent); diff --git a/ui/src/context/Ad4minContext.tsx b/ui/src/context/Ad4minContext.tsx index 08fabd649..839aedcda 100644 --- a/ui/src/context/Ad4minContext.tsx +++ b/ui/src/context/Ad4minContext.tsx @@ -160,7 +160,7 @@ export function Ad4minProvider({ children }: any) { const connect = useCallback( async (url: string) => { - const client = await buildAd4mClient(url); + const client = await buildAd4mClient(url, false); try { await checkConnection(url, client); @@ -247,7 +247,7 @@ export function Ad4minProvider({ children }: any) { useEffect(() => { const build = async () => { - const client = await buildAd4mClient(state.url); + const client = await buildAd4mClient(state.url, false); setState((prev) => ({ ...prev, diff --git a/ui/src/util.ts b/ui/src/util.ts index bead6a5d2..e0daf5537 100644 --- a/ui/src/util.ts +++ b/ui/src/util.ts @@ -5,13 +5,13 @@ import { invoke } from "@tauri-apps/api"; import { createClient } from "graphql-ws"; import { version } from "../package.json"; -export async function buildAd4mClient(server: string): Promise { +export async function buildAd4mClient(server: string, subscribe = true): Promise { let token: string = await invoke("request_credential"); - return buildClient(server, token); + return buildClient(server, token, subscribe); } -function buildClient(server: string, token: string): Ad4mClient { +function buildClient(server: string, token: string, subscribe: boolean): Ad4mClient { const wsLink = new GraphQLWsLink( createClient({ url: server, @@ -37,7 +37,7 @@ function buildClient(server: string, token: string): Ad4mClient { }, }); - return new Ad4mClient(apolloClient); + return new Ad4mClient(apolloClient, subscribe); } export function generateLanguageInitials(name: string) { From 9eb760152c869cb63a23a4100470e732c6bd2b80 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 1 Sep 2023 14:30:34 +0200 Subject: [PATCH 633/722] Quick-fix: filter multiple subject class definitions by name and only feed first one into Prolog engine --- executor/src/core/Perspective.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 1d84a3b89..f51f38b62 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -845,12 +845,22 @@ export default class Perspective { lines.push(":- discontiguous(p3_class_color/2).") lines.push(":- discontiguous(p3_instance_color/3).") + let seenSubjectClasses = new Set() for(let linkExpression of allLinks) { let link = linkExpression.data if(this.isSDNALink(link)) { try { let code = Literal.fromUrl(link.target).get() - lines = lines.concat(code.split('\n')) + let subjectClassMatch = code.match(/subject_class\("(.+?)",/); + if (subjectClassMatch) { + let subjectClassName = subjectClassMatch[1]; + if (!seenSubjectClasses.has(subjectClassName)) { + seenSubjectClasses.add(subjectClassName); + lines = lines.concat(code.split('\n')) + } + } else { + lines = lines.concat(code.split('\n')) + } } catch { console.error("Perspective.initEngineFacts: Error loading SocialDNA link target as literal... Ignoring SocialDNA link."); } From 851dbbda3ea648b19cd93aad394a63ace44279a9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 1 Sep 2023 14:19:52 +0100 Subject: [PATCH 634/722] setup root subscriptions on launcher --- ui/src/context/Ad4minContext.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/src/context/Ad4minContext.tsx b/ui/src/context/Ad4minContext.tsx index 839aedcda..08fabd649 100644 --- a/ui/src/context/Ad4minContext.tsx +++ b/ui/src/context/Ad4minContext.tsx @@ -160,7 +160,7 @@ export function Ad4minProvider({ children }: any) { const connect = useCallback( async (url: string) => { - const client = await buildAd4mClient(url, false); + const client = await buildAd4mClient(url); try { await checkConnection(url, client); @@ -247,7 +247,7 @@ export function Ad4minProvider({ children }: any) { useEffect(() => { const build = async () => { - const client = await buildAd4mClient(state.url, false); + const client = await buildAd4mClient(state.url); setState((prev) => ({ ...prev, From a37fb3e3435c0fd63533f476fbbec66b99c848cb Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 1 Sep 2023 21:08:50 +0200 Subject: [PATCH 635/722] WIP: make JS script execution concurrent by creating multiple futures, each taking and executing the next JS request from the channel --- rust-executor/src/js_core/mod.rs | 97 ++++++++++++++++---------------- 1 file changed, 47 insertions(+), 50 deletions(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index c7975d60c..5f93924f2 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -3,10 +3,12 @@ use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; +use ::futures::Future; use holochain::prelude::{ExternIO, Signal}; use tracing::{error, info}; use once_cell::sync::Lazy; use std::env::current_dir; +use std::error::Error; use std::sync::Arc; use std::sync::Mutex; use tokio::runtime::Builder; @@ -14,7 +16,7 @@ use tokio::sync::broadcast; use tokio::sync::Mutex as TokioMutex; use tokio::sync::{ broadcast::{Receiver, Sender}, - mpsc::{self, UnboundedSender}, + mpsc::{self, UnboundedReceiver, UnboundedSender}, }; use tokio::task::LocalSet; @@ -134,6 +136,7 @@ struct JsCoreResponse { id: String, } +#[derive(Clone)] pub struct JsCore { worker: Arc>, } @@ -207,30 +210,60 @@ impl JsCore { )) } - fn execute_async(&self, script: String) -> Result { + fn execute_async(&self, name: String, script: String) -> Result { let mut worker = self .worker .lock() .expect("execute_async(): couldn't lock worker"); let wrapped_script = format!( r#" - globalThis.asyncResult = undefined; + globalThis.{} = undefined; (async () => {{ - globalThis.asyncResult = ({}); + globalThis.{} = ({}); }})(); "#, + name, name, script ); let _execute_async = worker.execute_script("js_core", wrapped_script.into())?; Ok(GlobalVariableFuture::new( self.worker.clone(), - "asyncResult".to_string(), + name, )) } + fn generate_execution_slot( + name: String, + rx: Arc::>>, + tx: Sender, + js_core: JsCore + ) -> impl Future { + async move { + loop { + if let Ok(mut rx) = rx.lock() { + if let Ok(request) = rx.try_recv() { + let script = request.script; + let id = request.id; + //global_req_id = Some(id.clone()); + + let result = match js_core.execute_async(name.clone(), script) { + Ok(execute_async_future) => execute_async_future.await.map_err(|e| e.to_string()), + Err(err) => Err(err.to_string()), + }; + + tx.send(JsCoreResponse { result, id }) + .expect("couldn't send on channel"); + } + } + tokio::task::yield_now().await; + } + } + } + pub async fn start(config: Ad4mConfig) -> JsCoreHandle { let (tx_inside, rx_outside) = broadcast::channel::(50); let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); + let rx_inside = Arc::new(Mutex::new(rx_inside)); let (tx_inside_loader, rx_outside_loader) = broadcast::channel::(50); let (tx_outside_loader, mut rx_inside_loader) = mpsc::unbounded_channel::(); @@ -320,46 +353,10 @@ impl JsCore { let mut global_req_id = None; //Listener future for receiving script execution calls - let receive_fut = async { - loop { - if let Ok(request) = rx_inside.try_recv() { - let tx_cloned = tx_inside.clone(); - let script = request.script; - let id = request.id; - global_req_id = Some(id.clone()); - match js_core.execute_async(script) { - Ok(execute_async_future) => match execute_async_future.await { - Ok(result) => { - tx_inside - .send(JsCoreResponse { - result: Ok(result), - id: id, - }) - .expect("couldn't send on channel"); - } - Err(err) => { - tx_cloned - .send(JsCoreResponse { - result: Err(err.to_string()), - id, - }) - .expect("couldn't send on channel"); - } - }, - Err(err) => { - tx_cloned - .send(JsCoreResponse { - result: Err(err.to_string()), - id, - }) - .expect("couldn't send on channel"); - continue; - } - } - } - tokio::task::yield_now().await; - } - }; + let receive_fut_1 = Self::generate_execution_slot("async_1".to_string(), rx_inside.clone(), tx_inside.clone(), js_core.clone()); + let receive_fut_2 = Self::generate_execution_slot("async_2".to_string(), rx_inside.clone(), tx_inside.clone(), js_core.clone()); + let receive_fut_3 = Self::generate_execution_slot("async_3".to_string(), rx_inside.clone(), tx_inside.clone(), js_core.clone()); + let receive_fut_4 = Self::generate_execution_slot("async_4".to_string(), rx_inside.clone(), tx_inside.clone(), js_core.clone()); let holochain_signal_receiver_fut = async { loop { @@ -378,7 +375,7 @@ impl JsCore { "await core.holochainService.handleCallback({{cell_id: [{:?}, {:?}], zome_name: '{}', signal: {}}})", cell_id.dna_hash().get_raw_39().to_vec(), cell_id.agent_pubkey().get_raw_39().to_vec(), zome_name, ExternWrapper(payload.into_inner()) ); - match js_core.execute_async(script) { + match js_core.execute_async("hc_signal_fut".to_string(), script) { Ok(script_fut) => match script_fut.await { Ok(_res) => { info!( @@ -429,10 +426,10 @@ impl JsCore { } } } - _request = receive_fut => { - info!("AD4M receive_fut completed"); - //break; - } + _request = receive_fut_1 => info!("AD4M receive_fut_1 completed"), + _request = receive_fut_2 => info!("AD4M receive_fut_1 completed"), + _request = receive_fut_3 => info!("AD4M receive_fut_1 completed"), + _request = receive_fut_4 => info!("AD4M receive_fut_1 completed"), _module_load = module_load_fut => { info!("AD4M module load completed"); //break; From f010a6ba3d16c90e2b926db5639a0c45ffde2548 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 1 Sep 2023 21:41:09 +0200 Subject: [PATCH 636/722] WIP: release mutex lock early --- rust-executor/src/js_core/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 5f93924f2..5e99041ac 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -240,6 +240,9 @@ impl JsCore { ) -> impl Future { async move { loop { + let maybe_request = rx.lock().as_mut().ok().map(|c| c.try_recv()); + + if let Ok(mut rx) = rx.lock() { if let Ok(request) = rx.try_recv() { let script = request.script; From 519fc3ddc9d0dc4dc52cb55a697b77568be372b1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 1 Sep 2023 23:47:47 +0100 Subject: [PATCH 637/722] bookmark current changes on js concurrency; working but dead lock on getting result on agentGenerate --- rust-executor/src/js_core/futures.rs | 2 + rust-executor/src/js_core/mod.rs | 152 +++++++++++++++++---------- 2 files changed, 99 insertions(+), 55 deletions(-) diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs index b82986e71..f6c14db48 100644 --- a/rust-executor/src/js_core/futures.rs +++ b/rust-executor/src/js_core/futures.rs @@ -40,7 +40,9 @@ impl Future for GlobalVariableFuture { type Output = Result; // You can customize the output type. fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll { + println!("Trying to get the worker lock: {}", self.name); let mut worker = self.worker.lock().unwrap(); + println!("Got the lock: {}", self.name); if let Ok(global_value) = worker.execute_script("global_var_future", self.name.clone().into()) { let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); let context = v8::Context::new(scope); diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 5e99041ac..211d6e1fb 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -1,11 +1,11 @@ +use ::futures::Future; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; -use ::futures::Future; use holochain::prelude::{ExternIO, Signal}; -use tracing::{error, info}; +use log::debug; use once_cell::sync::Lazy; use std::env::current_dir; use std::error::Error; @@ -17,8 +17,11 @@ use tokio::sync::Mutex as TokioMutex; use tokio::sync::{ broadcast::{Receiver, Sender}, mpsc::{self, UnboundedReceiver, UnboundedSender}, + oneshot }; use tokio::task::LocalSet; +use tracing::{error, info}; +use lazy_static::lazy_static; mod futures; mod jwt_extension; @@ -36,6 +39,17 @@ use options::{main_module_url, main_worker_options}; static JS_CORE_HANDLE: Lazy>>> = Lazy::new(|| Arc::new(TokioMutex::new(None))); +fn uuid_to_valid_variable_name(uuid: &str) -> String { + let valid_chars: String = uuid.chars().filter(|c| c.is_alphabetic()).collect(); + valid_chars +} + +use std::collections::HashMap; + +lazy_static! { + static ref RESPONSES: TokioMutex> = TokioMutex::new(HashMap::new()); +} + pub struct JsCoreHandle { rx: Receiver, rx_module_load: Receiver, @@ -65,40 +79,33 @@ impl JsCoreHandle { pub async fn execute(&mut self, script: String) -> Result { let id = uuid::Uuid::new_v4().to_string(); + let (response_tx, response_rx) = oneshot::channel(); + self.tx .send(JsCoreRequest { script, id: id.clone(), + response_tx }) .expect("couldn't send on channel... it is likely that the main worker thread has crashed..."); - let mut response = None; - while response.is_none() { - match self.rx.recv().await { - Ok(r) => { - if r.id == id { - response = Some(r); - } - } - Err(err) => { - error!("Error receiving on channel"); - return Err(anyhow!(err)); - } - } - } + let response = response_rx.await.unwrap(); + + info!("Got response: {:?}", response); response - .expect("none case handle above") .result .map_err(|err| anyhow!(err)) } pub async fn load_module(&mut self, path: String) -> Result { let id = uuid::Uuid::new_v4().to_string(); + let (response_tx, response_rx) = oneshot::channel(); self.tx_module_load .send(JsCoreRequest { script: path, id: id.clone(), + response_tx }) .expect("couldn't send on channel... it is likely that the main worker thread has crashed..."); @@ -124,10 +131,11 @@ impl JsCoreHandle { } } -#[derive(Debug, Clone)] +#[derive(Debug)] struct JsCoreRequest { script: String, id: String, + response_tx: oneshot::Sender } #[derive(Debug, Clone)] @@ -210,7 +218,11 @@ impl JsCore { )) } - fn execute_async(&self, name: String, script: String) -> Result { + fn execute_async( + &self, + name: String, + script: String, + ) -> Result { let mut worker = self .worker .lock() @@ -219,54 +231,85 @@ impl JsCore { r#" globalThis.{} = undefined; (async () => {{ + console.log("starting execution of script"); globalThis.{} = ({}); + console.log("finished execution of script"); }})(); "#, - name, name, - script + name, name, script ); let _execute_async = worker.execute_script("js_core", wrapped_script.into())?; - Ok(GlobalVariableFuture::new( - self.worker.clone(), - name, - )) + Ok(GlobalVariableFuture::new(self.worker.clone(), name)) } fn generate_execution_slot( - name: String, - rx: Arc::>>, + rx: Arc>>, tx: Sender, - js_core: JsCore + js_core: JsCore, ) -> impl Future { async move { loop { - let maybe_request = rx.lock().as_mut().ok().map(|c| c.try_recv()); - - - if let Ok(mut rx) = rx.lock() { - if let Ok(request) = rx.try_recv() { - let script = request.script; - let id = request.id; - //global_req_id = Some(id.clone()); - - let result = match js_core.execute_async(name.clone(), script) { - Ok(execute_async_future) => execute_async_future.await.map_err(|e| e.to_string()), - Err(err) => Err(err.to_string()), - }; - - tx.send(JsCoreResponse { result, id }) - .expect("couldn't send on channel"); - } + let mut maybe_request = rx.lock().await; + //let maybe_request = rx.lock().as_mut().ok().map(|c| c.try_recv()); + if let Ok(request) = maybe_request.try_recv() { + info!("Got request: {:?}", request); + let script = request.script.clone(); + let id = request.id.clone(); + let js_core_cloned = js_core.clone(); + let response_tx = request.response_tx; + let tx_cloned = tx.clone(); + + //global_req_id = Some(id.clone()); + + tokio::task::spawn_local(async move { + info!("Spawn local driving: {}", id); + let local_variable_name = uuid_to_valid_variable_name(&id); + let script_fut = + js_core_cloned.execute_async(local_variable_name, script); + info!("Script fut created: {}", id); + match script_fut { + Ok(script_fut) => match script_fut.await { + Ok(res) => { + info!("Script execution completed Succesfully: {}", id); + response_tx + .send(JsCoreResponse { + result: Ok(res), + id: id, + }) + .expect("couldn't send on channel"); + } + Err(err) => { + error!("Error executing script: {:?}", err); + response_tx + .send(JsCoreResponse { + result: Err(err.to_string()), + id: id, + }) + .expect("couldn't send on channel"); + } + }, + Err(err) => { + error!("Error executing script: {:?}", err); + response_tx + .send(JsCoreResponse { + result: Err(err.to_string()), + id: id, + }) + .expect("couldn't send on channel"); + } + } + }); } tokio::task::yield_now().await; } + info!("generate_execution_slot loop completed"); } } pub async fn start(config: Ad4mConfig) -> JsCoreHandle { let (tx_inside, rx_outside) = broadcast::channel::(50); let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); - let rx_inside = Arc::new(Mutex::new(rx_inside)); + let rx_inside = Arc::new(TokioMutex::new(rx_inside)); let (tx_inside_loader, rx_outside_loader) = broadcast::channel::(50); let (tx_outside_loader, mut rx_inside_loader) = mpsc::unbounded_channel::(); @@ -320,6 +363,7 @@ impl JsCore { info!("AD4M init complete, starting await loop waiting for requests"); loop { + info!("Main loop running"); //Listener future for loading JS modules into runtime let module_load_fut = async { loop { @@ -355,11 +399,10 @@ impl JsCore { let mut global_req_id = None; + let local_set = tokio::task::LocalSet::new(); + //Listener future for receiving script execution calls - let receive_fut_1 = Self::generate_execution_slot("async_1".to_string(), rx_inside.clone(), tx_inside.clone(), js_core.clone()); - let receive_fut_2 = Self::generate_execution_slot("async_2".to_string(), rx_inside.clone(), tx_inside.clone(), js_core.clone()); - let receive_fut_3 = Self::generate_execution_slot("async_3".to_string(), rx_inside.clone(), tx_inside.clone(), js_core.clone()); - let receive_fut_4 = Self::generate_execution_slot("async_4".to_string(), rx_inside.clone(), tx_inside.clone(), js_core.clone()); + //let receive_fut_1 = Self::generate_execution_slot(rx_inside.clone(), tx_inside.clone(), js_core.clone()); let holochain_signal_receiver_fut = async { loop { @@ -429,16 +472,15 @@ impl JsCore { } } } - _request = receive_fut_1 => info!("AD4M receive_fut_1 completed"), - _request = receive_fut_2 => info!("AD4M receive_fut_1 completed"), - _request = receive_fut_3 => info!("AD4M receive_fut_1 completed"), - _request = receive_fut_4 => info!("AD4M receive_fut_1 completed"), + _drive_local_set = local_set.run_until(Self::generate_execution_slot(rx_inside.clone(), tx_inside.clone(), js_core.clone())) => { + info!("AD4M drive local set completed"); + } _module_load = module_load_fut => { info!("AD4M module load completed"); //break; } _holochain_signal_receivers = holochain_signal_receiver_fut => { - //info!("AD4M holochain signal receiver completed"); + info!("AD4M holochain signal receiver completed"); } } } From 9d761428679b996ea5efb79d29cbc4e007c5c060 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Sat, 2 Sep 2023 02:53:11 +0100 Subject: [PATCH 638/722] poll event loop in global variable future and add waker --- rust-executor/src/js_core/futures.rs | 11 ++++++++--- rust-executor/src/js_core/mod.rs | 12 +++++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs index f6c14db48..b19455c33 100644 --- a/rust-executor/src/js_core/futures.rs +++ b/rust-executor/src/js_core/futures.rs @@ -39,10 +39,14 @@ impl GlobalVariableFuture { impl Future for GlobalVariableFuture { type Output = Result; // You can customize the output type. - fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll { - println!("Trying to get the worker lock: {}", self.name); + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + //println!("Trying to get the worker lock: {}", self.name); let mut worker = self.worker.lock().unwrap(); - println!("Got the lock: {}", self.name); + worker.poll_event_loop(cx, false); + worker.poll_event_loop(cx, false); + worker.poll_event_loop(cx, false); + worker.poll_event_loop(cx, false); + //println!("Got the lock: {}", self.name); if let Ok(global_value) = worker.execute_script("global_var_future", self.name.clone().into()) { let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); let context = v8::Context::new(scope); @@ -59,6 +63,7 @@ impl Future for GlobalVariableFuture { return Poll::Ready(Ok(value)); } } else if value.is_undefined() { + cx.waker().wake_by_ref(); return Poll::Pending; } else { let value = value.to_rust_string_lossy(scope); diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 211d6e1fb..04308953d 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -91,7 +91,7 @@ impl JsCoreHandle { let response = response_rx.await.unwrap(); - info!("Got response: {:?}", response); + //info!("Got response: {:?}", response); response .result @@ -231,9 +231,7 @@ impl JsCore { r#" globalThis.{} = undefined; (async () => {{ - console.log("starting execution of script"); globalThis.{} = ({}); - console.log("finished execution of script"); }})(); "#, name, name, script @@ -252,7 +250,7 @@ impl JsCore { let mut maybe_request = rx.lock().await; //let maybe_request = rx.lock().as_mut().ok().map(|c| c.try_recv()); if let Ok(request) = maybe_request.try_recv() { - info!("Got request: {:?}", request); + //info!("Got request: {:?}", request); let script = request.script.clone(); let id = request.id.clone(); let js_core_cloned = js_core.clone(); @@ -262,15 +260,15 @@ impl JsCore { //global_req_id = Some(id.clone()); tokio::task::spawn_local(async move { - info!("Spawn local driving: {}", id); + //info!("Spawn local driving: {}", id); let local_variable_name = uuid_to_valid_variable_name(&id); let script_fut = js_core_cloned.execute_async(local_variable_name, script); - info!("Script fut created: {}", id); + //info!("Script fut created: {}", id); match script_fut { Ok(script_fut) => match script_fut.await { Ok(res) => { - info!("Script execution completed Succesfully: {}", id); + //info!("Script execution completed Succesfully: {}", id); response_tx .send(JsCoreResponse { result: Ok(res), From 12c2b00a3c82482b9341508536d38e03624b31ce Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 4 Sep 2023 12:41:47 +0100 Subject: [PATCH 639/722] have running of graphql server and dapp server happen in their own threads --- rust-executor/src/lib.rs | 91 ++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 60 deletions(-) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 8eb658083..2d89acb0a 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -40,39 +40,26 @@ pub async fn run(mut config: Ad4mConfig) { info!("Starting GraphQL..."); if config.run_dapp_server.unwrap() { - tokio::task::spawn_blocking(move || { - let result = serve_dapp(4200); - tokio::runtime::Handle::current().block_on(async { - match result.await { - Ok(_) => { - info!("GraphQL server stopped."); - std::process::exit(0); - } - Err(err) => { - error!("GraphQL server stopped with error: {}", err); - std::process::exit(1); - } - } - }); + std::thread::spawn(|| { + let runtime = tokio::runtime::Builder::new_current_thread() + .enable_all() + .build() + .unwrap(); + runtime.block_on(serve_dapp(8080)).unwrap(); }); } - match graphql::start_server( - js_core_handle, - config.gql_port.expect("Did not get gql port"), - config.app_data_path.expect("Did not get app data path") - ) - .await - { - Ok(_) => { - info!("GraphQL server stopped."); - std::process::exit(0); - } - Err(err) => { - error!("GraphQL server stopped with error: {}", err); - std::process::exit(1); - } - }; + std::thread::spawn(move || { + let runtime = tokio::runtime::Builder::new_current_thread() + .enable_all() + .build() + .unwrap(); + runtime.block_on(graphql::start_server( + js_core_handle, + config.gql_port.expect("Did not get gql port"), + config.app_data_path.expect("Did not get app data path") + )).unwrap(); + }); } /// Runs the GraphQL server and the deno core runtime @@ -92,40 +79,24 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { info!("Starting GraphQL..."); if config.run_dapp_server.unwrap() { - tokio::task::spawn_blocking(move || { - let result = serve_dapp(4200); - tokio::runtime::Handle::current().block_on(async { - match result.await { - Ok(_) => { - info!("GraphQL server stopped."); - std::process::exit(0); - } - Err(err) => { - error!("GraphQL server stopped with error: {}", err); - std::process::exit(1); - } - } - }); + std::thread::spawn(|| { + let runtime = tokio::runtime::Builder::new_current_thread() + .enable_all() + .build() + .unwrap(); + runtime.block_on(serve_dapp(8080)).unwrap(); }); - } + }; - tokio::task::spawn_blocking(move || { - let result = graphql::start_server( + std::thread::spawn(move || { + let runtime = tokio::runtime::Builder::new_current_thread() + .enable_all() + .build() + .unwrap(); + runtime.block_on(graphql::start_server( js_core_handle, config.gql_port.expect("Did not get gql port"), config.app_data_path.expect("Did not get app data path") - ); - tokio::runtime::Handle::current().block_on(async { - match result.await { - Ok(_) => { - info!("GraphQL server stopped."); - std::process::exit(0); - } - Err(err) => { - error!("GraphQL server stopped with error: {}", err); - std::process::exit(1); - } - } - }); + )).unwrap(); }); } \ No newline at end of file From 13fc2b302dba1ab9eba6b3ec9567f2d74cc5655a Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 4 Sep 2023 14:01:24 +0100 Subject: [PATCH 640/722] .join() on graphql thread when running in cli to keep server running and not close command early --- rust-executor/src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 2d89acb0a..a848c7dea 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -49,7 +49,7 @@ pub async fn run(mut config: Ad4mConfig) { }); } - std::thread::spawn(move || { + let handle = std::thread::spawn(move || { let runtime = tokio::runtime::Builder::new_current_thread() .enable_all() .build() @@ -60,6 +60,7 @@ pub async fn run(mut config: Ad4mConfig) { config.app_data_path.expect("Did not get app data path") )).unwrap(); }); + handle.join().unwrap(); } /// Runs the GraphQL server and the deno core runtime @@ -99,4 +100,6 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { config.app_data_path.expect("Did not get app data path") )).unwrap(); }); + + //TODO; we need someway to know that the graphql server is running before we allow this function to return } \ No newline at end of file From 7bf409311214b78ea5d8ec11d9d95b4f84554482 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 4 Sep 2023 18:22:44 +0100 Subject: [PATCH 641/722] faster; but tests crashing; working in production --- .../src/holochain_service/interface.rs | 5 + rust-executor/src/holochain_service/mod.rs | 2 +- rust-executor/src/js_core/futures.rs | 73 +++--- rust-executor/src/js_core/mod.rs | 246 +++++++----------- rust-executor/src/lib.rs | 1 + 5 files changed, 142 insertions(+), 185 deletions(-) diff --git a/rust-executor/src/holochain_service/interface.rs b/rust-executor/src/holochain_service/interface.rs index c783b7b16..6f8486ada 100644 --- a/rust-executor/src/holochain_service/interface.rs +++ b/rust-executor/src/holochain_service/interface.rs @@ -231,6 +231,11 @@ pub fn maybe_get_holochain_service() -> Option { } } +pub async fn maybe_get_holochain_service_async() -> Option { + let lock = HOLOCHAIN_SERVICE.read().await; + lock.clone() +} + pub async fn set_holochain_service(service: HolochainServiceInterface) { let mut lock = HOLOCHAIN_SERVICE.write().await; *lock = Some(service); diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index dd4b15dbd..489240999 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -29,7 +29,7 @@ pub(crate) mod interface; pub(crate) use interface::{ get_holochain_service, maybe_get_holochain_service, HolochainServiceInterface, - HolochainServiceRequest, HolochainServiceResponse, + HolochainServiceRequest, HolochainServiceResponse, maybe_get_holochain_service_async }; use self::interface::set_holochain_service; diff --git a/rust-executor/src/js_core/futures.rs b/rust-executor/src/js_core/futures.rs index b19455c33..9ab3418ff 100644 --- a/rust-executor/src/js_core/futures.rs +++ b/rust-executor/src/js_core/futures.rs @@ -3,15 +3,16 @@ use deno_core::v8; use deno_runtime::worker::MainWorker; use std::future::Future; use std::pin::Pin; -use std::sync::{Arc, Mutex}; +use std::sync::Arc; use std::task::{Context, Poll}; +use tokio::sync::Mutex as TokioMutex; pub struct EventLoopFuture { - worker: Arc>, + worker: Arc>, } impl EventLoopFuture { - pub fn new(worker: Arc>) -> Self { + pub fn new(worker: Arc>) -> Self { EventLoopFuture { worker } } } @@ -20,57 +21,51 @@ impl Future for EventLoopFuture { type Output = Result<(), AnyError>; // You can customize the output type. fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { - let mut worker = self.worker.lock().unwrap(); - worker.poll_event_loop(cx, false) + let worker = self.worker.try_lock(); + if let Ok(mut worker) = worker { + worker.poll_event_loop(cx, false) + } else { + Poll::Pending + } } } -pub struct GlobalVariableFuture { - worker: Arc>, - name: String, +pub struct SmartGlobalVariableFuture { + worker: Arc>, + value: v8::Global, } -impl GlobalVariableFuture { - pub fn new(worker: Arc>, name: String) -> Self { - GlobalVariableFuture { worker, name } +impl SmartGlobalVariableFuture { + pub fn new(worker: Arc>, value: v8::Global) -> Self { + SmartGlobalVariableFuture { worker, value } } } -impl Future for GlobalVariableFuture { +impl Future for SmartGlobalVariableFuture { type Output = Result; // You can customize the output type. fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { //println!("Trying to get the worker lock: {}", self.name); - let mut worker = self.worker.lock().unwrap(); - worker.poll_event_loop(cx, false); - worker.poll_event_loop(cx, false); - worker.poll_event_loop(cx, false); - worker.poll_event_loop(cx, false); - //println!("Got the lock: {}", self.name); - if let Ok(global_value) = worker.execute_script("global_var_future", self.name.clone().into()) { - let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); - let context = v8::Context::new(scope); - let scope = &mut v8::ContextScope::new(scope, context); - let value = v8::Local::new(scope, global_value.clone()); + let mut worker = self.worker.try_lock().expect("Failed to lock worker"); + let poll_value = worker.js_runtime.poll_value(&self.value, cx); - if value.is_promise() { - let promise = v8::Local::::try_from(value).unwrap(); - if promise.state() == v8::PromiseState::Pending { - return Poll::Pending; - } else { - //let result = promise.result(); - let value = value.to_rust_string_lossy(scope); - return Poll::Ready(Ok(value)); - } - } else if value.is_undefined() { + match poll_value { + Poll::Pending => { cx.waker().wake_by_ref(); - return Poll::Pending; - } else { - let value = value.to_rust_string_lossy(scope); - return Poll::Ready(Ok(value)); + Poll::Pending + }, + Poll::Ready(value) => { + match value { + Ok(value) => { + let scope = &mut v8::HandleScope::new(worker.js_runtime.v8_isolate()); + let context = v8::Context::new(scope); + let scope = &mut v8::ContextScope::new(scope, context); + let value = value.open(scope).to_rust_string_lossy(scope); + Poll::Ready(Ok(value)) + }, + Err(err) => Poll::Ready(Err(err)) + } } - } else { - return Poll::Pending; } } } diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 04308953d..36426ec79 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -5,12 +5,10 @@ use deno_core::resolve_url_or_path; use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; use holochain::prelude::{ExternIO, Signal}; -use log::debug; use once_cell::sync::Lazy; +use tokio::time::sleep; use std::env::current_dir; -use std::error::Error; use std::sync::Arc; -use std::sync::Mutex; use tokio::runtime::Builder; use tokio::sync::broadcast; use tokio::sync::Mutex as TokioMutex; @@ -19,9 +17,8 @@ use tokio::sync::{ mpsc::{self, UnboundedReceiver, UnboundedSender}, oneshot }; -use tokio::task::LocalSet; use tracing::{error, info}; -use lazy_static::lazy_static; +use options::{main_module_url, main_worker_options}; mod futures; mod jwt_extension; @@ -31,25 +28,13 @@ mod string_module_loader; mod utils_extension; mod wallet_extension; -use self::futures::{EventLoopFuture, GlobalVariableFuture}; -use crate::holochain_service::maybe_get_holochain_service; +use self::futures::{EventLoopFuture, SmartGlobalVariableFuture}; +use crate::holochain_service::maybe_get_holochain_service_async; use crate::Ad4mConfig; -use options::{main_module_url, main_worker_options}; static JS_CORE_HANDLE: Lazy>>> = Lazy::new(|| Arc::new(TokioMutex::new(None))); -fn uuid_to_valid_variable_name(uuid: &str) -> String { - let valid_chars: String = uuid.chars().filter(|c| c.is_alphabetic()).collect(); - valid_chars -} - -use std::collections::HashMap; - -lazy_static! { - static ref RESPONSES: TokioMutex> = TokioMutex::new(HashMap::new()); -} - pub struct JsCoreHandle { rx: Receiver, rx_module_load: Receiver, @@ -91,7 +76,7 @@ impl JsCoreHandle { let response = response_rx.await.unwrap(); - //info!("Got response: {:?}", response); + info!("Got response: {:?}", response); response .result @@ -146,7 +131,7 @@ struct JsCoreResponse { #[derive(Clone)] pub struct JsCore { - worker: Arc>, + worker: Arc>, } pub struct ExternWrapper(ExternIO); @@ -171,7 +156,7 @@ impl std::fmt::Display for ExternWrapper { impl JsCore { pub fn new() -> Self { JsCore { - worker: Arc::new(Mutex::new(MainWorker::from_options( + worker: Arc::new(TokioMutex::new(MainWorker::from_options( main_module_url(), PermissionsContainer::allow_all(), main_worker_options(), @@ -180,7 +165,7 @@ impl JsCore { } async fn load_module(&self, file_path: String) -> Result<(), AnyError> { - let mut worker = self.worker.lock().unwrap(); + let mut worker = self.worker.lock().await; let url = resolve_url_or_path(&file_path, current_dir()?.as_path())?; let _module_id = worker.js_runtime.load_side_module(&url, None).await?; //TODO; this likely needs to be run (although might be handled by the import in the js code when import() is called) @@ -192,7 +177,7 @@ impl JsCore { let mut worker = self .worker .lock() - .expect("init_engine(): couldn't lock worker"); + .await; worker.bootstrap(&BootstrapOptions::default()); worker .execute_main_module(&main_module_url()) @@ -205,39 +190,34 @@ impl JsCore { event_loop } - fn init_core(&self, config: Ad4mConfig) -> Result { - let mut worker = self - .worker - .lock() - .expect("init_core(): couldn't lock worker"); - let _init_core = - worker.execute_script("js_core", format!("initCore({})", config.get_json()).into())?; - Ok(GlobalVariableFuture::new( - self.worker.clone(), - "core".to_string(), - )) - } - - fn execute_async( + // async fn init_core(&self, config: Ad4mConfig) -> Result { + // let mut worker = self + // .worker + // .lock() + // .await; + // let _init_core = + // worker.execute_script("js_core", format!("initCore({})", config.get_json()).into())?; + // Ok(GlobalVariableFuture::new( + // self.worker.clone(), + // "core".to_string(), + // )) + // } + + async fn execute_async_smart( &self, - name: String, - script: String, - ) -> Result { - let mut worker = self - .worker - .lock() - .expect("execute_async(): couldn't lock worker"); + script: String + ) -> Result { + let mut worker = self.worker.lock().await; let wrapped_script = format!( r#" - globalThis.{} = undefined; - (async () => {{ - globalThis.{} = ({}); - }})(); - "#, - name, name, script + (async () => {{ + return ({}); + }})(); + "#, script ); - let _execute_async = worker.execute_script("js_core", wrapped_script.into())?; - Ok(GlobalVariableFuture::new(self.worker.clone(), name)) + info!("Sending script: {}", wrapped_script); + let execute_async = worker.execute_script("js_core", wrapped_script.into())?; + Ok(SmartGlobalVariableFuture::new(self.worker.clone(), execute_async)) } fn generate_execution_slot( @@ -247,9 +227,10 @@ impl JsCore { ) -> impl Future { async move { loop { + //info!("Execution slot loop running"); let mut maybe_request = rx.lock().await; //let maybe_request = rx.lock().as_mut().ok().map(|c| c.try_recv()); - if let Ok(request) = maybe_request.try_recv() { + if let Some(request) = maybe_request.recv().await { //info!("Got request: {:?}", request); let script = request.script.clone(); let id = request.id.clone(); @@ -260,32 +241,21 @@ impl JsCore { //global_req_id = Some(id.clone()); tokio::task::spawn_local(async move { - //info!("Spawn local driving: {}", id); - let local_variable_name = uuid_to_valid_variable_name(&id); + info!("Spawn local driving: {}", id); + //let local_variable_name = uuid_to_valid_variable_name(&id); let script_fut = - js_core_cloned.execute_async(local_variable_name, script); - //info!("Script fut created: {}", id); - match script_fut { - Ok(script_fut) => match script_fut.await { - Ok(res) => { - //info!("Script execution completed Succesfully: {}", id); - response_tx - .send(JsCoreResponse { - result: Ok(res), - id: id, - }) - .expect("couldn't send on channel"); - } - Err(err) => { - error!("Error executing script: {:?}", err); - response_tx - .send(JsCoreResponse { - result: Err(err.to_string()), - id: id, - }) - .expect("couldn't send on channel"); - } - }, + js_core_cloned.execute_async_smart(script).await.unwrap(); + info!("Script fut created: {}", id); + match script_fut.await { + Ok(res) => { + info!("Script execution completed Succesfully: {}", id); + response_tx + .send(JsCoreResponse { + result: Ok(res), + id: id, + }) + .expect("couldn't send on channel"); + } Err(err) => { error!("Error executing script: {:?}", err); response_tx @@ -298,9 +268,9 @@ impl JsCore { } }); } + //sleep(std::time::Duration::from_millis(10)).await; tokio::task::yield_now().await; } - info!("generate_execution_slot loop completed"); } } @@ -323,49 +293,42 @@ impl JsCore { let js_core = JsCore::new(); - rt.block_on(js_core.init_engine()); - info!("AD4M JS engine init completed"); - rt.block_on(async { - let local = LocalSet::new(); - let tx_cloned = tx_inside.clone(); + let result = js_core.init_engine().await; + info!("AD4M JS engine init completed, with result: {:?}", result); + let init_core_future = js_core - .init_core(config) - .expect("couldn't spawn JS initCore()"); - - // Run the local task set. - let run_until = local.run_until(async move { - match init_core_future.await { - Ok(_) => {} - Err(err) => error!("AD4M coreInit() failed with error: {}", err), - }; - tx_cloned - .send(JsCoreResponse { - result: Ok(String::from("initialized")), - id: String::from("initialized"), - }) - .expect("couldn't send on channel"); - }); - tokio::select! { - _init_core_result = run_until => { - info!("AD4M initCore() finished"); + .execute_async_smart(format!("initCore({})", config.get_json()).into()); + let result = init_core_future.await.unwrap().await; + + match result { + Ok(res) => { + info!("AD4M coreInit() completed Succesfully: {}", res); + tx_inside + .send(JsCoreResponse { + result: Ok(String::from("initialized")), + id: String::from("initialized"), + }) + .expect("couldn't send on channel"); } - event_loop_result = js_core.event_loop() => { - match event_loop_result { - Ok(_) => info!("AD4M event loop finished"), - Err(err) => error!("AD4M event loop closed with error: {}", err) - } + Err(err) => { + error!("Error executing coreInit(): {:?}", err); + tx_inside + .send(JsCoreResponse { + result: Err(format!("Error executing coreInit(): {:?}", err)), + id: String::from("initialized"), + }) + .expect("couldn't send on channel"); } } - info!("AD4M init complete, starting await loop waiting for requests"); - loop { info!("Main loop running"); //Listener future for loading JS modules into runtime let module_load_fut = async { loop { - if let Ok(request) = rx_inside_loader.try_recv() { + //info!("Module load loop running"); + if let Some(request) = rx_inside_loader.recv().await { let tx_loader_cloned = tx_inside_loader.clone(); let script = request.script; let id = request.id; @@ -391,6 +354,7 @@ impl JsCore { } } } + //sleep(std::time::Duration::from_millis(10)).await; tokio::task::yield_now().await; } }; @@ -399,50 +363,42 @@ impl JsCore { let local_set = tokio::task::LocalSet::new(); - //Listener future for receiving script execution calls - //let receive_fut_1 = Self::generate_execution_slot(rx_inside.clone(), tx_inside.clone(), js_core.clone()); - let holochain_signal_receiver_fut = async { loop { - if let Some(holochain_service) = maybe_get_holochain_service() { - let stream_receiver = holochain_service.stream_receiver.try_lock(); - if let Ok(mut stream_receiver) = stream_receiver { - if let Ok(signal) = stream_receiver.try_recv() { - match signal.clone() { - Signal::App { - cell_id, - zome_name, - signal: payload, - } => { - // Handle the received signal here - let script = format!( - "await core.holochainService.handleCallback({{cell_id: [{:?}, {:?}], zome_name: '{}', signal: {}}})", - cell_id.dna_hash().get_raw_39().to_vec(), cell_id.agent_pubkey().get_raw_39().to_vec(), zome_name, ExternWrapper(payload.into_inner()) - ); - match js_core.execute_async("hc_signal_fut".to_string(), script) { - Ok(script_fut) => match script_fut.await { - Ok(_res) => { - info!( - "Holochain Handle Callback Completed Succesfully", - ); - } - Err(err) => { - error!("Error executing callback: {:?}", err); - } - }, + //info!("Holochain service loop"); + if let Some(holochain_service) = maybe_get_holochain_service_async().await { + let mut stream_receiver = holochain_service.stream_receiver.lock().await; + if let Some(signal) = stream_receiver.recv().await { + match signal.clone() { + Signal::App { + cell_id, + zome_name, + signal: payload, + } => { + // Handle the received signal here + let script = format!( + "await core.holochainService.handleCallback({{cell_id: [{:?}, {:?}], zome_name: '{}', signal: {}}})", + cell_id.dna_hash().get_raw_39().to_vec(), cell_id.agent_pubkey().get_raw_39().to_vec(), zome_name, ExternWrapper(payload.into_inner()) + ); + match js_core.execute_async_smart(script).await { + Ok(_res) => { + info!( + "Holochain Handle Callback Completed Succesfully", + ); + } Err(err) => { error!("Error executing callback: {:?}", err); } } } - Signal::System(_) => { - // Handle the received signal here - info!("Received system signal"); - } + Signal::System(_) => { + // Handle the received signal here + info!("Received system signal"); } } } } + //sleep(std::time::Duration::from_millis(10)).await; tokio::task::yield_now().await; } }; diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index a848c7dea..759afc5e4 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -34,6 +34,7 @@ pub async fn run(mut config: Ad4mConfig) { info!("Starting js_core..."); let mut js_core_handle = JsCore::start(config.clone()).await; + info!("Finished start"); js_core_handle.initialized().await; info!("js_core initialized."); From d54592996b4008dd29f3fbb029fc2e0ac422eaf1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 4 Sep 2023 20:53:52 +0100 Subject: [PATCH 642/722] run module load and holochain signal futures inside spawn_local --- rust-executor/src/js_core/mod.rs | 76 +++++++++++++++++--------------- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 36426ec79..875a7042f 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -76,7 +76,7 @@ impl JsCoreHandle { let response = response_rx.await.unwrap(); - info!("Got response: {:?}", response); + info!("Got response: {:?}", response.id); response .result @@ -215,7 +215,7 @@ impl JsCore { }})(); "#, script ); - info!("Sending script: {}", wrapped_script); + //info!("Sending script: {}", wrapped_script); let execute_async = worker.execute_script("js_core", wrapped_script.into())?; Ok(SmartGlobalVariableFuture::new(self.worker.clone(), execute_async)) } @@ -245,10 +245,10 @@ impl JsCore { //let local_variable_name = uuid_to_valid_variable_name(&id); let script_fut = js_core_cloned.execute_async_smart(script).await.unwrap(); - info!("Script fut created: {}", id); + //info!("Script fut created: {}", id); match script_fut.await { Ok(res) => { - info!("Script execution completed Succesfully: {}", id); + //info!("Script execution completed Succesfully: {}", id); response_tx .send(JsCoreResponse { result: Ok(res), @@ -332,29 +332,31 @@ impl JsCore { let tx_loader_cloned = tx_inside_loader.clone(); let script = request.script; let id = request.id; - - match js_core.load_module(script).await { - Ok(()) => { - info!("Module loaded!"); - tx_inside_loader - .send(JsCoreResponse { - result: Ok(String::from("")), - id: id, - }) - .expect("couldn't send on channel"); - } - Err(err) => { - error!("Error loading module: {:?}", err); - tx_loader_cloned - .send(JsCoreResponse { - result: Err(err.to_string()), - id, - }) - .expect("couldn't send on channel"); + let js_core_cloned = js_core.clone(); + + tokio::task::spawn_local(async move { + match js_core_cloned.load_module(script).await { + Ok(()) => { + info!("Module loaded!"); + tx_loader_cloned + .send(JsCoreResponse { + result: Ok(String::from("")), + id: id, + }) + .expect("couldn't send on channel"); + } + Err(err) => { + error!("Error loading module: {:?}", err); + tx_loader_cloned + .send(JsCoreResponse { + result: Err(err.to_string()), + id, + }) + .expect("couldn't send on channel"); + } } - } + }); } - //sleep(std::time::Duration::from_millis(10)).await; tokio::task::yield_now().await; } }; @@ -362,6 +364,8 @@ impl JsCore { let mut global_req_id = None; let local_set = tokio::task::LocalSet::new(); + let holochain_local_set = tokio::task::LocalSet::new(); + let module_load_local_set = tokio::task::LocalSet::new(); let holochain_signal_receiver_fut = async { loop { @@ -375,12 +379,14 @@ impl JsCore { zome_name, signal: payload, } => { - // Handle the received signal here - let script = format!( - "await core.holochainService.handleCallback({{cell_id: [{:?}, {:?}], zome_name: '{}', signal: {}}})", - cell_id.dna_hash().get_raw_39().to_vec(), cell_id.agent_pubkey().get_raw_39().to_vec(), zome_name, ExternWrapper(payload.into_inner()) - ); - match js_core.execute_async_smart(script).await { + let js_core_cloned = js_core.clone(); + tokio::task::spawn_local(async move { + // Handle the received signal here + let script = format!( + "await core.holochainService.handleCallback({{cell_id: [{:?}, {:?}], zome_name: '{}', signal: {}}})", + cell_id.dna_hash().get_raw_39().to_vec(), cell_id.agent_pubkey().get_raw_39().to_vec(), zome_name, ExternWrapper(payload.into_inner()) + ); + match js_core_cloned.execute_async_smart(script).await { Ok(_res) => { info!( "Holochain Handle Callback Completed Succesfully", @@ -390,7 +396,8 @@ impl JsCore { error!("Error executing callback: {:?}", err); } } - } + }); + }, Signal::System(_) => { // Handle the received signal here info!("Received system signal"); @@ -398,7 +405,6 @@ impl JsCore { } } } - //sleep(std::time::Duration::from_millis(10)).await; tokio::task::yield_now().await; } }; @@ -429,11 +435,11 @@ impl JsCore { _drive_local_set = local_set.run_until(Self::generate_execution_slot(rx_inside.clone(), tx_inside.clone(), js_core.clone())) => { info!("AD4M drive local set completed"); } - _module_load = module_load_fut => { + _module_load = module_load_local_set.run_until(module_load_fut) => { info!("AD4M module load completed"); //break; } - _holochain_signal_receivers = holochain_signal_receiver_fut => { + _holochain_signal_receivers = holochain_local_set.run_until(holochain_signal_receiver_fut) => { info!("AD4M holochain signal receiver completed"); } } From f7dbd0dacb39f6206384f9c6873572e4e43c0a02 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 5 Sep 2023 12:18:14 +0100 Subject: [PATCH 643/722] use current thread instead of multithread runtime to (hopefully) fix BorrowMutError --- rust-executor/src/js_core/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 875a7042f..15d3b1558 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -285,7 +285,7 @@ impl JsCore { let tx_inside_clone = tx_inside.clone(); let tx_inside_loader_clone = tx_inside_loader.clone(); std::thread::spawn(move || { - let rt = Builder::new_multi_thread() + let rt = Builder::new_current_thread() .enable_all() .build() .expect("Failed to create Tokio runtime"); From 8c1d1328a987bf1c4de2b35d8960ccb86e3393f8 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 5 Sep 2023 12:35:44 +0100 Subject: [PATCH 644/722] use multithreaded runtimes for graphql & dapp servers --- rust-executor/src/lib.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 759afc5e4..6f5d50203 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -42,7 +42,7 @@ pub async fn run(mut config: Ad4mConfig) { if config.run_dapp_server.unwrap() { std::thread::spawn(|| { - let runtime = tokio::runtime::Builder::new_current_thread() + let runtime = tokio::runtime::Builder::new_multi_thread() .enable_all() .build() .unwrap(); @@ -51,7 +51,7 @@ pub async fn run(mut config: Ad4mConfig) { } let handle = std::thread::spawn(move || { - let runtime = tokio::runtime::Builder::new_current_thread() + let runtime = tokio::runtime::Builder::new_multi_thread() .enable_all() .build() .unwrap(); @@ -82,7 +82,7 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { if config.run_dapp_server.unwrap() { std::thread::spawn(|| { - let runtime = tokio::runtime::Builder::new_current_thread() + let runtime = tokio::runtime::Builder::new_multi_thread() .enable_all() .build() .unwrap(); @@ -91,7 +91,7 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { }; std::thread::spawn(move || { - let runtime = tokio::runtime::Builder::new_current_thread() + let runtime = tokio::runtime::Builder::new_multi_thread() .enable_all() .build() .unwrap(); From 1444e67c299e6502caa54295c2412a5468f89059 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 5 Sep 2023 12:56:09 +0100 Subject: [PATCH 645/722] load lists library as fact in Perspective.ts load node facts --- executor/src/core/Perspective.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index f51f38b62..14afcb5dc 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -845,6 +845,8 @@ export default class Perspective { lines.push(":- discontiguous(p3_class_color/2).") lines.push(":- discontiguous(p3_instance_color/3).") + lines.push(":- use_module(library(lists))."); + let seenSubjectClasses = new Set() for(let linkExpression of allLinks) { let link = linkExpression.data From 3a142720199d9ff8a8d35b8260a8cdf579da28af Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 5 Sep 2023 13:24:53 +0100 Subject: [PATCH 646/722] rebuild prolog on populateLocalLinks --- executor/src/core/Perspective.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 14afcb5dc..157c00ff2 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -589,6 +589,7 @@ export default class Perspective { await this.#db.removeLink(this.uuid!, link); })) } + this.#prologNeedsRebuild = true; } private async getLinksLocal(query: LinkQuery): Promise { From 0cb72a958d470aa0865489e5ea587adde57916a9 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 5 Sep 2023 13:45:50 +0100 Subject: [PATCH 647/722] cleanup rust-executor warnings --- rust-executor/src/graphql/mod.rs | 1 - .../src/holochain_service/interface.rs | 10 +--- rust-executor/src/holochain_service/mod.rs | 4 +- rust-executor/src/js_core/mod.rs | 54 ++++--------------- rust-executor/src/lib.rs | 2 +- 5 files changed, 14 insertions(+), 57 deletions(-) diff --git a/rust-executor/src/graphql/mod.rs b/rust-executor/src/graphql/mod.rs index 0dba17e54..7611a7335 100644 --- a/rust-executor/src/graphql/mod.rs +++ b/rust-executor/src/graphql/mod.rs @@ -5,7 +5,6 @@ mod subscription_resolvers; mod utils; use graphql_types::RequestContext; -use hyper::body::Bytes; use mutation_resolvers::*; use query_resolvers::*; use subscription_resolvers::*; diff --git a/rust-executor/src/holochain_service/interface.rs b/rust-executor/src/holochain_service/interface.rs index 6f8486ada..b23a87bfd 100644 --- a/rust-executor/src/holochain_service/interface.rs +++ b/rust-executor/src/holochain_service/interface.rs @@ -223,15 +223,7 @@ pub async fn get_holochain_service() -> HolochainServiceInterface { lock.clone().expect("Holochain Conductor not started") } -pub fn maybe_get_holochain_service() -> Option { - let lock = HOLOCHAIN_SERVICE.try_read(); - match lock { - Ok(guard) => guard.clone(), - Err(_) => None, - } -} - -pub async fn maybe_get_holochain_service_async() -> Option { +pub async fn maybe_get_holochain_service() -> Option { let lock = HOLOCHAIN_SERVICE.read().await; lock.clone() } diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 489240999..a8edb63ea 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -28,8 +28,8 @@ pub(crate) mod holochain_service_extension; pub(crate) mod interface; pub(crate) use interface::{ - get_holochain_service, maybe_get_holochain_service, HolochainServiceInterface, - HolochainServiceRequest, HolochainServiceResponse, maybe_get_holochain_service_async + get_holochain_service, HolochainServiceInterface, + HolochainServiceRequest, HolochainServiceResponse, maybe_get_holochain_service }; use self::interface::set_holochain_service; diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 15d3b1558..3f95e2ce4 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -6,7 +6,6 @@ use deno_runtime::worker::MainWorker; use deno_runtime::{permissions::PermissionsContainer, BootstrapOptions}; use holochain::prelude::{ExternIO, Signal}; use once_cell::sync::Lazy; -use tokio::time::sleep; use std::env::current_dir; use std::sync::Arc; use tokio::runtime::Builder; @@ -29,7 +28,7 @@ mod utils_extension; mod wallet_extension; use self::futures::{EventLoopFuture, SmartGlobalVariableFuture}; -use crate::holochain_service::maybe_get_holochain_service_async; +use crate::holochain_service::maybe_get_holochain_service; use crate::Ad4mConfig; static JS_CORE_HANDLE: Lazy>>> = @@ -37,7 +36,6 @@ static JS_CORE_HANDLE: Lazy>>> = pub struct JsCoreHandle { rx: Receiver, - rx_module_load: Receiver, tx: UnboundedSender, tx_module_load: UnboundedSender, broadcast_tx: Sender, @@ -48,7 +46,6 @@ impl Clone for JsCoreHandle { fn clone(&self) -> Self { JsCoreHandle { rx: self.broadcast_tx.subscribe(), - rx_module_load: self.broadcast_loader_tx.subscribe(), tx: self.tx.clone(), tx_module_load: self.tx_module_load.clone(), broadcast_tx: self.broadcast_tx.clone(), @@ -74,9 +71,9 @@ impl JsCoreHandle { }) .expect("couldn't send on channel... it is likely that the main worker thread has crashed..."); - let response = response_rx.await.unwrap(); + let response = response_rx.await?; - info!("Got response: {:?}", response.id); + //info!("Got response: {:?}", response.id); response .result @@ -94,23 +91,9 @@ impl JsCoreHandle { }) .expect("couldn't send on channel... it is likely that the main worker thread has crashed..."); - let mut response = None; - while response.is_none() { - match self.rx_module_load.recv().await { - Ok(r) => { - if r.id == id { - response = Some(r); - } - } - Err(err) => { - error!("Error receiving on channel"); - return Err(anyhow!(err)); - } - } - } + let response = response_rx.await?; response - .expect("none case handle above") .result .map_err(|err| anyhow!(err)) } @@ -190,19 +173,6 @@ impl JsCore { event_loop } - // async fn init_core(&self, config: Ad4mConfig) -> Result { - // let mut worker = self - // .worker - // .lock() - // .await; - // let _init_core = - // worker.execute_script("js_core", format!("initCore({})", config.get_json()).into())?; - // Ok(GlobalVariableFuture::new( - // self.worker.clone(), - // "core".to_string(), - // )) - // } - async fn execute_async_smart( &self, script: String @@ -222,26 +192,23 @@ impl JsCore { fn generate_execution_slot( rx: Arc>>, - tx: Sender, js_core: JsCore, ) -> impl Future { async move { loop { //info!("Execution slot loop running"); let mut maybe_request = rx.lock().await; - //let maybe_request = rx.lock().as_mut().ok().map(|c| c.try_recv()); if let Some(request) = maybe_request.recv().await { //info!("Got request: {:?}", request); let script = request.script.clone(); let id = request.id.clone(); let js_core_cloned = js_core.clone(); let response_tx = request.response_tx; - let tx_cloned = tx.clone(); //global_req_id = Some(id.clone()); tokio::task::spawn_local(async move { - info!("Spawn local driving: {}", id); + // info!("Spawn local driving: {}", id); //let local_variable_name = uuid_to_valid_variable_name(&id); let script_fut = js_core_cloned.execute_async_smart(script).await.unwrap(); @@ -276,10 +243,10 @@ impl JsCore { pub async fn start(config: Ad4mConfig) -> JsCoreHandle { let (tx_inside, rx_outside) = broadcast::channel::(50); - let (tx_outside, mut rx_inside) = mpsc::unbounded_channel::(); + let (tx_outside, rx_inside) = mpsc::unbounded_channel::(); let rx_inside = Arc::new(TokioMutex::new(rx_inside)); - let (tx_inside_loader, rx_outside_loader) = broadcast::channel::(50); + let (tx_inside_loader, _rx_outside_loader) = broadcast::channel::(50); let (tx_outside_loader, mut rx_inside_loader) = mpsc::unbounded_channel::(); let tx_inside_clone = tx_inside.clone(); @@ -361,7 +328,7 @@ impl JsCore { } }; - let mut global_req_id = None; + let global_req_id = None; let local_set = tokio::task::LocalSet::new(); let holochain_local_set = tokio::task::LocalSet::new(); @@ -370,7 +337,7 @@ impl JsCore { let holochain_signal_receiver_fut = async { loop { //info!("Holochain service loop"); - if let Some(holochain_service) = maybe_get_holochain_service_async().await { + if let Some(holochain_service) = maybe_get_holochain_service().await { let mut stream_receiver = holochain_service.stream_receiver.lock().await; if let Some(signal) = stream_receiver.recv().await { match signal.clone() { @@ -432,7 +399,7 @@ impl JsCore { } } } - _drive_local_set = local_set.run_until(Self::generate_execution_slot(rx_inside.clone(), tx_inside.clone(), js_core.clone())) => { + _drive_local_set = local_set.run_until(Self::generate_execution_slot(rx_inside.clone(), js_core.clone())) => { info!("AD4M drive local set completed"); } _module_load = module_load_local_set.run_until(module_load_fut) => { @@ -450,7 +417,6 @@ impl JsCore { let handle = JsCoreHandle { rx: rx_outside, tx: tx_outside, - rx_module_load: rx_outside_loader, tx_module_load: tx_outside_loader, broadcast_tx: tx_inside_clone, broadcast_loader_tx: tx_inside_loader_clone, diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 6f5d50203..a2f2b50ef 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -14,7 +14,7 @@ mod pubsub; mod dapp_server; use std::env; -use tracing::{info, error}; +use tracing::info; use js_core::JsCore; From 2ebf0e87286c20cf5a9dab962c5da35cc5a9d0e3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 5 Sep 2023 13:46:03 +0100 Subject: [PATCH 648/722] cleanup tauri warnings --- ui/src-tauri/src/commands/app.rs | 2 +- ui/src-tauri/src/main.rs | 14 +------------- ui/src-tauri/src/system_tray.rs | 1 - ui/src-tauri/src/util.rs | 14 +------------- 4 files changed, 3 insertions(+), 28 deletions(-) diff --git a/ui/src-tauri/src/commands/app.rs b/ui/src-tauri/src/commands/app.rs index 8ce33728a..6bf660283 100644 --- a/ui/src-tauri/src/commands/app.rs +++ b/ui/src-tauri/src/commands/app.rs @@ -2,7 +2,7 @@ extern crate remove_dir_all; use std::time::{Duration, SystemTime}; use crate::Payload; -use crate::{config::data_path, get_main_window, util::find_and_kill_processes}; +use crate::{config::data_path, get_main_window}; use remove_dir_all::*; diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 823b2baa3..cdd60e5b0 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -17,17 +17,14 @@ use std::sync::Mutex; use libc::{rlimit, RLIMIT_NOFILE, setrlimit}; use std::io; use std::io::Write; -use tracing_subscriber::{fmt::format::FmtSpan, FmtSubscriber}; extern crate remove_dir_all; -use remove_dir_all::*; use config::app_url; use menu::build_menu; use system_tray::{ build_system_tray, handle_system_tray_event }; use tauri::{ AppHandle, - api::process::{Command, CommandEvent}, RunEvent, SystemTrayEvent, Window }; @@ -41,7 +38,6 @@ mod system_tray; mod menu; mod commands; -use tauri::api::dialog; use tauri::Manager; use crate::commands::proxy::{get_proxy, login_proxy, setup_proxy, stop_proxy}; use crate::commands::state::{get_port, request_credential}; @@ -52,7 +48,7 @@ use crate::util::create_tray_message_windows; use crate::util::find_port; use crate::menu::{handle_menu_event, open_logs_folder}; use crate::util::has_processes_running; -use crate::util::{find_and_kill_processes, create_main_window, save_executor_port}; +use crate::util::{create_main_window, save_executor_port}; // the payload type must implement `Serialize` and `Clone`. @@ -283,11 +279,3 @@ fn get_main_window(handle: &AppHandle) -> Window { main.expect("Couldn't get main window right after creating it") } } - -fn log_error(window: &Window, message: &str) { - dialog::message( - Some(window), - "Error", - message - ); -} \ No newline at end of file diff --git a/ui/src-tauri/src/system_tray.rs b/ui/src-tauri/src/system_tray.rs index 0b871ee5d..3f8d199ad 100644 --- a/ui/src-tauri/src/system_tray.rs +++ b/ui/src-tauri/src/system_tray.rs @@ -1,6 +1,5 @@ use crate::config::executor_port_path; use crate::create_main_window; -use crate::util::find_and_kill_processes; use crate::Payload; use std::env; use std::fs::remove_file; diff --git a/ui/src-tauri/src/util.rs b/ui/src-tauri/src/util.rs index 223aa30ec..5c2cd2a39 100644 --- a/ui/src-tauri/src/util.rs +++ b/ui/src-tauri/src/util.rs @@ -6,7 +6,7 @@ use std::fs::remove_file; use std::fs::File; use std::io::prelude::*; use sysinfo::Process; -use sysinfo::{ProcessExt, Signal, System, SystemExt}; +use sysinfo::{System, SystemExt}; use tauri::{AppHandle, Manager, WindowBuilder, WindowEvent, WindowUrl, Wry}; use tauri_plugin_positioner::Position; use tauri_plugin_positioner::WindowExt; @@ -24,18 +24,6 @@ pub fn find_port(start_port: u16, end_port: u16) -> u16 { ); } -pub fn find_and_kill_processes(name: &str) { - let processes = System::new_all(); - - for process in processes.processes_by_exact_name(name) { - log::info!("Prosses running: {} {}", process.pid(), process.name()); - - if process.kill_with(Signal::Term) == None { - log::error!("This signal isn't supported on this platform"); - } - } -} - pub fn has_processes_running(name: &str) -> usize { let processes = System::new_all(); let processes_by_name: Vec<&Process> = processes.processes_by_exact_name(name).collect(); From 2afb24e9a7746ccb245b853d2416d31c78afd643 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 5 Sep 2023 13:57:26 +0100 Subject: [PATCH 649/722] remove dead sender and receivers --- rust-executor/src/js_core/mod.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 3f95e2ce4..931d8bd50 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -38,8 +38,7 @@ pub struct JsCoreHandle { rx: Receiver, tx: UnboundedSender, tx_module_load: UnboundedSender, - broadcast_tx: Sender, - broadcast_loader_tx: Sender, + broadcast_tx: Sender } impl Clone for JsCoreHandle { @@ -48,8 +47,7 @@ impl Clone for JsCoreHandle { rx: self.broadcast_tx.subscribe(), tx: self.tx.clone(), tx_module_load: self.tx_module_load.clone(), - broadcast_tx: self.broadcast_tx.clone(), - broadcast_loader_tx: self.broadcast_loader_tx.clone(), + broadcast_tx: self.broadcast_tx.clone() } } } @@ -246,11 +244,9 @@ impl JsCore { let (tx_outside, rx_inside) = mpsc::unbounded_channel::(); let rx_inside = Arc::new(TokioMutex::new(rx_inside)); - let (tx_inside_loader, _rx_outside_loader) = broadcast::channel::(50); let (tx_outside_loader, mut rx_inside_loader) = mpsc::unbounded_channel::(); let tx_inside_clone = tx_inside.clone(); - let tx_inside_loader_clone = tx_inside_loader.clone(); std::thread::spawn(move || { let rt = Builder::new_current_thread() .enable_all() @@ -296,16 +292,16 @@ impl JsCore { loop { //info!("Module load loop running"); if let Some(request) = rx_inside_loader.recv().await { - let tx_loader_cloned = tx_inside_loader.clone(); let script = request.script; let id = request.id; let js_core_cloned = js_core.clone(); + let ts_response = request.response_tx; tokio::task::spawn_local(async move { match js_core_cloned.load_module(script).await { Ok(()) => { info!("Module loaded!"); - tx_loader_cloned + ts_response .send(JsCoreResponse { result: Ok(String::from("")), id: id, @@ -314,7 +310,7 @@ impl JsCore { } Err(err) => { error!("Error loading module: {:?}", err); - tx_loader_cloned + ts_response .send(JsCoreResponse { result: Err(err.to_string()), id, @@ -418,8 +414,7 @@ impl JsCore { rx: rx_outside, tx: tx_outside, tx_module_load: tx_outside_loader, - broadcast_tx: tx_inside_clone, - broadcast_loader_tx: tx_inside_loader_clone, + broadcast_tx: tx_inside_clone }; //Set the JsCoreHandle to a global object so we can use it inside of deno op calls From 47a4252d5c8d218ee3ab93b4c75f52297397dc69 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 5 Sep 2023 13:59:10 +0100 Subject: [PATCH 650/722] remove calling resolvers log --- executor/src/core/Ad4mCore.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/executor/src/core/Ad4mCore.ts b/executor/src/core/Ad4mCore.ts index c3d2cdaf2..c82b2d653 100644 --- a/executor/src/core/Ad4mCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -90,7 +90,7 @@ export default class Ad4mCore { } async callResolver (type: string, fnName: string, args: any, context: any) { - console.log("Calling resolvers with data", type, fnName, args, context); + //console.log("Calling resolvers with data", type, fnName, args, context); if(!this.resolvers[type]) throw new Error(`Could not find resolver for type ${type}`) if(!this.resolvers[type][fnName]) throw new Error(`Could not find resolver function ${fnName} for type ${type}`) try { From 7b24d1fb9bc5735d152b9c02806a1ff6dfe14e49 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 5 Sep 2023 20:02:55 +0100 Subject: [PATCH 651/722] fix PerspectiveState not being updated in handles on controller & neighbourhood being removed between executor starts --- .../p-diff-sync/linksAdapter.ts | 12 ++++---- executor/src/core/Ad4mCore.ts | 2 +- executor/src/core/LanguageController.ts | 1 + executor/src/core/Perspective.ts | 16 ++++++---- executor/src/core/PerspectiveContext.ts | 2 ++ executor/src/core/PerspectivesController.ts | 29 +++++++++++++++---- .../Holochain/HolochainService.ts | 3 +- 7 files changed, 47 insertions(+), 18 deletions(-) diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index ecde09434..df233c254 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -112,13 +112,15 @@ export class LinkAdapter implements LinkSyncAdapter { }); } - function checkSyncState(callback: SyncStateChangeObserver) { + async function checkSyncState(callback: SyncStateChangeObserver) { if (sameRevisions.length > 0 || differentRevisions.length > 0) { if (sameRevisions.length <= differentRevisions.length) { - callback(PerspectiveState.LinkLanguageInstalledButNotSynced); + await callback(PerspectiveState.LinkLanguageInstalledButNotSynced); } else { - callback(PerspectiveState.Synced); + await callback(PerspectiveState.Synced); }; + } else if (differentRevisions == 0) { + await callback(PerspectiveState.Synced); } } @@ -126,7 +128,7 @@ export class LinkAdapter implements LinkSyncAdapter { generateRevisionStates(this.myCurrentRevision); //@ts-ignore - checkSyncState(this.syncStateChangeCallback); + await checkSyncState(this.syncStateChangeCallback); for (const hash of Array.from(revisions)) { if(!hash) continue @@ -143,7 +145,7 @@ export class LinkAdapter implements LinkSyncAdapter { //@ts-ignore generateRevisionStates(this.myCurrentRevision); //@ts-ignore - checkSyncState(this.syncStateChangeCallback); + await checkSyncState(this.syncStateChangeCallback); } } } diff --git a/executor/src/core/Ad4mCore.ts b/executor/src/core/Ad4mCore.ts index c82b2d653..d31c6882a 100644 --- a/executor/src/core/Ad4mCore.ts +++ b/executor/src/core/Ad4mCore.ts @@ -300,7 +300,7 @@ export default class Ad4mCore { } console.log("Core.installNeighbourhood(): Creating perspective", url, neighbourhood, state); - return this.#perspectivesController!.add("", url, neighbourhood, true, state); + return await this.#perspectivesController!.add("", url, neighbourhood, true, state); } async languageApplyTemplateAndPublish(sourceLanguageHash: string, templateData: object): Promise { diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 7ad18d855..950a51842 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -256,6 +256,7 @@ export default class LanguageController { if (language.linksAdapter.addSyncStateChangeCallback) { language.linksAdapter.addSyncStateChangeCallback((state: PerspectiveState) => { + console.log("LanguageController.loadLanguage: sync state change", state); this.callSyncStateChangeObservers(state, {address: hash, name: language.name} as LanguageRef); }) } diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 157c00ff2..8bad153cb 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -29,6 +29,7 @@ export default class Perspective { #db: Ad4mDb; #agent: AgentService; #languageController?: LanguageController + #updateControllersHandleSyncStatus?: (uuid: string, status: PerspectiveState) => void #config?: MainConfig; #pubSub: PubSub; @@ -56,6 +57,7 @@ export default class Perspective { this.#agent = context.agentService! this.#languageController = context.languageController! this.#config = context.config; + this.#updateControllersHandleSyncStatus = context.updateControllersHandleSyncStatus; this.#pubSub = getPubSub(); this.#prologEngine = null @@ -93,9 +95,13 @@ export default class Perspective { } async updatePerspectiveState(state: PerspectiveState) { - if (this.state != state) { + if (this.state !== state) { + if (this.#updateControllersHandleSyncStatus) { + this.#updateControllersHandleSyncStatus(this.uuid!, state); + }; + this.state = state; await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_SYNC_STATE_CHANGE, {state, uuid: this.uuid}) - this.state = state + await this.#pubSub.publish(PubSubDefinitions.PERSPECTIVE_UPDATED_TOPIC, this.plain()); } } @@ -143,7 +149,7 @@ export default class Perspective { // If LinkLanguage is connected/synced (otherwise currentRevision would be null)... if (await this.getCurrentRevision()) { //TODO; once we have more data information coming from the link language, correctly determine when to mark perspective as synced - this.updatePerspectiveState(PerspectiveState.Synced); + await this.updatePerspectiveState(PerspectiveState.Synced); //Let's check if we have unpublished diffs: const mutations = await this.#db.getPendingDiffs(this.uuid!); if (mutations.additions.length > 0 || mutations.removals.length > 0) { @@ -220,7 +226,7 @@ export default class Perspective { return undefined; } } catch (e) { - this.updatePerspectiveState(PerspectiveState.LinkLanguageFailedToInstall); + await this.updatePerspectiveState(PerspectiveState.LinkLanguageFailedToInstall); this.retries++; throw e; } @@ -255,7 +261,7 @@ export default class Perspective { //@ts-ignore private callLinksAdapter(functionName: string, ...args): Promise { if(!this.neighbourhood || !this.neighbourhood.linkLanguage) { - //console.warn("Perspective.callLinksAdapter: Did not find neighbourhood or linkLanguage for neighbourhood on perspective, returning empty array") + console.warn("Perspective.callLinksAdapter: Did not find neighbourhood or linkLanguage for neighbourhood on perspective, returning empty array") return Promise.resolve({ additions: [], removals: [] diff --git a/executor/src/core/PerspectiveContext.ts b/executor/src/core/PerspectiveContext.ts index 292605783..8bf2cbb25 100644 --- a/executor/src/core/PerspectiveContext.ts +++ b/executor/src/core/PerspectiveContext.ts @@ -1,3 +1,4 @@ +import { PerspectiveState } from "@perspect3vism/ad4m" import type AgentService from "./agent/AgentService" import { MainConfig } from "./Config" import type LanguageController from "./LanguageController" @@ -7,4 +8,5 @@ export default class PerspectiveContext { agentService?: AgentService languageController?: LanguageController config?: MainConfig + updateControllersHandleSyncStatus?: (uuid: string, status: PerspectiveState) => void } \ No newline at end of file diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index ad1578975..bb1866a3c 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -16,6 +16,7 @@ export default class PerspectivesController { constructor(rootConfigPath: string, context: PerspectiveContext) { this.#context = context + this.#context.updateControllersHandleSyncStatus = this.updateHandleSyncStatus.bind(this); this.#rootConfigPath = rootConfigPath this.#pubSub = getPubSub(); @@ -31,7 +32,8 @@ export default class PerspectivesController { Object.keys(fileObject).map(k => { let perspectiveHandle = fileObject[k].perspectiveHandle; let createdFromJoin = fileObject[k].createdFromJoin; - console.debug(`PerspectivesController: Found existing perspective "${k}":`, perspectiveHandle) + console.log(`PerspectivesController: Found existing perspective:`); + console.dir(perspectiveHandle, {depth: null}); this.#perspectiveInstances.set(k, new Perspective(perspectiveHandle, this.#context, perspectiveHandle.neighbourhood as Neighbourhood, createdFromJoin, perspectiveHandle.state)) this.#perspectiveHandles.set(k, perspectiveHandle) }) @@ -40,7 +42,7 @@ export default class PerspectivesController { this.#context.languageController!.addLinkObserver(async (diff: PerspectiveDiff, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); if (perspective) { - perspective.populateLocalLinks(diff.additions, diff.removals); + await perspective.populateLocalLinks(diff.additions, diff.removals); try { let perspectivePlain = perspective.plain(); @@ -78,11 +80,16 @@ export default class PerspectivesController { }) this.#context.languageController!.addSyncStateChangeObserver(async (state: PerspectiveState, lang: LanguageRef) => { + console.log("PerspectiveController: sync state change"); + console.dir(state, {depth: null}); let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); let perspectiveHandle = Array.from(this.#perspectiveHandles.values()).find((p) => p.uuid === perspective?.uuid); if (perspective) { + if (perspectiveHandle!.state !== state) { + perspectiveHandle!.state = state; + this.#perspectiveHandles.set(perspectiveHandle!.uuid, perspectiveHandle!); + }; await perspective.updatePerspectiveState(state); - perspectiveHandle!.state = state; } else { console.warn(`Could not find perspective sync state change signal with lang: ${lang}`) } @@ -109,7 +116,8 @@ export default class PerspectivesController { allPerspectiveHandles(): PerspectiveHandle[] { const alluuids = Array.from(this.#perspectiveHandles.values()) - // console.log("ALL perspectiveHandles:", alluuids) + // console.log("ALL perspectiveHandles:"); + // console.dir(alluuids); return alluuids } @@ -161,7 +169,6 @@ export default class PerspectivesController { this.#perspectiveInstances.delete(perspectiveHandle.uuid); existingPerspective = undefined; } - this.#perspectiveInstances.set(perspectiveHandle.uuid, new Perspective(perspectiveHandle, this.#context, neighbourhood, createdFromJoin, state)); this.save() } @@ -195,7 +202,8 @@ export default class PerspectivesController { let perspectiveHandle = new PerspectiveHandle(uuid, name, perspective.state); perspectiveHandle.sharedUrl = perspective.sharedUrl; - this.#perspectiveHandles.set(uuid, perspectiveHandle) + perspectiveHandle.neighbourhood = perspective.neighbourhood; + this.#perspectiveHandles.set(uuid, perspectiveHandle); this.save() const instance = this.#perspectiveInstances.get(uuid) @@ -213,4 +221,13 @@ export default class PerspectivesController { return perspective } + + updateHandleSyncStatus(uuid: string, status: PerspectiveState) { + let perspective = this.#perspectiveHandles.get(uuid); + if (!perspective) { + console.error("PerspectiveController.updateHandleSyncStatus(): could not find perspectiveHandle for uuid:", uuid); + } + perspective!.state = status; + this.#perspectiveHandles.set(uuid, perspective!); + } } diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 802d98d64..c38b9dbcb 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -70,7 +70,8 @@ export default class HolochainService { } async handleCallback(signal: EncodedAppSignal) { - //console.debug(new Date().toISOString(), "GOT CALLBACK FROM HC, checking against language callbacks"); + //console.log(new Date().toISOString(), "GOT CALLBACK FROM HC, checking against language callbacks"); + //console.dir(signal); //@ts-ignore let payload = decode(signal.signal); var TypedArray = Object.getPrototypeOf(Uint8Array); From fe7b13ec2465d0c225c18ac31b51934fe73f7774 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 6 Sep 2023 09:18:00 +0100 Subject: [PATCH 652/722] remove old changes updating language & neighbourhood language to holochain based implementations --- .../language-language/.gitignore | 4 +- .../language-language/adapter.ts | 12 +- bootstrap-languages/language-language/dna.js | 4 - .../language-language/hc-dna/Cargo.lock | 2321 ----------------- .../language-language/hc-dna/Cargo.toml | 11 - .../language-language/hc-dna/build.ps1 | 3 - .../language-language/hc-dna/build.sh | 3 - .../language-language/hc-dna/default.nix | 14 - .../hc-dna/holochain_version.nix | 20 - .../language-language/hc-dna/nix/sources.json | 14 - .../language-language/hc-dna/nix/sources.nix | 174 -- .../hc-dna/tests/download-hc-binaries.sh | 14 - .../language-language/hc-dna/tests/index.ts | 175 -- .../hc-dna/tests/package.json | 26 - .../hc-dna/tests/tsconfig.json | 16 - .../language-language/hc-dna/tests/yarn.lock | 1149 -------- .../language-language/hc-dna/workdir/dna.yaml | 15 - .../hc-dna/zomes/integrity/Cargo.toml | 18 - .../hc-dna/zomes/integrity/src/lib.rs | 49 - .../hc-dna/zomes/language_storage/.gitignore | 1 - .../hc-dna/zomes/language_storage/Cargo.toml | 21 - .../hc-dna/zomes/language_storage/src/lib.rs | 122 - .../zomes/language_storage/src/utils.rs | 26 - .../language-language/index.ts | 6 +- .../language-language/integration.test.cjs | 27 - .../language-language/languageAdapter.ts | 23 +- .../language-language/languageStorage.ts | 100 - .../language-language/putAdapter.ts | 63 - .../language-language/tsconfig.json | 2 +- .../language-language/types.ts | 14 - .../neighbourhood-language/.gitignore | 4 +- .../neighbourhood-language/adapter.ts | 18 +- .../neighbourhood-language/dna.js | 4 - .../neighbourhood-language/hc-dna/Cargo.lock | 2321 ----------------- .../neighbourhood-language/hc-dna/Cargo.toml | 11 - .../neighbourhood-language/hc-dna/build.ps1 | 3 - .../neighbourhood-language/hc-dna/build.sh | 3 - .../neighbourhood-language/hc-dna/default.nix | 14 - .../hc-dna/holochain_version.nix | 20 - .../hc-dna/nix/sources.json | 14 - .../hc-dna/nix/sources.nix | 174 -- .../hc-dna/tests/download-hc-binaries.sh | 14 - .../hc-dna/tests/index.ts | 82 - .../hc-dna/tests/package.json | 26 - .../hc-dna/tests/tsconfig.json | 10 - .../hc-dna/tests/yarn.lock | 1149 -------- .../hc-dna/workdir/dna.yaml | 15 - .../hc-dna/zomes/integrity/Cargo.toml | 18 - .../hc-dna/zomes/integrity/src/lib.rs | 74 - .../zomes/neighbourhood_storage/.gitignore | 1 - .../zomes/neighbourhood_storage/Cargo.toml | 21 - .../zomes/neighbourhood_storage/src/lib.rs | 81 - .../zomes/neighbourhood_storage/src/utils.rs | 26 - .../neighbourhood-language/index.ts | 8 +- .../integration.test.cjs | 24 - .../neighbourhoodStorage.ts | 22 - .../neighbourhood-language/types.ts | 7 - tests/js/bootstrapSeed.json | 2 +- yarn.lock | 683 +++-- 59 files changed, 341 insertions(+), 8955 deletions(-) delete mode 100644 bootstrap-languages/language-language/dna.js delete mode 100644 bootstrap-languages/language-language/hc-dna/Cargo.lock delete mode 100644 bootstrap-languages/language-language/hc-dna/Cargo.toml delete mode 100644 bootstrap-languages/language-language/hc-dna/build.ps1 delete mode 100755 bootstrap-languages/language-language/hc-dna/build.sh delete mode 100644 bootstrap-languages/language-language/hc-dna/default.nix delete mode 100644 bootstrap-languages/language-language/hc-dna/holochain_version.nix delete mode 100644 bootstrap-languages/language-language/hc-dna/nix/sources.json delete mode 100644 bootstrap-languages/language-language/hc-dna/nix/sources.nix delete mode 100755 bootstrap-languages/language-language/hc-dna/tests/download-hc-binaries.sh delete mode 100644 bootstrap-languages/language-language/hc-dna/tests/index.ts delete mode 100644 bootstrap-languages/language-language/hc-dna/tests/package.json delete mode 100644 bootstrap-languages/language-language/hc-dna/tests/tsconfig.json delete mode 100644 bootstrap-languages/language-language/hc-dna/tests/yarn.lock delete mode 100644 bootstrap-languages/language-language/hc-dna/workdir/dna.yaml delete mode 100644 bootstrap-languages/language-language/hc-dna/zomes/integrity/Cargo.toml delete mode 100644 bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs delete mode 100644 bootstrap-languages/language-language/hc-dna/zomes/language_storage/.gitignore delete mode 100644 bootstrap-languages/language-language/hc-dna/zomes/language_storage/Cargo.toml delete mode 100644 bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs delete mode 100644 bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs delete mode 100644 bootstrap-languages/language-language/integration.test.cjs delete mode 100644 bootstrap-languages/language-language/languageStorage.ts delete mode 100644 bootstrap-languages/language-language/types.ts delete mode 100644 bootstrap-languages/neighbourhood-language/dna.js delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/Cargo.lock delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/Cargo.toml delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/build.ps1 delete mode 100755 bootstrap-languages/neighbourhood-language/hc-dna/build.sh delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/default.nix delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/holochain_version.nix delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.json delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.nix delete mode 100755 bootstrap-languages/neighbourhood-language/hc-dna/tests/download-hc-binaries.sh delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/tests/package.json delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/tests/tsconfig.json delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/tests/yarn.lock delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/Cargo.toml delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/.gitignore delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/Cargo.toml delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs delete mode 100644 bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/utils.rs delete mode 100644 bootstrap-languages/neighbourhood-language/integration.test.cjs delete mode 100644 bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts delete mode 100644 bootstrap-languages/neighbourhood-language/types.ts diff --git a/bootstrap-languages/language-language/.gitignore b/bootstrap-languages/language-language/.gitignore index 98b62ef64..b99cc4259 100644 --- a/bootstrap-languages/language-language/.gitignore +++ b/bootstrap-languages/language-language/.gitignore @@ -9,6 +9,4 @@ build/* !rollup.config.js !dna.js -node_modules -.ad4m-test -ad4m-test-0 \ No newline at end of file +node_modules \ No newline at end of file diff --git a/bootstrap-languages/language-language/adapter.ts b/bootstrap-languages/language-language/adapter.ts index bfec111ea..8648912c4 100644 --- a/bootstrap-languages/language-language/adapter.ts +++ b/bootstrap-languages/language-language/adapter.ts @@ -6,11 +6,9 @@ import { PROXY_URL } from "./index.ts"; export default class Adapter implements ExpressionAdapter { putAdapter: PublicSharing; - #DNA: HolochainLanguageDelegate; constructor(context: LanguageContext) { - this.putAdapter = new LanguageStoragePutAdapter(context); - this.#DNA = context.Holochain as HolochainLanguageDelegate; + this.putAdapter = new CloudflarePutAdapter(context); } async get(address: Address): Promise { @@ -39,12 +37,6 @@ export default class Adapter implements ExpressionAdapter { return null; } - const expression = (await storage.getLanguageExpression(address)) as LanguageExpression - - if (!expression) { - return null; - }; - - return expression + return metaObject; } } diff --git a/bootstrap-languages/language-language/dna.js b/bootstrap-languages/language-language/dna.js deleted file mode 100644 index 5eb346fc7..000000000 --- a/bootstrap-languages/language-language/dna.js +++ /dev/null @@ -1,4 +0,0 @@ -import dna from "./hc-dna/workdir/language-language.dna"; - -export const DNA = Buffer.from(dna, "base64"); -export const DNA_NICK = "language-language"; diff --git a/bootstrap-languages/language-language/hc-dna/Cargo.lock b/bootstrap-languages/language-language/hc-dna/Cargo.lock deleted file mode 100644 index 36033b67a..000000000 --- a/bootstrap-languages/language-language/hc-dna/Cargo.lock +++ /dev/null @@ -1,2321 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" -dependencies = [ - "gimli 0.27.1", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" -dependencies = [ - "memchr", -] - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "arrayref" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object 0.30.3", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "blake2b_simd" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bumpalo" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" - -[[package]] -name = "bytecheck" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f" -dependencies = [ - "bytecheck_derive", - "ptr_meta", -] - -[[package]] -name = "bytecheck_derive" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "camino" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.16", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" -dependencies = [ - "iana-time-zone", - "num-integer", - "num-traits", - "serde", - "time", - "winapi", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "corosensei" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" -dependencies = [ - "autocfg", - "cfg-if", - "libc", - "scopeguard", - "windows-sys 0.33.0", -] - -[[package]] -name = "cpufeatures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" -dependencies = [ - "libc", -] - -[[package]] -name = "cranelift-bforest" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" -dependencies = [ - "cranelift-entity", -] - -[[package]] -name = "cranelift-codegen" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" -dependencies = [ - "cranelift-bforest", - "cranelift-codegen-meta", - "cranelift-codegen-shared", - "cranelift-entity", - "gimli 0.26.2", - "log", - "regalloc", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-codegen-meta" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" -dependencies = [ - "cranelift-codegen-shared", -] - -[[package]] -name = "cranelift-codegen-shared" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" - -[[package]] -name = "cranelift-entity" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" - -[[package]] -name = "cranelift-frontend" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" -dependencies = [ - "cranelift-codegen", - "log", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset 0.7.1", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "cxx" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "darling" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn", -] - -[[package]] -name = "digest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" - -[[package]] -name = "enum-iterator" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" -dependencies = [ - "enum-iterator-derive", -] - -[[package]] -name = "enum-iterator-derive" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "enumset" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753" -dependencies = [ - "enumset_derive", -] - -[[package]] -name = "enumset_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "fastrand" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "gcollections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377" -dependencies = [ - "bit-set", - "num-integer", - "num-traits", - "trilean", -] - -[[package]] -name = "generic-array" -version = "0.14.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "gimli" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" -dependencies = [ - "fallible-iterator", - "indexmap", - "stable_deref_trait", -] - -[[package]] -name = "gimli" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221996f774192f0f718773def8201c4ae31f02616a54ccfc2d358bb0e5cefdec" - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash", -] - -[[package]] -name = "hdi" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8046116c32434837d28ad1b443802e2444a38d8cdb69caca9169414364fe0b69" -dependencies = [ - "hdk_derive", - "holo_hash", - "holochain_integrity_types", - "holochain_wasmer_guest", - "paste", - "serde", - "serde_bytes", - "tracing", - "tracing-core", -] - -[[package]] -name = "hdk" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cbecb374a53eba516cbfefaad21f4bc805f4c731b81bd800a9a9e0239004eb3" -dependencies = [ - "getrandom", - "hdi", - "hdk_derive", - "holo_hash", - "holochain_wasmer_guest", - "holochain_zome_types", - "paste", - "serde", - "serde_bytes", - "thiserror", - "tracing", - "tracing-core", -] - -[[package]] -name = "hdk_derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8eade453438a832944ab3f4006482f6bb5693997ff58e3049f23a8f8c617a4" -dependencies = [ - "darling", - "heck", - "holochain_integrity_types", - "paste", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "holo_hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cffb2fb9ce1d2ce4c98d4cc9d625ddb92f6982f47094ed2e36fa93f5a096f36" -dependencies = [ - "base64", - "blake2b_simd", - "derive_more", - "holochain_serialized_bytes", - "kitsune_p2p_dht_arc", - "serde", - "serde_bytes", - "thiserror", -] - -[[package]] -name = "holochain_integrity_types" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0630a221701e40ddf0fb369ead8eb6e18e3ec84241b3c77f803ea137930017b" -dependencies = [ - "holo_hash", - "holochain_serialized_bytes", - "kitsune_p2p_timestamp", - "paste", - "serde", - "serde_bytes", - "subtle", - "tracing", -] - -[[package]] -name = "holochain_serialized_bytes" -version = "0.0.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" -dependencies = [ - "holochain_serialized_bytes_derive", - "rmp-serde", - "serde", - "serde-transcode", - "serde_bytes", - "serde_json", - "thiserror", -] - -[[package]] -name = "holochain_serialized_bytes_derive" -version = "0.0.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "holochain_wasmer_common" -version = "0.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" -dependencies = [ - "holochain_serialized_bytes", - "serde", - "serde_bytes", - "test-fuzz", - "thiserror", - "wasmer", - "wasmer-engine", -] - -[[package]] -name = "holochain_wasmer_guest" -version = "0.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" -dependencies = [ - "holochain_serialized_bytes", - "holochain_wasmer_common", - "parking_lot", - "paste", - "serde", - "tracing", -] - -[[package]] -name = "holochain_zome_types" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df99af259b89d8309121d2a81852f8e468dc587332ce59a93130f4e1149758b4" -dependencies = [ - "holo_hash", - "holochain_integrity_types", - "holochain_serialized_bytes", - "holochain_wasmer_common", - "kitsune_p2p_timestamp", - "paste", - "serde", - "serde_bytes", - "subtle", - "thiserror", - "tracing", -] - -[[package]] -name = "home" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" -dependencies = [ - "winapi", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "winapi", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" -dependencies = [ - "cxx", - "cxx-build", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "if_chain" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" - -[[package]] -name = "indexmap" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "integrity" -version = "0.1.0" -dependencies = [ - "chrono", - "derive_more", - "hdi", - "hdk", - "holo_hash", - "serde", -] - -[[package]] -name = "intervallum" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1" -dependencies = [ - "bit-set", - "gcollections", - "num-integer", - "num-traits", - "trilean", -] - -[[package]] -name = "itoa" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" - -[[package]] -name = "js-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "kitsune_p2p_dht_arc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" -dependencies = [ - "derive_more", - "gcollections", - "intervallum", - "num-traits", - "serde", -] - -[[package]] -name = "kitsune_p2p_timestamp" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" -dependencies = [ - "chrono", - "derive_more", - "serde", -] - -[[package]] -name = "language_storage" -version = "0.1.0" -dependencies = [ - "chrono", - "derive_more", - "hdk", - "holo_hash", - "integrity", - "lazy_static", - "serde", - "sha2", - "thiserror", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "libc" -version = "0.2.139" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" - -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - -[[package]] -name = "link-cplusplus" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "loupe" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" -dependencies = [ - "indexmap", - "loupe-derive", - "rustversion", -] - -[[package]] -name = "loupe-derive" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memmap2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - -[[package]] -name = "more-asserts" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "object" -version = "0.28.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" -dependencies = [ - "crc32fast", - "hashbrown 0.11.2", - "indexmap", - "memchr", -] - -[[package]] -name = "object" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys 0.45.0", -] - -[[package]] -name = "paste" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" - -[[package]] -name = "pest" -version = "2.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" -dependencies = [ - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "ptr_meta" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "quote" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rayon" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "num_cpus", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regalloc" -version = "0.0.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" -dependencies = [ - "log", - "rustc-hash", - "smallvec", -] - -[[package]] -name = "regex" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" - -[[package]] -name = "region" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" -dependencies = [ - "bitflags", - "libc", - "mach", - "winapi", -] - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "rend" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95" -dependencies = [ - "bytecheck", -] - -[[package]] -name = "rkyv" -version = "0.7.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15" -dependencies = [ - "bytecheck", - "hashbrown 0.12.3", - "ptr_meta", - "rend", - "rkyv_derive", - "seahash", -] - -[[package]] -name = "rkyv_derive" -version = "0.7.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "rmp" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.16", -] - -[[package]] -name = "rustversion" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" - -[[package]] -name = "ryu" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" - -[[package]] -name = "seahash" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-transcode" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_bytes" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - -[[package]] -name = "subprocess" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "syn" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "target-lexicon" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" - -[[package]] -name = "tempfile" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" -dependencies = [ - "cfg-if", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "test-fuzz" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125df852011c4f8f31df5620f4aea38ecddb5dfb4d9bc569b30485b15ffc3d4e" -dependencies = [ - "serde", - "test-fuzz-internal", - "test-fuzz-macro", - "test-fuzz-runtime", -] - -[[package]] -name = "test-fuzz-internal" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" -dependencies = [ - "cargo_metadata", - "proc-macro2", - "quote", - "serde", - "strum_macros", -] - -[[package]] -name = "test-fuzz-macro" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "856bbca0314c328004691b9c0639fb198ca764d1ce0e20d4dd8b78f2697c2a6f" -dependencies = [ - "darling", - "if_chain", - "lazy_static", - "proc-macro2", - "quote", - "subprocess", - "syn", - "test-fuzz-internal", - "toolchain_find", - "unzip-n", -] - -[[package]] -name = "test-fuzz-runtime" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "303774eb17994c2ddb59c460369f4c3a55496f013380278d78eeebd2deb896ac" -dependencies = [ - "bincode", - "hex", - "num-traits", - "serde", - "sha-1", - "test-fuzz-internal", -] - -[[package]] -name = "thiserror" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "toolchain_find" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" -dependencies = [ - "home", - "lazy_static", - "regex", - "semver 0.11.0", - "walkdir", -] - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "trilean" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "ucd-trie" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" - -[[package]] -name = "unicode-ident" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" - -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - -[[package]] -name = "unzip-n" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" - -[[package]] -name = "wasm-encoder" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c3e4bc09095436c8e7584d86d33e6c3ee67045af8fb262cbb9cc321de553428" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasmer" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" -dependencies = [ - "cfg-if", - "indexmap", - "js-sys", - "loupe", - "more-asserts", - "target-lexicon", - "thiserror", - "wasm-bindgen", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-compiler-cranelift", - "wasmer-derive", - "wasmer-engine", - "wasmer-engine-dylib", - "wasmer-engine-universal", - "wasmer-types", - "wasmer-vm", - "wat", - "winapi", -] - -[[package]] -name = "wasmer-artifact" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" -dependencies = [ - "enumset", - "loupe", - "thiserror", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-compiler" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" -dependencies = [ - "enumset", - "loupe", - "rkyv", - "serde", - "serde_bytes", - "smallvec", - "target-lexicon", - "thiserror", - "wasmer-types", - "wasmparser", -] - -[[package]] -name = "wasmer-compiler-cranelift" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" -dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "gimli 0.26.2", - "loupe", - "more-asserts", - "rayon", - "smallvec", - "target-lexicon", - "tracing", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-derive" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "wasmer-engine" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" -dependencies = [ - "backtrace", - "enumset", - "lazy_static", - "loupe", - "memmap2", - "more-asserts", - "rustc-demangle", - "serde", - "serde_bytes", - "target-lexicon", - "thiserror", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-types", - "wasmer-vm", -] - -[[package]] -name = "wasmer-engine-dylib" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" -dependencies = [ - "cfg-if", - "enum-iterator", - "enumset", - "leb128", - "libloading", - "loupe", - "object 0.28.4", - "rkyv", - "serde", - "tempfile", - "tracing", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-engine", - "wasmer-object", - "wasmer-types", - "wasmer-vm", - "which", -] - -[[package]] -name = "wasmer-engine-universal" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" -dependencies = [ - "cfg-if", - "enumset", - "leb128", - "loupe", - "region", - "rkyv", - "wasmer-compiler", - "wasmer-engine", - "wasmer-engine-universal-artifact", - "wasmer-types", - "wasmer-vm", - "winapi", -] - -[[package]] -name = "wasmer-engine-universal-artifact" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" -dependencies = [ - "enum-iterator", - "enumset", - "loupe", - "rkyv", - "thiserror", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-object" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" -dependencies = [ - "object 0.28.4", - "thiserror", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-types" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" -dependencies = [ - "backtrace", - "enum-iterator", - "indexmap", - "loupe", - "more-asserts", - "rkyv", - "serde", - "thiserror", -] - -[[package]] -name = "wasmer-vm" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" -dependencies = [ - "backtrace", - "cc", - "cfg-if", - "corosensei", - "enum-iterator", - "indexmap", - "lazy_static", - "libc", - "loupe", - "mach", - "memoffset 0.6.5", - "more-asserts", - "region", - "rkyv", - "scopeguard", - "serde", - "thiserror", - "wasmer-artifact", - "wasmer-types", - "winapi", -] - -[[package]] -name = "wasmparser" -version = "0.83.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" - -[[package]] -name = "wast" -version = "53.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8244fa24196b1d8fd3ca4a96a3a164c40f846498c5deab6caf414c67340ca4af" -dependencies = [ - "leb128", - "memchr", - "unicode-width", - "wasm-encoder", -] - -[[package]] -name = "wat" -version = "1.0.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4620f1059add6dad511decb9d5d88b4a0a0d3e2e315ed34f79b0dc0dce18aa4b" -dependencies = [ - "wast", -] - -[[package]] -name = "which" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" -dependencies = [ - "either", - "libc", - "once_cell", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" -dependencies = [ - "windows_aarch64_msvc 0.33.0", - "windows_i686_gnu 0.33.0", - "windows_i686_msvc 0.33.0", - "windows_x86_64_gnu 0.33.0", - "windows_x86_64_msvc 0.33.0", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" - -[[package]] -name = "windows_i686_gnu" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" - -[[package]] -name = "windows_i686_msvc" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" diff --git a/bootstrap-languages/language-language/hc-dna/Cargo.toml b/bootstrap-languages/language-language/hc-dna/Cargo.toml deleted file mode 100644 index d7e06db86..000000000 --- a/bootstrap-languages/language-language/hc-dna/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[workspace] -members = [ - "zomes/integrity", - "zomes/language_storage" -] - -[profile.dev] -opt-level = "z" - -[profile.release] -opt-level = "z" \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/build.ps1 b/bootstrap-languages/language-language/hc-dna/build.ps1 deleted file mode 100644 index e7bcb228e..000000000 --- a/bootstrap-languages/language-language/hc-dna/build.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -$env:CARGO_TARGET_DIR = target -cargo build --release --target wasm32-unknown-unknown -hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/build.sh b/bootstrap-languages/language-language/hc-dna/build.sh deleted file mode 100755 index a089cc772..000000000 --- a/bootstrap-languages/language-language/hc-dna/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown -hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/default.nix b/bootstrap-languages/language-language/hc-dna/default.nix deleted file mode 100644 index 33f97a914..000000000 --- a/bootstrap-languages/language-language/hc-dna/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -let - holonixPath = (import ./nix/sources.nix).holonix; # points to the current state of the Holochain repository - holonix = import (holonixPath) { - holochainVersionId = "main"; - }; - nixpkgs = holonix.pkgs; -in nixpkgs.mkShell { - inputsFrom = [ holonix.main ]; - packages = with nixpkgs; [ - binaryen - nodejs-16_x - swiProlog - ]; -} \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/holochain_version.nix b/bootstrap-languages/language-language/hc-dna/holochain_version.nix deleted file mode 100644 index 9f44831c8..000000000 --- a/bootstrap-languages/language-language/hc-dna/holochain_version.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated with the following command: -# update-holochain-versions --git-src=revision:holochain-0.0.161 --lair-version-req=~0.2 --output-file=holochain_version.nix -# For usage instructions please visit https://github.com/holochain/holochain-nixpkgs/#readme - -{ - url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; - sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; - cargoLock = { - outputHashes = { - }; - }; - - binsFilter = [ - "holochain" - "hc" - "kitsune-p2p-proxy" - "kitsune-p2p-tx2-proxy" - ]; -} diff --git a/bootstrap-languages/language-language/hc-dna/nix/sources.json b/bootstrap-languages/language-language/hc-dna/nix/sources.json deleted file mode 100644 index 451563814..000000000 --- a/bootstrap-languages/language-language/hc-dna/nix/sources.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "holonix": { - "branch": "main", - "description": "NixOS && Holochain", - "homepage": "", - "owner": "holochain", - "repo": "holonix", - "rev": "241c1754a37881f51f2f33921a2777b38c34fa24", - "sha256": "sha256:0zaa477kyzpsrcc3nk1jznp4gchwm4pk5p37pwkq6mjhiizcxshy", - "type": "tarball", - "url": "https://github.com/holochain/holonix/archive/241c1754a37881f51f2f33921a2777b38c34fa24.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - } -} \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/nix/sources.nix b/bootstrap-languages/language-language/hc-dna/nix/sources.nix deleted file mode 100644 index fe2468872..000000000 --- a/bootstrap-languages/language-language/hc-dna/nix/sources.nix +++ /dev/null @@ -1,174 +0,0 @@ -# This file has been generated by Niv. - -let - - # - # The fetchers. fetch_ fetches specs of type . - # - - fetch_file = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchurl { inherit (spec) url sha256; name = name'; } - else - pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; - - fetch_tarball = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchTarball { name = name'; inherit (spec) url sha256; } - else - pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; - - fetch_git = name: spec: - let - ref = - if spec ? ref then spec.ref else - if spec ? branch then "refs/heads/${spec.branch}" else - if spec ? tag then "refs/tags/${spec.tag}" else - abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; - in - builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; - - fetch_local = spec: spec.path; - - fetch_builtin-tarball = name: throw - ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=tarball -a builtin=true''; - - fetch_builtin-url = name: throw - ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=file -a builtin=true''; - - # - # Various helpers - # - - # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 - sanitizeName = name: - ( - concatMapStrings (s: if builtins.isList s then "-" else s) - ( - builtins.split "[^[:alnum:]+._?=-]+" - ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) - ) - ); - - # The set of packages used when specs are fetched using non-builtins. - mkPkgs = sources: system: - let - sourcesNixpkgs = - import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; - hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; - hasThisAsNixpkgsPath = == ./.; - in - if builtins.hasAttr "nixpkgs" sources - then sourcesNixpkgs - else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then - import {} - else - abort - '' - Please specify either (through -I or NIX_PATH=nixpkgs=...) or - add a package called "nixpkgs" to your sources.json. - ''; - - # The actual fetching function. - fetch = pkgs: name: spec: - - if ! builtins.hasAttr "type" spec then - abort "ERROR: niv spec ${name} does not have a 'type' attribute" - else if spec.type == "file" then fetch_file pkgs name spec - else if spec.type == "tarball" then fetch_tarball pkgs name spec - else if spec.type == "git" then fetch_git name spec - else if spec.type == "local" then fetch_local spec - else if spec.type == "builtin-tarball" then fetch_builtin-tarball name - else if spec.type == "builtin-url" then fetch_builtin-url name - else - abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; - - # If the environment variable NIV_OVERRIDE_${name} is set, then use - # the path directly as opposed to the fetched source. - replace = name: drv: - let - saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name; - ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; - in - if ersatz == "" then drv else - # this turns the string into an actual Nix path (for both absolute and - # relative paths) - if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; - - # Ports of functions for older nix versions - - # a Nix version of mapAttrs if the built-in doesn't exist - mapAttrs = builtins.mapAttrs or ( - f: set: with builtins; - listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) - ); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 - range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 - stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 - stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); - concatMapStrings = f: list: concatStrings (map f list); - concatStrings = builtins.concatStringsSep ""; - - # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 - optionalAttrs = cond: as: if cond then as else {}; - - # fetchTarball version that is compatible between all the versions of Nix - builtins_fetchTarball = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchTarball; - in - if lessThan nixVersion "1.12" then - fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) - else - fetchTarball attrs; - - # fetchurl version that is compatible between all the versions of Nix - builtins_fetchurl = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchurl; - in - if lessThan nixVersion "1.12" then - fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) - else - fetchurl attrs; - - # Create the final "sources" from the config - mkSources = config: - mapAttrs ( - name: spec: - if builtins.hasAttr "outPath" spec - then abort - "The values in sources.json should not have an 'outPath' attribute" - else - spec // { outPath = replace name (fetch config.pkgs name spec); } - ) config.sources; - - # The "config" used by the fetchers - mkConfig = - { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null - , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile) - , system ? builtins.currentSystem - , pkgs ? mkPkgs sources system - }: rec { - # The sources, i.e. the attribute set of spec name to spec - inherit sources; - - # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers - inherit pkgs; - }; - -in -mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/tests/download-hc-binaries.sh b/bootstrap-languages/language-language/hc-dna/tests/download-hc-binaries.sh deleted file mode 100755 index e78e813ec..000000000 --- a/bootstrap-languages/language-language/hc-dna/tests/download-hc-binaries.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" - -if [ ! -f "./hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 - mv hc-linux-0.1.0 ./hc - chmod +x ./hc -fi - -if [ ! -f "./holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 - mv holochain-linux-0.1.0 ./holochain - chmod +x ./holochain -fi \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/tests/index.ts b/bootstrap-languages/language-language/hc-dna/tests/index.ts deleted file mode 100644 index 3af7fd648..000000000 --- a/bootstrap-languages/language-language/hc-dna/tests/index.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { CallableCell, runScenario, Scenario } from "@holochain/tryorama"; -import test from "tape-promise/tape.js"; -import path from "path"; -import { resolve } from "path"; -import { LanguageStorage } from "../../languageStorage"; -import { Blob } from "buffer"; - -const dnas = [{ source: {path: path.join("../workdir/language-laguage.dna") } }]; - -function sleep(ms: number) { - return new Promise(resolve => setTimeout(resolve, ms)); -} - -test("Share 1MB between Alice and Bob", async (t) => { - await runScenario(async (scenario: Scenario) => { - const alice = await scenario.addPlayerWithApp({ - bundle: { - manifest: { - manifest_version: "1", - name: "language-laguage", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - }); - - const bob = await scenario.addPlayerWithApp({ - bundle: { - manifest: { - manifest_version: "1", - name: "language-laguage", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - }); - - console.log("Sharing all agents") - await scenario.shareAllAgents(); - - - const aliceClient = new LanguageStorage((fn_name, payload) => alice.cells[0].callZome({zome_name: "language_storage", fn_name, payload})); - const bobClient = new LanguageStorage((fn_name, payload) => bob.cells[0].callZome({zome_name: "language_storage", fn_name, payload})); - - - let randomNumbers:number[] = []; - for(let i = 0; i < 1000000; i++) { - randomNumbers.push(Math.floor(Math.random() * 1000)); - } - const buf = Buffer.from(randomNumbers); - const blobUp = new Blob([buf]) - - console.log("Uploading language...") - const hashes = await aliceClient.upload(blobUp); - console.log("Done") - console.log("Got hashes", hashes) - console.log("Waiting 3 second...") - await new Promise(resolve => setTimeout(resolve, 3000)) - console.log("Done") - console.log("Downloading language...") - const blobDown = await bobClient.download(hashes); - t.equal(blobDown.size, buf.length); - - // compare the contents of the blobs - // @ts-ignore - const bufDown = Buffer.from(await blobDown.arrayBuffer()); - const bufUp = Buffer.from(await blobUp.arrayBuffer()); - t.assert(bufUp.compare(bufDown) == 0) - - await scenario.shutDown() - }) -}) - - -test("Share full FileExpression between Alice and Bob", async (t) => { - await runScenario(async (scenario: Scenario) => { - const alice = await scenario.addPlayerWithApp({ - bundle: { - manifest: { - manifest_version: "1", - name: "language-laguage", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - }); - - const bob = await scenario.addPlayerWithApp({ - bundle: { - manifest: { - manifest_version: "1", - name: "language-laguage", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - }); - - console.log("Sharing all agents") - await scenario.shareAllAgents(); - - - const aliceClient = new LanguageStorage((fn_name, payload) => alice.cells[0].callZome({zome_name: "language_storage", fn_name, payload})); - const bobClient = new LanguageStorage((fn_name, payload) => bob.cells[0].callZome({zome_name: "language_storage", fn_name, payload})); - - - let randomNumbers:number[] = []; - for(let i = 0; i < 1000000; i++) { - randomNumbers.push(Math.floor(Math.random() * 1000)); - } - const buf = Buffer.from(randomNumbers); - const blobUp = new Blob([buf]) - - const hashes = await aliceClient.upload(blobUp); - const fileMetadata = { - name: "test.txt", - size: buf.length, - file_type: "text/plain", - chunks_hashes: hashes - } - - const fileExpression = { - author: "did:test:alice", - timestamp: new Date().toISOString(), - data: fileMetadata, - proof: { - signature: "1234", - key: "1234" - } - } - - const fileExpressionAddr = await aliceClient.storeLanguageExpression(fileExpression) - - await new Promise(resolve => setTimeout(resolve, 3000)) - - const fileExpressionDown = await bobClient.getLanguageExpression(fileExpressionAddr) - t.deepEqual(fileExpressionDown, fileExpression) - - const blobDown = await bobClient.download(fileExpression.data.chunks_hashes); - t.equal(blobDown.size, buf.length); - - // compare the contents of the blobs - // @ts-ignore - const bufDown = Buffer.from(await blobDown.arrayBuffer()); - const bufUp = Buffer.from(await blobUp.arrayBuffer()); - t.assert(bufUp.compare(bufDown) == 0) - - await scenario.shutDown(); - - }) - }) diff --git a/bootstrap-languages/language-language/hc-dna/tests/package.json b/bootstrap-languages/language-language/hc-dna/tests/package.json deleted file mode 100644 index 36257fbce..000000000 --- a/bootstrap-languages/language-language/hc-dna/tests/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "file-storage-test", - "version": "1.0.0", - "main": "index.js", - "type": "module", - "license": "MIT", - "dependencies": { - "@holochain/client": "^0.12.0", - "@holochain/tryorama": "^0.11.1", - "tape-promise": "^4.0.0", - "ts-node": "^10.8.0", - "@types/node": "^14.0.14", - "typescript": "^4.2.4" - }, - "devDependencies": { - "@types/faker": "^5.5.3", - "@types/tape-promise": "^4.0.1", - "tape": "^5.5.3", - "blob-compare": "^1.1.0" - }, - "scripts": { - "build": "cd .. && ./build.sh", - "build-ci": "cd ../ && CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown && ./tests/hc dna pack workdir && cd ./tests", - "test": "TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node index.ts" - } -} diff --git a/bootstrap-languages/language-language/hc-dna/tests/tsconfig.json b/bootstrap-languages/language-language/hc-dna/tests/tsconfig.json deleted file mode 100644 index 3725a409f..000000000 --- a/bootstrap-languages/language-language/hc-dna/tests/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "compilerOptions": { - "module": "ESNext", - "target": "ESNext", - "moduleResolution": "Node", - "sourceMap": true, - "declaration": true, - "forceConsistentCasingInFileNames": true, - "allowSyntheticDefaultImports": true, - "skipLibCheck": true, - "strict": true - }, - "include": [ - "ts/**/*" - ] - } \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/tests/yarn.lock b/bootstrap-languages/language-language/hc-dna/tests/yarn.lock deleted file mode 100644 index 578e78d80..000000000 --- a/bootstrap-languages/language-language/hc-dna/tests/yarn.lock +++ /dev/null @@ -1,1149 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - -"@holochain/client@^0.12.0": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" - integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/serialization@^0.1.0-beta-rc.3": - version "0.1.0-beta-rc.3" - resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" - integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== - -"@holochain/tryorama@^0.11.1": - version "0.11.2" - resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.2.tgz#abd18097cac08a352c846b2c5af852a03104f5b3" - integrity sha512-RCi7QtGejpzfGIx1EKyTX+QnkooGaUAY0TiFHDc5uamCvNNX1Ya6Esgvyrt2zpO5YBUUrSbdbB1gBB3a8bwr7A== - dependencies: - "@holochain/client" "^0.12.0" - get-port "^6.1.2" - lodash "^4.17.21" - uuid "^8.3.2" - winston "^3.8.2" - ws "^8.11.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@msgpack/msgpack@^2.7.2": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" - integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== - -"@tauri-apps/api@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.3.0.tgz#d0c853ab2cc7506bd826c5f7f260c67c7c15def5" - integrity sha512-AH+3FonkKZNtfRtGrObY38PrzEj4d+1emCbwNGu0V2ENbXjlLHMZQlUh+Bhu/CRmjaIwZMGJ3yFvWaZZgTHoog== - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/faker@^5.5.3": - version "5.5.9" - resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" - integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== - -"@types/node@*": - version "20.2.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" - integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== - -"@types/node@^14.0.14": - version "14.18.48" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.48.tgz#ee5c7ac6e38fd2a9e6885f15c003464cf2da343c" - integrity sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg== - -"@types/tape-promise@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/tape-promise/-/tape-promise-4.0.1.tgz#a72fa8d2d5351704d651b174931ecc8f996e68ca" - integrity sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg== - dependencies: - "@types/tape" "*" - -"@types/tape@*": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@types/tape/-/tape-5.6.0.tgz#d8bc031c3cac16a3df9d7865843db78af1e1c56e" - integrity sha512-yt27qxGg45IVJ0i2PdbYopND9d4eaXwne/jpi0saYb7PHYu8ZYaQB+cADjj+YZkZZjCM4rnhMPYFGd6+M8sWKg== - dependencies: - "@types/node" "*" - "@types/through" "*" - -"@types/through@*": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" - integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg== - dependencies: - "@types/node" "*" - -"@types/triple-beam@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8" - integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array.prototype.every@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.4.tgz#2762daecd9cec87cb63f3ca6be576817074a684e" - integrity sha512-Aui35iRZk1HHLRAyF7QP0KAnOnduaQ6fo6k1NVWfRc0xTs2AZ70ytlXvOmkC6Di4JmUs2Wv3DYzGtCQFSk5uGg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - is-string "^1.0.7" - -async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -blob-compare@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/blob-compare/-/blob-compare-1.1.0.tgz#bb26f66f4795b57f1cfc8de48b89af42ae14c72f" - integrity sha512-2IAxmSdPgS91n9COyZz2G2ZwG/9ALrcgyCW12E50YMuJ5YR/BaEI2AidK6t0HwuZ1ODsXgD9gmrHrhpQlDCMoA== - dependencies: - webworker-promise "^0.4.2" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -deep-equal@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" - integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.0" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -defined@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" - integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dotignore@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -emittery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" - integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== - -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" - integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== - dependencies: - array-buffer-byte-length "^1.0.0" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.3" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2, functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-port@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" - integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -glob@^7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-dynamic-import@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" - integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.4, internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.9.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isomorphic-ws@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" - integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - -js-base64@^3.7.3: - version "3.7.5" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" - integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== - -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - -lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -logform@^2.3.2, logform@^2.4.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b" - integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== - dependencies: - "@colors/colors" "1.5.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== - dependencies: - mimic-fn "^1.0.0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - functions-have-names "^1.2.3" - -resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resumer@^0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== - dependencies: - through "~2.3.4" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tape-promise@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tape-promise/-/tape-promise-4.0.0.tgz#c1f3553959b2e9d64b1546e7276b8a017c616897" - integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== - dependencies: - is-promise "^2.1.0" - onetime "^2.0.0" - -tape@^5.5.3: - version "5.6.3" - resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.3.tgz#0d3cc82f96b0906f73b0981df1a38a44fec7901d" - integrity sha512-cUDDGSbyoSIpdUAqbqLI/r7i/S4BHuCB9M5j7E/LrLs/x/i4zeAJ798aqo+FGo+kr9seBZwr8AkZW6rjceyAMQ== - dependencies: - array.prototype.every "^1.1.4" - call-bind "^1.0.2" - deep-equal "^2.2.0" - defined "^1.0.1" - dotignore "^0.1.2" - for-each "^0.3.3" - get-package-type "^0.1.0" - glob "^7.2.3" - has "^1.0.3" - has-dynamic-import "^2.0.1" - inherits "^2.0.4" - is-regex "^1.1.4" - minimist "^1.2.7" - object-inspect "^1.12.3" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - resolve "^2.0.0-next.4" - resumer "^0.0.0" - string.prototype.trim "^1.2.7" - through "^2.3.8" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - -through@^2.3.8, through@~2.3.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -triple-beam@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" - integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== - -ts-node@^10.8.0: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typescript@^4.2.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -webworker-promise@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/webworker-promise/-/webworker-promise-0.4.4.tgz#722b0ccade10ccb4e810325e5ebff00eb0e1b1be" - integrity sha512-NfdSlaWqd+0iSrQudB0N0MELfJ9TVTlynhXMpi06piuZhyc9Yy7Hz6BFu2HUkvIb9lCS0pFW42ptd/JnXVnptg== - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -winston-transport@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" - integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.8.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.9.0.tgz#2bbdeb8167a75fac6d9a0c6d002890cd908016c2" - integrity sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ== - dependencies: - "@colors/colors" "1.5.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.5.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^8.11.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/bootstrap-languages/language-language/hc-dna/workdir/dna.yaml b/bootstrap-languages/language-language/hc-dna/workdir/dna.yaml deleted file mode 100644 index 5bd3bd53b..000000000 --- a/bootstrap-languages/language-language/hc-dna/workdir/dna.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -manifest_version: '1' -name: language-language - -integrity: - network_seed: 00000000-0000-0000-0000-000000000000 - properties: null - origin_time: 2023-02-07T14:37:17.497352Z - zomes: - - name: integrity - bundled: ../target/wasm32-unknown-unknown/release/integrity.wasm -coordinator: - zomes: - - name: language_storage - bundled: ../target/wasm32-unknown-unknown/release/language_storage.wasm \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/language-language/hc-dna/zomes/integrity/Cargo.toml deleted file mode 100644 index 8a860b176..000000000 --- a/bootstrap-languages/language-language/hc-dna/zomes/integrity/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "integrity" -version = "0.1.0" -edition = "2021" - -[lib] -crate-type = ["cdylib", "rlib"] -name = "integrity" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -derive_more = "0" -serde = "1" -chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.1.0" -hdi = "0.2.0" -hdk = "0.1.0" diff --git a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs deleted file mode 100644 index 3d628abc1..000000000 --- a/bootstrap-languages/language-language/hc-dna/zomes/integrity/src/lib.rs +++ /dev/null @@ -1,49 +0,0 @@ -use chrono::{DateTime, Utc}; -use hdi::prelude::*; - -#[hdk_entry_helper] -pub struct LanguageChunk(SerializedBytes); - -#[hdk_entry_helper] -pub struct LanguageAddress(pub String); - -#[hdk_entry_helper] -pub struct LanguageMetadata { - pub name: String, - pub description: String, - pub address: String, - pub size: usize, - pub chunks_hashes: Vec, -} - -#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq)] -pub struct ExpressionProof { - pub signature: String, - pub key: String, -} - -#[hdk_entry_helper] -pub struct LanguageExpression { - pub author: String, - pub proof: ExpressionProof, - pub timestamp: DateTime, - pub data: LanguageMetadata, -} - -#[hdk_entry_defs] -#[unit_enum(UnitEntryTypes)] -pub enum EntryTypes { - #[entry_def(visibility = "public")] - LanguageExpression(LanguageExpression), - - #[entry_def(visibility = "public")] - LanguageChunk(LanguageChunk), - - #[entry_def(visibility = "public")] - LanguageAddress(LanguageAddress), -} - -#[hdk_link_types] -pub enum LinkTypes { - LanguageLink, -} \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/.gitignore b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/.gitignore deleted file mode 100644 index ea8c4bf7f..000000000 --- a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/Cargo.toml b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/Cargo.toml deleted file mode 100644 index ae6e2a5f1..000000000 --- a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/Cargo.toml +++ /dev/null @@ -1,21 +0,0 @@ -[package] -name = "language_storage" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[lib] -crate-type = ["cdylib", "rlib"] -name = "language_storage" - -[dependencies] -derive_more = "0" -serde = "1" -lazy_static = "*" -chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -thiserror = "1.0.20" -integrity = { path = "../integrity" } -sha2 = "0.10.5" -hdk = "0.1.0" -holo_hash = "0.1.0" \ No newline at end of file diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs deleted file mode 100644 index bac68f093..000000000 --- a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/lib.rs +++ /dev/null @@ -1,122 +0,0 @@ -use chrono::{DateTime, NaiveDateTime, Utc}; -use hdk::prelude::*; -use integrity::{EntryTypes, LanguageChunk, LanguageExpression, LinkTypes, LanguageAddress}; -mod utils; -use utils::{err, get_oldest_link}; - -#[hdk_extern] -fn init(_: ()) -> ExternResult { - Ok(InitCallbackResult::Pass) -} - -pub fn get_now() -> DateTime { - match sys_time() { - Ok(time) => { - let now = time.as_seconds_and_nanos(); - let out = DateTime::::from_utc( - NaiveDateTime::from_timestamp_opt(now.0, now.1).unwrap(), - Utc, - ); - out - } - Err(_err) => Utc::now(), - } -} - -#[hdk_extern] -pub fn store_language_expression(expression: LanguageExpression) -> ExternResult<()> { - let address = EntryTypes::LanguageAddress(LanguageAddress(expression.data.address.clone())); - let address_hash = hash_entry(&address)?; - - let found_expression = get_language_expression(LanguageAddress(expression.data.address.clone())); - - match found_expression { - Ok(Some(expression)) => { - Err(err(format!("An language with same address was found {:?}", expression).as_ref())) - } - Ok(None) => { - let language_expression = EntryTypes::LanguageExpression(expression); - let language_expression_hash = hash_entry(&language_expression)?; - create_entry(&language_expression)?; - - //Link profile entry to did - create_link( - address_hash, - language_expression_hash, - LinkTypes::LanguageLink, - LinkTag::from("".as_bytes().to_owned()), - )?; - - Ok(()) - } - Err(error) => { - Err(err(format!("Error: {}", error).as_ref())) - } - } -} - -#[hdk_extern] -pub fn store_chunk(file_chunk: LanguageChunk) -> ExternResult { - let file_chunk_hash = hash_entry(&file_chunk)?; - - if let None = get(file_chunk_hash.clone(), GetOptions::default())? { - create_entry(&EntryTypes::LanguageChunk(file_chunk))?; - } - - Ok(file_chunk_hash) -} - -#[hdk_extern] -pub fn get_language_expression( - file_expression_hash: LanguageAddress, -) -> ExternResult> { - let expression_links = get_oldest_link( - hash_entry(file_expression_hash)?, - Some(LinkTag::from("".as_bytes().to_owned())), - ) - .map_err(|error| err(format!("{}", error).as_ref()))?; - - match expression_links { - Some(link) => { - match get( - link.target - .into_entry_hash() - .expect("could not get action hash"), - GetOptions::default(), - ) - .map_err(|error| err(format!("{}", error).as_ref()))? - { - Some(elem) => { - let exp_data: LanguageExpression = elem - .entry() - .to_app_option() - .map_err(|sb_err| err(&format!("{}", sb_err)))? - .ok_or(err( - "Could not deserialize link expression data into Profile type", - ))?; - Ok(Some(exp_data)) - } - None => Ok(None), - } - } - None => Ok(None), - } -} - -#[hdk_extern] -pub fn get_language_chunk(file_chunk_hash: EntryHash) -> ExternResult> { - match get(file_chunk_hash, GetOptions::default())? { - Some(record) => { - let file_chunk: LanguageChunk = record - .entry() - .to_app_option() - .map_err(|e| wasm_error!(e))? - .ok_or(wasm_error!(WasmErrorInner::Guest( - "Malformed file chunk".into() - )))?; - - Ok(Some(file_chunk)) - } - None => Ok(None), - } -} diff --git a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs b/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs deleted file mode 100644 index a8b3df39c..000000000 --- a/bootstrap-languages/language-language/hc-dna/zomes/language_storage/src/utils.rs +++ /dev/null @@ -1,26 +0,0 @@ -use integrity::LinkTypes; -use hdk::prelude::*; - -pub(crate) fn err(reason: &str) -> WasmError { - wasm_error!(WasmErrorInner::Host(String::from(reason))) -} - -pub(crate) fn get_oldest_link(base: EntryHash, tag: Option) -> ExternResult> { - let language_info = get_links(base, LinkTypes::LanguageLink, tag)?; - - // Find the oldest - let oldest_info = - language_info - .into_iter() - .fold(None, |oldest: Option, link| match oldest { - Some(oldest) => { - if link.timestamp < oldest.timestamp { - Some(link) - } else { - Some(oldest) - } - } - None => Some(link), - }); - return Ok(oldest_info); -} diff --git a/bootstrap-languages/language-language/index.ts b/bootstrap-languages/language-language/index.ts index f145f0ad6..6aa1fa773 100644 --- a/bootstrap-languages/language-language/index.ts +++ b/bootstrap-languages/language-language/index.ts @@ -4,15 +4,13 @@ import Adapter from "./adapter.ts"; export const name = "languages"; +export const PROXY_URL = "https://bootstrap-store-gateway.perspect3vism.workers.dev"; + function interactions(expression: Address): Interaction[] { return []; } export default async function create(context: LanguageContext): Promise { - const Holochain = context.Holochain as HolochainLanguageDelegate; - // @ts-ignore - await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]); - const expressionAdapter = new Adapter(context); const languageAdapter = new LangAdapter(context); diff --git a/bootstrap-languages/language-language/integration.test.cjs b/bootstrap-languages/language-language/integration.test.cjs deleted file mode 100644 index 6cef1ed39..000000000 --- a/bootstrap-languages/language-language/integration.test.cjs +++ /dev/null @@ -1,27 +0,0 @@ -const { spawnExpressionAgent } = require('@perspect3vism/ad4m-test/helpers') - -describe("Expression", () => { - it("Create Expression", async () => { - const agent = await spawnExpressionAgent() - - const data_base64 = Buffer.from("test data").toString('base64'); - const exp = await agent.create({ - bundle: data_base64, - meta: { - name: "language-language", - address: "QmdJ7bZY6UEZsxHpbk1fteHVWJ9dCgR1Avqw9Cj1KRG1Um", - description: "description" - } - }); - console.log("created exp", exp); - - expect(exp).not.toBeNull() - - const fetched = await agent.get(exp) - console.log("fetched exp", fetched); - expect(fetched).not.toBeNull() - expect(fetched.proof.valid).toBe(true); - const data = JSON.parse(fetched.data); - expect(data.name).toBe("language-language"); - }) -}) \ No newline at end of file diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts index ac6cb8e00..82f636ba8 100644 --- a/bootstrap-languages/language-language/languageAdapter.ts +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -5,9 +5,8 @@ import { PROXY_URL } from "./index.ts"; export default class LangAdapter implements LanguageAdapter { constructor(context: LanguageContext) { - this.putAdapter = new LanguageStoragePutAdapter(context); - this.#DNA = context.Holochain as HolochainLanguageDelegate; } + async getLanguageSource(address: Address): Promise { //Check the first two characters of address are equal to Qm if (address.substring(0, 2) != "Qm") { @@ -34,24 +33,6 @@ export default class LangAdapter implements LanguageAdapter { throw (e) } - const expression = (await storage.getLanguageExpression(address)) as LanguageExpression - - if (!expression) { - console.error("LanguageLanguage.get(): Failed to fetch language"); - return null; - }; - - if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) { - console.error("LanguageLanguage.get(): Failed to fetch language"); - return null; - }; - - const data_compressed = await storage.download(expression.data.chunks_hashes); - let data_stream = await data_compressed.arrayBuffer(); - - const data_uncompressed = pako.inflate(data_stream); - const buffer = Buffer.from(data_uncompressed) - - return buffer.toString("utf-8") + return languageSource; } } diff --git a/bootstrap-languages/language-language/languageStorage.ts b/bootstrap-languages/language-language/languageStorage.ts deleted file mode 100644 index 21edf0b05..000000000 --- a/bootstrap-languages/language-language/languageStorage.ts +++ /dev/null @@ -1,100 +0,0 @@ -import type { LanguageExpression, EntryHash } from "./types"; -import { Blob } from "buffer"; - -type ZomeCallFn = (fn: string, params: any) => Promise; - -export class LanguageStorage { - #zomeCall: ZomeCallFn; - - constructor(zomeCall: ZomeCallFn) { - this.#zomeCall = zomeCall; - } - - async upload( - file: Blob, - onProgress: - | undefined - | ((percentatgeProgress: number, bytesSent: number) => void) = undefined, - chunkSize: number = 256 * 1024 - ): Promise { - console.log("splitting file...") - const blobs = this.splitBlob(file, chunkSize); - console.log("done") - const numberOfChunks = blobs.length; - const bytesPerChunk = blobs[0].size; - - const chunksHashes: Array = []; - for (let i = 0; i < blobs.length; i++) { - console.log("creating chunk", i) - const chunkHash = await this.createChunk(blobs[i]); - console.log("done") - chunksHashes.push(chunkHash); - if (onProgress) { - onProgress(((i + 1) * 1.0) / numberOfChunks, bytesPerChunk * (i + 1)); - } - } - - return chunksHashes; - } - - async download(chunksHashes: Array): Promise { - const chunks = []; - for (const chunkHash of chunksHashes) { - let chunk = await this.fetchChunk(chunkHash); - chunks.push(chunk); - } - return this.mergeChunks(chunks); - } - - async storeLanguageExpression(fileExpression: LanguageExpression): Promise { - return await this.#zomeCall("store_language_expression", fileExpression); - } - - async getLanguageExpression(fileHash: string): Promise { - return await this.#zomeCall("get_language_expression", fileHash) as LanguageExpression; - } - - async fetchChunk(fileChunkHash: EntryHash): Promise { - let bytes = null - let tries = 0 - while (bytes === null && tries < 10) { - tries++ - bytes = await this.#zomeCall("get_language_chunk", fileChunkHash); - if (bytes === null) { - await new Promise(resolve => setTimeout(resolve, 500)) - } - } - - if(bytes === null) { - throw new Error("Could not fetch chunk. Giving up after 10 attempts.") - } - - // @ts-ignore - return new Blob([new Uint8Array(bytes)]); - } - - private splitBlob(file: Blob, chunkSize: number): Blob[] { - let offset = 0; - const chunks: Blob[] = []; - - while (file.size > offset) { - const chunk = file.slice(offset, offset + chunkSize); - offset += chunkSize; - chunks.push(chunk); - } - - return chunks; - } - - private mergeChunks(chunks: Blob[]): Blob { - const merged = new Blob(chunks); - return merged; - } - - private async createChunk(chunk: Blob): Promise { - const bytes = await chunk.arrayBuffer(); - // @ts-ignore - return this.#zomeCall("store_chunk", new Uint8Array(bytes)); - } - -} diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts index 6889a9978..60d77f597 100644 --- a/bootstrap-languages/language-language/putAdapter.ts +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -58,66 +58,3 @@ export class CloudflarePutAdapter implements PublicSharing { } } } - - -export class LanguageStoragePutAdapter implements PublicSharing { - #agent: AgentService - #DNA: HolochainLanguageDelegate; - #IPFS: IPFS; - - constructor(context: LanguageContext) { - this.#agent = context.agent; - this.#DNA = context.Holochain as HolochainLanguageDelegate; - // @ts-ignore - this.#IPFS = context.IPFS; - } - - async createPublic(language: LanguageLanguageInput): Promise
    { - const ipfsAddress = await this.#IPFS.add( - { content: language.bundle.toString()}, - { onlyHash: true}, - ); - // @ts-ignore - const hash = ipfsAddress.cid.toString(); - - if(hash != language.meta.address) { - throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`) - } - - //console.log("createPublic fileData", language) - try { - // Just in case... - if(typeof language === "string"){ - //@ts-ignore - fileData = JSON.parse(fileData) - } - }catch(e){} - - const storage = new LanguageStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "language_storage", fn_name, payload)); - - const data_uncompressed = Uint8Array.from(Buffer.from(language.bundle.toString())); - const data_compressed = pako.deflate(data_uncompressed) - const blob = new Blob([data_compressed]) - - const hashes = await storage.upload(blob); - - const fileMetadata = { - name: language.meta.name, - description: language.meta.description, - address: language.meta.address, - chunks_hashes: hashes, - size: data_uncompressed.length, - } as LanguageMetadata - - //Create the signed expression object - const expression: LanguageExpression = this.#agent.createSignedExpression(fileMetadata) - //Remove the data_base64 from the expression, since this is already stored above - delete expression.data.data_base64; - - //Store the FileMetadataExpression - await storage.storeLanguageExpression(expression) - - //@ts-ignore - return hash - } -} \ No newline at end of file diff --git a/bootstrap-languages/language-language/tsconfig.json b/bootstrap-languages/language-language/tsconfig.json index 897830b0b..8de2f1a55 100644 --- a/bootstrap-languages/language-language/tsconfig.json +++ b/bootstrap-languages/language-language/tsconfig.json @@ -4,7 +4,7 @@ "compilerOptions": { "moduleResolution": "node", "target": "es2017", - /** + /** Svelte Preprocess cannot figure out whether you have a value or a type, so tell TypeScript to enforce using `import type` instead of `import` for Types. */ diff --git a/bootstrap-languages/language-language/types.ts b/bootstrap-languages/language-language/types.ts deleted file mode 100644 index 1d592df60..000000000 --- a/bootstrap-languages/language-language/types.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ExpressionGeneric } from "@perspect3vism/ad4m"; - -export type EntryHash = Uint8Array; - -export class LanguageMetadata { - name: string; - description: string; - address: string; - size: number; - chunks_hashes: Array; -} - - -export class LanguageExpression extends ExpressionGeneric(LanguageMetadata) {} ; diff --git a/bootstrap-languages/neighbourhood-language/.gitignore b/bootstrap-languages/neighbourhood-language/.gitignore index 72d741999..b99cc4259 100644 --- a/bootstrap-languages/neighbourhood-language/.gitignore +++ b/bootstrap-languages/neighbourhood-language/.gitignore @@ -9,6 +9,4 @@ build/* !rollup.config.js !dna.js -node_modules -.ad4m-test -ad4m-test-* \ No newline at end of file +node_modules \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/adapter.ts b/bootstrap-languages/neighbourhood-language/adapter.ts index 4eddaacdb..0a03203fe 100644 --- a/bootstrap-languages/neighbourhood-language/adapter.ts +++ b/bootstrap-languages/neighbourhood-language/adapter.ts @@ -28,24 +28,15 @@ class NeighbourhoodPutAdapter implements PublicSharing { console.error("Upload neighbourhood data gets error: ", neighbourhoodPostResult); } - //Store the FileMetadataExpression - await storage.storeNeighbourhoodExpression({ - neighbourhood: expression, - address: hash - }) - - //@ts-ignore - return hash + return hash as Address; } } export default class Adapter implements ExpressionAdapter { putAdapter: PublicSharing; - #DNA: HolochainLanguageDelegate; constructor(context: LanguageContext) { this.putAdapter = new NeighbourhoodPutAdapter(context); - this.#DNA = context.Holochain as HolochainLanguageDelegate; } async get(address: Address): Promise { @@ -67,11 +58,6 @@ export default class Adapter implements ExpressionAdapter { console.error("Get meta information failed at getting meta information", e); } - const expression = (await storage.getNeighbourhoodExpression(address)) as NeighbourhoodExpression - if (!expression) { - return null; - }; - - return expression + return neighbourhoodObject; } } diff --git a/bootstrap-languages/neighbourhood-language/dna.js b/bootstrap-languages/neighbourhood-language/dna.js deleted file mode 100644 index d554764b2..000000000 --- a/bootstrap-languages/neighbourhood-language/dna.js +++ /dev/null @@ -1,4 +0,0 @@ -import dna from "./hc-dna/workdir/neighbourhood-storage.dna"; - -export const DNA = Buffer.from(dna, "base64"); -export const DNA_NICK = "neighbourhood-language"; diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.lock b/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.lock deleted file mode 100644 index d6251fc4a..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.lock +++ /dev/null @@ -1,2321 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" -dependencies = [ - "gimli 0.27.1", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" -dependencies = [ - "memchr", -] - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "arrayref" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object 0.30.3", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "blake2b_simd" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bumpalo" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" - -[[package]] -name = "bytecheck" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f" -dependencies = [ - "bytecheck_derive", - "ptr_meta", -] - -[[package]] -name = "bytecheck_derive" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "camino" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.16", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" -dependencies = [ - "iana-time-zone", - "num-integer", - "num-traits", - "serde", - "time", - "winapi", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "corosensei" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" -dependencies = [ - "autocfg", - "cfg-if", - "libc", - "scopeguard", - "windows-sys 0.33.0", -] - -[[package]] -name = "cpufeatures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" -dependencies = [ - "libc", -] - -[[package]] -name = "cranelift-bforest" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" -dependencies = [ - "cranelift-entity", -] - -[[package]] -name = "cranelift-codegen" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" -dependencies = [ - "cranelift-bforest", - "cranelift-codegen-meta", - "cranelift-codegen-shared", - "cranelift-entity", - "gimli 0.26.2", - "log", - "regalloc", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-codegen-meta" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" -dependencies = [ - "cranelift-codegen-shared", -] - -[[package]] -name = "cranelift-codegen-shared" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" - -[[package]] -name = "cranelift-entity" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" - -[[package]] -name = "cranelift-frontend" -version = "0.82.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" -dependencies = [ - "cranelift-codegen", - "log", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset 0.7.1", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "cxx" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "darling" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn", -] - -[[package]] -name = "digest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" - -[[package]] -name = "enum-iterator" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" -dependencies = [ - "enum-iterator-derive", -] - -[[package]] -name = "enum-iterator-derive" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "enumset" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753" -dependencies = [ - "enumset_derive", -] - -[[package]] -name = "enumset_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "fastrand" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "gcollections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377" -dependencies = [ - "bit-set", - "num-integer", - "num-traits", - "trilean", -] - -[[package]] -name = "generic-array" -version = "0.14.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "gimli" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" -dependencies = [ - "fallible-iterator", - "indexmap", - "stable_deref_trait", -] - -[[package]] -name = "gimli" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221996f774192f0f718773def8201c4ae31f02616a54ccfc2d358bb0e5cefdec" - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash", -] - -[[package]] -name = "hdi" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8046116c32434837d28ad1b443802e2444a38d8cdb69caca9169414364fe0b69" -dependencies = [ - "hdk_derive", - "holo_hash", - "holochain_integrity_types", - "holochain_wasmer_guest", - "paste", - "serde", - "serde_bytes", - "tracing", - "tracing-core", -] - -[[package]] -name = "hdk" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cbecb374a53eba516cbfefaad21f4bc805f4c731b81bd800a9a9e0239004eb3" -dependencies = [ - "getrandom", - "hdi", - "hdk_derive", - "holo_hash", - "holochain_wasmer_guest", - "holochain_zome_types", - "paste", - "serde", - "serde_bytes", - "thiserror", - "tracing", - "tracing-core", -] - -[[package]] -name = "hdk_derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8eade453438a832944ab3f4006482f6bb5693997ff58e3049f23a8f8c617a4" -dependencies = [ - "darling", - "heck", - "holochain_integrity_types", - "paste", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "holo_hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cffb2fb9ce1d2ce4c98d4cc9d625ddb92f6982f47094ed2e36fa93f5a096f36" -dependencies = [ - "base64", - "blake2b_simd", - "derive_more", - "holochain_serialized_bytes", - "kitsune_p2p_dht_arc", - "serde", - "serde_bytes", - "thiserror", -] - -[[package]] -name = "holochain_integrity_types" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0630a221701e40ddf0fb369ead8eb6e18e3ec84241b3c77f803ea137930017b" -dependencies = [ - "holo_hash", - "holochain_serialized_bytes", - "kitsune_p2p_timestamp", - "paste", - "serde", - "serde_bytes", - "subtle", - "tracing", -] - -[[package]] -name = "holochain_serialized_bytes" -version = "0.0.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" -dependencies = [ - "holochain_serialized_bytes_derive", - "rmp-serde", - "serde", - "serde-transcode", - "serde_bytes", - "serde_json", - "thiserror", -] - -[[package]] -name = "holochain_serialized_bytes_derive" -version = "0.0.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "holochain_wasmer_common" -version = "0.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" -dependencies = [ - "holochain_serialized_bytes", - "serde", - "serde_bytes", - "test-fuzz", - "thiserror", - "wasmer", - "wasmer-engine", -] - -[[package]] -name = "holochain_wasmer_guest" -version = "0.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" -dependencies = [ - "holochain_serialized_bytes", - "holochain_wasmer_common", - "parking_lot", - "paste", - "serde", - "tracing", -] - -[[package]] -name = "holochain_zome_types" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df99af259b89d8309121d2a81852f8e468dc587332ce59a93130f4e1149758b4" -dependencies = [ - "holo_hash", - "holochain_integrity_types", - "holochain_serialized_bytes", - "holochain_wasmer_common", - "kitsune_p2p_timestamp", - "paste", - "serde", - "serde_bytes", - "subtle", - "thiserror", - "tracing", -] - -[[package]] -name = "home" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" -dependencies = [ - "winapi", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "winapi", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" -dependencies = [ - "cxx", - "cxx-build", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "if_chain" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" - -[[package]] -name = "indexmap" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "integrity" -version = "0.1.0" -dependencies = [ - "chrono", - "derive_more", - "hdi", - "hdk", - "holo_hash", - "serde", -] - -[[package]] -name = "intervallum" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1" -dependencies = [ - "bit-set", - "gcollections", - "num-integer", - "num-traits", - "trilean", -] - -[[package]] -name = "itoa" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" - -[[package]] -name = "js-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "kitsune_p2p_dht_arc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" -dependencies = [ - "derive_more", - "gcollections", - "intervallum", - "num-traits", - "serde", -] - -[[package]] -name = "kitsune_p2p_timestamp" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" -dependencies = [ - "chrono", - "derive_more", - "serde", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "libc" -version = "0.2.139" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" - -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - -[[package]] -name = "link-cplusplus" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "loupe" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" -dependencies = [ - "indexmap", - "loupe-derive", - "rustversion", -] - -[[package]] -name = "loupe-derive" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memmap2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - -[[package]] -name = "more-asserts" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" - -[[package]] -name = "neighbourhood_storage" -version = "0.1.0" -dependencies = [ - "chrono", - "derive_more", - "hdk", - "holo_hash", - "integrity", - "lazy_static", - "serde", - "sha2", - "thiserror", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "object" -version = "0.28.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" -dependencies = [ - "crc32fast", - "hashbrown 0.11.2", - "indexmap", - "memchr", -] - -[[package]] -name = "object" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys 0.45.0", -] - -[[package]] -name = "paste" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" - -[[package]] -name = "pest" -version = "2.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" -dependencies = [ - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "ptr_meta" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "quote" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rayon" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "num_cpus", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regalloc" -version = "0.0.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" -dependencies = [ - "log", - "rustc-hash", - "smallvec", -] - -[[package]] -name = "regex" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" - -[[package]] -name = "region" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" -dependencies = [ - "bitflags", - "libc", - "mach", - "winapi", -] - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "rend" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95" -dependencies = [ - "bytecheck", -] - -[[package]] -name = "rkyv" -version = "0.7.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15" -dependencies = [ - "bytecheck", - "hashbrown 0.12.3", - "ptr_meta", - "rend", - "rkyv_derive", - "seahash", -] - -[[package]] -name = "rkyv_derive" -version = "0.7.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "rmp" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.16", -] - -[[package]] -name = "rustversion" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" - -[[package]] -name = "ryu" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" - -[[package]] -name = "seahash" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-transcode" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_bytes" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - -[[package]] -name = "subprocess" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "syn" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "target-lexicon" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" - -[[package]] -name = "tempfile" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" -dependencies = [ - "cfg-if", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "test-fuzz" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125df852011c4f8f31df5620f4aea38ecddb5dfb4d9bc569b30485b15ffc3d4e" -dependencies = [ - "serde", - "test-fuzz-internal", - "test-fuzz-macro", - "test-fuzz-runtime", -] - -[[package]] -name = "test-fuzz-internal" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" -dependencies = [ - "cargo_metadata", - "proc-macro2", - "quote", - "serde", - "strum_macros", -] - -[[package]] -name = "test-fuzz-macro" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "856bbca0314c328004691b9c0639fb198ca764d1ce0e20d4dd8b78f2697c2a6f" -dependencies = [ - "darling", - "if_chain", - "lazy_static", - "proc-macro2", - "quote", - "subprocess", - "syn", - "test-fuzz-internal", - "toolchain_find", - "unzip-n", -] - -[[package]] -name = "test-fuzz-runtime" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "303774eb17994c2ddb59c460369f4c3a55496f013380278d78eeebd2deb896ac" -dependencies = [ - "bincode", - "hex", - "num-traits", - "serde", - "sha-1", - "test-fuzz-internal", -] - -[[package]] -name = "thiserror" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "toolchain_find" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" -dependencies = [ - "home", - "lazy_static", - "regex", - "semver 0.11.0", - "walkdir", -] - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "trilean" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "ucd-trie" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" - -[[package]] -name = "unicode-ident" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" - -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - -[[package]] -name = "unzip-n" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" - -[[package]] -name = "wasm-encoder" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c3e4bc09095436c8e7584d86d33e6c3ee67045af8fb262cbb9cc321de553428" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasmer" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" -dependencies = [ - "cfg-if", - "indexmap", - "js-sys", - "loupe", - "more-asserts", - "target-lexicon", - "thiserror", - "wasm-bindgen", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-compiler-cranelift", - "wasmer-derive", - "wasmer-engine", - "wasmer-engine-dylib", - "wasmer-engine-universal", - "wasmer-types", - "wasmer-vm", - "wat", - "winapi", -] - -[[package]] -name = "wasmer-artifact" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" -dependencies = [ - "enumset", - "loupe", - "thiserror", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-compiler" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" -dependencies = [ - "enumset", - "loupe", - "rkyv", - "serde", - "serde_bytes", - "smallvec", - "target-lexicon", - "thiserror", - "wasmer-types", - "wasmparser", -] - -[[package]] -name = "wasmer-compiler-cranelift" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" -dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "gimli 0.26.2", - "loupe", - "more-asserts", - "rayon", - "smallvec", - "target-lexicon", - "tracing", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-derive" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "wasmer-engine" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" -dependencies = [ - "backtrace", - "enumset", - "lazy_static", - "loupe", - "memmap2", - "more-asserts", - "rustc-demangle", - "serde", - "serde_bytes", - "target-lexicon", - "thiserror", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-types", - "wasmer-vm", -] - -[[package]] -name = "wasmer-engine-dylib" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" -dependencies = [ - "cfg-if", - "enum-iterator", - "enumset", - "leb128", - "libloading", - "loupe", - "object 0.28.4", - "rkyv", - "serde", - "tempfile", - "tracing", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-engine", - "wasmer-object", - "wasmer-types", - "wasmer-vm", - "which", -] - -[[package]] -name = "wasmer-engine-universal" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" -dependencies = [ - "cfg-if", - "enumset", - "leb128", - "loupe", - "region", - "rkyv", - "wasmer-compiler", - "wasmer-engine", - "wasmer-engine-universal-artifact", - "wasmer-types", - "wasmer-vm", - "winapi", -] - -[[package]] -name = "wasmer-engine-universal-artifact" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" -dependencies = [ - "enum-iterator", - "enumset", - "loupe", - "rkyv", - "thiserror", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-object" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" -dependencies = [ - "object 0.28.4", - "thiserror", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-types" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" -dependencies = [ - "backtrace", - "enum-iterator", - "indexmap", - "loupe", - "more-asserts", - "rkyv", - "serde", - "thiserror", -] - -[[package]] -name = "wasmer-vm" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" -dependencies = [ - "backtrace", - "cc", - "cfg-if", - "corosensei", - "enum-iterator", - "indexmap", - "lazy_static", - "libc", - "loupe", - "mach", - "memoffset 0.6.5", - "more-asserts", - "region", - "rkyv", - "scopeguard", - "serde", - "thiserror", - "wasmer-artifact", - "wasmer-types", - "winapi", -] - -[[package]] -name = "wasmparser" -version = "0.83.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" - -[[package]] -name = "wast" -version = "53.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8244fa24196b1d8fd3ca4a96a3a164c40f846498c5deab6caf414c67340ca4af" -dependencies = [ - "leb128", - "memchr", - "unicode-width", - "wasm-encoder", -] - -[[package]] -name = "wat" -version = "1.0.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4620f1059add6dad511decb9d5d88b4a0a0d3e2e315ed34f79b0dc0dce18aa4b" -dependencies = [ - "wast", -] - -[[package]] -name = "which" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" -dependencies = [ - "either", - "libc", - "once_cell", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" -dependencies = [ - "windows_aarch64_msvc 0.33.0", - "windows_i686_gnu 0.33.0", - "windows_i686_msvc 0.33.0", - "windows_x86_64_gnu 0.33.0", - "windows_x86_64_msvc 0.33.0", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" - -[[package]] -name = "windows_i686_gnu" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" - -[[package]] -name = "windows_i686_msvc" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.toml b/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.toml deleted file mode 100644 index 8ae82fefc..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[workspace] -members = [ - "zomes/integrity", - "zomes/neighbourhood_storage" -] - -[profile.dev] -opt-level = "z" - -[profile.release] -opt-level = "z" \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/build.ps1 b/bootstrap-languages/neighbourhood-language/hc-dna/build.ps1 deleted file mode 100644 index e7bcb228e..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/build.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -$env:CARGO_TARGET_DIR = target -cargo build --release --target wasm32-unknown-unknown -hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/build.sh b/bootstrap-languages/neighbourhood-language/hc-dna/build.sh deleted file mode 100755 index a089cc772..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown -hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/default.nix b/bootstrap-languages/neighbourhood-language/hc-dna/default.nix deleted file mode 100644 index 33f97a914..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -let - holonixPath = (import ./nix/sources.nix).holonix; # points to the current state of the Holochain repository - holonix = import (holonixPath) { - holochainVersionId = "main"; - }; - nixpkgs = holonix.pkgs; -in nixpkgs.mkShell { - inputsFrom = [ holonix.main ]; - packages = with nixpkgs; [ - binaryen - nodejs-16_x - swiProlog - ]; -} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/holochain_version.nix b/bootstrap-languages/neighbourhood-language/hc-dna/holochain_version.nix deleted file mode 100644 index 9f44831c8..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/holochain_version.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated with the following command: -# update-holochain-versions --git-src=revision:holochain-0.0.161 --lair-version-req=~0.2 --output-file=holochain_version.nix -# For usage instructions please visit https://github.com/holochain/holochain-nixpkgs/#readme - -{ - url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; - sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; - cargoLock = { - outputHashes = { - }; - }; - - binsFilter = [ - "holochain" - "hc" - "kitsune-p2p-proxy" - "kitsune-p2p-tx2-proxy" - ]; -} diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.json b/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.json deleted file mode 100644 index 451563814..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "holonix": { - "branch": "main", - "description": "NixOS && Holochain", - "homepage": "", - "owner": "holochain", - "repo": "holonix", - "rev": "241c1754a37881f51f2f33921a2777b38c34fa24", - "sha256": "sha256:0zaa477kyzpsrcc3nk1jznp4gchwm4pk5p37pwkq6mjhiizcxshy", - "type": "tarball", - "url": "https://github.com/holochain/holonix/archive/241c1754a37881f51f2f33921a2777b38c34fa24.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - } -} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.nix b/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.nix deleted file mode 100644 index fe2468872..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/nix/sources.nix +++ /dev/null @@ -1,174 +0,0 @@ -# This file has been generated by Niv. - -let - - # - # The fetchers. fetch_ fetches specs of type . - # - - fetch_file = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchurl { inherit (spec) url sha256; name = name'; } - else - pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; - - fetch_tarball = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchTarball { name = name'; inherit (spec) url sha256; } - else - pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; - - fetch_git = name: spec: - let - ref = - if spec ? ref then spec.ref else - if spec ? branch then "refs/heads/${spec.branch}" else - if spec ? tag then "refs/tags/${spec.tag}" else - abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; - in - builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; - - fetch_local = spec: spec.path; - - fetch_builtin-tarball = name: throw - ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=tarball -a builtin=true''; - - fetch_builtin-url = name: throw - ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=file -a builtin=true''; - - # - # Various helpers - # - - # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 - sanitizeName = name: - ( - concatMapStrings (s: if builtins.isList s then "-" else s) - ( - builtins.split "[^[:alnum:]+._?=-]+" - ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) - ) - ); - - # The set of packages used when specs are fetched using non-builtins. - mkPkgs = sources: system: - let - sourcesNixpkgs = - import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; - hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; - hasThisAsNixpkgsPath = == ./.; - in - if builtins.hasAttr "nixpkgs" sources - then sourcesNixpkgs - else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then - import {} - else - abort - '' - Please specify either (through -I or NIX_PATH=nixpkgs=...) or - add a package called "nixpkgs" to your sources.json. - ''; - - # The actual fetching function. - fetch = pkgs: name: spec: - - if ! builtins.hasAttr "type" spec then - abort "ERROR: niv spec ${name} does not have a 'type' attribute" - else if spec.type == "file" then fetch_file pkgs name spec - else if spec.type == "tarball" then fetch_tarball pkgs name spec - else if spec.type == "git" then fetch_git name spec - else if spec.type == "local" then fetch_local spec - else if spec.type == "builtin-tarball" then fetch_builtin-tarball name - else if spec.type == "builtin-url" then fetch_builtin-url name - else - abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; - - # If the environment variable NIV_OVERRIDE_${name} is set, then use - # the path directly as opposed to the fetched source. - replace = name: drv: - let - saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name; - ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; - in - if ersatz == "" then drv else - # this turns the string into an actual Nix path (for both absolute and - # relative paths) - if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; - - # Ports of functions for older nix versions - - # a Nix version of mapAttrs if the built-in doesn't exist - mapAttrs = builtins.mapAttrs or ( - f: set: with builtins; - listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) - ); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 - range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 - stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 - stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); - concatMapStrings = f: list: concatStrings (map f list); - concatStrings = builtins.concatStringsSep ""; - - # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 - optionalAttrs = cond: as: if cond then as else {}; - - # fetchTarball version that is compatible between all the versions of Nix - builtins_fetchTarball = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchTarball; - in - if lessThan nixVersion "1.12" then - fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) - else - fetchTarball attrs; - - # fetchurl version that is compatible between all the versions of Nix - builtins_fetchurl = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchurl; - in - if lessThan nixVersion "1.12" then - fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) - else - fetchurl attrs; - - # Create the final "sources" from the config - mkSources = config: - mapAttrs ( - name: spec: - if builtins.hasAttr "outPath" spec - then abort - "The values in sources.json should not have an 'outPath' attribute" - else - spec // { outPath = replace name (fetch config.pkgs name spec); } - ) config.sources; - - # The "config" used by the fetchers - mkConfig = - { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null - , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile) - , system ? builtins.currentSystem - , pkgs ? mkPkgs sources system - }: rec { - # The sources, i.e. the attribute set of spec name to spec - inherit sources; - - # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers - inherit pkgs; - }; - -in -mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/download-hc-binaries.sh b/bootstrap-languages/neighbourhood-language/hc-dna/tests/download-hc-binaries.sh deleted file mode 100755 index e78e813ec..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/tests/download-hc-binaries.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" - -if [ ! -f "./hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 - mv hc-linux-0.1.0 ./hc - chmod +x ./hc -fi - -if [ ! -f "./holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 - mv holochain-linux-0.1.0 ./holochain - chmod +x ./holochain -fi \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts b/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts deleted file mode 100644 index 3cf4d2c06..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/tests/index.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { CallableCell, runScenario, Scenario } from "@holochain/tryorama"; -import test from "tape-promise/tape.js"; -import path from "path"; -import { resolve } from "path"; -import { NeighbourhoodStorage } from "../../neighbourhoodStorage"; -import { Blob } from "buffer"; -import { NeighbourhoodExpression } from "@perspect3vism/ad4m"; - -const dnas = [{ source: {path: path.join("../workdir/neighbourhood-laguage.dna") } }]; - -function sleep(ms: number) { - return new Promise(resolve => setTimeout(resolve, ms)); -} - -test("Share full FileExpression between Alice and Bob", async (t) => { - await runScenario(async (scenario: Scenario) => { - const alice = await scenario.addPlayerWithApp({ - bundle: { - manifest: { - manifest_version: "1", - name: "neighbourhood-laguage", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - }); - - const bob = await scenario.addPlayerWithApp({ - bundle: { - manifest: { - manifest_version: "1", - name: "neighbourhood-laguage", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - }); - - console.log("Sharing all agents") - await scenario.shareAllAgents(); - - - const aliceClient = new NeighbourhoodStorage((fn_name, payload) => alice.cells[0].callZome({zome_name: "neighbourhood_storage", fn_name, payload})); - const bobClient = new NeighbourhoodStorage((fn_name, payload) => bob.cells[0].callZome({zome_name: "neighbourhood_storage", fn_name, payload})); - - - let randomNumbers:number[] = []; - for(let i = 0; i < 1000000; i++) { - randomNumbers.push(Math.floor(Math.random() * 1000)); - } - const buf = Buffer.from(randomNumbers); - const blobUp = new Blob([buf]) - - const neighbourhoodExpression: NeighbourhoodExpression = { - linkLangugae: "test", - meta: { - links: [] - } - } - - const neighbourhoodExpressionAddr = await aliceClient.storeNeighbourhoodExpression(neighbourhoodExpression) - - await new Promise(resolve => setTimeout(resolve, 3000)) - - const neighbourdhoodExpressionDown = await bobClient.getNeighbourhoodExpression(neighbourhoodExpressionAddr) - t.deepEqual(neighbourdhoodExpressionDown, neighbourhoodExpression) - - await scenario.shutDown(); - }) - }) diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/package.json b/bootstrap-languages/neighbourhood-language/hc-dna/tests/package.json deleted file mode 100644 index 36257fbce..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/tests/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "file-storage-test", - "version": "1.0.0", - "main": "index.js", - "type": "module", - "license": "MIT", - "dependencies": { - "@holochain/client": "^0.12.0", - "@holochain/tryorama": "^0.11.1", - "tape-promise": "^4.0.0", - "ts-node": "^10.8.0", - "@types/node": "^14.0.14", - "typescript": "^4.2.4" - }, - "devDependencies": { - "@types/faker": "^5.5.3", - "@types/tape-promise": "^4.0.1", - "tape": "^5.5.3", - "blob-compare": "^1.1.0" - }, - "scripts": { - "build": "cd .. && ./build.sh", - "build-ci": "cd ../ && CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown && ./tests/hc dna pack workdir && cd ./tests", - "test": "TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node index.ts" - } -} diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/tsconfig.json b/bootstrap-languages/neighbourhood-language/hc-dna/tests/tsconfig.json deleted file mode 100644 index f2a5da84f..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/tests/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "@tsconfig/svelte/tsconfig.json", - "compilerOptions": { - "types": ["node"], - "importsNotUsedAsValues": "preserve" - }, - "include": ["*.ts"], - "exclude": ["node_modules/*", "__sapper__/*", "public/*"], - "allowJs": true -} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/tests/yarn.lock b/bootstrap-languages/neighbourhood-language/hc-dna/tests/yarn.lock deleted file mode 100644 index 578e78d80..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/tests/yarn.lock +++ /dev/null @@ -1,1149 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - -"@holochain/client@^0.12.0": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" - integrity sha512-9Q1G8sKEGsqnCl067CaRbzwPZZ5zeDCJdvQ8TJpb+psP2kLJBbHZ2qulMXAlNUz7Pg0l4B1Eh/BFJByJHRLlow== - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/serialization@^0.1.0-beta-rc.3": - version "0.1.0-beta-rc.3" - resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" - integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== - -"@holochain/tryorama@^0.11.1": - version "0.11.2" - resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.2.tgz#abd18097cac08a352c846b2c5af852a03104f5b3" - integrity sha512-RCi7QtGejpzfGIx1EKyTX+QnkooGaUAY0TiFHDc5uamCvNNX1Ya6Esgvyrt2zpO5YBUUrSbdbB1gBB3a8bwr7A== - dependencies: - "@holochain/client" "^0.12.0" - get-port "^6.1.2" - lodash "^4.17.21" - uuid "^8.3.2" - winston "^3.8.2" - ws "^8.11.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@msgpack/msgpack@^2.7.2": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" - integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== - -"@tauri-apps/api@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.3.0.tgz#d0c853ab2cc7506bd826c5f7f260c67c7c15def5" - integrity sha512-AH+3FonkKZNtfRtGrObY38PrzEj4d+1emCbwNGu0V2ENbXjlLHMZQlUh+Bhu/CRmjaIwZMGJ3yFvWaZZgTHoog== - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/faker@^5.5.3": - version "5.5.9" - resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" - integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== - -"@types/node@*": - version "20.2.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" - integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== - -"@types/node@^14.0.14": - version "14.18.48" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.48.tgz#ee5c7ac6e38fd2a9e6885f15c003464cf2da343c" - integrity sha512-iL0PIMwejpmuVHgfibHpfDwOdsbmB50wr21X71VnF5d7SsBF7WK+ZvP/SCcFm7Iwb9iiYSap9rlrdhToNAWdxg== - -"@types/tape-promise@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/tape-promise/-/tape-promise-4.0.1.tgz#a72fa8d2d5351704d651b174931ecc8f996e68ca" - integrity sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg== - dependencies: - "@types/tape" "*" - -"@types/tape@*": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@types/tape/-/tape-5.6.0.tgz#d8bc031c3cac16a3df9d7865843db78af1e1c56e" - integrity sha512-yt27qxGg45IVJ0i2PdbYopND9d4eaXwne/jpi0saYb7PHYu8ZYaQB+cADjj+YZkZZjCM4rnhMPYFGd6+M8sWKg== - dependencies: - "@types/node" "*" - "@types/through" "*" - -"@types/through@*": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" - integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg== - dependencies: - "@types/node" "*" - -"@types/triple-beam@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8" - integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array.prototype.every@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.4.tgz#2762daecd9cec87cb63f3ca6be576817074a684e" - integrity sha512-Aui35iRZk1HHLRAyF7QP0KAnOnduaQ6fo6k1NVWfRc0xTs2AZ70ytlXvOmkC6Di4JmUs2Wv3DYzGtCQFSk5uGg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - is-string "^1.0.7" - -async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -blob-compare@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/blob-compare/-/blob-compare-1.1.0.tgz#bb26f66f4795b57f1cfc8de48b89af42ae14c72f" - integrity sha512-2IAxmSdPgS91n9COyZz2G2ZwG/9ALrcgyCW12E50YMuJ5YR/BaEI2AidK6t0HwuZ1ODsXgD9gmrHrhpQlDCMoA== - dependencies: - webworker-promise "^0.4.2" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -deep-equal@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" - integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.0" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -defined@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" - integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dotignore@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -emittery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" - integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== - -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" - integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== - dependencies: - array-buffer-byte-length "^1.0.0" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.3" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2, functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-port@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" - integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -glob@^7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-dynamic-import@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" - integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.4, internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.9.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isomorphic-ws@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" - integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - -js-base64@^3.7.3: - version "3.7.5" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" - integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== - -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - -lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -logform@^2.3.2, logform@^2.4.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b" - integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== - dependencies: - "@colors/colors" "1.5.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== - dependencies: - mimic-fn "^1.0.0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - functions-have-names "^1.2.3" - -resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resumer@^0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== - dependencies: - through "~2.3.4" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tape-promise@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tape-promise/-/tape-promise-4.0.0.tgz#c1f3553959b2e9d64b1546e7276b8a017c616897" - integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== - dependencies: - is-promise "^2.1.0" - onetime "^2.0.0" - -tape@^5.5.3: - version "5.6.3" - resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.3.tgz#0d3cc82f96b0906f73b0981df1a38a44fec7901d" - integrity sha512-cUDDGSbyoSIpdUAqbqLI/r7i/S4BHuCB9M5j7E/LrLs/x/i4zeAJ798aqo+FGo+kr9seBZwr8AkZW6rjceyAMQ== - dependencies: - array.prototype.every "^1.1.4" - call-bind "^1.0.2" - deep-equal "^2.2.0" - defined "^1.0.1" - dotignore "^0.1.2" - for-each "^0.3.3" - get-package-type "^0.1.0" - glob "^7.2.3" - has "^1.0.3" - has-dynamic-import "^2.0.1" - inherits "^2.0.4" - is-regex "^1.1.4" - minimist "^1.2.7" - object-inspect "^1.12.3" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - resolve "^2.0.0-next.4" - resumer "^0.0.0" - string.prototype.trim "^1.2.7" - through "^2.3.8" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - -through@^2.3.8, through@~2.3.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -triple-beam@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" - integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== - -ts-node@^10.8.0: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typescript@^4.2.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -webworker-promise@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/webworker-promise/-/webworker-promise-0.4.4.tgz#722b0ccade10ccb4e810325e5ebff00eb0e1b1be" - integrity sha512-NfdSlaWqd+0iSrQudB0N0MELfJ9TVTlynhXMpi06piuZhyc9Yy7Hz6BFu2HUkvIb9lCS0pFW42ptd/JnXVnptg== - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -winston-transport@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" - integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.8.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.9.0.tgz#2bbdeb8167a75fac6d9a0c6d002890cd908016c2" - integrity sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ== - dependencies: - "@colors/colors" "1.5.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.5.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^8.11.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml b/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml deleted file mode 100644 index beda8e743..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/workdir/dna.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -manifest_version: '1' -name: neighbourhood-storage - -integrity: - network_seed: 00000000-0000-0000-0000-000000000000 - properties: null - origin_time: 2023-02-07T14:37:17.497352Z - zomes: - - name: integrity - bundled: ../target/wasm32-unknown-unknown/release/integrity.wasm -coordinator: - zomes: - - name: neighbourhood_storage - bundled: ../target/wasm32-unknown-unknown/release/neighbourhood_storage.wasm \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/Cargo.toml deleted file mode 100644 index 8a860b176..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "integrity" -version = "0.1.0" -edition = "2021" - -[lib] -crate-type = ["cdylib", "rlib"] -name = "integrity" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -derive_more = "0" -serde = "1" -chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.1.0" -hdi = "0.2.0" -hdk = "0.1.0" diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs deleted file mode 100644 index 18256feb4..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/integrity/src/lib.rs +++ /dev/null @@ -1,74 +0,0 @@ -use chrono::{DateTime, Utc}; -use hdi::prelude::*; -use std::any::{Any}; - -#[hdk_entry_helper] -pub struct NeighbourhoodChunk(SerializedBytes); - -#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] -pub struct Link { - pub source: String, - pub target: String, - pub predicate: Option, -} - -#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] -pub struct LinkExpression { - author: String, - timestamp: DateTime, - data: Link, - proof: ExpressionProof, -} - -#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] -pub struct Perspective { - pub links: Vec, -} - -#[hdk_entry_helper] -pub struct NeighbourhoodMetadata { - pub linkLanguage: String, - pub meta: Perspective, -} - -#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq)] -pub struct ExpressionProof { - pub signature: String, - pub key: String, -} - -#[hdk_entry_helper] -pub struct NeighbourhoodExpression { - pub author: String, - pub proof: ExpressionProof, - pub timestamp: DateTime, - pub data: NeighbourhoodMetadata, -} - -#[hdk_entry_helper] -pub struct NeighbourhoodParam { - pub neighbourhood: NeighbourhoodExpression, - pub address: String, -} - -#[hdk_entry_helper] -pub struct NeighbourhoodAddress(pub String); - - -#[hdk_entry_defs] -#[unit_enum(UnitEntryTypes)] -pub enum EntryTypes { - #[entry_def(visibility = "public")] - NeighbourhoodExpression(NeighbourhoodExpression), - - #[entry_def(visibility = "public")] - NeighbourhoodChunk(NeighbourhoodChunk), - - #[entry_def(visibility = "public")] - NeighbourhoodAddress(NeighbourhoodAddress), -} - -#[hdk_link_types] -pub enum LinkTypes { - NeighbourhoodLink, -} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/.gitignore b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/.gitignore deleted file mode 100644 index ea8c4bf7f..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/Cargo.toml b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/Cargo.toml deleted file mode 100644 index d66c505b6..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/Cargo.toml +++ /dev/null @@ -1,21 +0,0 @@ -[package] -name = "neighbourhood_storage" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[lib] -crate-type = ["cdylib", "rlib"] -name = "neighbourhood_storage" - -[dependencies] -derive_more = "0" -serde = "1" -lazy_static = "*" -chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -thiserror = "1.0.20" -integrity = { path = "../integrity" } -sha2 = "0.10.5" -hdk = "0.1.0" -holo_hash = "0.1.0" \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs deleted file mode 100644 index 0bdff55cb..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/lib.rs +++ /dev/null @@ -1,81 +0,0 @@ -use chrono::{DateTime, NaiveDateTime, Utc}; -use hdk::prelude::*; -use integrity::{EntryTypes, NeighbourhoodExpression, NeighbourhoodParam, LinkTypes, NeighbourhoodAddress}; -mod utils; -use utils::{err, get_latest_link}; - -#[hdk_extern] -fn init(_: ()) -> ExternResult { - Ok(InitCallbackResult::Pass) -} - -pub fn get_now() -> DateTime { - match sys_time() { - Ok(time) => { - let now = time.as_seconds_and_nanos(); - let out = DateTime::::from_utc( - NaiveDateTime::from_timestamp_opt(now.0, now.1).unwrap(), - Utc, - ); - out - } - Err(_err) => Utc::now(), - } -} - -#[hdk_extern] -pub fn store_neighbourhood_expression(neighbourhood: NeighbourhoodParam) -> ExternResult<()> { - let address = EntryTypes::NeighbourhoodAddress(NeighbourhoodAddress(neighbourhood.address.clone())); - let address_hash = hash_entry(&address)?; - - let neighbourhood_expression = EntryTypes::NeighbourhoodExpression(neighbourhood.neighbourhood); - let neighbourhood_expression_hash = hash_entry(&neighbourhood_expression)?; - create_entry(&neighbourhood_expression)?; - - //Link profile entry to did - create_link( - address_hash, - neighbourhood_expression_hash, - LinkTypes::NeighbourhoodLink, - LinkTag::from("".as_bytes().to_owned()), - )?; - - Ok(()) -} - -#[hdk_extern] -pub fn get_neighbourhood_expression( - file_expression_hash: NeighbourhoodAddress, -) -> ExternResult> { - let expression_links = get_latest_link( - hash_entry(file_expression_hash)?, - Some(LinkTag::from("".as_bytes().to_owned())), - ) - .map_err(|error| err(format!("{}", error).as_ref()))?; - - match expression_links { - Some(link) => { - match get( - link.target - .into_entry_hash() - .expect("could not get action hash"), - GetOptions::default(), - ) - .map_err(|error| err(format!("{}", error).as_ref()))? - { - Some(elem) => { - let exp_data: NeighbourhoodExpression = elem - .entry() - .to_app_option() - .map_err(|sb_err| err(&format!("{}", sb_err)))? - .ok_or(err( - "Could not deserialize link expression data into Profile type", - ))?; - Ok(Some(exp_data)) - } - None => Ok(None), - } - } - None => Ok(None), - } -} \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/utils.rs b/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/utils.rs deleted file mode 100644 index 2801e0856..000000000 --- a/bootstrap-languages/neighbourhood-language/hc-dna/zomes/neighbourhood_storage/src/utils.rs +++ /dev/null @@ -1,26 +0,0 @@ -use integrity::LinkTypes; -use hdk::prelude::*; - -pub(crate) fn err(reason: &str) -> WasmError { - wasm_error!(WasmErrorInner::Host(String::from(reason))) -} - -pub(crate) fn get_latest_link(base: EntryHash, tag: Option) -> ExternResult> { - let neighbourhood_info = get_links(base, LinkTypes::NeighbourhoodLink, tag)?; - - // Find the latest - let latest_info = - neighbourhood_info - .into_iter() - .fold(None, |latest: Option, link| match latest { - Some(latest) => { - if link.timestamp > latest.timestamp { - Some(link) - } else { - Some(latest) - } - } - None => Some(link), - }); - return Ok(latest_info); -} diff --git a/bootstrap-languages/neighbourhood-language/index.ts b/bootstrap-languages/neighbourhood-language/index.ts index be659dd8a..7046ab0b9 100644 --- a/bootstrap-languages/neighbourhood-language/index.ts +++ b/bootstrap-languages/neighbourhood-language/index.ts @@ -17,11 +17,11 @@ export class UI implements ExpressionUI { export const name = "neighbourhood-store"; -export default async function create(context: LanguageContext): Promise { - const Holochain = context.Holochain as HolochainLanguageDelegate; - // @ts-ignore - await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]); +export const PROXY_URL = "https://bootstrap-store-gateway.perspect3vism.workers.dev/"; +export default async function create(context: LanguageContext): Promise { + //const Holochain = context.Holochain as HolochainLanguageDelegate; + //await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]); const expressionAdapter = new Adapter(context); //const expressionUI = new UI(); diff --git a/bootstrap-languages/neighbourhood-language/integration.test.cjs b/bootstrap-languages/neighbourhood-language/integration.test.cjs deleted file mode 100644 index 4d98ca48a..000000000 --- a/bootstrap-languages/neighbourhood-language/integration.test.cjs +++ /dev/null @@ -1,24 +0,0 @@ -const { spawnExpressionAgent } = require('@perspect3vism/ad4m-test/helpers') - -describe("Expression", () => { - it("Create Expression", async () => { - const agent = await spawnExpressionAgent() - - const exp = await agent.create({ - linkLanguage: "test", - meta: { - links: [] - } - }); - console.log("created exp", exp); - - expect(exp).not.toBeNull() - - const fetched = await agent.get(exp) - console.log("fetched exp", fetched); - expect(fetched).not.toBeNull() - expect(fetched.proof.valid).toBe(true); - const data = JSON.parse(fetched.data); - expect(data.linkLanguage).toBe("test"); - }) -}) \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts b/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts deleted file mode 100644 index ed8a123f6..000000000 --- a/bootstrap-languages/neighbourhood-language/neighbourhoodStorage.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { NeighbourhoodExpression } from "@perspect3vism/ad4m"; -import type { EntryHash } from "./types"; - -type ZomeCallFn = (fn: string, params: any) => Promise; - -export class NeighbourhoodStorage { - #zomeCall: ZomeCallFn; - - constructor(zomeCall: ZomeCallFn) { - this.#zomeCall = zomeCall; - } - - async storeNeighbourhoodExpression(neighbourhoodExpression: NeighbourhoodExpression): Promise { - return await this.#zomeCall("store_neighbourhood_expression", neighbourhoodExpression); - } - - async getNeighbourhoodExpression(fileHash: string): Promise { - return await this.#zomeCall("get_neighbourhood_expression", fileHash) as NeighbourhoodExpression; - } -} - -export default NeighbourhoodStorage \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/types.ts b/bootstrap-languages/neighbourhood-language/types.ts deleted file mode 100644 index c8fe7ad26..000000000 --- a/bootstrap-languages/neighbourhood-language/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ExpressionGeneric } from "@perspect3vism/ad4m"; - -export type EntryHash = Uint8Array; - -export class NeighbourhoodMetadata {} - -export class NeighbourhoodExpression extends ExpressionGeneric(NeighbourhoodMetadata) {} ; diff --git a/tests/js/bootstrapSeed.json b/tests/js/bootstrapSeed.json index b84083066..8c7b92871 100644 --- a/tests/js/bootstrapSeed.json +++ b/tests/js/bootstrapSeed.json @@ -1 +1 @@ -{"trustedAgents":["did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n"],"knownLinkLanguages":["QmzSYwdkoKCD3dyjutRraNCqCMEfGQ5SQnpSC7At631eJCLEhkh"],"directMessageLanguage":"QmzSYwdeycwPtNCnx7KfStTWQqu5qpZg9iCGopBEtRBAZjvg6uH","agentLanguage":"QmzSYwdpgYS2CHb6Nkjqn7xKRbsouUXn7535QSn41dgsjPJiYom","perspectiveLanguage":"QmzSYwdmkrLXFHC4wjDN6yq5cz3AGCRDT4Ltfc6pZ4bjqLgb4HJ","neighbourhoodLanguage":"QmzSYwdcbZGG6838gWcLGgaFmnZkX7MkCJ1z6WopggSc9UEKbUy","languageLanguageBundle":""} \ No newline at end of file +{"trustedAgents":["did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n"],"knownLinkLanguages":["QmzSYwdfRBC1tKP9XcQSgimWSbWyGyVmck4MMmPPC1Gokr3tq26"],"directMessageLanguage":"QmzSYwdcZPQToRt7653T2zAq8BEt8u7dZ7jyzWMaRTsSxMc4HuZ","agentLanguage":"QmzSYwdfHAE9cvfvCkNZFWH9L5y2QcKBiivNZYU53UR4hE8a8Dx","perspectiveLanguage":"QmzSYwdeBLCn99QU7DSnJuTFrp7TQGRZkrTDRXvxiv2XAbUFeEx","neighbourhoodLanguage":"QmzSYwdexVtzt8GEY37qzRy15mNL59XrpjvZJjgYXa43j6CewKE","languageLanguageBundle":""} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index ba703ec4b..df9809969 100644 --- a/yarn.lock +++ b/yarn.lock @@ -176,13 +176,26 @@ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== dependencies: - "@babel/highlight" "^7.22.5" + "@babel/highlight" "^7.18.6" + +"@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.22.0", "@babel/compat-data@^7.22.3": version "7.22.3" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.3.tgz#cd502a6a0b6e37d7ad72ce7e71a7160a3ae36f7e" integrity sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ== +"@babel/compat-data@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" + integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.14.8", "@babel/core@^7.16.0", "@babel/core@^7.2.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0", "@babel/core@^7.9.6": version "7.22.1" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.1.tgz#5de51c5206f4c6f5533562838337a603c1033cfd" @@ -223,21 +236,24 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.22.5": +"@babel/generator@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" + integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA== + dependencies: + "@babel/types" "^7.22.15" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.22.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.3.tgz#c9b83d1ba74e163e023f008a3d3204588a7ceb60" - integrity sha512-ahEoxgqNoYXm0k22TvOke48i1PkavGu0qGCmcq9ugi6gnmvKNaMjKBSrZTnWUi1CFEeNAUiVba0Wtzm03aSkJg== - dependencies: - "@babel/types" "^7.22.3" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.1": +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.22.1": version "7.22.1" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz#bfcd6b7321ffebe33290d68550e2c9d7eb7c7a58" integrity sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ== @@ -248,6 +264,17 @@ lru-cache "^5.1.1" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.1": version "7.22.1" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.1.tgz#ae3de70586cc757082ae3eba57240d42f468c41b" @@ -268,10 +295,19 @@ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.1.tgz#a7ed9a8488b45b467fca353cd1a44dc5f0cf5c70" integrity sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.3.1" semver "^6.3.0" +"@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + "@babel/helper-define-polyfill-provider@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz#487053f103110f25b9755c5980e031e93ced24d8" @@ -284,22 +320,28 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.1": +"@babel/helper-environment-visitor@^7.22.1": version "7.22.1" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8" integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA== -"@babel/helper-hoist-variables@^7.22.5": +"@babel/helper-environment-visitor@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== + +"@babel/helper-function-name@^7.21.0", "@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== dependencies: + "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.5": +"@babel/helper-hoist-variables@^7.18.6", "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: "@babel/types" "^7.22.5" @@ -310,6 +352,13 @@ dependencies: "@babel/types" "^7.22.3" +"@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" + integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" @@ -317,7 +366,14 @@ dependencies: "@babel/types" "^7.21.4" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.1": +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.1": version "7.22.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz#e0cad47fedcf3cae83c11021696376e2d5a50c63" integrity sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw== @@ -331,39 +387,55 @@ "@babel/traverse" "^7.22.1" "@babel/types" "^7.22.0" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== +"@babel/helper-module-transforms@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz#40ad2f6950f143900e9c1c72363c0b431a606082" + integrity sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.15" -"@babel/helper-remap-async-to-generator@^7.22.5": +"@babel/helper-optimise-call-expression@^7.18.6", "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" - integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== +"@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-remap-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" + integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" + "@babel/helper-wrap-function" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.22.1": +"@babel/helper-replace-supers@^7.22.1": version "7.22.1" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.1.tgz#38cf6e56f7dc614af63a21b45565dd623f0fdc95" integrity sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ== @@ -375,6 +447,15 @@ "@babel/traverse" "^7.22.1" "@babel/types" "^7.22.0" +"@babel/helper-replace-supers@^7.22.5": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" + integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-simple-access@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" @@ -382,36 +463,25 @@ dependencies: "@babel/types" "^7.21.5" -"@babel/helper-split-export-declaration@^7.22.5": +"@babel/helper-simple-access@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08" - integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ== + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.18.10", "@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - -"@babel/helper-validator-option@^7.22.5": +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" -"@babel/helper-wrap-function@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" - integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== +"@babel/helper-split-export-declaration@^7.18.6", "@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" "@babel/helper-string-parser@^7.21.5": @@ -419,21 +489,42 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044" + integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ== + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + "@babel/helper-validator-option@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== + +"@babel/helper-wrap-function@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" + integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== dependencies: + "@babel/helper-function-name" "^7.22.5" "@babel/template" "^7.22.5" "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" @@ -447,13 +538,13 @@ "@babel/traverse" "^7.22.1" "@babel/types" "^7.22.3" -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== +"@babel/highlight@^7.22.13", "@babel/highlight@^7.22.5": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" + integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.4.2" js-tokens "^4.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": @@ -466,12 +557,17 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32" integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA== +"@babel/parser@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.15.tgz#d34592bfe288a32e741aa0663dbc4829fcd55160" + integrity sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.3": version "7.22.3" @@ -601,14 +697,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.18.6": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz#3e37fca4f06d93567c1cd9b75156422e90a67107" - integrity sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw== +"@babel/plugin-syntax-flow@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" + integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-assertions@^7.22.5": +"@babel/plugin-syntax-import-assertions@^7.20.0": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== @@ -643,6 +739,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -706,7 +809,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6", "@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== @@ -740,20 +843,12 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-remap-async-to-generator" "^7.18.9" -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-block-scoping@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-class-properties@^7.22.3": version "7.22.3" @@ -777,64 +872,14 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-static-block@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" - integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-transform-classes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz#635d4e98da741fad814984639f4c0149eb0135e1" - integrity sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.21.5": @@ -850,9 +895,9 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== @@ -860,7 +905,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.22.5": +"@babel/plugin-transform-duplicate-keys@^7.18.9": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== @@ -880,24 +925,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-export-namespace-from@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" - integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-export-namespace-from@^7.22.3": version "7.22.3" @@ -922,7 +951,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.21.5" -"@babel/plugin-transform-function-name@^7.22.5": +"@babel/plugin-transform-function-name@^7.18.9": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== @@ -944,8 +973,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-logical-assignment-operators@^7.22.3": version "7.22.3" @@ -960,17 +988,26 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-modules-amd@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== dependencies: + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-modules-commonjs@^7.2.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" + integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== + dependencies: + "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.21.5": +"@babel/plugin-transform-modules-commonjs@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== @@ -989,14 +1026,13 @@ "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-validator-identifier" "^7.19.1" -"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.22.5": +"@babel/plugin-transform-modules-umd@^7.18.6": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" - integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== dependencies: "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex@^7.22.3": version "7.22.3" @@ -1040,13 +1076,13 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.22.3" -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": +"@babel/plugin-transform-object-super@^7.18.6": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" "@babel/plugin-transform-optional-catch-binding@^7.22.3": version "7.22.3" @@ -1090,84 +1126,7 @@ "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" - integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-transform-numeric-separator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" - integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-transform-object-rest-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" - integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.5" - -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - -"@babel/plugin-transform-optional-catch-binding@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" - integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-transform-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz#1003762b9c14295501beb41be72426736bedd1e0" - integrity sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-transform-parameters@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-methods@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" - integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-property-in-object@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" - integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-transform-property-literals@^7.22.5": +"@babel/plugin-transform-property-literals@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== @@ -1181,14 +1140,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.21.5" -"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.22.5": +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx-development@^7.16.7", "@babel/plugin-transform-react-jsx-development@^7.22.5": +"@babel/plugin-transform-react-jsx-development@^7.16.7", "@babel/plugin-transform-react-jsx-development@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== @@ -1209,7 +1168,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.18.6", "@babel/plugin-transform-react-jsx@^7.22.3": +"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.22.3": version "7.22.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.3.tgz#5a1f380df3703ba92eb1a930a539c6d88836f690" integrity sha512-JEulRWG2f04a7L8VWaOngWiK6p+JOSpB+DAtwfJgOaej1qdbNxqtK7MwTBHjUA10NeFcszlFNqCdbRcirzh2uQ== @@ -1220,7 +1179,18 @@ "@babel/plugin-syntax-jsx" "^7.21.4" "@babel/types" "^7.22.3" -"@babel/plugin-transform-react-pure-annotations@^7.22.5": +"@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" + integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.15" + +"@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== @@ -1236,7 +1206,7 @@ "@babel/helper-plugin-utils" "^7.21.5" regenerator-transform "^0.15.1" -"@babel/plugin-transform-reserved-words@^7.22.5": +"@babel/plugin-transform-reserved-words@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== @@ -1255,7 +1225,7 @@ babel-plugin-polyfill-regenerator "^0.5.0" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.22.5": +"@babel/plugin-transform-shorthand-properties@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== @@ -1267,24 +1237,24 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" -"@babel/plugin-transform-sticky-regex@^7.22.5": +"@babel/plugin-transform-sticky-regex@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.22.5": +"@babel/plugin-transform-template-literals@^7.18.9": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.22.5": +"@babel/plugin-transform-typeof-symbol@^7.18.9": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== @@ -1316,15 +1286,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.1" "@babel/helper-plugin-utils" "^7.21.5" -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-regex@^7.22.5": +"@babel/plugin-transform-unicode-regex@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== @@ -1332,14 +1294,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex@^7.22.3": version "7.22.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.3.tgz#7c14ee33fa69782b0101d0f7143d3fc73ce00700" @@ -1480,7 +1434,7 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.21.9", "@babel/template@^7.3.3": +"@babel/template@^7.20.7", "@babel/template@^7.21.9", "@babel/template@^7.3.3": version "7.21.9" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb" integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ== @@ -1489,7 +1443,16 @@ "@babel/parser" "^7.21.9" "@babel/types" "^7.21.5" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.22.1", "@babel/traverse@^7.7.2": +"@babel/template@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.22.1", "@babel/traverse@^7.7.2": version "7.22.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.4.tgz#c3cf96c5c290bd13b55e29d025274057727664c0" integrity sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ== @@ -1505,7 +1468,23 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/traverse@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.15.tgz#75be4d2d6e216e880e93017f4e2389aeb77ef2d9" + integrity sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.22.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071" integrity sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA== @@ -1514,6 +1493,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.22.15", "@babel/types@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.15.tgz#266cb21d2c5fd0b3931e7a91b6dd72d2f617d282" + integrity sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.15" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -4764,13 +4752,20 @@ resolved "https://registry.yarnpkg.com/@undecaf/barcode-detector-polyfill/-/barcode-detector-polyfill-0.9.16.tgz#3033d55536e720ddc28e590bfccc2efdefc0bea5" integrity sha512-wijWm5sHavKBpd0TWuQ++5XEFf9E+8zmrD5ezGJipNj+SbziKm2MQqNRAOpGN+LHGYHF00MwEJafYxNz3LWzkA== dependencies: - "@undecaf/zbar-wasm" "^0.9.14" + "@undecaf/zbar-wasm" "^0.9.12" "@undecaf/zbar-wasm@^0.9.12": version "0.9.13" resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.13.tgz#dc17280770a8d075205c32dd4d1ce95faec0546f" integrity sha512-Xl4eyfU8nwtTHF4Wi0Qyklq8BC6BmW++GYlN0gCeIgrqeIDmV7xp3nNpIN4fQpIbdvq3lvgnvVcBKAiYn9FvzA== +"@undecaf/zbar-wasm@^0.9.14": + version "0.9.16" + resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.16.tgz#ba404602ec90ae20b05fe83c8a68a4c50951f643" + integrity sha512-T5PcT6g+tLScGjR4WmnRErNvfKqEc3kRg2ux14wHmIDNbvNeXa0BkFK19PRK/jb6zGy5NyWtn4ko6KeNuZc/fQ== + dependencies: + jschardet "^3.0.0" + "@vitejs/plugin-react-refresh@^1.3.6": version "1.3.6" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.6.tgz#19818392db01e81746cfeb04e096ab3010e79fe3" @@ -5231,11 +5226,6 @@ any-promise@^1.0.0: resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== -any-signal@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-4.1.1.tgz#928416c355c66899e6b2a91cad4488f0324bae03" - integrity sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA== - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -5781,14 +5771,7 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== -axobject-query@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" - integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== - dependencies: - dequal "^2.0.3" - -axobject-query@^3.2.1: +axobject-query@^3.1.1, axobject-query@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== @@ -6469,6 +6452,16 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4 node-releases "^2.0.12" update-browserslist-db "^1.0.11" +browserslist@^4.21.9: + version "4.21.10" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== + dependencies: + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" + update-browserslist-db "^1.0.11" + bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -6706,6 +6699,11 @@ caniuse-lite@^1.0.30001406: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001505.tgz#10a343e49d31cbbfdae298ef73cb0a9f46670dc5" integrity sha512-jaAOR5zVtxHfL0NjZyflVTtXm3D3J9P15zSJ7HmQF8dSKGA6tqzQq+0ZI3xkjyQj46I4/M0K2GbMpcAFOcbr3A== +caniuse-lite@^1.0.30001517: + version "1.0.30001527" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz#813826554828245ccee776c850566dce12bdeaba" + integrity sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ== + canonicalize@^1.0.1, canonicalize@^1.0.3: version "1.0.8" resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.8.tgz#24d1f1a00ed202faafd9bf8e63352cd4450c6df1" @@ -8443,30 +8441,6 @@ deep-eql@^4.1.2: dependencies: type-detect "^4.0.0" -deep-equal@^2.0.5: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" - integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.0" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -8965,6 +8939,11 @@ electron-to-chromium@^1.4.411: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.425.tgz#399df13091b836d28283a545c25c8e4d9da86da8" integrity sha512-wv1NufHxu11zfDbY4fglYQApMswleE9FL/DSeyOyauVXDZ+Kco96JK/tPfBUaDqfRarYp2WH2hJ/5UnVywp9Jg== +electron-to-chromium@^1.4.477: + version "1.4.508" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz#5641ff2f5ba11df4bd960fe6a2f9f70aa8b9af96" + integrity sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg== + electron@^20.0.3: version "20.3.12" resolved "https://registry.yarnpkg.com/electron/-/electron-20.3.12.tgz#5884b848f62daa6a3d07bbb9e29498c2da5da667" @@ -9168,21 +9147,6 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - es-module-lexer@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" @@ -11958,7 +11922,7 @@ insert-module-globals@^7.2.1: undeclared-identifiers "^1.1.2" xtend "^4.0.0" -internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: +internal-slot@^1.0.3, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -12039,7 +12003,7 @@ is-alphanumerical@^2.0.0: is-alphabetical "^2.0.0" is-decimal "^2.0.0" -is-arguments@^1.0.4, is-arguments@^1.1.1: +is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -12286,11 +12250,6 @@ is-interactive@^1.0.0: resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -13602,6 +13561,11 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== +jschardet@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-3.0.0.tgz#898d2332e45ebabbdb6bf2feece9feea9a99e882" + integrity sha512-lJH6tJ77V8Nzd5QWRkFYCLc13a3vADkh3r/Fi8HupZGWk2OVVDfnZP8V/VgQgZ+lzW0kG2UGb5hFgt3V3ndotQ== + jsdom@^16.4.0, jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -15921,6 +15885,11 @@ node-releases@^2.0.12: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== + node-wget-js@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/node-wget-js/-/node-wget-js-1.0.1.tgz#2390bf9c9f99f280cc7a221d07d096103161e78c" @@ -18080,7 +18049,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.4.0: +qs@^6.11.0, qs@^6.4.0: version "6.11.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== @@ -18522,7 +18491,7 @@ regex-parser@^2.2.11: resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== -regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: +regexp.prototype.flags@^1.4.3: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== @@ -19319,6 +19288,11 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -19847,13 +19821,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - stream-browserify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -21838,7 +21805,7 @@ webpack-dev-server@^4.6.0: "@types/serve-index" "^1.9.1" "@types/serve-static" "^1.13.10" "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.5" + "@types/ws" "^8.5.1" ansi-html-community "^0.0.8" bonjour-service "^1.0.11" chokidar "^3.5.3" From 8742c407be2173bdde339a1fe1ea8a72cf26843e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 6 Sep 2023 09:19:19 +0100 Subject: [PATCH 653/722] add readline-sync to dev deps --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 0559d3e93..4691b5a42 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,8 @@ "@changesets/cli": "^2.25.2", "eslint-config-custom": "*", "prettier": "latest", - "turbo": "latest" + "turbo": "latest", + "readline-sync": "1.4.10" }, "engines": { "node": ">=16.0.0" From 9f7ee587158985eede3e0904b7a190e7bfd53741 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 6 Sep 2023 09:21:36 +0100 Subject: [PATCH 654/722] set version to 0.6.0 --- Cargo.lock | 6 +- .../agent-language/package.json | 2 +- .../direct-message-language/package.json | 2 +- .../neighbourhood-language/package.json | 2 +- bootstrap-languages/p-diff-sync/package.json | 2 +- .../perspective-language/package.json | 2 +- cli/Cargo.toml | 4 +- connect/package.json | 2 +- core/package.json | 2 +- docs/package.json | 2 +- executor/package.json | 2 +- executor/src/core/Config.ts | 2 +- package.json | 2 +- rust-client/Cargo.toml | 2 +- rust-executor/package.json | 5 +- test-runner/package.json | 2 +- tests/js/package.json | 107 +++++++++--------- ui/package.json | 2 +- ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/tauri.conf.json | 2 +- 20 files changed, 76 insertions(+), 78 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8918dcac..b7d3ec307 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,7 +14,7 @@ dependencies = [ [[package]] name = "ad4m" -version = "0.5.0" +version = "0.6.0" dependencies = [ "ad4m-client", "anyhow", @@ -37,7 +37,7 @@ dependencies = [ [[package]] name = "ad4m-client" -version = "0.5.0" +version = "0.6.0" dependencies = [ "anyhow", "async-tungstenite", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "ad4m-launcher" -version = "0.5.0" +version = "0.6.0" dependencies = [ "ad4m-client", "directories 4.0.1", diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json index 60491b26c..7ef210a85 100644 --- a/bootstrap-languages/agent-language/package.json +++ b/bootstrap-languages/agent-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/agent-language", - "version": "0.5.0", + "version": "0.6.0", "description": "AD4M Language implementation for Holochain profile DNA", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json index d227a9c41..acb1935b4 100644 --- a/bootstrap-languages/direct-message-language/package.json +++ b/bootstrap-languages/direct-message-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/direct-message-language", - "version": "0.5.0", + "version": "0.6.0", "description": "A templateable AD4M Language for personal, per-agent direct message Languages", "main": "index.js", "type": "module", diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json index df00db06b..9c73c8409 100644 --- a/bootstrap-languages/neighbourhood-language/package.json +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/neighbourhood-language", - "version": "0.5.0", + "version": "0.6.0", "description": "This is a Language for storing AD4M neighbourhood objects", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index 0aaef9d2c..e10f1e6c7 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-diff-sync", - "version": "0.5.0", + "version": "0.6.0", "description": "An AD4M language for syncing mutations to a share perspective", "main": "index.js", "scripts": { diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json index ccda57f43..7cc94986d 100644 --- a/bootstrap-languages/perspective-language/package.json +++ b/bootstrap-languages/perspective-language/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/perspective-language", - "version": "0.5.0", + "version": "0.6.0", "description": "An AD4M Language for perspective snapshot expressions stored on IPFS", "main": "index.js", "scripts": { diff --git a/cli/Cargo.toml b/cli/Cargo.toml index bdf0448a9..b61703815 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.5.0" +version = "0.6.0" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,7 +12,7 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.5.0" } +ad4m-client = { path = "../rust-client", version = "0.6.0" } rust-executor = { path = "../rust-executor" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } diff --git a/connect/package.json b/connect/package.json index a0c5b569c..5b11fb7cd 100644 --- a/connect/package.json +++ b/connect/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-connect", - "version": "0.5.0", + "version": "0.6.0", "description": "Lib for handling everything needed to setup a connection to a local or remote ad4m-executor", "license": "CAL-1.0", "main": "dist/web.js", diff --git a/core/package.json b/core/package.json index 019843179..73341916a 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m", - "version": "0.5.0", + "version": "0.6.0", "description": "*The Agent-Centric Distributed Application Meta-ontology* or just: *Agent-Centric DApp Meta-ontology* * A new meta-ontology for interoperable, decentralized application design * A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends * The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network", "main": "lib/index.cjs", "module": "lib/index.js", diff --git a/docs/package.json b/docs/package.json index f3555951c..19403d4a9 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-docs", - "version": "0.5.0", + "version": "0.6.0", "description": "Documentation for AD4M", "license": "CAL-1.0", "homepage": "./", diff --git a/executor/package.json b/executor/package.json index d7d137637..575172e95 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.5.0", + "version": "0.6.0", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "main": "lib/main.js", "files": [ diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index b9e8ae1e1..2eb78cc31 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import * as fs from 'fs'; import { Address, Expression } from '@perspect3vism/ad4m'; -export let ad4mExecutorVersion = "0.5.0"; +export let ad4mExecutorVersion = "0.6.0"; export let agentLanguageAlias = "did"; export let languageLanguageAlias = "lang"; export let neighbourhoodLanguageAlias = "neighbourhood"; diff --git a/package.json b/package.json index 4691b5a42..14676892a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-monorepo", - "version": "0.5.0", + "version": "0.6.0", "workspaces": [ "core", "docs", diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index a74c8e144..7e4ca8c31 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.5.0" +version = "0.6.0" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" diff --git a/rust-executor/package.json b/rust-executor/package.json index 46326d25b..85f5b2898 100644 --- a/rust-executor/package.json +++ b/rust-executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/rust-ad4m-executor", - "version": "0.5.0", + "version": "0.6.0", "description": "Rust built version of the ad4m-executor, exposing GraphQL methods for AD4M", "main": "", "files": [], @@ -31,6 +31,5 @@ "devDependencies": { "@perspect3vism/ad4m-executor": "*" }, - "dependencies": { - } + "dependencies": {} } diff --git a/test-runner/package.json b/test-runner/package.json index 88800871f..b94e4afbf 100644 --- a/test-runner/package.json +++ b/test-runner/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-test", - "version": "0.5.0", + "version": "0.6.0", "description": "Testing library to test ad4m languages", "license": "MIT", "bin": "./build/cli.js", diff --git a/tests/js/package.json b/tests/js/package.json index 11371ef28..314e6368f 100644 --- a/tests/js/package.json +++ b/tests/js/package.json @@ -1,56 +1,55 @@ { - "name": "@perspect3vism/ad4m-integration-tests", - "version": "0.5.0", - "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", - "type": "module", - "scripts": { - "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", - "test:windows": "yarn run prepare-test:windows && yarn run test-all:windows && node scripts/cleanTestingData.js", - "test-all:windows": "node scripts/cleanup.js && yarn run test-simple && node scripts/cleanup.js && yarn run test-app && node scripts/cleanup.js && yarn run test-auth && node scripts/cleanup.js && yarn run test-integration && node scripts/cleanup.js && yarn run test-prolog-and-literals", - "test-all": "yarn run test-simple && yarn run test-app && yarn run test-auth && yarn run test-integration && yarn run test-prolog-and-literals", - "test-simple": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts", - "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", - "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", - "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", - "test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", - "prepare-test": "run-script-os", - "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", - "prepare-test:linux": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", - "prepare-test:windows": "powershell -ExecutionPolicy Bypass -File ./scripts/build-test-language.ps1 && powershell -ExecutionPolicy Bypass -File ./scripts/prepareTestDirectory.ps1 && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", - - "inject-language-language": "node scripts/injectLanguageLanguageBundle.js", - "inject-publishing-agent": "node scripts/injectPublishingAgent.js", - "publish-test-languages": "ts-node-esm --experimental-specifier-resolution=node --files ./utils/publishTestLangs.ts" - }, - "devDependencies": { - "@apollo/client": "3.7.10", - "@peculiar/webcrypto": "^1.1.7", - "@perspect3vism/ad4m": "*", - "@types/chai": "*", - "@types/chai-as-promised": "*", - "@types/expect": "*", - "@types/faker": "^5.5.7", - "@types/fs-extra": "^9.0.12", - "@types/js-yaml": "^4.0.2", - "@types/lowdb": "^1.0.11", - "@types/mocha": "*", - "@types/node": "^14.14.22", - "@types/node-fetch": "^2.5.11", - "@types/sinon": "*", - "chai": "*", - "chai-as-promised": "*", - "faker": "^5.1.0", - "mocha": "*", - "node-fetch": "^3.3.0", - "node-wget-js": "^1.0.1", - "react": "^17.0.1", - "run-script-os": "^1.1.6", - "sinon": "*", - "ts-mocha": "*", - "ts-node": "10.9.1", - "typescript": "^4.6.2", - "unzipper": "^0.10.11", - "ws": "8.13.0", - "kill-process-by-name": "^1.0.5" - } + "name": "@perspect3vism/ad4m-integration-tests", + "version": "0.6.0", + "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", + "type": "module", + "scripts": { + "test": "node scripts/cleanTestingData.js && yarn run prepare-test && yarn run test-all && node scripts/cleanTestingData.js", + "test:windows": "yarn run prepare-test:windows && yarn run test-all:windows && node scripts/cleanTestingData.js", + "test-all:windows": "node scripts/cleanup.js && yarn run test-simple && node scripts/cleanup.js && yarn run test-app && node scripts/cleanup.js && yarn run test-auth && node scripts/cleanup.js && yarn run test-integration && node scripts/cleanup.js && yarn run test-prolog-and-literals", + "test-all": "yarn run test-simple && yarn run test-app && yarn run test-auth && yarn run test-integration && yarn run test-prolog-and-literals", + "test-simple": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/simple.test.ts", + "test-integration": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/integration.test.ts", + "test-app": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/app.test.ts", + "test-auth": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/authentication.test.ts", + "test-prolog-and-literals": "ts-mocha -p tsconfig.json --timeout 1200000 --exit tests/prolog-and-literals.test.ts", + "prepare-test": "run-script-os", + "prepare-test:macos": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", + "prepare-test:linux": "./scripts/build-test-language.sh && ./scripts/prepareTestDirectory.sh && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", + "prepare-test:windows": "powershell -ExecutionPolicy Bypass -File ./scripts/build-test-language.ps1 && powershell -ExecutionPolicy Bypass -File ./scripts/prepareTestDirectory.ps1 && node scripts/get-builtin-test-langs.js && yarn run inject-language-language && yarn run publish-test-languages && yarn run inject-publishing-agent", + "inject-language-language": "node scripts/injectLanguageLanguageBundle.js", + "inject-publishing-agent": "node scripts/injectPublishingAgent.js", + "publish-test-languages": "ts-node-esm --experimental-specifier-resolution=node --files ./utils/publishTestLangs.ts" + }, + "devDependencies": { + "@apollo/client": "3.7.10", + "@peculiar/webcrypto": "^1.1.7", + "@perspect3vism/ad4m": "*", + "@types/chai": "*", + "@types/chai-as-promised": "*", + "@types/expect": "*", + "@types/faker": "^5.5.7", + "@types/fs-extra": "^9.0.12", + "@types/js-yaml": "^4.0.2", + "@types/lowdb": "^1.0.11", + "@types/mocha": "*", + "@types/node": "^14.14.22", + "@types/node-fetch": "^2.5.11", + "@types/sinon": "*", + "chai": "*", + "chai-as-promised": "*", + "faker": "^5.1.0", + "mocha": "*", + "node-fetch": "^3.3.0", + "node-wget-js": "^1.0.1", + "react": "^17.0.1", + "run-script-os": "^1.1.6", + "sinon": "*", + "ts-mocha": "*", + "ts-node": "10.9.1", + "typescript": "^4.6.2", + "unzipper": "^0.10.11", + "ws": "8.13.0", + "kill-process-by-name": "^1.0.5" + } } diff --git a/ui/package.json b/ui/package.json index ca66cc473..01a8a1b6a 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-launcher", - "version": "0.5.0", + "version": "0.6.0", "private": true, "type": "module", "dependencies": { diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 35c2f1cb1..5b3c974d8 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-launcher" -version = "0.5.0" +version = "0.6.0" description = "Administration of ad4m services" authors = ["Kaichao Sun"] license = "" diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index e65ee00e2..ba585ed7c 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "package": { "productName": "AD4M", - "version": "0.5.0" + "version": "0.6.0" }, "build": { "distDir": "../dist", From c6f8b140ff02854d8ff7bdd783bf818c6a752cec Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 6 Sep 2023 15:08:44 +0100 Subject: [PATCH 655/722] update oldest support version so state is deleted on first start of 0.6.0 --- rust-executor/src/globals.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index 191796263..4ac6ee3c2 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -14,7 +14,7 @@ pub struct OldestVersion { lazy_static! { /// The oldest version of the AD4M protocol that this executor supports pub static ref OLDEST_VERSION: OldestVersion = OldestVersion { - version: String::from("0.4.0"), + version: String::from("0.6.0"), clear_state: true, }; } From f8e67c80dd312b78dc3d3d9882013d1c6e5c8b77 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 6 Sep 2023 15:15:30 +0100 Subject: [PATCH 656/722] for this release add the option to delete the whole appdata --- rust-executor/src/init.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 3bb82d4ba..afb50ecc5 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -48,7 +48,7 @@ pub fn init( if !compare.matches(&last_seen_version) { // Agents old ad4m version is too old, lets clean their state warn!("Agents old ad4m version is too old, lets clean their state"); - clean_ad4m_data(&app_data_path, OLDEST_VERSION.clear_state)?; + clean_ad4m_data(&app_data_path, OLDEST_VERSION.clear_state, true)?; //Create the last seen version file fs::write(last_seen_file, AD4M_VERSION.to_string())?; } @@ -80,6 +80,7 @@ fn write_seed_config( fn clean_ad4m_data( app_data_path: &PathBuf, should_clear_state: bool, + should_clear_everything: bool ) -> Result<(), Box> { if app_data_path.exists() { let binary_path = app_data_path.join("binary"); @@ -128,6 +129,25 @@ fn clean_ad4m_data( fs::remove_file(perspective_path)?; } }; + + if should_clear_everything { + let swipl_path = app_data_path.join("swipl"); + if fs::metadata(&swipl_path).is_ok() { + fs::remove_dir_all(swipl_path)?; + }; + let ipfs_path = app_data_path.join("ipfs"); + if fs::metadata(&ipfs_path).is_ok() { + fs::remove_dir_all(ipfs_path)?; + }; + let ad4m_path = app_data_path.join("ad4m"); + if fs::metadata(&ad4m_path).is_ok() { + fs::remove_dir_all(ad4m_path)?; + }; + let binary_path = app_data_path.join("binary"); + if fs::metadata(&binary_path).is_ok() { + fs::remove_dir_all(binary_path)?; + }; + } } Ok(()) } From 21103b1926bc4df4d5fdc847049c9e9e2e165e02 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 7 Sep 2023 12:55:37 +0100 Subject: [PATCH 657/722] AD4M now called ADAM Launcher --- ui/src-tauri/tauri.conf.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index ba585ed7c..ddee707cb 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,6 +1,6 @@ { "package": { - "productName": "AD4M", + "productName": "ADAM Launcher", "version": "0.6.0" }, "build": { @@ -62,7 +62,7 @@ "windows": [ { "label": "splashscreen", - "title": "AD4M Launcher", + "title": "ADAM Launcher", "width": 1000, "height": 700, "resizable": true, From 88f3d9553c804978fe61e4aa3611e8aa76f4bfd0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 7 Sep 2023 13:43:14 +0100 Subject: [PATCH 658/722] use the default kitsune params again --- rust-executor/src/holochain_service/mod.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index a8edb63ea..454ba7dbe 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -192,18 +192,18 @@ impl HolochainService { config.admin_interfaces = None; let mut kitsune_config = KitsuneP2pConfig::default(); - let mut tuning_params = KitsuneP2pTuningParams::default(); + // let mut tuning_params = KitsuneP2pTuningParams::default(); - // How long should we hold off talking to a peer - // we've previously gotten errors speaking to. - // [Default: 5 minute; now updated to 2 minutes] - tuning_params.gossip_peer_on_error_next_gossip_delay_ms = 1000 * 60 * 2; + // // How long should we hold off talking to a peer + // // we've previously gotten errors speaking to. + // // [Default: 5 minute; now updated to 2 minutes] + // tuning_params.gossip_peer_on_error_next_gossip_delay_ms = 1000 * 60 * 2; - // How often should we update and publish our agent info? - // [Default: 5 minutes; now updated to 2 minutes] - tuning_params.gossip_agent_info_update_interval_ms = 1000 * 60 * 2; + // // How often should we update and publish our agent info? + // // [Default: 5 minutes; now updated to 2 minutes] + // tuning_params.gossip_agent_info_update_interval_ms = 1000 * 60 * 2; - kitsune_config.tuning_params = Arc::new(tuning_params); + // kitsune_config.tuning_params = Arc::new(tuning_params); if local_config.use_bootstrap { kitsune_config.bootstrap_service = Some(Url2::parse(local_config.bootstrap_url)); From ec4858c84da06b7cb7b1d10a3164543a4630115c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 7 Sep 2023 13:59:23 +0100 Subject: [PATCH 659/722] add error catching for perspective diff sync zome calling --- bootstrap-languages/p-diff-sync/linksAdapter.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index df233c254..5b65f10d7 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -54,6 +54,8 @@ export class LinkAdapter implements LinkSyncAdapter { if (current_revision && Buffer.isBuffer(current_revision)) { this.myCurrentRevision = current_revision; } + } catch { + console.error("PerspectiveDiffSync.sync(); got error", e); } finally { this.currentRevisionMutex.unlock(); } @@ -171,6 +173,8 @@ export class LinkAdapter implements LinkSyncAdapter { `); this.gossipLogCount = 0; } + } catch (e) { + console.error("PerspectiveDiffSync.gossip(); got error", e); } finally { this.peersMutex.unlock(); this.currentRevisionMutex.unlock(); @@ -195,6 +199,8 @@ export class LinkAdapter implements LinkSyncAdapter { this.myCurrentRevision = res; } return res as string; + } catch (e) { + console.error("PerspectiveDiffSync.commit(); got error", e); } finally { this.currentRevisionMutex.unlock(); } @@ -227,6 +233,8 @@ export class LinkAdapter implements LinkSyncAdapter { try { await this.peersMutex.lock(); this.peers.set(broadcast_author, { currentRevision: reference_hash, lastSeen: new Date() }); + } catch (e) { + console.error("PerspectiveDiffSync.handleHolochainSignal: got error", e); } finally { this.peersMutex.unlock(); } From ff147724630676588cdd875033fa89c87d9cc22c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 7 Sep 2023 14:05:01 +0100 Subject: [PATCH 660/722] use conditional npm tag based on prerelease status of version --- .github/workflows/publish_staging.yml | 31 +++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index d9123f77a..754ad630b 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -115,7 +115,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/ADAM\ Launcher${{ steps.extract_version.outputs.version }}_amd64.deb asset_name: ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb asset_content_type: application/octet-stream @@ -139,7 +139,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg + asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher${{ steps.extract_version.outputs.version }}_x64.dmg asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg asset_content_type: application/octet-stream @@ -199,6 +199,21 @@ jobs: with: node-version: 16.x + - name: Extract version + id: extract_version + uses: Saionaro/extract-package-version@v1.1.1 + with: + path: ui + + - name: Check if string contains prerelease + run: | + STRING="${{ steps.extract_version.outputs.version }}" + if [[ $STRING == *"prerelease"* ]]; then + echo "CONTAINS_PRERELEASE=true" >> $GITHUB_ENV + else + echo "CONTAINS_PRERELEASE=false" >> $GITHUB_ENV + fi + - name: Install GO uses: actions/setup-go@v4 with: @@ -214,30 +229,42 @@ jobs: - name: Build modules run: yarn run build-libs + + - name: Set NPM tag + run: | + if [ "$CONTAINS_PRERELEASE" = "true" ]; then + echo "NPM_TAG=next" >> $GITHUB_ENV + else + echo "NPM_TAG=latest" >> $GITHUB_ENV + fi - name: Publish core uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: core/package.json + tag: ${{ env.NPM_TAG }} - name: Publish connect uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: connect/package.json + tag: ${{ env.NPM_TAG }} - name: Publish executor uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: executor/package.json + tag: ${{ env.NPM_TAG }} - name: Publish Test runner uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} package: test-runner/package.json + tag: ${{ env.NPM_TAG }} crates-publish: From 1c64d25eb6cc52384f555c03633fcfa12206e20d Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 7 Sep 2023 14:10:47 +0100 Subject: [PATCH 661/722] add more mutex locking logs --- bootstrap-languages/p-diff-sync/linksAdapter.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index 5b65f10d7..425d28573 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -48,13 +48,15 @@ export class LinkAdapter implements LinkSyncAdapter { async sync(): Promise { try { + console.log("PerspectiveDiffSync.sync(); Getting currentRevision lock"); await this.currentRevisionMutex.lock(); + console.log("PerspectiveDiffSync.sync(); Got currentRevision lock"); //@ts-ignore let current_revision = await this.hcDna.call(DNA_NICK, ZOME_NAME, "sync", null); if (current_revision && Buffer.isBuffer(current_revision)) { this.myCurrentRevision = current_revision; } - } catch { + } catch (e) { console.error("PerspectiveDiffSync.sync(); got error", e); } finally { this.currentRevisionMutex.unlock(); @@ -68,8 +70,11 @@ export class LinkAdapter implements LinkSyncAdapter { let lostPeers: DID[] = []; try { + console.log("PerspectiveDiffSync.gossip(); Getting peers lock"); await this.peersMutex.lock(); + console.log("PerspectiveDiffSync.gossip(); Got peers lock"); await this.currentRevisionMutex.lock(); + console.log("PerspectiveDiffSync.gossip(); Got currentRevision lock"); this.peers.forEach( (peerInfo, peer) => { if (peerInfo.lastSeen.getTime() + 10000 < new Date().getTime()) { lostPeers.push(peer); @@ -189,7 +194,9 @@ export class LinkAdapter implements LinkSyncAdapter { async commit(diff: PerspectiveDiff): Promise { try { + console.log("PerspectiveDiffSync.commit(); Getting currentRevision lock"); await this.currentRevisionMutex.lock(); + console.log("PerspectiveDiffSync.commit(); Got currentRevision lock"); let prep_diff = { additions: diff.additions.map((diff) => prepareLinkExpression(diff)), removals: diff.removals.map((diff) => prepareLinkExpression(diff)) @@ -231,7 +238,9 @@ export class LinkAdapter implements LinkSyncAdapter { // broadcast_author: ${broadcast_author} // `) try { + console.log("PerspectiveDiffSync.handleHolochainSignal: Getting peers lock"); await this.peersMutex.lock(); + console.log("PerspectiveDiffSync.handleHolochainSignal: Got peers lock"); this.peers.set(broadcast_author, { currentRevision: reference_hash, lastSeen: new Date() }); } catch (e) { console.error("PerspectiveDiffSync.handleHolochainSignal: got error", e); @@ -292,6 +301,7 @@ class Mutex { async lock(): Promise { if (this.locked) { + console.log("Was not able to get lock on mutex adding to waitingResolvers"); return new Promise((resolve) => { this.waitingResolvers.push(resolve); }); @@ -302,6 +312,7 @@ class Mutex { unlock(): void { if (!this.locked) return; if (this.waitingResolvers.length > 0) { + console.log("Called unlock and got some waitingResolvers to finish"); const resolve = this.waitingResolvers.shift(); if (resolve) resolve(); } else { From 7b0c1e85fcecb0a768c999d74a38ea03adf5c1ff Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 8 Sep 2023 15:39:55 +0100 Subject: [PATCH 662/722] fix rust ad4m versions --- rust-executor/Cargo.toml | 2 +- rust-executor/src/globals.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 38866176c..7539096d0 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust-executor" -version = "0.5.0" +version = "0.6.0" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" diff --git a/rust-executor/src/globals.rs b/rust-executor/src/globals.rs index 4ac6ee3c2..f2835cdb3 100644 --- a/rust-executor/src/globals.rs +++ b/rust-executor/src/globals.rs @@ -2,7 +2,7 @@ use lazy_static::lazy_static; lazy_static! { /// The current version of AD4M - pub static ref AD4M_VERSION: String = String::from("0.5.0"); + pub static ref AD4M_VERSION: String = String::from("0.6.0"); } /// Struct representing oldest supported version and indicator if state should be cleared if update is required From b46905ed8d72eed6edbb47baee35220881b854bb Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 8 Sep 2023 15:40:14 +0100 Subject: [PATCH 663/722] fix generate bootstrap command --- cli/src/dev.rs | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/cli/src/dev.rs b/cli/src/dev.rs index 57ec10b91..ec9782d28 100644 --- a/cli/src/dev.rs +++ b/cli/src/dev.rs @@ -88,7 +88,7 @@ pub async fn run(command: DevFunctions) -> Result<()> { temp_publish_bootstrap_path.to_str().unwrap() ); - let run_fut = async move { + tokio::task::spawn(async move { rust_executor::run(rust_executor::Ad4mConfig { app_data_path: Some(data_path.to_str().unwrap().to_string()), network_bootstrap_seed: Some( @@ -109,10 +109,11 @@ pub async fn run(command: DevFunctions) -> Result<()> { hc_bootstrap_url: None, }) .await; - }; + }); //Spawn in a new thread so we can continue reading logs in loop below, whilst publishing is happening - let publish_fut = async move { + tokio::task::spawn(async move { + green_ln!("Runing publish fut"); tokio::time::sleep(std::time::Duration::from_millis(5000)).await; green_ln!("AD4M ready for publishing\n"); start_publishing( @@ -121,16 +122,18 @@ pub async fn run(command: DevFunctions) -> Result<()> { lang_lang_source.clone(), ) .await; - }; + }).await; - tokio::select! { - _ = run_fut => { - green_ln!("AD4M finished running\n"); - } - _ = publish_fut => { - green_ln!("AD4M finished publishing\n"); - } - } + // tokio::select! { + // biased; + + // _ = run_fut => { + // green_ln!("AD4M finished running\n"); + // } + // _ = publish_fut => { + // green_ln!("AD4M finished publishing\n"); + // } + // } } }; Ok(()) From c5b6156829109e2bb8aada90df2e89d8b87fe6ca Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 8 Sep 2023 15:40:28 +0100 Subject: [PATCH 664/722] add new mainnet seed with more link language logging --- rust-executor/src/mainnet_seed.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index 8e5a857ad..3a00b66b9 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -3,7 +3,7 @@ "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" ], "knownLinkLanguages": [ - "QmzSYwdgqaaRqcyz12zW9EhfjTsxHhqf9HBGpUgzyvpqgYNfL6b" + "QmzSYwdixogydCMPbSJCF6gqrr8igYkf5Jti7RLvRLc9jPSXwZR" ], "directMessageLanguage": "QmzSYwdcZPQToRt7653T2zAq8BEt8u7dZ7jyzWMaRTsSxMc4HuZ", "agentLanguage": "QmzSYwdfHAE9cvfvCkNZFWH9L5y2QcKBiivNZYU53UR4hE8a8Dx", From e09fb03db37e5dad5f2574746a2816c876bfd9be Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Mon, 11 Sep 2023 14:23:16 +0530 Subject: [PATCH 665/722] Fix launcher linux build --- Cargo.lock | 201 +++++++++-------------------------------------------- Cargo.toml | 3 +- 2 files changed, 33 insertions(+), 171 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b7d3ec307..5e447585c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -421,17 +421,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "async-broadcast" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d26004fe83b2d1cd3a97609b21e39f9a31535822210fe83205d2ce48866ea61" -dependencies = [ - "event-listener", - "futures-core", - "parking_lot 0.12.1", -] - [[package]] name = "async-channel" version = "1.9.0" @@ -2373,6 +2362,17 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f" +[[package]] +name = "dbus" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" +dependencies = [ + "libc", + "libdbus-sys", + "winapi 0.3.9", +] + [[package]] name = "debugid" version = "0.8.0" @@ -2530,7 +2530,7 @@ dependencies = [ "sec1 0.3.0", "serde", "serde_bytes", - "sha1 0.10.5", + "sha1", "sha2 0.10.7", "signature 1.6.4", "spki 0.6.0", @@ -3561,27 +3561,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "enumflags2" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" -dependencies = [ - "proc-macro2 1.0.66", - "quote 1.0.33", - "syn 2.0.29", -] - [[package]] name = "enumset" version = "1.1.2" @@ -3722,7 +3701,7 @@ dependencies = [ "hyper 0.14.27", "pin-project", "rand 0.8.5", - "sha1 0.10.5", + "sha1", "simdutf8", "tokio", "utf-8", @@ -4804,7 +4783,7 @@ dependencies = [ "http", "httpdate", "mime", - "sha1 0.10.5", + "sha1", ] [[package]] @@ -6923,6 +6902,15 @@ version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +[[package]] +name = "libdbus-sys" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" +dependencies = [ + "pkg-config", +] + [[package]] name = "libffi" version = "3.2.0" @@ -7289,9 +7277,9 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "mac-notification-sys" -version = "0.5.9" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9402858e87f85f88bf518bd2e68450640df1c99b1ddb3ea28c4d5d823bb54cdd" +checksum = "51fca4d74ff9dbaac16a01b924bc3693fa2bba0862c2c633abc73f9a8ea21f64" dependencies = [ "cc", "dirs-next", @@ -7968,15 +7956,12 @@ dependencies = [ [[package]] name = "notify-rust" version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc2e370356160e41aba3fd0fbac26d86a89ddd2ac4300c03de999a77cfa2509" +source = "git+https://github.com/coasys/notify-rust.git#b08ab0233810d365d1e914998ff81002090753a6" dependencies = [ + "dbus", + "log", "mac-notification-sys", - "serde", "tauri-winrt-notification", - "zbus", - "zvariant", - "zvariant_derive", ] [[package]] @@ -8380,16 +8365,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "ordered-stream" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44630c059eacfd6e08bdaa51b1db2ce33119caa4ddc1235e923109aa5f25ccb1" -dependencies = [ - "futures-core", - "pin-project-lite", -] - [[package]] name = "os_info" version = "3.7.0" @@ -10193,7 +10168,7 @@ dependencies = [ [[package]] name = "rust-executor" -version = "0.5.0" +version = "0.6.0" dependencies = [ "argon2", "base64 0.21.3", @@ -10984,15 +10959,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha1" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" -dependencies = [ - "sha1_smol", -] - [[package]] name = "sha1" version = "0.10.5" @@ -11004,12 +10970,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha1_smol" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" - [[package]] name = "sha2" version = "0.9.9" @@ -13170,7 +13130,7 @@ dependencies = [ "log", "rand 0.8.5", "rustls 0.20.9", - "sha1 0.10.5", + "sha1", "thiserror", "url 2.4.1", "utf-8", @@ -13346,16 +13306,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" -[[package]] -name = "uds_windows" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" -dependencies = [ - "tempfile", - "winapi 0.3.9", -] - [[package]] name = "unic-char-property" version = "0.9.0" @@ -14956,69 +14906,6 @@ dependencies = [ "time 0.3.23", ] -[[package]] -name = "zbus" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ce2de393c874ba871292e881bf3c13a0d5eb38170ebab2e50b4c410eaa222b" -dependencies = [ - "async-broadcast", - "async-channel", - "async-executor", - "async-io", - "async-lock", - "async-recursion", - "async-task", - "async-trait", - "byteorder", - "derivative", - "dirs 4.0.0", - "enumflags2", - "event-listener", - "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix 0.24.2", - "once_cell", - "ordered-stream", - "rand 0.8.5", - "serde", - "serde_repr", - "sha1 0.6.1", - "static_assertions", - "tracing", - "uds_windows", - "winapi 0.3.9", - "zbus_macros", - "zbus_names", - "zvariant", -] - -[[package]] -name = "zbus_macros" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13d08f5dc6cf725b693cb6ceacd43cd430ec0664a879188f29e7d7dcd98f96d" -dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.66", - "quote 1.0.33", - "regex", - "syn 1.0.109", -] - -[[package]] -name = "zbus_names" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a408fd8a352695690f53906dc7fd036be924ec51ea5e05666ff42685ed0af5" -dependencies = [ - "serde", - "static_assertions", - "zvariant", -] - [[package]] name = "zeroize" version = "1.6.0" @@ -15054,7 +14941,7 @@ dependencies = [ "flate2", "hmac 0.12.1", "pbkdf2 0.11.0", - "sha1 0.10.5", + "sha1", "time 0.3.23", "zstd", ] @@ -15088,29 +14975,3 @@ dependencies = [ "libc", "pkg-config", ] - -[[package]] -name = "zvariant" -version = "3.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794fb7f59af4105697b0449ba31731ee5dbb3e773a17dbdf3d36206ea1b1644" -dependencies = [ - "byteorder", - "enumflags2", - "libc", - "serde", - "static_assertions", - "zvariant_derive", -] - -[[package]] -name = "zvariant_derive" -version = "3.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd58d4b6c8e26d3dd2149c8c40c6613ef6451b9885ff1296d1ac86c388351a54" -dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.66", - "quote 1.0.33", - "syn 1.0.109", -] diff --git a/Cargo.toml b/Cargo.toml index 52f9d3de9..c107e089c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,5 @@ members = [ [patch.crates-io] sodiumoxide = { git = "https://github.com/fayeed/sodiumoxide" } -serde = { git = "https://github.com/fayeed/serde.git", branch = "ad4m-compatible" } \ No newline at end of file +serde = { git = "https://github.com/fayeed/serde.git", branch = "ad4m-compatible" } +notify-rust = { version = "4.6.0", git = "https://github.com/coasys/notify-rust.git" } \ No newline at end of file From 973b07b07fd7c0e5dc0b89ea65513aea5601a4f8 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 12 Sep 2023 12:57:08 +0100 Subject: [PATCH 666/722] add command to cli for publishing & testing expression language + fix up log level for holochain crates --- .../hc-dna/zomes/file_storage/src/lib.rs | 1 - cli/src/dev.rs | 74 ++++++++++++++++++- rust-executor/src/holochain_service/mod.rs | 2 +- rust-executor/src/init.rs | 2 +- rust-executor/src/lib.rs | 4 +- rust-executor/src/main.rs | 2 +- ui/src-tauri/src/main.rs | 2 +- 7 files changed, 78 insertions(+), 9 deletions(-) diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs index 69cb21fca..079042dfb 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs @@ -25,7 +25,6 @@ pub fn get_now() -> DateTime { pub fn store_file_expression(expression: FileExpression) -> ExternResult { let hash = hash_entry(&expression)?; create_entry(&EntryTypes::FileExpression(expression))?; - Ok(hash) } diff --git a/cli/src/dev.rs b/cli/src/dev.rs index ec9782d28..b5eacda6c 100644 --- a/cli/src/dev.rs +++ b/cli/src/dev.rs @@ -1,7 +1,7 @@ use anyhow::Result; use clap::Subcommand; use colour::{self, green_ln}; -use std::fs; +use std::{fs, str::FromStr}; use crate::bootstrap_publish::*; @@ -13,10 +13,79 @@ pub enum DevFunctions { passphrase: String, seed_proto: String, }, + PublishAndTestExpressionLanguage { + language_path: String, + data: String + } } pub async fn run(command: DevFunctions) -> Result<()> { match command { + DevFunctions::PublishAndTestExpressionLanguage { language_path , data } => { + let ad4m_test_dir = dirs::home_dir() + .expect("Could not get home directory") + .join(".ad4m-test"); + let ad4m_test_dir: String = ad4m_test_dir.to_string_lossy().to_string(); + let ad4m_test_dir_clone = ad4m_test_dir.clone(); + + let _init = rust_executor::init::init(Some(ad4m_test_dir.clone()), None) + .map_err(|err| anyhow::anyhow!("Error in init: {:?}", err))?; + + let run_handle = tokio::task::spawn(async move { + rust_executor::run(rust_executor::Ad4mConfig { + app_data_path: Some(ad4m_test_dir_clone), + network_bootstrap_seed: None, + language_language_only: Some(false), + run_dapp_server: Some(false), + gql_port: None, + hc_admin_port: None, + hc_app_port: None, + hc_use_bootstrap: None, + hc_use_local_proxy: None, + hc_use_mdns: None, + hc_use_proxy: None, + connect_holochain: None, + admin_credential: Some(String::from("*")), + hc_proxy_url: None, + hc_bootstrap_url: None, + }) + .await; + }); + + let test_res = tokio::task::spawn(async move { + tokio::time::sleep(std::time::Duration::from_millis(5000)).await; + let client = ad4m_client::Ad4mClient::new(String::from("http://127.0.0.1:4000/graphql"), String::from("*")); + let me = client.agent.me().await; + println!("Me: {:?}", me); + let agent_generate = client.agent.generate(String::from("test")).await; + println!("Agent generate: {:?}", agent_generate); + let publish_language = client.languages.publish( + language_path, + String::from("some-test-lang"), + Some(String::from("some-desc")), + None, + None + ).await; + println!("Publish language: {:?}", publish_language); + let language_info = publish_language.unwrap(); + let language = client.languages.by_address(language_info.address.clone()).await; + println!("Language: {:?}", language); + let expression = client.expressions.expression_create( + language_info.address, + serde_json::Value::from_str(&data).expect("could not cast input data to serde_json::Value"), + ).await; + println!("Expression create: {:?}", expression); + let expression = client.expressions.expression(expression.unwrap()).await; + println!("Expression get: {:?}", expression); + }).await; + green_ln!("Test future finished with: {:?}", test_res); + + run_handle.abort(); + //Cleanup test agent + let _ = fs::remove_dir_all(std::path::Path::new(&ad4m_test_dir)); + green_ln!("Test agent cleaned up\n"); + std::process::exit(0); + }, DevFunctions::GenerateBootstrap { agent_path, passphrase, @@ -112,7 +181,7 @@ pub async fn run(command: DevFunctions) -> Result<()> { }); //Spawn in a new thread so we can continue reading logs in loop below, whilst publishing is happening - tokio::task::spawn(async move { + let publish_fut = tokio::task::spawn(async move { green_ln!("Runing publish fut"); tokio::time::sleep(std::time::Duration::from_millis(5000)).await; green_ln!("AD4M ready for publishing\n"); @@ -123,6 +192,7 @@ pub async fn run(command: DevFunctions) -> Result<()> { ) .await; }).await; + green_ln!("Publish future finished with: {:?}", publish_fut); // tokio::select! { // biased; diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 454ba7dbe..c33c79cb7 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -10,7 +10,7 @@ use holochain::conductor::config::ConductorConfig; use holochain::conductor::{ConductorBuilder, ConductorHandle}; use holochain::prelude::agent_store::AgentInfoSigned; use holochain::prelude::hash_type::Agent; -use holochain::prelude::kitsune_p2p::dependencies::kitsune_p2p_types::config::tuning_params_struct::KitsuneP2pTuningParams; +//use holochain::prelude::kitsune_p2p::dependencies::kitsune_p2p_types::config::tuning_params_struct::KitsuneP2pTuningParams; use holochain::prelude::kitsune_p2p::dependencies::url2::Url2; use holochain::prelude::{ ExternIO, HoloHash, InstallAppPayload, KitsuneP2pConfig, NetworkType, Signal, diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index afb50ecc5..0ac47d0fa 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -12,7 +12,7 @@ pub fn init( data_path: Option, network_bootstrap_seed: Option, ) -> Result<(), Box> { - std::env::set_var("RUST_LOG", "info"); + std::env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); let _ = env_logger::try_init(); //Get the default data path if none is provided diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index a2f2b50ef..712a298e5 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -25,7 +25,7 @@ use crate::{prolog_service::init_prolog_service, dapp_server::serve_dapp}; /// Runs the GraphQL server and the deno core runtime pub async fn run(mut config: Ad4mConfig) { - env::set_var("RUST_LOG", "rust_executor=info,warp::server"); + env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); let _ = env_logger::try_init(); config.prepare(); @@ -66,7 +66,7 @@ pub async fn run(mut config: Ad4mConfig) { /// Runs the GraphQL server and the deno core runtime pub async fn run_with_tokio(mut config: Ad4mConfig) { - env::set_var("RUST_LOG", "rust_executor=info,warp::server"); + env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); let _ = env_logger::try_init(); config.prepare(); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index 05c135f07..b5f774854 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -22,7 +22,7 @@ use js_core::JsCore; #[tokio::main(flavor = "multi_thread")] async fn main() { prolog::run(); - env::set_var("RUST_LOG", "rust_executor=info"); + env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); env_logger::try_init().expect("could not logger"); let mut config = Ad4mConfig::default(); diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index cdd60e5b0..6c8a77277 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -72,7 +72,7 @@ pub struct AppState { } fn main() { - env::set_var("RUST_LOG", "rust_executor=info,error,warn,debug,ad4m_launcher=info,warn,error"); + env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); let mut rlim: rlimit = rlimit { rlim_cur: 0, rlim_max: 0 }; From a296e253641ea4aa78afafce5c63290fc613ed6a Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 12 Sep 2023 12:57:19 +0100 Subject: [PATCH 667/722] fix buffer / hash handling on file storage language --- bootstrap-languages/file-storage/putAdapter.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bootstrap-languages/file-storage/putAdapter.ts b/bootstrap-languages/file-storage/putAdapter.ts index fab86efe4..ec6c49d21 100644 --- a/bootstrap-languages/file-storage/putAdapter.ts +++ b/bootstrap-languages/file-storage/putAdapter.ts @@ -53,9 +53,10 @@ export class FileStoragePutAdapter implements PublicSharing { delete expression.data.data_base64; //Store the FileMetadataExpression - const address = await storage.storeFileExpression(expression) + let address = await storage.storeFileExpression(expression) if (!Buffer.isBuffer(address)) { - throw new Error("Could not create FileExpression data") + address = Buffer.from(address) + //throw new Error("Could not create FileExpression data") }; //@ts-ignore return address.toString("hex") From 406f90f6833e635ee9726c47be7bfeb45a348a72 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 12 Sep 2023 21:26:57 +0100 Subject: [PATCH 668/722] update everything to holochain-0.2.2 --- Cargo.lock | 384 ++++++++---------- .../agent-language/hc-dna/Cargo.lock | 113 ++++-- .../hc-dna/zomes/agent_store/Cargo.toml | 4 +- .../zomes/agent_store_integrity/Cargo.toml | 4 +- .../direct-message-language/hc-dna/Cargo.lock | 113 ++++-- .../zomes/direct-message-integrity/Cargo.toml | 4 +- .../hc-dna/zomes/direct-message/Cargo.toml | 4 +- .../file-storage/hc-dna/Cargo.lock | 115 ++++-- .../hc-dna/zomes/file_storage/Cargo.toml | 4 +- .../hc-dna/zomes/integrity/Cargo.toml | 6 +- .../p-diff-sync/hc-dna/Cargo.lock | 117 ++++-- .../zomes/perspective_diff_sync/Cargo.toml | 4 +- .../src/link_adapter/commit.rs | 3 + .../Cargo.toml | 6 +- cli/mainnet_seed.json | 13 - rust-executor/Cargo.toml | 8 +- rust-executor/src/mainnet_seed.json | 6 +- yarn.lock | 130 +++--- 18 files changed, 547 insertions(+), 491 deletions(-) delete mode 100644 cli/mainnet_seed.json diff --git a/Cargo.lock b/Cargo.lock index 5e447585c..2bd96e0eb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3663,6 +3663,28 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "failure" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +dependencies = [ + "backtrace", + "failure_derive", +] + +[[package]] +name = "failure_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +dependencies = [ + "proc-macro2 1.0.66", + "quote 1.0.33", + "syn 1.0.109", + "synstructure", +] + [[package]] name = "fallible-iterator" version = "0.2.0" @@ -3778,8 +3800,9 @@ dependencies = [ [[package]] name = "fixt" -version = "0.2.0" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7639bc73b1f77c02a3346d265af7f76a66d4954686eb1112ea32955ca76a018a" dependencies = [ "holochain_serialized_bytes", "lazy_static", @@ -4722,8 +4745,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.4.0-beta-dev.9" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.3.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" dependencies = [ "hdk_derive", "holo_hash", @@ -4738,8 +4762,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.3.0-beta-dev.13" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" dependencies = [ "getrandom 0.2.10", "hdi", @@ -4757,8 +4782,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.3.0-beta-dev.9" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" dependencies = [ "darling 0.14.4", "heck 0.4.1", @@ -4844,12 +4870,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - [[package]] name = "hkdf" version = "0.11.0" @@ -4911,8 +4931,9 @@ dependencies = [ [[package]] name = "holo_hash" -version = "0.3.0-beta-dev.6" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" dependencies = [ "arbitrary", "base64 0.13.1", @@ -4921,6 +4942,7 @@ dependencies = [ "fixt", "futures", "holochain_serialized_bytes", + "holochain_util", "holochain_wasmer_common", "kitsune_p2p_dht_arc", "must_future", @@ -4933,8 +4955,9 @@ dependencies = [ [[package]] name = "holochain" -version = "0.3.0-beta-dev.15" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f176937e213af93f849b96e0cff85649290b9e2d703bb76353491591bf65930d" dependencies = [ "anyhow", "arbitrary", @@ -4960,7 +4983,6 @@ dependencies = [ "holochain_cascade", "holochain_conductor_api", "holochain_keystore", - "holochain_metrics", "holochain_p2p", "holochain_serialized_bytes", "holochain_sqlite", @@ -5026,8 +5048,9 @@ dependencies = [ [[package]] name = "holochain_cascade" -version = "0.3.0-beta-dev.15" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884d8b30dab7e15283f2c9773523af05f843bf8390aecd0904a4c3d0d1fc7575" dependencies = [ "async-trait", "derive_more", @@ -5045,11 +5068,12 @@ dependencies = [ "holochain_state", "holochain_trace", "holochain_types", + "holochain_util", "holochain_zome_types", "kitsune_p2p", "mockall", "serde", - "serde_derive 1.0.188", + "serde_derive", "thiserror", "tokio", "tracing", @@ -5058,8 +5082,9 @@ dependencies = [ [[package]] name = "holochain_cli_bundle" -version = "0.3.0-beta-dev.13" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44b5af3dcdacf47b6cf99d442ab910b8272a1d8e0aca498363b8f7419843a91d" dependencies = [ "anyhow", "clap 4.4.1", @@ -5079,8 +5104,9 @@ dependencies = [ [[package]] name = "holochain_cli_run_local_services" -version = "0.3.0-beta-dev.7" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a97e75955aac028364ac5cc02a90ffa14387d42419ddf4e010a8a010f93b48c" dependencies = [ "clap 4.4.1", "futures", @@ -5094,8 +5120,9 @@ dependencies = [ [[package]] name = "holochain_conductor_api" -version = "0.3.0-beta-dev.15" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54e8888e02ebea99c10edf4c8415ed3dab4e193566f7004b161773a85f45e9c0" dependencies = [ "derive_more", "directories 2.0.2", @@ -5108,7 +5135,7 @@ dependencies = [ "holochain_zome_types", "kitsune_p2p", "serde", - "serde_derive 1.0.188", + "serde_derive", "serde_yaml 0.9.25", "structopt", "thiserror", @@ -5118,13 +5145,16 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.3.0-beta-dev.9" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" dependencies = [ "arbitrary", "derive_builder", "holo_hash", "holochain_serialized_bytes", + "holochain_util", + "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", "serde", @@ -5136,8 +5166,9 @@ dependencies = [ [[package]] name = "holochain_keystore" -version = "0.3.0-beta-dev.11" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6079410fde183987df8f68aef5dd996033ab1c09c2fddba7f3d95f67b53a85a8" dependencies = [ "base64 0.13.1", "futures", @@ -5158,20 +5189,11 @@ dependencies = [ "tracing", ] -[[package]] -name = "holochain_metrics" -version = "0.3.0-beta-dev.3" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" -dependencies = [ - "influxive", - "tracing", - "ts_opentelemetry_api", -] - [[package]] name = "holochain_p2p" -version = "0.3.0-beta-dev.14" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df743f96121edf6276610a3719c0c2d56caa0cd0e62737032cdab212d107adc6" dependencies = [ "async-trait", "derive_more", @@ -5225,36 +5247,45 @@ dependencies = [ [[package]] name = "holochain_sqlite" -version = "0.3.0-beta-dev.13" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afa9e65ec4c22c0c469565c86ec68f5cd43641b1cd2a1c6643997e6e7c456fd" dependencies = [ "anyhow", "async-trait", + "byteorder", + "cfg-if 0.1.10", "chashmap", + "chrono", "derive_more", + "either", + "failure", "fallible-iterator", + "fixt", "futures", "getrandom 0.2.10", "holo_hash", "holochain_serialized_bytes", "holochain_util", "holochain_zome_types", - "kitsune_p2p_bin_data", - "kitsune_p2p_dht", - "kitsune_p2p_dht_arc", - "kitsune_p2p_timestamp", - "kitsune_p2p_types", + "kitsune_p2p", + "lazy_static", + "must_future", + "nanoid 0.3.0", + "num-traits", "num_cpus", "once_cell", + "page_size", "parking_lot 0.10.2", "pretty_assertions 0.7.2", "r2d2", "r2d2_sqlite_neonphog", + "rand 0.8.5", "rmp-serde 0.15.5", "rusqlite", "scheduled-thread-pool", "serde", - "serde_derive 1.0.188", + "serde_derive", "serde_json", "shrinkwraprs", "sqlformat 0.1.8", @@ -5262,12 +5293,14 @@ dependencies = [ "thiserror", "tokio", "tracing", + "tracing-futures", ] [[package]] name = "holochain_state" -version = "0.3.0-beta-dev.14" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6829b083e801218a9e3739f8215145f8d7a7d8e07a0622511dc4a91e89ecdd6" dependencies = [ "async-recursion", "base64 0.13.1", @@ -5307,8 +5340,9 @@ dependencies = [ [[package]] name = "holochain_test_wasm_common" -version = "0.3.0-beta-dev.13" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "603991cc44041315aa365ad8d295d1976b53662417a72df36fa1dd6a56a6a024" dependencies = [ "hdk", "serde", @@ -5316,8 +5350,9 @@ dependencies = [ [[package]] name = "holochain_trace" -version = "0.3.0-beta-dev.1" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7658803d147b559605f6f102aecd9b67b9404de129d2c70adc4e64e78228a1c9" dependencies = [ "chrono", "derive_more", @@ -5333,8 +5368,9 @@ dependencies = [ [[package]] name = "holochain_types" -version = "0.3.0-beta-dev.13" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ad1bf885703525d0168066e470c9414659946e0775a52d075ac3b506e422ada" dependencies = [ "anyhow", "arbitrary", @@ -5375,7 +5411,7 @@ dependencies = [ "rusqlite", "serde", "serde_bytes", - "serde_derive 1.0.188", + "serde_derive", "serde_json", "serde_with 1.14.0", "serde_yaml 0.9.25", @@ -5391,8 +5427,9 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.2.0" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" dependencies = [ "backtrace", "cfg-if 0.1.10", @@ -5408,8 +5445,9 @@ dependencies = [ [[package]] name = "holochain_wasm_test_utils" -version = "0.3.0-beta-dev.13" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7574f89cfba887efa78b42fa49093f62d0215bae860e42bb65b18a602152065" dependencies = [ "holochain_types", "holochain_util", @@ -5467,8 +5505,9 @@ dependencies = [ [[package]] name = "holochain_websocket" -version = "0.3.0-beta-dev.3" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe693f24b355ba96957100b1c65a3fcb9578b7602ac0c3c56554d11e7b71bca" dependencies = [ "futures", "ghost_actor 0.4.0-alpha.5", @@ -5491,8 +5530,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.3.0-beta-dev.10" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" dependencies = [ "arbitrary", "contrafact", @@ -5645,7 +5685,7 @@ dependencies = [ "backtrace", "os_info", "serde", - "serde_derive 1.0.188", + "serde_derive", "toml 0.7.6", "uuid 1.4.1", ] @@ -5953,88 +5993,6 @@ dependencies = [ "str_stack", ] -[[package]] -name = "influxdb" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f79168e8b5047761c3e027438d6a46150380b2d78b15b723da04beefde29832" -dependencies = [ - "chrono", - "futures-util", - "http", - "lazy_static", - "regex", - "reqwest", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "influxive" -version = "0.0.1-alpha.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e751ac3b2c3a7943237d176f43d051e81611ab60927ee0de778eef8eb8a9946" -dependencies = [ - "influxive-child-svc", - "influxive-otel", - "influxive-writer", -] - -[[package]] -name = "influxive-child-svc" -version = "0.0.1-alpha.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3304096e465620b1e8b8f126e385050d8a0071f20ad09d1dae240474fde52bb9" -dependencies = [ - "hex-literal", - "influxive-core", - "influxive-downloader", - "influxive-writer", - "tempfile", - "tokio", - "tracing", -] - -[[package]] -name = "influxive-core" -version = "0.0.1-alpha.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "361ab244896d34c02cdfb4fb90a0cf11d1db7e140f6d0f9eb872c335e3f7f602" - -[[package]] -name = "influxive-downloader" -version = "0.0.1-alpha.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2575384f9b4e5f94f316c69844f0a31e139694a530ffcc9cea6c98ce81627f" -dependencies = [ - "base64 0.21.3", - "digest 0.10.7", - "dirs 5.0.1", - "flate2", - "futures", - "hex", - "hex-literal", - "influxive-core", - "reqwest", - "sha2 0.10.7", - "tar", - "tempfile", - "tokio", - "zip", -] - -[[package]] -name = "influxive-otel" -version = "0.0.1-alpha.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a29ee9911b66e6f433734c900ed1d95b3cffeab1ea7dace3ecd3a3dd224e8be" -dependencies = [ - "influxive-core", - "tokio", - "ts_opentelemetry_api", -] - [[package]] name = "influxive-otel-atomic-obs" version = "0.0.1-alpha.11" @@ -6044,18 +6002,6 @@ dependencies = [ "ts_opentelemetry_api", ] -[[package]] -name = "influxive-writer" -version = "0.0.1-alpha.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee73e5486492eafd6c50790545df7b73c81edf69b299f96183bdcb9371619951" -dependencies = [ - "influxdb", - "influxive-core", - "tokio", - "tracing", -] - [[package]] name = "inotify" version = "0.9.6" @@ -6402,8 +6348,9 @@ dependencies = [ [[package]] name = "kitsune_p2p" -version = "0.3.0-beta-dev.12" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae00a08764fc83631fc908b88d91785373cc418e7baf1520ce53f2e66372fe66" dependencies = [ "arbitrary", "arrayref", @@ -6442,19 +6389,20 @@ dependencies = [ "tokio", "tokio-stream", "tracing", - "ts_opentelemetry_api", "tx5", "url2", ] [[package]] name = "kitsune_p2p_bin_data" -version = "0.3.0-beta-dev.4" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" dependencies = [ "arbitrary", "base64 0.13.1", "derive_more", + "holochain_util", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -6463,8 +6411,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.3.0-beta-dev.5" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -6474,8 +6423,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_bootstrap" -version = "0.2.0-beta-dev.7" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.1.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beeccfc2d8501e1693934887a4d5c5d443036699b260460f42626c4441e20e47" dependencies = [ "clap 3.2.25", "futures", @@ -6493,8 +6443,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.3.0-beta-dev.4" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" dependencies = [ "colored", "derivative", @@ -6516,8 +6467,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.3.0-beta-dev.3" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" dependencies = [ "derive_more", "gcollections", @@ -6529,8 +6481,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_fetch" -version = "0.3.0-beta-dev.8" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297003605f03ca91bc9d7ab8d7031042077294ab460bffeb547722ca3dadfb2" dependencies = [ "derive_more", "futures", @@ -6542,14 +6495,16 @@ dependencies = [ "num-traits", "serde", "serde_bytes", + "thiserror", "tokio", "tracing", ] [[package]] name = "kitsune_p2p_mdns" -version = "0.2.0" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b714dbb2199f2f7d2b22d0bc84982b92f3db3922b70538c5f750e6dbaa82a40f" dependencies = [ "async-stream", "base64 0.13.1", @@ -6564,8 +6519,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_proxy" -version = "0.3.0-beta-dev.7" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b08d878ba4650a4dd838ccf6dbdaf6fc71aca16aa99318389791b3a64db6906" dependencies = [ "base64 0.13.1", "blake2b_simd 0.5.11", @@ -6588,8 +6544,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.3.0-beta-dev.0" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" dependencies = [ "arbitrary", "chrono", @@ -6600,8 +6557,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_transport_quic" -version = "0.3.0-beta-dev.7" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e899aa7ffa8eaea70f4aa37d69758263fb1f341647246c81f1fdab038dbd0c48" dependencies = [ "blake2b_simd 1.0.1", "futures", @@ -6619,8 +6577,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_types" -version = "0.3.0-beta-dev.7" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf5c4d12a2a445c87c98425c7472a661aac703490d9eb278cccdf558a22eaa4" dependencies = [ "arbitrary", "base64 0.13.1", @@ -6632,7 +6591,6 @@ dependencies = [ "kitsune_p2p_block", "kitsune_p2p_dht", "kitsune_p2p_dht_arc", - "kitsune_p2p_timestamp", "lair_keystore_api", "lru 0.8.1", "mockall", @@ -6649,6 +6607,7 @@ dependencies = [ "sysinfo 0.27.8", "thiserror", "tokio", + "tokio-stream", "url 2.4.1", "url2", "webpki 0.22.0", @@ -7614,8 +7573,9 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "mr_bundle" -version = "0.2.0" -source = "git+https://github.com/coasys/holochain?branch=pack-unpack-dna-exports#7d73635fcd3e7bba4f7998cadbc79b35002df933" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cef3338028e1b538e8ebd2cf8d699a4c329b0aaf6c5b0681ef1f139bd61f6b37" dependencies = [ "arbitrary", "bytes", @@ -7628,7 +7588,7 @@ dependencies = [ "rmp-serde 0.15.5", "serde", "serde_bytes", - "serde_derive 1.0.188", + "serde_derive", "serde_yaml 0.9.25", "thiserror", ] @@ -8500,6 +8460,16 @@ dependencies = [ "sha2 0.10.7", ] +[[package]] +name = "page_size" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "pairing" version = "0.22.0" @@ -10712,10 +10682,11 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.183" -source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" +version = "1.0.166" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8" dependencies = [ - "serde_derive 1.0.183", + "serde_derive", ] [[package]] @@ -10748,19 +10719,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.183" -source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" -dependencies = [ - "proc-macro2 1.0.66", - "quote 1.0.33", - "syn 2.0.29", -] - -[[package]] -name = "serde_derive" -version = "1.0.188" +version = "1.0.166" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6" dependencies = [ "proc-macro2 1.0.66", "quote 1.0.33", @@ -14975,3 +14936,8 @@ dependencies = [ "libc", "pkg-config", ] + +[[patch.unused]] +name = "serde" +version = "1.0.183" +source = "git+https://github.com/fayeed/serde.git?branch=ad4m-compatible#a81bd97dcd5254e28104146d45b62b8f91f0e192" diff --git a/bootstrap-languages/agent-language/hc-dna/Cargo.lock b/bootstrap-languages/agent-language/hc-dna/Cargo.lock index f4d60cbc0..da2307af2 100644 --- a/bootstrap-languages/agent-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/agent-language/hc-dna/Cargo.lock @@ -116,7 +116,7 @@ checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object 0.29.0", @@ -250,6 +250,12 @@ version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -306,7 +312,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "libc", "scopeguard", "windows-sys 0.33.0", @@ -386,7 +392,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -395,7 +401,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -405,7 +411,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] @@ -417,7 +423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", "memoffset", "once_cell", @@ -430,7 +436,7 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", ] @@ -547,6 +553,12 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "either" version = "1.7.0" @@ -732,7 +744,7 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -768,9 +780,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.4.0-beta-dev.8" +version = "0.3.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" +checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" dependencies = [ "hdk_derive", "holo_hash", @@ -785,9 +797,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.3.0-beta-dev.12" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" +checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" dependencies = [ "getrandom", "hdi", @@ -805,9 +817,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.3.0-beta-dev.8" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" +checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" dependencies = [ "darling 0.14.1", "heck", @@ -842,14 +854,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.3.0-beta-dev.6" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" +checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_util", "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", @@ -859,12 +872,13 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.3.0-beta-dev.8" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" +checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "holochain_util", "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", @@ -899,6 +913,20 @@ dependencies = [ "syn", ] +[[package]] +name = "holochain_util" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" +dependencies = [ + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", +] + [[package]] name = "holochain_wasmer_common" version = "0.0.84" @@ -930,9 +958,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.3.0-beta-dev.9" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" +checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" dependencies = [ "holo_hash", "holochain_integrity_types", @@ -1002,7 +1030,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1044,12 +1072,13 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" -version = "0.3.0-beta-dev.4" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" dependencies = [ "base64", "derive_more", + "holochain_util", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -1058,9 +1087,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.3.0-beta-dev.5" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" +checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -1070,9 +1099,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.3.0-beta-dev.4" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" +checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" dependencies = [ "colored", "derivative", @@ -1094,9 +1123,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.3.0-beta-dev.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" +checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" dependencies = [ "derive_more", "gcollections", @@ -1107,9 +1136,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.3.0-beta-dev.0" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" +checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" dependencies = [ "chrono", "derive_more", @@ -1140,7 +1169,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] @@ -1166,7 +1195,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1380,7 +1409,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -1804,7 +1833,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -1926,7 +1955,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "libc", "redox_syscall", @@ -2041,7 +2070,7 @@ version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -2151,7 +2180,7 @@ version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] @@ -2214,7 +2243,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "indexmap", "js-sys", "loupe", @@ -2327,7 +2356,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enum-iterator", "enumset", "leb128", @@ -2353,7 +2382,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enumset", "leb128", "loupe", @@ -2419,7 +2448,7 @@ checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 1.0.0", "corosensei", "enum-iterator", "indexmap", diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml index a65d0c5f1..d4ed1210a 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml @@ -14,6 +14,6 @@ serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } thiserror = "1.0.20" -hdk = "0.3.0-beta-dev.12" -holo_hash = "0.3.0-beta-dev.6" +hdk = "0.2.2-beta-rc.1" +holo_hash = "0.2.2-beta-rc.0" agent_store_integrity = { path = "../agent_store_integrity" } \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml index eddf7ce56..342f9f15e 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml @@ -13,5 +13,5 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = "0.4.0-beta-dev.8" -hdk = "0.3.0-beta-dev.12" \ No newline at end of file +hdi = "0.3.2-beta-rc.1" +hdk = "0.2.2-beta-rc.1" \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock index f99a51642..b4075dfff 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock @@ -92,7 +92,7 @@ checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object", @@ -226,6 +226,12 @@ version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -282,7 +288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "libc", "scopeguard", "windows-sys 0.33.0", @@ -362,7 +368,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -371,7 +377,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -381,7 +387,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] @@ -393,7 +399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", "memoffset", "once_cell", @@ -406,7 +412,7 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", ] @@ -548,6 +554,12 @@ dependencies = [ "serde", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "either" version = "1.7.0" @@ -733,7 +745,7 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -769,9 +781,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.4.0-beta-dev.8" +version = "0.3.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" +checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" dependencies = [ "hdk_derive", "holo_hash", @@ -786,9 +798,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.3.0-beta-dev.12" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" +checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" dependencies = [ "getrandom", "hdi", @@ -806,9 +818,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.3.0-beta-dev.8" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" +checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" dependencies = [ "darling 0.14.1", "heck", @@ -843,14 +855,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.3.0-beta-dev.6" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" +checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_util", "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", @@ -860,12 +873,13 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.3.0-beta-dev.8" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" +checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "holochain_util", "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", @@ -900,6 +914,20 @@ dependencies = [ "syn", ] +[[package]] +name = "holochain_util" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" +dependencies = [ + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", +] + [[package]] name = "holochain_wasmer_common" version = "0.0.84" @@ -931,9 +959,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.3.0-beta-dev.9" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" +checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" dependencies = [ "holo_hash", "holochain_integrity_types", @@ -1003,7 +1031,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1045,12 +1073,13 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" -version = "0.3.0-beta-dev.4" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" dependencies = [ "base64", "derive_more", + "holochain_util", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -1059,9 +1088,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.3.0-beta-dev.5" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" +checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -1071,9 +1100,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.3.0-beta-dev.4" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" +checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" dependencies = [ "colored", "derivative", @@ -1095,9 +1124,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.3.0-beta-dev.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" +checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" dependencies = [ "derive_more", "gcollections", @@ -1108,9 +1137,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.3.0-beta-dev.0" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" +checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" dependencies = [ "chrono", "derive_more", @@ -1141,7 +1170,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] @@ -1167,7 +1196,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1372,7 +1401,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -1795,7 +1824,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -1917,7 +1946,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "libc", "redox_syscall", @@ -2032,7 +2061,7 @@ version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -2135,7 +2164,7 @@ version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] @@ -2198,7 +2227,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "indexmap", "js-sys", "loupe", @@ -2311,7 +2340,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enum-iterator", "enumset", "leb128", @@ -2337,7 +2366,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enumset", "leb128", "loupe", @@ -2403,7 +2432,7 @@ checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 1.0.0", "corosensei", "enum-iterator", "indexmap", diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml index 824e3fe15..67ae4d76f 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml @@ -13,5 +13,5 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = "0.4.0-beta-dev.8" -holo_hash = "0.3.0-beta-dev.6" \ No newline at end of file +hdi = "0.3.2-beta-rc.1" +holo_hash = "0.2.2-beta-rc.0" \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml index eec1da6fe..9dd061461 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml @@ -15,7 +15,7 @@ serde_json = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } hex = "0.4.3" -hdk = "0.3.0-beta-dev.12" -holo_hash = "0.3.0-beta-dev.6" +hdk = "0.2.2-beta-rc.1" +holo_hash = "0.2.2-beta-rc.0" direct-message-integrity = { path = "../direct-message-integrity" } \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/Cargo.lock b/bootstrap-languages/file-storage/hc-dna/Cargo.lock index 298205112..24bb7d7ab 100644 --- a/bootstrap-languages/file-storage/hc-dna/Cargo.lock +++ b/bootstrap-languages/file-storage/hc-dna/Cargo.lock @@ -81,7 +81,7 @@ checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object 0.30.3", @@ -215,6 +215,12 @@ version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -281,7 +287,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "libc", "scopeguard", "windows-sys 0.33.0", @@ -361,7 +367,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -370,7 +376,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -380,7 +386,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] @@ -392,7 +398,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", "memoffset 0.7.1", "scopeguard", @@ -404,7 +410,7 @@ version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -530,6 +536,12 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "either" version = "1.8.1" @@ -751,7 +763,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -793,9 +805,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.4.0-beta-dev.8" +version = "0.3.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" +checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" dependencies = [ "hdk_derive", "holo_hash", @@ -810,9 +822,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.3.0-beta-dev.12" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" +checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" dependencies = [ "getrandom", "hdi", @@ -830,9 +842,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.3.0-beta-dev.8" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" +checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" dependencies = [ "darling", "heck", @@ -873,14 +885,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.3.0-beta-dev.6" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" +checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_util", "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", @@ -890,12 +903,13 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.3.0-beta-dev.8" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" +checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "holochain_util", "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", @@ -930,6 +944,20 @@ dependencies = [ "syn", ] +[[package]] +name = "holochain_util" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" +dependencies = [ + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", +] + [[package]] name = "holochain_wasmer_common" version = "0.0.84" @@ -961,9 +989,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.3.0-beta-dev.9" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" +checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" dependencies = [ "holo_hash", "holochain_integrity_types", @@ -1043,7 +1071,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1120,12 +1148,13 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" -version = "0.3.0-beta-dev.4" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" dependencies = [ "base64", "derive_more", + "holochain_util", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -1134,9 +1163,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.3.0-beta-dev.5" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" +checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -1146,9 +1175,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.3.0-beta-dev.4" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" +checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" dependencies = [ "colored", "derivative", @@ -1170,9 +1199,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.3.0-beta-dev.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" +checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" dependencies = [ "derive_more", "gcollections", @@ -1183,9 +1212,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.3.0-beta-dev.0" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" +checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" dependencies = [ "chrono", "derive_more", @@ -1216,7 +1245,7 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] @@ -1257,7 +1286,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1480,7 +1509,7 @@ version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -1922,7 +1951,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -1933,7 +1962,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -2055,7 +2084,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "libc", "redox_syscall", @@ -2179,7 +2208,7 @@ version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -2289,7 +2318,7 @@ version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] @@ -2352,7 +2381,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "indexmap", "js-sys", "loupe", @@ -2465,7 +2494,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enum-iterator", "enumset", "leb128", @@ -2491,7 +2520,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enumset", "leb128", "loupe", @@ -2557,7 +2586,7 @@ checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 1.0.0", "corosensei", "enum-iterator", "indexmap", diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml index 01b547d29..23219d4b6 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml @@ -17,5 +17,5 @@ chrono = { version = "0.4.22", default-features = false, features = ["clock", "s thiserror = "1.0.20" integrity = { path = "../integrity" } sha2 = "0.10.5" -hdk = "0.3.0-beta-dev.12" -holo_hash = "0.3.0-beta-dev.6" \ No newline at end of file +hdk = "0.2.2-beta-rc.1" +holo_hash = "0.2.2-beta-rc.0" \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml index 2dd2cb994..b10c3736f 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml @@ -13,6 +13,6 @@ name = "integrity" derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.3.0-beta-dev.6" -hdi = "0.4.0-beta-dev.8" -hdk = "0.3.0-beta-dev.12" +holo_hash = "0.2.2-beta-rc.0" +hdi = "0.3.2-beta-rc.1" +hdk = "0.2.2-beta-rc.1" diff --git a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock index 2e3b90639..6f26337a0 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock +++ b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock @@ -92,7 +92,7 @@ checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object 0.29.0", @@ -226,6 +226,12 @@ version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -282,7 +288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "libc", "scopeguard", "windows-sys 0.33.0", @@ -362,7 +368,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -371,7 +377,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", ] @@ -381,7 +387,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crossbeam-epoch", "crossbeam-utils", ] @@ -393,7 +399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", "crossbeam-utils", "memoffset", "once_cell", @@ -406,7 +412,7 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", ] @@ -547,6 +553,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "545da7d6df7f8fd0de7106669a7d0bfa3dbcfa24d81da46906ad658188b2ff7c" +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "either" version = "1.8.0" @@ -738,7 +750,7 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -790,9 +802,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.4.0-beta-dev.8" +version = "0.3.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a186b5b1f4e3b4b891959d48d32e9579e11d280aded29aab883a4a53261263c" +checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" dependencies = [ "hdk_derive", "holo_hash", @@ -807,9 +819,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.3.0-beta-dev.12" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cae89958f8f10f2cbe62c089a5f388436d57df09a04c5d759b8234205f105a4" +checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" dependencies = [ "getrandom", "hdi", @@ -827,9 +839,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.3.0-beta-dev.8" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d440957086853270f1c58f778ca33138bbad902651af1c538cbb2c8b4b7e4e9" +checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" dependencies = [ "darling 0.14.1", "heck", @@ -864,14 +876,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.3.0-beta-dev.6" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f2bb3c533f13e78cc790faa0d081c096955912af5452089c273616d9edff56" +checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" dependencies = [ "base64", "blake2b_simd", "derive_more", "holochain_serialized_bytes", + "holochain_util", "holochain_wasmer_common", "kitsune_p2p_dht_arc", "serde", @@ -881,12 +894,13 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.3.0-beta-dev.8" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f885d8c0f73091675a93dad94638e5cc39224fde2b698c8a4708eb7f05223364" +checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" dependencies = [ "holo_hash", "holochain_serialized_bytes", + "holochain_util", "kitsune_p2p_dht", "kitsune_p2p_timestamp", "paste", @@ -921,6 +935,20 @@ dependencies = [ "syn", ] +[[package]] +name = "holochain_util" +version = "0.2.2-beta-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" +dependencies = [ + "cfg-if 0.1.10", + "derive_more", + "dunce", + "futures", + "num_cpus", + "once_cell", +] + [[package]] name = "holochain_wasmer_common" version = "0.0.84" @@ -952,9 +980,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.3.0-beta-dev.9" +version = "0.2.2-beta-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5b3c0e682ebd04579536b9b8dfd4541c12efdea97f0ba72943fbfebd123f7c" +checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" dependencies = [ "holo_hash", "holochain_integrity_types", @@ -1024,7 +1052,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1097,12 +1125,13 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" -version = "0.3.0-beta-dev.4" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa50a12a5755c2b9109cbc435a6565fe4b324f149c07848fc3e8655b4b0577c" +checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" dependencies = [ "base64", "derive_more", + "holochain_util", "kitsune_p2p_dht_arc", "serde", "serde_bytes", @@ -1111,9 +1140,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.3.0-beta-dev.5" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b60bbf27828287dc586ead0a2226bb527049b4c49adf26115e771564fc46c47" +checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -1123,9 +1152,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.3.0-beta-dev.4" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b360723dd10e83ca079bb6b95708fa1d751326c98aeb6df90a782ddcb306de2d" +checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" dependencies = [ "colored", "derivative", @@ -1147,9 +1176,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.3.0-beta-dev.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfbbc1c930888d6aa22099497139f0225e7dcdb90dd3e7fc2cc01dc9e2ba9f0e" +checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" dependencies = [ "derive_more", "gcollections", @@ -1160,9 +1189,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.3.0-beta-dev.0" +version = "0.2.2-beta-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffa7ec1db70ff7ea56b066855a9401eb9a08197b682ad357c9b0ceef720e5af" +checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" dependencies = [ "chrono", "derive_more", @@ -1193,7 +1222,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] @@ -1219,7 +1248,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -1439,7 +1468,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -1939,7 +1968,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -1950,7 +1979,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "006769ba83e921b3085caa8334186b00cf92b4cb1a6cf4632fbccc8eff5c7549" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -1961,7 +1990,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf9db03534dff993187064c4e0c05a5708d2a9728ace9a8959b77bedf415dac5" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -2083,7 +2112,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", "libc", "redox_syscall", @@ -2198,7 +2227,7 @@ version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -2308,7 +2337,7 @@ version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] @@ -2371,7 +2400,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "indexmap", "js-sys", "loupe", @@ -2484,7 +2513,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enum-iterator", "enumset", "leb128", @@ -2510,7 +2539,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "enumset", "leb128", "loupe", @@ -2576,7 +2605,7 @@ checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 1.0.0", "corosensei", "enum-iterator", "indexmap", diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml index 08875b8dd..0cea09ac5 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml @@ -21,8 +21,8 @@ dot-structures = "0.1.0" itertools = "0.10.3" perspective_diff_sync_integrity = { path = "../perspective_diff_sync_integrity" } sha2 = "0.10.5" -hdk = "0.3.0-beta-dev.12" -holo_hash = "0.3.0-beta-dev.6" +hdk = "0.2.2-beta-rc.1" +holo_hash = "0.2.2-beta-rc.0" [features] test = [] \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs index 2163d7261..57e642b25 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs @@ -127,7 +127,9 @@ pub fn add_active_agent_link() -> SocialCon pub fn broadcast_current() -> SocialContextResult> { + debug!("Running broadcast_current"); let current = current_revision::()?; + debug!("Current revision: {:#?}", current); if current.is_some() { let current_revision = current.clone().unwrap(); @@ -143,6 +145,7 @@ pub fn broadcast_current() -> SocialContext }; let recent_agents = get_active_agents()?; + debug!("Recent agents: {:#?}", recent_agents); remote_signal(signal_data.get_sb()?, recent_agents.clone())?; }; Ok(current.map(|rev| rev.hash)) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml index daf56f2d2..9c03cab63 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml @@ -13,6 +13,6 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.3.0-beta-dev.6" -hdi = "0.4.0-beta-dev.8" -hdk = "0.3.0-beta-dev.12" \ No newline at end of file +holo_hash = "0.2.2-beta-rc.0" +hdi = "0.3.2-beta-rc.1" +hdk = "0.2.2-beta-rc.1" \ No newline at end of file diff --git a/cli/mainnet_seed.json b/cli/mainnet_seed.json deleted file mode 100644 index f469f32b8..000000000 --- a/cli/mainnet_seed.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "trustedAgents": [ - "did:key:z6MkgtBC3UaxNLt5SFJmxHtzFUUeJLCxLiP8DTqJgwF9uCkv" - ], - "knownLinkLanguages": [ - "QmzSYwdkoKCD3dyjutRraNCqCMEfGQ5SQnpSC7At631eJCLEhkh" - ], - "directMessageLanguage": "QmzSYwdeycwPtNCnx7KfStTWQqu5qpZg9iCGopBEtRBAZjvg6uH", - "agentLanguage": "QmzSYwdpgYS2CHb6Nkjqn7xKRbsouUXn7535QSn41dgsjPJiYom", - "perspectiveLanguage": "QmzSYwdmkrLXFHC4wjDN6yq5cz3AGCRDT4Ltfc6pZ4bjqLgb4HJ", - "neighbourhoodLanguage": "QmzSYwdcUcz7bthbfj8Yu83LFrwc6DSF1XTcyv6TRadYThbTisE", - "languageLanguageBundle": "// deno-fmt-ignore-file\n// deno-lint-ignore-file\n// This code was bundled using `deno bundle` and it's not recommended to edit it manually\n\nconst urlJoin = function(...args) {\n let input;\n if (typeof args[0] === 'object') {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nconst normalize = (strArray)=>{\n const resultArray = [];\n if (strArray.length === 0) {\n return '';\n }\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n for(let i = 0; i < strArray.length; i++){\n let component = strArray[i];\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n if (component === '') {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, '');\n } else {\n component = component.replace(/[\\/]+$/, '/');\n }\n resultArray.push(component);\n }\n let str = resultArray.join('/');\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n let parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');\n return str;\n};\nconst methods = [\n 'get',\n 'post',\n 'put',\n 'delete',\n 'options',\n 'head',\n 'connect',\n 'trace',\n 'patch'\n];\nconst addInterceptor = ()=>{\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\nfunction axiod(url, config) {\n if (typeof url === 'string') {\n return axiod.request(Object.assign({}, axiod.defaults, {\n url\n }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: '/',\n method: 'get',\n timeout: 0,\n withCredentials: false,\n validateStatus: (status)=>{\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config)=>{\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options)=>{\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n };\n instance.post = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n };\n instance.put = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n };\n instance.delete = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n };\n instance.options = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n };\n instance.head = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n };\n instance.connect = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n };\n instance.trace = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n };\n instance.patch = (url, data, config)=>{\n return instance.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list){\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let { url ='/' , baseURL , method , headers , params ={} , data , timeout , withCredentials , auth , validateStatus , paramsSerializer , transformRequest , transformResponse , redirect , responseType ='json' } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = 'get';\n }\n let _params = '';\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key)=>{\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers['Authorization'] = 'Basic ' + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== 'get') {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== 'get') {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for(var i = 0; i < (transformRequest || []).length; i++){\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === 'string' || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers['Accept'] = 'application/json';\n headers['Content-Type'] = 'application/json';\n } catch (ex) {}\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header)=>{\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(()=>{\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x)=>{\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response = x.clone();\n if (responseType === 'json') {\n _data = await response.json();\n } else if (responseType === 'text') {\n _data = await response.text();\n } else if (responseType === 'arraybuffer') {\n _data = await response.arrayBuffer();\n } else if (responseType === 'blob') {\n _data = await response.blob();\n } else if (responseType === 'stream') {\n _data = (await response.blob()).stream();\n } else {\n _data = await response.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for(var i = 0; i < (transformResponse || []).length; i++){\n if (transformResponse && transformResponse[i]) {\n _data = transformResponse[i](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list){\n if (interceptor) {\n const { fulfilled , rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'get'\n }));\n};\naxiod.post = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'post',\n data\n }));\n};\naxiod.put = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'put',\n data\n }));\n};\naxiod.delete = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'delete',\n data\n }));\n};\naxiod.options = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'options',\n data\n }));\n};\naxiod.head = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'head',\n data\n }));\n};\naxiod.connect = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'connect',\n data\n }));\n};\naxiod.trace = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'trace',\n data\n }));\n};\naxiod.patch = (url, data, config)=>{\n return axiod.request(Object.assign({}, {\n url\n }, config, {\n method: 'patch',\n data\n }));\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nconst name = \"languages\";\nconst PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nclass LangAdapter {\n constructor(context){}\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await axiod.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n}\nclass CloudflarePutAdapter {\n #agent;\n constructor(context){\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address) throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\\nWanted: ${language.meta.address}\\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key: key,\n value: JSON.stringify(expression)\n };\n try {\n const metaPostResult = await axiod.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n value: language.bundle.toString()\n };\n const bundlePostResult = await axiod.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n } catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n}\nclass Adapter {\n putAdapter;\n constructor(context){\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await axiod.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await axiod.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n}\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport { name as name };\nexport { PROXY_URL as PROXY_URL };\nexport { create as default };\n" -} \ No newline at end of file diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 7539096d0..9d6b285ca 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -66,10 +66,10 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports", features = ["test_utils", "default"] } -holochain_cli_bundle = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports" } -holochain_types = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports" } -holochain_cli_run_local_services = { git = "https://github.com/coasys/holochain", branch = "pack-unpack-dna-exports" } +holochain = { version = "0.2.2-beta.rc3", features = ["test_utils", "default"] } +holochain_cli_bundle = { version = "0.2.2-beta.rc3" } +holochain_types = { version = "0.2.2-beta.rc3" } +holochain_cli_run_local_services = { version = "0.2.2-beta.rc3" } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible", features = ["multi_thread"] } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index 3a00b66b9..f13383ee4 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -3,10 +3,10 @@ "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" ], "knownLinkLanguages": [ - "QmzSYwdixogydCMPbSJCF6gqrr8igYkf5Jti7RLvRLc9jPSXwZR" + "QmzSYwdmubQkDMTipxdck13SB3Drt4deCf7V75WwUbZxQcvtZAT" ], - "directMessageLanguage": "QmzSYwdcZPQToRt7653T2zAq8BEt8u7dZ7jyzWMaRTsSxMc4HuZ", - "agentLanguage": "QmzSYwdfHAE9cvfvCkNZFWH9L5y2QcKBiivNZYU53UR4hE8a8Dx", + "directMessageLanguage": "QmzSYwdevfmCjVY9ZXC1fCj8m3CdwfQddocZw8dpJ1KJdYmNRQ8", + "agentLanguage": "QmzSYwdYZVckxq3aX2RYnVzdR7eNW1YYn5xJi5c7gGZGL2GAuqn", "perspectiveLanguage": "QmzSYwdeBLCn99QU7DSnJuTFrp7TQGRZkrTDRXvxiv2XAbUFeEx", "neighbourhoodLanguage": "QmzSYwdo2a6E4XghRHrN5eCReyYRDeRE8VnRbvqgoWZsr9B4pxV", "languageLanguageBundle": "// https://deno.land/x/url_join@1.0.0/mod.ts\nvar urlJoin = function(...args) {\n let input;\n if (typeof args[0] === \"object\") {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nvar normalize = (strArray) => {\n const resultArray = [];\n if (strArray.length === 0) {\n return \"\";\n }\n if (typeof strArray[0] !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1:///\");\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1://\");\n }\n for (let i = 0; i < strArray.length; i++) {\n let component = strArray[i];\n if (typeof component !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + component);\n }\n if (component === \"\") {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, \"\");\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, \"\");\n } else {\n component = component.replace(/[\\/]+$/, \"/\");\n }\n resultArray.push(component);\n }\n let str = resultArray.join(\"/\");\n str = str.replace(/\\/(\\?|&|#[^!])/g, \"$1\");\n let parts = str.split(\"?\");\n str = parts.shift() + (parts.length > 0 ? \"?\" : \"\") + parts.join(\"&\");\n return str;\n};\n\n// https://deno.land/x/axiod@0.26.2/helpers.ts\nvar methods = [\n \"get\",\n \"post\",\n \"put\",\n \"delete\",\n \"options\",\n \"head\",\n \"connect\",\n \"trace\",\n \"patch\"\n];\nvar addInterceptor = () => {\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\n\n// https://deno.land/x/axiod@0.26.2/mod.ts\nfunction axiod(url, config) {\n if (typeof url === \"string\") {\n return axiod.request(Object.assign({}, axiod.defaults, { url }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: \"/\",\n method: \"get\",\n timeout: 0,\n withCredentials: false,\n validateStatus: (status) => {\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config) => {\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options) => {\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"get\" })\n );\n };\n instance.post = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"post\", data })\n );\n };\n instance.put = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"put\", data })\n );\n };\n instance.delete = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"delete\", data })\n );\n };\n instance.options = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"options\", data })\n );\n };\n instance.head = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"head\", data })\n );\n };\n instance.connect = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"connect\", data })\n );\n };\n instance.trace = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"trace\", data })\n );\n };\n instance.patch = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"patch\", data })\n );\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list) {\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let {\n url = \"/\",\n baseURL,\n method,\n headers,\n params = {},\n data,\n timeout,\n withCredentials,\n auth,\n validateStatus,\n paramsSerializer,\n transformRequest,\n transformResponse,\n redirect,\n responseType = \"json\"\n } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = \"get\";\n }\n let _params = \"\";\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key) => {\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]);\n }).join(\"&\");\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers[\"Authorization\"] = \"Basic \" + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== \"get\") {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== \"get\") {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for (var i = 0; i < (transformRequest || []).length; i++) {\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === \"string\" || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers[\"Accept\"] = \"application/json\";\n headers[\"Content-Type\"] = \"application/json\";\n } catch (ex) {\n }\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header) => {\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(() => {\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x) => {\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response2 = x.clone();\n if (responseType === \"json\") {\n _data = await response2.json();\n } else if (responseType === \"text\") {\n _data = await response2.text();\n } else if (responseType === \"arraybuffer\") {\n _data = await response2.arrayBuffer();\n } else if (responseType === \"blob\") {\n _data = await response2.blob();\n } else if (responseType === \"stream\") {\n _data = (await response2.blob()).stream();\n } else {\n _data = await response2.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for (var i2 = 0; i2 < (transformResponse || []).length; i2++) {\n if (transformResponse && transformResponse[i2]) {\n _data = transformResponse[i2](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list) {\n if (interceptor) {\n const { fulfilled, rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"get\" })\n );\n};\naxiod.post = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"post\", data })\n );\n};\naxiod.put = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"put\", data })\n );\n};\naxiod.delete = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"delete\", data })\n );\n};\naxiod.options = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"options\", data })\n );\n};\naxiod.head = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"head\", data })\n );\n};\naxiod.connect = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"connect\", data })\n );\n};\naxiod.trace = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"trace\", data })\n );\n};\naxiod.patch = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"patch\", data })\n );\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nvar mod_default = axiod;\n\n// languageAdapter.ts\nvar LangAdapter = class {\n constructor(context) {\n }\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await mod_default.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n};\n\n// putAdapter.ts\nvar CloudflarePutAdapter = class {\n #agent;\n constructor(context) {\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key,\n // Content of the new object.\n value: JSON.stringify(expression)\n };\n try {\n const metaPostResult = await mod_default.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString()\n };\n const bundlePostResult = await mod_default.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n } catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n};\n\n// adapter.ts\nvar Adapter = class {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await mod_default.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n};\n\n// index.ts\nvar name = \"languages\";\nvar PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport {\n PROXY_URL,\n create as default,\n name\n};\n" diff --git a/yarn.lock b/yarn.lock index df9809969..3893f69e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -236,16 +236,6 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" - integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA== - dependencies: - "@babel/types" "^7.22.15" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -253,6 +243,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.22.1": version "7.22.1" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz#bfcd6b7321ffebe33290d68550e2c9d7eb7c7a58" @@ -264,7 +261,7 @@ lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.22.5": +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== @@ -320,16 +317,16 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== + "@babel/helper-environment-visitor@^7.22.1": version "7.22.1" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8" integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA== -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - "@babel/helper-function-name@^7.21.0", "@babel/helper-function-name@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" @@ -338,7 +335,7 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-hoist-variables@^7.18.6", "@babel/helper-hoist-variables@^7.22.5": +"@babel/helper-hoist-variables@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== @@ -373,6 +370,17 @@ dependencies: "@babel/types" "^7.22.15" +"@babel/helper-module-transforms@^7.20.11": + version "7.22.17" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz#7edf129097a51ccc12443adbc6320e90eab76693" + integrity sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.15" + "@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.1": version "7.22.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz#e0cad47fedcf3cae83c11021696376e2d5a50c63" @@ -410,7 +418,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== -"@babel/helper-plugin-utils@^7.22.5": +"@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== @@ -425,15 +433,14 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-remap-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" - integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== +"@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.22.5": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" + integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-replace-supers@^7.22.1": version "7.22.1" @@ -447,15 +454,6 @@ "@babel/traverse" "^7.22.1" "@babel/types" "^7.22.0" -"@babel/helper-replace-supers@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" - integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-simple-access@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" @@ -470,7 +468,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== @@ -519,15 +517,14 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== -"@babel/helper-wrap-function@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" - integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== +"@babel/helper-wrap-function@^7.18.9": + version "7.22.17" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz#222ac3ff9cc8f9b617cc1e5db75c0b538e722801" + integrity sha512-nAhoheCMlrqU41tAojw9GpVEKDlTS8r3lzFmF0lP52LwblCPbuFSO7nGIZoIcoU5NIm1ABrna0cJExE4Ay6l2Q== dependencies: "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.17" "@babel/helpers@^7.22.0": version "7.22.3" @@ -538,7 +535,7 @@ "@babel/traverse" "^7.22.1" "@babel/types" "^7.22.3" -"@babel/highlight@^7.22.13", "@babel/highlight@^7.22.5": +"@babel/highlight@^7.18.6", "@babel/highlight@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== @@ -810,6 +807,7 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6", "@babel/plugin-transform-block-scoped-functions@^7.18.6": + name "@babel/plugin-syntax-unicode-sets-regex" version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== @@ -1443,7 +1441,7 @@ "@babel/parser" "^7.21.9" "@babel/types" "^7.21.5" -"@babel/template@^7.22.5": +"@babel/template@^7.22.15", "@babel/template@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== @@ -1468,22 +1466,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.15.tgz#75be4d2d6e216e880e93017f4e2389aeb77ef2d9" - integrity sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - debug "^4.1.0" - globals "^11.1.0" - "@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.22.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071" @@ -1493,6 +1475,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.18.9", "@babel/types@^7.22.17": + version "7.22.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.17.tgz#f753352c4610ffddf9c8bc6823f9ff03e2303eee" + integrity sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.15" + to-fast-properties "^2.0.0" + "@babel/types@^7.22.15", "@babel/types@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.15.tgz#266cb21d2c5fd0b3931e7a91b6dd72d2f617d282" @@ -4611,7 +4602,7 @@ dependencies: "@types/node" "*" -"@types/ws@^8.5.5": +"@types/ws@^8.5.1": version "8.5.5" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== @@ -4759,13 +4750,6 @@ resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.13.tgz#dc17280770a8d075205c32dd4d1ce95faec0546f" integrity sha512-Xl4eyfU8nwtTHF4Wi0Qyklq8BC6BmW++GYlN0gCeIgrqeIDmV7xp3nNpIN4fQpIbdvq3lvgnvVcBKAiYn9FvzA== -"@undecaf/zbar-wasm@^0.9.14": - version "0.9.16" - resolved "https://registry.yarnpkg.com/@undecaf/zbar-wasm/-/zbar-wasm-0.9.16.tgz#ba404602ec90ae20b05fe83c8a68a4c50951f643" - integrity sha512-T5PcT6g+tLScGjR4WmnRErNvfKqEc3kRg2ux14wHmIDNbvNeXa0BkFK19PRK/jb6zGy5NyWtn4ko6KeNuZc/fQ== - dependencies: - jschardet "^3.0.0" - "@vitejs/plugin-react-refresh@^1.3.6": version "1.3.6" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.6.tgz#19818392db01e81746cfeb04e096ab3010e79fe3" @@ -13561,11 +13545,6 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jschardet@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-3.0.0.tgz#898d2332e45ebabbdb6bf2feece9feea9a99e882" - integrity sha512-lJH6tJ77V8Nzd5QWRkFYCLc13a3vADkh3r/Fi8HupZGWk2OVVDfnZP8V/VgQgZ+lzW0kG2UGb5hFgt3V3ndotQ== - jsdom@^16.4.0, jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -18424,6 +18403,11 @@ reading-time@^1.3.0: resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== +readline-sync@1.4.10: + version "1.4.10" + resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" + integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== + recursive-readdir@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" From f709a191bbc8c66ce042c98fd5d3da541a890028 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 12:23:57 +0100 Subject: [PATCH 669/722] fix hdk compilation issues --- .../hc-dna/zomes/agent_store/src/utils.rs | 16 +++---- .../hc-dna/zomes/direct-message/src/lib.rs | 16 +++---- .../src/link_adapter/snapshots.rs | 16 +++---- .../src/link_adapter/workspace.rs | 16 +++---- .../src/retriever/holochain.rs | 30 ++++++------ .../src/telepresence/status.rs | 46 +++++++++---------- 6 files changed, 70 insertions(+), 70 deletions(-) diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs index 986440c13..7b79fc6df 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs @@ -6,15 +6,15 @@ pub(crate) fn err(reason: &str) -> WasmError { } pub(crate) fn get_latest_link(base: EntryHash, tag: Option) -> ExternResult> { - let input = GetLinksInputBuilder::try_new( - base, - LinkTypes::ProfileLink - ) - .unwrap() - .tag_prefix(tag.unwrap()) - .build(); + // let input = GetLinksInputBuilder::try_new( + // base, + // LinkTypes::ProfileLink + // ) + // .unwrap() + // .tag_prefix(tag.unwrap()) + // .build(); - let profile_info = get_links(input)?; + let profile_info = get_links(base, LinkTypes::ProfileLink, Some(tag.unwrap()))?; // Find the latest let latest_info = diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs index 7cd843a6b..4337e8397 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs @@ -209,15 +209,15 @@ pub fn fetch_inbox(_: ()) -> ExternResult<()> { if Recipient(agent_info()?.agent_latest_pubkey) == recipient()? { //debug!("fetch_inbox agent"); //debug!("agent_address: {}", agent_address); - let input = GetLinksInputBuilder::try_new( - agent_address, - LinkTypes::Message - ) - .unwrap() - .tag_prefix(LinkTag::new("message")) - .build(); + // let input = GetLinksInputBuilder::try_new( + // agent_address, + // LinkTypes::Message + // ) + // .unwrap() + // .tag_prefix(LinkTag::new("message")) + // .build(); - for link in get_links(input)? { + for link in get_links(agent_address, LinkTypes::Message, Some(LinkTag::new("message")))? { //debug!("fetch_inbox link"); if let Some(message_entry) = get( link.target diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs index d8a053b98..e366c16a5 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs @@ -41,14 +41,14 @@ pub fn generate_snapshot( ))?; if diff.diffs_since_snapshot == 0 && search_position.hash != latest { let now = get_now()?.time(); - let input = GetLinksInputBuilder::try_new( - hash_entry(&diff)?, - LinkTypes::Snapshot - ) - .unwrap() - .tag_prefix(LinkTag::new("snapshot")) - .build(); - let mut snapshot_links = get_links(input)?; + // let input = GetLinksInputBuilder::try_new( + // hash_entry(&diff)?, + // LinkTypes::Snapshot + // ) + // .unwrap() + // .tag_prefix(LinkTag::new("snapshot")) + // .build(); + let mut snapshot_links = get_links(hash_entry(&diff)?, LinkTypes::Snapshot, Some(LinkTag::new("snapshot")))?; let after = get_now()?.time(); debug!("===PerspectiveDiffSync.generate_snapshot() - Profiling: Took {} to get the snapshot links", (after - now).num_milliseconds()); if snapshot_links.len() == 0 { diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs index 2a8c4ad0f..296e1f004 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs @@ -654,14 +654,14 @@ impl Workspace { debug!("===Workspace.get_snapshot(): Function start"); let fn_start = get_now()?.time(); - let input = GetLinksInputBuilder::try_new( - hash_entry(address)?, - LinkTypes::Snapshot - ) - .unwrap() - .tag_prefix(LinkTag::new("snapshot")) - .build(); - let mut snapshot_links = get_links(input)?; + // let input = GetLinksInputBuilder::try_new( + // hash_entry(address)?, + // LinkTypes::Snapshot + // ) + // .unwrap() + // .tag_prefix(LinkTag::new("snapshot")) + // .build(); + let mut snapshot_links = get_links(hash_entry(address)?, LinkTypes::Snapshot, Some(LinkTag::new("snapshot")))?; if snapshot_links.len() > 0 { let snapshot = get( diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs index 83cef098d..c97a7f3bd 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs @@ -100,13 +100,13 @@ impl PerspectiveDiffRetreiver for HolochainRetreiver { fn latest_revision() -> SocialContextResult> { let latest_root_entry = get_latest_revision_anchor(); let latest_root_entry_hash = hash_entry(latest_root_entry.clone())?; - let input = GetLinksInputBuilder::try_new( - latest_root_entry_hash, - LinkTypes::Index - ) - .unwrap() - .build(); - let mut latest_revision_links = get_links(input)?; + // let input = GetLinksInputBuilder::try_new( + // latest_root_entry_hash, + // LinkTypes::Index + // ) + // .unwrap() + // .build(); + let mut latest_revision_links = get_links(latest_root_entry_hash, LinkTypes::Index, None)?; latest_revision_links.sort_by(|link_a, link_b| { let link_a_str = std::str::from_utf8(&link_a.tag.0).unwrap(); @@ -169,14 +169,14 @@ pub fn get_active_agent_anchor() -> Anchor { } pub fn get_active_agents() -> SocialContextResult> { - let input = GetLinksInputBuilder::try_new( - hash_entry(get_active_agent_anchor())?, - LinkTypes::Index - ) - .unwrap() - .tag_prefix(LinkTag::new("active_agent")) - .build(); - let recent_agents = get_links(input)?; + // let input = GetLinksInputBuilder::try_new( + // hash_entry(get_active_agent_anchor())?, + // LinkTypes::Index + // ) + // .unwrap() + // .tag_prefix(LinkTag::new("active_agent")) + // .build(); + let recent_agents = get_links(hash_entry(get_active_agent_anchor())?, LinkTypes::Index, Some(LinkTag::new("active_agent")))?; let recent_agents = recent_agents .into_iter() diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs index df6fdbba4..eba6ab08b 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs @@ -64,8 +64,8 @@ pub fn create_did_pub_key_link(did: String) -> SocialContextResult<()> { debug!("PerspectiveDiffSync.create_did_pub_key_link({:?})", did); let agent_key = agent_info()?.agent_latest_pubkey; debug!("PerspectiveDiffSync.create_did_pub_key_link() agent_key: {:?}", agent_key); - let input = GetLinksInputBuilder::try_new(agent_key.clone(), LinkTypes::DidLink).unwrap().build(); - let did_links = get_links(input)?; + //let input = GetLinksInputBuilder::try_new(agent_key.clone(), LinkTypes::DidLink).unwrap().build(); + let did_links = get_links(agent_key.clone(), LinkTypes::DidLink, None)?; debug!("PerspectiveDiffSync.create_did_pub_key_link() did_links: {:?}", did_links); if did_links.len() == 0 { @@ -89,13 +89,13 @@ pub fn create_did_pub_key_link(did: String) -> SocialContextResult<()> { } pub fn get_my_did() -> SocialContextResult> { - let input = GetLinksInputBuilder::try_new( - agent_info()?.agent_latest_pubkey, - LinkTypes::DidLink - ) - .unwrap() - .build(); - let mut did_links = get_links(input)?; + // let input = GetLinksInputBuilder::try_new( + // agent_info()?.agent_latest_pubkey, + // LinkTypes::DidLink + // ) + // .unwrap() + // .build(); + let mut did_links = get_links(agent_info()?.agent_latest_pubkey, LinkTypes::DidLink, None)?; if did_links.len() > 0 { let did = get( did_links @@ -122,13 +122,13 @@ pub fn get_my_did() -> SocialContextResult> { pub fn get_dids_agent_key(did: String) -> SocialContextResult> { let did_entry = Anchor(did); let did_entry_hash = hash_entry(EntryTypes::Anchor(did_entry.clone()))?; - let input = GetLinksInputBuilder::try_new( - did_entry_hash, - LinkTypes::DidLink - ) - .unwrap() - .build(); - let did_links = get_links(input)?; + // let input = GetLinksInputBuilder::try_new( + // did_entry_hash, + // LinkTypes::DidLink + // ) + // .unwrap() + // .build(); + let did_links = get_links(did_entry_hash, LinkTypes::DidLink, None)?; debug!("PerspectiveDiffSync.get_dids_agent_key() did_links: {:?}", did_links); if did_links.len() > 0 { let entry: EntryHash = did_links[0].target.clone().try_into().unwrap(); @@ -139,13 +139,13 @@ pub fn get_dids_agent_key(did: String) -> SocialContextResult SocialContextResult> { - let input = GetLinksInputBuilder::try_new( - agent, - LinkTypes::DidLink - ) - .unwrap() - .build(); - let mut did_links = get_links(input)?; + // let input = GetLinksInputBuilder::try_new( + // agent, + // LinkTypes::DidLink + // ) + // .unwrap() + // .build(); + let mut did_links = get_links(agent, LinkTypes::DidLink, None)?; if did_links.len() > 0 { let did = get( did_links From c834e05506466429745d2bc8e6a8a95a31a9ec95 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 12:24:06 +0100 Subject: [PATCH 670/722] add new mainnet seed --- rust-executor/src/mainnet_seed.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index f13383ee4..1c60111fa 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -3,10 +3,10 @@ "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" ], "knownLinkLanguages": [ - "QmzSYwdmubQkDMTipxdck13SB3Drt4deCf7V75WwUbZxQcvtZAT" + "QmzSYwdeSbmsdSxtWjaTVY9vSGBwwgWpRBDzL6uvnDKKoPQbwBp" ], - "directMessageLanguage": "QmzSYwdevfmCjVY9ZXC1fCj8m3CdwfQddocZw8dpJ1KJdYmNRQ8", - "agentLanguage": "QmzSYwdYZVckxq3aX2RYnVzdR7eNW1YYn5xJi5c7gGZGL2GAuqn", + "directMessageLanguage": "QmzSYwdZKCnxbwGrfP6jWoidskhSEjg6XBmRAghiS1Hztt3iDrU", + "agentLanguage": "QmzSYwdavB4EzPocDqdbd2sLLL5Q2DRS3HvwRKfDdDxRk3GohVr", "perspectiveLanguage": "QmzSYwdeBLCn99QU7DSnJuTFrp7TQGRZkrTDRXvxiv2XAbUFeEx", "neighbourhoodLanguage": "QmzSYwdo2a6E4XghRHrN5eCReyYRDeRE8VnRbvqgoWZsr9B4pxV", "languageLanguageBundle": "// https://deno.land/x/url_join@1.0.0/mod.ts\nvar urlJoin = function(...args) {\n let input;\n if (typeof args[0] === \"object\") {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nvar normalize = (strArray) => {\n const resultArray = [];\n if (strArray.length === 0) {\n return \"\";\n }\n if (typeof strArray[0] !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1:///\");\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1://\");\n }\n for (let i = 0; i < strArray.length; i++) {\n let component = strArray[i];\n if (typeof component !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + component);\n }\n if (component === \"\") {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, \"\");\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, \"\");\n } else {\n component = component.replace(/[\\/]+$/, \"/\");\n }\n resultArray.push(component);\n }\n let str = resultArray.join(\"/\");\n str = str.replace(/\\/(\\?|&|#[^!])/g, \"$1\");\n let parts = str.split(\"?\");\n str = parts.shift() + (parts.length > 0 ? \"?\" : \"\") + parts.join(\"&\");\n return str;\n};\n\n// https://deno.land/x/axiod@0.26.2/helpers.ts\nvar methods = [\n \"get\",\n \"post\",\n \"put\",\n \"delete\",\n \"options\",\n \"head\",\n \"connect\",\n \"trace\",\n \"patch\"\n];\nvar addInterceptor = () => {\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\n\n// https://deno.land/x/axiod@0.26.2/mod.ts\nfunction axiod(url, config) {\n if (typeof url === \"string\") {\n return axiod.request(Object.assign({}, axiod.defaults, { url }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: \"/\",\n method: \"get\",\n timeout: 0,\n withCredentials: false,\n validateStatus: (status) => {\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config) => {\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options) => {\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"get\" })\n );\n };\n instance.post = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"post\", data })\n );\n };\n instance.put = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"put\", data })\n );\n };\n instance.delete = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"delete\", data })\n );\n };\n instance.options = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"options\", data })\n );\n };\n instance.head = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"head\", data })\n );\n };\n instance.connect = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"connect\", data })\n );\n };\n instance.trace = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"trace\", data })\n );\n };\n instance.patch = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"patch\", data })\n );\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list) {\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let {\n url = \"/\",\n baseURL,\n method,\n headers,\n params = {},\n data,\n timeout,\n withCredentials,\n auth,\n validateStatus,\n paramsSerializer,\n transformRequest,\n transformResponse,\n redirect,\n responseType = \"json\"\n } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = \"get\";\n }\n let _params = \"\";\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key) => {\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]);\n }).join(\"&\");\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers[\"Authorization\"] = \"Basic \" + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== \"get\") {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== \"get\") {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for (var i = 0; i < (transformRequest || []).length; i++) {\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === \"string\" || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers[\"Accept\"] = \"application/json\";\n headers[\"Content-Type\"] = \"application/json\";\n } catch (ex) {\n }\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header) => {\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(() => {\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x) => {\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response2 = x.clone();\n if (responseType === \"json\") {\n _data = await response2.json();\n } else if (responseType === \"text\") {\n _data = await response2.text();\n } else if (responseType === \"arraybuffer\") {\n _data = await response2.arrayBuffer();\n } else if (responseType === \"blob\") {\n _data = await response2.blob();\n } else if (responseType === \"stream\") {\n _data = (await response2.blob()).stream();\n } else {\n _data = await response2.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for (var i2 = 0; i2 < (transformResponse || []).length; i2++) {\n if (transformResponse && transformResponse[i2]) {\n _data = transformResponse[i2](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list) {\n if (interceptor) {\n const { fulfilled, rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"get\" })\n );\n};\naxiod.post = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"post\", data })\n );\n};\naxiod.put = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"put\", data })\n );\n};\naxiod.delete = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"delete\", data })\n );\n};\naxiod.options = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"options\", data })\n );\n};\naxiod.head = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"head\", data })\n );\n};\naxiod.connect = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"connect\", data })\n );\n};\naxiod.trace = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"trace\", data })\n );\n};\naxiod.patch = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"patch\", data })\n );\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nvar mod_default = axiod;\n\n// languageAdapter.ts\nvar LangAdapter = class {\n constructor(context) {\n }\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await mod_default.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n};\n\n// putAdapter.ts\nvar CloudflarePutAdapter = class {\n #agent;\n constructor(context) {\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key,\n // Content of the new object.\n value: JSON.stringify(expression)\n };\n try {\n const metaPostResult = await mod_default.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString()\n };\n const bundlePostResult = await mod_default.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n } catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n};\n\n// adapter.ts\nvar Adapter = class {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await mod_default.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n};\n\n// index.ts\nvar name = \"languages\";\nvar PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport {\n PROXY_URL,\n create as default,\n name\n};\n" From a2bd0299c2afc1d415be43fa43add2c25d91d792 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 13:12:59 +0100 Subject: [PATCH 671/722] auto select app interface port --- rust-executor/src/holochain_service/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index c33c79cb7..47c5df120 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -250,7 +250,7 @@ impl HolochainService { let interface = conductor .clone() - .add_app_interface(Either::Left(local_config.app_port)) + .add_app_interface(Either::Left(0)) .await; info!("Added app interface: {:?}", interface); From 0751489842db6b0a41e787c9cc24d34a796bca57 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 15:28:34 +0100 Subject: [PATCH 672/722] use chatgpt mutex fixes in link lang --- .../p-diff-sync/linksAdapter.ts | 101 ++++++++++++------ rust-executor/src/mainnet_seed.json | 2 +- 2 files changed, 71 insertions(+), 32 deletions(-) diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index 425d28573..9a89c8f51 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -15,8 +15,7 @@ export class LinkAdapter implements LinkSyncAdapter { linkCallback?: PerspectiveDiffObserver syncStateChangeCallback?: SyncStateChangeObserver peers: Map = new Map(); - peersMutex: Mutex = new Mutex(); - currentRevisionMutex: Mutex = new Mutex(); + generalMutex: Mutex = new Mutex(); me: DID gossipLogCount: number = 0; myCurrentRevision: Buffer | null = null; @@ -48,9 +47,16 @@ export class LinkAdapter implements LinkSyncAdapter { async sync(): Promise { try { - console.log("PerspectiveDiffSync.sync(); Getting currentRevision lock"); - await this.currentRevisionMutex.lock(); - console.log("PerspectiveDiffSync.sync(); Got currentRevision lock"); + console.log("PerspectiveDiffSync.sync(); Getting lock"); + + const success = await this.generalMutex.lock(); + if (!success) { + console.log("Failed to get lock due to timeout"); + return new PerspectiveDiff() + } + + console.log("PerspectiveDiffSync.sync(); Got lock"); + //@ts-ignore let current_revision = await this.hcDna.call(DNA_NICK, ZOME_NAME, "sync", null); if (current_revision && Buffer.isBuffer(current_revision)) { @@ -59,7 +65,7 @@ export class LinkAdapter implements LinkSyncAdapter { } catch (e) { console.error("PerspectiveDiffSync.sync(); got error", e); } finally { - this.currentRevisionMutex.unlock(); + this.generalMutex.unlock(); } await this.gossip(); return new PerspectiveDiff() @@ -71,10 +77,16 @@ export class LinkAdapter implements LinkSyncAdapter { try { console.log("PerspectiveDiffSync.gossip(); Getting peers lock"); - await this.peersMutex.lock(); - console.log("PerspectiveDiffSync.gossip(); Got peers lock"); - await this.currentRevisionMutex.lock(); - console.log("PerspectiveDiffSync.gossip(); Got currentRevision lock"); + // Trying to lock with a timeout + const success = await this.generalMutex.lock(); + + if (!success) { + console.log("Failed to get lock due to timeout"); + return; + } + + console.log("PerspectiveDiffSync.gossip(); Got lock"); + this.peers.forEach( (peerInfo, peer) => { if (peerInfo.lastSeen.getTime() + 10000 < new Date().getTime()) { lostPeers.push(peer); @@ -181,8 +193,7 @@ export class LinkAdapter implements LinkSyncAdapter { } catch (e) { console.error("PerspectiveDiffSync.gossip(); got error", e); } finally { - this.peersMutex.unlock(); - this.currentRevisionMutex.unlock(); + this.generalMutex.unlock(); } } @@ -194,9 +205,15 @@ export class LinkAdapter implements LinkSyncAdapter { async commit(diff: PerspectiveDiff): Promise { try { - console.log("PerspectiveDiffSync.commit(); Getting currentRevision lock"); - await this.currentRevisionMutex.lock(); - console.log("PerspectiveDiffSync.commit(); Got currentRevision lock"); + console.log("PerspectiveDiffSync.commit(); Getting lock"); + const success = await this.generalMutex.lock(); + + if (!success) { + console.log("Failed to get lock due to timeout"); + return ""; + } + + console.log("PerspectiveDiffSync.commit(); Got lock"); let prep_diff = { additions: diff.additions.map((diff) => prepareLinkExpression(diff)), removals: diff.removals.map((diff) => prepareLinkExpression(diff)) @@ -209,7 +226,7 @@ export class LinkAdapter implements LinkSyncAdapter { } catch (e) { console.error("PerspectiveDiffSync.commit(); got error", e); } finally { - this.currentRevisionMutex.unlock(); + this.generalMutex.unlock(); } } @@ -238,14 +255,20 @@ export class LinkAdapter implements LinkSyncAdapter { // broadcast_author: ${broadcast_author} // `) try { - console.log("PerspectiveDiffSync.handleHolochainSignal: Getting peers lock"); - await this.peersMutex.lock(); - console.log("PerspectiveDiffSync.handleHolochainSignal: Got peers lock"); + console.log("PerspectiveDiffSync.handleHolochainSignal: Getting lock"); + const success = await this.generalMutex.lock(); + + if (!success) { + console.log("Failed to get lock due to timeout"); + return; + } + + console.log("PerspectiveDiffSync.handleHolochainSignal: Got lock"); this.peers.set(broadcast_author, { currentRevision: reference_hash, lastSeen: new Date() }); } catch (e) { console.error("PerspectiveDiffSync.handleHolochainSignal: got error", e); } finally { - this.peersMutex.unlock(); + this.generalMutex.unlock(); } } else { //console.log("PerspectiveDiffSync.handleHolochainSignal: received a signals from ourselves in fast_forward_signal or in a pull: ", signal.payload); @@ -297,16 +320,32 @@ function prepareLinkExpression(link: LinkExpression): object { class Mutex { private locked = false; - private waitingResolvers: (() => void)[] = []; - - async lock(): Promise { - if (this.locked) { - console.log("Was not able to get lock on mutex adding to waitingResolvers"); - return new Promise((resolve) => { - this.waitingResolvers.push(resolve); - }); - } - this.locked = true; + private waitingResolvers: ((success: boolean) => void)[] = []; + + async lock(timeout = 10000): Promise { // default timeout of 10 seconds + const promise = new Promise((resolve) => { + if (this.locked) { + console.log("Was not able to get lock on mutex adding to waitingResolvers"); + const timer = setTimeout(() => { + const index = this.waitingResolvers.indexOf(resolve); + if (index > -1) { + this.waitingResolvers.splice(index, 1); + resolve(false); // Timeout occurred + } + }, timeout); + + this.waitingResolvers.push((success: boolean) => { + clearTimeout(timer); + resolve(success); + }); + } else { + resolve(true); + } + }); + + const success = await promise; + if (success) this.locked = true; + return success; } unlock(): void { @@ -314,7 +353,7 @@ class Mutex { if (this.waitingResolvers.length > 0) { console.log("Called unlock and got some waitingResolvers to finish"); const resolve = this.waitingResolvers.shift(); - if (resolve) resolve(); + if (resolve) resolve(true); // Successfully acquired lock } else { this.locked = false; } diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index 1c60111fa..9756ce70a 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -3,7 +3,7 @@ "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" ], "knownLinkLanguages": [ - "QmzSYwdeSbmsdSxtWjaTVY9vSGBwwgWpRBDzL6uvnDKKoPQbwBp" + "QmzSYwda9qGU4QgB5yR6FXBN5nZ2ZHjvE2ddR6S15KqgNh76UXY" ], "directMessageLanguage": "QmzSYwdZKCnxbwGrfP6jWoidskhSEjg6XBmRAghiS1Hztt3iDrU", "agentLanguage": "QmzSYwdavB4EzPocDqdbd2sLLL5Q2DRS3HvwRKfDdDxRk3GohVr", From 35cb295ae8bb897bc82c9347861d803de8785100 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 17:04:30 +0100 Subject: [PATCH 673/722] reduce log output for link language --- .../src/link_adapter/commit.rs | 14 +++++++------- bootstrap-languages/p-diff-sync/linksAdapter.ts | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs index 57e642b25..e9897391c 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs @@ -52,10 +52,10 @@ pub fn commit( diff_entry_ref_entry.clone(), ))?; let after = get_now()?.time(); - debug!( - "===PerspectiveDiffSync.commit(): Created diff entry ref: {:#?}", - diff_entry_reference - ); + // debug!( + // "===PerspectiveDiffSync.commit(): Created diff entry ref: {:#?}", + // diff_entry_reference + // ); debug!( "===PerspectiveDiffSync.commit() - Profiling: Took {} to create a PerspectiveDiff", (after - now).num_milliseconds() @@ -127,9 +127,9 @@ pub fn add_active_agent_link() -> SocialCon pub fn broadcast_current() -> SocialContextResult> { - debug!("Running broadcast_current"); + //debug!("Running broadcast_current"); let current = current_revision::()?; - debug!("Current revision: {:#?}", current); + //debug!("Current revision: {:#?}", current); if current.is_some() { let current_revision = current.clone().unwrap(); @@ -145,7 +145,7 @@ pub fn broadcast_current() -> SocialContext }; let recent_agents = get_active_agents()?; - debug!("Recent agents: {:#?}", recent_agents); + //debug!("Recent agents: {:#?}", recent_agents); remote_signal(signal_data.get_sb()?, recent_agents.clone())?; }; Ok(current.map(|rev| rev.hash)) diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index 9a89c8f51..da6f5d513 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -47,7 +47,7 @@ export class LinkAdapter implements LinkSyncAdapter { async sync(): Promise { try { - console.log("PerspectiveDiffSync.sync(); Getting lock"); + //console.log("PerspectiveDiffSync.sync(); Getting lock"); const success = await this.generalMutex.lock(); if (!success) { @@ -55,7 +55,7 @@ export class LinkAdapter implements LinkSyncAdapter { return new PerspectiveDiff() } - console.log("PerspectiveDiffSync.sync(); Got lock"); + //console.log("PerspectiveDiffSync.sync(); Got lock"); //@ts-ignore let current_revision = await this.hcDna.call(DNA_NICK, ZOME_NAME, "sync", null); @@ -76,7 +76,7 @@ export class LinkAdapter implements LinkSyncAdapter { let lostPeers: DID[] = []; try { - console.log("PerspectiveDiffSync.gossip(); Getting peers lock"); + //console.log("PerspectiveDiffSync.gossip(); Getting peers lock"); // Trying to lock with a timeout const success = await this.generalMutex.lock(); @@ -85,7 +85,7 @@ export class LinkAdapter implements LinkSyncAdapter { return; } - console.log("PerspectiveDiffSync.gossip(); Got lock"); + //console.log("PerspectiveDiffSync.gossip(); Got lock"); this.peers.forEach( (peerInfo, peer) => { if (peerInfo.lastSeen.getTime() + 10000 < new Date().getTime()) { @@ -205,7 +205,7 @@ export class LinkAdapter implements LinkSyncAdapter { async commit(diff: PerspectiveDiff): Promise { try { - console.log("PerspectiveDiffSync.commit(); Getting lock"); + //console.log("PerspectiveDiffSync.commit(); Getting lock"); const success = await this.generalMutex.lock(); if (!success) { @@ -213,7 +213,7 @@ export class LinkAdapter implements LinkSyncAdapter { return ""; } - console.log("PerspectiveDiffSync.commit(); Got lock"); + //console.log("PerspectiveDiffSync.commit(); Got lock"); let prep_diff = { additions: diff.additions.map((diff) => prepareLinkExpression(diff)), removals: diff.removals.map((diff) => prepareLinkExpression(diff)) @@ -255,7 +255,7 @@ export class LinkAdapter implements LinkSyncAdapter { // broadcast_author: ${broadcast_author} // `) try { - console.log("PerspectiveDiffSync.handleHolochainSignal: Getting lock"); + //console.log("PerspectiveDiffSync.handleHolochainSignal: Getting lock"); const success = await this.generalMutex.lock(); if (!success) { @@ -263,7 +263,7 @@ export class LinkAdapter implements LinkSyncAdapter { return; } - console.log("PerspectiveDiffSync.handleHolochainSignal: Got lock"); + //console.log("PerspectiveDiffSync.handleHolochainSignal: Got lock"); this.peers.set(broadcast_author, { currentRevision: reference_hash, lastSeen: new Date() }); } catch (e) { console.error("PerspectiveDiffSync.handleHolochainSignal: got error", e); From b56da86c25c5f08c0eef0b2f1873280ef0b1de2f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 17:59:08 +0100 Subject: [PATCH 674/722] update github owner in worker script --- ui/worker/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/worker/src/index.ts b/ui/worker/src/index.ts index d480766c2..fdfbfc908 100644 --- a/ui/worker/src/index.ts +++ b/ui/worker/src/index.ts @@ -34,7 +34,7 @@ export default { const octokit = new Octokit(); const { data } = await octokit.rest.repos.getLatestRelease({ - owner: 'perspect3vism', + owner: 'coasys', repo: 'ad4m', }); From a88a85f5666f8b4c35bce6c5a1a954470d460660 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 18:45:23 +0100 Subject: [PATCH 675/722] add new pub key to tauri config --- ui/src-tauri/tauri.conf.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index f4f8b1c10..e67ea4089 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -59,7 +59,7 @@ "https://launcher-update-worker.perspect3vism.workers.dev/update/{{target}}/{{current_version}}" ], "dialog": false, - "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEZBODdBOEY3OUM3QjRCOTQKUldTVVMzdWM5NmlIK3VGNFp3SllyZWhSK0pZaWZyd0ZQUFNmUnpZZDAyNTVQaGRBWUdXQU9aWHQK" + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEM1OTBGNDkzMkI2MTczMEMKUldRTWMyRXJrL1NReGFTUVBTMjRhQWlEVTFuOHBkcEZwbmEwSG9DdWczeDdtRUdNK3hMMm1GUnoK" }, "allowlist": { "all": true From dd3384b6221f52c20aee8d7eef72195e0f2e2d91 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 18:45:57 +0100 Subject: [PATCH 676/722] add tauri signing secrets to github actions env --- .github/workflows/publish.yml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0f6dbc2c3..36d604b41 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -100,10 +100,16 @@ jobs: - name: Build AD4M-CLI & build Launcher binary (macos/linux-latest) if: matrix.platform != 'windows-latest' + env: + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} run: yarn run package-ad4m - name: Build AD4M-CLI & build Launcher binary (windows-latest) if: matrix.platform == 'windows-latest' + env: + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} run: | choco install curl cygwin gnuwin32-m4 libgcc make mingw yarn run package-ad4m @@ -251,16 +257,6 @@ jobs: asset_path: D:\a\ad4m\ad4m\target\release\ad4m-x64.exe asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe asset_content_type: application/octet-stream - - # - name: "Upload built AD4MIN" - # uses: tauri-apps/tauri-action@v0.3 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version - # releaseName: "Ad4min v__VERSION__" - # releaseBody: "See the assets to download this version and install." - # projectPath: "./ui" npm-publish: runs-on: GH-hosted-ubuntu From e9758bca0b81568eaf8ddffd22db11fa0d6a9885 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 18:58:51 +0100 Subject: [PATCH 677/722] add missing signature uploads and tauri signing info to staging deploys --- .github/workflows/publish_staging.yml | 100 +++++++++++++++++++++----- 1 file changed, 84 insertions(+), 16 deletions(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 22dadaa28..29e879531 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -97,10 +97,16 @@ jobs: - name: Build AD4M-CLI & build Launcher binary (macos/linux-latest) if: matrix.platform != 'windows-latest' + env: + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} run: yarn run package-ad4m - name: Build AD4M-CLI & build Launcher binary (windows-latest) if: matrix.platform == 'windows-latest' + env: + TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} run: | choco install curl cygwin gnuwin32-m4 libgcc make mingw yarn run package-ad4m @@ -113,8 +119,32 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/ADAM\ Launcher${{ steps.extract_version.outputs.version }}_amd64.deb - asset_name: ad4m_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb + asset_name: adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb + asset_content_type: application/octet-stream + + - name: Upload Release Deb Update Asset + id: upload-release-deb-asset-update + if: matrix.platform == 'ubuntu-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz + asset_name: adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz + asset_content_type: application/octet-stream + + - name: Upload Release Deb update sig Asset + id: upload-release-deb-asset-update-sig + if: matrix.platform == 'ubuntu-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig + asset_name: adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig asset_content_type: application/octet-stream - name: Upload Release AD4M CLI Linux Binary @@ -137,8 +167,32 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher${{ steps.extract_version.outputs.version }}_x64.dmg - asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64.dmg + asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg + asset_content_type: application/octet-stream + + - name: Upload Release Macos update Asset + id: upload-release-macos-asset-update + if: matrix.platform == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz + asset_content_type: application/octet-stream + + - name: Upload Release Macos update sig Asset + id: upload-release-macos-asset-update-sig + if: matrix.platform == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz.sig asset_content_type: application/octet-stream - name: Upload Release AD4M CLI Macos Binary @@ -161,31 +215,45 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi - asset_name: AD4M_${{ steps.extract_version.outputs.version }}_x64_en-US.msi + asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi asset_content_type: application/octet-stream - - name: Upload Release AD4M CLI Windows Binary - id: upload-release-windows-ad4m-cli-binary + - name: Upload Release MSI update Asset + id: upload-release-msi-asset-update if: matrix.platform == 'windows-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\target\release\ad4m.exe - asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe + asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip + asset_content_type: application/octet-stream + + - name: Upload Release MSI update sig Asset + id: upload-release-msi-asset-update-sig + if: matrix.platform == 'windows-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig asset_content_type: application/octet-stream - - name: "Upload built AD4MIN" - uses: tauri-apps/tauri-action@v0.3 + - name: Upload Release AD4M CLI Windows Binary + id: upload-release-windows-ad4m-cli-binary + if: matrix.platform == 'windows-latest' + uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version - releaseName: "Ad4min v__VERSION__" - releaseBody: "See the assets to download this version and install." - projectPath: "./ui" + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: D:\a\ad4m\ad4m\target\release\ad4m-x64.exe + asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe + asset_content_type: application/octet-stream npm-publish: runs-on: GH-hosted-ubuntu From 1bfdb865d7a60a225c7afb945f53656d460e3e37 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 18:59:11 +0100 Subject: [PATCH 678/722] add app & app image to target list for ad4m launcher --- ui/src-tauri/tauri.conf.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index e67ea4089..0d465ff8b 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -21,7 +21,9 @@ "deb", "msi", "dmg", - "updater" + "updater", + "app", + "appimage" ], "identifier": "dev.ad4m.ad4min", "icon": [ From 34939d2f7e593e4b95b0a9dca0b6efb0cee619e0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 19:02:13 +0100 Subject: [PATCH 679/722] new yarn.lock for worker --- ui/worker/yarn.lock | 803 +------------------------------------------- 1 file changed, 1 insertion(+), 802 deletions(-) diff --git a/ui/worker/yarn.lock b/ui/worker/yarn.lock index b92a327a3..2c1ba7d53 100644 --- a/ui/worker/yarn.lock +++ b/ui/worker/yarn.lock @@ -307,13 +307,6 @@ undici "5.20.0" ws "^8.2.2" -"@netlify/functions@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.4.0.tgz#027a2e5d54df5519ccbd14cf450231e97bbbf93a" - integrity sha512-gy7ULTIRroc2/jyFVGx1djCmmBMVisIwrvkqggq5B6iDcInRSy2Tpkm+V5C63hKJVkNRskKWtLQKm9ecCaQTjA== - dependencies: - is-promise "^4.0.0" - "@octokit/auth-token@^3.0.0": version "3.0.3" resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz" @@ -415,11 +408,6 @@ dependencies: "@octokit/openapi-types" "^16.0.0" -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - "@types/better-sqlite3@^7.6.0": version "7.6.3" resolved "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz" @@ -445,25 +433,6 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -archive-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" - integrity sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA== - dependencies: - file-type "^4.2.0" - -async-retry@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== - dependencies: - retry "0.13.1" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - before-after-hook@^2.2.0: version "2.2.3" resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz" @@ -474,14 +443,6 @@ binary-extensions@^2.0.0: resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bl@^1.0.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" - integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - blake3-wasm@^2.1.5: version "2.1.5" resolved "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz" @@ -494,42 +455,11 @@ braces@~3.0.2: dependencies: fill-range "^7.0.1" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.2.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - builtins@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz" @@ -544,19 +474,6 @@ busboy@^1.6.0: dependencies: streamsearch "^1.1.0" -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ== - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - chokidar@^3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" @@ -572,35 +489,11 @@ chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -clone-response@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== - dependencies: - mimic-response "^1.0.0" - -commander@^2.8.1: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -content-disposition@^0.5.2: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - cookie@^0.4.1: version "0.4.2" resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - cron-schedule@^3.0.4: version "3.0.6" resolved "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz" @@ -615,76 +508,6 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== - dependencies: - mimic-response "^1.0.0" - -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - integrity sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw== - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" - integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" @@ -695,40 +518,6 @@ dotenv@^10.0.0: resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -download@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/download/-/download-8.0.0.tgz#afc0b309730811731aae9f5371c9f46be73e51b1" - integrity sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA== - dependencies: - archive-type "^4.0.0" - content-disposition "^0.5.2" - decompress "^4.2.1" - ext-name "^5.0.0" - file-type "^11.1.0" - filenamify "^3.0.0" - get-stream "^4.1.0" - got "^8.3.1" - make-dir "^2.1.0" - p-event "^2.1.0" - pify "^4.0.1" - -downloadjs@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/downloadjs/-/downloadjs-1.4.7.tgz#f69f96f940e0d0553dac291139865a3cd0101e3c" - integrity sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q== - -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - esbuild@0.16.3: version "0.16.3" resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz" @@ -757,11 +546,6 @@ esbuild@0.16.3: "@esbuild/win32-ia32" "0.16.3" "@esbuild/win32-x64" "0.16.3" -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" @@ -787,75 +571,6 @@ execa@^6.1.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - -file-type@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-11.1.0.tgz#93780f3fed98b599755d846b99a1617a2ad063b8" - integrity sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g== - -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - integrity sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA== - -file-type@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" - integrity sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ== - -file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - integrity sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ== - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== - -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== - -filenamify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-3.0.0.tgz#9603eb688179f8c5d40d828626dcbb92c3a4672c" - integrity sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" @@ -863,51 +578,11 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - integrity sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA== - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-stream@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" @@ -920,89 +595,21 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -got@^8.3.1: - version "8.3.2" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -graceful-fs@^4.1.10: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - html-rewriter-wasm@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz" integrity sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q== -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - http-cache-semantics@^4.1.0: version "4.1.1" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4" - integrity sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg== - human-signals@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ== - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -1022,96 +629,31 @@ is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - integrity sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ== - is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" - integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-promise@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" - integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== - -is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - is-stream@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - kleur@^4.1.4: version "4.1.5" resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A== - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" @@ -1126,31 +668,11 @@ magic-string@^0.25.3: dependencies: sourcemap-codec "^1.4.8" -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -mime-db@^1.28.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - mime@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" @@ -1161,11 +683,6 @@ mimic-fn@^4.0.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - miniflare@2.12.1: version "2.12.1" resolved "https://registry.npmjs.org/miniflare/-/miniflare-2.12.1.tgz" @@ -1193,11 +710,6 @@ miniflare@2.12.1: source-map-support "^0.5.20" undici "5.20.0" -minimist@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - mustache@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" @@ -1208,11 +720,6 @@ nanoid@^3.3.3: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - node-fetch@^2.6.7: version "2.6.9" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz" @@ -1220,15 +727,6 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.0.tgz#37e71db4ecc257057af828d523a7243d651d91e4" - integrity sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - node-forge@^1: version "1.3.1" resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" @@ -1239,15 +737,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - npm-run-path@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" @@ -1265,12 +754,7 @@ npx-import@^1.1.4: semver "^7.3.7" validate-npm-package-name "^4.0.0" -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -once@^1.3.1, once@^1.4.0: +once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -1284,35 +768,6 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - -p-event@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" - integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== - dependencies: - p-timeout "^2.0.1" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg== - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - parse-package-name@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz" @@ -1333,88 +788,11 @@ path-to-regexp@^6.2.0: resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz" integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -promise-polyfill@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-1.1.6.tgz#cd04eff46f5c95c3a7d045591d79b5e3e01f12d7" - integrity sha512-7rrONfyLkDEc7OJ5QBkqa4KI4EBhCd340xRuIUPGCfu13znS+vx+VDdrT9ODAJHlXm7w4lbxN3DRjyv58EuzDg== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -1422,18 +800,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -responselike@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== - dependencies: - lowercase-keys "^1.0.0" - -retry@0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - rollup-plugin-inject@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz" @@ -1457,23 +823,6 @@ rollup-pluginutils@^2.8.1: dependencies: estree-walker "^0.6.1" -safe-buffer@5.2.1, safe-buffer@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -seek-bzip@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" - integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== - dependencies: - commander "^2.8.1" - selfsigned@^2.0.0, selfsigned@^2.0.1: version "2.1.1" resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz" @@ -1486,11 +835,6 @@ semiver@^1.1.0: resolved "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz" integrity sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg== -semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@^7.0.0, semver@^7.3.7: version "7.3.8" resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" @@ -1520,27 +864,6 @@ signal-exit@^3.0.7: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== - dependencies: - sort-keys "^1.0.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== - dependencies: - is-plain-obj "^1.0.0" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== - dependencies: - is-plain-obj "^1.0.0" - source-map-support@^0.5.20: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" @@ -1569,77 +892,16 @@ stack-trace@0.0.10: resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== -stream-to-string@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/stream-to-string/-/stream-to-string-1.2.1.tgz#15cb325d88b33cc62accb032c7093f85eb785db2" - integrity sha512-WsvTDNF8UYs369Yko3pcdTducQtYpzEZeOV7cTuReyFvOoA9S/DLJ6sYK+xPafSPHhUMpaxiljKYnT6JSFztIA== - dependencies: - promise-polyfill "^1.1.6" - streamsearch@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== - dependencies: - is-natural-number "^4.0.1" - strip-final-newline@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - -tar-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -1652,31 +914,11 @@ tr46@~0.0.3: resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== - dependencies: - escape-string-regexp "^1.0.2" - -tunnel@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - typescript@^4.9.5: version "4.9.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -unbzip2-stream@^1.0.9: - version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - undici@5.20.0: version "5.20.0" resolved "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz" @@ -1689,28 +931,11 @@ universal-user-agent@^6.0.0: resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== - dependencies: - prepend-http "^2.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== - urlpattern-polyfill@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz" integrity sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ== -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - validate-npm-package-name@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz" @@ -1718,24 +943,11 @@ validate-npm-package-name@^4.0.0: dependencies: builtins "^5.0.0" -web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -wget-improved@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/wget-improved/-/wget-improved-3.3.1.tgz#4ca99dc80db0ae388e99f4137f8deadd358630bc" - integrity sha512-OF22MM9ImbOcuB5ZV3ye0q1udaYeTP/V6LOfjNyGCNNC7bGB219ljZv6Wk5mPogeigJJ6CqheLScv17AFbsdGA== - dependencies: - minimist "1.2.6" - tunnel "0.0.6" - whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" @@ -1784,11 +996,6 @@ ws@^8.2.2: resolved "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz" integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew== -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - xxhash-wasm@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz" @@ -1799,14 +1006,6 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yauzl@^2.4.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - youch@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz" From 4c6523eefbe3b3522ccc058bf0da49bb07b9cb32 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 20:09:24 +0100 Subject: [PATCH 680/722] add new prerelease section to changelog --- CHANGELOG | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 0382b62ce..67fc044e9 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,6 +5,18 @@ This project _loosely_ adheres to [Semantic Versioning](https://semver.org/spec/ ## unreleased +### Added + +### Changed + +### Deprecated + +### Removed + +### Fixed + +## [0.5.1] - 25/07/2023 + ### Added - After login / registration the launcher will now open by default [PR#278](https://github.com/perspect3vism/ad4m/pull/278) - If the user has no installed applications, we now show some info about connecting apps to AD4M and a link to Flux [PR#278](https://github.com/perspect3vism/ad4m/pull/278) From 889df3096315de092ecaeedd27ced2963f7e09ce Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 13 Sep 2023 20:10:26 +0100 Subject: [PATCH 681/722] dont use mutex on handleHolochainSignal to avoid starving other executions --- bootstrap-languages/p-diff-sync/linksAdapter.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index da6f5d513..1d0741113 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -256,19 +256,11 @@ export class LinkAdapter implements LinkSyncAdapter { // `) try { //console.log("PerspectiveDiffSync.handleHolochainSignal: Getting lock"); - const success = await this.generalMutex.lock(); - - if (!success) { - console.log("Failed to get lock due to timeout"); - return; - } //console.log("PerspectiveDiffSync.handleHolochainSignal: Got lock"); this.peers.set(broadcast_author, { currentRevision: reference_hash, lastSeen: new Date() }); } catch (e) { console.error("PerspectiveDiffSync.handleHolochainSignal: got error", e); - } finally { - this.generalMutex.unlock(); } } else { //console.log("PerspectiveDiffSync.handleHolochainSignal: received a signals from ourselves in fast_forward_signal or in a pull: ", signal.payload); From b729a4b0ca4296fa177fe4eccce223c6e2999316 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 14 Sep 2023 12:58:13 +0100 Subject: [PATCH 682/722] update holochain to 0.2.2 stable --- Cargo.lock | 140 +++++++++--------- .../agent-language/hc-dna/Cargo.lock | 48 +++--- .../hc-dna/zomes/agent_store/Cargo.toml | 4 +- .../zomes/agent_store_integrity/Cargo.toml | 4 +- .../direct-message-language/hc-dna/Cargo.lock | 48 +++--- .../zomes/direct-message-integrity/Cargo.toml | 4 +- .../hc-dna/zomes/direct-message/Cargo.toml | 4 +- .../file-storage/hc-dna/Cargo.lock | 48 +++--- .../hc-dna/zomes/file_storage/Cargo.toml | 4 +- .../hc-dna/zomes/integrity/Cargo.toml | 6 +- .../p-diff-sync/hc-dna/Cargo.lock | 48 +++--- .../zomes/perspective_diff_sync/Cargo.toml | 4 +- .../Cargo.toml | 6 +- rust-executor/Cargo.toml | 8 +- rust-executor/src/mainnet_seed.json | 6 +- 15 files changed, 191 insertions(+), 191 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2bd96e0eb..c50627f4d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3800,9 +3800,9 @@ dependencies = [ [[package]] name = "fixt" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7639bc73b1f77c02a3346d265af7f76a66d4954686eb1112ea32955ca76a018a" +checksum = "5bbd3dde3f166a47832a20fa1d0c61d5b68a79bedf370782441709d82f6ae69e" dependencies = [ "holochain_serialized_bytes", "lazy_static", @@ -4745,9 +4745,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.3.2-beta-rc.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" dependencies = [ "hdk_derive", "holo_hash", @@ -4762,9 +4762,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ "getrandom 0.2.10", "hdi", @@ -4782,9 +4782,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ "darling 0.14.4", "heck 0.4.1", @@ -4931,9 +4931,9 @@ dependencies = [ [[package]] name = "holo_hash" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ "arbitrary", "base64 0.13.1", @@ -4955,9 +4955,9 @@ dependencies = [ [[package]] name = "holochain" -version = "0.2.2-beta-rc.3" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f176937e213af93f849b96e0cff85649290b9e2d703bb76353491591bf65930d" +checksum = "7557f2e6d4e64912264b16befa6144da01c2484459492d8a71560d20024178d8" dependencies = [ "anyhow", "arbitrary", @@ -5048,9 +5048,9 @@ dependencies = [ [[package]] name = "holochain_cascade" -version = "0.2.2-beta-rc.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884d8b30dab7e15283f2c9773523af05f843bf8390aecd0904a4c3d0d1fc7575" +checksum = "c8611a6406313dd46692c97cbf0025dc4ad77a27ac4da622441dec69408054a0" dependencies = [ "async-trait", "derive_more", @@ -5082,9 +5082,9 @@ dependencies = [ [[package]] name = "holochain_cli_bundle" -version = "0.2.2-beta-rc.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44b5af3dcdacf47b6cf99d442ab910b8272a1d8e0aca498363b8f7419843a91d" +checksum = "7dc3f982c88b2a3be6121505770cbad741394bdc59b36276fe1f5f664ddadc29" dependencies = [ "anyhow", "clap 4.4.1", @@ -5104,9 +5104,9 @@ dependencies = [ [[package]] name = "holochain_cli_run_local_services" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a97e75955aac028364ac5cc02a90ffa14387d42419ddf4e010a8a010f93b48c" +checksum = "53b502a8499f2f68b612cd65c5036922ea3354e91f842a7ff505ce0e28376e6e" dependencies = [ "clap 4.4.1", "futures", @@ -5120,9 +5120,9 @@ dependencies = [ [[package]] name = "holochain_conductor_api" -version = "0.2.2-beta-rc.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e8888e02ebea99c10edf4c8415ed3dab4e193566f7004b161773a85f45e9c0" +checksum = "4696d86bc639c07469f95d369d1e93d5a50f9afd782ed14fa74e7040293a133a" dependencies = [ "derive_more", "directories 2.0.2", @@ -5145,9 +5145,9 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ "arbitrary", "derive_builder", @@ -5166,9 +5166,9 @@ dependencies = [ [[package]] name = "holochain_keystore" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6079410fde183987df8f68aef5dd996033ab1c09c2fddba7f3d95f67b53a85a8" +checksum = "f03dedeb6f3e244558f491356c4a00da9c5a44a05ca683e460c6e5434ed2e149" dependencies = [ "base64 0.13.1", "futures", @@ -5191,9 +5191,9 @@ dependencies = [ [[package]] name = "holochain_p2p" -version = "0.2.2-beta-rc.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df743f96121edf6276610a3719c0c2d56caa0cd0e62737032cdab212d107adc6" +checksum = "191b0cb1239fe04754ae08f67e2608d385e05dae065c80617c75f9ec2e15e75c" dependencies = [ "async-trait", "derive_more", @@ -5247,9 +5247,9 @@ dependencies = [ [[package]] name = "holochain_sqlite" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afa9e65ec4c22c0c469565c86ec68f5cd43641b1cd2a1c6643997e6e7c456fd" +checksum = "d5164e2866480b8103b255cf2b0581dbdd3371da9efe5e86704975294af20e4f" dependencies = [ "anyhow", "async-trait", @@ -5298,9 +5298,9 @@ dependencies = [ [[package]] name = "holochain_state" -version = "0.2.2-beta-rc.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6829b083e801218a9e3739f8215145f8d7a7d8e07a0622511dc4a91e89ecdd6" +checksum = "2d2a4dee4a5f1ef7b350f078965fe01afd54e3a89167c6d4fc991ae9f2a20141" dependencies = [ "async-recursion", "base64 0.13.1", @@ -5340,9 +5340,9 @@ dependencies = [ [[package]] name = "holochain_test_wasm_common" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "603991cc44041315aa365ad8d295d1976b53662417a72df36fa1dd6a56a6a024" +checksum = "5a1a19d8dca8938fcb55e4ae43bb57887f2887155677e7906a1e0bc3160a2124" dependencies = [ "hdk", "serde", @@ -5350,9 +5350,9 @@ dependencies = [ [[package]] name = "holochain_trace" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7658803d147b559605f6f102aecd9b67b9404de129d2c70adc4e64e78228a1c9" +checksum = "83611dcbb9be2afd7a4416793dc75f5d5d1f2975d4c0898162a3b680ecf1935c" dependencies = [ "chrono", "derive_more", @@ -5368,9 +5368,9 @@ dependencies = [ [[package]] name = "holochain_types" -version = "0.2.2-beta-rc.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ad1bf885703525d0168066e470c9414659946e0775a52d075ac3b506e422ada" +checksum = "0f4f7e4ecd2eeeae836ec487b3213c7498ed339a3d88e7ec649aa9d3ad6a8c55" dependencies = [ "anyhow", "arbitrary", @@ -5427,9 +5427,9 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" dependencies = [ "backtrace", "cfg-if 0.1.10", @@ -5445,9 +5445,9 @@ dependencies = [ [[package]] name = "holochain_wasm_test_utils" -version = "0.2.2-beta-rc.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7574f89cfba887efa78b42fa49093f62d0215bae860e42bb65b18a602152065" +checksum = "222fa67d927a0c1cd0288ea1763dd2d36d66bf4c280147561011a2321d0b6908" dependencies = [ "holochain_types", "holochain_util", @@ -5505,9 +5505,9 @@ dependencies = [ [[package]] name = "holochain_websocket" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe693f24b355ba96957100b1c65a3fcb9578b7602ac0c3c56554d11e7b71bca" +checksum = "2975619b1a263030e02766e4440bd3a4d69457ea2588a68c9c68d884ad1fbb98" dependencies = [ "futures", "ghost_actor 0.4.0-alpha.5", @@ -5530,9 +5530,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" dependencies = [ "arbitrary", "contrafact", @@ -6348,9 +6348,9 @@ dependencies = [ [[package]] name = "kitsune_p2p" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae00a08764fc83631fc908b88d91785373cc418e7baf1520ce53f2e66372fe66" +checksum = "999ed18511743698999bdfddeb90c3c814bc2d32acf7c8a5bce883f2c1e97d67" dependencies = [ "arbitrary", "arrayref", @@ -6395,9 +6395,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" dependencies = [ "arbitrary", "base64 0.13.1", @@ -6411,9 +6411,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -6423,9 +6423,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_bootstrap" -version = "0.1.2-beta-rc.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beeccfc2d8501e1693934887a4d5c5d443036699b260460f42626c4441e20e47" +checksum = "831f6acbe8deee4ee85153b1055a6be4635658273f51df248084f4504e869755" dependencies = [ "clap 3.2.25", "futures", @@ -6443,9 +6443,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" dependencies = [ "colored", "derivative", @@ -6467,9 +6467,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" dependencies = [ "derive_more", "gcollections", @@ -6481,9 +6481,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_fetch" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2297003605f03ca91bc9d7ab8d7031042077294ab460bffeb547722ca3dadfb2" +checksum = "6317d77bc3ffa8c36e5351bad1552320690edb8ebb27d3ca1b8f44ad4d0759a5" dependencies = [ "derive_more", "futures", @@ -6502,9 +6502,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_mdns" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b714dbb2199f2f7d2b22d0bc84982b92f3db3922b70538c5f750e6dbaa82a40f" +checksum = "b16b6a872bf984119c80c26cc92488763e96c396b5c091b28d5b66aad030bd61" dependencies = [ "async-stream", "base64 0.13.1", @@ -6519,9 +6519,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_proxy" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b08d878ba4650a4dd838ccf6dbdaf6fc71aca16aa99318389791b3a64db6906" +checksum = "1dabca0ae25126cf5cc64dda4ed0db3c80640020036d5e16300e0212266da430" dependencies = [ "base64 0.13.1", "blake2b_simd 0.5.11", @@ -6544,9 +6544,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" dependencies = [ "arbitrary", "chrono", @@ -6557,9 +6557,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_transport_quic" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e899aa7ffa8eaea70f4aa37d69758263fb1f341647246c81f1fdab038dbd0c48" +checksum = "720caff39a7d58c8543726159facb41aac16645158460ed74fb0a5ca747ef64c" dependencies = [ "blake2b_simd 1.0.1", "futures", @@ -6577,9 +6577,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf5c4d12a2a445c87c98425c7472a661aac703490d9eb278cccdf558a22eaa4" +checksum = "00adde41d1b8f9f5c40fd6281662b3030f5a6ea21ddff081c8dd346e18f6eab5" dependencies = [ "arbitrary", "base64 0.13.1", @@ -7573,9 +7573,9 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "mr_bundle" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef3338028e1b538e8ebd2cf8d699a4c329b0aaf6c5b0681ef1f139bd61f6b37" +checksum = "b07707c320cdf007f36f450de93074425885fad116d55bda2b87e96bd216d6a0" dependencies = [ "arbitrary", "bytes", diff --git a/bootstrap-languages/agent-language/hc-dna/Cargo.lock b/bootstrap-languages/agent-language/hc-dna/Cargo.lock index da2307af2..01ed36cf8 100644 --- a/bootstrap-languages/agent-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/agent-language/hc-dna/Cargo.lock @@ -780,9 +780,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.3.2-beta-rc.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" dependencies = [ "hdk_derive", "holo_hash", @@ -797,9 +797,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ "getrandom", "hdi", @@ -817,9 +817,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ "darling 0.14.1", "heck", @@ -854,9 +854,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ "base64", "blake2b_simd", @@ -872,9 +872,9 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ "holo_hash", "holochain_serialized_bytes", @@ -915,9 +915,9 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" dependencies = [ "cfg-if 0.1.10", "derive_more", @@ -958,9 +958,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" dependencies = [ "holo_hash", "holochain_integrity_types", @@ -1072,9 +1072,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" dependencies = [ "base64", "derive_more", @@ -1087,9 +1087,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -1099,9 +1099,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" dependencies = [ "colored", "derivative", @@ -1123,9 +1123,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" dependencies = [ "derive_more", "gcollections", @@ -1136,9 +1136,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" dependencies = [ "chrono", "derive_more", diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml index d4ed1210a..242f93771 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml @@ -14,6 +14,6 @@ serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } thiserror = "1.0.20" -hdk = "0.2.2-beta-rc.1" -holo_hash = "0.2.2-beta-rc.0" +hdk = "0.2.2" +holo_hash = "0.2.2" agent_store_integrity = { path = "../agent_store_integrity" } \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml index 342f9f15e..6fde8cef2 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml @@ -13,5 +13,5 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = "0.3.2-beta-rc.1" -hdk = "0.2.2-beta-rc.1" \ No newline at end of file +hdi = "0.3.2" +hdk = "0.2.2" \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock index b4075dfff..2797b460a 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock @@ -781,9 +781,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.3.2-beta-rc.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" dependencies = [ "hdk_derive", "holo_hash", @@ -798,9 +798,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ "getrandom", "hdi", @@ -818,9 +818,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ "darling 0.14.1", "heck", @@ -855,9 +855,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ "base64", "blake2b_simd", @@ -873,9 +873,9 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ "holo_hash", "holochain_serialized_bytes", @@ -916,9 +916,9 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" dependencies = [ "cfg-if 0.1.10", "derive_more", @@ -959,9 +959,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" dependencies = [ "holo_hash", "holochain_integrity_types", @@ -1073,9 +1073,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" dependencies = [ "base64", "derive_more", @@ -1088,9 +1088,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -1100,9 +1100,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" dependencies = [ "colored", "derivative", @@ -1124,9 +1124,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" dependencies = [ "derive_more", "gcollections", @@ -1137,9 +1137,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" dependencies = [ "chrono", "derive_more", diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml index 67ae4d76f..27befe19b 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml @@ -13,5 +13,5 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = "0.3.2-beta-rc.1" -holo_hash = "0.2.2-beta-rc.0" \ No newline at end of file +hdi = "0.3.2" +holo_hash = "0.2.2" \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml index 9dd061461..d8addd757 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml @@ -15,7 +15,7 @@ serde_json = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } hex = "0.4.3" -hdk = "0.2.2-beta-rc.1" -holo_hash = "0.2.2-beta-rc.0" +hdk = "0.2.2" +holo_hash = "0.2.2" direct-message-integrity = { path = "../direct-message-integrity" } \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/Cargo.lock b/bootstrap-languages/file-storage/hc-dna/Cargo.lock index 24bb7d7ab..f8ffaa8ba 100644 --- a/bootstrap-languages/file-storage/hc-dna/Cargo.lock +++ b/bootstrap-languages/file-storage/hc-dna/Cargo.lock @@ -805,9 +805,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.3.2-beta-rc.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" dependencies = [ "hdk_derive", "holo_hash", @@ -822,9 +822,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ "getrandom", "hdi", @@ -842,9 +842,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ "darling", "heck", @@ -885,9 +885,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ "base64", "blake2b_simd", @@ -903,9 +903,9 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ "holo_hash", "holochain_serialized_bytes", @@ -946,9 +946,9 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" dependencies = [ "cfg-if 0.1.10", "derive_more", @@ -989,9 +989,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" dependencies = [ "holo_hash", "holochain_integrity_types", @@ -1148,9 +1148,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" dependencies = [ "base64", "derive_more", @@ -1163,9 +1163,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -1175,9 +1175,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" dependencies = [ "colored", "derivative", @@ -1199,9 +1199,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" dependencies = [ "derive_more", "gcollections", @@ -1212,9 +1212,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" dependencies = [ "chrono", "derive_more", diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml index 23219d4b6..3fcef6cd6 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml @@ -17,5 +17,5 @@ chrono = { version = "0.4.22", default-features = false, features = ["clock", "s thiserror = "1.0.20" integrity = { path = "../integrity" } sha2 = "0.10.5" -hdk = "0.2.2-beta-rc.1" -holo_hash = "0.2.2-beta-rc.0" \ No newline at end of file +hdk = "0.2.2" +holo_hash = "0.2.2" \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml index b10c3736f..ae8e958dd 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml @@ -13,6 +13,6 @@ name = "integrity" derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.2.2-beta-rc.0" -hdi = "0.3.2-beta-rc.1" -hdk = "0.2.2-beta-rc.1" +holo_hash = "0.2.2" +hdi = "0.3.2" +hdk = "0.2.2" diff --git a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock index 6f26337a0..7482a52c9 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock +++ b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock @@ -802,9 +802,9 @@ dependencies = [ [[package]] name = "hdi" -version = "0.3.2-beta-rc.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9579c9f993be5a4f59a63082074c6961bb2cb8eef48930f680b8bbea2c55e7b5" +checksum = "9b12f620a0d22b7dcd534a849f0024b0b47c4343b15f1c0ec02e37f4990f6f16" dependencies = [ "hdk_derive", "holo_hash", @@ -819,9 +819,9 @@ dependencies = [ [[package]] name = "hdk" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70233703f0463c6f233678dd34f5153c621c2c06a5da7c4c150ef61381e6f14" +checksum = "8d50da8f292a1b819ae6a7651e9c3cb2ec97f00729125ad9ec3d31df8154eef7" dependencies = [ "getrandom", "hdi", @@ -839,9 +839,9 @@ dependencies = [ [[package]] name = "hdk_derive" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4285fb9c668997d3d6e36206323af7ba7fdcad9d290c14e4600c761e93f60" +checksum = "fc855dc170fec9ca44d2b21cba90fb961ef92acadaae0f0c7d090312a6212552" dependencies = [ "darling 0.14.1", "heck", @@ -876,9 +876,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89991d932216e78e56cb8415e95e0378ad4242b7d84a63af9d6a87b31e85123f" +checksum = "2a5aa5c7b7c2d99ba6769e58ead10d5d4ead9036724a54a7fcea1c0203aac00e" dependencies = [ "base64", "blake2b_simd", @@ -894,9 +894,9 @@ dependencies = [ [[package]] name = "holochain_integrity_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5325178c9dbf11e506e619196e8b7217ae09c4ec8ea3a29d818c374ae0aa12e3" +checksum = "fdfffeca0c6dea328a1ff7097946a951035dd137f4b9ad0db00f5377cd6c9326" dependencies = [ "holo_hash", "holochain_serialized_bytes", @@ -937,9 +937,9 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68cddb9b6fb446a9b4b441d4696c898f569e257e15fd44de25a1e8940dc090" +checksum = "c507f39c150414b64bb2fe8da311dc4e925435be887f8dfc3a97f8183d829878" dependencies = [ "cfg-if 0.1.10", "derive_more", @@ -980,9 +980,9 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.2.2-beta-rc.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c71374fa6895f4b0c0f342483bcbc623a4e4005bd32f2436e9262eaab7fa489" +checksum = "7b77f5caa760c7b34019739fb3b0a986a235fa0a09086b8eaff8cf7a72a2a6ce" dependencies = [ "holo_hash", "holochain_integrity_types", @@ -1125,9 +1125,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_bin_data" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b400ffe292b3d6a230a27675f9c053bd45b17c87524a3e1e9dd9eedef8124f8" +checksum = "cb0b2032c0ee5683bc4d4c7c705f545992655bd5dc6235e62d0f916197a5c0af" dependencies = [ "base64", "derive_more", @@ -1140,9 +1140,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_block" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8ab13c9138f8ce310ddde1252caec1f39798837b856144e0ab5b96b2394e44" +checksum = "e15586a9b4f1ec2190d1b92b706995f15a871003955548e6be434cadd75413dd" dependencies = [ "kitsune_p2p_bin_data", "kitsune_p2p_timestamp", @@ -1152,9 +1152,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be81d57e571e689ed57d94d59d58fd92ac8a0732664ff2468f51af4b8256b5f" +checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" dependencies = [ "colored", "derivative", @@ -1176,9 +1176,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_dht_arc" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2d4d68c154cdc5391ea986eb278f5b34707908cf63674d9fe8e7142d49c449" +checksum = "f71f358459319708884f9295f122cb7b69a8589300fb232b573a36af04d0a7bc" dependencies = [ "derive_more", "gcollections", @@ -1189,9 +1189,9 @@ dependencies = [ [[package]] name = "kitsune_p2p_timestamp" -version = "0.2.2-beta-rc.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402eb4d33987fc3888153239db56fe34b4fbf8386010d3345e059faf9c88c2dc" +checksum = "3e173408aabd1fccedec2ba096b8feac7ef769c435294607f4ae5bc5b83ebc9e" dependencies = [ "chrono", "derive_more", diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml index 0cea09ac5..cfda8d8c6 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml @@ -21,8 +21,8 @@ dot-structures = "0.1.0" itertools = "0.10.3" perspective_diff_sync_integrity = { path = "../perspective_diff_sync_integrity" } sha2 = "0.10.5" -hdk = "0.2.2-beta-rc.1" -holo_hash = "0.2.2-beta-rc.0" +hdk = "0.2.2" +holo_hash = "0.2.2" [features] test = [] \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml index 9c03cab63..c40215be7 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml @@ -13,6 +13,6 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -holo_hash = "0.2.2-beta-rc.0" -hdi = "0.3.2-beta-rc.1" -hdk = "0.2.2-beta-rc.1" \ No newline at end of file +holo_hash = "0.2.2" +hdi = "0.3.2" +hdk = "0.2.2" \ No newline at end of file diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 9d6b285ca..c49455bb6 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -66,10 +66,10 @@ warp = "0.3.4" jsonwebtoken = "8.3.0" -holochain = { version = "0.2.2-beta.rc3", features = ["test_utils", "default"] } -holochain_cli_bundle = { version = "0.2.2-beta.rc3" } -holochain_types = { version = "0.2.2-beta.rc3" } -holochain_cli_run_local_services = { version = "0.2.2-beta.rc3" } +holochain = { version = "0.2.2", features = ["test_utils", "default"] } +holochain_cli_bundle = { version = "0.2.2" } +holochain_types = { version = "0.2.2" } +holochain_cli_run_local_services = { version = "0.2.2" } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible", features = ["multi_thread"] } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index 9756ce70a..62d96424b 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -3,10 +3,10 @@ "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" ], "knownLinkLanguages": [ - "QmzSYwda9qGU4QgB5yR6FXBN5nZ2ZHjvE2ddR6S15KqgNh76UXY" + "QmzSYwdo2y21VnXRRAXwTaUzShpw2pK94R3tqh693eqo62zdLQQ" ], - "directMessageLanguage": "QmzSYwdZKCnxbwGrfP6jWoidskhSEjg6XBmRAghiS1Hztt3iDrU", - "agentLanguage": "QmzSYwdavB4EzPocDqdbd2sLLL5Q2DRS3HvwRKfDdDxRk3GohVr", + "directMessageLanguage": "QmzSYwdp8xNu5UdWWsKQhzZs4JLYDBTk22T7ksoi3hhpscZAm3E", + "agentLanguage": "QmzSYwdigpRrQTmtXcATD4zAFp1nqbXB1tVJT7ho1JaThaXCynL", "perspectiveLanguage": "QmzSYwdeBLCn99QU7DSnJuTFrp7TQGRZkrTDRXvxiv2XAbUFeEx", "neighbourhoodLanguage": "QmzSYwdo2a6E4XghRHrN5eCReyYRDeRE8VnRbvqgoWZsr9B4pxV", "languageLanguageBundle": "// https://deno.land/x/url_join@1.0.0/mod.ts\nvar urlJoin = function(...args) {\n let input;\n if (typeof args[0] === \"object\") {\n input = args[0];\n } else {\n input = [].slice.call(args);\n }\n return normalize(input);\n};\nvar normalize = (strArray) => {\n const resultArray = [];\n if (strArray.length === 0) {\n return \"\";\n }\n if (typeof strArray[0] !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + strArray[0]);\n }\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1:///\");\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, \"$1://\");\n }\n for (let i = 0; i < strArray.length; i++) {\n let component = strArray[i];\n if (typeof component !== \"string\") {\n throw new TypeError(\"Url must be a string. Received \" + component);\n }\n if (component === \"\") {\n continue;\n }\n if (i > 0) {\n component = component.replace(/^[\\/]+/, \"\");\n }\n if (i < strArray.length - 1) {\n component = component.replace(/[\\/]+$/, \"\");\n } else {\n component = component.replace(/[\\/]+$/, \"/\");\n }\n resultArray.push(component);\n }\n let str = resultArray.join(\"/\");\n str = str.replace(/\\/(\\?|&|#[^!])/g, \"$1\");\n let parts = str.split(\"?\");\n str = parts.shift() + (parts.length > 0 ? \"?\" : \"\") + parts.join(\"&\");\n return str;\n};\n\n// https://deno.land/x/axiod@0.26.2/helpers.ts\nvar methods = [\n \"get\",\n \"post\",\n \"put\",\n \"delete\",\n \"options\",\n \"head\",\n \"connect\",\n \"trace\",\n \"patch\"\n];\nvar addInterceptor = () => {\n const interceptor = {\n list: [],\n use: function(fulfilled, rejected) {\n const id = this.list.length;\n this.list.push({\n fulfilled,\n rejected\n });\n return id;\n },\n eject: function(index) {\n if (this.list[index]) {\n this.list[index] = null;\n }\n }\n };\n return interceptor;\n};\n\n// https://deno.land/x/axiod@0.26.2/mod.ts\nfunction axiod(url, config) {\n if (typeof url === \"string\") {\n return axiod.request(Object.assign({}, axiod.defaults, { url }, config));\n }\n return axiod.request(Object.assign({}, axiod.defaults, url));\n}\naxiod.defaults = {\n url: \"/\",\n method: \"get\",\n timeout: 0,\n withCredentials: false,\n validateStatus: (status) => {\n return status >= 200 && status < 300;\n }\n};\naxiod.create = (config) => {\n const instance = axiod.bind({});\n instance.defaults = Object.assign({}, axiod.defaults, config);\n instance._request = request;\n instance.request = (options) => {\n return instance._request(Object.assign({}, instance.defaults, options));\n };\n instance.get = (url, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"get\" })\n );\n };\n instance.post = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"post\", data })\n );\n };\n instance.put = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"put\", data })\n );\n };\n instance.delete = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"delete\", data })\n );\n };\n instance.options = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"options\", data })\n );\n };\n instance.head = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"head\", data })\n );\n };\n instance.connect = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"connect\", data })\n );\n };\n instance.trace = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"trace\", data })\n );\n };\n instance.patch = (url, data, config2) => {\n return instance.request(\n Object.assign({}, { url }, config2, { method: \"patch\", data })\n );\n };\n instance.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n };\n instance.interceptors.request.list = [];\n instance.interceptors.response.list = [];\n return instance;\n};\nasync function request(config) {\n if (this.interceptors.request.list.length > 0) {\n for (const interceptor of this.interceptors.request.list) {\n if (interceptor) {\n const { fulfilled } = interceptor;\n if (fulfilled && config) {\n config = await fulfilled(config);\n }\n }\n }\n }\n let {\n url = \"/\",\n baseURL,\n method,\n headers,\n params = {},\n data,\n timeout,\n withCredentials,\n auth,\n validateStatus,\n paramsSerializer,\n transformRequest,\n transformResponse,\n redirect,\n responseType = \"json\"\n } = config;\n if (baseURL) {\n url = urlJoin(baseURL, url);\n }\n if (method) {\n if (methods.indexOf(method.toLowerCase().trim()) === -1) {\n throw new Error(`Method ${method} is not supported`);\n } else {\n method = method.toLowerCase().trim();\n }\n } else {\n method = \"get\";\n }\n let _params = \"\";\n if (params) {\n if (paramsSerializer) {\n _params = paramsSerializer(params);\n } else {\n _params = Object.keys(params).map((key) => {\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]);\n }).join(\"&\");\n }\n }\n if (withCredentials) {\n if (auth?.username && auth?.password) {\n if (!headers) {\n headers = {};\n }\n headers[\"Authorization\"] = \"Basic \" + btoa(unescape(encodeURIComponent(`${auth.username}:${auth.password}`)));\n }\n }\n const fetchRequestObject = {};\n if (method !== \"get\") {\n fetchRequestObject.method = method.toUpperCase();\n }\n if (_params) {\n url = urlJoin(url, `?${_params}`);\n }\n if (data && method !== \"get\") {\n if (transformRequest && Array.isArray(transformRequest) && transformRequest.length > 0) {\n for (var i = 0; i < (transformRequest || []).length; i++) {\n if (transformRequest && transformRequest[i]) {\n data = transformRequest[i](data, headers);\n }\n }\n }\n if (typeof data === \"string\" || data instanceof FormData || data instanceof URLSearchParams) {\n fetchRequestObject.body = data;\n } else {\n try {\n fetchRequestObject.body = JSON.stringify(data);\n if (!headers) {\n headers = {};\n }\n headers[\"Accept\"] = \"application/json\";\n headers[\"Content-Type\"] = \"application/json\";\n } catch (ex) {\n }\n }\n }\n if (headers) {\n const _headers = new Headers();\n Object.keys(headers).forEach((header) => {\n if (headers && headers[header]) {\n _headers.set(header, headers[header]);\n }\n });\n fetchRequestObject.headers = _headers;\n }\n const controller = new AbortController();\n fetchRequestObject.signal = controller.signal;\n let timeoutCounter = 0;\n if ((timeout || 0) > 0) {\n timeoutCounter = setTimeout(() => {\n timeoutCounter = 0;\n controller.abort();\n }, timeout);\n }\n if (redirect) {\n fetchRequestObject.redirect = redirect;\n }\n return fetch(url, fetchRequestObject).then(async (x) => {\n if (timeoutCounter) {\n clearTimeout(timeoutCounter);\n }\n const _status = x.status;\n const _statusText = x.statusText;\n let _data = null;\n try {\n const response2 = x.clone();\n if (responseType === \"json\") {\n _data = await response2.json();\n } else if (responseType === \"text\") {\n _data = await response2.text();\n } else if (responseType === \"arraybuffer\") {\n _data = await response2.arrayBuffer();\n } else if (responseType === \"blob\") {\n _data = await response2.blob();\n } else if (responseType === \"stream\") {\n _data = (await response2.blob()).stream();\n } else {\n _data = await response2.text();\n }\n } catch (ex) {\n _data = await x.clone().text();\n }\n if (transformResponse) {\n if (transformResponse && Array.isArray(transformResponse) && transformResponse.length > 0) {\n for (var i2 = 0; i2 < (transformResponse || []).length; i2++) {\n if (transformResponse && transformResponse[i2]) {\n _data = transformResponse[i2](_data);\n }\n }\n }\n }\n const _headers = x.headers;\n const _config = {\n url,\n baseURL,\n method,\n headers,\n params,\n data,\n timeout,\n withCredentials,\n auth,\n paramsSerializer,\n redirect,\n responseType\n };\n let isValidStatus = true;\n if (validateStatus) {\n isValidStatus = validateStatus(_status);\n } else {\n isValidStatus = _status >= 200 && _status <= 303;\n }\n let response = null;\n let error = null;\n if (isValidStatus) {\n response = {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers,\n config: _config\n };\n } else {\n error = {\n response: {\n status: _status,\n statusText: _statusText,\n data: _data,\n headers: _headers\n },\n config: _config\n };\n }\n if (this.interceptors.response.list.length > 0) {\n for (const interceptor of this.interceptors.response.list) {\n if (interceptor) {\n const { fulfilled, rejected } = interceptor;\n if (fulfilled && response) {\n response = await fulfilled(response);\n }\n if (rejected && error) {\n error = await rejected(error);\n }\n }\n }\n }\n if (error) {\n return Promise.reject(error);\n }\n return Promise.resolve(response);\n });\n}\naxiod._request = request;\naxiod.request = request;\naxiod.get = (url, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"get\" })\n );\n};\naxiod.post = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"post\", data })\n );\n};\naxiod.put = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"put\", data })\n );\n};\naxiod.delete = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"delete\", data })\n );\n};\naxiod.options = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"options\", data })\n );\n};\naxiod.head = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"head\", data })\n );\n};\naxiod.connect = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"connect\", data })\n );\n};\naxiod.trace = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"trace\", data })\n );\n};\naxiod.patch = (url, data, config) => {\n return axiod.request(\n Object.assign({}, { url }, config, { method: \"patch\", data })\n );\n};\naxiod.interceptors = {\n request: addInterceptor(),\n response: addInterceptor()\n};\nvar mod_default = axiod;\n\n// languageAdapter.ts\nvar LangAdapter = class {\n constructor(context) {\n }\n async getLanguageSource(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.getLanguageSource(): The address is not a valid hash\");\n return \"\";\n }\n const cid = address.toString();\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${cid}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get language source failed at getting presigned url\", address);\n throw e;\n }\n let languageSource;\n try {\n const getLanguageSource = await mod_default.get(presignedUrl);\n languageSource = getLanguageSource.data;\n } catch (e) {\n console.error(\"Get language source failed at getting language source\", address);\n throw e;\n }\n return languageSource;\n }\n};\n\n// putAdapter.ts\nvar CloudflarePutAdapter = class {\n #agent;\n constructor(context) {\n this.#agent = context.agent;\n }\n async createPublic(language) {\n const hash = UTILS.hash(language.bundle.toString());\n if (hash != language.meta.address)\n throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`);\n const agent = this.#agent;\n const expression = agent.createSignedExpression(language.meta);\n const key = `meta-${hash}`;\n const metaPostData = {\n key,\n // Content of the new object.\n value: JSON.stringify(expression)\n };\n try {\n const metaPostResult = await mod_default.post(PROXY_URL, metaPostData);\n if (metaPostResult.status != 200) {\n console.error(\"Upload language meta data gets error: \", metaPostResult);\n }\n const languageBundleBucketParams = {\n key: hash,\n // Content of the new object.\n value: language.bundle.toString()\n };\n const bundlePostResult = await mod_default.post(PROXY_URL, languageBundleBucketParams);\n if (bundlePostResult.status != 200) {\n console.error(\"Upload language bundle data gets error: \", metaPostResult);\n }\n return hash;\n } catch (e) {\n if (e.response.status == 400 && e.response.data.includes(\"Key already exists\")) {\n console.log(\"[Cloudflare-based Language Language]: Tried to replace existing language. Ignoring...\");\n return hash;\n }\n console.error(\"[Cloudflare-based Language Language]: Error storing Language: \", e.response.data);\n throw e;\n }\n }\n};\n\n// adapter.ts\nvar Adapter = class {\n constructor(context) {\n this.putAdapter = new CloudflarePutAdapter(context);\n }\n async get(address) {\n if (address.substring(0, 2) != \"Qm\") {\n console.error(\"LanguageLanguage.get(): The address is not a valid hash\");\n return null;\n }\n const metaDataKey = `meta-${address}`;\n let presignedUrl;\n try {\n const getPresignedUrl = await mod_default.get(PROXY_URL + `?key=${metaDataKey}`);\n presignedUrl = getPresignedUrl.data.url;\n } catch (e) {\n console.error(\"Get meta information failed at getting presigned url\", address);\n return null;\n }\n let metaObject;\n try {\n const getMetaObject = await mod_default.get(presignedUrl);\n metaObject = getMetaObject.data;\n } catch (e) {\n console.error(\"Get meta information failed at getting meta information\", presignedUrl);\n return null;\n }\n return metaObject;\n }\n};\n\n// index.ts\nvar name = \"languages\";\nvar PROXY_URL = \"https://bootstrap-store-gateway.perspect3vism.workers.dev\";\nfunction interactions(expression) {\n return [];\n}\nasync function create(context) {\n const expressionAdapter = new Adapter(context);\n const languageAdapter = new LangAdapter(context);\n return {\n name,\n expressionAdapter,\n languageAdapter,\n interactions\n };\n}\nexport {\n PROXY_URL,\n create as default,\n name\n};\n" From 784d2b6dd05153aec88798d84abd898d03e3bad4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 14 Sep 2023 16:10:59 +0100 Subject: [PATCH 683/722] revert to using config app port again --- rust-executor/src/holochain_service/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 47c5df120..c33c79cb7 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -250,7 +250,7 @@ impl HolochainService { let interface = conductor .clone() - .add_app_interface(Either::Left(0)) + .add_app_interface(Either::Left(local_config.app_port)) .await; info!("Added app interface: {:?}", interface); From 3c9f101c1823f21b4dcefb18c7e933ef2ec83bf1 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 15 Sep 2023 12:51:54 +0100 Subject: [PATCH 684/722] replace our implementation of a mutex with async-mutex --- .../p-diff-sync/linksAdapter.ts | 93 +++---------------- 1 file changed, 13 insertions(+), 80 deletions(-) diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index 1d0741113..f4c3b88c6 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -1,6 +1,7 @@ import { LinkSyncAdapter, PerspectiveDiffObserver, HolochainLanguageDelegate, LanguageContext, PerspectiveDiff, - LinkExpression, DID, Perspective, PerspectiveState } from "https://esm.sh/@perspect3vism/ad4m@0.5.0";; -import type { SyncStateChangeObserver } from "https://esm.sh/@perspect3vism/ad4m@0.5.0";; + LinkExpression, DID, Perspective, PerspectiveState } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import type { SyncStateChangeObserver } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; +import { Mutex, withTimeout } from "https://esm.sh/async-mutex@0.4.0"; import { DNA_NICK, ZOME_NAME } from "./build/dna.js"; class PeerInfo { @@ -15,7 +16,7 @@ export class LinkAdapter implements LinkSyncAdapter { linkCallback?: PerspectiveDiffObserver syncStateChangeCallback?: SyncStateChangeObserver peers: Map = new Map(); - generalMutex: Mutex = new Mutex(); + generalMutex: Mutex = withTimeout(new Mutex(), 10000, new Error('new fancy error'));; me: DID gossipLogCount: number = 0; myCurrentRevision: Buffer | null = null; @@ -46,17 +47,10 @@ export class LinkAdapter implements LinkSyncAdapter { } async sync(): Promise { + //console.log("PerspectiveDiffSync.sync(); Getting lock"); + const release = await this.generalMutex.acquire(); + //console.log("PerspectiveDiffSync.sync(); Got lock"); try { - //console.log("PerspectiveDiffSync.sync(); Getting lock"); - - const success = await this.generalMutex.lock(); - if (!success) { - console.log("Failed to get lock due to timeout"); - return new PerspectiveDiff() - } - - //console.log("PerspectiveDiffSync.sync(); Got lock"); - //@ts-ignore let current_revision = await this.hcDna.call(DNA_NICK, ZOME_NAME, "sync", null); if (current_revision && Buffer.isBuffer(current_revision)) { @@ -65,7 +59,7 @@ export class LinkAdapter implements LinkSyncAdapter { } catch (e) { console.error("PerspectiveDiffSync.sync(); got error", e); } finally { - this.generalMutex.unlock(); + release(); } await this.gossip(); return new PerspectiveDiff() @@ -75,18 +69,8 @@ export class LinkAdapter implements LinkSyncAdapter { this.gossipLogCount += 1; let lostPeers: DID[] = []; + const release = await this.generalMutex.acquire(); try { - //console.log("PerspectiveDiffSync.gossip(); Getting peers lock"); - // Trying to lock with a timeout - const success = await this.generalMutex.lock(); - - if (!success) { - console.log("Failed to get lock due to timeout"); - return; - } - - //console.log("PerspectiveDiffSync.gossip(); Got lock"); - this.peers.forEach( (peerInfo, peer) => { if (peerInfo.lastSeen.getTime() + 10000 < new Date().getTime()) { lostPeers.push(peer); @@ -138,8 +122,6 @@ export class LinkAdapter implements LinkSyncAdapter { } else { await callback(PerspectiveState.Synced); }; - } else if (differentRevisions == 0) { - await callback(PerspectiveState.Synced); } } @@ -193,7 +175,7 @@ export class LinkAdapter implements LinkSyncAdapter { } catch (e) { console.error("PerspectiveDiffSync.gossip(); got error", e); } finally { - this.generalMutex.unlock(); + release(); } } @@ -204,15 +186,9 @@ export class LinkAdapter implements LinkSyncAdapter { } async commit(diff: PerspectiveDiff): Promise { + //console.log("PerspectiveDiffSync.commit(); Getting lock"); + const release = await this.generalMutex.acquire(); try { - //console.log("PerspectiveDiffSync.commit(); Getting lock"); - const success = await this.generalMutex.lock(); - - if (!success) { - console.log("Failed to get lock due to timeout"); - return ""; - } - //console.log("PerspectiveDiffSync.commit(); Got lock"); let prep_diff = { additions: diff.additions.map((diff) => prepareLinkExpression(diff)), @@ -226,7 +202,7 @@ export class LinkAdapter implements LinkSyncAdapter { } catch (e) { console.error("PerspectiveDiffSync.commit(); got error", e); } finally { - this.generalMutex.unlock(); + release(); } } @@ -308,46 +284,3 @@ function prepareLinkExpression(link: LinkExpression): object { } return data; } - - -class Mutex { - private locked = false; - private waitingResolvers: ((success: boolean) => void)[] = []; - - async lock(timeout = 10000): Promise { // default timeout of 10 seconds - const promise = new Promise((resolve) => { - if (this.locked) { - console.log("Was not able to get lock on mutex adding to waitingResolvers"); - const timer = setTimeout(() => { - const index = this.waitingResolvers.indexOf(resolve); - if (index > -1) { - this.waitingResolvers.splice(index, 1); - resolve(false); // Timeout occurred - } - }, timeout); - - this.waitingResolvers.push((success: boolean) => { - clearTimeout(timer); - resolve(success); - }); - } else { - resolve(true); - } - }); - - const success = await promise; - if (success) this.locked = true; - return success; - } - - unlock(): void { - if (!this.locked) return; - if (this.waitingResolvers.length > 0) { - console.log("Called unlock and got some waitingResolvers to finish"); - const resolve = this.waitingResolvers.shift(); - if (resolve) resolve(true); // Successfully acquired lock - } else { - this.locked = false; - } - } -} \ No newline at end of file From 236e7d5e879537fe0e412d819ccd872a05eeefa6 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 15 Sep 2023 13:08:04 +0100 Subject: [PATCH 685/722] add new link language to mainnet seed --- bootstrap-languages/p-diff-sync/linksAdapter.ts | 2 +- rust-executor/src/mainnet_seed.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap-languages/p-diff-sync/linksAdapter.ts b/bootstrap-languages/p-diff-sync/linksAdapter.ts index f4c3b88c6..62e09db15 100644 --- a/bootstrap-languages/p-diff-sync/linksAdapter.ts +++ b/bootstrap-languages/p-diff-sync/linksAdapter.ts @@ -16,7 +16,7 @@ export class LinkAdapter implements LinkSyncAdapter { linkCallback?: PerspectiveDiffObserver syncStateChangeCallback?: SyncStateChangeObserver peers: Map = new Map(); - generalMutex: Mutex = withTimeout(new Mutex(), 10000, new Error('new fancy error'));; + generalMutex: Mutex = withTimeout(new Mutex(), 10000, new Error('PerspectiveDiffSync: generalMutex timeout')); me: DID gossipLogCount: number = 0; myCurrentRevision: Buffer | null = null; diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index 62d96424b..c42067979 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -3,7 +3,7 @@ "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" ], "knownLinkLanguages": [ - "QmzSYwdo2y21VnXRRAXwTaUzShpw2pK94R3tqh693eqo62zdLQQ" + "QmzSYwdmKg9nm4HXnwDZ7orhJCu3XoQYvAX2Muv4nY5aWtJVKyc" ], "directMessageLanguage": "QmzSYwdp8xNu5UdWWsKQhzZs4JLYDBTk22T7ksoi3hhpscZAm3E", "agentLanguage": "QmzSYwdigpRrQTmtXcATD4zAFp1nqbXB1tVJT7ho1JaThaXCynL", From fc70a6d04fd2a793de6b9c9975729c83299c8afa Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 15 Sep 2023 13:26:47 +0100 Subject: [PATCH 686/722] new Cargo.lock --- Cargo.lock | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index c50627f4d..f19876182 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12141,6 +12141,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fbe522898e35407a8e60dc3870f7579fea2fc262a6a6072eccdd37ae1e1d91e" dependencies = [ "anyhow", + "base64 0.21.3", "bytes", "cocoa", "dirs-next", @@ -12154,6 +12155,7 @@ dependencies = [ "heck 0.4.1", "http", "ignore", + "minisign-verify", "notify-rust", "objc", "once_cell", @@ -12181,12 +12183,14 @@ dependencies = [ "tauri-utils", "tempfile", "thiserror", + "time 0.3.23", "tokio", "url 2.4.1", "uuid 1.4.1", "webkit2gtk", "webview2-com", "windows 0.39.0", + "zip", ] [[package]] From 4ce11560123c1005736a7c5d1b2d80047e59a593 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 15 Sep 2023 14:15:20 +0100 Subject: [PATCH 687/722] update root changelog --- README.md | 56 +++++++++++++++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 3e2abc93e..d44487100 100644 --- a/README.md +++ b/README.md @@ -14,44 +14,49 @@ or just: - A **spanning-layer** to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends - The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable **sense-making network** -## Repo Structure / History +## Core Docs -This is the new mono-repository with all components making up a whole AD4M implementation merged back into what formerly was only the `ad4m-executor`. +The main core documentation for AD4M exists [here](https://docs.ad4m.dev) -- `core`: Former [ad4m repository](https://github.com/perspect3vism/ad4m-core-deprecated). Holds the core ontology types, the `Ad4mClient` and the GraphQL schema build automatically from the core types. This package gets published as https://www.npmjs.com/package/@perspect3vism/ad4m and is thus holding most of the app/UI facing coding. -- `executor`: All the code running inside an AD4M instance. UI-less GraphQL server, managing Agent keys, Perspectives and running Languages. TypeScript library without runnable main / executable. -- `host`: Former [ad4m-host repository](https://github.com/perspect3vism/ad4m-host). Imports and wraps executor and uses vercel/pkg to create runnable binary. -- `ui`: Former [ad4min repository](https://github.com/perspect3vism/ad4min). Tauri based system-tray icon launcher UI which is the end-user deployment including the `host` executable and providing and AD4M admin (_AD4Min_) UI interface. +## Repo Structure ---- +This is a mono-repository with all components making up a whole ADAM Layer implementation. -- `connect`: Former [ad4m-connect repository](https://github.com/perspect3vism/ad4m-connect). Convenience library to connect to a (local or via proxy) AD4M-executor, potentially requesting or reusing capability tokens and creating an `Ad4mClient` ready for the app/UI to use. -- `docs-src` / `docs`: Documentation hosted under https://docs.ad4m.dev +- `core`: Holds the core ontology types, the `Ad4mClient` and the GraphQL schema build automatically from the core types. This package gets published as https://www.npmjs.com/package/@perspect3vism/ad4m and is thus holding most of the app/UI facing coding. +- `bootstrap-languages`: Holds all the core Languages used to make the ADAM Layer operate. These languages can be thought of as the mainnet configuration for the ADAM Layer. +- `executor`: Holds the core JS code, which manages an Agents ADAM Layer state. Their Perspectives, Languages and Expressions. +- `rust-executor`: Rust binary & library which facilitates the running of a GraphQL server, spawning of Deno runtime to execute the `executor` JS code. Running and communication with in built holochain conductor. Running and communication with Scryer Prolog engine to facilitate Prolog queries over Perspective data. +- `rust-client`: Rust based `Ad4mClient`. Wraps GraphQL and provides the same high-level interface to AD4M as the TypeScript based version in core. Published to Crates.io as `ad4m-client`: https://crates.io/crates/ad4m-client. +- `tests`: JS testing suit integration testing a built `rust-executor`. Contains 50+ integration tests covering most function calls to an Adam Layer GraphQL server. +- `cli`: Rust based CLI for either init'ing `ad4m init`, running `ad4m run` or communciating with a running AD4M GraphQL server. See [it's readme](cli/README.md) for more details. Published to Crates.io as `ad4m`: https://crates.io/crates/ad4m +- `ui`: Tauri based system-tray icon launcher UI which is the end-user deployment; includes the rust-executor & UI to interact with gien executor. --- - - `cli`: The new Rust based `ad4m` command-line based generic UI. See [it's readme](cli/README.md) for more details. Published to Crates.io as `ad4m`: https://crates.io/crates/ad4m - - `rust-client`: Rust based `Ad4mClient`. Wraps GraphQL and provides the same high-level interface to AD4M as the TypeScript based version in core. Published to Crates.io as `ad4m-client`: https://crates.io/crates/ad4m-client. +- `connect`: Convenience library to connect to a (local or via proxy) AD4M-executor, potentially requesting or reusing capability tokens and creating an `Ad4mClient` ready for the app/UI to use. +- `docs-src` / `docs`: Documentation hosted under https://docs.ad4m.dev + +## History The project started in August 2020 in https://github.com/lucksus/perspectivism, then got broken down into the `ad4m` (core), `ad4m-executor` and [perspect3ve](https://github.com/perspect3vism/perspect3ve) repositories for simultaneuous use in [Flux](https://github.com/fluxsocial) and Perspect3ve. Other components got added over the years 2021, 2022. In October/November 2022, these componentes were collected into a mono-repo again to avoid PR-chains across multiple repositories and to have version numbers be in lock-step. -## Build +## Building AD4M -Install Rust by visiting [here](https://www.rust-lang.org/tools/install) +### Prerequisites -### Fresh build: - -``` -yarn install -yarn run build-linux/macos/windows (choose version for your OS) -``` +- Install Rust by visiting [here](https://www.rust-lang.org/tools/install) (ADAM Layer currently uses rust version 1.71.1) +- Install Deno by visiting [here](https://deno.land/manual@v1.36.4/getting_started/installation) +- Install Go by visiting [here](https://go.dev/doc/install) (ADAM Layer currently uses go version: go1.18) +- Install Node by visiting [here](https://nodejs.org/en/download) +- Install Yarn / Node by visiting [here](https://classic.yarnpkg.com/lang/en/docs/install/) -### Subsequent builds +### Build: ``` -yarn run build-all-linux/macos/windows (choose version for your OS) +yarn install +yarn run build ``` ## Testing @@ -61,16 +66,9 @@ yarn install yarn test ``` -## Building ad4m-host - -``` -yarn install -yarn run package-linux/macos/windows (choose version for your OS) -``` - ## Building ad4m launcher ``` yarn install -yarn run build-linux/macos/windows (choose version for your OS) +yarn run package-ad4m ``` From 920c9d6d89874df60e597d64a496937f4ca54b26 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 15 Sep 2023 15:20:41 +0200 Subject: [PATCH 688/722] Set version numbers in globalrs.rs and Cargo.toml in rust-executor --- setVersion.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/setVersion.js b/setVersion.js index 0b1c59c73..973d5de39 100644 --- a/setVersion.js +++ b/setVersion.js @@ -89,6 +89,19 @@ const rustClient = replaceVersionLine(fs.readFileSync('rust-client/Cargo.toml', console.log("rust-client version: " + rustClient.oldVersion + " -> " + VERSION) fs.writeFileSync('rust-client/Cargo.toml', rustClient.newContent) +const rustExecutorCargo = replaceVersionLine(fs.readFileSync('rust-executor/Cargo.toml', 'utf8'), VERSION) +console.log("rust-executor version: " + rustExecutorCargo.oldVersion + " -> " + VERSION) +fs.writeFileSync('rust-executor/Cargo.toml', rustExecutorCargo.newContent) + +const globalsRs = replaceVersionLine( + fs.readFileSync('rust-executor/src/globals.rs', 'utf8'), + VERSION, + ` pub static ref AD4M_VERSION: String = String::from(`, + `);` + ) +console.log("globals.rs version: " + globalsRs.oldVersion + " -> " + VERSION) +fs.writeFileSync('rust-executor/src/globals.rs', globalsRs.newContent) + const uiPackage = JSON.parse(fs.readFileSync('ui/package.json', 'utf8')) if (isPreRelease) { console.log("UI version: " + uiPackage.version + " -> " + VERSION) From 5eb1dc02435834c4bc180a0498ef11d178a854e0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 15 Sep 2023 14:27:55 +0100 Subject: [PATCH 689/722] update cli & executor readme --- cli/README.md | 10 ++++++++++ executor/README.md | 14 +++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/cli/README.md b/cli/README.md index 6ed5cde7a..36489215f 100644 --- a/cli/README.md +++ b/cli/README.md @@ -11,6 +11,16 @@ of AD4M and all it's features. cargo build ``` +## Start & Run AD4M Agent + +``` +ad4m init +``` + +``` +ad4m run +``` + ## Usage Show all perspectives: diff --git a/executor/README.md b/executor/README.md index fe1138fab..4873d3d71 100644 --- a/executor/README.md +++ b/executor/README.md @@ -1,4 +1,4 @@ -# AD4M Executor (= run-time) +# AD4M Executor (= JS run-time) ## What's AD4M? @@ -8,17 +8,13 @@ AD4M (_Agent-Centric Distributed Application Meta-Ontology_) is an abstract inte 2. **Language** (=space of expressions / combining storage and UI on an abstract level) 3. **Perspective** (=what an agent perceives / spaces of links (triplets) between expressions) -See [the AD4M repository](https://github.com/perspect3vism/ad4m/blob/main/README.md) for a more detailed description as well as TypeScript classes and interfaces. +See [the AD4M repository](https://github.com/coasys/ad4m/blob/main/README.md) for a more detailed description as well as TypeScript classes and interfaces. -## Why a Node.js Executor For AD4M? +## Modules Use -Using this as the local back-end / middleware, all that's left to do in order to build an AD4M based / compatible application is writing a UI that connects to this AD4M executor via it's [GraphQL interface](src/core/graphQL-interface/GraphQL.ts) and potentially adding custom AD4M Languages. See [Perspect3ve](https://github.com/perspect3vism/perspect3ve) for a working example. +This module is used to manage installed AD4M Languages via the `LanguageController`; code [here](https://github.com/coasys/ad4m/blob/main/executor/src/core/LanguageController.ts), maintain an agents internal Perspectives via the `PerspectivesController`; code [here](https://github.com/coasys/ad4m/blob/main/executor/src/core/PerspectivesController.ts), and a local database of links for each `Perspective` via the `db`; code [here](https://github.com/coasys/ad4m/blob/main/executor/src/core/db.ts). -So this package can be used for starting an AD4M node.js runtime. - -`main.js` will listen for calls from the host on the event `init`. Upon receiving this event it will spawn the AD4M runtime; this runtime is interfaced with and managed via a locally running graphql server. Information on the topology of this server can be found [here](./src/core/graphQL-interface/GraphQL.ts). - -More information about the AD4M ontology and scope can be found [here](https://github.com/perspect3vism/perspect3ve/tree/master/src/ad4m). +It exposes functions for core AD4M Operations via: [`GraphQL.ts`](https://github.com/coasys/ad4m/blob/rust-refactor/executor/src/core/graphQL-interface/GraphQL.ts); which routes function calls (expected to be coming from rust-executor) to their appropriate controllers for handling. ## Building From 11f9e024e97d79b7a452a60f0e859c1e00180dc3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 15 Sep 2023 14:28:03 +0100 Subject: [PATCH 690/722] add dapp to root level readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d44487100..4bec4ed9e 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ This is a mono-repository with all components making up a whole ADAM Layer imple - `bootstrap-languages`: Holds all the core Languages used to make the ADAM Layer operate. These languages can be thought of as the mainnet configuration for the ADAM Layer. - `executor`: Holds the core JS code, which manages an Agents ADAM Layer state. Their Perspectives, Languages and Expressions. - `rust-executor`: Rust binary & library which facilitates the running of a GraphQL server, spawning of Deno runtime to execute the `executor` JS code. Running and communication with in built holochain conductor. Running and communication with Scryer Prolog engine to facilitate Prolog queries over Perspective data. +- `dapp`: UI which provides a connection to MetaMask allowing AD4M Layer to create a connection to blockchain systems. UI server by the `rust-executor` on `http://127.0.0.1:` - `rust-client`: Rust based `Ad4mClient`. Wraps GraphQL and provides the same high-level interface to AD4M as the TypeScript based version in core. Published to Crates.io as `ad4m-client`: https://crates.io/crates/ad4m-client. - `tests`: JS testing suit integration testing a built `rust-executor`. Contains 50+ integration tests covering most function calls to an Adam Layer GraphQL server. - `cli`: Rust based CLI for either init'ing `ad4m init`, running `ad4m run` or communciating with a running AD4M GraphQL server. See [it's readme](cli/README.md) for more details. Published to Crates.io as `ad4m`: https://crates.io/crates/ad4m From f783cda832a11f453996334c9bb39e240a4e4cec Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 15 Sep 2023 14:37:57 +0100 Subject: [PATCH 691/722] add very basic readme for rust-executor --- rust-executor/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 rust-executor/README.md diff --git a/rust-executor/README.md b/rust-executor/README.md new file mode 100644 index 000000000..302500802 --- /dev/null +++ b/rust-executor/README.md @@ -0,0 +1,5 @@ +# Rust-Executor (= main ADAM Layer Runtime) + +This Rust crate; provides a lib with exposed functions for 'init' & 'run' of an AD4M Agent and also exposes a bin which will by default `run` an AD4M Agent. + +Running an AD4M Agent entails the creation of a warp based GraphQL server, conforming to the ADAM Layer spec. Spawning of a Deno runtime that runs the core [`executor`](https://github.com/coasys/ad4m/tree/rust-refactor/executor), this happens inside [`js_core`](https://github.com/coasys/ad4m/blob/rust-refactor/rust-executor/src/js_core/mod.rs). `js_core` also handles the requests from the JS to call into Rust functions. Currently exposed Rust functions allow communication with `Scryer-Prolog`, `Holochain` & `JwtService`. \ No newline at end of file From d233217c3bde01685c229bad263cf6e12e1e4c63 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 15 Sep 2023 20:22:53 +0530 Subject: [PATCH 692/722] Fixed linux updater --- ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/tauri.conf.json | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index e2a711446..9634ab403 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -27,7 +27,7 @@ directories = "4.0.1" opener = "0.5.0" open = "2.0.1" sysinfo = "0.29.7" -tauri = { version = "1.4.1", features = ["api-all", "system-tray", "updater"] } +tauri = { version = "1.4.1", features = [ "updater", "api-all", "system-tray"] } uuid = { version = "0.8", features = ["v4"] } localtunnel-client = "0.0.12" tokio = { version = "1.19.2", features = ["full"] } diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index 0d465ff8b..8e760df09 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -18,12 +18,11 @@ "bundle": { "active": true, "targets": [ + "appimage", "deb", "msi", "dmg", - "updater", - "app", - "appimage" + "updater" ], "identifier": "dev.ad4m.ad4min", "icon": [ @@ -41,6 +40,9 @@ "deb": { "depends": [] }, + "appimage": { + "bundleMediaFramework": true + }, "macOS": { "frameworks": [], "minimumSystemVersion": "", From 94fbf49bb56c2ef5752898e39c8c5a5462a562d9 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 15 Sep 2023 17:37:28 +0200 Subject: [PATCH 693/722] Quotes instead of backslashes for uploading release artifacts to github in staging workflow --- .github/workflows/publish_staging.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 29e879531..8d64e10c5 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -167,7 +167,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg asset_content_type: application/octet-stream @@ -179,7 +179,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz asset_content_type: application/octet-stream @@ -191,7 +191,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz.sig asset_content_type: application/octet-stream @@ -215,7 +215,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi + asset_path: 'D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi' asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi asset_content_type: application/octet-stream @@ -227,7 +227,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip + asset_path: 'D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip' asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip asset_content_type: application/octet-stream @@ -239,7 +239,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig + asset_path: 'D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig' asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip.sig asset_content_type: application/octet-stream From b2902c1a928fcfe42c3843b7ce407492fe19dee8 Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Fri, 15 Sep 2023 22:51:22 +0530 Subject: [PATCH 694/722] Fixed linux CI upload asset --- .github/workflows/publish.yml | 46 +++++++++++++++++---------- .github/workflows/publish_staging.yml | 44 +++++++++++++++---------- 2 files changed, 57 insertions(+), 33 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 36d604b41..2a976a63f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,7 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16 - + - name: Install Deno uses: denoland/setup-deno@v1 with: @@ -25,7 +25,7 @@ jobs: - name: Install HC run: cargo install holochain_cli --git https://github.com/coasys/holochain || echo "hc already installed" - + - name: Create Tags From id: create_tag uses: jaywcjlove/create-tag-action@v1.3.14 @@ -48,7 +48,7 @@ jobs: platform: [GH-hosted-ubuntu, macos-latest, windows-latest] node-version: [18.17.0] - needs: + needs: - create-release - npm-publish @@ -122,32 +122,44 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb - asset_name: adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_content_type: application/octet-stream + + - name: Upload Release AppImage Asset + id: upload-release-appimage-asset + if: matrix.platform == 'GH-hosted-ubuntu' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage asset_content_type: application/octet-stream - - name: Upload Release Deb Update Asset - id: upload-release-deb-asset-update + - name: Upload Release AppImage Update Asset + id: upload-release-appimage-asset-update if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz - asset_name: adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz asset_content_type: application/octet-stream - - name: Upload Release Deb update sig Asset - id: upload-release-deb-asset-update-sig + - name: Upload Release AppImage update sig Asset + id: upload-release-appimage-asset-update-sig if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig - asset_name: adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz.sig + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig asset_content_type: application/octet-stream - name: Upload Release AD4M CLI Linux Binary @@ -233,7 +245,7 @@ jobs: asset_path: D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip asset_content_type: application/octet-stream - + - name: Upload Release MSI update sig Asset id: upload-release-msi-asset-update-sig if: matrix.platform == 'windows-latest' @@ -257,7 +269,7 @@ jobs: asset_path: D:\a\ad4m\ad4m\target\release\ad4m-x64.exe asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe asset_content_type: application/octet-stream - + npm-publish: runs-on: GH-hosted-ubuntu steps: @@ -306,8 +318,8 @@ jobs: with: token: ${{ secrets.NPM_TOKEN }} package: test-runner/package.json - - + + crates-publish: runs-on: GH-hosted-ubuntu steps: diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 8d64e10c5..1326f0a55 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -48,7 +48,7 @@ jobs: platform: [GH-hosted-ubuntu, macos-latest, windows-latest] node-version: [18.17.0] - needs: + needs: - create-release runs-on: ${{ matrix.platform }} @@ -119,32 +119,44 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb - asset_name: adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb asset_content_type: application/octet-stream - - name: Upload Release Deb Update Asset - id: upload-release-deb-asset-update + - name: Upload Release AppImage Asset + id: upload-release-appimage-asset + if: matrix.platform == 'GH-hosted-ubuntu' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage + asset_content_type: application/octet-stream + + - name: Upload Release AppImage Update Asset + id: upload-release-appimage-asset-update if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz - asset_name: adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz asset_content_type: application/octet-stream - - name: Upload Release Deb update sig Asset - id: upload-release-deb-asset-update-sig + - name: Upload Release AppImage update sig Asset + id: upload-release-appimage-asset-update-sig if: matrix.platform == 'ubuntu-latest' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig - asset_name: adam-launcher${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz.sig + asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig asset_content_type: application/octet-stream - name: Upload Release AD4M CLI Linux Binary @@ -230,7 +242,7 @@ jobs: asset_path: 'D:\a\ad4m\ad4m\target\release\bundle\msi\ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip' asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64_en-US.msi.zip asset_content_type: application/octet-stream - + - name: Upload Release MSI update sig Asset id: upload-release-msi-asset-update-sig if: matrix.platform == 'windows-latest' @@ -254,7 +266,7 @@ jobs: asset_path: D:\a\ad4m\ad4m\target\release\ad4m-x64.exe asset_name: ad4m-windows-${{ steps.extract_version.outputs.version }}-x64.exe asset_content_type: application/octet-stream - + npm-publish: runs-on: GH-hosted-ubuntu steps: @@ -303,7 +315,7 @@ jobs: else echo "NPM_TAG=latest" >> $GITHUB_ENV fi - + - name: Publish core uses: JS-DevTools/npm-publish@v1 with: @@ -331,8 +343,8 @@ jobs: token: ${{ secrets.NPM_TOKEN }} package: test-runner/package.json tag: ${{ env.NPM_TAG }} - - + + crates-publish: runs-on: GH-hosted-ubuntu steps: From 73cb513c6cacc040ac1ed49e85e3eb94eae57611 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Sat, 16 Sep 2023 17:49:34 +0200 Subject: [PATCH 695/722] Try: remove double-"adam" from upload path for macos binaries in staging workflow --- .github/workflows/publish_staging.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 1326f0a55..96d22f6db 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -179,7 +179,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg" + asset_path: "/Users/runner/work/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg asset_content_type: application/octet-stream @@ -191,7 +191,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz" + asset_path: "/Users/runner/work/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz asset_content_type: application/octet-stream @@ -203,7 +203,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig" + asset_path: "/Users/runner/work/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz.sig asset_content_type: application/octet-stream @@ -215,7 +215,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/ad4m + asset_path: /Users/runner/work/ad4m/target/release/ad4m asset_name: ad4m-macos-${{ steps.extract_version.outputs.version }}-x64 asset_content_type: application/octet-stream From 8903a47e600862b1be1e4f7936357e91f033c415 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 18 Sep 2023 12:05:48 +0100 Subject: [PATCH 696/722] fix up all integration tests for bootstrap languages --- .github/workflows/agent-language-tests.yml | 3 +- .../direct-message-language-tests.yml | 3 +- .../workflows/file-storage-language-tests.yml | 6 +- .github/workflows/integration_cli.yml | 2 +- .github/workflows/integration_js.yml | 2 +- .github/workflows/p-diff-sync-tests.yml | 21 +- .github/workflows/publish.yml | 3 - .github/workflows/publish_staging.yml | 3 - .../hc-dna/holochain_version.nix | 2 +- .../hc-dna/zomes/tests/index.ts | 6 +- .../hc-dna/zomes/tests/package.json | 4 +- .../hc-dna/zomes/tests/utils.ts | 13 +- .../hc-dna/zomes/tests/yarn.lock | 71 +- .../hc-dna/holochain_version.nix | 2 +- .../hc-dna/tests/package.json | 4 +- .../hc-dna/tests/src/index.ts | 8 +- .../hc-dna/tests/yarn.lock | 71 +- .../file-storage/hc-dna/holochain_version.nix | 2 +- .../file-storage/hc-dna/tests/.hc | 10 + .../file-storage/hc-dna/tests/index.ts | 9 +- .../file-storage/hc-dna/tests/package.json | 4 +- .../file-storage/hc-dna/tests/yarn.lock | 1235 ++++++ .../p-diff-sync/hc-dna/holochain_version.nix | 2 +- .../hc-dna/zomes/tests/package.json | 4 +- .../p-diff-sync/hc-dna/zomes/tests/pull.ts | 3 +- .../p-diff-sync/hc-dna/zomes/tests/render.ts | 1 + .../hc-dna/zomes/tests/revisions.ts | 1 + .../p-diff-sync/hc-dna/zomes/tests/signals.ts | 9 +- .../p-diff-sync/hc-dna/zomes/tests/stress.ts | 9 +- .../hc-dna/zomes/tests/telepresence.ts | 10 +- .../p-diff-sync/hc-dna/zomes/tests/utils.ts | 13 +- .../p-diff-sync/hc-dna/zomes/tests/yarn.lock | 3328 +++++++++-------- tests/js/tests/triple-agent-test.ts | 145 + 33 files changed, 3239 insertions(+), 1770 deletions(-) create mode 100644 bootstrap-languages/file-storage/hc-dna/tests/.hc create mode 100644 bootstrap-languages/file-storage/hc-dna/tests/yarn.lock create mode 100644 tests/js/tests/triple-agent-test.ts diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index d7eca87bf..6355ca960 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -53,7 +53,6 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - run: cd bootstrap-languages/agent-language/hc-dna/zomes/tests && yarn install && yarn run test \ No newline at end of file diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index d74fbe0ae..768c3a61b 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -53,7 +53,6 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - run: cd bootstrap-languages/direct-message-language/hc-dna/tests && yarn install && yarn run test \ No newline at end of file diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index a83006bc9..f89aa77ac 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -53,8 +53,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - run: cd bootstrap-languages/file-storage/hc-dna/tests && yarn install && yarn run test @@ -100,7 +99,6 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build - run: cd bootstrap-languages/file-storage && yarn run integration-test \ No newline at end of file diff --git a/.github/workflows/integration_cli.yml b/.github/workflows/integration_cli.yml index f93509b30..eae160233 100644 --- a/.github/workflows/integration_cli.yml +++ b/.github/workflows/integration_cli.yml @@ -57,7 +57,7 @@ jobs: go-version: '1.18' - name: Install HC - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - name: Yarn Install run: yarn install diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index ee1feb418..1afb9d64c 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -63,7 +63,7 @@ jobs: sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf - name: Install HC - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - name: Install dependencies run: yarn install diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 75c8eee9f..5d4c6dac4 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -81,8 +81,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-pull @@ -128,8 +127,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-render @@ -175,8 +173,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-revisions @@ -222,8 +219,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-signals @@ -270,8 +266,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-stress @@ -317,8 +312,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build-languages - run: cd bootstrap-languages/p-diff-sync/hc-dna/zomes/tests && yarn install && yarn run test-telepresence @@ -364,7 +358,6 @@ jobs: - run: rustup target add wasm32-unknown-unknown - run: yarn install - - run: cargo install --git https://github.com/coasys/holochain lair_keystore || echo "lair already installed" - - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" + - run: cargo install holochain_cli --version 0.2.2 || echo "hc already installed" - run: yarn run build - run: cd bootstrap-languages/p-diff-sync && yarn run integration-test \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2a976a63f..7069178cf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -23,9 +23,6 @@ jobs: with: deno-version: v1.32.4 - - name: Install HC - run: cargo install holochain_cli --git https://github.com/coasys/holochain || echo "hc already installed" - - name: Create Tags From id: create_tag uses: jaywcjlove/create-tag-action@v1.3.14 diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 96d22f6db..9b6280713 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -23,9 +23,6 @@ jobs: with: deno-version: v1.32.4 - - name: Install HC - run: cargo install --git https://github.com/coasys/holochain holochain_cli || echo "hc already installed" - - name: Create Tags From id: create_tag uses: jaywcjlove/create-tag-action@v1.3.14 diff --git a/bootstrap-languages/agent-language/hc-dna/holochain_version.nix b/bootstrap-languages/agent-language/hc-dna/holochain_version.nix index 9f44831c8..acfe9651f 100644 --- a/bootstrap-languages/agent-language/hc-dna/holochain_version.nix +++ b/bootstrap-languages/agent-language/hc-dna/holochain_version.nix @@ -4,7 +4,7 @@ { url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; + rev = "holochain-0.2.2"; sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; cargoLock = { outputHashes = { diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts b/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts index b73f2b4c1..5c13e3bdd 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts @@ -109,7 +109,7 @@ test("Create update agent expression", async (t) => { //==================== - await new Promise(r => setTimeout(r, 1000)) + await new Promise(r => setTimeout(r, 5000)) //==================== let bobResult = await bob.cells[0].callZome({ @@ -125,5 +125,9 @@ test("Create update agent expression", async (t) => { await bobConductor.conductor.shutDown(); await cleanAllConductors(); await scenario.cleanUp() + + t.end(); + + process.exit(0); }) }) \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json b/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json index 3dc43fa8b..74d9edca7 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json @@ -10,8 +10,8 @@ "author": "", "license": "ISC", "dependencies": { - "@holochain/client": "0.16.0", - "@holochain/tryorama": "0.11.0", + "@holochain/client": "0.16.1", + "@holochain/tryorama": "0.15.0", "@types/lodash": "^4.14.158", "@types/node": "^18.0.0", "blake2b": "^2.1.3", diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts b/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts index 3b2eb10a3..5ba092cee 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts @@ -1,4 +1,4 @@ -import { AgentApp, CallableCell, Conductor } from "@holochain/tryorama"; +import { AgentApp, CallableCell, Conductor, NetworkType, enableAndGetAgentApp, runLocalServices } from "@holochain/tryorama"; import { dnas } from './common'; import { createConductor } from "@holochain/tryorama"; import { resolve } from "path"; @@ -9,8 +9,13 @@ export function sleep(ms: number) { export async function createConductors(num: number): Promise<{agent_happ: AgentApp, conductor: Conductor}[]> { let out = [] as {agent_happ: AgentApp, conductor: Conductor}[]; + + const localServices = await runLocalServices(); + for (let n of Array(num).keys()) { - let conductor = await createConductor(); + let conductor = await createConductor(localServices.signalingServerUrl, {networkType: NetworkType.WebRtc, bootstrapServerUrl: localServices.bootstrapServerUrl}); + let port = await conductor.attachAppInterface(); + let appWs = await conductor.connectAppWs(port); try { let app = await conductor.installApp({ bundle: { @@ -28,9 +33,9 @@ export async function createConductors(num: number): Promise<{agent_happ: AgentA resources: {} } }); - await conductor.adminWs().enableApp({installed_app_id: app.appId}) + const agentApp = await enableAndGetAgentApp(conductor.adminWs(), appWs, app); out.push({ - agent_happ: app, + agent_happ: agentApp, conductor }) } catch (e) { diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock b/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock index 98016b481..5d016638c 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock @@ -23,45 +23,33 @@ enabled "2.0.x" kuler "^2.0.0" -"@holochain/client@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.0.tgz#1c9bdc082160badd1439962e8d5f30da6c4089a3" - integrity sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A== +"@holochain/client@0.16.1", "@holochain/client@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.1.tgz#3cdb110a5d4ab9bf51f31def289f0d082baa77ba" + integrity sha512-jfbrSZz3Yqr/hb3NwzfLSWpR6Cnt82hiHUZP5R1MrGpFQV8JVI2uq94CMVasBspNsWX3lMpT9LNz5Duvq7zF8Q== dependencies: "@holochain/serialization" "^0.1.0-beta-rc.3" "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" "@tauri-apps/api" "^1.2.0" emittery "^1.0.1" isomorphic-ws "^5.0.0" js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/client@^0.11.16": - version "0.11.16" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.11.16.tgz#3b2172cc5b0976d4bed01d067c2cebb28d644e0e" - integrity sha512-uX1/mRnNZHc0y88bkGJrfp6/mfh1UGFS+g+wvn+E69spzPQMxAkjo7FmZ6nmZfxPoYCoxKjVJyKmvswPUP1Xfw== - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" + ws "^8.13.0" "@holochain/serialization@^0.1.0-beta-rc.3": version "0.1.0-beta-rc.3" resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== -"@holochain/tryorama@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.0.tgz#55505b19e1d3bc9ca47cf42deabd35df94cab6bb" - integrity sha512-P2MNn//UulkYCo64j69HfhMfrWGtDrI/A1QEuEZYPUyW8fNg3iE5wh2ssHnu0siw0WRjB6H/PBdadNZz8hemcw== +"@holochain/tryorama@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.15.0.tgz#726dbd33159edf8866de7aa5cf6afdb2230aec74" + integrity sha512-GWsiheb6AFkPkT1ho+dJeFRB2jVboIm/Gp+7v1LshKbDZrgY7oDEopyQPWmy4SkQQYItuscGaIdaOUJIQJuGKQ== dependencies: - "@holochain/client" "^0.11.16" + "@holochain/client" "^0.16.0" get-port "^6.1.2" lodash "^4.17.21" uuid "^8.3.2" @@ -91,6 +79,11 @@ resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== + "@tauri-apps/api@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" @@ -126,10 +119,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== -"@types/node@^14.0.14": - version "14.18.34" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.34.tgz#cd2e6fa0dbfb08a62582a7b967558e73c32061ec" - integrity sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA== +"@types/node@^18.0.0": + version "18.17.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.17.tgz#53cc07ce582c9d7c5850702a3c2cb0af0d7b0ca1" + integrity sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw== "@types/tape-promise@^4.0.1": version "4.0.1" @@ -690,6 +683,18 @@ kuler@^2.0.0: resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== +libsodium-wrappers@^0.7.11: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" + integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== + dependencies: + libsodium "^0.7.13" + +libsodium@^0.7.13: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" + integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== + lodash-es@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" @@ -984,11 +989,6 @@ ts-node@^10.8.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - typescript@^4.2.4: version "4.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" @@ -1088,6 +1088,11 @@ ws@^8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== +ws@^8.13.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" + integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" diff --git a/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix b/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix index 9f44831c8..acfe9651f 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix +++ b/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix @@ -4,7 +4,7 @@ { url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; + rev = "holochain-0.2.2"; sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; cargoLock = { outputHashes = { diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/package.json b/bootstrap-languages/direct-message-language/hc-dna/tests/package.json index 12275eff9..628116c09 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/tests/package.json +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/package.json @@ -10,8 +10,8 @@ "author": "", "license": "ISC", "dependencies": { - "@holochain/client": "0.16.0", - "@holochain/tryorama": "0.11.0", + "@holochain/client": "0.16.1", + "@holochain/tryorama": "0.15.0", "@types/lodash": "^4.14.158", "@types/node": "^18.0.0", "blake2b": "^2.1.3", diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts b/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts index 56ba71b28..23ea6e62c 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts @@ -51,7 +51,9 @@ test("send direct message", async (t) => { } } }]); - alice.conductor.appWs().on("signal", (signal) => { + const portAlice = await alice.conductor.attachAppInterface(); + const appWs = await alice.conductor.connectAppWs(portAlice); + appWs.on("signal", (signal) => { let payload = signal.payload try { let cropped = signal.payload.toString().substring(7) @@ -193,7 +195,7 @@ test("send direct message", async (t) => { payload: message2 })) - await sleep(1000) + await sleep(5000) inbox = await alice.cells[0].callZome({ zome_name: ZOME, @@ -214,7 +216,7 @@ test("send direct message", async (t) => { bobFetchError = e } //@ts-ignore - t.equal(bobFetchError.data.data, 'Wasm runtime error while working with Ribosome: RuntimeError: WasmError { file: "zomes/direct-message/src/lib.rs", line: 237, error: Guest("Only recipient can fetch the inbox") }') + t.equal(JSON.parse(JSON.stringify(bobFetchError)).message, 'Wasm runtime error while working with Ribosome: RuntimeError: WasmError { file: "zomes/direct-message/src/lib.rs", line: 241, error: Guest("Only recipient can fetch the inbox") }') console.log("fetch_inbox Alice:", await alice.cells[0].callZome({ zome_name: ZOME, diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock b/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock index 3541ebec7..7f26f05e3 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock @@ -23,45 +23,33 @@ enabled "2.0.x" kuler "^2.0.0" -"@holochain/client@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.0.tgz#1c9bdc082160badd1439962e8d5f30da6c4089a3" - integrity sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A== +"@holochain/client@0.16.1", "@holochain/client@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.1.tgz#3cdb110a5d4ab9bf51f31def289f0d082baa77ba" + integrity sha512-jfbrSZz3Yqr/hb3NwzfLSWpR6Cnt82hiHUZP5R1MrGpFQV8JVI2uq94CMVasBspNsWX3lMpT9LNz5Duvq7zF8Q== dependencies: "@holochain/serialization" "^0.1.0-beta-rc.3" "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" "@tauri-apps/api" "^1.2.0" emittery "^1.0.1" isomorphic-ws "^5.0.0" js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" lodash-es "^4.17.21" - tweetnacl "^1.0.3" - -"@holochain/client@^0.11.16": - version "0.11.16" - resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.11.16.tgz#3b2172cc5b0976d4bed01d067c2cebb28d644e0e" - integrity sha512-uX1/mRnNZHc0y88bkGJrfp6/mfh1UGFS+g+wvn+E69spzPQMxAkjo7FmZ6nmZfxPoYCoxKjVJyKmvswPUP1Xfw== - dependencies: - "@holochain/serialization" "^0.1.0-beta-rc.3" - "@msgpack/msgpack" "^2.7.2" - "@tauri-apps/api" "^1.2.0" - emittery "^1.0.1" - isomorphic-ws "^5.0.0" - js-base64 "^3.7.3" - lodash-es "^4.17.21" - tweetnacl "^1.0.3" + ws "^8.13.0" "@holochain/serialization@^0.1.0-beta-rc.3": version "0.1.0-beta-rc.3" resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== -"@holochain/tryorama@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.0.tgz#55505b19e1d3bc9ca47cf42deabd35df94cab6bb" - integrity sha512-P2MNn//UulkYCo64j69HfhMfrWGtDrI/A1QEuEZYPUyW8fNg3iE5wh2ssHnu0siw0WRjB6H/PBdadNZz8hemcw== +"@holochain/tryorama@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.15.0.tgz#726dbd33159edf8866de7aa5cf6afdb2230aec74" + integrity sha512-GWsiheb6AFkPkT1ho+dJeFRB2jVboIm/Gp+7v1LshKbDZrgY7oDEopyQPWmy4SkQQYItuscGaIdaOUJIQJuGKQ== dependencies: - "@holochain/client" "^0.11.16" + "@holochain/client" "^0.16.0" get-port "^6.1.2" lodash "^4.17.21" uuid "^8.3.2" @@ -91,6 +79,11 @@ resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== + "@tauri-apps/api@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" @@ -131,10 +124,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.11.tgz#1d455ac0211549a8409d3cdb371cd55cc971e8dc" integrity sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g== -"@types/node@^14.0.14": - version "14.18.34" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.34.tgz#cd2e6fa0dbfb08a62582a7b967558e73c32061ec" - integrity sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA== +"@types/node@^18.0.0": + version "18.17.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.17.tgz#53cc07ce582c9d7c5850702a3c2cb0af0d7b0ca1" + integrity sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw== "@types/tape-promise@^4.0.1": version "4.0.1" @@ -700,6 +693,18 @@ kuler@^2.0.0: resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== +libsodium-wrappers@^0.7.11: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" + integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== + dependencies: + libsodium "^0.7.13" + +libsodium@^0.7.13: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" + integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== + lodash-es@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" @@ -994,11 +999,6 @@ ts-node@^10.8.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - typescript@^4.2.4: version "4.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" @@ -1098,6 +1098,11 @@ ws@^8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== +ws@^8.13.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" + integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" diff --git a/bootstrap-languages/file-storage/hc-dna/holochain_version.nix b/bootstrap-languages/file-storage/hc-dna/holochain_version.nix index 9f44831c8..acfe9651f 100644 --- a/bootstrap-languages/file-storage/hc-dna/holochain_version.nix +++ b/bootstrap-languages/file-storage/hc-dna/holochain_version.nix @@ -4,7 +4,7 @@ { url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; + rev = "holochain-0.2.2"; sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; cargoLock = { outputHashes = { diff --git a/bootstrap-languages/file-storage/hc-dna/tests/.hc b/bootstrap-languages/file-storage/hc-dna/tests/.hc new file mode 100644 index 000000000..cf4242098 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/tests/.hc @@ -0,0 +1,10 @@ +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/3u2oqidDs876GqjCJrC7C +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/uGhb6HCHxCTeX6CmtB1-j +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/lQxNYNKW4QzCuw-SfmTR7 +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/coZoYEvYKBcQ5JpXuKvRe +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/fcuNcz4XKj51l8XDw3NpZ +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/E6krFpm2q5_T94qOYb7EB +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/FS5F54Vb0MCUVPDtZpw-H +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/PvG8wa8Nf47qpOCwdQVm2 +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/S6G5YGjUZR6oTuyxF624z +/var/folders/xb/xg25hfr15ys1gtch1sl7h2pm0000gn/T/1-9EyRt3Pf2qNlfN9PvRW diff --git a/bootstrap-languages/file-storage/hc-dna/tests/index.ts b/bootstrap-languages/file-storage/hc-dna/tests/index.ts index 564e0b4a6..29bc221a8 100644 --- a/bootstrap-languages/file-storage/hc-dna/tests/index.ts +++ b/bootstrap-languages/file-storage/hc-dna/tests/index.ts @@ -3,7 +3,7 @@ import test from "tape-promise/tape.js"; import path from "path"; import { resolve } from "path"; import { FileStorage } from "../../file-storage"; -import { Blob } from "node:buffer"; +import { Blob } from "buffer"; const dnas = [{ source: {path: path.join("../workdir/file-storage.dna") } }]; @@ -63,6 +63,7 @@ test("Share 1MB between Alice and Bob", async (t) => { const blobUp = new Blob([buf]) console.log("Uploading file...") + //@ts-ignore const hashes = await aliceClient.upload(blobUp); console.log("Done") console.log("Got hashes", hashes) @@ -80,6 +81,7 @@ test("Share 1MB between Alice and Bob", async (t) => { t.assert(bufUp.compare(bufDown) == 0) await scenario.shutDown() + t.end() }) }) @@ -135,6 +137,7 @@ test("Share full FileExpression between Alice and Bob", async (t) => { const buf = Buffer.from(randomNumbers); const blobUp = new Blob([buf]) + //@ts-ignore const hashes = await aliceClient.upload(blobUp); const fileMetadata = { name: "test.txt", @@ -170,8 +173,8 @@ test("Share full FileExpression between Alice and Bob", async (t) => { const bufUp = Buffer.from(await blobUp.arrayBuffer()); t.assert(bufUp.compare(bufDown) == 0) - await scenario.shutDown(); - + await scenario.shutDown(); + t.end(); }) }) \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/tests/package.json b/bootstrap-languages/file-storage/hc-dna/tests/package.json index d0f5725b4..22b393d4a 100644 --- a/bootstrap-languages/file-storage/hc-dna/tests/package.json +++ b/bootstrap-languages/file-storage/hc-dna/tests/package.json @@ -5,8 +5,8 @@ "type": "module", "license": "MIT", "dependencies": { - "@holochain/client": "0.16.0", - "@holochain/tryorama": "^0.11.1", + "@holochain/client": "0.16.1", + "@holochain/tryorama": "0.15.0", "tape-promise": "^4.0.0", "ts-node": "^10.8.0", "@types/node": "^14.0.14", diff --git a/bootstrap-languages/file-storage/hc-dna/tests/yarn.lock b/bootstrap-languages/file-storage/hc-dna/tests/yarn.lock new file mode 100644 index 000000000..0cc0eecb0 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/tests/yarn.lock @@ -0,0 +1,1235 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@holochain/client@0.16.1", "@holochain/client@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.1.tgz#3cdb110a5d4ab9bf51f31def289f0d082baa77ba" + integrity sha512-jfbrSZz3Yqr/hb3NwzfLSWpR6Cnt82hiHUZP5R1MrGpFQV8JVI2uq94CMVasBspNsWX3lMpT9LNz5Duvq7zF8Q== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" + lodash-es "^4.17.21" + ws "^8.13.0" + +"@holochain/serialization@^0.1.0-beta-rc.3": + version "0.1.0-beta-rc.3" + resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" + integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== + +"@holochain/tryorama@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.15.0.tgz#726dbd33159edf8866de7aa5cf6afdb2230aec74" + integrity sha512-GWsiheb6AFkPkT1ho+dJeFRB2jVboIm/Gp+7v1LshKbDZrgY7oDEopyQPWmy4SkQQYItuscGaIdaOUJIQJuGKQ== + dependencies: + "@holochain/client" "^0.16.0" + get-port "^6.1.2" + lodash "^4.17.21" + uuid "^8.3.2" + winston "^3.8.2" + ws "^8.11.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@ljharb/resumer@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ljharb/resumer/-/resumer-0.0.1.tgz#8a940a9192dd31f6a1df17564bbd26dc6ad3e68d" + integrity sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw== + dependencies: + "@ljharb/through" "^2.3.9" + +"@ljharb/through@^2.3.9": + version "2.3.9" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.9.tgz#85f221eb82f9d555e180e87d6e50fb154af85408" + integrity sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ== + +"@msgpack/msgpack@^2.7.2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" + integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== + +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== + +"@tauri-apps/api@^1.2.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.4.0.tgz#b4013ca3d17b853f7df29fe14079ebb4d52dbffa" + integrity sha512-Jd6HPoTM1PZSFIzq7FB8VmMu3qSSyo/3lSwLpoapW+lQ41CL5Dow2KryLg+gyazA/58DRWI9vu/XpEeHK4uMdw== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/faker@^5.5.3": + version "5.5.9" + resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== + +"@types/node@*": + version "20.6.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.2.tgz#a065925409f59657022e9063275cd0b9bd7e1b12" + integrity sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw== + +"@types/node@^14.0.14": + version "14.18.61" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.61.tgz#752097010d85f6279b3069811bf0e99eba996096" + integrity sha512-1mFT4DqS4/s9tlZbdkwEB/EnSykA9MDeDLIk3FHApGvIMGY//qgstB2gu9GKGESWyW/qiRUO+jhlLJ9bBJ8j+Q== + +"@types/tape-promise@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/tape-promise/-/tape-promise-4.0.2.tgz#21b6cf9a8d66dae026f9fe81aafe0c2025b7f058" + integrity sha512-EKVttQy09DutWfuOj7CoqCiP9fH6chU5eYADP6wLYmqrjz2ibgf+ONevDVzleC7L58/qhuAcfEgUBDAEUi+awg== + dependencies: + "@types/tape" "*" + +"@types/tape@*": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@types/tape/-/tape-5.6.1.tgz#3285ad2e5433f7672974330e8b1c8264962a1281" + integrity sha512-Rs3uJYjo+oAtF+X/icS75nIa/tnPmZEuFqxwZW456+PfM0gqyqDh4fU9Mp0msFkeeFzvLPp7F7nDfw1yYDLJVA== + dependencies: + "@types/node" "*" + "@types/through" "*" + +"@types/through@*": + version "0.0.31" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.31.tgz#eb410602641807e74a90c5e951f46686e75eed1c" + integrity sha512-LpKpmb7FGevYgXnBXYs6HWnmiFyVG07Pt1cnbgM1IhEacITTiUaBXXvOR3Y50ksaJWGSfhbEvQFivQEFGCC55w== + dependencies: + "@types/node" "*" + +"@types/triple-beam@^1.3.2": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.3.tgz#726ae98a5f6418c8f24f9b0f2a9f81a8664876ae" + integrity sha512-6tOUG+nVHn0cJbVp25JFayS5UE6+xlbcNF9Lo9mU7U0zk3zeUShZied4YEQZjy1JBF043FSkdXw8YkUJuVtB5g== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array.prototype.every@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.5.tgz#f8ca86a1a82a91eb5173187ef68935dc47215922" + integrity sha512-FfMQJ+/joFGXpRCltbzV3znaP5QxIhLFySo0fEPn3GuoYlud9LhknMCIxdYKC2qsM/6VHoSp6YGwe3EZXrEcwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + is-string "^1.0.7" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +blob-compare@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/blob-compare/-/blob-compare-1.1.0.tgz#bb26f66f4795b57f1cfc8de48b89af42ae14c72f" + integrity sha512-2IAxmSdPgS91n9COyZz2G2ZwG/9ALrcgyCW12E50YMuJ5YR/BaEI2AidK6t0HwuZ1ODsXgD9gmrHrhpQlDCMoA== + dependencies: + webworker-promise "^0.4.2" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +deep-equal@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.2.tgz#9b2635da569a13ba8e1cc159c2f744071b115daa" + integrity sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.1" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +define-data-property@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" + integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +emittery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" + integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +es-abstract@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.1" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.12" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.11" + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +js-base64@^3.7.3: + version "3.7.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +libsodium-wrappers@^0.7.11: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" + integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== + dependencies: + libsodium "^0.7.13" + +libsodium@^0.7.13: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" + integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b" + integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== + dependencies: + "@colors/colors" "1.5.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" + +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-stable-stringify@^2.3.1: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +string.prototype.trim@^1.2.7, string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tape-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tape-promise/-/tape-promise-4.0.0.tgz#c1f3553959b2e9d64b1546e7276b8a017c616897" + integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== + dependencies: + is-promise "^2.1.0" + onetime "^2.0.0" + +tape@^5.5.3: + version "5.6.6" + resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.6.tgz#dc555729d557184764a0d61130304d21977e4ca2" + integrity sha512-rGp2cZ3rfZ6QfTBm6yvohf8aXmDqPyzMKZwTMV12w4i+b/N2Adwlg8PlW8jLqWzlJUZhglyYaLOSrMt/ZlZkAA== + dependencies: + "@ljharb/resumer" "^0.0.1" + "@ljharb/through" "^2.3.9" + array.prototype.every "^1.1.4" + call-bind "^1.0.2" + deep-equal "^2.2.2" + defined "^1.0.1" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.3" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.8" + object-inspect "^1.12.3" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + resolve "^2.0.0-next.4" + string.prototype.trim "^1.2.7" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +triple-beam@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" + integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== + +ts-node@^10.8.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typescript@^4.2.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +webworker-promise@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/webworker-promise/-/webworker-promise-0.4.4.tgz#722b0ccade10ccb4e810325e5ebff00eb0e1b1be" + integrity sha512-NfdSlaWqd+0iSrQudB0N0MELfJ9TVTlynhXMpi06piuZhyc9Yy7Hz6BFu2HUkvIb9lCS0pFW42ptd/JnXVnptg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.11, which-typed-array@^1.1.9: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.8.2: + version "3.10.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.10.0.tgz#d033cb7bd3ced026fed13bf9d92c55b903116803" + integrity sha512-nT6SIDaE9B7ZRO0u3UvdrimG0HkB7dSTAgInQnNR2SOPJ4bvq5q79+pXLftKmP52lJGW15+H5MCK0nM9D3KB/g== + dependencies: + "@colors/colors" "1.5.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.11.0, ws@^8.13.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" + integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/bootstrap-languages/p-diff-sync/hc-dna/holochain_version.nix b/bootstrap-languages/p-diff-sync/hc-dna/holochain_version.nix index 9f44831c8..acfe9651f 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/holochain_version.nix +++ b/bootstrap-languages/p-diff-sync/hc-dna/holochain_version.nix @@ -4,7 +4,7 @@ { url = "https://github.com/holochain/holochain"; - rev = "holochain-0.1.0"; + rev = "holochain-0.2.2"; sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; cargoLock = { outputHashes = { diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json index 19cbe924e..8c0170b0d 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json @@ -18,8 +18,8 @@ "author": "", "license": "ISC", "dependencies": { - "@holochain/client": "0.16.0", - "@holochain/tryorama": "0.11.1", + "@holochain/client": "0.16.1", + "@holochain/tryorama": "0.15.0", "@perspect3vism/ad4m": "^0.2.12", "@types/lodash": "^4.14.158", "@types/node": "^18.0.0", diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/pull.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/pull.ts index 3e3b74645..8db065701 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/pull.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/pull.ts @@ -254,7 +254,6 @@ export async function mergeFetch(t) { await aliceConductor.shutDown(); await bobConductor.shutDown(); - await cleanAllConductors(); } @@ -267,6 +266,8 @@ test("pull", async (t) => { console.error("Pull test failed with error", e); //@ts-ignore t.fail(e) + } finally { t.end() + process.exit(0) } }) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/render.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/render.ts index e7151f95f..987309c93 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/render.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/render.ts @@ -266,4 +266,5 @@ test("render", async (t) => { await render(t) await renderMerges(t) t.end() + process.exit(0); }) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/revisions.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/revisions.ts index 24534f25c..75b274839 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/revisions.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/revisions.ts @@ -88,4 +88,5 @@ export async function testRevisionUpdates(t) { test("test revision updates", async (t) => { await testRevisionUpdates(t); t.end() + process.exit(0) }) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/signals.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/signals.ts index 3eb871eb4..7bb262780 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/signals.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/signals.ts @@ -28,7 +28,9 @@ export async function signals(t) { }, } ); - aliceHapps.conductor.appWs().on("signal", (signal) => { + const portAlice = await aliceHapps.conductor.attachAppInterface(); + const appWs = await aliceHapps.conductor.connectAppWs(portAlice); + appWs.on("signal", (signal) => { console.log("Alice Received Signal:",signal) aliceSignalCount += 1; }); @@ -50,7 +52,9 @@ export async function signals(t) { } } ); - bobHapps.conductor.appWs().on("signal", (signal) => { + const portBob = await bobHapps.conductor.attachAppInterface(); + const appWsBob = await bobHapps.conductor.connectAppWs(portBob); + appWsBob.on("signal", (signal) => { console.log("Bob Received Signal:",signal) bobSignalCount += 1; }) @@ -98,4 +102,5 @@ export async function signals(t) { test("signals", async (t) => { await signals(t) t.end() + process.exit(0) }) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/stress.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/stress.ts index db8efe65d..31765bcc0 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/stress.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/stress.ts @@ -174,7 +174,9 @@ export async function stressTest(t) { } ); const alicePeersList: Map = new Map(); - aliceHapps.conductor.appWs().on("signal", async (signal) => { + const portAlice = await aliceHapps.conductor.attachAppInterface(); + const appWs = await aliceHapps.conductor.connectAppWs(portAlice); + appWs.on("signal", (signal) => { //console.log("Alice Received Signal:",signal); const { diff, reference_hash, reference, broadcast_author } = signal.payload; if (diff && reference_hash && reference && broadcast_author) { @@ -212,7 +214,9 @@ export async function stressTest(t) { } ); const bobPeersList: Map = new Map(); - bobHapps.conductor.appWs().on("signal", async (signal) => { + const portBob = await bobHapps.conductor.attachAppInterface(); + const appWsBob = await bobHapps.conductor.connectAppWs(portBob); + appWsBob.on("signal", (signal) => { console.log("Bob Received Signal:",signal) const { diff, reference_hash, reference, broadcast_author } = signal.payload; if (diff && reference_hash && reference && broadcast_author) { @@ -347,4 +351,5 @@ export async function stressTest(t) { test("stress", async (t) => { await stressTest(t); t.end() + process.exit(0) }) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/telepresence.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/telepresence.ts index 7fa4c7759..72391d3a0 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/telepresence.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/telepresence.ts @@ -39,7 +39,9 @@ export async function testTelepresence(t) { }, } ); - aliceHapps.conductor.appWs().on("signal", (signal) => { + const portAlice = await aliceHapps.conductor.attachAppInterface(); + const appWs = await aliceHapps.conductor.connectAppWs(portAlice); + appWs.on("signal", (signal) => { console.log("Alice Received Signal:",signal) aliceSignalCount += 1; }); @@ -61,7 +63,9 @@ export async function testTelepresence(t) { } } ); - bobHapps.conductor.appWs().on("signal", (signal) => { + const portBob = await bobHapps.conductor.attachAppInterface(); + const appWsBob = await bobHapps.conductor.connectAppWs(portBob); + appWsBob.on("signal", (signal) => { console.log("Bob Received Signal:",signal) bobSignalCount += 1; }) @@ -161,6 +165,8 @@ test("telepresence", async (t) => { console.error("telepresence test failed with error", e); //@ts-ignore t.fail(e) + } finally { t.end() + process.exit(0) } }) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/utils.ts b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/utils.ts index 8bfc221cd..54744eb99 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/utils.ts +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/utils.ts @@ -1,4 +1,4 @@ -import { AgentApp, CallableCell, Conductor } from "@holochain/tryorama"; +import { AgentApp, CallableCell, Conductor, NetworkType, enableAndGetAgentApp, runLocalServices } from "@holochain/tryorama"; import faker from "faker"; import { dnas } from './common'; import { createConductor } from "@holochain/tryorama"; @@ -38,8 +38,13 @@ export function sleep(ms: number) { export async function createConductors(num: number): Promise<{agent_happ: AgentApp, conductor: Conductor}[]> { let out = [] as {agent_happ: AgentApp, conductor: Conductor}[]; + + const localServices = await runLocalServices(); + for (let n of Array(num).keys()) { - let conductor = await createConductor(); + let conductor = await createConductor(localServices.signalingServerUrl, {networkType: NetworkType.WebRtc, bootstrapServerUrl: localServices.bootstrapServerUrl}); + let port = await conductor.attachAppInterface(); + let appWs = await conductor.connectAppWs(port); try { let app = await conductor.installApp({ bundle: { @@ -57,9 +62,9 @@ export async function createConductors(num: number): Promise<{agent_happ: AgentA resources: {} } }); - await conductor.adminWs().enableApp({installed_app_id: app.appId}) + const agentApp = await enableAndGetAgentApp(conductor.adminWs(), appWs, app); out.push({ - agent_happ: app, + agent_happ: agentApp, conductor }) } catch (e) { diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/yarn.lock b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/yarn.lock index a7d7b24af..00d1b3687 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/yarn.lock +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/yarn.lock @@ -3,1783 +3,1831 @@ "@apollo/client@3.6.9": - "integrity" "sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==" - "resolved" "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz" - "version" "3.6.9" + version "3.6.9" + resolved "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz" + integrity sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA== dependencies: "@graphql-typed-document-node/core" "^3.1.1" "@wry/context" "^0.6.0" "@wry/equality" "^0.5.0" "@wry/trie" "^0.3.0" - "graphql-tag" "^2.12.6" - "hoist-non-react-statics" "^3.3.2" - "optimism" "^0.16.1" - "prop-types" "^15.7.2" - "symbol-observable" "^4.0.0" - "ts-invariant" "^0.10.3" - "tslib" "^2.3.0" - "zen-observable-ts" "^1.2.5" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.1" + prop-types "^15.7.2" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" "@colors/colors@1.5.0": - "integrity" "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" - "resolved" "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" - "version" "1.5.0" + version "1.5.0" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@cspotcode/source-map-support@^0.8.0": - "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==" - "resolved" "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" - "version" "0.8.1" + version "0.8.1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@dabh/diagnostics@^2.0.2": - "integrity" "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==" - "resolved" "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz" - "version" "2.0.3" + version "2.0.3" + resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== dependencies: - "colorspace" "1.1.x" - "enabled" "2.0.x" - "kuler" "^2.0.0" + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" "@graphql-typed-document-node/core@^3.1.1": - "integrity" "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==" - "resolved" "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz" - "version" "3.1.1" + version "3.1.1" + resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz" + integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== -"@holochain/client@^0.12.0", "@holochain/client@0.12.0": - "integrity" "sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A==" - "resolved" "https://registry.npmjs.org/@holochain/client/-/client-0.12.0.tgz" - "version" "0.12.0" +"@holochain/client@0.12.0": + version "0.12.0" + resolved "https://registry.npmjs.org/@holochain/client/-/client-0.12.0.tgz" + integrity sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A== dependencies: "@holochain/serialization" "^0.1.0-beta-rc.3" "@msgpack/msgpack" "^2.7.2" "@tauri-apps/api" "^1.2.0" - "emittery" "^1.0.1" - "isomorphic-ws" "^5.0.0" - "js-base64" "^3.7.3" - "lodash-es" "^4.17.21" - "tweetnacl" "^1.0.3" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/client@0.16.1", "@holochain/client@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.16.1.tgz#3cdb110a5d4ab9bf51f31def289f0d082baa77ba" + integrity sha512-jfbrSZz3Yqr/hb3NwzfLSWpR6Cnt82hiHUZP5R1MrGpFQV8JVI2uq94CMVasBspNsWX3lMpT9LNz5Duvq7zF8Q== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@noble/ed25519" "^2.0.0" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + libsodium-wrappers "^0.7.11" + lodash-es "^4.17.21" + ws "^8.13.0" "@holochain/serialization@^0.1.0-beta-rc.3": - "integrity" "sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw==" - "resolved" "https://registry.npmjs.org/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz" - "version" "0.1.0-beta-rc.3" - -"@holochain/tryorama@0.11.1": - "integrity" "sha512-L9xJUI7U0aP0K2TSa5kIpOx5wx8n66DeuD06CSVmoZeJTv5lpiDhzEtpdOqyiXHXISZKmLIsN/HW9kGkSGURcw==" - "resolved" "https://registry.npmjs.org/@holochain/tryorama/-/tryorama-0.11.1.tgz" - "version" "0.11.1" - dependencies: - "@holochain/client" "^0.12.0" - "get-port" "^6.1.2" - "lodash" "^4.17.21" - "uuid" "^8.3.2" - "winston" "^3.8.2" - "ws" "^8.11.0" + version "0.1.0-beta-rc.3" + resolved "https://registry.npmjs.org/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz" + integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== + +"@holochain/tryorama@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.15.0.tgz#726dbd33159edf8866de7aa5cf6afdb2230aec74" + integrity sha512-GWsiheb6AFkPkT1ho+dJeFRB2jVboIm/Gp+7v1LshKbDZrgY7oDEopyQPWmy4SkQQYItuscGaIdaOUJIQJuGKQ== + dependencies: + "@holochain/client" "^0.16.0" + get-port "^6.1.2" + lodash "^4.17.21" + uuid "^8.3.2" + winston "^3.8.2" + ws "^8.11.0" "@jest/types@^26.6.2": - "integrity" "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==" - "resolved" "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" - "version" "26.6.2" + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^15.0.0" - "chalk" "^4.0.0" + chalk "^4.0.0" "@jridgewell/resolve-uri@^3.0.3": - "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - "version" "3.1.0" + version "3.1.0" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== "@jridgewell/sourcemap-codec@^1.4.10": - "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - "version" "1.4.14" + version "1.4.14" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@0.3.9": - "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==" - "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" - "version" "0.3.9" + version "0.3.9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@msgpack/msgpack@^2.7.2": - "integrity" "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==" - "resolved" "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz" - "version" "2.7.2" + version "2.7.2" + resolved "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz" + integrity sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw== + +"@noble/ed25519@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-2.0.0.tgz#5964c8190a4b4b804985717ca566113b93379e43" + integrity sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng== "@perspect3vism/ad4m@^0.2.12": - "integrity" "sha512-hIJV5j064SQyxJXiMoHzZGQ5QowA+bxDuXsWGcfAXBN6EpxpFSoqvRuYqGR7VjENg5CV9hL9gjOVUYdhFdRt4Q==" - "resolved" "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.2.15.tgz" - "version" "0.2.15" + version "0.2.15" + resolved "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.2.15.tgz" + integrity sha512-hIJV5j064SQyxJXiMoHzZGQ5QowA+bxDuXsWGcfAXBN6EpxpFSoqvRuYqGR7VjENg5CV9hL9gjOVUYdhFdRt4Q== dependencies: "@apollo/client" "3.6.9" "@holochain/client" "0.12.0" "@types/jest" "^26.0.14" - "class-validator" "^0.13.1" - "express" "^4.18.1" - "graphql" "^15.7.2" - "reflect-metadata" "^0.1.13" - "type-graphql" "^1.1.1" + class-validator "^0.13.1" + express "^4.18.1" + graphql "^15.7.2" + reflect-metadata "^0.1.13" + type-graphql "^1.1.1" "@tauri-apps/api@^1.2.0": - "integrity" "sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==" - "resolved" "https://registry.npmjs.org/@tauri-apps/api/-/api-1.2.0.tgz" - "version" "1.2.0" + version "1.2.0" + resolved "https://registry.npmjs.org/@tauri-apps/api/-/api-1.2.0.tgz" + integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== "@tsconfig/node10@^1.0.7": - "integrity" "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - "resolved" "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" - "version" "1.0.9" + version "1.0.9" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": - "integrity" "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - "resolved" "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" - "version" "1.0.11" + version "1.0.11" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": - "integrity" "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - "resolved" "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" - "version" "1.0.3" + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - "integrity" "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - "resolved" "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" - "version" "1.0.3" + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== "@types/faker@^5.5.3": - "integrity" "sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA==" - "resolved" "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz" - "version" "5.5.9" + version "5.5.9" + resolved "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== "@types/glob@^7.1.3": - "integrity" "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==" - "resolved" "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" - "version" "7.2.0" + version "7.2.0" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - "integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - "version" "2.0.4" + version "2.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== "@types/istanbul-lib-report@*": - "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - "version" "3.0.0" + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" - "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - "version" "3.0.1" + version "3.0.1" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== dependencies: "@types/istanbul-lib-report" "*" "@types/jest@^26.0.14": - "integrity" "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==" - "resolved" "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz" - "version" "26.0.24" + version "26.0.24" + resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== dependencies: - "jest-diff" "^26.0.0" - "pretty-format" "^26.0.0" + jest-diff "^26.0.0" + pretty-format "^26.0.0" "@types/lodash@^4.14.158": - "integrity" "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" - "resolved" "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz" - "version" "4.14.182" + version "4.14.182" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz" + integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== "@types/minimatch@*": - "integrity" "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" - "version" "3.0.5" + version "3.0.5" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/node@*": + version "14.18.22" + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz" + integrity sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw== -"@types/node@*", "@types/node@^14.0.14": - "integrity" "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz" - "version" "14.18.22" +"@types/node@^14.11.2": + version "14.18.61" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.61.tgz#752097010d85f6279b3069811bf0e99eba996096" + integrity sha512-1mFT4DqS4/s9tlZbdkwEB/EnSykA9MDeDLIk3FHApGvIMGY//qgstB2gu9GKGESWyW/qiRUO+jhlLJ9bBJ8j+Q== + +"@types/node@^18.0.0": + version "18.17.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.17.tgz#53cc07ce582c9d7c5850702a3c2cb0af0d7b0ca1" + integrity sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw== "@types/semver@^7.3.3": - "integrity" "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==" - "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz" - "version" "7.3.12" + version "7.3.12" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz" + integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== "@types/tape-promise@^4.0.1": - "integrity" "sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg==" - "resolved" "https://registry.npmjs.org/@types/tape-promise/-/tape-promise-4.0.1.tgz" - "version" "4.0.1" + version "4.0.1" + resolved "https://registry.npmjs.org/@types/tape-promise/-/tape-promise-4.0.1.tgz" + integrity sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg== dependencies: "@types/tape" "*" "@types/tape@*": - "integrity" "sha512-V1ez/RtYRGN9cNYApw5xf27DpMkTB0033X6a2i3KUmKhSojBfbWN0i3EgZxboUG96WJLHLdOyZ01aiZwVW5aSA==" - "resolved" "https://registry.npmjs.org/@types/tape/-/tape-4.13.2.tgz" - "version" "4.13.2" + version "4.13.2" + resolved "https://registry.npmjs.org/@types/tape/-/tape-4.13.2.tgz" + integrity sha512-V1ez/RtYRGN9cNYApw5xf27DpMkTB0033X6a2i3KUmKhSojBfbWN0i3EgZxboUG96WJLHLdOyZ01aiZwVW5aSA== dependencies: "@types/node" "*" "@types/triple-beam@^1.3.2": - "integrity" "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" - "resolved" "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz" - "version" "1.3.2" + version "1.3.2" + resolved "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz" + integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== "@types/yargs-parser@*": - "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - "version" "21.0.0" + version "21.0.0" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^15.0.0": - "integrity" "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==" - "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz" - "version" "15.0.15" + version "15.0.15" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz" + integrity sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg== dependencies: "@types/yargs-parser" "*" "@wry/context@^0.6.0": - "integrity" "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==" - "resolved" "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz" - "version" "0.6.1" + version "0.6.1" + resolved "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz" + integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== dependencies: - "tslib" "^2.3.0" + tslib "^2.3.0" "@wry/equality@^0.5.0": - "integrity" "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==" - "resolved" "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz" - "version" "0.5.3" + version "0.5.3" + resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz" + integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== dependencies: - "tslib" "^2.3.0" + tslib "^2.3.0" "@wry/trie@^0.3.0": - "integrity" "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==" - "resolved" "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz" - "version" "0.3.2" - dependencies: - "tslib" "^2.3.0" - -"accepts@~1.3.8": - "integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" - "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" - "version" "1.3.8" - dependencies: - "mime-types" "~2.1.34" - "negotiator" "0.6.3" - -"acorn-walk@^8.1.1": - "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - "version" "8.2.0" - -"acorn@^8.4.1": - "integrity" "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" - "version" "8.8.0" - -"ansi-regex@^5.0.0": - "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - "version" "5.0.1" - -"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "color-convert" "^2.0.1" - -"arg@^4.1.0": - "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - "version" "4.1.3" - -"array-flatten@1.1.1": - "integrity" "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - "version" "1.1.1" - -"array.prototype.every@^1.1.3": - "integrity" "sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA==" - "resolved" "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.3.tgz" - "version" "1.1.3" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - "es-abstract" "^1.19.0" - "is-string" "^1.0.7" - -"async@^3.2.3": - "integrity" "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - "resolved" "https://registry.npmjs.org/async/-/async-3.2.4.tgz" - "version" "3.2.4" - -"available-typed-arrays@^1.0.5": - "integrity" "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" - "resolved" "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - "version" "1.0.5" - -"b4a@^1.0.1": - "integrity" "sha512-fsTxXxj1081Yq5MOQ06gZ5+e2QcSyP2U6NofdOWyq+lrNI4IjkZ+fLVmoQ6uUCiNg1NWePMMVq93vOTdbJmErw==" - "resolved" "https://registry.npmjs.org/b4a/-/b4a-1.6.0.tgz" - "version" "1.6.0" - -"balanced-match@^1.0.0": - "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - "version" "1.0.2" - -"blake2b-wasm@^2.4.0": - "integrity" "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==" - "resolved" "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz" - "version" "2.4.0" - dependencies: - "b4a" "^1.0.1" - "nanoassert" "^2.0.0" - -"blake2b@^2.1.3": - "integrity" "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==" - "resolved" "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz" - "version" "2.1.4" - dependencies: - "blake2b-wasm" "^2.4.0" - "nanoassert" "^2.0.0" - -"body-parser@1.20.0": - "integrity" "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==" - "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz" - "version" "1.20.0" - dependencies: - "bytes" "3.1.2" - "content-type" "~1.0.4" - "debug" "2.6.9" - "depd" "2.0.0" - "destroy" "1.2.0" - "http-errors" "2.0.0" - "iconv-lite" "0.4.24" - "on-finished" "2.4.1" - "qs" "6.10.3" - "raw-body" "2.5.1" - "type-is" "~1.6.18" - "unpipe" "1.0.0" - -"brace-expansion@^1.1.7": - "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - "version" "1.1.11" - dependencies: - "balanced-match" "^1.0.0" - "concat-map" "0.0.1" - -"bytes@3.1.2": - "integrity" "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" - "version" "3.1.2" - -"call-bind@^1.0.0", "call-bind@^1.0.2": - "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" - "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "function-bind" "^1.1.1" - "get-intrinsic" "^1.0.2" - -"chalk@^4.0.0": - "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"class-validator@^0.13.1", "class-validator@>=0.12.0": - "integrity" "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==" - "resolved" "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz" - "version" "0.13.2" - dependencies: - "libphonenumber-js" "^1.9.43" - "validator" "^13.7.0" - -"color-convert@^1.9.3": - "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - "version" "1.9.3" - dependencies: - "color-name" "1.1.3" - -"color-convert@^2.0.1": - "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "color-name" "~1.1.4" - -"color-name@^1.0.0", "color-name@~1.1.4": - "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - "version" "1.1.4" - -"color-name@1.1.3": - "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"color-string@^1.6.0": - "integrity" "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==" - "resolved" "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" - "version" "1.9.1" - dependencies: - "color-name" "^1.0.0" - "simple-swizzle" "^0.2.2" - -"color@^3.1.3": - "integrity" "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==" - "resolved" "https://registry.npmjs.org/color/-/color-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "color-convert" "^1.9.3" - "color-string" "^1.6.0" - -"colorspace@1.1.x": - "integrity" "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==" - "resolved" "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz" - "version" "1.1.4" - dependencies: - "color" "^3.1.3" - "text-hex" "1.0.x" - -"concat-map@0.0.1": - "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - "version" "0.0.1" - -"content-disposition@0.5.4": - "integrity" "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" - "resolved" "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - "version" "0.5.4" - dependencies: - "safe-buffer" "5.2.1" - -"content-type@~1.0.4": - "integrity" "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - "resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - "version" "1.0.4" - -"cookie-signature@1.0.6": - "integrity" "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - "version" "1.0.6" - -"cookie@0.5.0": - "integrity" "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - "version" "0.5.0" - -"create-require@^1.1.0": - "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - "version" "1.1.1" - -"debug@2.6.9": - "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" - "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - "version" "2.6.9" - dependencies: - "ms" "2.0.0" - -"deep-equal@^2.0.5": - "integrity" "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==" - "resolved" "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz" - "version" "2.0.5" - dependencies: - "call-bind" "^1.0.0" - "es-get-iterator" "^1.1.1" - "get-intrinsic" "^1.0.1" - "is-arguments" "^1.0.4" - "is-date-object" "^1.0.2" - "is-regex" "^1.1.1" - "isarray" "^2.0.5" - "object-is" "^1.1.4" - "object-keys" "^1.1.1" - "object.assign" "^4.1.2" - "regexp.prototype.flags" "^1.3.0" - "side-channel" "^1.0.3" - "which-boxed-primitive" "^1.0.1" - "which-collection" "^1.0.1" - "which-typed-array" "^1.1.2" - -"define-properties@^1.1.3", "define-properties@^1.1.4": - "integrity" "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==" - "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" - "version" "1.1.4" - dependencies: - "has-property-descriptors" "^1.0.0" - "object-keys" "^1.1.1" - -"defined@^1.0.0": - "integrity" "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" - "resolved" "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" - "version" "1.0.0" - -"depd@2.0.0": - "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - "version" "2.0.0" - -"destroy@1.2.0": - "integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" - "version" "1.2.0" - -"diff-sequences@^26.6.2": - "integrity" "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" - "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz" - "version" "26.6.2" - -"diff@^4.0.1": - "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - "version" "4.0.2" - -"divide-bigint@^1.0.4": - "integrity" "sha512-4BuHUgA1+iICOm6JZlourP3Zo/EQHh42/cSHP2hhoVGmgp6Pd1eJ8wt9c8v4gGfy8vBUFhQoO+BrZ90vuaugyg==" - "resolved" "https://registry.npmjs.org/divide-bigint/-/divide-bigint-1.0.4.tgz" - "version" "1.0.4" - -"dotignore@^0.1.2": - "integrity" "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==" - "resolved" "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz" - "version" "0.1.2" - dependencies: - "minimatch" "^3.0.4" - -"ee-first@1.1.1": - "integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - "version" "1.1.1" - -"emittery@^1.0.1": - "integrity" "sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==" - "resolved" "https://registry.npmjs.org/emittery/-/emittery-1.0.1.tgz" - "version" "1.0.1" - -"enabled@2.0.x": - "integrity" "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - "resolved" "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz" - "version" "2.0.0" - -"encodeurl@~1.0.2": - "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - "version" "1.0.2" - -"es-abstract@^1.19.0", "es-abstract@^1.19.5", "es-abstract@^1.20.0": - "integrity" "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==" - "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz" - "version" "1.20.1" - dependencies: - "call-bind" "^1.0.2" - "es-to-primitive" "^1.2.1" - "function-bind" "^1.1.1" - "function.prototype.name" "^1.1.5" - "get-intrinsic" "^1.1.1" - "get-symbol-description" "^1.0.0" - "has" "^1.0.3" - "has-property-descriptors" "^1.0.0" - "has-symbols" "^1.0.3" - "internal-slot" "^1.0.3" - "is-callable" "^1.2.4" - "is-negative-zero" "^2.0.2" - "is-regex" "^1.1.4" - "is-shared-array-buffer" "^1.0.2" - "is-string" "^1.0.7" - "is-weakref" "^1.0.2" - "object-inspect" "^1.12.0" - "object-keys" "^1.1.1" - "object.assign" "^4.1.2" - "regexp.prototype.flags" "^1.4.3" - "string.prototype.trimend" "^1.0.5" - "string.prototype.trimstart" "^1.0.5" - "unbox-primitive" "^1.0.2" - -"es-get-iterator@^1.1.1": - "integrity" "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==" - "resolved" "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.0" - "has-symbols" "^1.0.1" - "is-arguments" "^1.1.0" - "is-map" "^2.0.2" - "is-set" "^2.0.2" - "is-string" "^1.0.5" - "isarray" "^2.0.5" - -"es-to-primitive@^1.2.1": - "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" - "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - "version" "1.2.1" - dependencies: - "is-callable" "^1.1.4" - "is-date-object" "^1.0.1" - "is-symbol" "^1.0.2" - -"escape-html@~1.0.3": - "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - "version" "1.0.3" - -"etag@~1.8.1": - "integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - "version" "1.8.1" - -"express@^4.18.1": - "integrity" "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==" - "resolved" "https://registry.npmjs.org/express/-/express-4.18.1.tgz" - "version" "4.18.1" - dependencies: - "accepts" "~1.3.8" - "array-flatten" "1.1.1" - "body-parser" "1.20.0" - "content-disposition" "0.5.4" - "content-type" "~1.0.4" - "cookie" "0.5.0" - "cookie-signature" "1.0.6" - "debug" "2.6.9" - "depd" "2.0.0" - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "etag" "~1.8.1" - "finalhandler" "1.2.0" - "fresh" "0.5.2" - "http-errors" "2.0.0" - "merge-descriptors" "1.0.1" - "methods" "~1.1.2" - "on-finished" "2.4.1" - "parseurl" "~1.3.3" - "path-to-regexp" "0.1.7" - "proxy-addr" "~2.0.7" - "qs" "6.10.3" - "range-parser" "~1.2.1" - "safe-buffer" "5.2.1" - "send" "0.18.0" - "serve-static" "1.15.0" - "setprototypeof" "1.2.0" - "statuses" "2.0.1" - "type-is" "~1.6.18" - "utils-merge" "1.0.1" - "vary" "~1.1.2" - -"faker@5.5.3": - "integrity" "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==" - "resolved" "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz" - "version" "5.5.3" - -"fecha@^4.2.0": - "integrity" "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - "resolved" "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz" - "version" "4.2.3" - -"finalhandler@1.2.0": - "integrity" "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==" - "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - "version" "1.2.0" - dependencies: - "debug" "2.6.9" - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "on-finished" "2.4.1" - "parseurl" "~1.3.3" - "statuses" "2.0.1" - "unpipe" "~1.0.0" - -"fn.name@1.x.x": - "integrity" "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - "resolved" "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz" - "version" "1.1.0" - -"for-each@^0.3.3": - "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" - "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - "version" "0.3.3" - dependencies: - "is-callable" "^1.1.3" - -"forwarded@0.2.0": - "integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - "version" "0.2.0" - -"fresh@0.5.2": - "integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - "version" "0.5.2" - -"fs.realpath@^1.0.0": - "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - "version" "1.0.0" - -"function-bind@^1.1.1": - "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - "version" "1.1.1" - -"function.prototype.name@^1.1.5": - "integrity" "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==" - "resolved" "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" - "version" "1.1.5" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - "es-abstract" "^1.19.0" - "functions-have-names" "^1.2.2" - -"functions-have-names@^1.2.2": - "integrity" "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" - "version" "1.2.3" - -"get-intrinsic@^1.0.1", "get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1": - "integrity" "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==" - "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "function-bind" "^1.1.1" - "has" "^1.0.3" - "has-symbols" "^1.0.3" - -"get-package-type@^0.1.0": - "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - "resolved" "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - "version" "0.1.0" - -"get-port@^6.1.2": - "integrity" "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==" - "resolved" "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz" - "version" "6.1.2" - -"get-symbol-description@^1.0.0": - "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" - "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.1" - -"glob@^7.1.6", "glob@^7.2.0": - "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - "version" "7.2.3" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.1.1" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"graphql-query-complexity@^0.7.0": - "integrity" "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==" - "resolved" "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz" - "version" "0.7.2" - dependencies: - "lodash.get" "^4.4.2" - -"graphql-subscriptions@^1.1.0": - "integrity" "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==" - "resolved" "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz" - "version" "1.2.1" - dependencies: - "iterall" "^1.3.0" - -"graphql-tag@^2.12.6": - "integrity" "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==" - "resolved" "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz" - "version" "2.12.6" - dependencies: - "tslib" "^2.1.0" - -"graphql@^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^15.3.0", "graphql@^15.7.2": - "integrity" "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" - "resolved" "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" - "version" "15.8.0" - -"has-bigints@^1.0.1", "has-bigints@^1.0.2": - "integrity" "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" - "version" "1.0.2" - -"has-dynamic-import@^2.0.1": - "integrity" "sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ==" - "resolved" "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.1" - -"has-flag@^4.0.0": - "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - "version" "4.0.0" - -"has-property-descriptors@^1.0.0": - "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" - "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "get-intrinsic" "^1.1.1" - -"has-symbols@^1.0.1", "has-symbols@^1.0.2", "has-symbols@^1.0.3": - "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - "version" "1.0.3" - -"has-tostringtag@^1.0.0": - "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" - "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "has-symbols" "^1.0.2" - -"has@^1.0.3": - "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" - "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "function-bind" "^1.1.1" - -"hoist-non-react-statics@^3.3.2": - "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==" - "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" - "version" "3.3.2" - dependencies: - "react-is" "^16.7.0" - -"http-errors@2.0.0": - "integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==" - "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "depd" "2.0.0" - "inherits" "2.0.4" - "setprototypeof" "1.2.0" - "statuses" "2.0.1" - "toidentifier" "1.0.1" - -"iconv-lite@0.4.24": - "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" - "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - "version" "0.4.24" - dependencies: - "safer-buffer" ">= 2.1.2 < 3" - -"inflight@^1.0.4": - "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" - "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - "version" "1.0.6" + version "0.3.2" + resolved "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz" + integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== + dependencies: + tslib "^2.3.0" + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + +ansi-regex@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array.prototype.every@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.3.tgz" + integrity sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + is-string "^1.0.7" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +b4a@^1.0.1: + version "1.6.0" + resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.0.tgz" + integrity sha512-fsTxXxj1081Yq5MOQ06gZ5+e2QcSyP2U6NofdOWyq+lrNI4IjkZ+fLVmoQ6uUCiNg1NWePMMVq93vOTdbJmErw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +blake2b-wasm@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz" + integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== + dependencies: + b4a "^1.0.1" + nanoassert "^2.0.0" + +blake2b@^2.1.3: + version "2.1.4" + resolved "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz" + integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== + dependencies: + blake2b-wasm "^2.4.0" + nanoassert "^2.0.0" + +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +class-validator@^0.13.1: + version "0.13.2" + resolved "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz" + integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== + dependencies: + libphonenumber-js "^1.9.43" + validator "^13.7.0" + +color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +deep-equal@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz" + integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== + dependencies: + call-bind "^1.0.0" + es-get-iterator "^1.1.1" + get-intrinsic "^1.0.1" + is-arguments "^1.0.4" + is-date-object "^1.0.2" + is-regex "^1.1.1" + isarray "^2.0.5" + object-is "^1.1.4" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.3" + which-boxed-primitive "^1.0.1" + which-collection "^1.0.1" + which-typed-array "^1.1.2" + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" + integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +divide-bigint@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/divide-bigint/-/divide-bigint-1.0.4.tgz" + integrity sha512-4BuHUgA1+iICOm6JZlourP3Zo/EQHh42/cSHP2hhoVGmgp6Pd1eJ8wt9c8v4gGfy8vBUFhQoO+BrZ90vuaugyg== + +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +emittery@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-1.0.1.tgz" + integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-get-iterator@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +express@^4.18.1: + version "4.18.1" + resolved "https://registry.npmjs.org/express/-/express-4.18.1.tgz" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.0" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.10.3" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +faker@5.5.3: + version "5.5.3" + resolved "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz" + integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob@^7.1.6, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graphql-query-complexity@^0.7.0: + version "0.7.2" + resolved "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz" + integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== + dependencies: + lodash.get "^4.4.2" + +graphql-subscriptions@^1.1.0: + version "1.2.1" + resolved "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz" + integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== + dependencies: + iterall "^1.3.0" + +graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql@^15.7.2: + version "15.8.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" + integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: - "once" "^1.3.0" - "wrappy" "1" - -"inherits@^2.0.3", "inherits@^2.0.4", "inherits@2", "inherits@2.0.4": - "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - "version" "2.0.4" - -"internal-slot@^1.0.3": - "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==" - "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "get-intrinsic" "^1.1.0" - "has" "^1.0.3" - "side-channel" "^1.0.4" - -"ipaddr.js@1.9.1": - "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - "version" "1.9.1" - -"is-arguments@^1.0.4", "is-arguments@^1.1.0": - "integrity" "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==" - "resolved" "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" - "version" "1.1.1" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.0.4, is-arguments@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" -"is-arrayish@^0.3.1": - "integrity" "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" - "version" "0.3.2" +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== -"is-bigint@^1.0.1": - "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" - "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "has-bigints" "^1.0.1" - -"is-boolean-object@^1.1.0": - "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" - "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" - -"is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.4": - "integrity" "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" - "version" "1.2.4" - -"is-core-module@^2.9.0": - "integrity" "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==" - "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" - "version" "2.9.0" - dependencies: - "has" "^1.0.3" - -"is-date-object@^1.0.1", "is-date-object@^1.0.2": - "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" - "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-map@^2.0.1", "is-map@^2.0.2": - "integrity" "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" - "resolved" "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz" - "version" "2.0.2" - -"is-negative-zero@^2.0.2": - "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - "version" "2.0.2" - -"is-number-object@^1.0.4": - "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==" - "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" - "version" "1.0.7" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-promise@^2.1.0": - "integrity" "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - "resolved" "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" - "version" "2.2.2" - -"is-regex@^1.1.1", "is-regex@^1.1.4": - "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" - "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - "version" "1.1.4" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" - -"is-set@^2.0.1", "is-set@^2.0.2": - "integrity" "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" - "resolved" "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz" - "version" "2.0.2" - -"is-shared-array-buffer@^1.0.2": - "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==" - "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "call-bind" "^1.0.2" - -"is-stream@^2.0.0": - "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - "version" "2.0.1" - -"is-string@^1.0.5", "is-string@^1.0.7": - "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" - "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - "version" "1.0.7" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-symbol@^1.0.2", "is-symbol@^1.0.3": - "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" - "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "has-symbols" "^1.0.2" - -"is-typed-array@^1.1.9": - "integrity" "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==" - "resolved" "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz" - "version" "1.1.9" - dependencies: - "available-typed-arrays" "^1.0.5" - "call-bind" "^1.0.2" - "es-abstract" "^1.20.0" - "for-each" "^0.3.3" - "has-tostringtag" "^1.0.0" - -"is-weakmap@^2.0.1": - "integrity" "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" - "resolved" "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz" - "version" "2.0.1" - -"is-weakref@^1.0.2": - "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==" - "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "call-bind" "^1.0.2" - -"is-weakset@^2.0.1": - "integrity" "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==" - "resolved" "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.1" - -"isarray@^2.0.5": - "integrity" "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" - "version" "2.0.5" - -"isomorphic-ws@^5.0.0": - "integrity" "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==" - "resolved" "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz" - "version" "5.0.0" - -"iterall@^1.3.0": - "integrity" "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - "resolved" "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz" - "version" "1.3.0" - -"jest-diff@^26.0.0": - "integrity" "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==" - "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz" - "version" "26.6.2" - dependencies: - "chalk" "^4.0.0" - "diff-sequences" "^26.6.2" - "jest-get-type" "^26.3.0" - "pretty-format" "^26.6.2" - -"jest-get-type@^26.3.0": - "integrity" "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" - "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz" - "version" "26.3.0" - -"js-base64@^3.7.3": - "integrity" "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" - "resolved" "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz" - "version" "3.7.5" +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-core-module@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.2: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.1, is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +iterall@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +js-base64@^3.7.3: + version "3.7.5" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== "js-tokens@^3.0.0 || ^4.0.0": - "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - "version" "4.0.0" - -"kuler@^2.0.0": - "integrity" "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - "resolved" "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz" - "version" "2.0.0" - -"libphonenumber-js@^1.9.43": - "integrity" "sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q==" - "resolved" "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz" - "version" "1.10.13" - -"lodash-es@^4.17.21": - "integrity" "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - "resolved" "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" - "version" "4.17.21" - -"lodash.get@^4.4.2": - "integrity" "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" - "resolved" "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" - "version" "4.4.2" - -"lodash@^4.17.19", "lodash@^4.17.21": - "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - "version" "4.17.21" - -"logform@^2.3.2", "logform@^2.4.0": - "integrity" "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==" - "resolved" "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz" - "version" "2.5.1" + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +libphonenumber-js@^1.9.43: + version "1.10.13" + resolved "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz" + integrity sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q== + +libsodium-wrappers@^0.7.11: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" + integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== + dependencies: + libsodium "^0.7.13" + +libsodium@^0.7.13: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" + integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.5.1" + resolved "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz" + integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== dependencies: "@colors/colors" "1.5.0" "@types/triple-beam" "^1.3.2" - "fecha" "^4.2.0" - "ms" "^2.1.1" - "safe-stable-stringify" "^2.3.1" - "triple-beam" "^1.3.0" - -"loose-envify@^1.4.0": - "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" - "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "js-tokens" "^3.0.0 || ^4.0.0" - -"lru-cache@^6.0.0": - "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" - "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "yallist" "^4.0.0" - -"make-error@^1.1.1": - "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - "version" "1.3.6" - -"media-typer@0.3.0": - "integrity" "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - "version" "0.3.0" - -"merge-descriptors@1.0.1": - "integrity" "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - "version" "1.0.1" - -"methods@~1.1.2": - "integrity" "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - "resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - "version" "1.1.2" - -"mime-db@1.52.0": - "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - "version" "1.52.0" - -"mime-types@~2.1.24", "mime-types@~2.1.34": - "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" - "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - "version" "2.1.35" - dependencies: - "mime-db" "1.52.0" - -"mime@1.6.0": - "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - "version" "1.6.0" - -"mimic-fn@^1.0.0": - "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" - "version" "1.2.0" - -"minimatch@^3.0.4", "minimatch@^3.1.1": - "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - "version" "3.1.2" - dependencies: - "brace-expansion" "^1.1.7" - -"minimist@^1.2.6": - "integrity" "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" - "version" "1.2.6" - -"ms@^2.1.1", "ms@2.1.3": - "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - "version" "2.1.3" - -"ms@2.0.0": - "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - "version" "2.0.0" - -"nanoassert@^2.0.0": - "integrity" "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" - "resolved" "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz" - "version" "2.0.0" - -"negotiator@0.6.3": - "integrity" "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - "version" "0.6.3" - -"object-assign@^4.1.1": - "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - "version" "4.1.1" - -"object-inspect@^1.12.0", "object-inspect@^1.9.0": - "integrity" "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" - "version" "1.12.2" - -"object-is@^1.1.4", "object-is@^1.1.5": - "integrity" "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==" - "resolved" "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" - "version" "1.1.5" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - -"object-keys@^1.1.1": - "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - "version" "1.1.1" - -"object.assign@^4.1.2": - "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" - "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "call-bind" "^1.0.0" - "define-properties" "^1.1.3" - "has-symbols" "^1.0.1" - "object-keys" "^1.1.1" - -"on-finished@2.4.1": - "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" - "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" - "version" "2.4.1" - dependencies: - "ee-first" "1.1.1" - -"once@^1.3.0": - "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" - "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "wrappy" "1" - -"one-time@^1.0.0": - "integrity" "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==" - "resolved" "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "fn.name" "1.x.x" - -"onetime@^2.0.0": - "integrity" "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==" - "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "mimic-fn" "^1.0.0" - -"optimism@^0.16.1": - "integrity" "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==" - "resolved" "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz" - "version" "0.16.1" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoassert@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz" + integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-is@^1.1.4, object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +optimism@^0.16.1: + version "0.16.1" + resolved "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz" + integrity sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg== dependencies: "@wry/context" "^0.6.0" "@wry/trie" "^0.3.0" -"parseurl@~1.3.3": - "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - "version" "1.3.3" +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -"path-is-absolute@^1.0.0": - "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - "version" "1.0.1" +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -"path-parse@^1.0.7": - "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - "version" "1.0.7" +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -"path-to-regexp@0.1.7": - "integrity" "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - "version" "0.1.7" +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== -"pretty-format@^26.0.0", "pretty-format@^26.6.2": - "integrity" "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==" - "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" - "version" "26.6.2" +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== dependencies: "@jest/types" "^26.6.2" - "ansi-regex" "^5.0.0" - "ansi-styles" "^4.0.0" - "react-is" "^17.0.1" - -"prop-types@^15.7.2": - "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" - "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" - "version" "15.8.1" - dependencies: - "loose-envify" "^1.4.0" - "object-assign" "^4.1.1" - "react-is" "^16.13.1" - -"proxy-addr@~2.0.7": - "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" - "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - "version" "2.0.7" - dependencies: - "forwarded" "0.2.0" - "ipaddr.js" "1.9.1" - -"qs@6.10.3": - "integrity" "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==" - "resolved" "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" - "version" "6.10.3" - dependencies: - "side-channel" "^1.0.4" - -"range-parser@~1.2.1": - "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - "version" "1.2.1" - -"raw-body@2.5.1": - "integrity" "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==" - "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - "version" "2.5.1" - dependencies: - "bytes" "3.1.2" - "http-errors" "2.0.0" - "iconv-lite" "0.4.24" - "unpipe" "1.0.0" - -"react-is@^16.13.1", "react-is@^16.7.0": - "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - "version" "16.13.1" - -"react-is@^17.0.1": - "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - "version" "17.0.2" - -"readable-stream@^3.4.0", "readable-stream@^3.6.0": - "integrity" "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz" - "version" "3.6.1" - dependencies: - "inherits" "^2.0.3" - "string_decoder" "^1.1.1" - "util-deprecate" "^1.0.1" - -"reflect-metadata@^0.1.13": - "integrity" "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - "resolved" "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" - "version" "0.1.13" - -"regexp.prototype.flags@^1.3.0", "regexp.prototype.flags@^1.4.3": - "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==" - "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" - "version" "1.4.3" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - "functions-have-names" "^1.2.2" - -"resolve@^2.0.0-next.3": - "integrity" "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==" - "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz" - "version" "2.0.0-next.4" - dependencies: - "is-core-module" "^2.9.0" - "path-parse" "^1.0.7" - "supports-preserve-symlinks-flag" "^1.0.0" - -"resumer@^0.0.0": - "integrity" "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==" - "resolved" "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz" - "version" "0.0.0" - dependencies: - "through" "~2.3.4" - -"safe-buffer@~5.2.0", "safe-buffer@5.2.1": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" - -"safe-stable-stringify@^2.3.1": - "integrity" "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==" - "resolved" "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz" - "version" "2.4.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +qs@6.10.3: + version "6.10.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.1" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz" + integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +resolve@^2.0.0-next.3: + version "2.0.0-next.4" + resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resumer@^0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz" + integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== + dependencies: + through "~2.3.4" + +safe-buffer@5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-stable-stringify@^2.3.1: + version "2.4.2" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz" + integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== "safer-buffer@>= 2.1.2 < 3": - "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - "version" "2.1.2" - -"semver@^7.3.2": - "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" - "version" "7.3.7" - dependencies: - "lru-cache" "^6.0.0" - -"send@0.18.0": - "integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" - "resolved" "https://registry.npmjs.org/send/-/send-0.18.0.tgz" - "version" "0.18.0" - dependencies: - "debug" "2.6.9" - "depd" "2.0.0" - "destroy" "1.2.0" - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "etag" "~1.8.1" - "fresh" "0.5.2" - "http-errors" "2.0.0" - "mime" "1.6.0" - "ms" "2.1.3" - "on-finished" "2.4.1" - "range-parser" "~1.2.1" - "statuses" "2.0.1" - -"serve-static@1.15.0": - "integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==" - "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - "version" "1.15.0" - dependencies: - "encodeurl" "~1.0.2" - "escape-html" "~1.0.3" - "parseurl" "~1.3.3" - "send" "0.18.0" - -"setprototypeof@1.2.0": - "integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - "version" "1.2.0" - -"side-channel@^1.0.3", "side-channel@^1.0.4": - "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" - "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "call-bind" "^1.0.0" - "get-intrinsic" "^1.0.2" - "object-inspect" "^1.9.0" - -"simple-swizzle@^0.2.2": - "integrity" "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==" - "resolved" "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" - "version" "0.2.2" - dependencies: - "is-arrayish" "^0.3.1" - -"stack-trace@0.0.x": - "integrity" "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" - "resolved" "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" - "version" "0.0.10" - -"statuses@2.0.1": - "integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - "resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - "version" "2.0.1" - -"string_decoder@^1.1.1": - "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" - "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - "version" "1.3.0" - dependencies: - "safe-buffer" "~5.2.0" - -"string.prototype.trim@^1.2.5": - "integrity" "sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ==" - "resolved" "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz" - "version" "1.2.6" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.4" - "es-abstract" "^1.19.5" - -"string.prototype.trimend@^1.0.5": - "integrity" "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==" - "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.4" - "es-abstract" "^1.19.5" - -"string.prototype.trimstart@^1.0.5": - "integrity" "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==" - "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.4" - "es-abstract" "^1.19.5" - -"supports-color@^7.1.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "has-flag" "^4.0.0" - -"supports-preserve-symlinks-flag@^1.0.0": - "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - "version" "1.0.0" - -"symbol-observable@^4.0.0": - "integrity" "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" - "resolved" "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz" - "version" "4.0.0" - -"tape-promise@^4.0.0": - "integrity" "sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw==" - "resolved" "https://registry.npmjs.org/tape-promise/-/tape-promise-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "is-promise" "^2.1.0" - "onetime" "^2.0.0" - -"tape@^5.5.3": - "integrity" "sha512-hPBJZBL9S7bH9vECg/KSM24slGYV589jJr4dmtiJrLD71AL66+8o4b9HdZazXZyvnilqA7eE8z5/flKiy0KsBg==" - "resolved" "https://registry.npmjs.org/tape/-/tape-5.5.3.tgz" - "version" "5.5.3" - dependencies: - "array.prototype.every" "^1.1.3" - "call-bind" "^1.0.2" - "deep-equal" "^2.0.5" - "defined" "^1.0.0" - "dotignore" "^0.1.2" - "for-each" "^0.3.3" - "get-package-type" "^0.1.0" - "glob" "^7.2.0" - "has" "^1.0.3" - "has-dynamic-import" "^2.0.1" - "inherits" "^2.0.4" - "is-regex" "^1.1.4" - "minimist" "^1.2.6" - "object-inspect" "^1.12.0" - "object-is" "^1.1.5" - "object-keys" "^1.1.1" - "object.assign" "^4.1.2" - "resolve" "^2.0.0-next.3" - "resumer" "^0.0.0" - "string.prototype.trim" "^1.2.5" - "through" "^2.3.8" - -"text-hex@1.0.x": - "integrity" "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - "resolved" "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz" - "version" "1.0.0" - -"through@^2.3.8", "through@~2.3.4": - "integrity" "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - "resolved" "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - "version" "2.3.8" - -"toidentifier@1.0.1": - "integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - "version" "1.0.1" - -"triple-beam@^1.3.0": - "integrity" "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - "resolved" "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz" - "version" "1.3.0" - -"ts-invariant@^0.10.3": - "integrity" "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==" - "resolved" "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz" - "version" "0.10.3" - dependencies: - "tslib" "^2.1.0" - -"ts-node@^10.8.0": - "integrity" "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==" - "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" - "version" "10.9.1" + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver@^7.3.2: + version "7.3.7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +side-channel@^1.0.3, side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +string.prototype.trim@^1.2.5: + version "1.2.6" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz" + integrity sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + +tape-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/tape-promise/-/tape-promise-4.0.0.tgz" + integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== + dependencies: + is-promise "^2.1.0" + onetime "^2.0.0" + +tape@^5.5.3: + version "5.5.3" + resolved "https://registry.npmjs.org/tape/-/tape-5.5.3.tgz" + integrity sha512-hPBJZBL9S7bH9vECg/KSM24slGYV589jJr4dmtiJrLD71AL66+8o4b9HdZazXZyvnilqA7eE8z5/flKiy0KsBg== + dependencies: + array.prototype.every "^1.1.3" + call-bind "^1.0.2" + deep-equal "^2.0.5" + defined "^1.0.0" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.0" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.6" + object-inspect "^1.12.0" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.2" + resolve "^2.0.0-next.3" + resumer "^0.0.0" + string.prototype.trim "^1.2.5" + through "^2.3.8" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +through@^2.3.8, through@~2.3.4: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== + dependencies: + tslib "^2.1.0" + +ts-node@^10.8.0: + version "10.9.1" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" "@tsconfig/node12" "^1.0.7" "@tsconfig/node14" "^1.0.0" "@tsconfig/node16" "^1.0.2" - "acorn" "^8.4.1" - "acorn-walk" "^8.1.1" - "arg" "^4.1.0" - "create-require" "^1.1.0" - "diff" "^4.0.1" - "make-error" "^1.1.1" - "v8-compile-cache-lib" "^3.0.1" - "yn" "3.1.1" - -"tslib@^2.0.1", "tslib@^2.1.0", "tslib@^2.3.0": - "integrity" "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" - "version" "2.4.0" - -"tweetnacl@^1.0.3": - "integrity" "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" - "version" "1.0.3" - -"type-graphql@^1.1.1": - "integrity" "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==" - "resolved" "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz" - "version" "1.1.1" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.0: + version "2.4.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +type-graphql@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz" + integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== dependencies: "@types/glob" "^7.1.3" - "@types/node" "*" + "@types/node" "^14.11.2" "@types/semver" "^7.3.3" - "glob" "^7.1.6" - "graphql-query-complexity" "^0.7.0" - "graphql-subscriptions" "^1.1.0" - "semver" "^7.3.2" - "tslib" "^2.0.1" - -"type-is@~1.6.18": - "integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" - "resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - "version" "1.6.18" - dependencies: - "media-typer" "0.3.0" - "mime-types" "~2.1.24" - -"typescript@^4.2.4", "typescript@>=2.7": - "integrity" "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" - "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" - "version" "4.7.4" - -"unbox-primitive@^1.0.2": - "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" - "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "call-bind" "^1.0.2" - "has-bigints" "^1.0.2" - "has-symbols" "^1.0.3" - "which-boxed-primitive" "^1.0.2" - -"unpipe@~1.0.0", "unpipe@1.0.0": - "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - "version" "1.0.0" - -"util-deprecate@^1.0.1": - "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - "version" "1.0.2" - -"utils-merge@1.0.1": - "integrity" "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - "version" "1.0.1" - -"uuid@^8.3.2": - "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - "version" "8.3.2" - -"v8-compile-cache-lib@^3.0.1": - "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - "resolved" "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" - "version" "3.0.1" - -"validator@^13.7.0": - "integrity" "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" - "resolved" "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz" - "version" "13.7.0" - -"vary@~1.1.2": - "integrity" "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - "version" "1.1.2" - -"which-boxed-primitive@^1.0.1", "which-boxed-primitive@^1.0.2": - "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" - "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "is-bigint" "^1.0.1" - "is-boolean-object" "^1.1.0" - "is-number-object" "^1.0.4" - "is-string" "^1.0.5" - "is-symbol" "^1.0.3" - -"which-collection@^1.0.1": - "integrity" "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==" - "resolved" "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "is-map" "^2.0.1" - "is-set" "^2.0.1" - "is-weakmap" "^2.0.1" - "is-weakset" "^2.0.1" - -"which-typed-array@^1.1.2": - "integrity" "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==" - "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz" - "version" "1.1.8" - dependencies: - "available-typed-arrays" "^1.0.5" - "call-bind" "^1.0.2" - "es-abstract" "^1.20.0" - "for-each" "^0.3.3" - "has-tostringtag" "^1.0.0" - "is-typed-array" "^1.1.9" - -"winston-transport@^4.5.0": - "integrity" "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==" - "resolved" "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz" - "version" "4.5.0" - dependencies: - "logform" "^2.3.2" - "readable-stream" "^3.6.0" - "triple-beam" "^1.3.0" - -"winston@^3.8.2": - "integrity" "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==" - "resolved" "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz" - "version" "3.8.2" + glob "^7.1.6" + graphql-query-complexity "^0.7.0" + graphql-subscriptions "^1.1.0" + semver "^7.3.2" + tslib "^2.0.1" + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@^4.2.4: + version "4.7.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +validator@^13.7.0: + version "13.7.0" + resolved "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz" + integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" + +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.8.2: + version "3.8.2" + resolved "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz" + integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew== dependencies: "@colors/colors" "1.5.0" "@dabh/diagnostics" "^2.0.2" - "async" "^3.2.3" - "is-stream" "^2.0.0" - "logform" "^2.4.0" - "one-time" "^1.0.0" - "readable-stream" "^3.4.0" - "safe-stable-stringify" "^2.3.1" - "stack-trace" "0.0.x" - "triple-beam" "^1.3.0" - "winston-transport" "^4.5.0" - -"wrappy@1": - "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - "version" "1.0.2" - -"ws@*", "ws@^8.11.0": - "integrity" "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==" - "resolved" "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz" - "version" "8.12.1" - -"yallist@^4.0.0": - "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - "version" "4.0.0" - -"yn@3.1.1": - "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - "version" "3.1.1" - -"zen-observable-ts@^1.2.5": - "integrity" "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==" - "resolved" "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz" - "version" "1.2.5" - dependencies: - "zen-observable" "0.8.15" - -"zen-observable@0.8.15": - "integrity" "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - "resolved" "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz" - "version" "0.8.15" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.11.0: + version "8.12.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz" + integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew== + +ws@^8.13.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" + integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15: + version "0.8.15" + resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/tests/js/tests/triple-agent-test.ts b/tests/js/tests/triple-agent-test.ts new file mode 100644 index 000000000..77c7924af --- /dev/null +++ b/tests/js/tests/triple-agent-test.ts @@ -0,0 +1,145 @@ +import { Link, Perspective, LinkExpression, ExpressionProof, LinkQuery, PerspectiveState, NeighbourhoodProxy, PerspectiveUnsignedInput, PerspectiveProxy, PerspectiveHandle } from "@perspect3vism/ad4m"; +import fs from "fs"; +import { TestContext } from './integration.test' +import { sleep } from '../utils/utils' +import { expect } from "chai"; +import { v4 as uuidv4 } from 'uuid'; + +const DIFF_SYNC_OFFICIAL = fs.readFileSync("./scripts/perspective-diff-sync-hash").toString(); + +export default function tripleAgentTests(testContext: TestContext) { + return () => { + it("three agents can join and use a neighbourhood", async () => { + const alice = testContext.alice + const bob = testContext.bob + const jim = testContext.jim + + const aliceP1 = await alice.perspective.add("three-agents") + const socialContext = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood with Bob"})); + expect(socialContext.name).to.be.equal("Alice's neighbourhood with Bob"); + const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, socialContext.address, new Perspective()) + + let bobP1 = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); + let jimP1 = await jim.neighbourhood.joinFromUrl(neighbourhoodUrl); + + await testContext.makeAllThreeNodesKnown() + + expect(bobP1!.name).not.to.be.undefined; + expect(bobP1!.sharedUrl).to.be.equal(neighbourhoodUrl) + expect(bobP1!.neighbourhood).not.to.be.undefined;; + expect(bobP1!.neighbourhood!.linkLanguage).to.be.equal(socialContext.address); + expect(bobP1!.neighbourhood!.meta.links.length).to.be.equal(0); + + expect(jimP1!.name).not.to.be.undefined; + expect(jimP1!.sharedUrl).to.be.equal(neighbourhoodUrl) + expect(jimP1!.neighbourhood).not.to.be.undefined;; + expect(jimP1!.neighbourhood!.linkLanguage).to.be.equal(socialContext.address); + expect(jimP1!.neighbourhood!.meta.links.length).to.be.equal(0); + + await sleep(1000) + + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + + await sleep(1000) + + let bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + let tries = 1 + + while(bobLinks.length < 10 && tries < 20) { + console.log("Bob retrying getting links..."); + await sleep(1000) + bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + tries++ + } + + expect(bobLinks.length).to.be.equal(10) + + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + + let jimLinks = await jim.perspective.queryLinks(jimP1!.uuid, new LinkQuery({source: 'root'})) + let jimRetries = 1 + + while(jimLinks.length < 20 && jimRetries < 20) { + console.log("Jim retrying getting links..."); + await sleep(1000) + jimLinks = await jim.perspective.queryLinks(jimP1!.uuid, new LinkQuery({source: 'root'})) + jimRetries++ + } + + expect(jimLinks.length).to.be.equal(20) + + //Alice bob and jim all collectively add 10 links and then check can be received by all agents + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await jim.perspective.addLink(jimP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await jim.perspective.addLink(jimP1.uuid, {source: 'root', target: 'test://test'}) + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}) + await bob.perspective.addLink(bobP1.uuid, {source: 'root', target: 'test://test'}) + await jim.perspective.addLink(jimP1.uuid, {source: 'root', target: 'test://test'}) + await jim.perspective.addLink(jimP1.uuid, {source: 'root', target: 'test://test'}) + + let aliceLinks = await alice.perspective.queryLinks(aliceP1!.uuid, new LinkQuery({source: 'root'})) + tries = 1 + + while(aliceLinks.length < 30 && tries < 20) { + console.log("Alice retrying getting links..."); + await sleep(1000) + aliceLinks = await alice.perspective.queryLinks(aliceP1!.uuid, new LinkQuery({source: 'root'})) + tries++ + } + + expect(aliceLinks.length).to.be.equal(30) + + + + + bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + tries = 1 + + while(bobLinks.length < 30 && tries < 20) { + console.log("Bob retrying getting links..."); + await sleep(1000) + bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + tries++ + } + + expect(bobLinks.length).to.be.equal(30) + + + + + jimLinks = await jim.perspective.queryLinks(jimP1!.uuid, new LinkQuery({source: 'root'})) + tries = 1 + + while(jimLinks.length < 30 && tries < 20) { + console.log("Jim retrying getting links..."); + await sleep(1000) + jimLinks = await jim.perspective.queryLinks(jimP1!.uuid, new LinkQuery({source: 'root'})) + tries++ + } + + expect(jimLinks.length).to.be.equal(30) + + }) + } +} \ No newline at end of file From 3e6056a1ed491e1c7e2593f4ed5aca7d51698e6f Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Mon, 18 Sep 2023 17:37:15 +0100 Subject: [PATCH 697/722] dont init a new perspective if we cannot get from instances --- executor/src/core/PerspectivesController.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index bb1866a3c..7663be8ad 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -126,12 +126,7 @@ export default class PerspectivesController { if(foundInstance) { return foundInstance } else { - const foundID = this.#perspectiveHandles.get(uuid) - if(foundID) { - return new Perspective(foundID, this.#context, foundID.neighbourhood as Neighbourhood, false, foundID.state) - } else { - throw Error(`Perspective not found: ${uuid}`) - } + throw Error(`Perspective not found: ${uuid}`) } } From b1509ea8daece6277b73f0de74ef994ac432ba5c Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 19 Sep 2023 13:28:28 +0200 Subject: [PATCH 698/722] Replace `rust_executor::run` with `run_with_tokio` in CLI main. --- Cargo.lock | 1 + cli/Cargo.toml | 1 + cli/src/main.rs | 51 ++++++++++++++++++++++++++++++++----------------- 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f19876182..031568959 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,6 +21,7 @@ dependencies = [ "chrono", "clap 4.4.1", "colour", + "ctrlc", "dirs 4.0.0", "futures", "rand 0.8.5", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index b61703815..d02910338 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -29,3 +29,4 @@ regex = "1" serde = { version = "1.0", features = ["derive"] } colour = "0.7.0" syntect = "5.0" +ctrlc = "3.4.0" diff --git a/cli/src/main.rs b/cli/src/main.rs index 9e1c6a942..7602b85aa 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -221,24 +221,39 @@ async fn main() -> Result<()> { admin_credential } = args.domain { - rust_executor::run(Ad4mConfig { - app_data_path, - network_bootstrap_seed, - language_language_only, - run_dapp_server, - gql_port, - hc_admin_port, - hc_app_port, - hc_use_bootstrap, - hc_use_local_proxy, - hc_use_mdns, - hc_use_proxy, - hc_proxy_url, - hc_bootstrap_url, - connect_holochain, - admin_credential - }) - .await; + tokio::spawn(async move { + rust_executor::run_with_tokio(Ad4mConfig { + app_data_path, + network_bootstrap_seed, + language_language_only, + run_dapp_server, + gql_port, + hc_admin_port, + hc_app_port, + hc_use_bootstrap, + hc_use_local_proxy, + hc_use_mdns, + hc_use_proxy, + hc_proxy_url, + hc_bootstrap_url, + connect_holochain, + admin_credential + }).await; + }).await; + + let _ = ctrlc::set_handler(move || { + println!("Received CTRL-C! Exiting..."); + exit(0); + }); + + use tokio::time::sleep; + use std::time::Duration; + use std::process::exit; + use ctrlc; + + loop { + sleep(Duration::from_secs(2)).await; + } return Ok(()); }; From a00937aad43e0d2de008f8b804cc35d38703695b Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 19 Sep 2023 14:11:17 +0200 Subject: [PATCH 699/722] Get rid of some warnings --- cli/src/main.rs | 3 +-- rust-executor/src/js_core/mod.rs | 22 ---------------------- 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index 7602b85aa..3f18a9480 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -221,7 +221,7 @@ async fn main() -> Result<()> { admin_credential } = args.domain { - tokio::spawn(async move { + let _ = tokio::spawn(async move { rust_executor::run_with_tokio(Ad4mConfig { app_data_path, network_bootstrap_seed, @@ -254,7 +254,6 @@ async fn main() -> Result<()> { loop { sleep(Duration::from_secs(2)).await; } - return Ok(()); }; if let Domain::RunLocalHcServices {} = args.domain { diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 931d8bd50..4f19089b5 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -107,7 +107,6 @@ struct JsCoreRequest { #[derive(Debug, Clone)] struct JsCoreResponse { result: Result, - id: String, } #[derive(Clone)] @@ -199,7 +198,6 @@ impl JsCore { if let Some(request) = maybe_request.recv().await { //info!("Got request: {:?}", request); let script = request.script.clone(); - let id = request.id.clone(); let js_core_cloned = js_core.clone(); let response_tx = request.response_tx; @@ -217,7 +215,6 @@ impl JsCore { response_tx .send(JsCoreResponse { result: Ok(res), - id: id, }) .expect("couldn't send on channel"); } @@ -226,7 +223,6 @@ impl JsCore { response_tx .send(JsCoreResponse { result: Err(err.to_string()), - id: id, }) .expect("couldn't send on channel"); } @@ -270,7 +266,6 @@ impl JsCore { tx_inside .send(JsCoreResponse { result: Ok(String::from("initialized")), - id: String::from("initialized"), }) .expect("couldn't send on channel"); } @@ -279,7 +274,6 @@ impl JsCore { tx_inside .send(JsCoreResponse { result: Err(format!("Error executing coreInit(): {:?}", err)), - id: String::from("initialized"), }) .expect("couldn't send on channel"); } @@ -293,7 +287,6 @@ impl JsCore { //info!("Module load loop running"); if let Some(request) = rx_inside_loader.recv().await { let script = request.script; - let id = request.id; let js_core_cloned = js_core.clone(); let ts_response = request.response_tx; @@ -304,7 +297,6 @@ impl JsCore { ts_response .send(JsCoreResponse { result: Ok(String::from("")), - id: id, }) .expect("couldn't send on channel"); } @@ -313,7 +305,6 @@ impl JsCore { ts_response .send(JsCoreResponse { result: Err(err.to_string()), - id, }) .expect("couldn't send on channel"); } @@ -324,8 +315,6 @@ impl JsCore { } }; - let global_req_id = None; - let local_set = tokio::task::LocalSet::new(); let holochain_local_set = tokio::task::LocalSet::new(); let module_load_local_set = tokio::task::LocalSet::new(); @@ -379,18 +368,7 @@ impl JsCore { match event_loop_result { Ok(_) => info!("AD4M event loop finished"), Err(err) => { - let tx_cloned = tx_inside.clone(); error!("AD4M event loop closed with error: {}", err); - if global_req_id.is_some() { - //TODO: this error should also cause the graphql server to error since right now we are just killing - //the event loop completely and this should be reflected in the main thread - tx_cloned - .send(JsCoreResponse { - result: Err(err.to_string()), - id: global_req_id.unwrap(), - }) - .expect("couldn't send on channel"); - } break; } } From d5b9dc6059956889c59c3389683fa39dd29ec070 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Tue, 19 Sep 2023 15:02:30 +0100 Subject: [PATCH 700/722] have config .prepare() use correct defaults for production network --- rust-executor/src/config.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/rust-executor/src/config.rs b/rust-executor/src/config.rs index 351626b3c..0fd7a65dd 100644 --- a/rust-executor/src/config.rs +++ b/rust-executor/src/config.rs @@ -62,6 +62,15 @@ impl Ad4mConfig { if self.hc_bootstrap_url.is_none() { self.hc_bootstrap_url = Some("https://bootstrap.holo.host".to_string()); } + if self.hc_use_bootstrap.is_none() { + self.hc_use_bootstrap = Some(true); + } + if self.hc_use_mdns.is_none() { + self.hc_use_mdns = Some(false); + } + if self.hc_use_proxy.is_none() { + self.hc_use_proxy = Some(true) + } } pub fn get_json(&self) -> String { From 987b059e0de720bbc9ac67f3c111be69bb369a98 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Tue, 19 Sep 2023 16:41:21 +0200 Subject: [PATCH 701/722] Replace tracing wiht log in rust-executor --- Cargo.lock | 1 - rust-executor/Cargo.toml | 1 - rust-executor/src/dapp_server.rs | 2 +- rust-executor/src/graphql/mutation_resolvers.rs | 2 +- rust-executor/src/holochain_service/mod.rs | 2 +- rust-executor/src/init.rs | 2 +- rust-executor/src/js_core/mod.rs | 2 +- rust-executor/src/js_core/string_module_loader.rs | 2 +- rust-executor/src/js_core/utils_extension.rs | 2 +- rust-executor/src/js_core/wallet_extension.rs | 2 +- rust-executor/src/lib.rs | 4 ++-- rust-executor/src/main.rs | 2 +- rust-executor/src/pubsub.rs | 2 +- 13 files changed, 12 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 031568959..ca71221f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10183,7 +10183,6 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tracing", "url 2.4.1", "uuid 1.4.1", "warp", diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index c49455bb6..ad1211d90 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -74,7 +74,6 @@ holochain_cli_run_local_services = { version = "0.2.2" } scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-compatible", features = ["multi_thread"] } # scryer-prolog = { version = "0.9.1", git = "https://github.com/coasys/scryer-prolog", rev = "ce1c8aac4ccc0a49ce4816c0870634a703b1fc1f" } # scryer-prolog = { path = "../../scryer-prolog", features = ["multi_thread"] } -tracing = "0.1" [dev-dependencies] maplit = "1.0.2" diff --git a/rust-executor/src/dapp_server.rs b/rust-executor/src/dapp_server.rs index e51c971b3..723f7a48c 100644 --- a/rust-executor/src/dapp_server.rs +++ b/rust-executor/src/dapp_server.rs @@ -8,7 +8,7 @@ use hyper::service::service_fn; use hyper::{Request, Response}; use hyper_util::rt::TokioIo; use tokio::net::TcpListener; -use tracing::info; +use log::info; use rust_embed::*; diff --git a/rust-executor/src/graphql/mutation_resolvers.rs b/rust-executor/src/graphql/mutation_resolvers.rs index 3822509f6..a5c05d98e 100644 --- a/rust-executor/src/graphql/mutation_resolvers.rs +++ b/rust-executor/src/graphql/mutation_resolvers.rs @@ -1,6 +1,6 @@ #![allow(non_snake_case)] use juniper::{graphql_object, graphql_value, FieldResult}; -use tracing::debug; +use log::debug; use super::graphql_types::*; use super::utils::get_capabilies; diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index c33c79cb7..f9f905d25 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -18,7 +18,7 @@ use holochain::prelude::{ }; use holochain::test_utils::itertools::Either; use holochain_types::dna::ValidatedDnaManifest; -use tracing::info; +use log::info; use rand::Rng; use serde::{Deserialize, Serialize}; use tokio::sync::{mpsc, oneshot, Mutex}; diff --git a/rust-executor/src/init.rs b/rust-executor/src/init.rs index 0ac47d0fa..af2730c17 100644 --- a/rust-executor/src/init.rs +++ b/rust-executor/src/init.rs @@ -1,4 +1,4 @@ -use tracing::{info, warn}; +use log::{info, warn}; use semver::{Version, VersionReq}; use std::error::Error; use std::fs; diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index 4f19089b5..e30cc3979 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -16,7 +16,7 @@ use tokio::sync::{ mpsc::{self, UnboundedReceiver, UnboundedSender}, oneshot }; -use tracing::{error, info}; +use log::{error, info}; use options::{main_module_url, main_worker_options}; mod futures; diff --git a/rust-executor/src/js_core/string_module_loader.rs b/rust-executor/src/js_core/string_module_loader.rs index ffada099e..f132bb425 100644 --- a/rust-executor/src/js_core/string_module_loader.rs +++ b/rust-executor/src/js_core/string_module_loader.rs @@ -7,7 +7,7 @@ use deno_core::ModuleSpecifier; use deno_core::ModuleType; use deno_core::ResolutionKind; use deno_runtime::deno_core::error::AnyError; -use tracing::info; +use log::info; use url::Url; use std::collections::HashMap; use std::pin::Pin; diff --git a/rust-executor/src/js_core/utils_extension.rs b/rust-executor/src/js_core/utils_extension.rs index 2fe050065..ece2caa2a 100644 --- a/rust-executor/src/js_core/utils_extension.rs +++ b/rust-executor/src/js_core/utils_extension.rs @@ -4,7 +4,7 @@ use cid::Cid; use deno_core::{error::AnyError, include_js_files, op, Extension, Op}; use multibase::Base; use multihash::{Code, MultihashDigest}; -use tracing::{error, info, debug, warn}; +use log::{error, info, debug, warn}; use super::JS_CORE_HANDLE; diff --git a/rust-executor/src/js_core/wallet_extension.rs b/rust-executor/src/js_core/wallet_extension.rs index b88dcd59c..df69a1156 100644 --- a/rust-executor/src/js_core/wallet_extension.rs +++ b/rust-executor/src/js_core/wallet_extension.rs @@ -3,7 +3,7 @@ use std::borrow::Cow; use base64::{engine::general_purpose as base64engine, Engine as _}; use deno_core::{anyhow::anyhow, error::AnyError, include_js_files, op, Extension, Op}; use did_key::{CoreSign, PatchedKeyPair}; -use tracing::error; +use log::error; use serde::{Deserialize, Serialize}; use crate::wallet::Wallet; diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 712a298e5..900865b13 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -14,7 +14,7 @@ mod pubsub; mod dapp_server; use std::env; -use tracing::info; +use log::info; use js_core::JsCore; @@ -66,7 +66,7 @@ pub async fn run(mut config: Ad4mConfig) { /// Runs the GraphQL server and the deno core runtime pub async fn run_with_tokio(mut config: Ad4mConfig) { - env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=info,warp::server"); + env::set_var("RUST_LOG", "holochain=warn,wasmer_compiler_cranelift=warn,rust_executor=debug,warp::server"); let _ = env_logger::try_init(); config.prepare(); diff --git a/rust-executor/src/main.rs b/rust-executor/src/main.rs index b5f774854..69427065e 100644 --- a/rust-executor/src/main.rs +++ b/rust-executor/src/main.rs @@ -11,7 +11,7 @@ mod config; pub mod init; mod pubsub; -use tracing::{error, info}; +use log::{error, info}; use rust_executor::Ad4mConfig; use std::env; diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index ac251f7bd..d9d2bdf3c 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -3,7 +3,7 @@ use crate::graphql::graphql_types::GetValue; use futures::Stream; use futures::StreamExt; use juniper::{graphql_value, FieldError, FieldResult}; -use tracing::{debug, error, warn}; +use log::{debug, error, warn}; use serde::de::DeserializeOwned; use std::collections::HashMap; use std::pin::Pin; From 47fb407b5992bcd6ed657daf5ead269f84983c9e Mon Sep 17 00:00:00 2001 From: Fayeed Pawaskar Date: Wed, 20 Sep 2023 17:17:18 +0530 Subject: [PATCH 702/722] Added env_logger --- Cargo.lock | 66 +++++++++++++++------------------------- ui/src-tauri/Cargo.toml | 4 +-- ui/src-tauri/src/main.rs | 41 +++++++++++++------------ 3 files changed, 47 insertions(+), 64 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ca71221f4..685f15abd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -65,7 +65,9 @@ name = "ad4m-launcher" version = "0.6.0" dependencies = [ "ad4m-client", + "chrono", "directories 4.0.1", + "env_logger 0.9.3", "libc", "localtunnel-client", "log", @@ -84,8 +86,6 @@ dependencies = [ "tauri-build", "tauri-plugin-positioner", "tokio", - "tracing", - "tracing-subscriber 0.2.25", "uuid 0.8.2", ] @@ -3583,6 +3583,19 @@ dependencies = [ "syn 2.0.29", ] +[[package]] +name = "env_logger" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + [[package]] name = "env_logger" version = "0.10.0" @@ -5036,7 +5049,7 @@ dependencies = [ "toml 0.5.11", "tracing", "tracing-futures", - "tracing-subscriber 0.3.17", + "tracing-subscriber", "tx5-go-pion-turn", "tx5-signal-srv", "unwrap_to", @@ -5364,7 +5377,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-serde", - "tracing-subscriber 0.3.17", + "tracing-subscriber", ] [[package]] @@ -5982,7 +5995,7 @@ dependencies = [ "crossbeam-channel", "crossbeam-utils", "dashmap 5.5.2", - "env_logger", + "env_logger 0.10.0", "indexmap 2.0.0", "is-terminal", "itoa 1.0.9", @@ -6539,7 +6552,7 @@ dependencies = [ "serde_bytes", "structopt", "tokio", - "tracing-subscriber 0.3.17", + "tracing-subscriber", "webpki 0.21.4", ] @@ -6668,7 +6681,7 @@ dependencies = [ "sqlformat 0.2.1", "structopt", "sysinfo 0.28.4", - "tracing-subscriber 0.3.17", + "tracing-subscriber", ] [[package]] @@ -7178,7 +7191,7 @@ dependencies = [ "serde", "serde_json", "tracing", - "tracing-subscriber 0.3.17", + "tracing-subscriber", ] [[package]] @@ -7318,15 +7331,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" -[[package]] -name = "matchers" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" -dependencies = [ - "regex-automata 0.1.10", -] - [[package]] name = "matchers" version = "0.1.0" @@ -10151,7 +10155,7 @@ dependencies = [ "deno_runtime", "did-key", "dirs 5.0.1", - "env_logger", + "env_logger 0.10.0", "fs_extra", "futures", "hex", @@ -12914,35 +12918,13 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "ansi_term", - "chrono", - "lazy_static", - "matchers 0.0.1", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec 1.11.0", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", - "tracing-serde", -] - [[package]] name = "tracing-subscriber" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ - "matchers 0.1.0", + "matchers", "nu-ansi-term", "once_cell", "regex", @@ -13239,7 +13221,7 @@ dependencies = [ "sodoken", "tokio", "tracing", - "tracing-subscriber 0.3.17", + "tracing-subscriber", "tx5-core", "warp", ] diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 9634ab403..e03c7e21f 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -36,8 +36,8 @@ remove_dir_all = "0.7.0" reqwest = { version = "0.11.18", features = ["json", "native-tls"] } ad4m-client = { path = "../../rust-client" } rust-executor = { path = "../../rust-executor" } -tracing = "0.1" -tracing-subscriber = "0.2" +env_logger = "0.9.0" +chrono = "0.4" [features] # by default Tauri runs in production mode diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 6c8a77277..5f0326cdc 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -3,12 +3,13 @@ windows_subsystem = "windows" )] -use tracing::{info, error}; +extern crate env_logger; +use chrono::Local; +use log::LevelFilter; +use log::{info, error}; use rust_executor::Ad4mConfig; use tauri::LogicalSize; use tauri::Size; -use tracing_subscriber::EnvFilter; -use tracing_subscriber::fmt::format; use std::env; use std::fs; use std::fs::File; @@ -112,23 +113,23 @@ fn main() { let _ = fs::remove_file(log_path()); } - let file = File::create(log_path()).unwrap(); - let file = Arc::new(Mutex::new(file)); - - let format = format::debug_fn(move |writer, _field, value| { - let _ = writeln!(file.lock().unwrap(), "{:?}", value); - write!(writer, "{:?}", value) - }); - - let filter = EnvFilter::from_default_env(); - - let subscriber = tracing_subscriber::fmt() - .with_env_filter(filter) - .fmt_fields(format) - .finish(); - - tracing::subscriber::set_global_default(subscriber) - .expect("Failed to set tracing subscriber"); + let target = Box::new(File::create(log_path()).expect("Can't create file")); + + env_logger::Builder::new() + .target(env_logger::Target::Pipe(target)) + .filter(None, LevelFilter::Debug) + .format(|buf, record| { + writeln!( + buf, + "[{} {} {}:{}] {}", + Local::now().format("%Y-%m-%d %H:%M:%S%.3f"), + record.level(), + record.file().unwrap_or("unknown"), + record.line().unwrap_or(0), + record.args() + ) + }) + .init(); let app_name = if std::env::consts::OS == "windows" { "AD4M.exe" } else { "AD4M" }; if has_processes_running(app_name) > 1 { From a73bce3cb0c71d2e46ab7289b5e4be8c73622b5a Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 20 Sep 2023 13:09:48 +0100 Subject: [PATCH 703/722] change logging level --- ui/src-tauri/src/main.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 5f0326cdc..41ae27b16 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -117,7 +117,10 @@ fn main() { env_logger::Builder::new() .target(env_logger::Target::Pipe(target)) - .filter(None, LevelFilter::Debug) + .filter(Some("holochain"), LevelFilter::Warn) + .filter(Some("wasmer_compiler_cranelift"), LevelFilter::Warn) + .filter(Some("rust_executor"), LevelFilter::Debug) + .filter(Some("warp::server"), LevelFilter::Debug) .format(|buf, record| { writeln!( buf, From 9459f40dec3a08952c6a402b2a37320fc9d38962 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 20 Sep 2023 13:43:52 +0100 Subject: [PATCH 704/722] formatting and bump env logger --- Cargo.lock | 23 +++++------------------ ui/src-tauri/Cargo.toml | 2 +- ui/src-tauri/src/main.rs | 40 ++++++++++++++++++++-------------------- 3 files changed, 26 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 685f15abd..625e77b71 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -67,7 +67,7 @@ dependencies = [ "ad4m-client", "chrono", "directories 4.0.1", - "env_logger 0.9.3", + "env_logger", "libc", "localtunnel-client", "log", @@ -3583,19 +3583,6 @@ dependencies = [ "syn 2.0.29", ] -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - [[package]] name = "env_logger" version = "0.10.0" @@ -5995,7 +5982,7 @@ dependencies = [ "crossbeam-channel", "crossbeam-utils", "dashmap 5.5.2", - "env_logger 0.10.0", + "env_logger", "indexmap 2.0.0", "is-terminal", "itoa 1.0.9", @@ -10155,7 +10142,7 @@ dependencies = [ "deno_runtime", "did-key", "dirs 5.0.1", - "env_logger 0.10.0", + "env_logger", "fs_extra", "futures", "hex", @@ -12382,9 +12369,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.2.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" dependencies = [ "winapi-util", ] diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index e03c7e21f..3e26e2014 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -36,8 +36,8 @@ remove_dir_all = "0.7.0" reqwest = { version = "0.11.18", features = ["json", "native-tls"] } ad4m-client = { path = "../../rust-client" } rust-executor = { path = "../../rust-executor" } -env_logger = "0.9.0" chrono = "0.4" +env_logger = "0.10.0" [features] # by default Tauri runs in production mode diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 41ae27b16..5fd1be291 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -113,26 +113,26 @@ fn main() { let _ = fs::remove_file(log_path()); } - let target = Box::new(File::create(log_path()).expect("Can't create file")); - - env_logger::Builder::new() - .target(env_logger::Target::Pipe(target)) - .filter(Some("holochain"), LevelFilter::Warn) - .filter(Some("wasmer_compiler_cranelift"), LevelFilter::Warn) - .filter(Some("rust_executor"), LevelFilter::Debug) - .filter(Some("warp::server"), LevelFilter::Debug) - .format(|buf, record| { - writeln!( - buf, - "[{} {} {}:{}] {}", - Local::now().format("%Y-%m-%d %H:%M:%S%.3f"), - record.level(), - record.file().unwrap_or("unknown"), - record.line().unwrap_or(0), - record.args() - ) - }) - .init(); + let target = Box::new(File::create(log_path()).expect("Can't create file")); + + env_logger::Builder::new() + .target(env_logger::Target::Pipe(target)) + .filter(Some("holochain"), LevelFilter::Warn) + .filter(Some("wasmer_compiler_cranelift"), LevelFilter::Warn) + .filter(Some("rust_executor"), LevelFilter::Debug) + .filter(Some("warp::server"), LevelFilter::Debug) + .format(|buf, record| { + writeln!( + buf, + "[{} {} {}:{}] {}", + Local::now().format("%Y-%m-%d %H:%M:%S%.3f"), + record.level(), + record.file().unwrap_or("unknown"), + record.line().unwrap_or(0), + record.args() + ) + }) + .init(); let app_name = if std::env::consts::OS == "windows" { "AD4M.exe" } else { "AD4M" }; if has_processes_running(app_name) > 1 { From 1638c40c230b17961e5ba9778f7d58f1277c4e94 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 20 Sep 2023 15:26:14 +0100 Subject: [PATCH 705/722] use unbounded receiver for sending into holochain service --- .../src/holochain_service/interface.rs | 40 +++++++------------ 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/rust-executor/src/holochain_service/interface.rs b/rust-executor/src/holochain_service/interface.rs index b23a87bfd..fabd78529 100644 --- a/rust-executor/src/holochain_service/interface.rs +++ b/rust-executor/src/holochain_service/interface.rs @@ -7,12 +7,12 @@ use holochain::prelude::{ }; use lazy_static::lazy_static; use std::sync::Arc; -use tokio::sync::mpsc::{Sender, UnboundedReceiver}; +use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender}; use tokio::sync::{oneshot, Mutex, RwLock}; #[derive(Clone)] pub struct HolochainServiceInterface { - pub sender: Sender, + pub sender: UnboundedSender, pub stream_receiver: Arc>>, } @@ -66,8 +66,7 @@ impl HolochainServiceInterface { .send(HolochainServiceRequest::InstallApp( payload, response_sender, - )) - .await?; + ))?; match response_receiver.await.unwrap() { HolochainServiceResponse::InstallApp(result) => result, _ => unreachable!(), @@ -91,8 +90,7 @@ impl HolochainServiceInterface { fn_name, payload, response: response_sender, - }) - .await?; + })?; match response_receiver.await.unwrap() { HolochainServiceResponse::CallZomeFunction(result) => result, _ => unreachable!(), @@ -102,8 +100,7 @@ impl HolochainServiceInterface { pub async fn remove_app(&self, app_id: String) -> Result<(), AnyError> { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::RemoveApp(app_id, response_tx)) - .await?; + .send(HolochainServiceRequest::RemoveApp(app_id, response_tx))?; match response_rx.await.unwrap() { HolochainServiceResponse::RemoveApp(result) => result, _ => unreachable!(), @@ -113,8 +110,7 @@ impl HolochainServiceInterface { pub async fn agent_infos(&self) -> Result, AnyError> { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::AgentInfos(response_tx)) - .await?; + .send(HolochainServiceRequest::AgentInfos(response_tx))?; match response_rx.await.unwrap() { HolochainServiceResponse::AgentInfos(result) => result, _ => unreachable!(), @@ -127,8 +123,7 @@ impl HolochainServiceInterface { .send(HolochainServiceRequest::AddAgentInfos( agent_infos, response_tx, - )) - .await?; + ))?; match response_rx.await.unwrap() { HolochainServiceResponse::AddAgentInfos(result) => result, _ => unreachable!(), @@ -138,8 +133,7 @@ impl HolochainServiceInterface { pub async fn sign(&self, data: String) -> Result { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::Sign(data, response_tx)) - .await?; + .send(HolochainServiceRequest::Sign(data, response_tx))?; match response_rx.await.unwrap() { HolochainServiceResponse::Sign(result) => result, _ => unreachable!(), @@ -149,8 +143,7 @@ impl HolochainServiceInterface { pub async fn shutdown(&self) -> Result<(), AnyError> { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::Shutdown(response_tx)) - .await?; + .send(HolochainServiceRequest::Shutdown(response_tx))?; match response_rx.await.unwrap() { HolochainServiceResponse::Shutdown(result) => result, _ => unreachable!(), @@ -160,8 +153,7 @@ impl HolochainServiceInterface { pub async fn get_agent_key(&self) -> Result, AnyError> { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::GetAgentKey(response_tx)) - .await?; + .send(HolochainServiceRequest::GetAgentKey(response_tx))?; match response_rx.await.unwrap() { HolochainServiceResponse::GetAgentKey(result) => result, _ => unreachable!(), @@ -171,8 +163,7 @@ impl HolochainServiceInterface { pub async fn get_app_info(&self, app_id: String) -> Result, AnyError> { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::GetAppInfo(app_id, response_tx)) - .await?; + .send(HolochainServiceRequest::GetAppInfo(app_id, response_tx))?; match response_rx.await.unwrap() { HolochainServiceResponse::GetAppInfo(result) => result, _ => unreachable!(), @@ -182,8 +173,7 @@ impl HolochainServiceInterface { pub async fn log_network_metrics(&self) -> Result<(), AnyError> { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::LogNetworkMetrics(response_tx)) - .await?; + .send(HolochainServiceRequest::LogNetworkMetrics(response_tx))?; match response_rx.await.unwrap() { HolochainServiceResponse::LogNetworkMetrics(result) => result, _ => unreachable!(), @@ -193,8 +183,7 @@ impl HolochainServiceInterface { pub async fn pack_dna(&self, path: String) -> Result { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::PackDna(path, response_tx)) - .await?; + .send(HolochainServiceRequest::PackDna(path, response_tx))?; match response_rx.await.unwrap() { HolochainServiceResponse::PackDna(result) => result, _ => unreachable!(), @@ -204,8 +193,7 @@ impl HolochainServiceInterface { pub async fn unpack_dna(&self, path: String) -> Result { let (response_tx, response_rx) = oneshot::channel(); self.sender - .send(HolochainServiceRequest::UnPackDna(path, response_tx)) - .await?; + .send(HolochainServiceRequest::UnPackDna(path, response_tx))?; match response_rx.await.unwrap() { HolochainServiceResponse::UnPackDna(result) => result, _ => unreachable!(), From 1869e8b01177ce9fb76ad5f04cdf4ec3b97bdb9c Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 20 Sep 2023 15:26:46 +0100 Subject: [PATCH 706/722] have the holochain receiver logic run inside its own tokio::task to avoid competing CPU time for stream receiver and request receiver --- rust-executor/src/holochain_service/mod.rs | 137 +++++++++++---------- 1 file changed, 71 insertions(+), 66 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index f9f905d25..2bf37e111 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -18,10 +18,11 @@ use holochain::prelude::{ }; use holochain::test_utils::itertools::Either; use holochain_types::dna::ValidatedDnaManifest; -use log::info; +use log::{info, error}; use rand::Rng; use serde::{Deserialize, Serialize}; use tokio::sync::{mpsc, oneshot, Mutex}; +use tokio::task::yield_now; use tokio_stream::StreamExt; pub(crate) mod holochain_service_extension; @@ -56,7 +57,7 @@ pub struct LocalConductorConfig { impl HolochainService { pub async fn init(local_config: LocalConductorConfig) -> Result<(), AnyError> { - let (sender, mut receiver) = mpsc::channel::(32); + let (sender, mut receiver) = mpsc::unbounded_channel::(); let (stream_sender, stream_receiver) = mpsc::unbounded_channel::(); let inteface = HolochainServiceInterface { @@ -76,8 +77,6 @@ impl HolochainService { rt.block_on(async move { let mut service = HolochainService::new(local_config).await.unwrap(); - set_holochain_service(inteface).await; - let conductor_clone = service.conductor.clone(); // Spawn a new task to forward items from the stream to the receiver tokio::spawn(async move { @@ -102,73 +101,77 @@ impl HolochainService { while let Some(item) = stream.next().await { let _ = stream_sender.send(item); } + yield_now().await; } }); - while let Some(message) = receiver.recv().await { - match message { - HolochainServiceRequest::InstallApp(payload, response) => { - let result = service.install_app(payload).await; - let _ = response.send(HolochainServiceResponse::InstallApp(result)); - } - HolochainServiceRequest::CallZomeFunction { - app_id, - cell_name, - zome_name, - fn_name, - payload, - response, - } => { - let result = service - .call_zome_function(app_id, cell_name, zome_name, fn_name, payload) - .await; - let _ = - response.send(HolochainServiceResponse::CallZomeFunction(result)); - } - HolochainServiceRequest::RemoveApp(app_id, response_tx) => { - let result = service.remove_app(app_id).await; - let _ = response_tx.send(HolochainServiceResponse::RemoveApp(result)); - } - HolochainServiceRequest::AgentInfos(response_tx) => { - let result = service.agent_infos().await; - let _ = response_tx.send(HolochainServiceResponse::AgentInfos(result)); - } - HolochainServiceRequest::AddAgentInfos(agent_infos, response_tx) => { - let result = service.add_agent_infos(agent_infos).await; - let _ = - response_tx.send(HolochainServiceResponse::AddAgentInfos(result)); - } - HolochainServiceRequest::Sign(data, response_tx) => { - let result = service.sign(data).await; - let _ = response_tx.send(HolochainServiceResponse::Sign(result)); - } - HolochainServiceRequest::Shutdown(response_tx) => { - let result = service.shutdown().await; - let _ = response_tx.send(HolochainServiceResponse::Shutdown(result)); - } - HolochainServiceRequest::GetAgentKey(response_tx) => { - let result = service.get_agent_key().await; - let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(result)); - } - HolochainServiceRequest::GetAppInfo(app_id, response_tx) => { - let result = service.get_app_info(app_id).await; - let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); - } - HolochainServiceRequest::LogNetworkMetrics(response_tx) => { - let result = service.log_network_metrics().await; - let _ = response_tx - .send(HolochainServiceResponse::LogNetworkMetrics(result)); - } - HolochainServiceRequest::PackDna(path, response_tx) => { - let result = HolochainService::pack_dna(path).await; - let _ = response_tx.send(HolochainServiceResponse::PackDna(result)); - } - HolochainServiceRequest::UnPackDna(path, response_tx) => { - let result = HolochainService::unpack_dna(path).await; - let _ = response_tx.send(HolochainServiceResponse::UnPackDna(result)); + let _ = tokio::spawn(async move { + while let Some(message) = receiver.recv().await { + match message { + HolochainServiceRequest::InstallApp(payload, response) => { + let result = service.install_app(payload).await; + let _ = response.send(HolochainServiceResponse::InstallApp(result)); + } + HolochainServiceRequest::CallZomeFunction { + app_id, + cell_name, + zome_name, + fn_name, + payload, + response, + } => { + let result = service + .call_zome_function(app_id, cell_name, zome_name, fn_name, payload) + .await; + let _ = + response.send(HolochainServiceResponse::CallZomeFunction(result)); + } + HolochainServiceRequest::RemoveApp(app_id, response_tx) => { + let result = service.remove_app(app_id).await; + let _ = response_tx.send(HolochainServiceResponse::RemoveApp(result)); + } + HolochainServiceRequest::AgentInfos(response_tx) => { + let result = service.agent_infos().await; + let _ = response_tx.send(HolochainServiceResponse::AgentInfos(result)); + } + HolochainServiceRequest::AddAgentInfos(agent_infos, response_tx) => { + let result = service.add_agent_infos(agent_infos).await; + let _ = + response_tx.send(HolochainServiceResponse::AddAgentInfos(result)); + } + HolochainServiceRequest::Sign(data, response_tx) => { + let result = service.sign(data).await; + let _ = response_tx.send(HolochainServiceResponse::Sign(result)); + } + HolochainServiceRequest::Shutdown(response_tx) => { + let result = service.shutdown().await; + let _ = response_tx.send(HolochainServiceResponse::Shutdown(result)); + } + HolochainServiceRequest::GetAgentKey(response_tx) => { + let result = service.get_agent_key().await; + let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(result)); + } + HolochainServiceRequest::GetAppInfo(app_id, response_tx) => { + let result = service.get_app_info(app_id).await; + let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); + } + HolochainServiceRequest::LogNetworkMetrics(response_tx) => { + let result = service.log_network_metrics().await; + let _ = response_tx + .send(HolochainServiceResponse::LogNetworkMetrics(result)); + } + HolochainServiceRequest::PackDna(path, response_tx) => { + let result = HolochainService::pack_dna(path).await; + let _ = response_tx.send(HolochainServiceResponse::PackDna(result)); + } + HolochainServiceRequest::UnPackDna(path, response_tx) => { + let result = HolochainService::unpack_dna(path).await; + let _ = response_tx.send(HolochainServiceResponse::UnPackDna(result)); + } } } - } + error!("Holochain service receiver closed"); + }).await.expect("Holochain service receiver failed"); }); }); @@ -177,6 +180,8 @@ impl HolochainService { _ => unreachable!(), }; + set_holochain_service(inteface).await; + Ok(()) } From 1704d9a79febd5e94d805b8707c46b529a540e09 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Wed, 20 Sep 2023 15:36:39 +0100 Subject: [PATCH 707/722] add timeout to call holochain deno op calls --- .../holochain_service_extension.rs | 118 +++++++++++++----- 1 file changed, 90 insertions(+), 28 deletions(-) diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 18b9f4cc4..5dc0a199c 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -1,6 +1,6 @@ use std::borrow::Cow; -use deno_core::{error::AnyError, include_js_files, op, Extension, Op}; +use deno_core::{error::AnyError, include_js_files, op, Extension, Op, anyhow::anyhow}; use holochain::{ conductor::api::AppInfo, prelude::{ @@ -8,11 +8,16 @@ use holochain::{ Signature, ZomeCallResponse, }, }; +use tokio::time::timeout; +use std::time::Duration; use crate::holochain_service::{HolochainService, LocalConductorConfig}; use super::get_holochain_service; +// The duration to use for timeouts +const TIMEOUT_DURATION: Duration = Duration::from_secs(5); + #[op] async fn start_holochain_conductor(config: LocalConductorConfig) -> Result<(), AnyError> { HolochainService::init(config).await?; @@ -21,21 +26,35 @@ async fn start_holochain_conductor(config: LocalConductorConfig) -> Result<(), A #[op] async fn log_dht_status() -> Result<(), AnyError> { - let interface = get_holochain_service().await; - interface.log_network_metrics().await?; - Ok(()) + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.log_network_metrics().await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn install_app(install_app_payload: InstallAppPayload) -> Result { - let interface = get_holochain_service().await; - interface.install_app(install_app_payload).await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.install_app(install_app_payload).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn get_app_info(app_id: String) -> Result, AnyError> { - let interface = get_holochain_service().await; - interface.get_app_info(app_id).await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.get_app_info(app_id).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } //TODO @@ -48,58 +67,101 @@ async fn call_zome_function( fn_name: String, payload: Option, ) -> Result { - let interface = get_holochain_service().await; - interface - .call_zome_function(app_id, cell_name, zome_name, fn_name, payload) - .await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.call_zome_function(app_id, cell_name, zome_name, fn_name, payload).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn agent_infos() -> Result, AnyError> { - let interface = get_holochain_service().await; - interface.agent_infos().await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.agent_infos().await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn add_agent_infos(agent_infos_payload: Vec) -> Result<(), AnyError> { - let interface = get_holochain_service().await; - interface.add_agent_infos(agent_infos_payload).await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.add_agent_infos(agent_infos_payload).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn remove_app(app_id: String) -> Result<(), AnyError> { - let interface = get_holochain_service().await; - interface.remove_app(app_id).await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.remove_app(app_id).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn sign_string(data: String) -> Result { - let interface = get_holochain_service().await; - interface.sign(data).await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.sign(data).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn shutdown() -> Result<(), AnyError> { - let interface = get_holochain_service().await; - interface.shutdown().await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.shutdown().await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn get_agent_key() -> Result, AnyError> { - let interface = get_holochain_service().await; - interface.get_agent_key().await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.get_agent_key().await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn pack_dna(path: String) -> Result { - let interface = get_holochain_service().await; - interface.pack_dna(path).await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.pack_dna(path).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } #[op] async fn unpack_dna(path: String) -> Result { - let interface = get_holochain_service().await; - interface.unpack_dna(path).await + timeout( + TIMEOUT_DURATION, + async { + let interface = get_holochain_service().await; + interface.unpack_dna(path).await + } + ).await.map_err(|_| anyhow!("Timeout error"))? } //Implement signal callbacks from dna/holochain to js From b3a0f1b1abad0cfdd165d7105099263bd0981ef1 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Wed, 20 Sep 2023 17:43:19 +0200 Subject: [PATCH 708/722] Try getting colors and traces in launcher ad4m.log (WIP) --- Cargo.lock | 61 ++++++++++++++++++++++++++++++++++------ ui/src-tauri/Cargo.toml | 3 ++ ui/src-tauri/src/main.rs | 48 ++++++++++++++++++++++--------- 3 files changed, 90 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 625e77b71..f15a6dede 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -66,6 +66,7 @@ version = "0.6.0" dependencies = [ "ad4m-client", "chrono", + "colored 2.0.4", "directories 4.0.1", "env_logger", "libc", @@ -86,6 +87,8 @@ dependencies = [ "tauri-build", "tauri-plugin-positioner", "tokio", + "tracing", + "tracing-subscriber 0.2.25", "uuid 0.8.2", ] @@ -1527,6 +1530,17 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "colored" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +dependencies = [ + "is-terminal", + "lazy_static", + "windows-sys 0.48.0", +] + [[package]] name = "colour" version = "0.7.0" @@ -5036,7 +5050,7 @@ dependencies = [ "toml 0.5.11", "tracing", "tracing-futures", - "tracing-subscriber", + "tracing-subscriber 0.3.17", "tx5-go-pion-turn", "tx5-signal-srv", "unwrap_to", @@ -5364,7 +5378,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-serde", - "tracing-subscriber", + "tracing-subscriber 0.3.17", ] [[package]] @@ -6448,7 +6462,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf6ff683970365a1c3b71192a116abeb986512ced906e4e25cc7ad40bf65b1b3" dependencies = [ - "colored", + "colored 1.9.4", "derivative", "derive_more", "futures", @@ -6539,7 +6553,7 @@ dependencies = [ "serde_bytes", "structopt", "tokio", - "tracing-subscriber", + "tracing-subscriber 0.3.17", "webpki 0.21.4", ] @@ -6668,7 +6682,7 @@ dependencies = [ "sqlformat 0.2.1", "structopt", "sysinfo 0.28.4", - "tracing-subscriber", + "tracing-subscriber 0.3.17", ] [[package]] @@ -7178,7 +7192,7 @@ dependencies = [ "serde", "serde_json", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.17", ] [[package]] @@ -7318,6 +7332,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +[[package]] +name = "matchers" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "matchers" version = "0.1.0" @@ -12905,13 +12928,35 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "ansi_term", + "chrono", + "lazy_static", + "matchers 0.0.1", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec 1.11.0", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", +] + [[package]] name = "tracing-subscriber" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ - "matchers", + "matchers 0.1.0", "nu-ansi-term", "once_cell", "regex", @@ -13208,7 +13253,7 @@ dependencies = [ "sodoken", "tokio", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.17", "tx5-core", "warp", ] diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index 3e26e2014..d63498bbf 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -38,6 +38,9 @@ ad4m-client = { path = "../../rust-client" } rust-executor = { path = "../../rust-executor" } chrono = "0.4" env_logger = "0.10.0" +colored = "2.0" +tracing = { version = "0.1.37", features = ["log-always"] } +tracing-subscriber = "0.2" [features] # by default Tauri runs in production mode diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 5fd1be291..49ba1d262 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -6,18 +6,22 @@ extern crate env_logger; use chrono::Local; use log::LevelFilter; -use log::{info, error}; +use log::{info, error, debug}; use rust_executor::Ad4mConfig; use tauri::LogicalSize; use tauri::Size; use std::env; use std::fs; use std::fs::File; -use std::sync::Arc; use std::sync::Mutex; use libc::{rlimit, RLIMIT_NOFILE, setrlimit}; use std::io; use std::io::Write; +use colored::Colorize; +use tracing_subscriber::EnvFilter; +use tracing_subscriber::fmt::format; + + extern crate remove_dir_all; @@ -112,7 +116,7 @@ fn main() { if log_path().exists() { let _ = fs::remove_file(log_path()); } - + let target = Box::new(File::create(log_path()).expect("Can't create file")); env_logger::Builder::new() @@ -122,23 +126,39 @@ fn main() { .filter(Some("rust_executor"), LevelFilter::Debug) .filter(Some("warp::server"), LevelFilter::Debug) .format(|buf, record| { + let level = match record.level() { + log::Level::Error => record.level().as_str().red(), + log::Level::Warn => record.level().as_str().yellow(), + log::Level::Info => record.level().as_str().green(), + log::Level::Debug => record.level().as_str().blue(), + log::Level::Trace => record.level().as_str().purple(), + }; writeln!( buf, "[{} {} {}:{}] {}", - Local::now().format("%Y-%m-%d %H:%M:%S%.3f"), - record.level(), - record.file().unwrap_or("unknown"), - record.line().unwrap_or(0), - record.args() + Local::now().format("%Y-%m-%d %H:%M:%S%.3f").to_string().as_str().dimmed(), + level, + record.file().unwrap_or("unknown").to_string().as_str().dimmed(), + record.line().unwrap_or(0).to_string().as_str().dimmed(), + record.args().to_string().as_str().bold(), ) }) .init(); - - let app_name = if std::env::consts::OS == "windows" { "AD4M.exe" } else { "AD4M" }; - if has_processes_running(app_name) > 1 { - println!("AD4M is already running"); - return; - } + + let format = format::debug_fn(move |writer, _field, value| { + debug!("TRACE: {:?}", value); + write!(writer, "{:?}", value) + }); + + let filter = EnvFilter::from_default_env(); + + let subscriber = tracing_subscriber::fmt() + .with_env_filter(filter) + .fmt_fields(format) + .finish(); + + tracing::subscriber::set_global_default(subscriber) + .expect("Failed to set tracing subscriber"); let free_port = find_port(12000, 13000); From 6869ad14b64da5db9dc46901c589d1bb3d2dc7d5 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 21 Sep 2023 13:43:24 +0100 Subject: [PATCH 709/722] dont return errors for dht status since it is called in loop with no try/catch in js --- .../holochain_service/holochain_service_extension.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/rust-executor/src/holochain_service/holochain_service_extension.rs b/rust-executor/src/holochain_service/holochain_service_extension.rs index 5dc0a199c..ca9b2ed48 100644 --- a/rust-executor/src/holochain_service/holochain_service_extension.rs +++ b/rust-executor/src/holochain_service/holochain_service_extension.rs @@ -10,6 +10,7 @@ use holochain::{ }; use tokio::time::timeout; use std::time::Duration; +use log::error; use crate::holochain_service::{HolochainService, LocalConductorConfig}; @@ -26,13 +27,20 @@ async fn start_holochain_conductor(config: LocalConductorConfig) -> Result<(), A #[op] async fn log_dht_status() -> Result<(), AnyError> { - timeout( + let res = timeout( TIMEOUT_DURATION, async { let interface = get_holochain_service().await; interface.log_network_metrics().await } - ).await.map_err(|_| anyhow!("Timeout error"))? + ).await; + match res { + Ok(_) => Ok(()), + Err(_) => { + error!("Timeout error logging dht status"); + Ok(()) + }, + } } #[op] From 82efed0d52ac0c557920a55a8861c4943b1cf249 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 21 Sep 2023 17:45:28 +0100 Subject: [PATCH 710/722] add thread names to graphql and dapp servers --- rust-executor/src/lib.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rust-executor/src/lib.rs b/rust-executor/src/lib.rs index 900865b13..72deae26d 100644 --- a/rust-executor/src/lib.rs +++ b/rust-executor/src/lib.rs @@ -44,6 +44,7 @@ pub async fn run(mut config: Ad4mConfig) { std::thread::spawn(|| { let runtime = tokio::runtime::Builder::new_multi_thread() .enable_all() + .thread_name(String::from("dapp_server")) .build() .unwrap(); runtime.block_on(serve_dapp(8080)).unwrap(); @@ -53,6 +54,7 @@ pub async fn run(mut config: Ad4mConfig) { let handle = std::thread::spawn(move || { let runtime = tokio::runtime::Builder::new_multi_thread() .enable_all() + .thread_name(String::from("graphql_server")) .build() .unwrap(); runtime.block_on(graphql::start_server( @@ -83,6 +85,7 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { if config.run_dapp_server.unwrap() { std::thread::spawn(|| { let runtime = tokio::runtime::Builder::new_multi_thread() + .thread_name(String::from("dapp_server")) .enable_all() .build() .unwrap(); @@ -92,6 +95,7 @@ pub async fn run_with_tokio(mut config: Ad4mConfig) { std::thread::spawn(move || { let runtime = tokio::runtime::Builder::new_multi_thread() + .thread_name(String::from("graphql_server")) .enable_all() .build() .unwrap(); From 900d3419d38fbc384d3854be6e7098b69f909fa4 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 21 Sep 2023 17:45:54 +0100 Subject: [PATCH 711/722] rework async holochain logic to avoid timeouts & increase paralelism --- rust-executor/src/holochain_service/mod.rs | 305 ++++++++++++++------- 1 file changed, 211 insertions(+), 94 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 2bf37e111..35a4cd565 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -21,8 +21,10 @@ use holochain_types::dna::ValidatedDnaManifest; use log::{info, error}; use rand::Rng; use serde::{Deserialize, Serialize}; +use tokio::select; use tokio::sync::{mpsc, oneshot, Mutex}; use tokio::task::yield_now; +use tokio::time::timeout; use tokio_stream::StreamExt; pub(crate) mod holochain_service_extension; @@ -69,110 +71,225 @@ impl HolochainService { std::thread::spawn(move || { let rt = tokio::runtime::Builder::new_multi_thread() + .thread_name(String::from("holochain_service")) .enable_all() .build() .expect("Failed to create Tokio runtime"); let _guard = rt.enter(); - rt.block_on(async move { - let mut service = HolochainService::new(local_config).await.unwrap(); - - let conductor_clone = service.conductor.clone(); - // Spawn a new task to forward items from the stream to the receiver - tokio::spawn(async move { - let sig_broadcasters = conductor_clone.signal_broadcaster(); - - let mut streams = tokio_stream::StreamMap::new(); - for (i, rx) in sig_broadcasters - .subscribe_separately() - .into_iter() - .enumerate() - { - streams.insert(i, tokio_stream::wrappers::BroadcastStream::new(rx)); - } - let mut stream = - streams.map(|(_, signal)| signal.expect("Couldn't receive a signal")); - - response_sender - .send(HolochainServiceResponse::InitComplete(Ok(()))) - .unwrap(); - - loop { - while let Some(item) = stream.next().await { - let _ = stream_sender.send(item); + tokio::task::block_in_place(|| { + rt.block_on(async move { + let mut service = HolochainService::new(local_config).await.unwrap(); + let conductor_clone = service.conductor.clone(); + + // Spawn a new task to forward items from the stream to the receiver + let spawned_sig = tokio::spawn(async move { + let sig_broadcasters = conductor_clone.signal_broadcaster(); + + let mut streams = tokio_stream::StreamMap::new(); + for (i, rx) in sig_broadcasters + .subscribe_separately() + .into_iter() + .enumerate() + { + streams.insert(i, tokio_stream::wrappers::BroadcastStream::new(rx)); } - yield_now().await; - } - }); + let mut stream = + streams.map(|(_, signal)| signal.expect("Couldn't receive a signal")); - let _ = tokio::spawn(async move { - while let Some(message) = receiver.recv().await { - match message { - HolochainServiceRequest::InstallApp(payload, response) => { - let result = service.install_app(payload).await; - let _ = response.send(HolochainServiceResponse::InstallApp(result)); - } - HolochainServiceRequest::CallZomeFunction { - app_id, - cell_name, - zome_name, - fn_name, - payload, - response, - } => { - let result = service - .call_zome_function(app_id, cell_name, zome_name, fn_name, payload) - .await; - let _ = - response.send(HolochainServiceResponse::CallZomeFunction(result)); - } - HolochainServiceRequest::RemoveApp(app_id, response_tx) => { - let result = service.remove_app(app_id).await; - let _ = response_tx.send(HolochainServiceResponse::RemoveApp(result)); - } - HolochainServiceRequest::AgentInfos(response_tx) => { - let result = service.agent_infos().await; - let _ = response_tx.send(HolochainServiceResponse::AgentInfos(result)); - } - HolochainServiceRequest::AddAgentInfos(agent_infos, response_tx) => { - let result = service.add_agent_infos(agent_infos).await; - let _ = - response_tx.send(HolochainServiceResponse::AddAgentInfos(result)); - } - HolochainServiceRequest::Sign(data, response_tx) => { - let result = service.sign(data).await; - let _ = response_tx.send(HolochainServiceResponse::Sign(result)); - } - HolochainServiceRequest::Shutdown(response_tx) => { - let result = service.shutdown().await; - let _ = response_tx.send(HolochainServiceResponse::Shutdown(result)); - } - HolochainServiceRequest::GetAgentKey(response_tx) => { - let result = service.get_agent_key().await; - let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(result)); - } - HolochainServiceRequest::GetAppInfo(app_id, response_tx) => { - let result = service.get_app_info(app_id).await; - let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); - } - HolochainServiceRequest::LogNetworkMetrics(response_tx) => { - let result = service.log_network_metrics().await; - let _ = response_tx - .send(HolochainServiceResponse::LogNetworkMetrics(result)); - } - HolochainServiceRequest::PackDna(path, response_tx) => { - let result = HolochainService::pack_dna(path).await; - let _ = response_tx.send(HolochainServiceResponse::PackDna(result)); - } - HolochainServiceRequest::UnPackDna(path, response_tx) => { - let result = HolochainService::unpack_dna(path).await; - let _ = response_tx.send(HolochainServiceResponse::UnPackDna(result)); + response_sender + .send(HolochainServiceResponse::InitComplete(Ok(()))) + .unwrap(); + + loop { + while let Some(item) = stream.next().await { + let _ = stream_sender.send(item); } + error!("Holochain service signal stream closed"); + yield_now().await; } + }); + + let spawned_receiver = tokio::spawn(async move { + while let Some(message) = receiver.recv().await { + info!("Got incoming message in holochain receiver: {:?}", message); + match message { + HolochainServiceRequest::InstallApp(payload, response) => { + match timeout( + std::time::Duration::from_secs(10), + service.install_app(payload) + ).await.map_err(|_| anyhow!("Timeout error; InstallApp call")) { + Ok(result) => { + let _ = response.send(HolochainServiceResponse::InstallApp(result)); + }, + Err(err) => { + let _ = response.send(HolochainServiceResponse::InstallApp(Err(err))); + }, + } + } + HolochainServiceRequest::CallZomeFunction { + app_id, + cell_name, + zome_name, + fn_name, + payload, + response, + } => { + match timeout( + std::time::Duration::from_secs(5), + service.call_zome_function(app_id, cell_name, zome_name, fn_name, payload) + ).await.map_err(|_| anyhow!("Timeout error; Call Zome Function")) { + Ok(result) => { + let _ = response.send(HolochainServiceResponse::CallZomeFunction(result)); + }, + Err(err) => { + let _ = response.send(HolochainServiceResponse::CallZomeFunction(Err(err))); + }, + } + } + HolochainServiceRequest::RemoveApp(app_id, response_tx) => { + match timeout( + std::time::Duration::from_secs(10), + service.remove_app(app_id) + ).await.map_err(|_| anyhow!("Timeout error; Remove App")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::RemoveApp(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::RemoveApp(Err(err))); + }, + } + } + HolochainServiceRequest::AgentInfos(response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.agent_infos() + ).await.map_err(|_| anyhow!("Timeout error; AgentInfos")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::AgentInfos(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::AgentInfos(Err(err))); + }, + } + } + HolochainServiceRequest::AddAgentInfos(agent_infos, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.add_agent_infos(agent_infos) + ).await.map_err(|_| anyhow!("Timeout error; AddAgentInfos")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::AddAgentInfos(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::AddAgentInfos(Err(err))); + }, + } + } + HolochainServiceRequest::Sign(data, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.sign(data) + ).await.map_err(|_| anyhow!("Timeout error; Sign")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::Sign(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::Sign(Err(err))); + }, + } + } + HolochainServiceRequest::Shutdown(response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.shutdown() + ).await.map_err(|_| anyhow!("Timeout error Shutdown")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::Shutdown(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::Shutdown(Err(err))); + }, + } + } + HolochainServiceRequest::GetAgentKey(response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.get_agent_key() + ).await.map_err(|_| anyhow!("Timeout error; GetAgentKey")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::GetAgentKey(Err(err))); + }, + } + } + HolochainServiceRequest::GetAppInfo(app_id, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.get_app_info(app_id) + ).await.map_err(|_| anyhow!("Timeout error; GetAppInfo")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::GetAppInfo(Err(err))); + }, + } + } + HolochainServiceRequest::LogNetworkMetrics(response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + service.log_network_metrics() + ).await.map_err(|_| anyhow!("Timeout error; LogNetworkMetrics")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::LogNetworkMetrics(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::LogNetworkMetrics(Err(err))); + }, + } + } + HolochainServiceRequest::PackDna(path, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + HolochainService::pack_dna(path) + ).await.map_err(|_| anyhow!("Timeout error; PackDna")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::PackDna(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::PackDna(Err(err))); + }, + } + } + HolochainServiceRequest::UnPackDna(path, response_tx) => { + match timeout( + std::time::Duration::from_secs(3), + HolochainService::unpack_dna(path) + ).await.map_err(|_| anyhow!("Timeout error; UnpackDna")) { + Ok(result) => { + let _ = response_tx.send(HolochainServiceResponse::UnPackDna(result)); + }, + Err(err) => { + let _ = response_tx.send(HolochainServiceResponse::UnPackDna(Err(err))); + }, + } + } + }; + }; + error!("Holochain service receiver closed"); + }); + + select! { + _ = spawned_sig => {}, + _ = spawned_receiver => {}, } - error!("Holochain service receiver closed"); - }).await.expect("Holochain service receiver failed"); - }); + + error!("Holochain service exited") + }); + }) }); match response_receiver.await? { From ff29feca2ab7b1ec3e7b89ced48c7e0fce0fce53 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Thu, 21 Sep 2023 17:46:16 +0100 Subject: [PATCH 712/722] make prolog engine single threaded and use unbounded channel --- rust-executor/src/js_core/mod.rs | 1 + rust-executor/src/prolog_service/engine.rs | 82 +++++++++++----------- 2 files changed, 41 insertions(+), 42 deletions(-) diff --git a/rust-executor/src/js_core/mod.rs b/rust-executor/src/js_core/mod.rs index e30cc3979..8e0cff76f 100644 --- a/rust-executor/src/js_core/mod.rs +++ b/rust-executor/src/js_core/mod.rs @@ -245,6 +245,7 @@ impl JsCore { let tx_inside_clone = tx_inside.clone(); std::thread::spawn(move || { let rt = Builder::new_current_thread() + .thread_name(String::from("js_core")) .enable_all() .build() .expect("Failed to create Tokio runtime"); diff --git a/rust-executor/src/prolog_service/engine.rs b/rust-executor/src/prolog_service/engine.rs index 859b54a85..4bc2dc0a2 100644 --- a/rust-executor/src/prolog_service/engine.rs +++ b/rust-executor/src/prolog_service/engine.rs @@ -16,13 +16,13 @@ pub enum PrologServiceResponse { } pub struct PrologEngine { - request_sender: mpsc::Sender, - request_receiver: Option>, + request_sender: mpsc::UnboundedSender, + request_receiver: Option>, } impl PrologEngine { pub fn new() -> PrologEngine { - let (request_sender, request_receiver) = mpsc::channel::(32); + let (request_sender, request_receiver) = mpsc::unbounded_channel::(); PrologEngine { request_sender, @@ -38,41 +38,45 @@ impl PrologEngine { let (response_sender, response_receiver) = oneshot::channel(); std::thread::spawn(move || { - let rt = tokio::runtime::Builder::new_multi_thread() + let rt = tokio::runtime::Builder::new_current_thread() + .enable_all() + .thread_name(String::from("prolog_service")) .build() .expect("Failed to create Tokio runtime"); let _guard = rt.enter(); - rt.block_on(async move { - let mut machine = Machine::new_lib(); - - response_sender - .send(PrologServiceResponse::InitComplete(Ok(()))) - .unwrap(); - - while let Some(message) = receiver.recv().await { - match message { - PrologServiceRequest::RunQuery(query, response) => { - let result = machine.run_query(query); - let _ = response.send(PrologServiceResponse::QueryResult(result)); - } - PrologServiceRequest::LoadModuleString( - module_name, - program_lines, - response, - ) => { - let program = program_lines - .iter() - .map(|l| l.replace("\n", "").replace("\r", "")) - .collect::>() - .join("\n"); - let _result = - machine.consult_module_string(module_name.as_str(), program); - let _ = response.send(PrologServiceResponse::LoadModuleResult(Ok(()))); + tokio::task::block_in_place(|| + rt.block_on(async move { + let mut machine = Machine::new_lib(); + + response_sender + .send(PrologServiceResponse::InitComplete(Ok(()))) + .unwrap(); + + while let Some(message) = receiver.recv().await { + match message { + PrologServiceRequest::RunQuery(query, response) => { + let result = machine.run_query(query); + let _ = response.send(PrologServiceResponse::QueryResult(result)); + } + PrologServiceRequest::LoadModuleString( + module_name, + program_lines, + response, + ) => { + let program = program_lines + .iter() + .map(|l| l.replace("\n", "").replace("\r", "")) + .collect::>() + .join("\n"); + let _result = + machine.consult_module_string(module_name.as_str(), program); + let _ = response.send(PrologServiceResponse::LoadModuleResult(Ok(()))); + } } } - } - }) + }) + ); }); match response_receiver.await? { @@ -86,12 +90,9 @@ impl PrologEngine { pub async fn run_query(&self, query: String) -> Result { let (response_sender, response_receiver) = oneshot::channel(); self.request_sender - .send(PrologServiceRequest::RunQuery(query, response_sender)) - .await - .expect("Failed to send PrologServiceRequest::RunQuery"); + .send(PrologServiceRequest::RunQuery(query, response_sender))?; let response = response_receiver - .await - .expect("Failed to receive PrologServiceResponse"); + .await?; match response { PrologServiceResponse::QueryResult(query_result) => Ok(query_result), _ => unreachable!(), @@ -109,12 +110,9 @@ impl PrologEngine { module_name, program_lines, response_sender, - )) - .await - .expect("Failed to send PrologServiceRequest::LoadModuleString"); + ))?; let response = response_receiver - .await - .expect("Failed to receive PrologServiceResponse"); + .await?; match response { PrologServiceResponse::LoadModuleResult(result) => result, _ => unreachable!(), From 55ab6b8b80cbfaba644cf9eefafca04f94609505 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 22 Sep 2023 12:44:26 +0100 Subject: [PATCH 713/722] add missing .app build to tauri config --- ui/src-tauri/tauri.conf.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index 8e760df09..02a6d5e57 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -22,6 +22,7 @@ "deb", "msi", "dmg", + "app", "updater" ], "identifier": "dev.ad4m.ad4min", From 00c85c08b0438f401992cb259b7127148cd87872 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 22 Sep 2023 12:53:04 +0100 Subject: [PATCH 714/722] fix up staging & release paths for updated and signature assets --- .github/workflows/publish.yml | 12 ++++++------ .github/workflows/publish_staging.yml | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7069178cf..a15872c6e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -131,7 +131,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage asset_content_type: application/octet-stream @@ -143,7 +143,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz asset_content_type: application/octet-stream @@ -155,7 +155,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz.sig + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz.sig asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig asset_content_type: application/octet-stream @@ -179,7 +179,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg + asset_path: "/Users/runner/work/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg asset_content_type: application/octet-stream @@ -191,7 +191,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz + asset_path: "/Users/runner/work/ad4m/target/release/bundle/macos/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz asset_content_type: application/octet-stream @@ -203,7 +203,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /Users/runner/work/ad4m/ad4m/target/release/bundle/dmg/ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig + asset_path: "/Users/runner/work/ad4m/target/release/bundle/macos/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz.sig asset_content_type: application/octet-stream diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 9b6280713..1cb6be590 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -128,7 +128,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage asset_content_type: application/octet-stream @@ -140,7 +140,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz asset_content_type: application/octet-stream @@ -152,7 +152,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/deb/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz.sig + asset_path: /home/runner/work/ad4m/ad4m/target/release/bundle/appimage/adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.AppImage.tar.gz.sig asset_name: adam-launcher_${{ steps.extract_version.outputs.version }}_amd64.deb.tar.gz.sig asset_content_type: application/octet-stream @@ -188,7 +188,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: "/Users/runner/work/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz" + asset_path: "/Users/runner/work/ad4m/target/release/bundle/macos/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz asset_content_type: application/octet-stream @@ -200,7 +200,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: "/Users/runner/work/ad4m/target/release/bundle/dmg/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig" + asset_path: "/Users/runner/work/ad4m/target/release/bundle/macos/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig" asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz.sig asset_content_type: application/octet-stream From 40503c302cba2a0cf3cb9d98dc533687410910ce Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 22 Sep 2023 12:55:18 +0100 Subject: [PATCH 715/722] switch back to default github action runners --- .github/workflows/agent-language-tests.yml | 2 +- .../workflows/direct-message-language-tests.yml | 2 +- .../workflows/file-storage-language-tests.yml | 2 +- .github/workflows/integration_js.yml | 2 +- .github/workflows/p-diff-sync-tests.yml | 16 ++++++++-------- .github/workflows/publish.yml | 16 ++++++++-------- .github/workflows/publish_staging.yml | 16 ++++++++-------- 7 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml index 6355ca960..3fab49960 100644 --- a/.github/workflows/agent-language-tests.yml +++ b/.github/workflows/agent-language-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml index 768c3a61b..79c003454 100644 --- a/.github/workflows/direct-message-language-tests.yml +++ b/.github/workflows/direct-message-language-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml index f89aa77ac..cef568be1 100644 --- a/.github/workflows/file-storage-language-tests.yml +++ b/.github/workflows/file-storage-language-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/integration_js.yml b/.github/workflows/integration_js.yml index 1afb9d64c..36b4402b0 100644 --- a/.github/workflows/integration_js.yml +++ b/.github/workflows/integration_js.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 5d4c6dac4..274e4dae2 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -45,7 +45,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -90,7 +90,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -136,7 +136,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -182,7 +182,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -229,7 +229,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -275,7 +275,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -321,7 +321,7 @@ jobs: strategy: matrix: - platform: [GH-hosted-ubuntu] + platform: [ubuntu-22.04] node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a15872c6e..50b25da18 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,7 +7,7 @@ on: jobs: create-release: - runs-on: GH-hosted-ubuntu + runs-on: ubuntu-22.04 outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} @@ -42,7 +42,7 @@ jobs: strategy: fail-fast: false matrix: - platform: [GH-hosted-ubuntu, macos-latest, windows-latest] + platform: [ubuntu-22.04, macos-latest, windows-latest] node-version: [18.17.0] needs: @@ -73,7 +73,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) - if: matrix.platform == 'GH-hosted-ubuntu' + if: matrix.platform == 'ubuntu-22.04' run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf @@ -113,7 +113,7 @@ jobs: - name: Upload Release Deb Asset id: upload-release-deb-asset - if: matrix.platform == 'GH-hosted-ubuntu' + if: matrix.platform == 'ubuntu-22.04' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -125,7 +125,7 @@ jobs: - name: Upload Release AppImage Asset id: upload-release-appimage-asset - if: matrix.platform == 'GH-hosted-ubuntu' + if: matrix.platform == 'ubuntu-22.04' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -161,7 +161,7 @@ jobs: - name: Upload Release AD4M CLI Linux Binary id: upload-release-linux-ad4m-cli-binary - if: matrix.platform == 'GH-hosted-ubuntu' + if: matrix.platform == 'ubuntu-22.04' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -268,7 +268,7 @@ jobs: asset_content_type: application/octet-stream npm-publish: - runs-on: GH-hosted-ubuntu + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 # Setup .npmrc file to publish to npm @@ -318,7 +318,7 @@ jobs: crates-publish: - runs-on: GH-hosted-ubuntu + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 1cb6be590..7f7c30a0b 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -7,7 +7,7 @@ on: jobs: create-release: - runs-on: GH-hosted-ubuntu + runs-on: ubuntu-22.04 outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} @@ -42,7 +42,7 @@ jobs: strategy: fail-fast: false matrix: - platform: [GH-hosted-ubuntu, macos-latest, windows-latest] + platform: [ubuntu-22.04, macos-latest, windows-latest] node-version: [18.17.0] needs: @@ -65,7 +65,7 @@ jobs: - run: rustup target add wasm32-unknown-unknown - name: install dependencies (ubuntu only) - if: matrix.platform == 'GH-hosted-ubuntu' + if: matrix.platform == 'ubuntu-22.04' run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf @@ -110,7 +110,7 @@ jobs: - name: Upload Release Deb Asset id: upload-release-deb-asset - if: matrix.platform == 'GH-hosted-ubuntu' + if: matrix.platform == 'ubuntu-22.04' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -122,7 +122,7 @@ jobs: - name: Upload Release AppImage Asset id: upload-release-appimage-asset - if: matrix.platform == 'GH-hosted-ubuntu' + if: matrix.platform == 'ubuntu-22.04' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -158,7 +158,7 @@ jobs: - name: Upload Release AD4M CLI Linux Binary id: upload-release-linux-ad4m-cli-binary - if: matrix.platform == 'GH-hosted-ubuntu' + if: matrix.platform == 'ubuntu-22.04' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -265,7 +265,7 @@ jobs: asset_content_type: application/octet-stream npm-publish: - runs-on: GH-hosted-ubuntu + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 # Setup .npmrc file to publish to npm @@ -343,7 +343,7 @@ jobs: crates-publish: - runs-on: GH-hosted-ubuntu + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 From c882f00d6e4a81bf6a8c0ffb546e0f71ef907e0e Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 22 Sep 2023 12:56:54 +0100 Subject: [PATCH 716/722] remove some extra logging --- rust-executor/src/holochain_service/mod.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 35a4cd565..2a1da102e 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -105,14 +105,12 @@ impl HolochainService { while let Some(item) = stream.next().await { let _ = stream_sender.send(item); } - error!("Holochain service signal stream closed"); yield_now().await; } }); let spawned_receiver = tokio::spawn(async move { while let Some(message) = receiver.recv().await { - info!("Got incoming message in holochain receiver: {:?}", message); match message { HolochainServiceRequest::InstallApp(payload, response) => { match timeout( From 7e1a339d44ffa21ca8c5ad62cec6d9a4bffe6cff Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 22 Sep 2023 14:40:15 +0200 Subject: [PATCH 717/722] Activate macOS code signing for staging deploys --- .github/workflows/publish_staging.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 7f7c30a0b..7179a6eff 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -104,6 +104,12 @@ jobs: env: TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} run: | choco install curl cygwin gnuwin32-m4 libgcc make mingw yarn run package-ad4m From bf4f4f6d640a6a17fba4db7242265fd65a9eb7f0 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 22 Sep 2023 14:05:50 +0100 Subject: [PATCH 718/722] delete subscribers which are dead on send --- rust-executor/src/pubsub.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index d9d2bdf3c..255a20c64 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -37,12 +37,18 @@ impl PubSub { } pub async fn publish(&self, topic: &Topic, message: &Message) { - let subscribers = self.subscribers.lock().await; - if let Some(subscribers) = subscribers.get(topic) { - for tx in subscribers { - let send_res = tx.send(message.to_owned()); + let mut subscribers = self.subscribers.lock().await; + + if let Some(subscribers_vec) = subscribers.get_mut(topic) { + let mut i = 0; + while i < subscribers_vec.len() { + let send_res = subscribers_vec[i].send(message.to_owned()); if send_res.is_err() { - warn!("Failed to send message to subscriber: {:?} on topic: {:?}, with subscribers, len: {:?}", send_res, topic, subscribers.len()); + warn!("Failed to send message to subscriber: {:?} on topic: {:?}, with subscribers, len: {:?}", send_res, topic, subscribers_vec.len()); + warn!("Removing subscriber from topic: {:?}", topic); + subscribers_vec.remove(i); + } else { + i += 1; } } } From ed9e6dd8794d6c1fd1396d0cf63519351a7f01bb Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 22 Sep 2023 14:12:17 +0100 Subject: [PATCH 719/722] check and remove dead subscribers when new ones get added --- rust-executor/src/pubsub.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rust-executor/src/pubsub.rs b/rust-executor/src/pubsub.rs index 255a20c64..dbe656aef 100644 --- a/rust-executor/src/pubsub.rs +++ b/rust-executor/src/pubsub.rs @@ -36,6 +36,21 @@ impl PubSub { rx } + pub async fn remove_dead_subscribers(&self) { + let mut subscribers = self.subscribers.lock().await; + for (_, subscribers_vec) in subscribers.iter_mut() { + let mut i = 0; + while i < subscribers_vec.len() { + if subscribers_vec[i].is_closed() { + warn!("Found closed subscriber, removing..."); + subscribers_vec.remove(i); + } else { + i += 1; + } + } + } + } + pub async fn publish(&self, topic: &Topic, message: &Message) { let mut subscribers = self.subscribers.lock().await; @@ -63,6 +78,7 @@ pub(crate) async fn subscribe_and_process< filter: Option, ) -> Pin> + Send>> { debug!("Subscribing to topic: {}", topic); + pubsub.remove_dead_subscribers().await; let receiver = pubsub.subscribe(&topic).await; let receiver_stream = WatchStream::from_changes(receiver); From b3053810d2e13dcf7cd4edd77e86e96100f53d1e Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 22 Sep 2023 16:35:31 +0200 Subject: [PATCH 720/722] Activate CI code signing for production publish as well --- .github/workflows/publish.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 50b25da18..3a3979036 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -100,6 +100,12 @@ jobs: env: TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} run: yarn run package-ad4m - name: Build AD4M-CLI & build Launcher binary (windows-latest) From dc500e372fd8a166b529034db5d9e6da2554fdf3 Mon Sep 17 00:00:00 2001 From: Joshua Parkin Date: Fri, 22 Sep 2023 15:52:05 +0100 Subject: [PATCH 721/722] add v0.6.0 changelog --- CHANGELOG | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 67fc044e9..d62386486 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -15,6 +15,41 @@ This project _loosely_ adheres to [Semantic Versioning](https://semver.org/spec/ ### Fixed +## [0.6.0] - 22/09/2023 + +### Added + - Rust runtime which runs a GraphQL server (warp & juniper based), Deno runtime, Scryer prolog engine & Holochain. Rust runtime now used as the main logic for ADAM and loads old JS code where needed, giving migration path to full Rust. + - Entanglement proof logic to ADAM to allow linking of ADAM DID's, Holochain Keys & Blockchain wallets + - Ability to update ADAM Layer via the Launcher + - MacOS signing in CD + - Ability to create paginated queries directly to prolog engine + +### Changed + - Updated Holochain to 0.2.2 + - Updated Tauri to latest version 1.4.1 + - All seperate ADAM Layer services now run on seperate thread pools + - ADAM Rust CLI can now init and run an agent + - ADAM Rust CLI command line arguments for init and run refactor to be much cleaner + - Each Perspective now has its own independant Scryer Prolog thread + - Whole ADAM Layer package now runs from a single binary; either ADAM CLI or ADAM Launcher + - ADAM Languages now expected to be Deno compatible modules; not old ESM node JS + - JS executor now builds to be a Deno bundle to be consumed by rust-executor + +### Deprecated + +### Removed + - SWIPL Prolog + - No longer used a node library to parse results coming in and out of a prolog engine + - AD4M Host + - GraphQL server from JS code + - Agent key methods from JS code + - Independant Holochain, HC & Lair-keystore binaries + +### Fixed + - Slow launcher start + - Very high CPU usage from ADAM and its related services + - No longer reconnection issues after sleeping computer or closing ADAM app instances + ## [0.5.1] - 25/07/2023 ### Added From ec2b3d28373190ec31df57cef23ad149be28bbd3 Mon Sep 17 00:00:00 2001 From: Nicolas Luck Date: Fri, 22 Sep 2023 21:27:45 +0200 Subject: [PATCH 722/722] Fix macOS updater paths in staging and production publish workflow --- .github/workflows/publish.yml | 8 ++++---- .github/workflows/publish_staging.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3a3979036..2c3c54f0b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -197,8 +197,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: "/Users/runner/work/ad4m/target/release/bundle/macos/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz" - asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/macos/ADAM Launcher.app.tar.gz" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.app.tar.gz asset_content_type: application/octet-stream - name: Upload Release Macos update sig Asset @@ -209,8 +209,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: "/Users/runner/work/ad4m/target/release/bundle/macos/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig" - asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz.sig + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/macos/ADAM Launcher.app.tar.gz.sig" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.app.tar.gz.sig asset_content_type: application/octet-stream - name: Upload Release AD4M CLI Macos Binary diff --git a/.github/workflows/publish_staging.yml b/.github/workflows/publish_staging.yml index 7179a6eff..19a6d6823 100644 --- a/.github/workflows/publish_staging.yml +++ b/.github/workflows/publish_staging.yml @@ -194,8 +194,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: "/Users/runner/work/ad4m/target/release/bundle/macos/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz" - asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/macos/ADAM Launcher.app.tar.gz" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.app.tar.gz asset_content_type: application/octet-stream - name: Upload Release Macos update sig Asset @@ -206,8 +206,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: "/Users/runner/work/ad4m/target/release/bundle/macos/ADAM Launcher_${{ steps.extract_version.outputs.version }}_x64.tar.gz.sig" - asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.dmg.tar.gz.sig + asset_path: "/Users/runner/work/ad4m/ad4m/target/release/bundle/macos/ADAM Launcher.app.tar.gz.sig" + asset_name: ADAM\ Launcher_${{ steps.extract_version.outputs.version }}_x64.app.tar.gz.sig asset_content_type: application/octet-stream - name: Upload Release AD4M CLI Macos Binary